{"version":3,"file":"app-119be19af9a12640bfc8.js","mappings":"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","sources":["webpack://gatsby-starter-default/./node_modules/exenv/index.js","webpack://gatsby-starter-default/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/index.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://gatsby-starter-default/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://gatsby-starter-default/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://gatsby-starter-default/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://gatsby-starter-default/./.cache/api-runner-browser-plugins.js","webpack://gatsby-starter-default/./.cache/api-runner-browser.js","webpack://gatsby-starter-default/./.cache/create-content-digest-browser-shim.js","webpack://gatsby-starter-default/./.cache/emitter.js","webpack://gatsby-starter-default/./node_modules/mitt/dist/mitt.es.js","webpack://gatsby-starter-default/./.cache/normalize-page-path.js","webpack://gatsby-starter-default/./.cache/find-path.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://gatsby-starter-default/./.cache/slice/server-slice-renderer.js","webpack://gatsby-starter-default/./.cache/slice/server-slice.js","webpack://gatsby-starter-default/./.cache/slice/inline-slice.js","webpack://gatsby-starter-default/./.cache/slice.js","webpack://gatsby-starter-default/./.cache/gatsby-browser-entry.js","webpack://gatsby-starter-default/./.cache/prefetch.js","webpack://gatsby-starter-default/./.cache/loader.js","webpack://gatsby-starter-default/./.cache/head/components/fire-callback-in-effect.js","webpack://gatsby-starter-default/./.cache/head/constants.js","webpack://gatsby-starter-default/./.cache/head/utils.js","webpack://gatsby-starter-default/./.cache/head/head-export-handler-for-browser.js","webpack://gatsby-starter-default/./.cache/page-renderer.js","webpack://gatsby-starter-default/./.cache/route-announcer-props.js","webpack://gatsby-starter-default/./.cache/navigation.js","webpack://gatsby-starter-default/./node_modules/shallow-compare/es/index.js","webpack://gatsby-starter-default/./.cache/ensure-resources.js","webpack://gatsby-starter-default/./.cache/production-app.js","webpack://gatsby-starter-default/./.cache/public-page-renderer-prod.js","webpack://gatsby-starter-default/./.cache/public-page-renderer.js","webpack://gatsby-starter-default/./.cache/react-dom-utils.js","webpack://gatsby-starter-default/./.cache/react-lifecycles-compat.js","webpack://gatsby-starter-default/./.cache/redirect-utils.js","webpack://gatsby-starter-default/./.cache/register-service-worker.js","webpack://gatsby-starter-default/./.cache/slice/context.js","webpack://gatsby-starter-default/./.cache/static-query.js","webpack://gatsby-starter-default/./.cache/context-utils.js","webpack://gatsby-starter-default/./.cache/strip-prefix.js","webpack://gatsby-starter-default/./gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/components/AsyncFonts.tsx","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/consts/defaults.ts","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/utils/getFontNames.ts","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/utils/fontListener.ts","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/utils/kebabCase.ts","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-omni-font-loader/utils/getFontFiles.ts","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/commaLists/commaLists.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/html/html.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLine/oneLine.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://gatsby-starter-default/../../../node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://gatsby-starter-default/../src/image-utils.ts","webpack://gatsby-starter-default/../src/components/hooks.ts","webpack://gatsby-starter-default/../src/components/layout-wrapper.tsx","webpack://gatsby-starter-default/../src/components/gatsby-image.browser.tsx","webpack://gatsby-starter-default/../src/components/picture.tsx","webpack://gatsby-starter-default/../src/components/placeholder.tsx","webpack://gatsby-starter-default/../src/components/main-image.tsx","webpack://gatsby-starter-default/../src/components/static-image.server.tsx","webpack://gatsby-starter-default/../src/components/static-image.tsx","webpack://gatsby-starter-default/../src/components/later-hydrator.tsx","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://gatsby-starter-default/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://gatsby-starter-default/./node_modules/invariant/browser.js","webpack://gatsby-starter-default/./node_modules/react-fast-compare/index.js","webpack://gatsby-starter-default/./node_modules/react-helmet/es/Helmet.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/components/Modal.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/components/ModalPortal.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/classList.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/focusManager.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/scopeTab.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/helpers/tabbable.js","webpack://gatsby-starter-default/./node_modules/react-modal/lib/index.js","webpack://gatsby-starter-default/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://gatsby-starter-default/./node_modules/react-server-dom-webpack/index.js","webpack://gatsby-starter-default/./node_modules/react-side-effect/lib/index.js","webpack://gatsby-starter-default/./node_modules/warning/warning.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://gatsby-starter-default/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://gatsby-starter-default/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://gatsby-starter-default/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://gatsby-starter-default/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-aviso-index-js\": () => import(\"./../../../src/pages/aviso/index.js\" /* webpackChunkName: \"component---src-pages-aviso-index-js\" */),\n \"component---src-pages-aviso-privacidad-referidos-index-js\": () => import(\"./../../../src/pages/avisoPrivacidadReferidos/index.js\" /* webpackChunkName: \"component---src-pages-aviso-privacidad-referidos-index-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-promociones-index-js\": () => import(\"./../../../src/pages/promociones/index.js\" /* webpackChunkName: \"component---src-pages-promociones-index-js\" */),\n \"component---src-pages-referidos-referidos-js\": () => import(\"./../../../src/pages/referidos/referidos.js\" /* webpackChunkName: \"component---src-pages-referidos-referidos-js\" */),\n \"component---src-pages-referidos-status-js\": () => import(\"./../../../src/pages/referidos/status.js\" /* webpackChunkName: \"component---src-pages-referidos-status-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"gatsby-starter-default\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"src/images/favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"4021fd5af1380449b318e607d41409e0\"},\n },{\n plugin: require('../node_modules/gatsby-omni-font-loader/gatsby-browser.js'),\n options: {\"plugins\":[],\"enableListener\":true,\"preconnect\":[\"https://fonts.googleapis.com\",\"https://fonts.gstatic.com\"],\"web\":[{\"name\":\"Montserrat\",\"file\":\"https://fonts.googleapis.com/css2?family=Montserrat:normal,bold,sthin,extra-light,ital,light,100,200,300,400,500,600,700,800\"}]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n \n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","/**\n * Implement Gatsby's Browser APIs in this file.\n *\n * See: https://www.gatsbyjs.com/docs/browser-apis/\n */\n\n// You can delete this file if you're not using it\n\nimport React from 'react';\nimport Modal from 'react-modal';\n\nexport const onClientEntry = () => {\n Modal.setAppElement('#___gatsby');\n};\n","import React from \"react\"\nimport { Helmet } from \"react-helmet\"\n\nexport const AsyncFonts: React.FC<{ hrefs: string[] }> = ({ hrefs }) => {\n const links = []\n\n hrefs.forEach(href => {\n const noScript = (\n \n )\n const link = (\n \n )\n\n links.push([noScript, link])\n })\n\n return {links}\n}\n","export const MODE_DEFAULT = \"async\";\nexport const SCOPE_DEFAULT = \"body\";\n","export const getFontNames = (allFonts: { name: string }[]) => {\n const fontNames = []\n allFonts.forEach(({ name }) =>\n Array.isArray(name) ? fontNames.push(...name) : fontNames.push(name)\n )\n return fontNames\n}\n","import { kebabCase } from \"../utils\";\n\ndeclare var document: { fonts: any };\n\nexport const fontListener = ({ fontNames, scope }) => {\n const hasFonts = fontNames && Boolean(fontNames.length);\n const targetElement = scope === \"html\" ? \"documentElement\" : \"body\";\n const apiAvailable = \"fonts\" in document;\n\n function handleLoadComplete() {\n addClassName(\"all\");\n }\n\n function handleFontLoad(fontFaces: FontFace[]) {\n fontFaces.forEach((fontFace) => {\n addClassName(fontFace.family);\n })\n }\n\n function fontMapper(fontName) {\n return document.fonts\n .load(`1rem ${fontName}`)\n .then(handleFontLoad)\n .catch(errorFallback);\n }\n\n function loadFonts() {\n const fonts = fontNames.map(fontMapper);\n Promise.all(fonts).then(handleLoadComplete).catch(errorFallback);\n }\n\n function errorFallback() {\n fontNames.forEach(addClassName);\n }\n\n function handleApiError(error) {\n console.info(`document.fonts API error: ${error}`);\n console.info(`Replacing fonts instantly. FOUT handling failed.`);\n errorFallback();\n }\n\n function addClassName(fontName: string) {\n document[targetElement].classList.add(`wf-${kebabCase(fontName)}`);\n }\n\n if (!apiAvailable) {\n handleApiError(\"Font loading API not available\");\n return;\n }\n\n if (hasFonts && apiAvailable) {\n loadFonts();\n }\n};\n","export const kebabCase = (str: string) =>\n str\n .match(/[A-Z]{2,}(?=[A-Z][a-z0-9]*|\\b)|[A-Z]?[a-z0-9]*|[A-Z]|[0-9]+/g)\n .filter(Boolean)\n .map(x => x.toLowerCase())\n .join(\"-\")\n","import React from \"react\";\nimport { AsyncFonts } from \"./components\";\nimport { MODE_DEFAULT, SCOPE_DEFAULT } from \"./consts\";\nimport { getFontFiles, getFontNames } from \"./utils\";\nimport { fontListener } from \"./utils/fontListener\";\n\nexport const onClientEntry = (\n _,\n { custom = [], web = [], enableListener = false, scope = SCOPE_DEFAULT }\n) => {\n if (!enableListener) {\n return;\n }\n\n const allFonts = [...custom, ...web];\n const fontNames = getFontNames(allFonts);\n const listenerProps = { fontNames, scope };\n\n fontListener(listenerProps);\n};\n\nexport const wrapRootElement = (\n { element },\n { custom = [], web = [], mode = MODE_DEFAULT }\n) => {\n if (mode !== \"async\") {\n return element;\n }\n\n const allFonts = [...custom, ...web];\n const fontFiles = getFontFiles(allFonts);\n const fontNames = getFontNames(allFonts);\n const hasFontNames = Boolean(fontNames.length);\n\n return (\n <>\n {hasFontNames && }\n {element}\n >\n );\n};\n","export const getFontFiles = (allFonts: { file: string }[]) =>\n allFonts.map(({ file }) => file)\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n }\n\n // else, return a transformed end result of processing the template with our tag\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n };\n\n // if first argument is an array, extrude it as a list of transformers\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n }\n\n // if any transformers are functions, this means they are not initiated - automatically initiate them\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n });\n\n // return an ES2015 template tag\n return this.tag;\n }\n\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n return this.transformers.reduce(cb, str);\n }\n\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n return this.transformers.reduce(cb, substitution);\n }\n\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UZW1wbGF0ZVRhZy9UZW1wbGF0ZVRhZy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyYW5zZm9ybWVycyIsInRhZyIsInN0cmluZ3MiLCJleHByZXNzaW9ucyIsImludGVyaW1UYWciLCJiaW5kIiwidHJhbnNmb3JtRW5kUmVzdWx0IiwibWFwIiwidHJhbnNmb3JtU3RyaW5nIiwicmVkdWNlIiwicHJvY2Vzc1N1YnN0aXR1dGlvbnMiLCJsZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJ0cmFuc2Zvcm1lciIsInByZXZpb3VzVGFnIiwidGVtcGxhdGUiLCJzdWJzdGl0dXRpb25zIiwicmVzdWx0U29GYXIiLCJyZW1haW5pbmdQYXJ0Iiwic3Vic3RpdHV0aW9uIiwidHJhbnNmb3JtU3Vic3RpdHV0aW9uIiwic2hpZnQiLCJjb25jYXQiLCJzdHIiLCJjYiIsInJlcyIsInRyYW5zZm9ybSIsIm9uU3RyaW5nIiwib25TdWJzdGl0dXRpb24iLCJlbmRSZXN1bHQiLCJvbkVuZFJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztJQUlxQkEsVztBQUNuQjs7Ozs7O0FBTUEseUJBQTZCO0FBQUE7O0FBQUEsc0NBQWRDLFlBQWM7QUFBZEEsa0JBQWM7QUFBQTs7QUFBQTs7QUFBQSxTQXVCN0JDLEdBdkI2QixHQXVCdkIsVUFBQ0MsT0FBRCxFQUE2QjtBQUFBLHlDQUFoQkMsV0FBZ0I7QUFBaEJBLG1CQUFnQjtBQUFBOztBQUNqQyxVQUFJLE9BQU9ELE9BQVAsS0FBbUIsVUFBdkIsRUFBbUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsZUFBTyxNQUFLRSxVQUFMLENBQWdCQyxJQUFoQixRQUEyQkgsT0FBM0IsQ0FBUDtBQUNEOztBQUVELFVBQUksT0FBT0EsT0FBUCxLQUFtQixRQUF2QixFQUFpQztBQUMvQjtBQUNBLGVBQU8sTUFBS0ksa0JBQUwsQ0FBd0JKLE9BQXhCLENBQVA7QUFDRDs7QUFFRDtBQUNBQSxnQkFBVUEsUUFBUUssR0FBUixDQUFZLE1BQUtDLGVBQUwsQ0FBcUJILElBQXJCLE9BQVosQ0FBVjtBQUNBLGFBQU8sTUFBS0Msa0JBQUwsQ0FDTEosUUFBUU8sTUFBUixDQUFlLE1BQUtDLG9CQUFMLENBQTBCTCxJQUExQixRQUFxQ0YsV0FBckMsQ0FBZixDQURLLENBQVA7QUFHRCxLQXpDNEI7O0FBQzNCO0FBQ0EsUUFBSUgsYUFBYVcsTUFBYixHQUFzQixDQUF0QixJQUEyQkMsTUFBTUMsT0FBTixDQUFjYixhQUFhLENBQWIsQ0FBZCxDQUEvQixFQUErRDtBQUM3REEscUJBQWVBLGFBQWEsQ0FBYixDQUFmO0FBQ0Q7O0FBRUQ7QUFDQSxTQUFLQSxZQUFMLEdBQW9CQSxhQUFhTyxHQUFiLENBQWlCLHVCQUFlO0FBQ2xELGFBQU8sT0FBT08sV0FBUCxLQUF1QixVQUF2QixHQUFvQ0EsYUFBcEMsR0FBb0RBLFdBQTNEO0FBQ0QsS0FGbUIsQ0FBcEI7O0FBSUE7QUFDQSxXQUFPLEtBQUtiLEdBQVo7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7QUE0QkE7Ozs7Ozs7OytCQVFXYyxXLEVBQWFDLFEsRUFBNEI7QUFBQSx5Q0FBZkMsYUFBZTtBQUFmQSxxQkFBZTtBQUFBOztBQUNsRCxhQUFPLEtBQUtoQixHQUFaLGtCQUFrQmMsOEJBQVlDLFFBQVosU0FBeUJDLGFBQXpCLEVBQWxCO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7O3lDQVFxQkEsYSxFQUFlQyxXLEVBQWFDLGEsRUFBZTtBQUM5RCxVQUFNQyxlQUFlLEtBQUtDLHFCQUFMLENBQ25CSixjQUFjSyxLQUFkLEVBRG1CLEVBRW5CSixXQUZtQixDQUFyQjtBQUlBLGFBQU8sR0FBR0ssTUFBSCxDQUFVTCxXQUFWLEVBQXVCRSxZQUF2QixFQUFxQ0QsYUFBckMsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7b0NBTWdCSyxHLEVBQUs7QUFDbkIsVUFBTUMsS0FBSyxTQUFMQSxFQUFLLENBQUNDLEdBQUQsRUFBTUMsU0FBTjtBQUFBLGVBQ1RBLFVBQVVDLFFBQVYsR0FBcUJELFVBQVVDLFFBQVYsQ0FBbUJGLEdBQW5CLENBQXJCLEdBQStDQSxHQUR0QztBQUFBLE9BQVg7QUFFQSxhQUFPLEtBQUsxQixZQUFMLENBQWtCUyxNQUFsQixDQUF5QmdCLEVBQXpCLEVBQTZCRCxHQUE3QixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7MENBT3NCSixZLEVBQWNGLFcsRUFBYTtBQUMvQyxVQUFNTyxLQUFLLFNBQUxBLEVBQUssQ0FBQ0MsR0FBRCxFQUFNQyxTQUFOO0FBQUEsZUFDVEEsVUFBVUUsY0FBVixHQUNJRixVQUFVRSxjQUFWLENBQXlCSCxHQUF6QixFQUE4QlIsV0FBOUIsQ0FESixHQUVJUSxHQUhLO0FBQUEsT0FBWDtBQUlBLGFBQU8sS0FBSzFCLFlBQUwsQ0FBa0JTLE1BQWxCLENBQXlCZ0IsRUFBekIsRUFBNkJMLFlBQTdCLENBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O3VDQU1tQlUsUyxFQUFXO0FBQzVCLFVBQU1MLEtBQUssU0FBTEEsRUFBSyxDQUFDQyxHQUFELEVBQU1DLFNBQU47QUFBQSxlQUNUQSxVQUFVSSxXQUFWLEdBQXdCSixVQUFVSSxXQUFWLENBQXNCTCxHQUF0QixDQUF4QixHQUFxREEsR0FENUM7QUFBQSxPQUFYO0FBRUEsYUFBTyxLQUFLMUIsWUFBTCxDQUFrQlMsTUFBbEIsQ0FBeUJnQixFQUF6QixFQUE2QkssU0FBN0IsQ0FBUDtBQUNEOzs7Ozs7ZUFuSGtCL0IsVyIsImZpbGUiOiJUZW1wbGF0ZVRhZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNsYXNzIFRlbXBsYXRlVGFnXG4gKiBAY2xhc3NkZXNjIENvbnN1bWVzIGEgcGlwZWxpbmUgb2YgY29tcG9zYWJsZSB0cmFuc2Zvcm1lciBwbHVnaW5zIGFuZCBwcm9kdWNlcyBhIHRlbXBsYXRlIHRhZy5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGVtcGxhdGVUYWcge1xuICAvKipcbiAgICogY29uc3RydWN0cyBhIHRlbXBsYXRlIHRhZ1xuICAgKiBAY29uc3RydWN0cyBUZW1wbGF0ZVRhZ1xuICAgKiBAcGFyYW0gIHsuLi5PYmplY3R9IFsuLi50cmFuc2Zvcm1lcnNdIC0gYW4gYXJyYXkgb3IgYXJndW1lbnRzIGxpc3Qgb2YgdHJhbnNmb3JtZXJzXG4gICAqIEByZXR1cm4ge0Z1bmN0aW9ufSAgICAgICAgICAgICAgICAgICAgLSBhIHRlbXBsYXRlIHRhZ1xuICAgKi9cbiAgY29uc3RydWN0b3IoLi4udHJhbnNmb3JtZXJzKSB7XG4gICAgLy8gaWYgZmlyc3QgYXJndW1lbnQgaXMgYW4gYXJyYXksIGV4dHJ1ZGUgaXQgYXMgYSBsaXN0IG9mIHRyYW5zZm9ybWVyc1xuICAgIGlmICh0cmFuc2Zvcm1lcnMubGVuZ3RoID4gMCAmJiBBcnJheS5pc0FycmF5KHRyYW5zZm9ybWVyc1swXSkpIHtcbiAgICAgIHRyYW5zZm9ybWVycyA9IHRyYW5zZm9ybWVyc1swXTtcbiAgICB9XG5cbiAgICAvLyBpZiBhbnkgdHJhbnNmb3JtZXJzIGFyZSBmdW5jdGlvbnMsIHRoaXMgbWVhbnMgdGhleSBhcmUgbm90IGluaXRpYXRlZCAtIGF1dG9tYXRpY2FsbHkgaW5pdGlhdGUgdGhlbVxuICAgIHRoaXMudHJhbnNmb3JtZXJzID0gdHJhbnNmb3JtZXJzLm1hcCh0cmFuc2Zvcm1lciA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHRyYW5zZm9ybWVyID09PSAnZnVuY3Rpb24nID8gdHJhbnNmb3JtZXIoKSA6IHRyYW5zZm9ybWVyO1xuICAgIH0pO1xuXG4gICAgLy8gcmV0dXJuIGFuIEVTMjAxNSB0ZW1wbGF0ZSB0YWdcbiAgICByZXR1cm4gdGhpcy50YWc7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBhbGwgdHJhbnNmb3JtZXJzIHRvIGEgdGVtcGxhdGUgbGl0ZXJhbCB0YWdnZWQgd2l0aCB0aGlzIG1ldGhvZC5cbiAgICogSWYgYSBmdW5jdGlvbiBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCBhc3N1bWVzIHRoZSBmdW5jdGlvbiBpcyBhIHRlbXBsYXRlIHRhZ1xuICAgKiBhbmQgYXBwbGllcyBpdCB0byB0aGUgdGVtcGxhdGUsIHJldHVybmluZyBhIHRlbXBsYXRlIHRhZy5cbiAgICogQHBhcmFtICB7KEZ1bmN0aW9ufFN0cmluZ3xBcnJheTxTdHJpbmc+KX0gc3RyaW5ncyAgICAgICAgLSBFaXRoZXIgYSB0ZW1wbGF0ZSB0YWcgb3IgYW4gYXJyYXkgY29udGFpbmluZyB0ZW1wbGF0ZSBzdHJpbmdzIHNlcGFyYXRlZCBieSBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSAgey4uLip9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmV4cHJlc3Npb25zIC0gT3B0aW9uYWwgbGlzdCBvZiBzdWJzdGl0dXRpb24gdmFsdWVzLlxuICAgKiBAcmV0dXJuIHsoU3RyaW5nfEZ1bmN0aW9uKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIEVpdGhlciBhbiBpbnRlcm1lZGlhcnkgdGFnIGZ1bmN0aW9uIG9yIHRoZSByZXN1bHRzIG9mIHByb2Nlc3NpbmcgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgdGFnID0gKHN0cmluZ3MsIC4uLmV4cHJlc3Npb25zKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzdHJpbmdzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIGlzIGEgZnVuY3Rpb24sIGFzc3VtZSBpdCBpcyBhIHRlbXBsYXRlIHRhZyBhbmQgcmV0dXJuXG4gICAgICAvLyBhbiBpbnRlcm1lZGlhcnkgdGFnIHRoYXQgcHJvY2Vzc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyB0aGUgYWZvcmVtZW50aW9uZWQgdGFnLCBwYXNzaW5nIHRoZVxuICAgICAgLy8gcmVzdWx0IHRvIG91ciB0YWdcbiAgICAgIHJldHVybiB0aGlzLmludGVyaW1UYWcuYmluZCh0aGlzLCBzdHJpbmdzKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHN0cmluZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBpZiB0aGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIGlzIGEgc3RyaW5nLCBqdXN0IHRyYW5zZm9ybSBpdFxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtRW5kUmVzdWx0KHN0cmluZ3MpO1xuICAgIH1cblxuICAgIC8vIGVsc2UsIHJldHVybiBhIHRyYW5zZm9ybWVkIGVuZCByZXN1bHQgb2YgcHJvY2Vzc2luZyB0aGUgdGVtcGxhdGUgd2l0aCBvdXIgdGFnXG4gICAgc3RyaW5ncyA9IHN0cmluZ3MubWFwKHRoaXMudHJhbnNmb3JtU3RyaW5nLmJpbmQodGhpcykpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybUVuZFJlc3VsdChcbiAgICAgIHN0cmluZ3MucmVkdWNlKHRoaXMucHJvY2Vzc1N1YnN0aXR1dGlvbnMuYmluZCh0aGlzLCBleHByZXNzaW9ucykpLFxuICAgICk7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFuIGludGVybWVkaWFyeSB0ZW1wbGF0ZSB0YWcgdGhhdCByZWNlaXZlcyBhIHRlbXBsYXRlIHRhZyBhbmQgcGFzc2VzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgdGVtcGxhdGUgd2l0aCB0aGUgcmVjZWl2ZWRcbiAgICogdGVtcGxhdGUgdGFnIHRvIG91ciBvd24gdGVtcGxhdGUgdGFnLlxuICAgKiBAcGFyYW0gIHtGdW5jdGlvbn0gICAgICAgIG5leHRUYWcgICAgICAgICAgLSB0aGUgcmVjZWl2ZWQgdGVtcGxhdGUgdGFnXG4gICAqIEBwYXJhbSAge0FycmF5PFN0cmluZz59ICAgdGVtcGxhdGUgICAgICAgICAtIHRoZSB0ZW1wbGF0ZSB0byBwcm9jZXNzXG4gICAqIEBwYXJhbSAgey4uLip9ICAgICAgICAgICAgLi4uc3Vic3RpdHV0aW9ucyAtIGBzdWJzdGl0dXRpb25zYCBpcyBhbiBhcnJheSBvZiBhbGwgc3Vic3RpdHV0aW9ucyBpbiB0aGUgdGVtcGxhdGVcbiAgICogQHJldHVybiB7Kn0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdGhlIGZpbmFsIHByb2Nlc3NlZCB2YWx1ZVxuICAgKi9cbiAgaW50ZXJpbVRhZyhwcmV2aW91c1RhZywgdGVtcGxhdGUsIC4uLnN1YnN0aXR1dGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy50YWdgJHtwcmV2aW91c1RhZyh0ZW1wbGF0ZSwgLi4uc3Vic3RpdHV0aW9ucyl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBidWxrIHByb2Nlc3Npbmcgb24gdGhlIHRhZ2dlZCB0ZW1wbGF0ZSwgdHJhbnNmb3JtaW5nIGVhY2ggc3Vic3RpdHV0aW9uIGFuZCB0aGVuXG4gICAqIGNvbmNhdGVuYXRpbmcgdGhlIHJlc3VsdGluZyB2YWx1ZXMgaW50byBhIHN0cmluZy5cbiAgICogQHBhcmFtICB7QXJyYXk8Kj59IHN1YnN0aXR1dGlvbnMgLSBhbiBhcnJheSBvZiBhbGwgcmVtYWluaW5nIHN1YnN0aXR1dGlvbnMgcHJlc2VudCBpbiB0aGlzIHRlbXBsYXRlXG4gICAqIEBwYXJhbSAge1N0cmluZ30gICByZXN1bHRTb0ZhciAgIC0gdGhpcyBpdGVyYXRpb24ncyByZXN1bHQgc3RyaW5nIHNvIGZhclxuICAgKiBAcGFyYW0gIHtTdHJpbmd9ICAgcmVtYWluaW5nUGFydCAtIHRoZSB0ZW1wbGF0ZSBjaHVuayBhZnRlciB0aGUgY3VycmVudCBzdWJzdGl0dXRpb25cbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgICAgICAgLSB0aGUgcmVzdWx0IG9mIGpvaW5pbmcgdGhpcyBpdGVyYXRpb24ncyBwcm9jZXNzZWQgc3Vic3RpdHV0aW9uIHdpdGggdGhlIHJlc3VsdFxuICAgKi9cbiAgcHJvY2Vzc1N1YnN0aXR1dGlvbnMoc3Vic3RpdHV0aW9ucywgcmVzdWx0U29GYXIsIHJlbWFpbmluZ1BhcnQpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb24gPSB0aGlzLnRyYW5zZm9ybVN1YnN0aXR1dGlvbihcbiAgICAgIHN1YnN0aXR1dGlvbnMuc2hpZnQoKSxcbiAgICAgIHJlc3VsdFNvRmFyLFxuICAgICk7XG4gICAgcmV0dXJuICcnLmNvbmNhdChyZXN1bHRTb0Zhciwgc3Vic3RpdHV0aW9uLCByZW1haW5pbmdQYXJ0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlIHRocm91Z2ggZWFjaCB0cmFuc2Zvcm1lciwgYXBwbHlpbmcgdGhlIHRyYW5zZm9ybWVyJ3MgYG9uU3RyaW5nYCBtZXRob2QgdG8gdGhlIHRlbXBsYXRlXG4gICAqIHN0cmluZ3MgYmVmb3JlIGFsbCBzdWJzdGl0dXRpb25zIGFyZSBwcm9jZXNzZWQuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSAgc3RyIC0gVGhlIGlucHV0IHN0cmluZ1xuICAgKiBAcmV0dXJuIHtTdHJpbmd9ICAgICAtIFRoZSBmaW5hbCByZXN1bHRzIG9mIHByb2Nlc3NpbmcgZWFjaCB0cmFuc2Zvcm1lclxuICAgKi9cbiAgdHJhbnNmb3JtU3RyaW5nKHN0cikge1xuICAgIGNvbnN0IGNiID0gKHJlcywgdHJhbnNmb3JtKSA9PlxuICAgICAgdHJhbnNmb3JtLm9uU3RyaW5nID8gdHJhbnNmb3JtLm9uU3RyaW5nKHJlcykgOiByZXM7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLnJlZHVjZShjYiwgc3RyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgc3Vic3RpdHV0aW9uIGlzIGVuY291bnRlcmVkLCBpdGVyYXRlcyB0aHJvdWdoIGVhY2ggdHJhbnNmb3JtZXIgYW5kIGFwcGxpZXMgdGhlIHRyYW5zZm9ybWVyJ3NcbiAgICogYG9uU3Vic3RpdHV0aW9uYCBtZXRob2QgdG8gdGhlIHN1YnN0aXR1dGlvbi5cbiAgICogQHBhcmFtICB7Kn0gICAgICBzdWJzdGl0dXRpb24gLSBUaGUgY3VycmVudCBzdWJzdGl0dXRpb25cbiAgICogQHBhcmFtICB7U3RyaW5nfSByZXN1bHRTb0ZhciAgLSBUaGUgcmVzdWx0IHVwIHRvIGFuZCBleGNsdWRpbmcgdGhpcyBzdWJzdGl0dXRpb24uXG4gICAqIEByZXR1cm4geyp9ICAgICAgICAgICAgICAgICAgIC0gVGhlIGZpbmFsIHJlc3VsdCBvZiBhcHBseWluZyBhbGwgc3Vic3RpdHV0aW9uIHRyYW5zZm9ybWF0aW9ucy5cbiAgICovXG4gIHRyYW5zZm9ybVN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgY29uc3QgY2IgPSAocmVzLCB0cmFuc2Zvcm0pID0+XG4gICAgICB0cmFuc2Zvcm0ub25TdWJzdGl0dXRpb25cbiAgICAgICAgPyB0cmFuc2Zvcm0ub25TdWJzdGl0dXRpb24ocmVzLCByZXN1bHRTb0ZhcilcbiAgICAgICAgOiByZXM7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtZXJzLnJlZHVjZShjYiwgc3Vic3RpdHV0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdGVyYXRlcyB0aHJvdWdoIGVhY2ggdHJhbnNmb3JtZXIsIGFwcGx5aW5nIHRoZSB0cmFuc2Zvcm1lcidzIGBvbkVuZFJlc3VsdGAgbWV0aG9kIHRvIHRoZVxuICAgKiB0ZW1wbGF0ZSBsaXRlcmFsIGFmdGVyIGFsbCBzdWJzdGl0dXRpb25zIGhhdmUgZmluaXNoZWQgcHJvY2Vzc2luZy5cbiAgICogQHBhcmFtICB7U3RyaW5nfSBlbmRSZXN1bHQgLSBUaGUgcHJvY2Vzc2VkIHRlbXBsYXRlLCBqdXN0IGJlZm9yZSBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSB0YWdcbiAgICogQHJldHVybiB7U3RyaW5nfSAgICAgICAgICAgLSBUaGUgZmluYWwgcmVzdWx0cyBvZiBwcm9jZXNzaW5nIGVhY2ggdHJhbnNmb3JtZXJcbiAgICovXG4gIHRyYW5zZm9ybUVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBjb25zdCBjYiA9IChyZXMsIHRyYW5zZm9ybSkgPT5cbiAgICAgIHRyYW5zZm9ybS5vbkVuZFJlc3VsdCA/IHRyYW5zZm9ybS5vbkVuZFJlc3VsdChyZXMpIDogcmVzO1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybWVycy5yZWR1Y2UoY2IsIGVuZFJlc3VsdCk7XG4gIH1cbn1cbiJdfQ==","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmltUmVzdWx0VHJhbnNmb3JtZXIvdHJpbVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInNpZGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJFcnJvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0EsSUFBTUEsd0JBQXdCLFNBQXhCQSxxQkFBd0I7QUFBQSxNQUFDQyxJQUFELHVFQUFRLEVBQVI7QUFBQSxTQUFnQjtBQUM1Q0MsZUFENEMsdUJBQ2hDQyxTQURnQyxFQUNyQjtBQUNyQixVQUFJRixTQUFTLEVBQWIsRUFBaUI7QUFDZixlQUFPRSxVQUFVQyxJQUFWLEVBQVA7QUFDRDs7QUFFREgsYUFBT0EsS0FBS0ksV0FBTCxFQUFQOztBQUVBLFVBQUlKLFNBQVMsT0FBVCxJQUFvQkEsU0FBUyxNQUFqQyxFQUF5QztBQUN2QyxlQUFPRSxVQUFVRyxPQUFWLENBQWtCLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDs7QUFFRCxVQUFJTCxTQUFTLEtBQVQsSUFBa0JBLFNBQVMsT0FBL0IsRUFBd0M7QUFDdEMsZUFBT0UsVUFBVUcsT0FBVixDQUFrQixNQUFsQixFQUEwQixFQUExQixDQUFQO0FBQ0Q7O0FBRUQsWUFBTSxJQUFJQyxLQUFKLDBCQUFpQ04sSUFBakMsQ0FBTjtBQUNEO0FBakIyQyxHQUFoQjtBQUFBLENBQTlCOztBQW9CQSxlQUFlRCxxQkFBZiIsImZpbGUiOiJ0cmltUmVzdWx0VHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyIHRoYXQgdHJpbXMgd2hpdGVzcGFjZSBvbiB0aGUgZW5kIHJlc3VsdCBvZiBhIHRhZ2dlZCB0ZW1wbGF0ZVxuICogQHBhcmFtICB7U3RyaW5nfSBzaWRlID0gJycgLSBUaGUgc2lkZSBvZiB0aGUgc3RyaW5nIHRvIHRyaW0uIENhbiBiZSAnc3RhcnQnIG9yICdlbmQnIChhbHRlcm5hdGl2ZWx5ICdsZWZ0JyBvciAncmlnaHQnKVxuICogQHJldHVybiB7T2JqZWN0fSAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciA9IChzaWRlID0gJycpID0+ICh7XG4gIG9uRW5kUmVzdWx0KGVuZFJlc3VsdCkge1xuICAgIGlmIChzaWRlID09PSAnJykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC50cmltKCk7XG4gICAgfVxuXG4gICAgc2lkZSA9IHNpZGUudG9Mb3dlckNhc2UoKTtcblxuICAgIGlmIChzaWRlID09PSAnc3RhcnQnIHx8IHNpZGUgPT09ICdsZWZ0Jykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9eXFxzKi8sICcnKTtcbiAgICB9XG5cbiAgICBpZiAoc2lkZSA9PT0gJ2VuZCcgfHwgc2lkZSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9cXHMqJC8sICcnKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNpZGUgbm90IHN1cHBvcnRlZDogJHtzaWRlfWApO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lcjtcbiJdfQ==","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n return endResult;\n }\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudFRyYW5zZm9ybWVyL3N0cmlwSW5kZW50VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInR5cGUiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIm1hdGNoIiwiaW5kZW50IiwiTWF0aCIsIm1pbiIsIm1hcCIsImVsIiwibGVuZ3RoIiwicmVnZXhwIiwiUmVnRXhwIiwicmVwbGFjZSIsIkVycm9yIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7OztBQUtBLElBQU1BLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUSxTQUFSO0FBQUEsU0FBdUI7QUFDcERDLGVBRG9ELHVCQUN4Q0MsU0FEd0MsRUFDN0I7QUFDckIsVUFBSUYsU0FBUyxTQUFiLEVBQXdCO0FBQ3RCO0FBQ0EsWUFBTUcsUUFBUUQsVUFBVUMsS0FBVixDQUFnQixtQkFBaEIsQ0FBZDtBQUNBLFlBQU1DLFNBQVNELFNBQVNFLEtBQUtDLEdBQUwsZ0NBQVlILE1BQU1JLEdBQU4sQ0FBVTtBQUFBLGlCQUFNQyxHQUFHQyxNQUFUO0FBQUEsU0FBVixDQUFaLEVBQXhCO0FBQ0EsWUFBSUwsTUFBSixFQUFZO0FBQ1YsY0FBTU0sU0FBUyxJQUFJQyxNQUFKLFNBQWlCUCxNQUFqQixRQUE0QixJQUE1QixDQUFmO0FBQ0EsaUJBQU9GLFVBQVVVLE9BQVYsQ0FBa0JGLE1BQWxCLEVBQTBCLEVBQTFCLENBQVA7QUFDRDtBQUNELGVBQU9SLFNBQVA7QUFDRDtBQUNELFVBQUlGLFNBQVMsS0FBYixFQUFvQjtBQUNsQjtBQUNBLGVBQU9FLFVBQVVVLE9BQVYsQ0FBa0IsYUFBbEIsRUFBaUMsRUFBakMsQ0FBUDtBQUNEO0FBQ0QsWUFBTSxJQUFJQyxLQUFKLG9CQUEyQmIsSUFBM0IsQ0FBTjtBQUNEO0FBakJtRCxHQUF2QjtBQUFBLENBQS9COztBQW9CQSxlQUFlRCxzQkFBZiIsImZpbGUiOiJzdHJpcEluZGVudFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBzdHJpcHMgaW5kZW50YXRpb24gZnJvbSBhIHRlbXBsYXRlIGxpdGVyYWxcbiAqIEBwYXJhbSAge1N0cmluZ30gdHlwZSA9ICdpbml0aWFsJyAtIHdoZXRoZXIgdG8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBvciBqdXN0IGxlYWRpbmcgaW5kZW50YXRpb24uIGNhbiBiZSAnYWxsJyBvciAnaW5pdGlhbCdcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgICAgICAgICAtIGEgVGVtcGxhdGVUYWcgdHJhbnNmb3JtZXJcbiAqL1xuY29uc3Qgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciA9ICh0eXBlID0gJ2luaXRpYWwnKSA9PiAoe1xuICBvbkVuZFJlc3VsdChlbmRSZXN1bHQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ2luaXRpYWwnKSB7XG4gICAgICAvLyByZW1vdmUgdGhlIHNob3J0ZXN0IGxlYWRpbmcgaW5kZW50YXRpb24gZnJvbSBlYWNoIGxpbmVcbiAgICAgIGNvbnN0IG1hdGNoID0gZW5kUmVzdWx0Lm1hdGNoKC9eW15cXFNcXG5dKig/PVxcUykvZ20pO1xuICAgICAgY29uc3QgaW5kZW50ID0gbWF0Y2ggJiYgTWF0aC5taW4oLi4ubWF0Y2gubWFwKGVsID0+IGVsLmxlbmd0aCkpO1xuICAgICAgaWYgKGluZGVudCkge1xuICAgICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKGBeLnske2luZGVudH19YCwgJ2dtJyk7XG4gICAgICAgIHJldHVybiBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBlbmRSZXN1bHQ7XG4gICAgfVxuICAgIGlmICh0eXBlID09PSAnYWxsJykge1xuICAgICAgLy8gcmVtb3ZlIGFsbCBpbmRlbnRhdGlvbiBmcm9tIGVhY2ggbGluZVxuICAgICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKC9eW15cXFNcXG5dKy9nbSwgJycpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdHlwZTogJHt0eXBlfWApO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHN0cmlwSW5kZW50VHJhbnNmb3JtZXI7XG4iXX0=","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIvcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvbkVuZFJlc3VsdCIsImVuZFJlc3VsdCIsIkVycm9yIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztBQU1BLElBQU1BLDJCQUEyQixTQUEzQkEsd0JBQTJCLENBQUNDLFdBQUQsRUFBY0MsV0FBZDtBQUFBLFNBQStCO0FBQzlEQyxlQUQ4RCx1QkFDbERDLFNBRGtELEVBQ3ZDO0FBQ3JCLFVBQUlILGVBQWUsSUFBZixJQUF1QkMsZUFBZSxJQUExQyxFQUFnRDtBQUM5QyxjQUFNLElBQUlHLEtBQUosQ0FDSix5REFESSxDQUFOO0FBR0Q7QUFDRCxhQUFPRCxVQUFVRSxPQUFWLENBQWtCTCxXQUFsQixFQUErQkMsV0FBL0IsQ0FBUDtBQUNEO0FBUjZELEdBQS9CO0FBQUEsQ0FBakM7O0FBV0EsZUFBZUYsd0JBQWYiLCJmaWxlIjoicmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBsYWNlcyB0YWJzLCBuZXdsaW5lcyBhbmQgc3BhY2VzIHdpdGggdGhlIGNob3NlbiB2YWx1ZSB3aGVuIHRoZXkgb2NjdXIgaW4gc2VxdWVuY2VzXG4gKiBAcGFyYW0gIHsoU3RyaW5nfFJlZ0V4cCl9IHJlcGxhY2VXaGF0IC0gdGhlIHZhbHVlIG9yIHBhdHRlcm4gdGhhdCBzaG91bGQgYmUgcmVwbGFjZWRcbiAqIEBwYXJhbSAgeyp9ICAgICAgICAgICAgICAgcmVwbGFjZVdpdGggLSB0aGUgcmVwbGFjZW1lbnQgdmFsdWVcbiAqIEByZXR1cm4ge09iamVjdH0gICAgICAgICAgICAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciA9IChyZXBsYWNlV2hhdCwgcmVwbGFjZVdpdGgpID0+ICh7XG4gIG9uRW5kUmVzdWx0KGVuZFJlc3VsdCkge1xuICAgIGlmIChyZXBsYWNlV2hhdCA9PSBudWxsIHx8IHJlcGxhY2VXaXRoID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cy4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGVuZFJlc3VsdC5yZXBsYWNlKHJlcGxhY2VXaGF0LCByZXBsYWNlV2l0aCk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyO1xuIl19","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n }\n\n // Do not touch if null or undefined\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIvcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyLmpzIl0sIm5hbWVzIjpbInJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciIsInJlcGxhY2VXaGF0IiwicmVwbGFjZVdpdGgiLCJvblN1YnN0aXR1dGlvbiIsInN1YnN0aXR1dGlvbiIsInJlc3VsdFNvRmFyIiwiRXJyb3IiLCJ0b1N0cmluZyIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiJBQUFBLElBQU1BLGlDQUFpQyxTQUFqQ0EsOEJBQWlDLENBQUNDLFdBQUQsRUFBY0MsV0FBZDtBQUFBLFNBQStCO0FBQ3BFQyxrQkFEb0UsMEJBQ3JEQyxZQURxRCxFQUN2Q0MsV0FEdUMsRUFDMUI7QUFDeEMsVUFBSUosZUFBZSxJQUFmLElBQXVCQyxlQUFlLElBQTFDLEVBQWdEO0FBQzlDLGNBQU0sSUFBSUksS0FBSixDQUNKLCtEQURJLENBQU47QUFHRDs7QUFFRDtBQUNBLFVBQUlGLGdCQUFnQixJQUFwQixFQUEwQjtBQUN4QixlQUFPQSxZQUFQO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsZUFBT0EsYUFBYUcsUUFBYixHQUF3QkMsT0FBeEIsQ0FBZ0NQLFdBQWhDLEVBQTZDQyxXQUE3QyxDQUFQO0FBQ0Q7QUFDRjtBQWRtRSxHQUEvQjtBQUFBLENBQXZDOztBQWlCQSxlQUFlRiw4QkFBZiIsImZpbGUiOiJyZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIgPSAocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgaWYgKHJlcGxhY2VXaGF0ID09IG51bGwgfHwgcmVwbGFjZVdpdGggPT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAncmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyIHJlcXVpcmVzIGF0IGxlYXN0IDIgYXJndW1lbnRzLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIERvIG5vdCB0b3VjaCBpZiBudWxsIG9yIHVuZGVmaW5lZFxuICAgIGlmIChzdWJzdGl0dXRpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHN1YnN0aXR1dGlvbi50b1N0cmluZygpLnJlcGxhY2UocmVwbGFjZVdoYXQsIHJlcGxhY2VXaXRoKTtcbiAgICB9XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyO1xuIl19","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial;\n // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n }\n // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2lubGluZUFycmF5VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiZGVmYXVsdHMiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiIsInNlcmlhbCIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJvcHRzIiwib25TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJyZXN1bHRTb0ZhciIsIkFycmF5IiwiaXNBcnJheSIsImFycmF5TGVuZ3RoIiwibGVuZ3RoIiwiaW5kZW50IiwibWF0Y2giLCJqb2luIiwic2VwYXJhdG9ySW5kZXgiLCJsYXN0SW5kZXhPZiIsInNsaWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxXQUFXO0FBQ2ZDLGFBQVcsRUFESTtBQUVmQyxlQUFhLEVBRkU7QUFHZkMsVUFBUTtBQUhPLENBQWpCOztBQU1BOzs7Ozs7OztBQVFBLElBQU1DLHlCQUF5QixTQUF6QkEsc0JBQXlCO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUUwsUUFBUjtBQUFBLFNBQXNCO0FBQ25ETSxrQkFEbUQsMEJBQ3BDQyxZQURvQyxFQUN0QkMsV0FEc0IsRUFDVDtBQUN4QztBQUNBLFVBQUlDLE1BQU1DLE9BQU4sQ0FBY0gsWUFBZCxDQUFKLEVBQWlDO0FBQy9CLFlBQU1JLGNBQWNKLGFBQWFLLE1BQWpDO0FBQ0EsWUFBTVgsWUFBWUksS0FBS0osU0FBdkI7QUFDQSxZQUFNQyxjQUFjRyxLQUFLSCxXQUF6QjtBQUNBLFlBQU1DLFNBQVNFLEtBQUtGLE1BQXBCO0FBQ0E7QUFDQTtBQUNBLFlBQU1VLFNBQVNMLFlBQVlNLEtBQVosQ0FBa0IsZ0JBQWxCLENBQWY7QUFDQSxZQUFJRCxNQUFKLEVBQVk7QUFDVk4seUJBQWVBLGFBQWFRLElBQWIsQ0FBa0JkLFlBQVlZLE9BQU8sQ0FBUCxDQUE5QixDQUFmO0FBQ0QsU0FGRCxNQUVPO0FBQ0xOLHlCQUFlQSxhQUFhUSxJQUFiLENBQWtCZCxZQUFZLEdBQTlCLENBQWY7QUFDRDtBQUNEO0FBQ0EsWUFBSUMsZUFBZVMsY0FBYyxDQUFqQyxFQUFvQztBQUNsQyxjQUFNSyxpQkFBaUJULGFBQWFVLFdBQWIsQ0FBeUJoQixTQUF6QixDQUF2QjtBQUNBTSx5QkFDRUEsYUFBYVcsS0FBYixDQUFtQixDQUFuQixFQUFzQkYsY0FBdEIsS0FDQ2IsU0FBU0YsU0FBVCxHQUFxQixFQUR0QixJQUVBLEdBRkEsR0FHQUMsV0FIQSxHQUlBSyxhQUFhVyxLQUFiLENBQW1CRixpQkFBaUIsQ0FBcEMsQ0FMRjtBQU1EO0FBQ0Y7QUFDRCxhQUFPVCxZQUFQO0FBQ0Q7QUE1QmtELEdBQXRCO0FBQUEsQ0FBL0I7O0FBK0JBLGVBQWVILHNCQUFmIiwiZmlsZSI6ImlubGluZUFycmF5VHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBkZWZhdWx0cyA9IHtcbiAgc2VwYXJhdG9yOiAnJyxcbiAgY29uanVuY3Rpb246ICcnLFxuICBzZXJpYWw6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBhcnJheSBzdWJzdGl0dXRpb24gdG8gYSBzdHJpbmcgY29udGFpbmluZyBhIGxpc3RcbiAqIEBwYXJhbSAge1N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gJyddIC0gdGhlIGNoYXJhY3RlciB0aGF0IHNlcGFyYXRlcyBlYWNoIGl0ZW1cbiAqIEBwYXJhbSAge1N0cmluZ30gW29wdHMuY29uanVuY3Rpb24gPSAnJ10gIC0gcmVwbGFjZSB0aGUgbGFzdCBzZXBhcmF0b3Igd2l0aCB0aGlzXG4gKiBAcGFyYW0gIHtCb29sZWFufSBbb3B0cy5zZXJpYWwgPSBmYWxzZV0gLSBpbmNsdWRlIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBjb25qdW5jdGlvbj8gKE94Zm9yZCBjb21tYSB1c2UtY2FzZSlcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgLSBhIFRlbXBsYXRlVGFnIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgPSAob3B0cyA9IGRlZmF1bHRzKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHJlc3VsdFNvRmFyKSB7XG4gICAgLy8gb25seSBvcGVyYXRlIG9uIGFycmF5c1xuICAgIGlmIChBcnJheS5pc0FycmF5KHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIGNvbnN0IGFycmF5TGVuZ3RoID0gc3Vic3RpdHV0aW9uLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNlcGFyYXRvciA9IG9wdHMuc2VwYXJhdG9yO1xuICAgICAgY29uc3QgY29uanVuY3Rpb24gPSBvcHRzLmNvbmp1bmN0aW9uO1xuICAgICAgY29uc3Qgc2VyaWFsID0gb3B0cy5zZXJpYWw7XG4gICAgICAvLyBqb2luIGVhY2ggaXRlbSBpbiB0aGUgYXJyYXkgaW50byBhIHN0cmluZyB3aGVyZSBlYWNoIGl0ZW0gaXMgc2VwYXJhdGVkIGJ5IHNlcGFyYXRvclxuICAgICAgLy8gYmUgc3VyZSB0byBtYWludGFpbiBpbmRlbnRhdGlvblxuICAgICAgY29uc3QgaW5kZW50ID0gcmVzdWx0U29GYXIubWF0Y2goLyhcXG4/W15cXFNcXG5dKykkLyk7XG4gICAgICBpZiAoaW5kZW50KSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5qb2luKHNlcGFyYXRvciArIGluZGVudFsxXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb24uam9pbihzZXBhcmF0b3IgKyAnICcpO1xuICAgICAgfVxuICAgICAgLy8gaWYgY29uanVuY3Rpb24gaXMgc2V0LCByZXBsYWNlIHRoZSBsYXN0IHNlcGFyYXRvciB3aXRoIGNvbmp1bmN0aW9uLCBidXQgb25seSBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN1YnN0aXR1dGlvblxuICAgICAgaWYgKGNvbmp1bmN0aW9uICYmIGFycmF5TGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBzZXBhcmF0b3JJbmRleCA9IHN1YnN0aXR1dGlvbi5sYXN0SW5kZXhPZihzZXBhcmF0b3IpO1xuICAgICAgICBzdWJzdGl0dXRpb24gPVxuICAgICAgICAgIHN1YnN0aXR1dGlvbi5zbGljZSgwLCBzZXBhcmF0b3JJbmRleCkgK1xuICAgICAgICAgIChzZXJpYWwgPyBzZXBhcmF0b3IgOiAnJykgK1xuICAgICAgICAgICcgJyArXG4gICAgICAgICAgY29uanVuY3Rpb24gK1xuICAgICAgICAgIHN1YnN0aXR1dGlvbi5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IGlubGluZUFycmF5VHJhbnNmb3JtZXI7XG4iXX0=","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyL3NwbGl0U3RyaW5nVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwicmVzdWx0U29GYXIiLCJzcGxpdEJ5IiwiaW5jbHVkZXMiLCJzcGxpdCIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSx5QkFBeUIsU0FBekJBLHNCQUF5QjtBQUFBLFNBQVk7QUFDekNDLGtCQUR5QywwQkFDMUJDLFlBRDBCLEVBQ1pDLFdBRFksRUFDQztBQUN4QyxVQUFJQyxXQUFXLElBQVgsSUFBbUIsT0FBT0EsT0FBUCxLQUFtQixRQUExQyxFQUFvRDtBQUNsRCxZQUFJLE9BQU9GLFlBQVAsS0FBd0IsUUFBeEIsSUFBb0NBLGFBQWFHLFFBQWIsQ0FBc0JELE9BQXRCLENBQXhDLEVBQXdFO0FBQ3RFRix5QkFBZUEsYUFBYUksS0FBYixDQUFtQkYsT0FBbkIsQ0FBZjtBQUNEO0FBQ0YsT0FKRCxNQUlPO0FBQ0wsY0FBTSxJQUFJRyxLQUFKLENBQVUscURBQVYsQ0FBTjtBQUNEO0FBQ0QsYUFBT0wsWUFBUDtBQUNEO0FBVndDLEdBQVo7QUFBQSxDQUEvQjs7QUFhQSxlQUFlRixzQkFBZiIsImZpbGUiOiJzcGxpdFN0cmluZ1RyYW5zZm9ybWVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lciA9IHNwbGl0QnkgPT4gKHtcbiAgb25TdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCByZXN1bHRTb0Zhcikge1xuICAgIGlmIChzcGxpdEJ5ICE9IG51bGwgJiYgdHlwZW9mIHNwbGl0QnkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAodHlwZW9mIHN1YnN0aXR1dGlvbiA9PT0gJ3N0cmluZycgJiYgc3Vic3RpdHV0aW9uLmluY2x1ZGVzKHNwbGl0QnkpKSB7XG4gICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbi5zcGxpdChzcGxpdEJ5KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgbmVlZCB0byBzcGVjaWZ5IGEgc3RyaW5nIGNoYXJhY3RlciB0byBzcGxpdCBieS4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbjtcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyO1xuIl19","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n if (isValidValue(substitution)) {\n return substitution;\n }\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiaXNWYWxpZFZhbHVlIiwieCIsIk51bWJlciIsImlzTmFOIiwicmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lciIsIm9uU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxlQUFlLFNBQWZBLFlBQWU7QUFBQSxTQUNuQkMsS0FBSyxJQUFMLElBQWEsQ0FBQ0MsT0FBT0MsS0FBUCxDQUFhRixDQUFiLENBQWQsSUFBaUMsT0FBT0EsQ0FBUCxLQUFhLFNBRDNCO0FBQUEsQ0FBckI7O0FBR0EsSUFBTUcscUNBQXFDLFNBQXJDQSxrQ0FBcUM7QUFBQSxTQUFPO0FBQ2hEQyxrQkFEZ0QsMEJBQ2pDQyxZQURpQyxFQUNuQjtBQUMzQixVQUFJQyxNQUFNQyxPQUFOLENBQWNGLFlBQWQsQ0FBSixFQUFpQztBQUMvQixlQUFPQSxhQUFhRyxNQUFiLENBQW9CVCxZQUFwQixDQUFQO0FBQ0Q7QUFDRCxVQUFJQSxhQUFhTSxZQUFiLENBQUosRUFBZ0M7QUFDOUIsZUFBT0EsWUFBUDtBQUNEO0FBQ0QsYUFBTyxFQUFQO0FBQ0Q7QUFUK0MsR0FBUDtBQUFBLENBQTNDOztBQVlBLGVBQWVGLGtDQUFmIiwiZmlsZSI6InJlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ZhbGlkVmFsdWUgPSB4ID0+XG4gIHggIT0gbnVsbCAmJiAhTnVtYmVyLmlzTmFOKHgpICYmIHR5cGVvZiB4ICE9PSAnYm9vbGVhbic7XG5cbmNvbnN0IHJlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXIgPSAoKSA9PiAoe1xuICBvblN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzdWJzdGl0dXRpb24pKSB7XG4gICAgICByZXR1cm4gc3Vic3RpdHV0aW9uLmZpbHRlcihpc1ZhbGlkVmFsdWUpO1xuICAgIH1cbiAgICBpZiAoaXNWYWxpZFZhbHVlKHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyO1xuIl19","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzL2NvbW1hTGlzdHMuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsImNvbW1hTGlzdHMiLCJzZXBhcmF0b3IiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZ0JBQXhCO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0MscUJBQVAsTUFBa0MsMEJBQWxDOztBQUVBLElBQU1DLGFBQWEsSUFBSUosV0FBSixDQUNqQkUsdUJBQXVCLEVBQUVHLFdBQVcsR0FBYixFQUF2QixDQURpQixFQUVqQkosc0JBRmlCLEVBR2pCRSxxQkFIaUIsQ0FBbkI7O0FBTUEsZUFBZUMsVUFBZiIsImZpbGUiOiJjb21tYUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IGNvbW1hTGlzdHMgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0cztcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaListsAnd;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzQW5kL2NvbW1hTGlzdHNBbmQuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsImNvbW1hTGlzdHNBbmQiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZ0JBQWdCLElBQUlKLFdBQUosQ0FDcEJFLHVCQUF1QixFQUFFRyxXQUFXLEdBQWIsRUFBa0JDLGFBQWEsS0FBL0IsRUFBdkIsQ0FEb0IsRUFFcEJMLHNCQUZvQixFQUdwQkUscUJBSG9CLENBQXRCOztBQU1BLGVBQWVDLGFBQWYiLCJmaWxlIjoiY29tbWFMaXN0c0FuZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzQW5kID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnYW5kJyB9KSxcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFMaXN0c0FuZDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), stripIndentTransformer, trimResultTransformer);\n\nexport default commaListsOr;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYUxpc3RzT3IvY29tbWFMaXN0c09yLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJjb21tYUxpc3RzT3IiLCJzZXBhcmF0b3IiLCJjb25qdW5jdGlvbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZUFBZSxJQUFJSixXQUFKLENBQ25CRSx1QkFBdUIsRUFBRUcsV0FBVyxHQUFiLEVBQWtCQyxhQUFhLElBQS9CLEVBQXZCLENBRG1CLEVBRW5CTCxzQkFGbUIsRUFHbkJFLHFCQUhtQixDQUFyQjs7QUFNQSxlQUFlQyxZQUFmIiwiZmlsZSI6ImNvbW1hTGlzdHNPci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBjb21tYUxpc3RzT3IgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIoeyBzZXBhcmF0b3I6ICcsJywgY29uanVuY3Rpb246ICdvcicgfSksXG4gIHN0cmlwSW5kZW50VHJhbnNmb3JtZXIsXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hTGlzdHNPcjtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\n\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\n\nexport default html;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9odG1sL2h0bWwuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJzdHJpcEluZGVudFRyYW5zZm9ybWVyIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInNwbGl0U3RyaW5nVHJhbnNmb3JtZXIiLCJyZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIiwiaHRtbCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxrQ0FBUCxNQUErQyx1Q0FBL0M7O0FBRUEsSUFBTUMsT0FBTyxJQUFJTixXQUFKLENBQ1hJLHVCQUF1QixJQUF2QixDQURXLEVBRVhDLGtDQUZXLEVBR1hILHNCQUhXLEVBSVhELHNCQUpXLEVBS1hFLHFCQUxXLENBQWI7O0FBUUEsZUFBZUcsSUFBZiIsImZpbGUiOiJodG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgc3BsaXRTdHJpbmdUcmFuc2Zvcm1lciBmcm9tICcuLi9zcGxpdFN0cmluZ1RyYW5zZm9ybWVyJztcbmltcG9ydCByZW1vdmVOb25QcmludGluZ1ZhbHVlc1RyYW5zZm9ybWVyIGZyb20gJy4uL3JlbW92ZU5vblByaW50aW5nVmFsdWVzVHJhbnNmb3JtZXInO1xuXG5jb25zdCBodG1sID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyKCdcXG4nKSxcbiAgcmVtb3ZlTm9uUHJpbnRpbmdWYWx1ZXNUcmFuc2Zvcm1lcixcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgaHRtbDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\n\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(//g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\n\nexport default safeHtml;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zYWZlSHRtbC9zYWZlSHRtbC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwic3BsaXRTdHJpbmdUcmFuc2Zvcm1lciIsInJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lciIsInNhZmVIdG1sIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLDhCQUFQLE1BQTJDLG1DQUEzQzs7QUFFQSxJQUFNQyxXQUFXLElBQUlOLFdBQUosQ0FDZkksdUJBQXVCLElBQXZCLENBRGUsRUFFZkYsc0JBRmUsRUFHZkQsc0JBSGUsRUFJZkUscUJBSmUsRUFLZkUsK0JBQStCLElBQS9CLEVBQXFDLE9BQXJDLENBTGUsRUFNZkEsK0JBQStCLElBQS9CLEVBQXFDLE1BQXJDLENBTmUsRUFPZkEsK0JBQStCLElBQS9CLEVBQXFDLE1BQXJDLENBUGUsRUFRZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBUmUsRUFTZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBVGUsRUFVZkEsK0JBQStCLElBQS9CLEVBQXFDLFFBQXJDLENBVmUsQ0FBakI7O0FBYUEsZUFBZUMsUUFBZiIsImZpbGUiOiJzYWZlSHRtbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHNwbGl0U3RyaW5nVHJhbnNmb3JtZXIgZnJvbSAnLi4vc3BsaXRTdHJpbmdUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcic7XG5cbmNvbnN0IHNhZmVIdG1sID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzcGxpdFN0cmluZ1RyYW5zZm9ybWVyKCdcXG4nKSxcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcixcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLyYvZywgJyZhbXA7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvPC9nLCAnJmx0OycpLFxuICByZXBsYWNlU3Vic3RpdHV0aW9uVHJhbnNmb3JtZXIoLz4vZywgJyZndDsnKSxcbiAgcmVwbGFjZVN1YnN0aXR1dGlvblRyYW5zZm9ybWVyKC9cIi9nLCAnJnF1b3Q7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvJy9nLCAnJiN4Mjc7JyksXG4gIHJlcGxhY2VTdWJzdGl0dXRpb25UcmFuc2Zvcm1lcigvYC9nLCAnJiN4NjA7JyksXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBzYWZlSHRtbDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\n\nexport default oneLine;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lL29uZUxpbmUuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxVQUFVLElBQUlILFdBQUosQ0FDZEUseUJBQXlCLGlCQUF6QixFQUE0QyxHQUE1QyxDQURjLEVBRWRELHFCQUZjLENBQWhCOztBQUtBLGVBQWVFLE9BQWYiLCJmaWxlIjoib25lTGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmUgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcigvKD86XFxuKD86XFxzKikpKy9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lO1xuIl19","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\n\nexport default oneLineTrim;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lVHJpbS9vbmVMaW5lVHJpbS5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsIm9uZUxpbmVUcmltIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxjQUFjLElBQUlILFdBQUosQ0FDbEJFLHlCQUF5QixZQUF6QixFQUF1QyxFQUF2QyxDQURrQixFQUVsQkQscUJBRmtCLENBQXBCOztBQUtBLGVBQWVFLFdBQWYiLCJmaWxlIjoib25lTGluZVRyaW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lVHJpbSA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXG5cXHMqKS9nLCAnJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVUcmltO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({ separator: ',' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0cy9vbmVMaW5lQ29tbWFMaXN0cy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lQ29tbWFMaXN0cyIsInNlcGFyYXRvciJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyx3QkFBUCxNQUFxQyw2QkFBckM7O0FBRUEsSUFBTUMsb0JBQW9CLElBQUlKLFdBQUosQ0FDeEJDLHVCQUF1QixFQUFFSSxXQUFXLEdBQWIsRUFBdkIsQ0FEd0IsRUFFeEJGLHlCQUF5QixVQUF6QixFQUFxQyxHQUFyQyxDQUZ3QixFQUd4QkQscUJBSHdCLENBQTFCOztBQU1BLGVBQWVFLGlCQUFmIiwiZmlsZSI6Im9uZUxpbmVDb21tYUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lQ29tbWFMaXN0cyA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcih7IHNlcGFyYXRvcjogJywnIH0pLFxuICByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIoLyg/OlxccyspL2csICcgJyksXG4gIHRyaW1SZXN1bHRUcmFuc2Zvcm1lcixcbik7XG5cbmV4cG9ydCBkZWZhdWx0IG9uZUxpbmVDb21tYUxpc3RzO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'or' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaListsOr;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c09yL29uZUxpbmVDb21tYUxpc3RzT3IuanMiXSwibmFtZXMiOlsiVGVtcGxhdGVUYWciLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwicmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIiwib25lTGluZUNvbW1hTGlzdHNPciIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyxzQkFBc0IsSUFBSUosV0FBSixDQUMxQkMsdUJBQXVCLEVBQUVJLFdBQVcsR0FBYixFQUFrQkMsYUFBYSxJQUEvQixFQUF2QixDQUQwQixFQUUxQkgseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRjBCLEVBRzFCRCxxQkFIMEIsQ0FBNUI7O0FBTUEsZUFBZUUsbUJBQWYiLCJmaWxlIjoib25lTGluZUNvbW1hTGlzdHNPci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lciBmcm9tICcuLi9pbmxpbmVBcnJheVRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcbmltcG9ydCByZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgb25lTGluZUNvbW1hTGlzdHNPciA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcih7IHNlcGFyYXRvcjogJywnLCBjb25qdW5jdGlvbjogJ29yJyB9KSxcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXHMrKS9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lQ29tbWFMaXN0c09yO1xuIl19","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({ separator: ',', conjunction: 'and' }), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineCommaListsAnd;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lQ29tbWFMaXN0c0FuZC9vbmVMaW5lQ29tbWFMaXN0c0FuZC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsImlubGluZUFycmF5VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJyZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXIiLCJvbmVMaW5lQ29tbWFMaXN0c0FuZCIsInNlcGFyYXRvciIsImNvbmp1bmN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxXQUFQLE1BQXdCLGdCQUF4QjtBQUNBLE9BQU9DLHNCQUFQLE1BQW1DLDJCQUFuQztBQUNBLE9BQU9DLHFCQUFQLE1BQWtDLDBCQUFsQztBQUNBLE9BQU9DLHdCQUFQLE1BQXFDLDZCQUFyQzs7QUFFQSxJQUFNQyx1QkFBdUIsSUFBSUosV0FBSixDQUMzQkMsdUJBQXVCLEVBQUVJLFdBQVcsR0FBYixFQUFrQkMsYUFBYSxLQUEvQixFQUF2QixDQUQyQixFQUUzQkgseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRjJCLEVBRzNCRCxxQkFIMkIsQ0FBN0I7O0FBTUEsZUFBZUUsb0JBQWYiLCJmaWxlIjoib25lTGluZUNvbW1hTGlzdHNBbmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGVtcGxhdGVUYWcgZnJvbSAnLi4vVGVtcGxhdGVUYWcnO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5pbXBvcnQgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3JlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IG9uZUxpbmVDb21tYUxpc3RzQW5kID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyKHsgc2VwYXJhdG9yOiAnLCcsIGNvbmp1bmN0aW9uOiAnYW5kJyB9KSxcbiAgcmVwbGFjZVJlc3VsdFRyYW5zZm9ybWVyKC8oPzpcXHMrKS9nLCAnICcpLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBvbmVMaW5lQ29tbWFMaXN0c0FuZDtcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\n\nexport default inlineLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVMaXN0cy9pbmxpbmVMaXN0cy5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJpbmxpbmVBcnJheVRyYW5zZm9ybWVyIiwidHJpbVJlc3VsdFRyYW5zZm9ybWVyIiwiaW5saW5lTGlzdHMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFdBQVAsTUFBd0IsZ0JBQXhCO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0Msc0JBQVAsTUFBbUMsMkJBQW5DO0FBQ0EsT0FBT0MscUJBQVAsTUFBa0MsMEJBQWxDOztBQUVBLElBQU1DLGNBQWMsSUFBSUosV0FBSixDQUNsQkUsc0JBRGtCLEVBRWxCRCxzQkFGa0IsRUFHbEJFLHFCQUhrQixDQUFwQjs7QUFNQSxlQUFlQyxXQUFmIiwiZmlsZSI6ImlubGluZUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgZnJvbSAnLi4vaW5saW5lQXJyYXlUcmFuc2Zvcm1lcic7XG5pbXBvcnQgdHJpbVJlc3VsdFRyYW5zZm9ybWVyIGZyb20gJy4uL3RyaW1SZXN1bHRUcmFuc2Zvcm1lcic7XG5cbmNvbnN0IGlubGluZUxpc3RzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBpbmxpbmVBcnJheVRyYW5zZm9ybWVyLFxuICBzdHJpcEluZGVudFRyYW5zZm9ybWVyLFxuICB0cmltUmVzdWx0VHJhbnNmb3JtZXIsXG4pO1xuXG5leHBvcnQgZGVmYXVsdCBpbmxpbmVMaXN0cztcbiJdfQ==","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\n\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\n\nexport default oneLineInlineLists;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vbmVMaW5lSW5saW5lTGlzdHMvb25lTGluZUlubGluZUxpc3RzLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciIsIm9uZUxpbmVJbmxpbmVMaXN0cyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7QUFDQSxPQUFPQyx3QkFBUCxNQUFxQyw2QkFBckM7O0FBRUEsSUFBTUMscUJBQXFCLElBQUlKLFdBQUosQ0FDekJDLHNCQUR5QixFQUV6QkUseUJBQXlCLFVBQXpCLEVBQXFDLEdBQXJDLENBRnlCLEVBR3pCRCxxQkFIeUIsQ0FBM0I7O0FBTUEsZUFBZUUsa0JBQWYiLCJmaWxlIjoib25lTGluZUlubGluZUxpc3RzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBpbmxpbmVBcnJheVRyYW5zZm9ybWVyIGZyb20gJy4uL2lubGluZUFycmF5VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuaW1wb3J0IHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi9yZXBsYWNlUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBvbmVMaW5lSW5saW5lTGlzdHMgPSBuZXcgVGVtcGxhdGVUYWcoXG4gIGlubGluZUFycmF5VHJhbnNmb3JtZXIsXG4gIHJlcGxhY2VSZXN1bHRUcmFuc2Zvcm1lcigvKD86XFxzKykvZywgJyAnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgb25lTGluZUlubGluZUxpc3RzO1xuIl19","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\n\nexport default stripIndent;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudC9zdHJpcEluZGVudC5qcyJdLCJuYW1lcyI6WyJUZW1wbGF0ZVRhZyIsInN0cmlwSW5kZW50VHJhbnNmb3JtZXIiLCJ0cmltUmVzdWx0VHJhbnNmb3JtZXIiLCJzdHJpcEluZGVudCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsY0FBYyxJQUFJSCxXQUFKLENBQ2xCQyxzQkFEa0IsRUFFbEJDLHFCQUZrQixDQUFwQjs7QUFLQSxlQUFlQyxXQUFmIiwiZmlsZSI6InN0cmlwSW5kZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRlbXBsYXRlVGFnIGZyb20gJy4uL1RlbXBsYXRlVGFnJztcbmltcG9ydCBzdHJpcEluZGVudFRyYW5zZm9ybWVyIGZyb20gJy4uL3N0cmlwSW5kZW50VHJhbnNmb3JtZXInO1xuaW1wb3J0IHRyaW1SZXN1bHRUcmFuc2Zvcm1lciBmcm9tICcuLi90cmltUmVzdWx0VHJhbnNmb3JtZXInO1xuXG5jb25zdCBzdHJpcEluZGVudCA9IG5ldyBUZW1wbGF0ZVRhZyhcbiAgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lcixcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaXBJbmRlbnQ7XG4iXX0=","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\n\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\n\nexport default stripIndents;\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpcEluZGVudHMvc3RyaXBJbmRlbnRzLmpzIl0sIm5hbWVzIjpbIlRlbXBsYXRlVGFnIiwic3RyaXBJbmRlbnRUcmFuc2Zvcm1lciIsInRyaW1SZXN1bHRUcmFuc2Zvcm1lciIsInN0cmlwSW5kZW50cyJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBUCxNQUF3QixnQkFBeEI7QUFDQSxPQUFPQyxzQkFBUCxNQUFtQywyQkFBbkM7QUFDQSxPQUFPQyxxQkFBUCxNQUFrQywwQkFBbEM7O0FBRUEsSUFBTUMsZUFBZSxJQUFJSCxXQUFKLENBQ25CQyx1QkFBdUIsS0FBdkIsQ0FEbUIsRUFFbkJDLHFCQUZtQixDQUFyQjs7QUFLQSxlQUFlQyxZQUFmIiwiZmlsZSI6InN0cmlwSW5kZW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUZW1wbGF0ZVRhZyBmcm9tICcuLi9UZW1wbGF0ZVRhZyc7XG5pbXBvcnQgc3RyaXBJbmRlbnRUcmFuc2Zvcm1lciBmcm9tICcuLi9zdHJpcEluZGVudFRyYW5zZm9ybWVyJztcbmltcG9ydCB0cmltUmVzdWx0VHJhbnNmb3JtZXIgZnJvbSAnLi4vdHJpbVJlc3VsdFRyYW5zZm9ybWVyJztcblxuY29uc3Qgc3RyaXBJbmRlbnRzID0gbmV3IFRlbXBsYXRlVGFnKFxuICBzdHJpcEluZGVudFRyYW5zZm9ybWVyKCdhbGwnKSxcbiAgdHJpbVJlc3VsdFRyYW5zZm9ybWVyLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgc3RyaXBJbmRlbnRzO1xuIl19","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport { IGatsbyImageData } from \".\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320,\n 654,\n 768,\n 1024,\n 1366,\n 1600,\n 1920,\n 2048,\n 2560,\n 3440,\n 3840,\n 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 400\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?:\n | ((args: IGatsbyImageHelperArgs) => string | undefined)\n | string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.substr(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout = `constrained`,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: formatFromFilename(filename),\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n //\n const formats = new Set(args.formats || [`auto`, `webp`])\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = { images: result, layout }\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained.`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(stripIndent`\n The requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n} from \"../image-utils\"\nconst imageCache = new Set()\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\n\nexport type FileNode = Node & {\n childImageSharp?: Node & {\n gatsbyImageData?: IGatsbyImageData\n }\n}\n\nexport const getImage = (file: FileNode): IGatsbyImageData | undefined =>\n file?.childImageSharp?.gatsbyImageData\n\nexport const getSrc = (file: FileNode): string | undefined =>\n file?.childImageSharp?.gatsbyImageData?.images?.fallback?.src\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!global.GATSBY___IMAGE) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!global.GATSBY___IMAGE) {\n wrapperStyle.display = `inline-block`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport async function applyPolyfill(\n ref: RefObject\n): Promise {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\n}\n\nexport function useGatsbyImage({\n pluginName = `useGatsbyImage`,\n breakpoints = EVERY_BREAKPOINT,\n ...args\n}: IGatsbyImageHelperArgs): IGatsbyImageData {\n return generateImageData({ pluginName, breakpoints, ...args })\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: any,\n loading?: \"eager\" | \"lazy\",\n toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject,\n style: CSSProperties = {}\n): MainImageProps {\n const onLoad: ReactEventHandler = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!global.GATSBY___IMAGE) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n onLoad,\n ref,\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!global.GATSBY___IMAGE) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function useArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \n\nimport React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer: string | null = null\n if (layout === `fullWidth`) {\n sizer = ``\n }\n if (layout === `constrained`) {\n sizer = `