{"version":3,"file":"app-bfeeb4de79fa1551a836.js","mappings":"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","sources":["webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-react-router-scroll/index.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://dti-digital-library-revamp-frontend/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://dti-digital-library-revamp-frontend/./.cache/api-runner-browser-plugins.js","webpack://dti-digital-library-revamp-frontend/./.cache/api-runner-browser.js","webpack://dti-digital-library-revamp-frontend/./.cache/create-content-digest-browser-shim.js","webpack://dti-digital-library-revamp-frontend/./node_modules/mitt/dist/mitt.es.js","webpack://dti-digital-library-revamp-frontend/./.cache/emitter.js","webpack://dti-digital-library-revamp-frontend/./.cache/normalize-page-path.js","webpack://dti-digital-library-revamp-frontend/./.cache/find-path.js","webpack://dti-digital-library-revamp-frontend/./.cache/slice/server-slice-renderer.js","webpack://dti-digital-library-revamp-frontend/./.cache/slice/server-slice.js","webpack://dti-digital-library-revamp-frontend/./.cache/slice/inline-slice.js","webpack://dti-digital-library-revamp-frontend/./.cache/slice.js","webpack://dti-digital-library-revamp-frontend/./.cache/gatsby-browser-entry.js","webpack://dti-digital-library-revamp-frontend/./.cache/prefetch.js","webpack://dti-digital-library-revamp-frontend/./.cache/loader.js","webpack://dti-digital-library-revamp-frontend/./.cache/head/components/fire-callback-in-effect.js","webpack://dti-digital-library-revamp-frontend/./.cache/head/constants.js","webpack://dti-digital-library-revamp-frontend/./.cache/head/utils.js","webpack://dti-digital-library-revamp-frontend/./.cache/head/head-export-handler-for-browser.js","webpack://dti-digital-library-revamp-frontend/./.cache/page-renderer.js","webpack://dti-digital-library-revamp-frontend/./.cache/route-announcer-props.js","webpack://dti-digital-library-revamp-frontend/./.cache/navigation.js","webpack://dti-digital-library-revamp-frontend/./node_modules/shallow-compare/es/index.js","webpack://dti-digital-library-revamp-frontend/./.cache/ensure-resources.js","webpack://dti-digital-library-revamp-frontend/./.cache/production-app.js","webpack://dti-digital-library-revamp-frontend/./.cache/public-page-renderer-prod.js","webpack://dti-digital-library-revamp-frontend/./.cache/public-page-renderer.js","webpack://dti-digital-library-revamp-frontend/./.cache/react-dom-utils.js","webpack://dti-digital-library-revamp-frontend/./.cache/redirect-utils.js","webpack://dti-digital-library-revamp-frontend/./.cache/register-service-worker.js","webpack://dti-digital-library-revamp-frontend/./.cache/slice/context.js","webpack://dti-digital-library-revamp-frontend/./.cache/static-query.js","webpack://dti-digital-library-revamp-frontend/./.cache/context-utils.js","webpack://dti-digital-library-revamp-frontend/./.cache/strip-prefix.js","webpack://dti-digital-library-revamp-frontend/./gatsby-browser.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-plugin-google-gtag/gatsby-browser.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://dti-digital-library-revamp-frontend/./node_modules/invariant/browser.js","webpack://dti-digital-library-revamp-frontend/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://dti-digital-library-revamp-frontend/./node_modules/react-server-dom-webpack/index.js","webpack://dti-digital-library-revamp-frontend/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://dti-digital-library-revamp-frontend/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://dti-digital-library-revamp-frontend/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://dti-digital-library-revamp-frontend/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://dti-digital-library-revamp-frontend/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://dti-digital-library-revamp-frontend/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://dti-digital-library-revamp-frontend/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["\"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\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-audio-js\": () => import(\"./../../../src/pages/audio.js\" /* webpackChunkName: \"component---src-pages-audio-js\" */),\n \"component---src-pages-causepapers-js\": () => import(\"./../../../src/pages/causepapers/[...].js\" /* webpackChunkName: \"component---src-pages-causepapers-js\" */),\n \"component---src-pages-collection-js\": () => import(\"./../../../src/pages/collection.js\" /* webpackChunkName: \"component---src-pages-collection-js\" */),\n \"component---src-pages-iiif-image-api-compliance-js\": () => import(\"./../../../src/pages/iiif-image-API-compliance.js\" /* webpackChunkName: \"component---src-pages-iiif-image-api-compliance-js\" */),\n \"component---src-pages-search-js\": () => import(\"./../../../src/pages/search.js\" /* webpackChunkName: \"component---src-pages-search-js\" */),\n \"component---src-pages-video-js\": () => import(\"./../../../src/pages/video.js\" /* webpackChunkName: \"component---src-pages-video-js\" */),\n \"component---src-templates-all-collections-template-js\": () => import(\"./../../../src/templates/allCollectionsTemplate.js\" /* webpackChunkName: \"component---src-templates-all-collections-template-js\" */),\n \"component---src-templates-causepapers-overview-template-js\": () => import(\"./../../../src/templates/causepapersOverviewTemplate.js\" /* webpackChunkName: \"component---src-templates-causepapers-overview-template-js\" */),\n \"component---src-templates-collection-template-js\": () => import(\"./../../../src/templates/collectionTemplate.js\" /* webpackChunkName: \"component---src-templates-collection-template-js\" */),\n \"component---src-templates-collection-template-v-2-js\": () => import(\"./../../../src/templates/collectionTemplate-v2.js\" /* webpackChunkName: \"component---src-templates-collection-template-v-2-js\" */),\n \"component---src-templates-home-template-js\": () => import(\"./../../../src/templates/homeTemplate.js\" /* webpackChunkName: \"component---src-templates-home-template-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Discover York Digital Library\",\"short_name\":\"Discover York\",\"start_url\":\"/\",\"background_color\":\"#ffffff\",\"theme_color\":\"#0c5a73\",\"display\":\"minimal-ui\",\"icon\":\"src/images/uoy-discover-favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"e675d2ff7f8e09c3cb57828ea8f3fb92\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-google-gtag/gatsby-browser.js'),\n options: {\"plugins\":[],\"trackingIds\":[\"G-C9W6RV5DDD\"],\"gtagConfig\":{\"optimize_id\":\"OPT_CONTAINER_ID\",\"anonymize_ip\":true,\"cookie_expires\":0},\"pluginConfig\":{\"head\":true,\"respectDNT\":true,\"delayOnRouteUpdate\":0,\"exclude\":[],\"origin\":\"https://www.googletagmanager.com\"}},\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","// \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","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\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","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","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","/**\r\n * Implement Gatsby's Browser APIs in this file.\r\n *\r\n * See: https://www.gatsbyjs.com/docs/browser-apis/\r\n */\r\n\r\nimport './src/styles/global.css';\r\nimport './src/styles/metadata.css';\r\nimport './src/styles/custom-styles.css';\r\nimport './src/styles/search-styles.css';\r\nimport './src/styles/homepage-styles.css';\r\n\r\n// Universal Viewer\r\nimport './node_modules/universalviewer/dist/esm/index.css';\r\n\r\n// Cookie Banner\r\nimport './src/styles/cookie-banner.css';\r\n\r\n// Top Banner\r\nimport './src/styles/top-banner.css';\r\n\r\n// Add external stylesheets\r\nexport const onClientEntry = () => {\r\n\t// Load Typekit stylesheet\r\n\tconst typekitLink = document.createElement('link');\r\n\ttypekitLink.rel = 'preload';\r\n typekitLink.as = 'style';\r\n typekitLink.onload = () => typekitLink.rel = 'stylesheet';\r\n\ttypekitLink.href = 'https://use.typekit.net/dvj8rpp.css';\r\n\tdocument.head.append(typekitLink);\r\n\r\n\t// Load UoY main stylesheets\r\n\tconst globalStyles = document.createElement('link');\r\n\tglobalStyles.rel = 'preload';\r\n globalStyles.as = 'style';\r\n globalStyles.onload = () => globalStyles.rel = 'stylesheet';\r\n\tglobalStyles.href = 'https://www.york.ac.uk/static/stable/css/styles.min.css';\r\n\tglobalStyles.type = 'text/css';\r\n\tglobalStyles.media = 'screen';\r\n\tdocument.head.append(globalStyles);\r\n\r\n\tconst printStyles = document.createElement('link');\r\n\tprintStyles.rel = 'stylesheet';\r\n\tprintStyles.href = 'https://www.york.ac.uk/static/stable/css/print.min.css';\r\n\tprintStyles.media = 'print';\r\n\tdocument.head.append(printStyles);\r\n};\r\n","\"use strict\";\n\nexports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n if (process.env.NODE_ENV !== \"production\" || typeof gtag !== \"function\") {\n return null;\n }\n var pluginConfig = pluginOptions.pluginConfig || {};\n var pathIsExcluded = location && typeof window.excludeGtagPaths !== \"undefined\" && window.excludeGtagPaths.some(function (rx) {\n return rx.test(location.pathname);\n });\n if (pathIsExcluded) return null;\n\n // wrap inside a timeout to make sure react-helmet is done with its changes (https://github.com/gatsbyjs/gatsby/issues/11592)\n var sendPageView = function sendPageView() {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n };\n var _pluginConfig$delayOn = pluginConfig.delayOnRouteUpdate,\n delayOnRouteUpdate = _pluginConfig$delayOn === void 0 ? 0 : _pluginConfig$delayOn;\n if (\"requestAnimationFrame\" in window) {\n requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n return setTimeout(sendPageView, delayOnRouteUpdate);\n });\n });\n } else {\n // Delay by 32ms to simulate 2 requestOnAnimationFrame calls\n setTimeout(sendPageView, 32 + delayOnRouteUpdate);\n }\n return null;\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `