gatsby 5.9.0 → 5.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/build-html.js +4 -0
- package/dist/commands/build-html.js.map +1 -1
- package/dist/utils/start-server.js +25 -5
- package/dist/utils/start-server.js.map +1 -1
- package/dist/utils/webpack/get-ssr-chunk-hashes.js +6 -2
- package/dist/utils/webpack/get-ssr-chunk-hashes.js.map +1 -1
- package/dist/utils/webpack/utils/is-file-inside-compilations.d.ts +7 -0
- package/dist/utils/webpack/utils/is-file-inside-compilations.js +37 -0
- package/dist/utils/webpack/utils/is-file-inside-compilations.js.map +1 -0
- package/package.json +3 -3
|
@@ -31,6 +31,7 @@ var _stitching = require("../utils/slices/stitching");
|
|
|
31
31
|
var _pageMode = require("../utils/page-mode");
|
|
32
32
|
var _extractUndefinedGlobal = require("../utils/extract-undefined-global");
|
|
33
33
|
var _pageData = require("../utils/page-data");
|
|
34
|
+
var _isFileInsideCompilations = require("../utils/webpack/utils/is-file-inside-compilations");
|
|
34
35
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
36
|
function _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; }
|
|
36
37
|
// TODO
|
|
@@ -168,6 +169,9 @@ const doBuildRenderer = async (directory, webpackConfig, stage) => {
|
|
|
168
169
|
if (stats !== null && stats !== void 0 && stats.hasErrors()) {
|
|
169
170
|
_reporter.default.panicOnBuild((0, _webpackErrorUtils.structureWebpackErrors)(stage, stats.compilation.errors));
|
|
170
171
|
}
|
|
172
|
+
if (stage === `develop-html`) {
|
|
173
|
+
(0, _isFileInsideCompilations.setFilesFromDevelopHtmlCompilation)(stats.compilation);
|
|
174
|
+
}
|
|
171
175
|
|
|
172
176
|
// render-page.js is hard coded in webpack.config
|
|
173
177
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-html.js","names":["isPreview","process","env","GATSBY_IS_PREVIEW","devssrWebpackCompiler","SSRBundleReceivedInvalidEvent","SSRBundleWillInvalidate","devSSRWillInvalidate","activeRecompilations","getDevSSRWebpack","gatsby_executing_command","Error","watcher","compiler","recompileAndResumeWatching","allowTimedFallback","isResolved","Promise","resolve","stopWatching","suspend","timeout","finish","emitter","off","clearTimeout","on","resume","setTimeout","needToRecompileSSRBundle","oldHash","newHash","runWebpack","compilerConfig","stage","directory","isDevSSREnabledAndViable","GATSBY_EXPERIMENTAL_DEV_SSR","reject","webpack","hooks","invalid","tap","isFirstCompile","watch","ignored","err","stats","emit","hash","restartWorker","require","ROUTES_DIRECTORY","close","build","then","doBuildRenderer","webpackConfig","hasErrors","reporter","panicOnBuild","structureWebpackErrors","compilation","errors","rendererPath","doBuildPartialHydrationRenderer","buildRenderer","program","parentSpan","config","buildPartialHydrationRenderer","rule","module","rules","match","test","use","Array","isArray","push","loader","cache","output","path","join","alias","e","deleteRenderer","fs","remove","renderHTMLQueue","workerPool","activity","htmlComponentRendererPath","pages","Stage","BuildHTML","envVars","NODE_ENV","gatsby_log_level","segments","sessionId","Date","now","webpackCompilationHash","store","getState","renderHTML","single","renderHTMLProd","renderHTMLDev","uniqueUnsafeBuiltinUsedStacks","Set","Bluebird","map","pageSegment","renderHTMLResult","paths","htmlRenderMeta","seenErrors","errorMessages","Map","all","Object","entries","previewErrors","pagePath","error","has","stack","set","pagePaths","add","prettyError","createErrorFromString","errorMessageStr","codeFrame","errorMessage","get","value","values","p","id","context","dispatch","type","payload","GATSBY_SLICES","slicesPropsPerPage","_pagePath","arrayOfUsages","unsafeBuiltinsUsageByPagePath","unsafeUsageStack","tick","length","size","console","warn","unsafeBuiltinUsedStack","warningMessage","renderPartialHydrationQueue","assetPrefix","pathPrefix","renderPartialHydrationProd","getPublicPath","BuildHTMLError","constructor","message","getOwnPropertyNames","forEach","key","doBuildPages","buildError","pageData","getPageData","modifiedPageDataForErrorMessage","modifyPageDataForErrorMessage","JSON","stringify","buildHTML","GATSBY_PARTIAL_HYDRATION","buildHTMLPagesAndDeleteStaleArtifacts","buildUtils","markHtmlDirtyIfResultOfUsedStaticQueryChanged","toRegenerate","toDelete","toCleanupFromTrackedState","calcDirtyHtmlFiles","buildHTMLActivityProgress","createProgress","start","errorPath","undefinedGlobal","extractUndefinedGlobal","panic","end","info","keepPageRenderer","buildSlices","stitchSlicesIntoPagesHTML","publicDir","deletePageDataActivityTimer","activityTimer","removePageFiles","state","slicesProps","sliceId","props","sliceName","hasChildren","dirty","html","bySliceId","slices","from","staticQueriesBySliceTemplate","slice","componentPath","staticQueriesByTemplate","renderSlices","stichSlicesActivity","pagesThatNeedToStitchSlices","stichQueue","fastq","cb","stitchSliceForAPage","page","getPageMode","idle","drain"],"sources":["../../src/commands/build-html.ts"],"sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport { chunk } from \"lodash\"\nimport { build, watch } from \"../utils/webpack/bundle\"\nimport * as path from \"path\"\nimport fastq from \"fastq\"\n\nimport { emitter, store } from \"../redux\"\nimport webpack from \"webpack\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport * as buildUtils from \"./build-utils\"\nimport { getPageData } from \"../utils/get-page-data\"\n\nimport { Span } from \"opentracing\"\nimport { IProgram, Stage } from \"./types\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nimport { PackageJson } from \"../..\"\nimport { getPublicPath } from \"../utils/get-public-path\"\n\nimport type { GatsbyWorkerPool } from \"../utils/worker/pool\"\nimport { stitchSliceForAPage } from \"../utils/slices/stitching\"\nimport type { ISlicePropsEntry } from \"../utils/worker/child/render-html\"\nimport { getPageMode } from \"../utils/page-mode\"\nimport { extractUndefinedGlobal } from \"../utils/extract-undefined-global\"\nimport { modifyPageDataForErrorMessage } from \"../utils/page-data\"\n\ntype IActivity = any // TODO\n\nconst isPreview = process.env.GATSBY_IS_PREVIEW === `true`\n\nexport interface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n logPages: boolean\n writeToFile: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n // TODO remove in v4\n keepPageRenderer: boolean\n}\n\ninterface IBuildRendererResult {\n rendererPath: string\n stats: webpack.Stats\n close: ReturnType<typeof watch>[\"close\"]\n}\n\nlet devssrWebpackCompiler: webpack.Watching | undefined\nlet SSRBundleReceivedInvalidEvent = true\nlet SSRBundleWillInvalidate = false\n\nexport function devSSRWillInvalidate(): void {\n // we only get one `invalid` callback, so if we already\n // set this to true, we can't really await next `invalid` event\n if (!SSRBundleReceivedInvalidEvent) {\n SSRBundleWillInvalidate = true\n }\n}\n\nlet activeRecompilations = 0\n\nexport const getDevSSRWebpack = (): {\n recompileAndResumeWatching: (\n allowTimedFallback: boolean\n ) => Promise<() => void>\n needToRecompileSSRBundle: boolean\n} => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n const watcher = devssrWebpackCompiler as webpack.Watching\n const compiler = (devssrWebpackCompiler as webpack.Watching).compiler\n if (watcher && compiler) {\n return {\n recompileAndResumeWatching: async function recompileAndResumeWatching(\n allowTimedFallback: boolean\n ): Promise<() => void> {\n let isResolved = false\n return await new Promise<() => void>(resolve => {\n function stopWatching(): void {\n activeRecompilations--\n if (activeRecompilations === 0) {\n watcher.suspend()\n }\n }\n let timeout\n function finish(): void {\n emitter.off(`DEV_SSR_COMPILATION_DONE`, finish)\n if (!isResolved) {\n isResolved = true\n resolve(stopWatching)\n }\n if (timeout) {\n clearTimeout(timeout)\n }\n }\n emitter.on(`DEV_SSR_COMPILATION_DONE`, finish)\n // we reset it before we start compilation to be able to catch any invalid events\n SSRBundleReceivedInvalidEvent = false\n if (activeRecompilations === 0) {\n watcher.resume()\n }\n activeRecompilations++\n\n if (allowTimedFallback) {\n // Timeout after 1.5s.\n timeout = setTimeout(() => {\n if (!isResolved) {\n isResolved = true\n resolve(stopWatching)\n }\n }, 1500)\n }\n })\n },\n needToRecompileSSRBundle:\n SSRBundleReceivedInvalidEvent || SSRBundleWillInvalidate,\n }\n } else {\n return {\n needToRecompileSSRBundle: false,\n recompileAndResumeWatching: (): Promise<() => void> =>\n Promise.resolve((): void => {}),\n }\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory: string\n): Promise<{\n stats: webpack.Stats\n close: ReturnType<typeof watch>[\"close\"]\n}> => {\n const isDevSSREnabledAndViable =\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR && stage === `develop-html`\n\n return new Promise((resolve, reject) => {\n if (isDevSSREnabledAndViable) {\n const compiler = webpack(compilerConfig)\n\n // because of this line we can't use our watch helper\n // These things should use emitter\n compiler.hooks.invalid.tap(`ssr file invalidation`, () => {\n SSRBundleReceivedInvalidEvent = true\n SSRBundleWillInvalidate = false // we were waiting for this event, we are no longer waiting for it\n })\n\n let isFirstCompile = true\n const watcher = compiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n // this runs multiple times\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n if (isFirstCompile) {\n watcher.suspend()\n isFirstCompile = false\n }\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats?.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/${ROUTES_DIRECTORY}render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve({\n stats: stats as webpack.Stats,\n close: () =>\n new Promise((resolve, reject): void =>\n watcher.close(err => (err ? reject(err) : resolve()))\n ),\n })\n }\n }\n )\n devssrWebpackCompiler = watcher\n } else {\n build(compilerConfig).then(\n ({ stats, close }) => {\n resolve({ stats, close })\n },\n err => reject(err)\n )\n }\n })\n}\n\nconst doBuildRenderer = async (\n directory: string,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<IBuildRendererResult> => {\n const { stats, close } = await runWebpack(webpackConfig, stage, directory)\n if (stats?.hasErrors()) {\n reporter.panicOnBuild(\n structureWebpackErrors(stage, stats.compilation.errors)\n )\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/${ROUTES_DIRECTORY}render-page.js`,\n stats,\n close,\n }\n}\n\nconst doBuildPartialHydrationRenderer = async (\n directory: string,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<IBuildRendererResult> => {\n const { stats, close } = await runWebpack(webpackConfig, stage, directory)\n if (stats?.hasErrors()) {\n reporter.panicOnBuild(\n structureWebpackErrors(stage, stats.compilation.errors)\n )\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/${ROUTES_DIRECTORY}render-page.js`,\n stats,\n close,\n }\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<IBuildRendererResult> => {\n const config = await webpackConfig(program, program.directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program.directory, config, stage)\n}\n\nexport const buildPartialHydrationRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<IBuildRendererResult> => {\n const config = await webpackConfig(program, program.directory, stage, null, {\n parentSpan,\n })\n\n for (const rule of config.module.rules) {\n if (`./test.js`.match(rule.test)) {\n if (!rule.use) {\n rule.use = []\n }\n if (!Array.isArray(rule.use)) {\n rule.use = [rule.use]\n }\n rule.use.push({\n loader: require.resolve(\n `../utils/webpack/loaders/partial-hydration-reference-loader`\n ),\n })\n }\n }\n\n // TODO add caching\n config.cache = false\n\n config.output.path = path.join(\n program.directory,\n `.cache`,\n `partial-hydration`\n )\n\n // require.resolve might fail the build if the package is not installed\n // Instead of failing it'll be ignored\n try {\n // TODO collect javascript aliases to match the partial hydration bundle\n config.resolve.alias[`gatsby-plugin-image`] = require.resolve(\n `gatsby-plugin-image/dist/gatsby-image.browser.modern`\n )\n } catch (e) {\n // do nothing\n }\n\n return doBuildPartialHydrationRenderer(program.directory, config, stage)\n}\n\n// TODO remove after v4 release and update cloud internals\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\nexport interface IRenderHtmlResult {\n unsafeBuiltinsUsageByPagePath: Record<string, Array<string>>\n previewErrors: Record<string, any>\n\n slicesPropsPerPage: Record<\n string,\n Record<\n string,\n {\n props: Record<string, unknown>\n sliceName: string\n hasChildren: boolean\n }\n >\n >\n}\n\nconst renderHTMLQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>,\n stage: Stage = Stage.BuildHTML\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n const sessionId = Date.now()\n\n const { webpackCompilationHash } = store.getState()\n\n const renderHTML =\n stage === `build-html`\n ? workerPool.single.renderHTMLProd\n : workerPool.single.renderHTMLDev\n\n const uniqueUnsafeBuiltinUsedStacks = new Set<string>()\n\n try {\n await Bluebird.map(segments, async pageSegment => {\n const renderHTMLResult = await renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n sessionId,\n webpackCompilationHash,\n })\n\n if (isPreview) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n const seenErrors = new Set()\n const errorMessages = new Map()\n await Promise.all(\n Object.entries(htmlRenderMeta.previewErrors).map(\n async ([pagePath, error]) => {\n if (!seenErrors.has(error.stack)) {\n errorMessages.set(error.stack, {\n pagePaths: [pagePath],\n })\n seenErrors.add(error.stack)\n const prettyError = createErrorFromString(\n error.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const errorMessageStr = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.errorMessage = errorMessageStr\n errorMessages.set(error.stack, errorMessage)\n } else {\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.pagePaths.push(pagePath)\n errorMessages.set(error.stack, errorMessage)\n }\n }\n )\n )\n\n for (const value of errorMessages.values()) {\n const errorMessage = `The following page(s) saw this error when building their HTML:\\n\\n${value.pagePaths\n .map(p => `- ${p}`)\n .join(`\\n`)}\\n\\n${value.errorMessage}`\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n })\n }\n }\n\n if (stage === `build-html`) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n store.dispatch({\n type: `HTML_GENERATED`,\n payload: pageSegment,\n })\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n store.dispatch({\n type: `SET_SLICES_PROPS`,\n payload: htmlRenderMeta.slicesPropsPerPage,\n })\n }\n\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n htmlRenderMeta.unsafeBuiltinsUsageByPagePath\n )) {\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n } catch (e) {\n if (e?.context?.unsafeBuiltinsUsageByPagePath) {\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n e.context.unsafeBuiltinsUsageByPagePath\n )) {\n // @ts-ignore TS doesn't know arrayOfUsages is Iterable\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n throw e\n } finally {\n if (uniqueUnsafeBuiltinUsedStacks.size > 0) {\n console.warn(\n `Unsafe builtin method was used, future builds will need to rebuild all pages`\n )\n store.dispatch({\n type: `SSR_USED_UNSAFE_BUILTIN`,\n })\n }\n\n for (const unsafeBuiltinUsedStack of uniqueUnsafeBuiltinUsedStacks) {\n const prettyError = createErrorFromString(\n unsafeBuiltinUsedStack,\n `${htmlComponentRendererPath}.map`\n )\n\n const warningMessage = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n reporter.warn(warningMessage)\n }\n }\n}\n\nconst renderPartialHydrationQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n pages: Array<string>,\n program: IProgram\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n const sessionId = Date.now()\n\n const { config } = store.getState()\n const { assetPrefix, pathPrefix } = config\n\n // Let the error bubble up\n await Promise.all(\n segments.map(async pageSegment => {\n await workerPool.single.renderPartialHydrationProd({\n envVars,\n paths: pageSegment,\n sessionId,\n pathPrefix: getPublicPath({ assetPrefix, pathPrefix, ...program }),\n })\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n )\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: GatsbyWorkerPool,\n stage: Stage\n): Promise<void> => {\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths, stage)\n } catch (error) {\n const prettyError = createErrorFromString(error, `${rendererPath}.map`)\n\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n\n if (error?.context?.path) {\n const pageData = await getPageData(error.context.path)\n const modifiedPageDataForErrorMessage =\n modifyPageDataForErrorMessage(pageData)\n\n const errorMessage = `Truncated page data information for the failed page \"${\n error.context.path\n }\": ${JSON.stringify(modifiedPageDataForErrorMessage, null, 2)}`\n\n // This is our only error during preview so customize it a bit + add the\n // pretty build error.\n if (isPreview) {\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n error: buildError,\n })\n } else {\n reporter.error(errorMessage)\n }\n }\n\n // Don't crash the builder when we're in preview-mode.\n if (!isPreview) {\n throw buildError\n }\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: GatsbyWorkerPool\n}): Promise<void> => {\n const rendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n await doBuildPages(rendererPath, pagePaths, activity, workerPool, stage)\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n await renderPartialHydrationQueue(workerPool, activity, pagePaths, program)\n }\n}\n\nexport async function buildHTMLPagesAndDeleteStaleArtifacts({\n workerPool,\n parentSpan,\n program,\n}: {\n workerPool: GatsbyWorkerPool\n parentSpan?: Span\n program: IBuildArgs\n}): Promise<{\n toRegenerate: Array<string>\n toDelete: Array<string>\n}> {\n const rendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n buildUtils.markHtmlDirtyIfResultOfUsedStaticQueryChanged()\n\n const { toRegenerate, toDelete, toCleanupFromTrackedState } =\n buildUtils.calcDirtyHtmlFiles(store.getState())\n\n store.dispatch({\n type: `HTML_TRACKED_PAGES_CLEANUP`,\n payload: toCleanupFromTrackedState,\n })\n\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building static HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n rendererPath,\n toRegenerate,\n buildHTMLActivityProgress,\n workerPool,\n Stage.BuildHTML\n )\n } catch (err) {\n let id = `95313`\n const context = {\n errorPath: err.context && err.context.path,\n undefinedGlobal: ``,\n }\n\n const undefinedGlobal = extractUndefinedGlobal(err)\n\n if (undefinedGlobal) {\n id = `95312`\n context.undefinedGlobal = undefinedGlobal\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n } else {\n reporter.info(`There are no new or changed html files to build.`)\n }\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building partial HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan,\n }\n )\n try {\n buildHTMLActivityProgress.start()\n await renderPartialHydrationQueue(\n workerPool,\n buildHTMLActivityProgress,\n toRegenerate,\n program\n )\n } catch (error) {\n // Generic error with page path and useful stack trace, accurate code frame can be a future improvement\n buildHTMLActivityProgress.panic({\n id: `80000`,\n context: error.context,\n error,\n })\n } finally {\n buildHTMLActivityProgress.end()\n }\n }\n }\n\n if (_CFLAGS_.GATSBY_MAJOR !== `5` && !program.keepPageRenderer) {\n try {\n await deleteRenderer(rendererPath)\n } catch (err) {\n // pass through\n }\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n await buildSlices({\n program,\n workerPool,\n parentSpan,\n })\n\n await stitchSlicesIntoPagesHTML({\n publicDir: path.join(program.directory, `public`),\n parentSpan,\n })\n }\n\n if (toDelete.length > 0) {\n const publicDir = path.join(program.directory, `public`)\n const deletePageDataActivityTimer = reporter.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n await buildUtils.removePageFiles(publicDir, toDelete)\n\n deletePageDataActivityTimer.end()\n }\n\n return { toRegenerate, toDelete }\n}\n\nexport async function buildSlices({\n program,\n workerPool,\n parentSpan,\n}: {\n workerPool: GatsbyWorkerPool\n parentSpan?: Span\n program: IBuildArgs\n}): Promise<void> {\n const state = store.getState()\n\n // for now we always render everything, everytime\n const slicesProps: Array<ISlicePropsEntry> = []\n for (const [\n sliceId,\n { props, sliceName, hasChildren, pages, dirty },\n ] of state.html.slicesProps.bySliceId.entries()) {\n if (dirty && pages.size > 0) {\n slicesProps.push({\n sliceId,\n props,\n sliceName,\n hasChildren,\n })\n }\n }\n\n if (slicesProps.length > 0) {\n const buildHTMLActivityProgress = reporter.activityTimer(\n `Building slices HTML (${slicesProps.length})`,\n {\n parentSpan,\n }\n )\n buildHTMLActivityProgress.start()\n\n const htmlComponentRendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n try {\n const slices = Array.from(state.slices.entries())\n\n const staticQueriesBySliceTemplate = {}\n for (const slice of state.slices.values()) {\n staticQueriesBySliceTemplate[slice.componentPath] =\n state.staticQueriesByTemplate.get(slice.componentPath)\n }\n\n await workerPool.single.renderSlices({\n publicDir: path.join(program.directory, `public`),\n htmlComponentRendererPath,\n slices,\n slicesProps,\n staticQueriesBySliceTemplate,\n })\n } catch (err) {\n const prettyError = createErrorFromString(\n err.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const undefinedGlobal = extractUndefinedGlobal(err)\n\n let id = `11339`\n\n if (undefinedGlobal) {\n id = `11340`\n err.context.undefinedGlobal = undefinedGlobal\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context: err.context,\n error: prettyError,\n })\n } finally {\n buildHTMLActivityProgress.end()\n }\n\n // for now separate action for cleaning dirty flag and removing stale entries\n store.dispatch({\n type: `SLICES_PROPS_RENDERED`,\n payload: slicesProps,\n })\n } else {\n reporter.info(`There are no new or changed slice html files to build.`)\n }\n\n store.dispatch({\n type: `SLICES_PROPS_REMOVE_STALE`,\n })\n}\n\nexport async function stitchSlicesIntoPagesHTML({\n publicDir,\n parentSpan,\n}: {\n publicDir: string\n parentSpan?: Span\n}): Promise<void> {\n const stichSlicesActivity = reporter.activityTimer(`stiching slices`, {\n parentSpan,\n })\n stichSlicesActivity.start()\n try {\n const {\n html: { pagesThatNeedToStitchSlices },\n pages,\n } = store.getState()\n\n const stichQueue = fastq<void, string, void>(async (pagePath, cb) => {\n await stitchSliceForAPage({ pagePath, publicDir })\n cb(null)\n }, 25)\n\n for (const pagePath of pagesThatNeedToStitchSlices) {\n const page = pages.get(pagePath)\n if (!page) {\n continue\n }\n\n if (getPageMode(page) === `SSG`) {\n stichQueue.push(pagePath)\n }\n }\n\n if (!stichQueue.idle()) {\n await new Promise(resolve => {\n stichQueue.drain = resolve as () => unknown\n })\n }\n\n store.dispatch({ type: `SLICES_STITCHED` })\n } finally {\n stichSlicesActivity.end()\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-html.js","names":["isPreview","process","env","GATSBY_IS_PREVIEW","devssrWebpackCompiler","SSRBundleReceivedInvalidEvent","SSRBundleWillInvalidate","devSSRWillInvalidate","activeRecompilations","getDevSSRWebpack","gatsby_executing_command","Error","watcher","compiler","recompileAndResumeWatching","allowTimedFallback","isResolved","Promise","resolve","stopWatching","suspend","timeout","finish","emitter","off","clearTimeout","on","resume","setTimeout","needToRecompileSSRBundle","oldHash","newHash","runWebpack","compilerConfig","stage","directory","isDevSSREnabledAndViable","GATSBY_EXPERIMENTAL_DEV_SSR","reject","webpack","hooks","invalid","tap","isFirstCompile","watch","ignored","err","stats","emit","hash","restartWorker","require","ROUTES_DIRECTORY","close","build","then","doBuildRenderer","webpackConfig","hasErrors","reporter","panicOnBuild","structureWebpackErrors","compilation","errors","setFilesFromDevelopHtmlCompilation","rendererPath","doBuildPartialHydrationRenderer","buildRenderer","program","parentSpan","config","buildPartialHydrationRenderer","rule","module","rules","match","test","use","Array","isArray","push","loader","cache","output","path","join","alias","e","deleteRenderer","fs","remove","renderHTMLQueue","workerPool","activity","htmlComponentRendererPath","pages","Stage","BuildHTML","envVars","NODE_ENV","gatsby_log_level","segments","sessionId","Date","now","webpackCompilationHash","store","getState","renderHTML","single","renderHTMLProd","renderHTMLDev","uniqueUnsafeBuiltinUsedStacks","Set","Bluebird","map","pageSegment","renderHTMLResult","paths","htmlRenderMeta","seenErrors","errorMessages","Map","all","Object","entries","previewErrors","pagePath","error","has","stack","set","pagePaths","add","prettyError","createErrorFromString","errorMessageStr","codeFrame","errorMessage","get","value","values","p","id","context","dispatch","type","payload","GATSBY_SLICES","slicesPropsPerPage","_pagePath","arrayOfUsages","unsafeBuiltinsUsageByPagePath","unsafeUsageStack","tick","length","size","console","warn","unsafeBuiltinUsedStack","warningMessage","renderPartialHydrationQueue","assetPrefix","pathPrefix","renderPartialHydrationProd","getPublicPath","BuildHTMLError","constructor","message","getOwnPropertyNames","forEach","key","doBuildPages","buildError","pageData","getPageData","modifiedPageDataForErrorMessage","modifyPageDataForErrorMessage","JSON","stringify","buildHTML","GATSBY_PARTIAL_HYDRATION","buildHTMLPagesAndDeleteStaleArtifacts","buildUtils","markHtmlDirtyIfResultOfUsedStaticQueryChanged","toRegenerate","toDelete","toCleanupFromTrackedState","calcDirtyHtmlFiles","buildHTMLActivityProgress","createProgress","start","errorPath","undefinedGlobal","extractUndefinedGlobal","panic","end","info","keepPageRenderer","buildSlices","stitchSlicesIntoPagesHTML","publicDir","deletePageDataActivityTimer","activityTimer","removePageFiles","state","slicesProps","sliceId","props","sliceName","hasChildren","dirty","html","bySliceId","slices","from","staticQueriesBySliceTemplate","slice","componentPath","staticQueriesByTemplate","renderSlices","stichSlicesActivity","pagesThatNeedToStitchSlices","stichQueue","fastq","cb","stitchSliceForAPage","page","getPageMode","idle","drain"],"sources":["../../src/commands/build-html.ts"],"sourcesContent":["import Bluebird from \"bluebird\"\nimport fs from \"fs-extra\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { createErrorFromString } from \"gatsby-cli/lib/reporter/errors\"\nimport { chunk } from \"lodash\"\nimport { build, watch } from \"../utils/webpack/bundle\"\nimport * as path from \"path\"\nimport fastq from \"fastq\"\n\nimport { emitter, store } from \"../redux\"\nimport webpack from \"webpack\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport * as buildUtils from \"./build-utils\"\nimport { getPageData } from \"../utils/get-page-data\"\n\nimport { Span } from \"opentracing\"\nimport { IProgram, Stage } from \"./types\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nimport { PackageJson } from \"../..\"\nimport { getPublicPath } from \"../utils/get-public-path\"\n\nimport type { GatsbyWorkerPool } from \"../utils/worker/pool\"\nimport { stitchSliceForAPage } from \"../utils/slices/stitching\"\nimport type { ISlicePropsEntry } from \"../utils/worker/child/render-html\"\nimport { getPageMode } from \"../utils/page-mode\"\nimport { extractUndefinedGlobal } from \"../utils/extract-undefined-global\"\nimport { modifyPageDataForErrorMessage } from \"../utils/page-data\"\nimport { setFilesFromDevelopHtmlCompilation } from \"../utils/webpack/utils/is-file-inside-compilations\"\n\ntype IActivity = any // TODO\n\nconst isPreview = process.env.GATSBY_IS_PREVIEW === `true`\n\nexport interface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n logPages: boolean\n writeToFile: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n // TODO remove in v4\n keepPageRenderer: boolean\n}\n\ninterface IBuildRendererResult {\n rendererPath: string\n stats: webpack.Stats\n close: ReturnType<typeof watch>[\"close\"]\n}\n\nlet devssrWebpackCompiler: webpack.Watching | undefined\nlet SSRBundleReceivedInvalidEvent = true\nlet SSRBundleWillInvalidate = false\n\nexport function devSSRWillInvalidate(): void {\n // we only get one `invalid` callback, so if we already\n // set this to true, we can't really await next `invalid` event\n if (!SSRBundleReceivedInvalidEvent) {\n SSRBundleWillInvalidate = true\n }\n}\n\nlet activeRecompilations = 0\n\nexport const getDevSSRWebpack = (): {\n recompileAndResumeWatching: (\n allowTimedFallback: boolean\n ) => Promise<() => void>\n needToRecompileSSRBundle: boolean\n} => {\n if (process.env.gatsby_executing_command !== `develop`) {\n throw new Error(`This function can only be called in development`)\n }\n\n const watcher = devssrWebpackCompiler as webpack.Watching\n const compiler = (devssrWebpackCompiler as webpack.Watching).compiler\n if (watcher && compiler) {\n return {\n recompileAndResumeWatching: async function recompileAndResumeWatching(\n allowTimedFallback: boolean\n ): Promise<() => void> {\n let isResolved = false\n return await new Promise<() => void>(resolve => {\n function stopWatching(): void {\n activeRecompilations--\n if (activeRecompilations === 0) {\n watcher.suspend()\n }\n }\n let timeout\n function finish(): void {\n emitter.off(`DEV_SSR_COMPILATION_DONE`, finish)\n if (!isResolved) {\n isResolved = true\n resolve(stopWatching)\n }\n if (timeout) {\n clearTimeout(timeout)\n }\n }\n emitter.on(`DEV_SSR_COMPILATION_DONE`, finish)\n // we reset it before we start compilation to be able to catch any invalid events\n SSRBundleReceivedInvalidEvent = false\n if (activeRecompilations === 0) {\n watcher.resume()\n }\n activeRecompilations++\n\n if (allowTimedFallback) {\n // Timeout after 1.5s.\n timeout = setTimeout(() => {\n if (!isResolved) {\n isResolved = true\n resolve(stopWatching)\n }\n }, 1500)\n }\n })\n },\n needToRecompileSSRBundle:\n SSRBundleReceivedInvalidEvent || SSRBundleWillInvalidate,\n }\n } else {\n return {\n needToRecompileSSRBundle: false,\n recompileAndResumeWatching: (): Promise<() => void> =>\n Promise.resolve((): void => {}),\n }\n }\n}\n\nlet oldHash = ``\nlet newHash = ``\nconst runWebpack = (\n compilerConfig,\n stage: Stage,\n directory: string\n): Promise<{\n stats: webpack.Stats\n close: ReturnType<typeof watch>[\"close\"]\n}> => {\n const isDevSSREnabledAndViable =\n process.env.GATSBY_EXPERIMENTAL_DEV_SSR && stage === `develop-html`\n\n return new Promise((resolve, reject) => {\n if (isDevSSREnabledAndViable) {\n const compiler = webpack(compilerConfig)\n\n // because of this line we can't use our watch helper\n // These things should use emitter\n compiler.hooks.invalid.tap(`ssr file invalidation`, () => {\n SSRBundleReceivedInvalidEvent = true\n SSRBundleWillInvalidate = false // we were waiting for this event, we are no longer waiting for it\n })\n\n let isFirstCompile = true\n const watcher = compiler.watch(\n {\n ignored: /node_modules/,\n },\n (err, stats) => {\n // this runs multiple times\n emitter.emit(`DEV_SSR_COMPILATION_DONE`)\n if (isFirstCompile) {\n watcher.suspend()\n isFirstCompile = false\n }\n\n if (err) {\n return reject(err)\n } else {\n newHash = stats?.hash || ``\n\n const {\n restartWorker,\n } = require(`../utils/dev-ssr/render-dev-html`)\n // Make sure we use the latest version during development\n if (oldHash !== `` && newHash !== oldHash) {\n restartWorker(`${directory}/${ROUTES_DIRECTORY}render-page.js`)\n }\n\n oldHash = newHash\n\n return resolve({\n stats: stats as webpack.Stats,\n close: () =>\n new Promise((resolve, reject): void =>\n watcher.close(err => (err ? reject(err) : resolve()))\n ),\n })\n }\n }\n )\n devssrWebpackCompiler = watcher\n } else {\n build(compilerConfig).then(\n ({ stats, close }) => {\n resolve({ stats, close })\n },\n err => reject(err)\n )\n }\n })\n}\n\nconst doBuildRenderer = async (\n directory: string,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<IBuildRendererResult> => {\n const { stats, close } = await runWebpack(webpackConfig, stage, directory)\n if (stats?.hasErrors()) {\n reporter.panicOnBuild(\n structureWebpackErrors(stage, stats.compilation.errors)\n )\n }\n\n if (stage === `develop-html`) {\n setFilesFromDevelopHtmlCompilation(stats.compilation)\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/${ROUTES_DIRECTORY}render-page.js`,\n stats,\n close,\n }\n}\n\nconst doBuildPartialHydrationRenderer = async (\n directory: string,\n webpackConfig: webpack.Configuration,\n stage: Stage\n): Promise<IBuildRendererResult> => {\n const { stats, close } = await runWebpack(webpackConfig, stage, directory)\n if (stats?.hasErrors()) {\n reporter.panicOnBuild(\n structureWebpackErrors(stage, stats.compilation.errors)\n )\n }\n\n // render-page.js is hard coded in webpack.config\n return {\n rendererPath: `${directory}/${ROUTES_DIRECTORY}render-page.js`,\n stats,\n close,\n }\n}\n\nexport const buildRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<IBuildRendererResult> => {\n const config = await webpackConfig(program, program.directory, stage, null, {\n parentSpan,\n })\n\n return doBuildRenderer(program.directory, config, stage)\n}\n\nexport const buildPartialHydrationRenderer = async (\n program: IProgram,\n stage: Stage,\n parentSpan?: IActivity\n): Promise<IBuildRendererResult> => {\n const config = await webpackConfig(program, program.directory, stage, null, {\n parentSpan,\n })\n\n for (const rule of config.module.rules) {\n if (`./test.js`.match(rule.test)) {\n if (!rule.use) {\n rule.use = []\n }\n if (!Array.isArray(rule.use)) {\n rule.use = [rule.use]\n }\n rule.use.push({\n loader: require.resolve(\n `../utils/webpack/loaders/partial-hydration-reference-loader`\n ),\n })\n }\n }\n\n // TODO add caching\n config.cache = false\n\n config.output.path = path.join(\n program.directory,\n `.cache`,\n `partial-hydration`\n )\n\n // require.resolve might fail the build if the package is not installed\n // Instead of failing it'll be ignored\n try {\n // TODO collect javascript aliases to match the partial hydration bundle\n config.resolve.alias[`gatsby-plugin-image`] = require.resolve(\n `gatsby-plugin-image/dist/gatsby-image.browser.modern`\n )\n } catch (e) {\n // do nothing\n }\n\n return doBuildPartialHydrationRenderer(program.directory, config, stage)\n}\n\n// TODO remove after v4 release and update cloud internals\nexport const deleteRenderer = async (rendererPath: string): Promise<void> => {\n try {\n await fs.remove(rendererPath)\n await fs.remove(`${rendererPath}.map`)\n } catch (e) {\n // This function will fail on Windows with no further consequences.\n }\n}\nexport interface IRenderHtmlResult {\n unsafeBuiltinsUsageByPagePath: Record<string, Array<string>>\n previewErrors: Record<string, any>\n\n slicesPropsPerPage: Record<\n string,\n Record<\n string,\n {\n props: Record<string, unknown>\n sliceName: string\n hasChildren: boolean\n }\n >\n >\n}\n\nconst renderHTMLQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n htmlComponentRendererPath: string,\n pages: Array<string>,\n stage: Stage = Stage.BuildHTML\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n\n const sessionId = Date.now()\n\n const { webpackCompilationHash } = store.getState()\n\n const renderHTML =\n stage === `build-html`\n ? workerPool.single.renderHTMLProd\n : workerPool.single.renderHTMLDev\n\n const uniqueUnsafeBuiltinUsedStacks = new Set<string>()\n\n try {\n await Bluebird.map(segments, async pageSegment => {\n const renderHTMLResult = await renderHTML({\n envVars,\n htmlComponentRendererPath,\n paths: pageSegment,\n sessionId,\n webpackCompilationHash,\n })\n\n if (isPreview) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n const seenErrors = new Set()\n const errorMessages = new Map()\n await Promise.all(\n Object.entries(htmlRenderMeta.previewErrors).map(\n async ([pagePath, error]) => {\n if (!seenErrors.has(error.stack)) {\n errorMessages.set(error.stack, {\n pagePaths: [pagePath],\n })\n seenErrors.add(error.stack)\n const prettyError = createErrorFromString(\n error.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const errorMessageStr = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.errorMessage = errorMessageStr\n errorMessages.set(error.stack, errorMessage)\n } else {\n const errorMessage = errorMessages.get(error.stack)\n errorMessage.pagePaths.push(pagePath)\n errorMessages.set(error.stack, errorMessage)\n }\n }\n )\n )\n\n for (const value of errorMessages.values()) {\n const errorMessage = `The following page(s) saw this error when building their HTML:\\n\\n${value.pagePaths\n .map(p => `- ${p}`)\n .join(`\\n`)}\\n\\n${value.errorMessage}`\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n })\n }\n }\n\n if (stage === `build-html`) {\n const htmlRenderMeta = renderHTMLResult as IRenderHtmlResult\n store.dispatch({\n type: `HTML_GENERATED`,\n payload: pageSegment,\n })\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n store.dispatch({\n type: `SET_SLICES_PROPS`,\n payload: htmlRenderMeta.slicesPropsPerPage,\n })\n }\n\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n htmlRenderMeta.unsafeBuiltinsUsageByPagePath\n )) {\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n } catch (e) {\n if (e?.context?.unsafeBuiltinsUsageByPagePath) {\n for (const [_pagePath, arrayOfUsages] of Object.entries(\n e.context.unsafeBuiltinsUsageByPagePath\n )) {\n // @ts-ignore TS doesn't know arrayOfUsages is Iterable\n for (const unsafeUsageStack of arrayOfUsages) {\n uniqueUnsafeBuiltinUsedStacks.add(unsafeUsageStack)\n }\n }\n }\n throw e\n } finally {\n if (uniqueUnsafeBuiltinUsedStacks.size > 0) {\n console.warn(\n `Unsafe builtin method was used, future builds will need to rebuild all pages`\n )\n store.dispatch({\n type: `SSR_USED_UNSAFE_BUILTIN`,\n })\n }\n\n for (const unsafeBuiltinUsedStack of uniqueUnsafeBuiltinUsedStacks) {\n const prettyError = createErrorFromString(\n unsafeBuiltinUsedStack,\n `${htmlComponentRendererPath}.map`\n )\n\n const warningMessage = `${prettyError.stack}${\n prettyError.codeFrame ? `\\n\\n${prettyError.codeFrame}\\n` : ``\n }`\n\n reporter.warn(warningMessage)\n }\n }\n}\n\nconst renderPartialHydrationQueue = async (\n workerPool: GatsbyWorkerPool,\n activity: IActivity,\n pages: Array<string>,\n program: IProgram\n): Promise<void> => {\n // We need to only pass env vars that are set programmatically in gatsby-cli\n // to child process. Other vars will be picked up from environment.\n const envVars: Array<[string, string | undefined]> = [\n [`NODE_ENV`, process.env.NODE_ENV],\n [`gatsby_executing_command`, process.env.gatsby_executing_command],\n [`gatsby_log_level`, process.env.gatsby_log_level],\n ]\n\n const segments = chunk(pages, 50)\n const sessionId = Date.now()\n\n const { config } = store.getState()\n const { assetPrefix, pathPrefix } = config\n\n // Let the error bubble up\n await Promise.all(\n segments.map(async pageSegment => {\n await workerPool.single.renderPartialHydrationProd({\n envVars,\n paths: pageSegment,\n sessionId,\n pathPrefix: getPublicPath({ assetPrefix, pathPrefix, ...program }),\n })\n\n if (activity && activity.tick) {\n activity.tick(pageSegment.length)\n }\n })\n )\n}\n\nclass BuildHTMLError extends Error {\n codeFrame = ``\n context?: {\n path: string\n }\n\n constructor(error: Error) {\n super(error.message)\n\n // We must use getOwnProperty because keys like `stack` are not enumerable,\n // but we want to copy over the entire error\n Object.getOwnPropertyNames(error).forEach(key => {\n this[key] = error[key]\n })\n }\n}\n\nexport const doBuildPages = async (\n rendererPath: string,\n pagePaths: Array<string>,\n activity: IActivity,\n workerPool: GatsbyWorkerPool,\n stage: Stage\n): Promise<void> => {\n try {\n await renderHTMLQueue(workerPool, activity, rendererPath, pagePaths, stage)\n } catch (error) {\n const prettyError = createErrorFromString(error, `${rendererPath}.map`)\n\n const buildError = new BuildHTMLError(prettyError)\n buildError.context = error.context\n\n if (error?.context?.path) {\n const pageData = await getPageData(error.context.path)\n const modifiedPageDataForErrorMessage =\n modifyPageDataForErrorMessage(pageData)\n\n const errorMessage = `Truncated page data information for the failed page \"${\n error.context.path\n }\": ${JSON.stringify(modifiedPageDataForErrorMessage, null, 2)}`\n\n // This is our only error during preview so customize it a bit + add the\n // pretty build error.\n if (isPreview) {\n reporter.error({\n id: `95314`,\n context: { errorMessage },\n error: buildError,\n })\n } else {\n reporter.error(errorMessage)\n }\n }\n\n // Don't crash the builder when we're in preview-mode.\n if (!isPreview) {\n throw buildError\n }\n }\n}\n\n// TODO remove in v4 - this could be a \"public\" api\nexport const buildHTML = async ({\n program,\n stage,\n pagePaths,\n activity,\n workerPool,\n}: {\n program: IProgram\n stage: Stage\n pagePaths: Array<string>\n activity: IActivity\n workerPool: GatsbyWorkerPool\n}): Promise<void> => {\n const rendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n await doBuildPages(rendererPath, pagePaths, activity, workerPool, stage)\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n await renderPartialHydrationQueue(workerPool, activity, pagePaths, program)\n }\n}\n\nexport async function buildHTMLPagesAndDeleteStaleArtifacts({\n workerPool,\n parentSpan,\n program,\n}: {\n workerPool: GatsbyWorkerPool\n parentSpan?: Span\n program: IBuildArgs\n}): Promise<{\n toRegenerate: Array<string>\n toDelete: Array<string>\n}> {\n const rendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n buildUtils.markHtmlDirtyIfResultOfUsedStaticQueryChanged()\n\n const { toRegenerate, toDelete, toCleanupFromTrackedState } =\n buildUtils.calcDirtyHtmlFiles(store.getState())\n\n store.dispatch({\n type: `HTML_TRACKED_PAGES_CLEANUP`,\n payload: toCleanupFromTrackedState,\n })\n\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building static HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await doBuildPages(\n rendererPath,\n toRegenerate,\n buildHTMLActivityProgress,\n workerPool,\n Stage.BuildHTML\n )\n } catch (err) {\n let id = `95313`\n const context = {\n errorPath: err.context && err.context.path,\n undefinedGlobal: ``,\n }\n\n const undefinedGlobal = extractUndefinedGlobal(err)\n\n if (undefinedGlobal) {\n id = `95312`\n context.undefinedGlobal = undefinedGlobal\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n } else {\n reporter.info(`There are no new or changed html files to build.`)\n }\n\n if (\n (process.env.GATSBY_PARTIAL_HYDRATION === `true` ||\n process.env.GATSBY_PARTIAL_HYDRATION === `1`) &&\n _CFLAGS_.GATSBY_MAJOR === `5`\n ) {\n if (toRegenerate.length > 0) {\n const buildHTMLActivityProgress = reporter.createProgress(\n `Building partial HTML for pages`,\n toRegenerate.length,\n 0,\n {\n parentSpan,\n }\n )\n try {\n buildHTMLActivityProgress.start()\n await renderPartialHydrationQueue(\n workerPool,\n buildHTMLActivityProgress,\n toRegenerate,\n program\n )\n } catch (error) {\n // Generic error with page path and useful stack trace, accurate code frame can be a future improvement\n buildHTMLActivityProgress.panic({\n id: `80000`,\n context: error.context,\n error,\n })\n } finally {\n buildHTMLActivityProgress.end()\n }\n }\n }\n\n if (_CFLAGS_.GATSBY_MAJOR !== `5` && !program.keepPageRenderer) {\n try {\n await deleteRenderer(rendererPath)\n } catch (err) {\n // pass through\n }\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `5` && process.env.GATSBY_SLICES) {\n await buildSlices({\n program,\n workerPool,\n parentSpan,\n })\n\n await stitchSlicesIntoPagesHTML({\n publicDir: path.join(program.directory, `public`),\n parentSpan,\n })\n }\n\n if (toDelete.length > 0) {\n const publicDir = path.join(program.directory, `public`)\n const deletePageDataActivityTimer = reporter.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n await buildUtils.removePageFiles(publicDir, toDelete)\n\n deletePageDataActivityTimer.end()\n }\n\n return { toRegenerate, toDelete }\n}\n\nexport async function buildSlices({\n program,\n workerPool,\n parentSpan,\n}: {\n workerPool: GatsbyWorkerPool\n parentSpan?: Span\n program: IBuildArgs\n}): Promise<void> {\n const state = store.getState()\n\n // for now we always render everything, everytime\n const slicesProps: Array<ISlicePropsEntry> = []\n for (const [\n sliceId,\n { props, sliceName, hasChildren, pages, dirty },\n ] of state.html.slicesProps.bySliceId.entries()) {\n if (dirty && pages.size > 0) {\n slicesProps.push({\n sliceId,\n props,\n sliceName,\n hasChildren,\n })\n }\n }\n\n if (slicesProps.length > 0) {\n const buildHTMLActivityProgress = reporter.activityTimer(\n `Building slices HTML (${slicesProps.length})`,\n {\n parentSpan,\n }\n )\n buildHTMLActivityProgress.start()\n\n const htmlComponentRendererPath = `${program.directory}/${ROUTES_DIRECTORY}render-page.js`\n try {\n const slices = Array.from(state.slices.entries())\n\n const staticQueriesBySliceTemplate = {}\n for (const slice of state.slices.values()) {\n staticQueriesBySliceTemplate[slice.componentPath] =\n state.staticQueriesByTemplate.get(slice.componentPath)\n }\n\n await workerPool.single.renderSlices({\n publicDir: path.join(program.directory, `public`),\n htmlComponentRendererPath,\n slices,\n slicesProps,\n staticQueriesBySliceTemplate,\n })\n } catch (err) {\n const prettyError = createErrorFromString(\n err.stack,\n `${htmlComponentRendererPath}.map`\n )\n\n const undefinedGlobal = extractUndefinedGlobal(err)\n\n let id = `11339`\n\n if (undefinedGlobal) {\n id = `11340`\n err.context.undefinedGlobal = undefinedGlobal\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context: err.context,\n error: prettyError,\n })\n } finally {\n buildHTMLActivityProgress.end()\n }\n\n // for now separate action for cleaning dirty flag and removing stale entries\n store.dispatch({\n type: `SLICES_PROPS_RENDERED`,\n payload: slicesProps,\n })\n } else {\n reporter.info(`There are no new or changed slice html files to build.`)\n }\n\n store.dispatch({\n type: `SLICES_PROPS_REMOVE_STALE`,\n })\n}\n\nexport async function stitchSlicesIntoPagesHTML({\n publicDir,\n parentSpan,\n}: {\n publicDir: string\n parentSpan?: Span\n}): Promise<void> {\n const stichSlicesActivity = reporter.activityTimer(`stiching slices`, {\n parentSpan,\n })\n stichSlicesActivity.start()\n try {\n const {\n html: { pagesThatNeedToStitchSlices },\n pages,\n } = store.getState()\n\n const stichQueue = fastq<void, string, void>(async (pagePath, cb) => {\n await stitchSliceForAPage({ pagePath, publicDir })\n cb(null)\n }, 25)\n\n for (const pagePath of pagesThatNeedToStitchSlices) {\n const page = pages.get(pagePath)\n if (!page) {\n continue\n }\n\n if (getPageMode(page) === `SSG`) {\n stichQueue.push(pagePath)\n }\n }\n\n if (!stichQueue.idle()) {\n await new Promise(resolve => {\n stichQueue.drain = resolve as () => unknown\n })\n }\n\n store.dispatch({ type: `SLICES_STITCHED` })\n } finally {\n stichSlicesActivity.end()\n }\n}\n"],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ var _constants = require("../constants");
|
|
|
43
43
|
var _pageMode = require("./page-mode");
|
|
44
44
|
var _expressMiddlewares = require("./express-middlewares");
|
|
45
45
|
var _polyfillRemoteFile = require("gatsby-plugin-utils/polyfill-remote-file");
|
|
46
|
+
var _isFileInsideCompilations = require("./webpack/utils/is-file-inside-compilations");
|
|
46
47
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
47
48
|
function _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; }
|
|
48
49
|
async function startServer(program, app, workerPool = WorkerPool.create()) {
|
|
@@ -299,12 +300,21 @@ async function startServer(program, app, workerPool = WorkerPool.create()) {
|
|
|
299
300
|
let sourceEndColumn;
|
|
300
301
|
let sourcePosition;
|
|
301
302
|
if ((_req$query = req.query) !== null && _req$query !== void 0 && _req$query.skipSourceMap) {
|
|
302
|
-
var _req$query2, _req$query3;
|
|
303
|
+
var _req$query2, _res$locals, _res$locals$webpack, _res$locals$webpack$d, _res$locals$webpack$d2, _req$query3;
|
|
303
304
|
if (!((_req$query2 = req.query) !== null && _req$query2 !== void 0 && _req$query2.moduleId)) {
|
|
304
305
|
res.json(emptyResponse);
|
|
305
306
|
return;
|
|
306
307
|
}
|
|
307
308
|
const absolutePath = path.resolve(_redux.store.getState().program.directory, req.query.moduleId);
|
|
309
|
+
const compilation = (_res$locals = res.locals) === null || _res$locals === void 0 ? void 0 : (_res$locals$webpack = _res$locals.webpack) === null || _res$locals$webpack === void 0 ? void 0 : (_res$locals$webpack$d = _res$locals$webpack.devMiddleware) === null || _res$locals$webpack$d === void 0 ? void 0 : (_res$locals$webpack$d2 = _res$locals$webpack$d.stats) === null || _res$locals$webpack$d2 === void 0 ? void 0 : _res$locals$webpack$d2.compilation;
|
|
310
|
+
if (!compilation) {
|
|
311
|
+
res.json(emptyResponse);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
if (!(0, _isFileInsideCompilations.isFileInsideCompilations)(absolutePath, compilation)) {
|
|
315
|
+
res.json(emptyResponse);
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
308
318
|
try {
|
|
309
319
|
sourceContent = fs.readFileSync(absolutePath, `utf-8`);
|
|
310
320
|
} catch (e) {
|
|
@@ -333,8 +343,8 @@ async function startServer(program, app, workerPool = WorkerPool.create()) {
|
|
|
333
343
|
column: sourceColumn
|
|
334
344
|
};
|
|
335
345
|
} else {
|
|
336
|
-
var _res$
|
|
337
|
-
const compilation = (_res$
|
|
346
|
+
var _res$locals2, _res$locals2$webpack, _res$locals2$webpack$, _res$locals2$webpack$2, _req$query7, _ref, _req$query8, _ref2, _req$query9, _compilation$codeGene, _compilation$codeGene2, _sourcePosition, _sourcePosition2;
|
|
347
|
+
const compilation = (_res$locals2 = res.locals) === null || _res$locals2 === void 0 ? void 0 : (_res$locals2$webpack = _res$locals2.webpack) === null || _res$locals2$webpack === void 0 ? void 0 : (_res$locals2$webpack$ = _res$locals2$webpack.devMiddleware) === null || _res$locals2$webpack$ === void 0 ? void 0 : (_res$locals2$webpack$2 = _res$locals2$webpack$.stats) === null || _res$locals2$webpack$2 === void 0 ? void 0 : _res$locals2$webpack$2.compilation;
|
|
338
348
|
if (!compilation) {
|
|
339
349
|
res.json(emptyResponse);
|
|
340
350
|
return;
|
|
@@ -396,7 +406,7 @@ async function startServer(program, app, workerPool = WorkerPool.create()) {
|
|
|
396
406
|
});
|
|
397
407
|
});
|
|
398
408
|
app.get(`/__file-code-frame`, async (req, res) => {
|
|
399
|
-
var _req$query10, _req$query11, _req$query12;
|
|
409
|
+
var _req$query10, _req$query11, _req$query12, _res$locals3, _res$locals3$webpack, _res$locals3$webpack$, _res$locals3$webpack$2;
|
|
400
410
|
const emptyResponse = {
|
|
401
411
|
codeFrame: `No codeFrame could be generated`,
|
|
402
412
|
sourcePosition: null,
|
|
@@ -409,7 +419,17 @@ async function startServer(program, app, workerPool = WorkerPool.create()) {
|
|
|
409
419
|
res.json(emptyResponse);
|
|
410
420
|
return;
|
|
411
421
|
}
|
|
412
|
-
const
|
|
422
|
+
const absolutePath = path.resolve(_redux.store.getState().program.directory, filePath);
|
|
423
|
+
const compilation = (_res$locals3 = res.locals) === null || _res$locals3 === void 0 ? void 0 : (_res$locals3$webpack = _res$locals3.webpack) === null || _res$locals3$webpack === void 0 ? void 0 : (_res$locals3$webpack$ = _res$locals3$webpack.devMiddleware) === null || _res$locals3$webpack$ === void 0 ? void 0 : (_res$locals3$webpack$2 = _res$locals3$webpack$.stats) === null || _res$locals3$webpack$2 === void 0 ? void 0 : _res$locals3$webpack$2.compilation;
|
|
424
|
+
if (!compilation) {
|
|
425
|
+
res.json(emptyResponse);
|
|
426
|
+
return;
|
|
427
|
+
}
|
|
428
|
+
if (!(0, _isFileInsideCompilations.isFileInsideCompilations)(absolutePath, compilation)) {
|
|
429
|
+
res.json(emptyResponse);
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
const sourceContent = await fs.readFile(absolutePath, `utf-8`);
|
|
413
433
|
const codeFrame = (0, _codeFrame.codeFrameColumns)(sourceContent, {
|
|
414
434
|
start: {
|
|
415
435
|
line: lineNumber,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-server.js","names":["startServer","program","app","workerPool","WorkerPool","create","directory","PAGE_RENDERER_PATH","path","join","ROUTES_DIRECTORY","webpackActivity","report","activityTimer","id","start","writeVirtualLoadingIndicatorModule","directoryPath","withBasePath","buildRenderer","doBuildPages","require","createIndexHtml","activity","rendererPath","close","Stage","DevelopHTML","span","err","name","panic","stripIndent","indexHTMLActivity","phantomActivity","pageRenderer","process","env","GATSBY_EXPERIMENTAL_DEV_SSR","initDevWorkerPool","end","devConfig","webpackConfig","Develop","port","parentSpan","compiler","webpack","use","compression","telemetry","expressMiddleware","webpackHotMiddleware","log","heartbeat","cors","graphqlEndpoint","graphiqlExplorer","getFragments","fragments","def","store","getState","definitions","values","kind","Kind","FRAGMENT_DEFINITION","push","createGraphqlEndpointHandler","schema","context","withResolverContext","schemaComposer","schemaCustomization","composer","customContext","onOperation","_req","_args","result","errors","map","toJSON","extensions","stack","split","enableRefresh","ENABLE_GATSBY_REFRESH_ENDPOINT","refreshToken","GATSBY_REFRESH_TOKEN","REFRESH_ENDPOINT","refresh","req","pluginName","global","__GATSBY","buildId","uuid","v4","emitter","emit","webhookBody","body","post","express","json","res","params","authorizedRefresh","headers","authorization","status","setHeader","error","isEnabled","get","query","fileName","resolve","cwd","lineNumber","parseInt","launchEditor","isNaN","addImageRoutes","webpackDevMiddlewareInstance","webpackDevMiddleware","publicPath","output","stats","serverSideRender","next","requestedPagePath","pagePath","potentialPagePath","reverseFixedPagePath","page","findPageByPath","serverDataPromise","Promise","pageMode","getPageMode","renderer","componentInstance","getPageChunk","getServerData","catch","pageData","GATSBY_QUERY_ON_DEMAND","Date","now","getPageDataExperimental","trackCli","duration","readPageData","statusCode","Error","value","Object","entries","serverData","props","getServerDataError","structuredError","panicOnBuild","sourceMessage","message","matchPath","send","e","emptyResponse","codeFrame","sourcePosition","sourceContent","sourceLine","sourceColumn","sourceEndLine","sourceEndColumn","skipSourceMap","moduleId","absolutePath","fs","readFileSync","endLineNumber","columnNumber","endColumnNumber","line","column","compilation","locals","devMiddleware","fileModule","module","modules","moduleIdentifier","chunkGraph","getModuleId","webpackSource","codeGenerationResults","sources","sourceMap","position","findOriginalSourcePositionAndContent","codeFrameColumns","undefined","highlightCode","filePath","readFile","developMiddleware","config","proxy","trailingSlash","configureTrailingSlash","developStatic","index","forEach","prefix","url","proxiedUrl","originalUrl","host","method","pipe","got","stream","decompress","on","response","writeHead","_","sendStatus","apiRunnerNode","deferNodeMutation","trackFeatureIsUsed","pathObj","decodeURI","allowTimedFallback","appendPreloadHeaders","htmlActivity","html","renderResponse","renderDevHTML","skipSsr","prototype","hasOwnProperty","call","htmlComponentRendererPath","filename","source","clientOnlyShell","location","minimalHTML","GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR","routeLoadingIndicatorRequests","fullUrl","protocol","endsWith","webpackCompilationHash","sendFile","server","ssl","https","Server","http","socket","websocketManager","init","listener","listen","chokidar","watchGlobs","slash","watch","to","webpackWatching","watching"],"sources":["../../src/utils/start-server.ts"],"sourcesContent":["import webpackHotMiddleware from \"@gatsbyjs/webpack-hot-middleware\"\nimport webpackDevMiddleware from \"webpack-dev-middleware\"\nimport got, { Method } from \"got\"\nimport webpack from \"webpack\"\nimport express from \"express\"\nimport compression from \"compression\"\nimport { createHandler as createGraphqlEndpointHandler } from \"graphql-http/lib/use/express\"\nimport type { OperationContext } from \"graphql-http\"\nimport graphiqlExplorer from \"gatsby-graphiql-explorer\"\nimport { FragmentDefinitionNode, GraphQLError, Kind } from \"graphql\"\nimport { slash, uuid } from \"gatsby-core-utils\"\nimport http from \"http\"\nimport https from \"https\"\nimport cors from \"cors\"\nimport telemetry from \"gatsby-telemetry\"\nimport launchEditor from \"react-dev-utils/launchEditor\"\nimport { codeFrameColumns } from \"@babel/code-frame\"\nimport * as fs from \"fs-extra\"\n\nimport { withBasePath } from \"../utils/path\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { store, emitter } from \"../redux\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport * as WorkerPool from \"../utils/worker/pool\"\n\nimport { developStatic } from \"../commands/develop-static\"\nimport withResolverContext from \"../schema/context\"\nimport { websocketManager, WebsocketManager } from \"../utils/websocket-manager\"\nimport {\n reverseFixedPagePath,\n readPageData,\n IPageDataWithQueryResult,\n} from \"./page-data\"\nimport { getPageData as getPageDataExperimental } from \"./get-page-data\"\nimport { findPageByPath } from \"./find-page-by-path\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport * as path from \"path\"\n\nimport { Stage, IProgram } from \"../commands/types\"\nimport { findOriginalSourcePositionAndContent } from \"./stack-trace-utils\"\nimport { appendPreloadHeaders } from \"./develop-preload-headers\"\nimport {\n routeLoadingIndicatorRequests,\n writeVirtualLoadingIndicatorModule,\n} from \"./loading-indicator\"\nimport { renderDevHTML } from \"./dev-ssr/render-dev-html\"\nimport { getServerData, IServerData } from \"./get-server-data\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nimport { getPageMode } from \"./page-mode\"\nimport { configureTrailingSlash } from \"./express-middlewares\"\nimport type { Express } from \"express\"\nimport { addImageRoutes } from \"gatsby-plugin-utils/polyfill-remote-file\"\n\ntype ActivityTracker = any // TODO: Replace this with proper type once reporter is typed\n\ninterface IServer {\n compiler: webpack.Compiler\n listener: http.Server | https.Server\n webpackActivity: ActivityTracker\n websocketManager: WebsocketManager\n workerPool: WorkerPool.GatsbyWorkerPool\n webpackWatching: IWebpackWatchingPauseResume\n}\n\nexport interface IWebpackWatchingPauseResume {\n suspend: () => void\n resume: () => void\n}\n\nexport async function startServer(\n program: IProgram,\n app: Express,\n workerPool: WorkerPool.GatsbyWorkerPool = WorkerPool.create()\n): Promise<IServer> {\n const directory = program.directory\n const PAGE_RENDERER_PATH = path.join(\n program.directory,\n ROUTES_DIRECTORY,\n `render-page.js`\n )\n\n const webpackActivity = report.activityTimer(`Building development bundle`, {\n id: `webpack-develop`,\n })\n webpackActivity.start()\n\n // loading indicator\n // write virtual module always to not fail webpack compilation, but only add express route handlers when\n // query on demand is enabled and loading indicator is not disabled\n writeVirtualLoadingIndicatorModule()\n\n // Remove the following when merging GATSBY_EXPERIMENTAL_DEV_SSR\n const directoryPath = withBasePath(directory)\n const { buildRenderer, doBuildPages } = require(`../commands/build-html`)\n const createIndexHtml = async (activity: ActivityTracker): Promise<void> => {\n try {\n const { rendererPath, close } = await buildRenderer(\n program,\n Stage.DevelopHTML,\n activity.span\n )\n await doBuildPages(\n rendererPath,\n [`/`],\n activity,\n workerPool,\n Stage.DevelopHTML\n )\n // close the compiler\n await close()\n } catch (err) {\n if (err.name !== `WebpackError`) {\n report.panic(err)\n return\n }\n report.panic(\n report.stripIndent`\n There was an error compiling the html.js component for the development server.\n See our docs page on debugging HTML builds for help https://gatsby.dev/debug-html\n `,\n err\n )\n }\n }\n const indexHTMLActivity = report.phantomActivity(`building index.html`, {})\n\n let pageRenderer: string\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n const { buildRenderer } = require(`../commands/build-html`)\n pageRenderer = (await buildRenderer(program, Stage.DevelopHTML))\n .rendererPath\n const { initDevWorkerPool } = require(`./dev-ssr/render-dev-html`)\n initDevWorkerPool()\n } else {\n indexHTMLActivity.start()\n\n await createIndexHtml(indexHTMLActivity)\n\n indexHTMLActivity.end()\n }\n\n const devConfig = await webpackConfig(\n program,\n directory,\n Stage.Develop,\n program.port,\n {\n parentSpan: webpackActivity.span,\n }\n )\n\n const compiler = webpack(devConfig)\n\n /**\n * Set up the express app.\n **/\n app.use(compression())\n app.use(telemetry.expressMiddleware(`DEVELOP`))\n app.use(\n webpackHotMiddleware(compiler, {\n log: false,\n path: `/__webpack_hmr`,\n heartbeat: 10 * 1000,\n })\n )\n\n app.use(cors())\n\n /**\n * Pattern matching all endpoints with graphql or graphiql with 1 or more leading underscores\n */\n const graphqlEndpoint = `/_+graphi?ql`\n\n graphiqlExplorer(app, {\n graphqlEndpoint,\n getFragments: function getFragments(): Array<FragmentDefinitionNode> {\n const fragments: Array<FragmentDefinitionNode> = []\n for (const def of store.getState().definitions.values()) {\n if (def.def.kind === Kind.FRAGMENT_DEFINITION) {\n fragments.push(def.def)\n }\n }\n return fragments\n },\n })\n\n app.use(\n graphqlEndpoint,\n createGraphqlEndpointHandler({\n schema() {\n return store.getState().schema\n },\n context() {\n return withResolverContext({\n schema: store.getState().schema,\n schemaComposer: store.getState().schemaCustomization.composer,\n context: {},\n customContext: store.getState().schemaCustomization.context,\n }) as unknown as OperationContext\n },\n onOperation(_req, _args, result) {\n if (result.errors) {\n result.errors = result.errors.map(\n err =>\n ({\n ...err.toJSON(),\n extensions: {\n stack: err.stack ? err.stack.split(`\\n`) : [],\n },\n } as unknown as GraphQLError)\n )\n }\n\n result.extensions = {\n enableRefresh: process.env.ENABLE_GATSBY_REFRESH_ENDPOINT,\n refreshToken: process.env.GATSBY_REFRESH_TOKEN,\n }\n\n return result\n },\n })\n )\n\n /**\n * Refresh external data sources.\n * This behavior is disabled by default, but the ENABLE_GATSBY_REFRESH_ENDPOINT env var enables it\n * If no GATSBY_REFRESH_TOKEN env var is available, then no Authorization header is required\n **/\n const REFRESH_ENDPOINT = `/__refresh`\n const refresh = async (\n req: express.Request,\n pluginName?: string\n ): Promise<void> => {\n global.__GATSBY.buildId = uuid.v4()\n\n emitter.emit(`WEBHOOK_RECEIVED`, {\n webhookBody: req.body,\n pluginName,\n })\n }\n\n app.post(`${REFRESH_ENDPOINT}/:plugin_name?`, express.json(), (req, res) => {\n const pluginName = req.params[`plugin_name`]\n\n const enableRefresh = process.env.ENABLE_GATSBY_REFRESH_ENDPOINT\n const refreshToken = process.env.GATSBY_REFRESH_TOKEN\n const authorizedRefresh =\n !refreshToken || req.headers.authorization === refreshToken\n\n if (enableRefresh && authorizedRefresh) {\n refresh(req, pluginName)\n res.status(200)\n res.setHeader(`content-type`, `application/json`)\n } else {\n res.status(authorizedRefresh ? 404 : 403)\n res.json({\n error: enableRefresh\n ? `Authorization failed. Make sure you add authorization header to your refresh requests`\n : `Refresh endpoint is not enabled. Run gatsby with \"ENABLE_GATSBY_REFRESH_ENDPOINT=true\" environment variable set.`,\n isEnabled: !!process.env.ENABLE_GATSBY_REFRESH_ENDPOINT,\n })\n }\n res.end()\n })\n\n app.get(`/__open-stack-frame-in-editor`, (req, res) => {\n if (req.query.fileName) {\n const fileName = path.resolve(process.cwd(), req.query.fileName as string)\n const lineNumber = parseInt(req.query.lineNumber as string, 10)\n launchEditor(fileName, isNaN(lineNumber) ? 1 : lineNumber)\n }\n res.end()\n })\n\n addImageRoutes(app, store)\n\n const webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, {\n publicPath: devConfig.output.publicPath,\n stats: `errors-only`,\n serverSideRender: true,\n })\n\n app.use(webpackDevMiddlewareInstance)\n\n app.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next): Promise<void> => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n next()\n return\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = findPageByPath(store.getState(), potentialPagePath, false)\n\n if (page) {\n try {\n let serverDataPromise: Promise<IServerData> | Promise<Error> =\n Promise.resolve({})\n const pageMode = getPageMode(page)\n\n if (pageMode === `SSR`) {\n const renderer = require(PAGE_RENDERER_PATH)\n const componentInstance = await renderer.getPageChunk(page)\n\n serverDataPromise = getServerData(\n req,\n page,\n potentialPagePath,\n componentInstance\n ).catch(error => error)\n }\n\n let pageData: IPageDataWithQueryResult\n // TODO move to query-engine\n if (process.env.GATSBY_QUERY_ON_DEMAND) {\n const start = Date.now()\n\n pageData = await getPageDataExperimental(page.path)\n\n telemetry.trackCli(`RUN_QUERY_ON_DEMAND`, {\n name: `getPageData`,\n duration: Date.now() - start,\n })\n } else {\n pageData = await readPageData(\n path.join(store.getState().program.directory, `public`),\n page.path\n )\n }\n\n let statusCode = 200\n if (pageMode === `SSR`) {\n try {\n const result = await serverDataPromise\n\n if (result instanceof Error) {\n throw result\n }\n\n if (result.headers) {\n for (const [name, value] of Object.entries(result.headers)) {\n res.setHeader(name, value)\n }\n }\n\n if (result.status) {\n statusCode = result.status\n }\n\n pageData.result.serverData = result.props\n pageData.getServerDataError = null\n } catch (error) {\n const structuredError = report.panicOnBuild({\n id: `95315`,\n context: {\n sourceMessage: error.message,\n pagePath: requestedPagePath,\n potentialPagePath,\n },\n error,\n })\n // Use page-data.json file instead of emitting via websockets as this makes it easier\n // to only display the relevant error + clearing of the error\n // The query-result-store reacts to this\n pageData.getServerDataError = structuredError\n }\n pageData.path = page.matchPath ? `/${potentialPagePath}` : page.path\n } else {\n // When user removes getServerData function, Gatsby browser runtime still has cached version of page-data.\n // Send `null` to always reset cached serverData:\n pageData.result.serverData = null\n }\n\n res.status(statusCode).send(pageData)\n return\n } catch (e) {\n report.error(\n `Error loading a result for the page query in \"${requestedPagePath}\" / \"${potentialPagePath}\". Query was not run and no cached result was found.`,\n e\n )\n }\n }\n\n res.status(404).send({\n path: potentialPagePath,\n })\n }\n )\n\n app.get(`/__original-stack-frame`, (req, res) => {\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n let sourceContent: string | null\n let sourceLine: number | undefined\n let sourceColumn: number | undefined\n let sourceEndLine: number | undefined\n let sourceEndColumn: number | undefined\n let sourcePosition: { line?: number; column?: number } | null\n\n if (req.query?.skipSourceMap) {\n if (!req.query?.moduleId) {\n res.json(emptyResponse)\n return\n }\n\n const absolutePath = path.resolve(\n store.getState().program.directory,\n req.query.moduleId as string\n )\n try {\n sourceContent = fs.readFileSync(absolutePath, `utf-8`)\n } catch (e) {\n res.json(emptyResponse)\n return\n }\n\n if (req.query?.lineNumber) {\n try {\n sourceLine = parseInt(req.query.lineNumber as string, 10)\n\n if (req.query?.endLineNumber) {\n sourceEndLine = parseInt(req.query.endLineNumber as string, 10)\n }\n if (req.query?.columnNumber) {\n sourceColumn = parseInt(req.query.columnNumber as string, 10)\n }\n if (req.query?.endColumnNumber) {\n sourceEndColumn = parseInt(req.query.endColumnNumber as string, 10)\n }\n } catch {\n // failed to get line/column, we should still try to show the code frame\n }\n }\n sourcePosition = {\n line: sourceLine,\n column: sourceColumn,\n }\n } else {\n const compilation = res.locals?.webpack?.devMiddleware?.stats?.compilation\n if (!compilation) {\n res.json(emptyResponse)\n return\n }\n\n const moduleId = req.query?.moduleId\n const lineNumber = parseInt((req.query?.lineNumber as string) ?? 1, 10)\n const columnNumber = parseInt(\n (req.query?.columnNumber as string) ?? 1,\n 10\n )\n\n let fileModule\n for (const module of compilation.modules) {\n const moduleIdentifier = compilation.chunkGraph.getModuleId(module)\n if (moduleIdentifier === moduleId) {\n fileModule = module\n break\n }\n }\n\n if (!fileModule) {\n res.json(emptyResponse)\n return\n }\n\n // We need the internal webpack file that is used in the bundle, not the module source.\n // It doesn't have the correct sourceMap.\n const webpackSource = compilation?.codeGenerationResults\n ?.get(fileModule)\n ?.sources.get(`javascript`)\n\n const sourceMap = webpackSource?.map()\n\n if (!sourceMap) {\n res.json(emptyResponse)\n return\n }\n\n const position = {\n line: lineNumber,\n column: columnNumber,\n }\n const result = findOriginalSourcePositionAndContent(sourceMap, position)\n\n sourcePosition = result?.sourcePosition\n sourceLine = sourcePosition?.line\n sourceColumn = sourcePosition?.column\n sourceContent = result?.sourceContent\n\n if (!sourceContent || !sourceLine) {\n res.json(emptyResponse)\n return\n }\n }\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: sourceLine ?? 0,\n column: sourceColumn ?? 0,\n },\n end: sourceEndLine\n ? {\n line: sourceEndLine,\n column: sourceEndColumn,\n }\n : undefined,\n },\n {\n highlightCode: true,\n }\n )\n res.json({\n codeFrame,\n sourcePosition,\n sourceContent,\n })\n })\n\n app.get(`/__file-code-frame`, async (req, res) => {\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n const filePath: string | undefined = req.query?.filePath as string\n const lineNumber = parseInt(req.query?.lineNumber as string, 10)\n const columnNumber = parseInt(req.query?.columnNumber as string, 10)\n\n if (!filePath) {\n res.json(emptyResponse)\n return\n }\n\n const sourceContent = await fs.readFile(filePath, `utf-8`)\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: lineNumber,\n column: columnNumber ?? 0,\n },\n },\n {\n highlightCode: true,\n }\n )\n res.json({\n codeFrame,\n })\n })\n\n // Expose access to app for advanced use cases\n const { developMiddleware } = store.getState().config\n\n if (developMiddleware) {\n developMiddleware(app, program)\n }\n\n const { proxy, trailingSlash } = store.getState().config\n\n app.use(configureTrailingSlash(() => store.getState(), trailingSlash))\n\n // Disable directory indexing i.e. serving index.html from a directory.\n // This can lead to serving stale html files during development.\n //\n // We serve by default an empty index.html that sets up the dev environment.\n app.use(developStatic(`public`, { index: false }))\n\n // Set up API proxy.\n if (proxy) {\n proxy.forEach(({ prefix, url }) => {\n app.use(`${prefix}/*`, (req, res) => {\n const proxiedUrl = url + req.originalUrl\n const {\n // remove `host` from copied headers\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n headers: { host, ...headers },\n method,\n } = req\n req\n .pipe(\n got\n .stream(proxiedUrl, {\n headers,\n method: method as Method,\n decompress: false,\n })\n .on(`response`, response =>\n res.writeHead(response.statusCode || 200, response.headers)\n )\n .on(`error`, (err, _, response) => {\n if (response) {\n res.writeHead(response.statusCode || 400, response.headers)\n } else {\n const message = `Error when trying to proxy request \"${req.originalUrl}\" to \"${proxiedUrl}\"`\n\n report.error(message, err)\n res.sendStatus(500)\n }\n })\n )\n .pipe(res)\n })\n }, cors())\n }\n\n await apiRunnerNode(`onCreateDevServer`, { app, deferNodeMutation: true })\n\n // In case nothing before handled hot-update - send 404.\n // This fixes \"Unexpected token < in JSON at position 0\" runtime\n // errors after restarting development server and\n // cause automatic hard refresh in the browser.\n app.use(/.*\\.hot-update\\.json$/i, (_, res) => {\n res.status(404).end()\n })\n\n // Render an HTML page and serve it.\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n app.get(`*`, async (req, res, next) => {\n telemetry.trackFeatureIsUsed(`GATSBY_EXPERIMENTAL_DEV_SSR`)\n\n const pathObj = findPageByPath(store.getState(), decodeURI(req.path))\n\n if (!pathObj) {\n return next()\n }\n\n const allowTimedFallback = !req.headers[`x-gatsby-wait-for-dev-ssr`]\n\n await appendPreloadHeaders(pathObj.path, res)\n\n const htmlActivity = report.phantomActivity(`building HTML for path`, {})\n htmlActivity.start()\n\n try {\n const { html: renderResponse, serverData } = await renderDevHTML({\n path: pathObj.path,\n page: pathObj,\n skipSsr: Object.prototype.hasOwnProperty.call(req.query, `skip-ssr`),\n store,\n allowTimedFallback,\n htmlComponentRendererPath: PAGE_RENDERER_PATH,\n directory: program.directory,\n req,\n })\n\n if (serverData?.headers) {\n for (const [name, value] of Object.entries(serverData.headers)) {\n res.setHeader(name, value)\n }\n }\n let statusCode = 200\n if (serverData?.status) {\n statusCode = serverData.status\n }\n res.status(statusCode).send(renderResponse)\n } catch (error) {\n // The page errored but couldn't read the page component.\n // This is a race condition when a page is deleted but its requested\n // immediately after before anything can recompile.\n if (error === `404 page`) {\n return next()\n }\n\n // renderDevHTML throws an error with these information\n const lineNumber = error?.line as number\n const columnNumber = error?.column as number\n const filePath = error?.filename as string\n const sourceContent = error?.sourceContent as string\n\n report.error({\n id: `11614`,\n context: {\n path: pathObj.path,\n filePath: filePath,\n line: lineNumber,\n column: columnNumber,\n },\n })\n\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n if (!sourceContent || !lineNumber) {\n res.json(emptyResponse)\n return null\n }\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: lineNumber,\n column: columnNumber ?? 0,\n },\n },\n {\n highlightCode: true,\n }\n )\n\n const message = {\n codeFrame,\n source: filePath,\n line: lineNumber,\n column: columnNumber ?? 0,\n sourceMessage: error?.message,\n stack: error?.stack,\n }\n\n try {\n // Generate a shell for client-only content -- for the error overlay\n const { html: clientOnlyShell } = await renderDevHTML({\n path: pathObj.path,\n page: pathObj,\n skipSsr: true,\n store,\n error: message,\n htmlComponentRendererPath: PAGE_RENDERER_PATH,\n directory: program.directory,\n req,\n allowTimedFallback,\n })\n\n res.send(clientOnlyShell)\n } catch (e) {\n report.error({\n id: `11616`,\n context: {\n sourceMessage: e.message,\n },\n filePath: e.filename,\n location: {\n start: {\n line: e.line,\n column: e.column,\n },\n },\n })\n\n const minimalHTML = `<head><title>Failed to Server Render (SSR)</title></head><body><h1>Failed to Server Render (SSR)</h1><h2>Error message:</h2><p>${e.message}</p><h2>File:</h2><p>${e.filename}:${e.line}:${e.column}</p><h2>Stack:</h2><pre><code>${e.stack}</code></pre></body>`\n\n res.send(minimalHTML).status(500)\n }\n }\n\n htmlActivity.end()\n\n return null\n })\n }\n\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n routeLoadingIndicatorRequests(app)\n }\n\n app.use(async (req, res) => {\n // in this catch-all block we don't support POST so we should 404\n if (req.method === `POST`) {\n res.status(404).end()\n return\n }\n\n const fullUrl = req.protocol + `://` + req.get(`host`) + req.originalUrl\n // This isn't used in development.\n if (fullUrl.endsWith(`app-data.json`)) {\n res.json({ webpackCompilationHash: `123` })\n // If this gets here, it's a non-existent file so just send back 404.\n } else if (fullUrl.endsWith(`.json`)) {\n res.json({}).status(404)\n } else {\n await appendPreloadHeaders(req.path, res)\n\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n try {\n const allowTimedFallback = !req.headers[`x-gatsby-wait-for-dev-ssr`]\n const { html: renderResponse } = await renderDevHTML({\n path: `/dev-404-page/`,\n // Let renderDevHTML figure it out.\n page: undefined,\n store,\n htmlComponentRendererPath: pageRenderer,\n directory: program.directory,\n req,\n allowTimedFallback,\n })\n res.status(404).send(renderResponse)\n } catch (e) {\n report.error({\n id: `11615`,\n context: {\n sourceMessage: e.message,\n },\n filePath: e.filename,\n location: {\n start: {\n line: e.line,\n column: e.column,\n },\n },\n })\n res.send(e).status(500)\n }\n } else {\n const potentialPagePath = reverseFixedPagePath(decodeURI(req.path))\n const page = findPageByPath(store.getState(), potentialPagePath, false)\n\n // When we can't find a page we send 404\n if (!page) {\n res.status(404)\n }\n\n res.sendFile(directoryPath(`.cache/develop-html/index.html`), err => {\n if (err) {\n res.status(500).end()\n }\n })\n }\n }\n })\n\n /**\n * Set up the HTTP server and socket.io.\n **/\n const server = program.ssl\n ? new https.Server(program.ssl, app)\n : new http.Server(app)\n const socket = websocketManager.init({ server })\n const listener = server.listen(program.port, program.host)\n\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n const chokidar = require(`chokidar`)\n // Register watcher that rebuilds index.html every time html.js changes.\n const watchGlobs = [`src/html.js`, `plugins/**/gatsby-ssr.js`].map(path =>\n slash(directoryPath(path))\n )\n\n chokidar.watch(watchGlobs).on(`change`, async () => {\n await createIndexHtml(indexHTMLActivity)\n // eslint-disable-next-line no-unused-expressions\n socket?.to(`clients`).emit(`reload`)\n })\n }\n\n return {\n compiler,\n listener,\n webpackActivity,\n websocketManager,\n workerPool,\n webpackWatching: webpackDevMiddlewareInstance.context.watching,\n }\n}\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AAEA;AAAyE;AAAA;AAkBlE,eAAeA,WAAW,CAC/BC,OAAiB,EACjBC,GAAY,EACZC,UAAuC,GAAGC,UAAU,CAACC,MAAM,EAAE,EAC3C;EAClB,MAAMC,SAAS,GAAGL,OAAO,CAACK,SAAS;EACnC,MAAMC,kBAAkB,GAAGC,IAAI,CAACC,IAAI,CAClCR,OAAO,CAACK,SAAS,EACjBI,2BAAgB,EACf,gBAAe,CACjB;EAED,MAAMC,eAAe,GAAGC,iBAAM,CAACC,aAAa,CAAE,6BAA4B,EAAE;IAC1EC,EAAE,EAAG;EACP,CAAC,CAAC;EACFH,eAAe,CAACI,KAAK,EAAE;;EAEvB;EACA;EACA;EACA,IAAAC,oDAAkC,GAAE;;EAEpC;EACA,MAAMC,aAAa,GAAG,IAAAC,kBAAY,EAACZ,SAAS,CAAC;EAC7C,MAAM;IAAEa,aAAa;IAAEC;EAAa,CAAC,GAAGC,OAAO,CAAE,wBAAuB,CAAC;EACzE,MAAMC,eAAe,GAAG,MAAOC,QAAyB,IAAoB;IAC1E,IAAI;MACF,MAAM;QAAEC,YAAY;QAAEC;MAAM,CAAC,GAAG,MAAMN,aAAa,CACjDlB,OAAO,EACPyB,YAAK,CAACC,WAAW,EACjBJ,QAAQ,CAACK,IAAI,CACd;MACD,MAAMR,YAAY,CAChBI,YAAY,EACZ,CAAE,GAAE,CAAC,EACLD,QAAQ,EACRpB,UAAU,EACVuB,YAAK,CAACC,WAAW,CAClB;MACD;MACA,MAAMF,KAAK,EAAE;IACf,CAAC,CAAC,OAAOI,GAAG,EAAE;MACZ,IAAIA,GAAG,CAACC,IAAI,KAAM,cAAa,EAAE;QAC/BlB,iBAAM,CAACmB,KAAK,CAACF,GAAG,CAAC;QACjB;MACF;MACAjB,iBAAM,CAACmB,KAAK,CACVnB,iBAAM,CAACoB,WAAY;AAC3B;AACA;AACA,SAAS,EACDH,GAAG,CACJ;IACH;EACF,CAAC;EACD,MAAMI,iBAAiB,GAAGrB,iBAAM,CAACsB,eAAe,CAAE,qBAAoB,EAAE,CAAC,CAAC,CAAC;EAE3E,IAAIC,YAAoB;EACxB,IAAIC,OAAO,CAACC,GAAG,CAACC,2BAA2B,EAAE;IAC3C,MAAM;MAAEnB;IAAc,CAAC,GAAGE,OAAO,CAAE,wBAAuB,CAAC;IAC3Dc,YAAY,GAAG,CAAC,MAAMhB,aAAa,CAAClB,OAAO,EAAEyB,YAAK,CAACC,WAAW,CAAC,EAC5DH,YAAY;IACf,MAAM;MAAEe;IAAkB,CAAC,GAAGlB,OAAO,CAAE,2BAA0B,CAAC;IAClEkB,iBAAiB,EAAE;EACrB,CAAC,MAAM;IACLN,iBAAiB,CAAClB,KAAK,EAAE;IAEzB,MAAMO,eAAe,CAACW,iBAAiB,CAAC;IAExCA,iBAAiB,CAACO,GAAG,EAAE;EACzB;EAEA,MAAMC,SAAS,GAAG,MAAM,IAAAC,iBAAa,EACnCzC,OAAO,EACPK,SAAS,EACToB,YAAK,CAACiB,OAAO,EACb1C,OAAO,CAAC2C,IAAI,EACZ;IACEC,UAAU,EAAElC,eAAe,CAACiB;EAC9B,CAAC,CACF;EAED,MAAMkB,QAAQ,GAAG,IAAAC,gBAAO,EAACN,SAAS,CAAC;;EAEnC;AACF;AACA;EACEvC,GAAG,CAAC8C,GAAG,CAAC,IAAAC,oBAAW,GAAE,CAAC;EACtB/C,GAAG,CAAC8C,GAAG,CAACE,wBAAS,CAACC,iBAAiB,CAAE,SAAQ,CAAC,CAAC;EAC/CjD,GAAG,CAAC8C,GAAG,CACL,IAAAI,6BAAoB,EAACN,QAAQ,EAAE;IAC7BO,GAAG,EAAE,KAAK;IACV7C,IAAI,EAAG,gBAAe;IACtB8C,SAAS,EAAE,EAAE,GAAG;EAClB,CAAC,CAAC,CACH;EAEDpD,GAAG,CAAC8C,GAAG,CAAC,IAAAO,aAAI,GAAE,CAAC;;EAEf;AACF;AACA;EACE,MAAMC,eAAe,GAAI,cAAa;EAEtC,IAAAC,+BAAgB,EAACvD,GAAG,EAAE;IACpBsD,eAAe;IACfE,YAAY,EAAE,SAASA,YAAY,GAAkC;MACnE,MAAMC,SAAwC,GAAG,EAAE;MACnD,KAAK,MAAMC,GAAG,IAAIC,YAAK,CAACC,QAAQ,EAAE,CAACC,WAAW,CAACC,MAAM,EAAE,EAAE;QACvD,IAAIJ,GAAG,CAACA,GAAG,CAACK,IAAI,KAAKC,aAAI,CAACC,mBAAmB,EAAE;UAC7CR,SAAS,CAACS,IAAI,CAACR,GAAG,CAACA,GAAG,CAAC;QACzB;MACF;MACA,OAAOD,SAAS;IAClB;EACF,CAAC,CAAC;EAEFzD,GAAG,CAAC8C,GAAG,CACLQ,eAAe,EACf,IAAAa,uBAA4B,EAAC;IAC3BC,MAAM,GAAG;MACP,OAAOT,YAAK,CAACC,QAAQ,EAAE,CAACQ,MAAM;IAChC,CAAC;IACDC,OAAO,GAAG;MACR,OAAO,IAAAC,gBAAmB,EAAC;QACzBF,MAAM,EAAET,YAAK,CAACC,QAAQ,EAAE,CAACQ,MAAM;QAC/BG,cAAc,EAAEZ,YAAK,CAACC,QAAQ,EAAE,CAACY,mBAAmB,CAACC,QAAQ;QAC7DJ,OAAO,EAAE,CAAC,CAAC;QACXK,aAAa,EAAEf,YAAK,CAACC,QAAQ,EAAE,CAACY,mBAAmB,CAACH;MACtD,CAAC,CAAC;IACJ,CAAC;IACDM,WAAW,CAACC,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAE;MAC/B,IAAIA,MAAM,CAACC,MAAM,EAAE;QACjBD,MAAM,CAACC,MAAM,GAAGD,MAAM,CAACC,MAAM,CAACC,GAAG,CAC/BrD,GAAG,KACA;UACC,GAAGA,GAAG,CAACsD,MAAM,EAAE;UACfC,UAAU,EAAE;YACVC,KAAK,EAAExD,GAAG,CAACwD,KAAK,GAAGxD,GAAG,CAACwD,KAAK,CAACC,KAAK,CAAE,IAAG,CAAC,GAAG;UAC7C;QACF,CAAC,CAA4B,CAChC;MACH;MAEAN,MAAM,CAACI,UAAU,GAAG;QAClBG,aAAa,EAAEnD,OAAO,CAACC,GAAG,CAACmD,8BAA8B;QACzDC,YAAY,EAAErD,OAAO,CAACC,GAAG,CAACqD;MAC5B,CAAC;MAED,OAAOV,MAAM;IACf;EACF,CAAC,CAAC,CACH;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMW,gBAAgB,GAAI,YAAW;EACrC,MAAMC,OAAO,GAAG,OACdC,GAAoB,EACpBC,UAAmB,KACD;IAClBC,MAAM,CAACC,QAAQ,CAACC,OAAO,GAAGC,qBAAI,CAACC,EAAE,EAAE;IAEnCC,cAAO,CAACC,IAAI,CAAE,kBAAiB,EAAE;MAC/BC,WAAW,EAAET,GAAG,CAACU,IAAI;MACrBT;IACF,CAAC,CAAC;EACJ,CAAC;EAED5F,GAAG,CAACsG,IAAI,CAAE,GAAEb,gBAAiB,gBAAe,EAAEc,gBAAO,CAACC,IAAI,EAAE,EAAE,CAACb,GAAG,EAAEc,GAAG,KAAK;IAC1E,MAAMb,UAAU,GAAGD,GAAG,CAACe,MAAM,CAAE,aAAY,CAAC;IAE5C,MAAMrB,aAAa,GAAGnD,OAAO,CAACC,GAAG,CAACmD,8BAA8B;IAChE,MAAMC,YAAY,GAAGrD,OAAO,CAACC,GAAG,CAACqD,oBAAoB;IACrD,MAAMmB,iBAAiB,GACrB,CAACpB,YAAY,IAAII,GAAG,CAACiB,OAAO,CAACC,aAAa,KAAKtB,YAAY;IAE7D,IAAIF,aAAa,IAAIsB,iBAAiB,EAAE;MACtCjB,OAAO,CAACC,GAAG,EAAEC,UAAU,CAAC;MACxBa,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC;MACfL,GAAG,CAACM,SAAS,CAAE,cAAa,EAAG,kBAAiB,CAAC;IACnD,CAAC,MAAM;MACLN,GAAG,CAACK,MAAM,CAACH,iBAAiB,GAAG,GAAG,GAAG,GAAG,CAAC;MACzCF,GAAG,CAACD,IAAI,CAAC;QACPQ,KAAK,EAAE3B,aAAa,GACf,uFAAsF,GACtF,kHAAiH;QACtH4B,SAAS,EAAE,CAAC,CAAC/E,OAAO,CAACC,GAAG,CAACmD;MAC3B,CAAC,CAAC;IACJ;IACAmB,GAAG,CAACnE,GAAG,EAAE;EACX,CAAC,CAAC;EAEFtC,GAAG,CAACkH,GAAG,CAAE,+BAA8B,EAAE,CAACvB,GAAG,EAAEc,GAAG,KAAK;IACrD,IAAId,GAAG,CAACwB,KAAK,CAACC,QAAQ,EAAE;MACtB,MAAMA,QAAQ,GAAG9G,IAAI,CAAC+G,OAAO,CAACnF,OAAO,CAACoF,GAAG,EAAE,EAAE3B,GAAG,CAACwB,KAAK,CAACC,QAAQ,CAAW;MAC1E,MAAMG,UAAU,GAAGC,QAAQ,CAAC7B,GAAG,CAACwB,KAAK,CAACI,UAAU,EAAY,EAAE,CAAC;MAC/D,IAAAE,qBAAY,EAACL,QAAQ,EAAEM,KAAK,CAACH,UAAU,CAAC,GAAG,CAAC,GAAGA,UAAU,CAAC;IAC5D;IACAd,GAAG,CAACnE,GAAG,EAAE;EACX,CAAC,CAAC;EAEF,IAAAqF,kCAAc,EAAC3H,GAAG,EAAE2D,YAAK,CAAC;EAE1B,MAAMiE,4BAA4B,GAAG,IAAAC,6BAAoB,EAACjF,QAAQ,EAAE;IAClEkF,UAAU,EAAEvF,SAAS,CAACwF,MAAM,CAACD,UAAU;IACvCE,KAAK,EAAG,aAAY;IACpBC,gBAAgB,EAAE;EACpB,CAAC,CAAC;EAEFjI,GAAG,CAAC8C,GAAG,CAAC8E,4BAA4B,CAAC;EAErC5H,GAAG,CAACkH,GAAG,CACJ,wCAAuC,EACxC,OAAOvB,GAAG,EAAEc,GAAG,EAAEyB,IAAI,KAAoB;IACvC,MAAMC,iBAAiB,GAAGxC,GAAG,CAACe,MAAM,CAAC0B,QAAQ;IAC7C,IAAI,CAACD,iBAAiB,EAAE;MACtBD,IAAI,EAAE;MACN;IACF;IAEA,MAAMG,iBAAiB,GAAG,IAAAC,8BAAoB,EAACH,iBAAiB,CAAC;IACjE,MAAMI,IAAI,GAAG,IAAAC,8BAAc,EAAC7E,YAAK,CAACC,QAAQ,EAAE,EAAEyE,iBAAiB,EAAE,KAAK,CAAC;IAEvE,IAAIE,IAAI,EAAE;MACR,IAAI;QACF,IAAIE,iBAAwD,GAC1DC,OAAO,CAACrB,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAMsB,QAAQ,GAAG,IAAAC,qBAAW,EAACL,IAAI,CAAC;QAElC,IAAII,QAAQ,KAAM,KAAI,EAAE;UACtB,MAAME,QAAQ,GAAG1H,OAAO,CAACd,kBAAkB,CAAC;UAC5C,MAAMyI,iBAAiB,GAAG,MAAMD,QAAQ,CAACE,YAAY,CAACR,IAAI,CAAC;UAE3DE,iBAAiB,GAAG,IAAAO,4BAAa,EAC/BrD,GAAG,EACH4C,IAAI,EACJF,iBAAiB,EACjBS,iBAAiB,CAClB,CAACG,KAAK,CAACjC,KAAK,IAAIA,KAAK,CAAC;QACzB;QAEA,IAAIkC,QAAkC;QACtC;QACA,IAAIhH,OAAO,CAACC,GAAG,CAACgH,sBAAsB,EAAE;UACtC,MAAMtI,KAAK,GAAGuI,IAAI,CAACC,GAAG,EAAE;UAExBH,QAAQ,GAAG,MAAM,IAAAI,wBAAuB,EAACf,IAAI,CAACjI,IAAI,CAAC;UAEnD0C,wBAAS,CAACuG,QAAQ,CAAE,qBAAoB,EAAE;YACxC3H,IAAI,EAAG,aAAY;YACnB4H,QAAQ,EAAEJ,IAAI,CAACC,GAAG,EAAE,GAAGxI;UACzB,CAAC,CAAC;QACJ,CAAC,MAAM;UACLqI,QAAQ,GAAG,MAAM,IAAAO,sBAAY,EAC3BnJ,IAAI,CAACC,IAAI,CAACoD,YAAK,CAACC,QAAQ,EAAE,CAAC7D,OAAO,CAACK,SAAS,EAAG,QAAO,CAAC,EACvDmI,IAAI,CAACjI,IAAI,CACV;QACH;QAEA,IAAIoJ,UAAU,GAAG,GAAG;QACpB,IAAIf,QAAQ,KAAM,KAAI,EAAE;UACtB,IAAI;YACF,MAAM7D,MAAM,GAAG,MAAM2D,iBAAiB;YAEtC,IAAI3D,MAAM,YAAY6E,KAAK,EAAE;cAC3B,MAAM7E,MAAM;YACd;YAEA,IAAIA,MAAM,CAAC8B,OAAO,EAAE;cAClB,KAAK,MAAM,CAAChF,IAAI,EAAEgI,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAAChF,MAAM,CAAC8B,OAAO,CAAC,EAAE;gBAC1DH,GAAG,CAACM,SAAS,CAACnF,IAAI,EAAEgI,KAAK,CAAC;cAC5B;YACF;YAEA,IAAI9E,MAAM,CAACgC,MAAM,EAAE;cACjB4C,UAAU,GAAG5E,MAAM,CAACgC,MAAM;YAC5B;YAEAoC,QAAQ,CAACpE,MAAM,CAACiF,UAAU,GAAGjF,MAAM,CAACkF,KAAK;YACzCd,QAAQ,CAACe,kBAAkB,GAAG,IAAI;UACpC,CAAC,CAAC,OAAOjD,KAAK,EAAE;YACd,MAAMkD,eAAe,GAAGxJ,iBAAM,CAACyJ,YAAY,CAAC;cAC1CvJ,EAAE,EAAG,OAAM;cACXyD,OAAO,EAAE;gBACP+F,aAAa,EAAEpD,KAAK,CAACqD,OAAO;gBAC5BjC,QAAQ,EAAED,iBAAiB;gBAC3BE;cACF,CAAC;cACDrB;YACF,CAAC,CAAC;YACF;YACA;YACA;YACAkC,QAAQ,CAACe,kBAAkB,GAAGC,eAAe;UAC/C;UACAhB,QAAQ,CAAC5I,IAAI,GAAGiI,IAAI,CAAC+B,SAAS,GAAI,IAAGjC,iBAAkB,EAAC,GAAGE,IAAI,CAACjI,IAAI;QACtE,CAAC,MAAM;UACL;UACA;UACA4I,QAAQ,CAACpE,MAAM,CAACiF,UAAU,GAAG,IAAI;QACnC;QAEAtD,GAAG,CAACK,MAAM,CAAC4C,UAAU,CAAC,CAACa,IAAI,CAACrB,QAAQ,CAAC;QACrC;MACF,CAAC,CAAC,OAAOsB,CAAC,EAAE;QACV9J,iBAAM,CAACsG,KAAK,CACT,iDAAgDmB,iBAAkB,QAAOE,iBAAkB,sDAAqD,EACjJmC,CAAC,CACF;MACH;IACF;IAEA/D,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACyD,IAAI,CAAC;MACnBjK,IAAI,EAAE+H;IACR,CAAC,CAAC;EACJ,CAAC,CACF;EAEDrI,GAAG,CAACkH,GAAG,CAAE,yBAAwB,EAAE,CAACvB,GAAG,EAAEc,GAAG,KAAK;IAAA;IAC/C,MAAMgE,aAAa,GAAG;MACpBC,SAAS,EAAG,iCAAgC;MAC5CC,cAAc,EAAE,IAAI;MACpBC,aAAa,EAAE;IACjB,CAAC;IAED,IAAIA,aAA4B;IAChC,IAAIC,UAA8B;IAClC,IAAIC,YAAgC;IACpC,IAAIC,aAAiC;IACrC,IAAIC,eAAmC;IACvC,IAAIL,cAAyD;IAE7D,kBAAIhF,GAAG,CAACwB,KAAK,uCAAT,WAAW8D,aAAa,EAAE;MAAA;MAC5B,IAAI,iBAACtF,GAAG,CAACwB,KAAK,wCAAT,YAAW+D,QAAQ,GAAE;QACxBzE,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;MAEA,MAAMU,YAAY,GAAG7K,IAAI,CAAC+G,OAAO,CAC/B1D,YAAK,CAACC,QAAQ,EAAE,CAAC7D,OAAO,CAACK,SAAS,EAClCuF,GAAG,CAACwB,KAAK,CAAC+D,QAAQ,CACnB;MACD,IAAI;QACFN,aAAa,GAAGQ,EAAE,CAACC,YAAY,CAACF,YAAY,EAAG,OAAM,CAAC;MACxD,CAAC,CAAC,OAAOX,CAAC,EAAE;QACV/D,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;MAEA,mBAAI9E,GAAG,CAACwB,KAAK,wCAAT,YAAWI,UAAU,EAAE;QACzB,IAAI;UAAA;UACFsD,UAAU,GAAGrD,QAAQ,CAAC7B,GAAG,CAACwB,KAAK,CAACI,UAAU,EAAY,EAAE,CAAC;UAEzD,mBAAI5B,GAAG,CAACwB,KAAK,wCAAT,YAAWmE,aAAa,EAAE;YAC5BP,aAAa,GAAGvD,QAAQ,CAAC7B,GAAG,CAACwB,KAAK,CAACmE,aAAa,EAAY,EAAE,CAAC;UACjE;UACA,mBAAI3F,GAAG,CAACwB,KAAK,wCAAT,YAAWoE,YAAY,EAAE;YAC3BT,YAAY,GAAGtD,QAAQ,CAAC7B,GAAG,CAACwB,KAAK,CAACoE,YAAY,EAAY,EAAE,CAAC;UAC/D;UACA,mBAAI5F,GAAG,CAACwB,KAAK,wCAAT,YAAWqE,eAAe,EAAE;YAC9BR,eAAe,GAAGxD,QAAQ,CAAC7B,GAAG,CAACwB,KAAK,CAACqE,eAAe,EAAY,EAAE,CAAC;UACrE;QACF,CAAC,CAAC,MAAM;UACN;QAAA;MAEJ;MACAb,cAAc,GAAG;QACfc,IAAI,EAAEZ,UAAU;QAChBa,MAAM,EAAEZ;MACV,CAAC;IACH,CAAC,MAAM;MAAA;MACL,MAAMa,WAAW,kBAAGlF,GAAG,CAACmF,MAAM,uEAAV,YAAY/I,OAAO,iFAAnB,oBAAqBgJ,aAAa,oFAAlC,sBAAoC7D,KAAK,2DAAzC,uBAA2C2D,WAAW;MAC1E,IAAI,CAACA,WAAW,EAAE;QAChBlF,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;MAEA,MAAMS,QAAQ,kBAAGvF,GAAG,CAACwB,KAAK,gDAAT,YAAW+D,QAAQ;MACpC,MAAM3D,UAAU,GAAGC,QAAQ,wBAAE7B,GAAG,CAACwB,KAAK,gDAAT,YAAWI,UAAU,uCAAe,CAAC,EAAE,EAAE,CAAC;MACvE,MAAMgE,YAAY,GAAG/D,QAAQ,yBAC1B7B,GAAG,CAACwB,KAAK,gDAAT,YAAWoE,YAAY,yCAAe,CAAC,EACxC,EAAE,CACH;MAED,IAAIO,UAAU;MACd,KAAK,MAAMC,MAAM,IAAIJ,WAAW,CAACK,OAAO,EAAE;QACxC,MAAMC,gBAAgB,GAAGN,WAAW,CAACO,UAAU,CAACC,WAAW,CAACJ,MAAM,CAAC;QACnE,IAAIE,gBAAgB,KAAKf,QAAQ,EAAE;UACjCY,UAAU,GAAGC,MAAM;UACnB;QACF;MACF;MAEA,IAAI,CAACD,UAAU,EAAE;QACfrF,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;;MAEA;MACA;MACA,MAAM2B,aAAa,GAAGT,WAAW,aAAXA,WAAW,gDAAXA,WAAW,CAAEU,qBAAqB,oFAAlC,sBAClBnF,GAAG,CAAC4E,UAAU,CAAC,2DADG,uBAElBQ,OAAO,CAACpF,GAAG,CAAE,YAAW,CAAC;MAE7B,MAAMqF,SAAS,GAAGH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEpH,GAAG,EAAE;MAEtC,IAAI,CAACuH,SAAS,EAAE;QACd9F,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;MAEA,MAAM+B,QAAQ,GAAG;QACff,IAAI,EAAElE,UAAU;QAChBmE,MAAM,EAAEH;MACV,CAAC;MACD,MAAMzG,MAAM,GAAG,IAAA2H,qDAAoC,EAACF,SAAS,EAAEC,QAAQ,CAAC;MAExE7B,cAAc,GAAG7F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE6F,cAAc;MACvCE,UAAU,sBAAGF,cAAc,oDAAd,gBAAgBc,IAAI;MACjCX,YAAY,uBAAGH,cAAc,qDAAd,iBAAgBe,MAAM;MACrCd,aAAa,GAAG9F,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8F,aAAa;MAErC,IAAI,CAACA,aAAa,IAAI,CAACC,UAAU,EAAE;QACjCpE,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;QACvB;MACF;IACF;IAEA,MAAMC,SAAS,GAAG,IAAAgC,2BAAgB,EAChC9B,aAAa,EACb;MACE/J,KAAK,EAAE;QACL4K,IAAI,iBAAEZ,UAAU,qDAAI,CAAC;QACrBa,MAAM,mBAAEZ,YAAY,yDAAI;MAC1B,CAAC;MACDxI,GAAG,EAAEyI,aAAa,GACd;QACEU,IAAI,EAAEV,aAAa;QACnBW,MAAM,EAAEV;MACV,CAAC,GACD2B;IACN,CAAC,EACD;MACEC,aAAa,EAAE;IACjB,CAAC,CACF;IACDnG,GAAG,CAACD,IAAI,CAAC;MACPkE,SAAS;MACTC,cAAc;MACdC;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF5K,GAAG,CAACkH,GAAG,CAAE,oBAAmB,EAAE,OAAOvB,GAAG,EAAEc,GAAG,KAAK;IAAA;IAChD,MAAMgE,aAAa,GAAG;MACpBC,SAAS,EAAG,iCAAgC;MAC5CC,cAAc,EAAE,IAAI;MACpBC,aAAa,EAAE;IACjB,CAAC;IAED,MAAMiC,QAA4B,mBAAGlH,GAAG,CAACwB,KAAK,iDAAT,aAAW0F,QAAkB;IAClE,MAAMtF,UAAU,GAAGC,QAAQ,iBAAC7B,GAAG,CAACwB,KAAK,iDAAT,aAAWI,UAAU,EAAY,EAAE,CAAC;IAChE,MAAMgE,YAAY,GAAG/D,QAAQ,iBAAC7B,GAAG,CAACwB,KAAK,iDAAT,aAAWoE,YAAY,EAAY,EAAE,CAAC;IAEpE,IAAI,CAACsB,QAAQ,EAAE;MACbpG,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;MACvB;IACF;IAEA,MAAMG,aAAa,GAAG,MAAMQ,EAAE,CAAC0B,QAAQ,CAACD,QAAQ,EAAG,OAAM,CAAC;IAE1D,MAAMnC,SAAS,GAAG,IAAAgC,2BAAgB,EAChC9B,aAAa,EACb;MACE/J,KAAK,EAAE;QACL4K,IAAI,EAAElE,UAAU;QAChBmE,MAAM,EAAEH,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI;MAC1B;IACF,CAAC,EACD;MACEqB,aAAa,EAAE;IACjB,CAAC,CACF;IACDnG,GAAG,CAACD,IAAI,CAAC;MACPkE;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;EACA,MAAM;IAAEqC;EAAkB,CAAC,GAAGpJ,YAAK,CAACC,QAAQ,EAAE,CAACoJ,MAAM;EAErD,IAAID,iBAAiB,EAAE;IACrBA,iBAAiB,CAAC/M,GAAG,EAAED,OAAO,CAAC;EACjC;EAEA,MAAM;IAAEkN,KAAK;IAAEC;EAAc,CAAC,GAAGvJ,YAAK,CAACC,QAAQ,EAAE,CAACoJ,MAAM;EAExDhN,GAAG,CAAC8C,GAAG,CAAC,IAAAqK,0CAAsB,EAAC,MAAMxJ,YAAK,CAACC,QAAQ,EAAE,EAAEsJ,aAAa,CAAC,CAAC;;EAEtE;EACA;EACA;EACA;EACAlN,GAAG,CAAC8C,GAAG,CAAC,IAAAsK,4BAAa,EAAE,QAAO,EAAE;IAAEC,KAAK,EAAE;EAAM,CAAC,CAAC,CAAC;;EAElD;EACA,IAAIJ,KAAK,EAAE;IACTA,KAAK,CAACK,OAAO,CAAC,CAAC;MAAEC,MAAM;MAAEC;IAAI,CAAC,KAAK;MACjCxN,GAAG,CAAC8C,GAAG,CAAE,GAAEyK,MAAO,IAAG,EAAE,CAAC5H,GAAG,EAAEc,GAAG,KAAK;QACnC,MAAMgH,UAAU,GAAGD,GAAG,GAAG7H,GAAG,CAAC+H,WAAW;QACxC,MAAM;UACJ;UACA;UACA9G,OAAO,EAAE;YAAE+G,IAAI;YAAE,GAAG/G;UAAQ,CAAC;UAC7BgH;QACF,CAAC,GAAGjI,GAAG;QACPA,GAAG,CACAkI,IAAI,CACHC,YAAG,CACAC,MAAM,CAACN,UAAU,EAAE;UAClB7G,OAAO;UACPgH,MAAM,EAAEA,MAAgB;UACxBI,UAAU,EAAE;QACd,CAAC,CAAC,CACDC,EAAE,CAAE,UAAS,EAAEC,QAAQ,IACtBzH,GAAG,CAAC0H,SAAS,CAACD,QAAQ,CAACxE,UAAU,IAAI,GAAG,EAAEwE,QAAQ,CAACtH,OAAO,CAAC,CAC5D,CACAqH,EAAE,CAAE,OAAM,EAAE,CAACtM,GAAG,EAAEyM,CAAC,EAAEF,QAAQ,KAAK;UACjC,IAAIA,QAAQ,EAAE;YACZzH,GAAG,CAAC0H,SAAS,CAACD,QAAQ,CAACxE,UAAU,IAAI,GAAG,EAAEwE,QAAQ,CAACtH,OAAO,CAAC;UAC7D,CAAC,MAAM;YACL,MAAMyD,OAAO,GAAI,uCAAsC1E,GAAG,CAAC+H,WAAY,SAAQD,UAAW,GAAE;YAE5F/M,iBAAM,CAACsG,KAAK,CAACqD,OAAO,EAAE1I,GAAG,CAAC;YAC1B8E,GAAG,CAAC4H,UAAU,CAAC,GAAG,CAAC;UACrB;QACF,CAAC,CAAC,CACL,CACAR,IAAI,CAACpH,GAAG,CAAC;MACd,CAAC,CAAC;IACJ,CAAC,EAAE,IAAApD,aAAI,GAAE,CAAC;EACZ;EAEA,MAAM,IAAAiL,sBAAa,EAAE,mBAAkB,EAAE;IAAEtO,GAAG;IAAEuO,iBAAiB,EAAE;EAAK,CAAC,CAAC;;EAE1E;EACA;EACA;EACA;EACAvO,GAAG,CAAC8C,GAAG,CAAC,wBAAwB,EAAE,CAACsL,CAAC,EAAE3H,GAAG,KAAK;IAC5CA,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACxE,GAAG,EAAE;EACvB,CAAC,CAAC;;EAEF;EACA,IAAIJ,OAAO,CAACC,GAAG,CAACC,2BAA2B,EAAE;IAC3CpC,GAAG,CAACkH,GAAG,CAAE,GAAE,EAAE,OAAOvB,GAAG,EAAEc,GAAG,EAAEyB,IAAI,KAAK;MACrClF,wBAAS,CAACwL,kBAAkB,CAAE,6BAA4B,CAAC;MAE3D,MAAMC,OAAO,GAAG,IAAAjG,8BAAc,EAAC7E,YAAK,CAACC,QAAQ,EAAE,EAAE8K,SAAS,CAAC/I,GAAG,CAACrF,IAAI,CAAC,CAAC;MAErE,IAAI,CAACmO,OAAO,EAAE;QACZ,OAAOvG,IAAI,EAAE;MACf;MAEA,MAAMyG,kBAAkB,GAAG,CAAChJ,GAAG,CAACiB,OAAO,CAAE,2BAA0B,CAAC;MAEpE,MAAM,IAAAgI,2CAAoB,EAACH,OAAO,CAACnO,IAAI,EAAEmG,GAAG,CAAC;MAE7C,MAAMoI,YAAY,GAAGnO,iBAAM,CAACsB,eAAe,CAAE,wBAAuB,EAAE,CAAC,CAAC,CAAC;MACzE6M,YAAY,CAAChO,KAAK,EAAE;MAEpB,IAAI;QACF,MAAM;UAAEiO,IAAI,EAAEC,cAAc;UAAEhF;QAAW,CAAC,GAAG,MAAM,IAAAiF,4BAAa,EAAC;UAC/D1O,IAAI,EAAEmO,OAAO,CAACnO,IAAI;UAClBiI,IAAI,EAAEkG,OAAO;UACbQ,OAAO,EAAEpF,MAAM,CAACqF,SAAS,CAACC,cAAc,CAACC,IAAI,CAACzJ,GAAG,CAACwB,KAAK,EAAG,UAAS,CAAC;UACpExD,KAAK,EAALA,YAAK;UACLgL,kBAAkB;UAClBU,yBAAyB,EAAEhP,kBAAkB;UAC7CD,SAAS,EAAEL,OAAO,CAACK,SAAS;UAC5BuF;QACF,CAAC,CAAC;QAEF,IAAIoE,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEnD,OAAO,EAAE;UACvB,KAAK,MAAM,CAAChF,IAAI,EAAEgI,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACC,UAAU,CAACnD,OAAO,CAAC,EAAE;YAC9DH,GAAG,CAACM,SAAS,CAACnF,IAAI,EAAEgI,KAAK,CAAC;UAC5B;QACF;QACA,IAAIF,UAAU,GAAG,GAAG;QACpB,IAAIK,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEjD,MAAM,EAAE;UACtB4C,UAAU,GAAGK,UAAU,CAACjD,MAAM;QAChC;QACAL,GAAG,CAACK,MAAM,CAAC4C,UAAU,CAAC,CAACa,IAAI,CAACwE,cAAc,CAAC;MAC7C,CAAC,CAAC,OAAO/H,KAAK,EAAE;QACd;QACA;QACA;QACA,IAAIA,KAAK,KAAM,UAAS,EAAE;UACxB,OAAOkB,IAAI,EAAE;QACf;;QAEA;QACA,MAAMX,UAAU,GAAGP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyE,IAAc;QACxC,MAAMF,YAAY,GAAGvE,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE0E,MAAgB;QAC5C,MAAMmB,QAAQ,GAAG7F,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEsI,QAAkB;QAC1C,MAAM1E,aAAa,GAAG5D,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE4D,aAAuB;QAEpDlK,iBAAM,CAACsG,KAAK,CAAC;UACXpG,EAAE,EAAG,OAAM;UACXyD,OAAO,EAAE;YACP/D,IAAI,EAAEmO,OAAO,CAACnO,IAAI;YAClBuM,QAAQ,EAAEA,QAAQ;YAClBpB,IAAI,EAAElE,UAAU;YAChBmE,MAAM,EAAEH;UACV;QACF,CAAC,CAAC;QAEF,MAAMd,aAAa,GAAG;UACpBC,SAAS,EAAG,iCAAgC;UAC5CC,cAAc,EAAE,IAAI;UACpBC,aAAa,EAAE;QACjB,CAAC;QAED,IAAI,CAACA,aAAa,IAAI,CAACrD,UAAU,EAAE;UACjCd,GAAG,CAACD,IAAI,CAACiE,aAAa,CAAC;UACvB,OAAO,IAAI;QACb;QAEA,MAAMC,SAAS,GAAG,IAAAgC,2BAAgB,EAChC9B,aAAa,EACb;UACE/J,KAAK,EAAE;YACL4K,IAAI,EAAElE,UAAU;YAChBmE,MAAM,EAAEH,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI;UAC1B;QACF,CAAC,EACD;UACEqB,aAAa,EAAE;QACjB,CAAC,CACF;QAED,MAAMvC,OAAO,GAAG;UACdK,SAAS;UACT6E,MAAM,EAAE1C,QAAQ;UAChBpB,IAAI,EAAElE,UAAU;UAChBmE,MAAM,EAAEH,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,CAAC;UACzBnB,aAAa,EAAEpD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEqD,OAAO;UAC7BlF,KAAK,EAAE6B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE7B;QAChB,CAAC;QAED,IAAI;UACF;UACA,MAAM;YAAE2J,IAAI,EAAEU;UAAgB,CAAC,GAAG,MAAM,IAAAR,4BAAa,EAAC;YACpD1O,IAAI,EAAEmO,OAAO,CAACnO,IAAI;YAClBiI,IAAI,EAAEkG,OAAO;YACbQ,OAAO,EAAE,IAAI;YACbtL,KAAK,EAALA,YAAK;YACLqD,KAAK,EAAEqD,OAAO;YACdgF,yBAAyB,EAAEhP,kBAAkB;YAC7CD,SAAS,EAAEL,OAAO,CAACK,SAAS;YAC5BuF,GAAG;YACHgJ;UACF,CAAC,CAAC;UAEFlI,GAAG,CAAC8D,IAAI,CAACiF,eAAe,CAAC;QAC3B,CAAC,CAAC,OAAOhF,CAAC,EAAE;UACV9J,iBAAM,CAACsG,KAAK,CAAC;YACXpG,EAAE,EAAG,OAAM;YACXyD,OAAO,EAAE;cACP+F,aAAa,EAAEI,CAAC,CAACH;YACnB,CAAC;YACDwC,QAAQ,EAAErC,CAAC,CAAC8E,QAAQ;YACpBG,QAAQ,EAAE;cACR5O,KAAK,EAAE;gBACL4K,IAAI,EAAEjB,CAAC,CAACiB,IAAI;gBACZC,MAAM,EAAElB,CAAC,CAACkB;cACZ;YACF;UACF,CAAC,CAAC;UAEF,MAAMgE,WAAW,GAAI,kIAAiIlF,CAAC,CAACH,OAAQ,wBAAuBG,CAAC,CAAC8E,QAAS,IAAG9E,CAAC,CAACiB,IAAK,IAAGjB,CAAC,CAACkB,MAAO,iCAAgClB,CAAC,CAACrF,KAAM,sBAAqB;UAErRsB,GAAG,CAAC8D,IAAI,CAACmF,WAAW,CAAC,CAAC5I,MAAM,CAAC,GAAG,CAAC;QACnC;MACF;MAEA+H,YAAY,CAACvM,GAAG,EAAE;MAElB,OAAO,IAAI;IACb,CAAC,CAAC;EACJ;EAEA,IACEJ,OAAO,CAACC,GAAG,CAACgH,sBAAsB,IAClCjH,OAAO,CAACC,GAAG,CAACwN,wCAAwC,KAAM,MAAK,EAC/D;IACA,IAAAC,+CAA6B,EAAC5P,GAAG,CAAC;EACpC;EAEAA,GAAG,CAAC8C,GAAG,CAAC,OAAO6C,GAAG,EAAEc,GAAG,KAAK;IAC1B;IACA,IAAId,GAAG,CAACiI,MAAM,KAAM,MAAK,EAAE;MACzBnH,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACxE,GAAG,EAAE;MACrB;IACF;IAEA,MAAMuN,OAAO,GAAGlK,GAAG,CAACmK,QAAQ,GAAI,KAAI,GAAGnK,GAAG,CAACuB,GAAG,CAAE,MAAK,CAAC,GAAGvB,GAAG,CAAC+H,WAAW;IACxE;IACA,IAAImC,OAAO,CAACE,QAAQ,CAAE,eAAc,CAAC,EAAE;MACrCtJ,GAAG,CAACD,IAAI,CAAC;QAAEwJ,sBAAsB,EAAG;MAAK,CAAC,CAAC;MAC3C;IACF,CAAC,MAAM,IAAIH,OAAO,CAACE,QAAQ,CAAE,OAAM,CAAC,EAAE;MACpCtJ,GAAG,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,CAACM,MAAM,CAAC,GAAG,CAAC;IAC1B,CAAC,MAAM;MACL,MAAM,IAAA8H,2CAAoB,EAACjJ,GAAG,CAACrF,IAAI,EAAEmG,GAAG,CAAC;MAEzC,IAAIvE,OAAO,CAACC,GAAG,CAACC,2BAA2B,EAAE;QAC3C,IAAI;UACF,MAAMuM,kBAAkB,GAAG,CAAChJ,GAAG,CAACiB,OAAO,CAAE,2BAA0B,CAAC;UACpE,MAAM;YAAEkI,IAAI,EAAEC;UAAe,CAAC,GAAG,MAAM,IAAAC,4BAAa,EAAC;YACnD1O,IAAI,EAAG,gBAAe;YACtB;YACAiI,IAAI,EAAEoE,SAAS;YACfhJ,KAAK,EAALA,YAAK;YACL0L,yBAAyB,EAAEpN,YAAY;YACvC7B,SAAS,EAAEL,OAAO,CAACK,SAAS;YAC5BuF,GAAG;YACHgJ;UACF,CAAC,CAAC;UACFlI,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACyD,IAAI,CAACwE,cAAc,CAAC;QACtC,CAAC,CAAC,OAAOvE,CAAC,EAAE;UACV9J,iBAAM,CAACsG,KAAK,CAAC;YACXpG,EAAE,EAAG,OAAM;YACXyD,OAAO,EAAE;cACP+F,aAAa,EAAEI,CAAC,CAACH;YACnB,CAAC;YACDwC,QAAQ,EAAErC,CAAC,CAAC8E,QAAQ;YACpBG,QAAQ,EAAE;cACR5O,KAAK,EAAE;gBACL4K,IAAI,EAAEjB,CAAC,CAACiB,IAAI;gBACZC,MAAM,EAAElB,CAAC,CAACkB;cACZ;YACF;UACF,CAAC,CAAC;UACFjF,GAAG,CAAC8D,IAAI,CAACC,CAAC,CAAC,CAAC1D,MAAM,CAAC,GAAG,CAAC;QACzB;MACF,CAAC,MAAM;QACL,MAAMuB,iBAAiB,GAAG,IAAAC,8BAAoB,EAACoG,SAAS,CAAC/I,GAAG,CAACrF,IAAI,CAAC,CAAC;QACnE,MAAMiI,IAAI,GAAG,IAAAC,8BAAc,EAAC7E,YAAK,CAACC,QAAQ,EAAE,EAAEyE,iBAAiB,EAAE,KAAK,CAAC;;QAEvE;QACA,IAAI,CAACE,IAAI,EAAE;UACT9B,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC;QACjB;QAEAL,GAAG,CAACwJ,QAAQ,CAAClP,aAAa,CAAE,gCAA+B,CAAC,EAAEY,GAAG,IAAI;UACnE,IAAIA,GAAG,EAAE;YACP8E,GAAG,CAACK,MAAM,CAAC,GAAG,CAAC,CAACxE,GAAG,EAAE;UACvB;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC,CAAC;;EAEF;AACF;AACA;EACE,MAAM4N,MAAM,GAAGnQ,OAAO,CAACoQ,GAAG,GACtB,IAAIC,cAAK,CAACC,MAAM,CAACtQ,OAAO,CAACoQ,GAAG,EAAEnQ,GAAG,CAAC,GAClC,IAAIsQ,aAAI,CAACD,MAAM,CAACrQ,GAAG,CAAC;EACxB,MAAMuQ,MAAM,GAAGC,kCAAgB,CAACC,IAAI,CAAC;IAAEP;EAAO,CAAC,CAAC;EAChD,MAAMQ,QAAQ,GAAGR,MAAM,CAACS,MAAM,CAAC5Q,OAAO,CAAC2C,IAAI,EAAE3C,OAAO,CAAC4N,IAAI,CAAC;EAE1D,IAAI,CAACzL,OAAO,CAACC,GAAG,CAACC,2BAA2B,EAAE;IAC5C,MAAMwO,QAAQ,GAAGzP,OAAO,CAAE,UAAS,CAAC;IACpC;IACA,MAAM0P,UAAU,GAAG,CAAE,aAAY,EAAG,0BAAyB,CAAC,CAAC7L,GAAG,CAAC1E,IAAI,IACrE,IAAAwQ,sBAAK,EAAC/P,aAAa,CAACT,IAAI,CAAC,CAAC,CAC3B;IAEDsQ,QAAQ,CAACG,KAAK,CAACF,UAAU,CAAC,CAAC5C,EAAE,CAAE,QAAO,EAAE,YAAY;MAClD,MAAM7M,eAAe,CAACW,iBAAiB,CAAC;MACxC;MACAwO,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAES,EAAE,CAAE,SAAQ,CAAC,CAAC7K,IAAI,CAAE,QAAO,CAAC;IACtC,CAAC,CAAC;EACJ;EAEA,OAAO;IACLvD,QAAQ;IACR8N,QAAQ;IACRjQ,eAAe;IACf+P,gBAAgB,EAAhBA,kCAAgB;IAChBvQ,UAAU;IACVgR,eAAe,EAAErJ,4BAA4B,CAACvD,OAAO,CAAC6M;EACxD,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"start-server.js","names":["startServer","program","app","workerPool","WorkerPool","create","directory","PAGE_RENDERER_PATH","path","join","ROUTES_DIRECTORY","webpackActivity","report","activityTimer","id","start","writeVirtualLoadingIndicatorModule","directoryPath","withBasePath","buildRenderer","doBuildPages","require","createIndexHtml","activity","rendererPath","close","Stage","DevelopHTML","span","err","name","panic","stripIndent","indexHTMLActivity","phantomActivity","pageRenderer","process","env","GATSBY_EXPERIMENTAL_DEV_SSR","initDevWorkerPool","end","devConfig","webpackConfig","Develop","port","parentSpan","compiler","webpack","use","compression","telemetry","expressMiddleware","webpackHotMiddleware","log","heartbeat","cors","graphqlEndpoint","graphiqlExplorer","getFragments","fragments","def","store","getState","definitions","values","kind","Kind","FRAGMENT_DEFINITION","push","createGraphqlEndpointHandler","schema","context","withResolverContext","schemaComposer","schemaCustomization","composer","customContext","onOperation","_req","_args","result","errors","map","toJSON","extensions","stack","split","enableRefresh","ENABLE_GATSBY_REFRESH_ENDPOINT","refreshToken","GATSBY_REFRESH_TOKEN","REFRESH_ENDPOINT","refresh","req","pluginName","global","__GATSBY","buildId","uuid","v4","emitter","emit","webhookBody","body","post","express","json","res","params","authorizedRefresh","headers","authorization","status","setHeader","error","isEnabled","get","query","fileName","resolve","cwd","lineNumber","parseInt","launchEditor","isNaN","addImageRoutes","webpackDevMiddlewareInstance","webpackDevMiddleware","publicPath","output","stats","serverSideRender","next","requestedPagePath","pagePath","potentialPagePath","reverseFixedPagePath","page","findPageByPath","serverDataPromise","Promise","pageMode","getPageMode","renderer","componentInstance","getPageChunk","getServerData","catch","pageData","GATSBY_QUERY_ON_DEMAND","Date","now","getPageDataExperimental","trackCli","duration","readPageData","statusCode","Error","value","Object","entries","serverData","props","getServerDataError","structuredError","panicOnBuild","sourceMessage","message","matchPath","send","e","emptyResponse","codeFrame","sourcePosition","sourceContent","sourceLine","sourceColumn","sourceEndLine","sourceEndColumn","skipSourceMap","moduleId","absolutePath","compilation","locals","devMiddleware","isFileInsideCompilations","fs","readFileSync","endLineNumber","columnNumber","endColumnNumber","line","column","fileModule","module","modules","moduleIdentifier","chunkGraph","getModuleId","webpackSource","codeGenerationResults","sources","sourceMap","position","findOriginalSourcePositionAndContent","codeFrameColumns","undefined","highlightCode","filePath","readFile","developMiddleware","config","proxy","trailingSlash","configureTrailingSlash","developStatic","index","forEach","prefix","url","proxiedUrl","originalUrl","host","method","pipe","got","stream","decompress","on","response","writeHead","_","sendStatus","apiRunnerNode","deferNodeMutation","trackFeatureIsUsed","pathObj","decodeURI","allowTimedFallback","appendPreloadHeaders","htmlActivity","html","renderResponse","renderDevHTML","skipSsr","prototype","hasOwnProperty","call","htmlComponentRendererPath","filename","source","clientOnlyShell","location","minimalHTML","GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR","routeLoadingIndicatorRequests","fullUrl","protocol","endsWith","webpackCompilationHash","sendFile","server","ssl","https","Server","http","socket","websocketManager","init","listener","listen","chokidar","watchGlobs","slash","watch","to","webpackWatching","watching"],"sources":["../../src/utils/start-server.ts"],"sourcesContent":["import webpackHotMiddleware from \"@gatsbyjs/webpack-hot-middleware\"\nimport webpackDevMiddleware from \"webpack-dev-middleware\"\nimport got, { Method } from \"got\"\nimport webpack, { Compilation } from \"webpack\"\nimport express from \"express\"\nimport compression from \"compression\"\nimport { createHandler as createGraphqlEndpointHandler } from \"graphql-http/lib/use/express\"\nimport type { OperationContext } from \"graphql-http\"\nimport graphiqlExplorer from \"gatsby-graphiql-explorer\"\nimport { FragmentDefinitionNode, GraphQLError, Kind } from \"graphql\"\nimport { slash, uuid } from \"gatsby-core-utils\"\nimport http from \"http\"\nimport https from \"https\"\nimport cors from \"cors\"\nimport telemetry from \"gatsby-telemetry\"\nimport launchEditor from \"react-dev-utils/launchEditor\"\nimport { codeFrameColumns } from \"@babel/code-frame\"\nimport * as fs from \"fs-extra\"\n\nimport { withBasePath } from \"../utils/path\"\nimport webpackConfig from \"../utils/webpack.config\"\nimport { store, emitter } from \"../redux\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport * as WorkerPool from \"../utils/worker/pool\"\n\nimport { developStatic } from \"../commands/develop-static\"\nimport withResolverContext from \"../schema/context\"\nimport { websocketManager, WebsocketManager } from \"../utils/websocket-manager\"\nimport {\n reverseFixedPagePath,\n readPageData,\n IPageDataWithQueryResult,\n} from \"./page-data\"\nimport { getPageData as getPageDataExperimental } from \"./get-page-data\"\nimport { findPageByPath } from \"./find-page-by-path\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport * as path from \"path\"\n\nimport { Stage, IProgram } from \"../commands/types\"\nimport { findOriginalSourcePositionAndContent } from \"./stack-trace-utils\"\nimport { appendPreloadHeaders } from \"./develop-preload-headers\"\nimport {\n routeLoadingIndicatorRequests,\n writeVirtualLoadingIndicatorModule,\n} from \"./loading-indicator\"\nimport { renderDevHTML } from \"./dev-ssr/render-dev-html\"\nimport { getServerData, IServerData } from \"./get-server-data\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nimport { getPageMode } from \"./page-mode\"\nimport { configureTrailingSlash } from \"./express-middlewares\"\nimport type { Express } from \"express\"\nimport { addImageRoutes } from \"gatsby-plugin-utils/polyfill-remote-file\"\nimport { isFileInsideCompilations } from \"./webpack/utils/is-file-inside-compilations\"\n\ntype ActivityTracker = any // TODO: Replace this with proper type once reporter is typed\n\ninterface IServer {\n compiler: webpack.Compiler\n listener: http.Server | https.Server\n webpackActivity: ActivityTracker\n websocketManager: WebsocketManager\n workerPool: WorkerPool.GatsbyWorkerPool\n webpackWatching: IWebpackWatchingPauseResume\n}\n\nexport interface IWebpackWatchingPauseResume {\n suspend: () => void\n resume: () => void\n}\n\nexport async function startServer(\n program: IProgram,\n app: Express,\n workerPool: WorkerPool.GatsbyWorkerPool = WorkerPool.create()\n): Promise<IServer> {\n const directory = program.directory\n const PAGE_RENDERER_PATH = path.join(\n program.directory,\n ROUTES_DIRECTORY,\n `render-page.js`\n )\n\n const webpackActivity = report.activityTimer(`Building development bundle`, {\n id: `webpack-develop`,\n })\n webpackActivity.start()\n\n // loading indicator\n // write virtual module always to not fail webpack compilation, but only add express route handlers when\n // query on demand is enabled and loading indicator is not disabled\n writeVirtualLoadingIndicatorModule()\n\n // Remove the following when merging GATSBY_EXPERIMENTAL_DEV_SSR\n const directoryPath = withBasePath(directory)\n const { buildRenderer, doBuildPages } = require(`../commands/build-html`)\n const createIndexHtml = async (activity: ActivityTracker): Promise<void> => {\n try {\n const { rendererPath, close } = await buildRenderer(\n program,\n Stage.DevelopHTML,\n activity.span\n )\n await doBuildPages(\n rendererPath,\n [`/`],\n activity,\n workerPool,\n Stage.DevelopHTML\n )\n // close the compiler\n await close()\n } catch (err) {\n if (err.name !== `WebpackError`) {\n report.panic(err)\n return\n }\n report.panic(\n report.stripIndent`\n There was an error compiling the html.js component for the development server.\n See our docs page on debugging HTML builds for help https://gatsby.dev/debug-html\n `,\n err\n )\n }\n }\n const indexHTMLActivity = report.phantomActivity(`building index.html`, {})\n\n let pageRenderer: string\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n const { buildRenderer } = require(`../commands/build-html`)\n pageRenderer = (await buildRenderer(program, Stage.DevelopHTML))\n .rendererPath\n const { initDevWorkerPool } = require(`./dev-ssr/render-dev-html`)\n initDevWorkerPool()\n } else {\n indexHTMLActivity.start()\n\n await createIndexHtml(indexHTMLActivity)\n\n indexHTMLActivity.end()\n }\n\n const devConfig = await webpackConfig(\n program,\n directory,\n Stage.Develop,\n program.port,\n {\n parentSpan: webpackActivity.span,\n }\n )\n\n const compiler = webpack(devConfig)\n\n /**\n * Set up the express app.\n **/\n app.use(compression())\n app.use(telemetry.expressMiddleware(`DEVELOP`))\n app.use(\n webpackHotMiddleware(compiler, {\n log: false,\n path: `/__webpack_hmr`,\n heartbeat: 10 * 1000,\n })\n )\n\n app.use(cors())\n\n /**\n * Pattern matching all endpoints with graphql or graphiql with 1 or more leading underscores\n */\n const graphqlEndpoint = `/_+graphi?ql`\n\n graphiqlExplorer(app, {\n graphqlEndpoint,\n getFragments: function getFragments(): Array<FragmentDefinitionNode> {\n const fragments: Array<FragmentDefinitionNode> = []\n for (const def of store.getState().definitions.values()) {\n if (def.def.kind === Kind.FRAGMENT_DEFINITION) {\n fragments.push(def.def)\n }\n }\n return fragments\n },\n })\n\n app.use(\n graphqlEndpoint,\n createGraphqlEndpointHandler({\n schema() {\n return store.getState().schema\n },\n context() {\n return withResolverContext({\n schema: store.getState().schema,\n schemaComposer: store.getState().schemaCustomization.composer,\n context: {},\n customContext: store.getState().schemaCustomization.context,\n }) as unknown as OperationContext\n },\n onOperation(_req, _args, result) {\n if (result.errors) {\n result.errors = result.errors.map(\n err =>\n ({\n ...err.toJSON(),\n extensions: {\n stack: err.stack ? err.stack.split(`\\n`) : [],\n },\n } as unknown as GraphQLError)\n )\n }\n\n result.extensions = {\n enableRefresh: process.env.ENABLE_GATSBY_REFRESH_ENDPOINT,\n refreshToken: process.env.GATSBY_REFRESH_TOKEN,\n }\n\n return result\n },\n })\n )\n\n /**\n * Refresh external data sources.\n * This behavior is disabled by default, but the ENABLE_GATSBY_REFRESH_ENDPOINT env var enables it\n * If no GATSBY_REFRESH_TOKEN env var is available, then no Authorization header is required\n **/\n const REFRESH_ENDPOINT = `/__refresh`\n const refresh = async (\n req: express.Request,\n pluginName?: string\n ): Promise<void> => {\n global.__GATSBY.buildId = uuid.v4()\n\n emitter.emit(`WEBHOOK_RECEIVED`, {\n webhookBody: req.body,\n pluginName,\n })\n }\n\n app.post(`${REFRESH_ENDPOINT}/:plugin_name?`, express.json(), (req, res) => {\n const pluginName = req.params[`plugin_name`]\n\n const enableRefresh = process.env.ENABLE_GATSBY_REFRESH_ENDPOINT\n const refreshToken = process.env.GATSBY_REFRESH_TOKEN\n const authorizedRefresh =\n !refreshToken || req.headers.authorization === refreshToken\n\n if (enableRefresh && authorizedRefresh) {\n refresh(req, pluginName)\n res.status(200)\n res.setHeader(`content-type`, `application/json`)\n } else {\n res.status(authorizedRefresh ? 404 : 403)\n res.json({\n error: enableRefresh\n ? `Authorization failed. Make sure you add authorization header to your refresh requests`\n : `Refresh endpoint is not enabled. Run gatsby with \"ENABLE_GATSBY_REFRESH_ENDPOINT=true\" environment variable set.`,\n isEnabled: !!process.env.ENABLE_GATSBY_REFRESH_ENDPOINT,\n })\n }\n res.end()\n })\n\n app.get(`/__open-stack-frame-in-editor`, (req, res) => {\n if (req.query.fileName) {\n const fileName = path.resolve(process.cwd(), req.query.fileName as string)\n const lineNumber = parseInt(req.query.lineNumber as string, 10)\n launchEditor(fileName, isNaN(lineNumber) ? 1 : lineNumber)\n }\n res.end()\n })\n\n addImageRoutes(app, store)\n\n const webpackDevMiddlewareInstance = webpackDevMiddleware(compiler, {\n publicPath: devConfig.output.publicPath,\n stats: `errors-only`,\n serverSideRender: true,\n })\n\n app.use(webpackDevMiddlewareInstance)\n\n app.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next): Promise<void> => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n next()\n return\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = findPageByPath(store.getState(), potentialPagePath, false)\n\n if (page) {\n try {\n let serverDataPromise: Promise<IServerData> | Promise<Error> =\n Promise.resolve({})\n const pageMode = getPageMode(page)\n\n if (pageMode === `SSR`) {\n const renderer = require(PAGE_RENDERER_PATH)\n const componentInstance = await renderer.getPageChunk(page)\n\n serverDataPromise = getServerData(\n req,\n page,\n potentialPagePath,\n componentInstance\n ).catch(error => error)\n }\n\n let pageData: IPageDataWithQueryResult\n // TODO move to query-engine\n if (process.env.GATSBY_QUERY_ON_DEMAND) {\n const start = Date.now()\n\n pageData = await getPageDataExperimental(page.path)\n\n telemetry.trackCli(`RUN_QUERY_ON_DEMAND`, {\n name: `getPageData`,\n duration: Date.now() - start,\n })\n } else {\n pageData = await readPageData(\n path.join(store.getState().program.directory, `public`),\n page.path\n )\n }\n\n let statusCode = 200\n if (pageMode === `SSR`) {\n try {\n const result = await serverDataPromise\n\n if (result instanceof Error) {\n throw result\n }\n\n if (result.headers) {\n for (const [name, value] of Object.entries(result.headers)) {\n res.setHeader(name, value)\n }\n }\n\n if (result.status) {\n statusCode = result.status\n }\n\n pageData.result.serverData = result.props\n pageData.getServerDataError = null\n } catch (error) {\n const structuredError = report.panicOnBuild({\n id: `95315`,\n context: {\n sourceMessage: error.message,\n pagePath: requestedPagePath,\n potentialPagePath,\n },\n error,\n })\n // Use page-data.json file instead of emitting via websockets as this makes it easier\n // to only display the relevant error + clearing of the error\n // The query-result-store reacts to this\n pageData.getServerDataError = structuredError\n }\n pageData.path = page.matchPath ? `/${potentialPagePath}` : page.path\n } else {\n // When user removes getServerData function, Gatsby browser runtime still has cached version of page-data.\n // Send `null` to always reset cached serverData:\n pageData.result.serverData = null\n }\n\n res.status(statusCode).send(pageData)\n return\n } catch (e) {\n report.error(\n `Error loading a result for the page query in \"${requestedPagePath}\" / \"${potentialPagePath}\". Query was not run and no cached result was found.`,\n e\n )\n }\n }\n\n res.status(404).send({\n path: potentialPagePath,\n })\n }\n )\n\n app.get(`/__original-stack-frame`, (req, res) => {\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n let sourceContent: string | null\n let sourceLine: number | undefined\n let sourceColumn: number | undefined\n let sourceEndLine: number | undefined\n let sourceEndColumn: number | undefined\n let sourcePosition: { line?: number; column?: number } | null\n\n if (req.query?.skipSourceMap) {\n if (!req.query?.moduleId) {\n res.json(emptyResponse)\n return\n }\n\n const absolutePath = path.resolve(\n store.getState().program.directory,\n req.query.moduleId as string\n )\n\n const compilation: Compilation =\n res.locals?.webpack?.devMiddleware?.stats?.compilation\n if (!compilation) {\n res.json(emptyResponse)\n return\n }\n\n if (!isFileInsideCompilations(absolutePath, compilation)) {\n res.json(emptyResponse)\n return\n }\n\n try {\n sourceContent = fs.readFileSync(absolutePath, `utf-8`)\n } catch (e) {\n res.json(emptyResponse)\n return\n }\n\n if (req.query?.lineNumber) {\n try {\n sourceLine = parseInt(req.query.lineNumber as string, 10)\n\n if (req.query?.endLineNumber) {\n sourceEndLine = parseInt(req.query.endLineNumber as string, 10)\n }\n if (req.query?.columnNumber) {\n sourceColumn = parseInt(req.query.columnNumber as string, 10)\n }\n if (req.query?.endColumnNumber) {\n sourceEndColumn = parseInt(req.query.endColumnNumber as string, 10)\n }\n } catch {\n // failed to get line/column, we should still try to show the code frame\n }\n }\n sourcePosition = {\n line: sourceLine,\n column: sourceColumn,\n }\n } else {\n const compilation = res.locals?.webpack?.devMiddleware?.stats?.compilation\n if (!compilation) {\n res.json(emptyResponse)\n return\n }\n\n const moduleId = req.query?.moduleId\n const lineNumber = parseInt((req.query?.lineNumber as string) ?? 1, 10)\n const columnNumber = parseInt(\n (req.query?.columnNumber as string) ?? 1,\n 10\n )\n\n let fileModule\n for (const module of compilation.modules) {\n const moduleIdentifier = compilation.chunkGraph.getModuleId(module)\n if (moduleIdentifier === moduleId) {\n fileModule = module\n break\n }\n }\n\n if (!fileModule) {\n res.json(emptyResponse)\n return\n }\n\n // We need the internal webpack file that is used in the bundle, not the module source.\n // It doesn't have the correct sourceMap.\n const webpackSource = compilation?.codeGenerationResults\n ?.get(fileModule)\n ?.sources.get(`javascript`)\n\n const sourceMap = webpackSource?.map()\n\n if (!sourceMap) {\n res.json(emptyResponse)\n return\n }\n\n const position = {\n line: lineNumber,\n column: columnNumber,\n }\n const result = findOriginalSourcePositionAndContent(sourceMap, position)\n\n sourcePosition = result?.sourcePosition\n sourceLine = sourcePosition?.line\n sourceColumn = sourcePosition?.column\n sourceContent = result?.sourceContent\n\n if (!sourceContent || !sourceLine) {\n res.json(emptyResponse)\n return\n }\n }\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: sourceLine ?? 0,\n column: sourceColumn ?? 0,\n },\n end: sourceEndLine\n ? {\n line: sourceEndLine,\n column: sourceEndColumn,\n }\n : undefined,\n },\n {\n highlightCode: true,\n }\n )\n res.json({\n codeFrame,\n sourcePosition,\n sourceContent,\n })\n })\n\n app.get(`/__file-code-frame`, async (req, res) => {\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n const filePath: string | undefined = req.query?.filePath as string\n const lineNumber = parseInt(req.query?.lineNumber as string, 10)\n const columnNumber = parseInt(req.query?.columnNumber as string, 10)\n\n if (!filePath) {\n res.json(emptyResponse)\n return\n }\n\n const absolutePath = path.resolve(\n store.getState().program.directory,\n filePath\n )\n\n const compilation: Compilation =\n res.locals?.webpack?.devMiddleware?.stats?.compilation\n if (!compilation) {\n res.json(emptyResponse)\n return\n }\n\n if (!isFileInsideCompilations(absolutePath, compilation)) {\n res.json(emptyResponse)\n return\n }\n\n const sourceContent = await fs.readFile(absolutePath, `utf-8`)\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: lineNumber,\n column: columnNumber ?? 0,\n },\n },\n {\n highlightCode: true,\n }\n )\n res.json({\n codeFrame,\n })\n })\n\n // Expose access to app for advanced use cases\n const { developMiddleware } = store.getState().config\n\n if (developMiddleware) {\n developMiddleware(app, program)\n }\n\n const { proxy, trailingSlash } = store.getState().config\n\n app.use(configureTrailingSlash(() => store.getState(), trailingSlash))\n\n // Disable directory indexing i.e. serving index.html from a directory.\n // This can lead to serving stale html files during development.\n //\n // We serve by default an empty index.html that sets up the dev environment.\n app.use(developStatic(`public`, { index: false }))\n\n // Set up API proxy.\n if (proxy) {\n proxy.forEach(({ prefix, url }) => {\n app.use(`${prefix}/*`, (req, res) => {\n const proxiedUrl = url + req.originalUrl\n const {\n // remove `host` from copied headers\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n headers: { host, ...headers },\n method,\n } = req\n req\n .pipe(\n got\n .stream(proxiedUrl, {\n headers,\n method: method as Method,\n decompress: false,\n })\n .on(`response`, response =>\n res.writeHead(response.statusCode || 200, response.headers)\n )\n .on(`error`, (err, _, response) => {\n if (response) {\n res.writeHead(response.statusCode || 400, response.headers)\n } else {\n const message = `Error when trying to proxy request \"${req.originalUrl}\" to \"${proxiedUrl}\"`\n\n report.error(message, err)\n res.sendStatus(500)\n }\n })\n )\n .pipe(res)\n })\n }, cors())\n }\n\n await apiRunnerNode(`onCreateDevServer`, { app, deferNodeMutation: true })\n\n // In case nothing before handled hot-update - send 404.\n // This fixes \"Unexpected token < in JSON at position 0\" runtime\n // errors after restarting development server and\n // cause automatic hard refresh in the browser.\n app.use(/.*\\.hot-update\\.json$/i, (_, res) => {\n res.status(404).end()\n })\n\n // Render an HTML page and serve it.\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n app.get(`*`, async (req, res, next) => {\n telemetry.trackFeatureIsUsed(`GATSBY_EXPERIMENTAL_DEV_SSR`)\n\n const pathObj = findPageByPath(store.getState(), decodeURI(req.path))\n\n if (!pathObj) {\n return next()\n }\n\n const allowTimedFallback = !req.headers[`x-gatsby-wait-for-dev-ssr`]\n\n await appendPreloadHeaders(pathObj.path, res)\n\n const htmlActivity = report.phantomActivity(`building HTML for path`, {})\n htmlActivity.start()\n\n try {\n const { html: renderResponse, serverData } = await renderDevHTML({\n path: pathObj.path,\n page: pathObj,\n skipSsr: Object.prototype.hasOwnProperty.call(req.query, `skip-ssr`),\n store,\n allowTimedFallback,\n htmlComponentRendererPath: PAGE_RENDERER_PATH,\n directory: program.directory,\n req,\n })\n\n if (serverData?.headers) {\n for (const [name, value] of Object.entries(serverData.headers)) {\n res.setHeader(name, value)\n }\n }\n let statusCode = 200\n if (serverData?.status) {\n statusCode = serverData.status\n }\n res.status(statusCode).send(renderResponse)\n } catch (error) {\n // The page errored but couldn't read the page component.\n // This is a race condition when a page is deleted but its requested\n // immediately after before anything can recompile.\n if (error === `404 page`) {\n return next()\n }\n\n // renderDevHTML throws an error with these information\n const lineNumber = error?.line as number\n const columnNumber = error?.column as number\n const filePath = error?.filename as string\n const sourceContent = error?.sourceContent as string\n\n report.error({\n id: `11614`,\n context: {\n path: pathObj.path,\n filePath: filePath,\n line: lineNumber,\n column: columnNumber,\n },\n })\n\n const emptyResponse = {\n codeFrame: `No codeFrame could be generated`,\n sourcePosition: null,\n sourceContent: null,\n }\n\n if (!sourceContent || !lineNumber) {\n res.json(emptyResponse)\n return null\n }\n\n const codeFrame = codeFrameColumns(\n sourceContent,\n {\n start: {\n line: lineNumber,\n column: columnNumber ?? 0,\n },\n },\n {\n highlightCode: true,\n }\n )\n\n const message = {\n codeFrame,\n source: filePath,\n line: lineNumber,\n column: columnNumber ?? 0,\n sourceMessage: error?.message,\n stack: error?.stack,\n }\n\n try {\n // Generate a shell for client-only content -- for the error overlay\n const { html: clientOnlyShell } = await renderDevHTML({\n path: pathObj.path,\n page: pathObj,\n skipSsr: true,\n store,\n error: message,\n htmlComponentRendererPath: PAGE_RENDERER_PATH,\n directory: program.directory,\n req,\n allowTimedFallback,\n })\n\n res.send(clientOnlyShell)\n } catch (e) {\n report.error({\n id: `11616`,\n context: {\n sourceMessage: e.message,\n },\n filePath: e.filename,\n location: {\n start: {\n line: e.line,\n column: e.column,\n },\n },\n })\n\n const minimalHTML = `<head><title>Failed to Server Render (SSR)</title></head><body><h1>Failed to Server Render (SSR)</h1><h2>Error message:</h2><p>${e.message}</p><h2>File:</h2><p>${e.filename}:${e.line}:${e.column}</p><h2>Stack:</h2><pre><code>${e.stack}</code></pre></body>`\n\n res.send(minimalHTML).status(500)\n }\n }\n\n htmlActivity.end()\n\n return null\n })\n }\n\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n routeLoadingIndicatorRequests(app)\n }\n\n app.use(async (req, res) => {\n // in this catch-all block we don't support POST so we should 404\n if (req.method === `POST`) {\n res.status(404).end()\n return\n }\n\n const fullUrl = req.protocol + `://` + req.get(`host`) + req.originalUrl\n // This isn't used in development.\n if (fullUrl.endsWith(`app-data.json`)) {\n res.json({ webpackCompilationHash: `123` })\n // If this gets here, it's a non-existent file so just send back 404.\n } else if (fullUrl.endsWith(`.json`)) {\n res.json({}).status(404)\n } else {\n await appendPreloadHeaders(req.path, res)\n\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n try {\n const allowTimedFallback = !req.headers[`x-gatsby-wait-for-dev-ssr`]\n const { html: renderResponse } = await renderDevHTML({\n path: `/dev-404-page/`,\n // Let renderDevHTML figure it out.\n page: undefined,\n store,\n htmlComponentRendererPath: pageRenderer,\n directory: program.directory,\n req,\n allowTimedFallback,\n })\n res.status(404).send(renderResponse)\n } catch (e) {\n report.error({\n id: `11615`,\n context: {\n sourceMessage: e.message,\n },\n filePath: e.filename,\n location: {\n start: {\n line: e.line,\n column: e.column,\n },\n },\n })\n res.send(e).status(500)\n }\n } else {\n const potentialPagePath = reverseFixedPagePath(decodeURI(req.path))\n const page = findPageByPath(store.getState(), potentialPagePath, false)\n\n // When we can't find a page we send 404\n if (!page) {\n res.status(404)\n }\n\n res.sendFile(directoryPath(`.cache/develop-html/index.html`), err => {\n if (err) {\n res.status(500).end()\n }\n })\n }\n }\n })\n\n /**\n * Set up the HTTP server and socket.io.\n **/\n const server = program.ssl\n ? new https.Server(program.ssl, app)\n : new http.Server(app)\n const socket = websocketManager.init({ server })\n const listener = server.listen(program.port, program.host)\n\n if (!process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n const chokidar = require(`chokidar`)\n // Register watcher that rebuilds index.html every time html.js changes.\n const watchGlobs = [`src/html.js`, `plugins/**/gatsby-ssr.js`].map(path =>\n slash(directoryPath(path))\n )\n\n chokidar.watch(watchGlobs).on(`change`, async () => {\n await createIndexHtml(indexHTMLActivity)\n // eslint-disable-next-line no-unused-expressions\n socket?.to(`clients`).emit(`reload`)\n })\n }\n\n return {\n compiler,\n listener,\n webpackActivity,\n websocketManager,\n workerPool,\n webpackWatching: webpackDevMiddlewareInstance.context.watching,\n }\n}\n"],"mappings":"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"}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.getSSRChunkHashes = getSSRChunkHashes;
|
|
5
|
-
function getHashes(chunkGroup, compilation, hashes = []) {
|
|
5
|
+
function getHashes(chunkGroup, compilation, hashes = [], visitedChunkGroups = new Set()) {
|
|
6
|
+
if (visitedChunkGroups.has(chunkGroup)) {
|
|
7
|
+
return hashes;
|
|
8
|
+
}
|
|
9
|
+
visitedChunkGroups.add(chunkGroup);
|
|
6
10
|
for (const chunk of chunkGroup.chunks) {
|
|
7
11
|
if (!chunk.hash) {
|
|
8
12
|
throw new Error(`Invariant: [generating template hashes] Chunk doesn't have hash`);
|
|
@@ -12,7 +16,7 @@ function getHashes(chunkGroup, compilation, hashes = []) {
|
|
|
12
16
|
for (const childChunkGroup of chunkGroup.childrenIterable) {
|
|
13
17
|
const isNotImportedByAsyncRequires = childChunkGroup.origins.every(origin => !origin.module.identifier().includes(`async-requires`));
|
|
14
18
|
if (isNotImportedByAsyncRequires) {
|
|
15
|
-
getHashes(childChunkGroup, compilation, hashes);
|
|
19
|
+
getHashes(childChunkGroup, compilation, hashes, visitedChunkGroups);
|
|
16
20
|
}
|
|
17
21
|
}
|
|
18
22
|
return hashes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-ssr-chunk-hashes.js","names":["getHashes","chunkGroup","compilation","hashes","chunk","chunks","hash","Error","push","childChunkGroup","childrenIterable","isNotImportedByAsyncRequires","origins","every","origin","module","identifier","includes","getSSRChunkHashes","stats","components","templateHashes","componentChunkNameToTemplatePath","renderPageHash","forEach","component","componentChunkName","componentPath","chunkGroups","name","concenatedChunksByName","join","templatePath"],"sources":["../../../src/utils/webpack/get-ssr-chunk-hashes.ts"],"sourcesContent":["import type webpack from \"webpack\"\nimport type { IGatsbyState } from \"../../internal\"\n\ntype ChunkGroup = webpack.Compilation[\"chunkGroups\"][0]\n\nfunction getHashes(\n chunkGroup: ChunkGroup,\n compilation: webpack.Compilation,\n hashes: Array<string> = []\n): Array<string> {\n for (const chunk of chunkGroup.chunks) {\n if (!chunk.hash) {\n throw new Error(\n `Invariant: [generating template hashes] Chunk doesn't have hash`\n )\n }\n hashes.push(chunk.hash)\n }\n\n for (const childChunkGroup of chunkGroup.childrenIterable) {\n const isNotImportedByAsyncRequires = childChunkGroup.origins.every(\n origin => !origin.module.identifier().includes(`async-requires`)\n )\n\n if (isNotImportedByAsyncRequires) {\n getHashes(childChunkGroup, compilation, hashes)\n }\n }\n\n return hashes\n}\n\nexport function getSSRChunkHashes({\n stats,\n components,\n}: {\n stats: webpack.Stats\n components: IGatsbyState[\"components\"]\n}): {\n templateHashes: Record<string, string>\n renderPageHash: string\n} {\n const templateHashes: Record<string, string> = {}\n const componentChunkNameToTemplatePath: Record<string, string> = {}\n let renderPageHash = ``\n\n components.forEach(component => {\n componentChunkNameToTemplatePath[component.componentChunkName] =\n component.componentPath\n })\n\n for (const chunkGroup of stats.compilation.chunkGroups) {\n if (chunkGroup.name) {\n const concenatedChunksByName = getHashes(\n chunkGroup,\n stats.compilation\n ).join(`--`)\n\n if (chunkGroup.name !== `render-page`) {\n const templatePath = componentChunkNameToTemplatePath[chunkGroup.name]\n if (!templatePath) {\n // additional chunk group can be created by lazy imports\n // we handle them by handling children chunk groups on top level ones\n continue\n }\n templateHashes[templatePath] = concenatedChunksByName\n } else {\n renderPageHash = concenatedChunksByName\n }\n }\n }\n\n return { templateHashes, renderPageHash }\n}\n"],"mappings":";;;;AAKA,SAASA,SAAS,CAChBC,UAAsB,EACtBC,WAAgC,EAChCC,MAAqB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"get-ssr-chunk-hashes.js","names":["getHashes","chunkGroup","compilation","hashes","visitedChunkGroups","Set","has","add","chunk","chunks","hash","Error","push","childChunkGroup","childrenIterable","isNotImportedByAsyncRequires","origins","every","origin","module","identifier","includes","getSSRChunkHashes","stats","components","templateHashes","componentChunkNameToTemplatePath","renderPageHash","forEach","component","componentChunkName","componentPath","chunkGroups","name","concenatedChunksByName","join","templatePath"],"sources":["../../../src/utils/webpack/get-ssr-chunk-hashes.ts"],"sourcesContent":["import type webpack from \"webpack\"\nimport type { IGatsbyState } from \"../../internal\"\n\ntype ChunkGroup = webpack.Compilation[\"chunkGroups\"][0]\n\nfunction getHashes(\n chunkGroup: ChunkGroup,\n compilation: webpack.Compilation,\n hashes: Array<string> = [],\n visitedChunkGroups: Set<ChunkGroup> = new Set()\n): Array<string> {\n if (visitedChunkGroups.has(chunkGroup)) {\n return hashes\n }\n visitedChunkGroups.add(chunkGroup)\n\n for (const chunk of chunkGroup.chunks) {\n if (!chunk.hash) {\n throw new Error(\n `Invariant: [generating template hashes] Chunk doesn't have hash`\n )\n }\n hashes.push(chunk.hash)\n }\n\n for (const childChunkGroup of chunkGroup.childrenIterable) {\n const isNotImportedByAsyncRequires = childChunkGroup.origins.every(\n origin => !origin.module.identifier().includes(`async-requires`)\n )\n\n if (isNotImportedByAsyncRequires) {\n getHashes(childChunkGroup, compilation, hashes, visitedChunkGroups)\n }\n }\n\n return hashes\n}\n\nexport function getSSRChunkHashes({\n stats,\n components,\n}: {\n stats: webpack.Stats\n components: IGatsbyState[\"components\"]\n}): {\n templateHashes: Record<string, string>\n renderPageHash: string\n} {\n const templateHashes: Record<string, string> = {}\n const componentChunkNameToTemplatePath: Record<string, string> = {}\n let renderPageHash = ``\n\n components.forEach(component => {\n componentChunkNameToTemplatePath[component.componentChunkName] =\n component.componentPath\n })\n\n for (const chunkGroup of stats.compilation.chunkGroups) {\n if (chunkGroup.name) {\n const concenatedChunksByName = getHashes(\n chunkGroup,\n stats.compilation\n ).join(`--`)\n\n if (chunkGroup.name !== `render-page`) {\n const templatePath = componentChunkNameToTemplatePath[chunkGroup.name]\n if (!templatePath) {\n // additional chunk group can be created by lazy imports\n // we handle them by handling children chunk groups on top level ones\n continue\n }\n templateHashes[templatePath] = concenatedChunksByName\n } else {\n renderPageHash = concenatedChunksByName\n }\n }\n }\n\n return { templateHashes, renderPageHash }\n}\n"],"mappings":";;;;AAKA,SAASA,SAAS,CAChBC,UAAsB,EACtBC,WAAgC,EAChCC,MAAqB,GAAG,EAAE,EAC1BC,kBAAmC,GAAG,IAAIC,GAAG,EAAE,EAChC;EACf,IAAID,kBAAkB,CAACE,GAAG,CAACL,UAAU,CAAC,EAAE;IACtC,OAAOE,MAAM;EACf;EACAC,kBAAkB,CAACG,GAAG,CAACN,UAAU,CAAC;EAElC,KAAK,MAAMO,KAAK,IAAIP,UAAU,CAACQ,MAAM,EAAE;IACrC,IAAI,CAACD,KAAK,CAACE,IAAI,EAAE;MACf,MAAM,IAAIC,KAAK,CACZ,iEAAgE,CAClE;IACH;IACAR,MAAM,CAACS,IAAI,CAACJ,KAAK,CAACE,IAAI,CAAC;EACzB;EAEA,KAAK,MAAMG,eAAe,IAAIZ,UAAU,CAACa,gBAAgB,EAAE;IACzD,MAAMC,4BAA4B,GAAGF,eAAe,CAACG,OAAO,CAACC,KAAK,CAChEC,MAAM,IAAI,CAACA,MAAM,CAACC,MAAM,CAACC,UAAU,EAAE,CAACC,QAAQ,CAAE,gBAAe,CAAC,CACjE;IAED,IAAIN,4BAA4B,EAAE;MAChCf,SAAS,CAACa,eAAe,EAAEX,WAAW,EAAEC,MAAM,EAAEC,kBAAkB,CAAC;IACrE;EACF;EAEA,OAAOD,MAAM;AACf;AAEO,SAASmB,iBAAiB,CAAC;EAChCC,KAAK;EACLC;AAIF,CAAC,EAGC;EACA,MAAMC,cAAsC,GAAG,CAAC,CAAC;EACjD,MAAMC,gCAAwD,GAAG,CAAC,CAAC;EACnE,IAAIC,cAAc,GAAI,EAAC;EAEvBH,UAAU,CAACI,OAAO,CAACC,SAAS,IAAI;IAC9BH,gCAAgC,CAACG,SAAS,CAACC,kBAAkB,CAAC,GAC5DD,SAAS,CAACE,aAAa;EAC3B,CAAC,CAAC;EAEF,KAAK,MAAM9B,UAAU,IAAIsB,KAAK,CAACrB,WAAW,CAAC8B,WAAW,EAAE;IACtD,IAAI/B,UAAU,CAACgC,IAAI,EAAE;MACnB,MAAMC,sBAAsB,GAAGlC,SAAS,CACtCC,UAAU,EACVsB,KAAK,CAACrB,WAAW,CAClB,CAACiC,IAAI,CAAE,IAAG,CAAC;MAEZ,IAAIlC,UAAU,CAACgC,IAAI,KAAM,aAAY,EAAE;QACrC,MAAMG,YAAY,GAAGV,gCAAgC,CAACzB,UAAU,CAACgC,IAAI,CAAC;QACtE,IAAI,CAACG,YAAY,EAAE;UACjB;UACA;UACA;QACF;QACAX,cAAc,CAACW,YAAY,CAAC,GAAGF,sBAAsB;MACvD,CAAC,MAAM;QACLP,cAAc,GAAGO,sBAAsB;MACzC;IACF;EACF;EAEA,OAAO;IAAET,cAAc;IAAEE;EAAe,CAAC;AAC3C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Compilation } from "webpack";
|
|
2
|
+
export declare function setFilesFromDevelopHtmlCompilation(developHtmlCompilation: Compilation): void;
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a file is inside either `develop` or `develop-html` compilation. Used to determine if
|
|
5
|
+
* we should generate codeframe for this file for error overlay.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isFileInsideCompilations(absolutePath: string, developBrowserCompilation: Compilation): boolean;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.isFileInsideCompilations = isFileInsideCompilations;
|
|
5
|
+
exports.setFilesFromDevelopHtmlCompilation = setFilesFromDevelopHtmlCompilation;
|
|
6
|
+
var _webpack = require("webpack");
|
|
7
|
+
const filesInsideDevelopHtmlCompilation = new Set();
|
|
8
|
+
function removeQueryParams(path) {
|
|
9
|
+
return path.split(`?`)[0];
|
|
10
|
+
}
|
|
11
|
+
function setFilesFromDevelopHtmlCompilation(developHtmlCompilation) {
|
|
12
|
+
filesInsideDevelopHtmlCompilation.clear();
|
|
13
|
+
for (const module of developHtmlCompilation.modules) {
|
|
14
|
+
if (module instanceof _webpack.NormalModule && module.resource) {
|
|
15
|
+
filesInsideDevelopHtmlCompilation.add(removeQueryParams(module.resource));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Checks if a file is inside either `develop` or `develop-html` compilation. Used to determine if
|
|
22
|
+
* we should generate codeframe for this file for error overlay.
|
|
23
|
+
*/
|
|
24
|
+
function isFileInsideCompilations(absolutePath, developBrowserCompilation) {
|
|
25
|
+
if (filesInsideDevelopHtmlCompilation.has(absolutePath)) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
for (const module of developBrowserCompilation.modules) {
|
|
29
|
+
if (module instanceof _webpack.NormalModule && module.resource) {
|
|
30
|
+
if (absolutePath === removeQueryParams(module.resource)) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=is-file-inside-compilations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-file-inside-compilations.js","names":["filesInsideDevelopHtmlCompilation","Set","removeQueryParams","path","split","setFilesFromDevelopHtmlCompilation","developHtmlCompilation","clear","module","modules","NormalModule","resource","add","isFileInsideCompilations","absolutePath","developBrowserCompilation","has"],"sources":["../../../../src/utils/webpack/utils/is-file-inside-compilations.ts"],"sourcesContent":["import { Compilation, NormalModule } from \"webpack\"\n\nconst filesInsideDevelopHtmlCompilation = new Set<string>()\n\nfunction removeQueryParams(path: string): string {\n return path.split(`?`)[0]\n}\n\nexport function setFilesFromDevelopHtmlCompilation(\n developHtmlCompilation: Compilation\n): void {\n filesInsideDevelopHtmlCompilation.clear()\n\n for (const module of developHtmlCompilation.modules) {\n if (module instanceof NormalModule && module.resource) {\n filesInsideDevelopHtmlCompilation.add(removeQueryParams(module.resource))\n }\n }\n}\n\n/**\n * Checks if a file is inside either `develop` or `develop-html` compilation. Used to determine if\n * we should generate codeframe for this file for error overlay.\n */\nexport function isFileInsideCompilations(\n absolutePath: string,\n developBrowserCompilation: Compilation\n): boolean {\n if (filesInsideDevelopHtmlCompilation.has(absolutePath)) {\n return true\n }\n\n for (const module of developBrowserCompilation.modules) {\n if (module instanceof NormalModule && module.resource) {\n if (absolutePath === removeQueryParams(module.resource)) {\n return true\n }\n }\n }\n\n return false\n}\n"],"mappings":";;;;;AAAA;AAEA,MAAMA,iCAAiC,GAAG,IAAIC,GAAG,EAAU;AAE3D,SAASC,iBAAiB,CAACC,IAAY,EAAU;EAC/C,OAAOA,IAAI,CAACC,KAAK,CAAE,GAAE,CAAC,CAAC,CAAC,CAAC;AAC3B;AAEO,SAASC,kCAAkC,CAChDC,sBAAmC,EAC7B;EACNN,iCAAiC,CAACO,KAAK,EAAE;EAEzC,KAAK,MAAMC,MAAM,IAAIF,sBAAsB,CAACG,OAAO,EAAE;IACnD,IAAID,MAAM,YAAYE,qBAAY,IAAIF,MAAM,CAACG,QAAQ,EAAE;MACrDX,iCAAiC,CAACY,GAAG,CAACV,iBAAiB,CAACM,MAAM,CAACG,QAAQ,CAAC,CAAC;IAC3E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASE,wBAAwB,CACtCC,YAAoB,EACpBC,yBAAsC,EAC7B;EACT,IAAIf,iCAAiC,CAACgB,GAAG,CAACF,YAAY,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,KAAK,MAAMN,MAAM,IAAIO,yBAAyB,CAACN,OAAO,EAAE;IACtD,IAAID,MAAM,YAAYE,qBAAY,IAAIF,MAAM,CAACG,QAAQ,EAAE;MACrD,IAAIG,YAAY,KAAKZ,iBAAiB,CAACM,MAAM,CAACG,QAAQ,CAAC,EAAE;QACvD,OAAO,IAAI;MACb;IACF;EACF;EAEA,OAAO,KAAK;AACd"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gatsby",
|
|
3
3
|
"description": "Blazing fast modern site generator for React",
|
|
4
|
-
"version": "5.9.
|
|
4
|
+
"version": "5.9.1",
|
|
5
5
|
"author": "Kyle Mathews <mathews.kyle@gmail.com>",
|
|
6
6
|
"bin": {
|
|
7
7
|
"gatsby": "./cli.js"
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"gatsby-legacy-polyfills": "^3.9.0",
|
|
97
97
|
"gatsby-link": "^5.9.0",
|
|
98
98
|
"gatsby-page-utils": "^3.9.0",
|
|
99
|
-
"gatsby-parcel-config": "
|
|
99
|
+
"gatsby-parcel-config": "1.9.0",
|
|
100
100
|
"gatsby-plugin-page-creator": "^5.9.0",
|
|
101
101
|
"gatsby-plugin-typescript": "^5.9.0",
|
|
102
102
|
"gatsby-plugin-utils": "^4.9.0",
|
|
@@ -275,5 +275,5 @@
|
|
|
275
275
|
"yargs": {
|
|
276
276
|
"boolean-negation": false
|
|
277
277
|
},
|
|
278
|
-
"gitHead": "
|
|
278
|
+
"gitHead": "774313bf9400c4cc817b5e078388bba55997269a"
|
|
279
279
|
}
|