gatsby 4.0.1 → 4.1.0-next.2

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.
Files changed (61) hide show
  1. package/CHANGELOG.md +0 -21
  2. package/cache-dir/api-ssr-docs.js +2 -0
  3. package/cache-dir/commonjs/api-ssr-docs.js +2 -0
  4. package/dist/commands/build.js +17 -2
  5. package/dist/commands/build.js.map +1 -1
  6. package/dist/commands/develop-process.js +1 -1
  7. package/dist/commands/develop-process.js.map +1 -1
  8. package/dist/commands/serve.js +25 -4
  9. package/dist/commands/serve.js.map +1 -1
  10. package/dist/query/file-parser.js +34 -10
  11. package/dist/query/file-parser.js.map +1 -1
  12. package/dist/query/graphql-runner.d.ts +9 -5
  13. package/dist/query/graphql-runner.js +6 -3
  14. package/dist/query/graphql-runner.js.map +1 -1
  15. package/dist/query/query-compiler.js +15 -5
  16. package/dist/query/query-compiler.js.map +1 -1
  17. package/dist/redux/actions/public.js +1 -0
  18. package/dist/redux/actions/public.js.map +1 -1
  19. package/dist/redux/reducers/components.js +4 -2
  20. package/dist/redux/reducers/components.js.map +1 -1
  21. package/dist/redux/types.d.ts +2 -0
  22. package/dist/redux/types.js.map +1 -1
  23. package/dist/schema/context.d.ts +3 -2
  24. package/dist/schema/context.js +4 -2
  25. package/dist/schema/context.js.map +1 -1
  26. package/dist/schema/graphql-engine/bundle-webpack.js +9 -0
  27. package/dist/schema/graphql-engine/bundle-webpack.js.map +1 -1
  28. package/dist/schema/graphql-engine/entry.d.ts +2 -1
  29. package/dist/schema/graphql-engine/entry.js +55 -9
  30. package/dist/schema/graphql-engine/entry.js.map +1 -1
  31. package/dist/schema/node-model.js +2 -2
  32. package/dist/schema/node-model.js.map +1 -1
  33. package/dist/schema/resolvers.js +21 -2
  34. package/dist/schema/resolvers.js.map +1 -1
  35. package/dist/schema/schema.js +2 -1
  36. package/dist/schema/schema.js.map +1 -1
  37. package/dist/schema/type-definitions.d.ts +5 -0
  38. package/dist/utils/babel-loader-helpers.js +1 -1
  39. package/dist/utils/babel-loader-helpers.js.map +1 -1
  40. package/dist/utils/engines-helpers.js +2 -1
  41. package/dist/utils/engines-helpers.js.map +1 -1
  42. package/dist/utils/get-server-data.d.ts +1 -0
  43. package/dist/utils/get-server-data.js +5 -1
  44. package/dist/utils/get-server-data.js.map +1 -1
  45. package/dist/utils/node-manifest.js +2 -3
  46. package/dist/utils/node-manifest.js.map +1 -1
  47. package/dist/utils/page-mode.d.ts +2 -0
  48. package/dist/utils/page-mode.js +59 -15
  49. package/dist/utils/page-mode.js.map +1 -1
  50. package/dist/utils/page-ssr-module/bundle-webpack.js +9 -0
  51. package/dist/utils/page-ssr-module/bundle-webpack.js.map +1 -1
  52. package/dist/utils/page-ssr-module/entry.d.ts +9 -3
  53. package/dist/utils/page-ssr-module/entry.js +228 -83
  54. package/dist/utils/page-ssr-module/entry.js.map +1 -1
  55. package/dist/utils/tracer/index.d.ts +1 -1
  56. package/dist/utils/tracer/index.js +3 -2
  57. package/dist/utils/tracer/index.js.map +1 -1
  58. package/dist/utils/validate-engines/index.js +7 -1
  59. package/dist/utils/validate-engines/index.js.map +1 -1
  60. package/index.d.ts +9 -7
  61. package/package.json +16 -16
package/CHANGELOG.md CHANGED
@@ -3,27 +3,6 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ### [4.0.1](https://github.com/gatsbyjs/gatsby/commits/HEAD/packages/gatsby) (2021-10-25)
7
-
8
- #### Bug Fixes
9
-
10
- - reset jobs cache when its outdated [#33617](https://github.com/gatsbyjs/gatsby/issues/33617) [#33660](https://github.com/gatsbyjs/gatsby/issues/33660) ([42358ee](https://github.com/gatsbyjs/gatsby/commit/42358ee71bb88fb6c6d0a721a3e0fe54f9a60fd5))
11
- - pageContext should proxy to page.context [#33627](https://github.com/gatsbyjs/gatsby/issues/33627) [#33661](https://github.com/gatsbyjs/gatsby/issues/33661) ([8c99000](https://github.com/gatsbyjs/gatsby/commit/8c99000646b29688b235408b4400d9e54c9d3f5f))
12
-
13
- #### Chores
14
-
15
- - Update README [#33615](https://github.com/gatsbyjs/gatsby/issues/33615) ([0790895](https://github.com/gatsbyjs/gatsby/commit/079089523b9cb4bf4c112deb71b7ef1d175ab1c6))
16
- - Change comment format in actions/public [#33592](https://github.com/gatsbyjs/gatsby/issues/33592) ([06760d7](https://github.com/gatsbyjs/gatsby/commit/06760d7801d1b1da4cfdb4925ff33bd086a75c0c))
17
-
18
- ## [4.0.0](https://github.com/gatsbyjs/gatsby/commits/HEAD/packages/gatsby) (2021-10-21)
19
-
20
- [🧾 Release notes](https://www.gatsbyjs.com/docs/reference/release-notes/v4.0)
21
-
22
- #### Chores
23
-
24
- - Update README [#33615](https://github.com/gatsbyjs/gatsby/issues/33615) ([0790895](https://github.com/gatsbyjs/gatsby/commit/079089523b9cb4bf4c112deb71b7ef1d175ab1c6))
25
- - Change comment format in actions/public [#33592](https://github.com/gatsbyjs/gatsby/issues/33592) ([06760d7](https://github.com/gatsbyjs/gatsby/commit/06760d7801d1b1da4cfdb4925ff33bd086a75c0c))
26
-
27
6
  ### [3.14.2](https://github.com/gatsbyjs/gatsby/commits/gatsby@3.14.2/packages/gatsby) (2021-10-06)
28
7
 
29
8
  #### Features
@@ -29,6 +29,7 @@
29
29
  * @param {function} $0.setBodyProps Takes an object of data which
30
30
  * is merged with other body props and passed to `html.js` as `bodyProps`.
31
31
  * @param {pluginOptions} pluginOptions
32
+ * @returns {void | Promise<void>}
32
33
  * @example
33
34
  * // From gatsby-plugin-glamor
34
35
  * const { renderToString } = require("react-dom/server")
@@ -184,6 +185,7 @@ exports.wrapPageElement = true
184
185
  * It is recommended to use both APIs together.
185
186
  * For example usage, check out [Using redux](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-redux).
186
187
  * @param {object} $0
188
+ * @param {string} $0.pathname The pathname of the page currently being rendered.
187
189
  * @param {ReactNode} $0.element The "Root" React Element built by Gatsby.
188
190
  * @param {pluginOptions} pluginOptions
189
191
  * @returns {ReactNode} Wrapped element
@@ -31,6 +31,7 @@
31
31
  * @param {function} $0.setBodyProps Takes an object of data which
32
32
  * is merged with other body props and passed to `html.js` as `bodyProps`.
33
33
  * @param {pluginOptions} pluginOptions
34
+ * @returns {void | Promise<void>}
34
35
  * @example
35
36
  * // From gatsby-plugin-glamor
36
37
  * const { renderToString } = require("react-dom/server")
@@ -185,6 +186,7 @@ exports.wrapPageElement = true;
185
186
  * It is recommended to use both APIs together.
186
187
  * For example usage, check out [Using redux](https://github.com/gatsbyjs/gatsby/tree/master/examples/using-redux).
187
188
  * @param {object} $0
189
+ * @param {string} $0.pathname The pathname of the page currently being rendered.
188
190
  * @param {ReactNode} $0.element The "Root" React Element built by Gatsby.
189
191
  * @param {pluginOptions} pluginOptions
190
192
  * @returns {ReactNode} Wrapped element
@@ -95,7 +95,7 @@ module.exports = async function build(program) {
95
95
 
96
96
  const publicDir = _path.default.join(program.directory, `public`);
97
97
 
98
- (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
98
+ await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
99
99
 
100
100
  const buildActivity = _reporter.default.phantomActivity(`build`);
101
101
 
@@ -211,6 +211,21 @@ module.exports = async function build(program) {
211
211
  buildActivityTimer.panic((0, _webpackErrorUtils.structureWebpackErrors)(_types.Stage.BuildHTML, err));
212
212
  } finally {
213
213
  buildSSRBundleActivityProgress.end();
214
+ } // exec outer config function for each template
215
+
216
+
217
+ const pageConfigActivity = _reporter.default.activityTimer(`Execute page configs`, {
218
+ parentSpan: buildSpan
219
+ });
220
+
221
+ pageConfigActivity.start();
222
+
223
+ try {
224
+ await (0, _pageMode.preparePageTemplateConfigs)(gatsbyNodeGraphQLFunction);
225
+ } catch (err) {
226
+ _reporter.default.panic(err);
227
+ } finally {
228
+ pageConfigActivity.end();
214
229
  }
215
230
 
216
231
  if ("4" === `4` && (0, _enginesHelpers.shouldGenerateEngines)()) {
@@ -296,7 +311,7 @@ module.exports = async function build(program) {
296
311
  });
297
312
  }
298
313
 
299
- if (process.send) {
314
+ if (process.send && (0, _enginesHelpers.shouldGenerateEngines)()) {
300
315
  process.send({
301
316
  type: `LOG_ACTION`,
302
317
  action: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","workerPool","parentSpan","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","waitMaterializePageMode","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","info","uptime","finish","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy, uuid } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport { materializePageMode, getPageMode } from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\n )\n }\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool, buildSpan)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = (webpackAssets as Array<webpack.StatsAsset>)\n .filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n // Start saving page.mode in the main process (while HTML is generated in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n workerPool,\n buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n try {\n await waitWorkerPoolEnd\n } catch (e) {\n report.warn(`Error when closing WorkerPool: ${e.message}`)\n }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n buildActivity.end()\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
1
+ {"version":3,"sources":["../../src/commands/build.ts"],"names":["module","exports","build","program","global","__GATSBY","buildId","uuid","v4","root","directory","process","env","VERBOSE","verbose","report","setVerbose","profile","warn","name","sitePackageJson","sitePath","lastRun","Date","now","pid","publicDir","path","join","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","workerPool","parentSpan","graphql","store","closeJavascriptBundleCompilation","closeHTMLBundleCompilation","webpackAssets","webpackCompilationHash","webpackSSRCompilationHash","engineBundlingPromises","buildActivityTimer","activityTimer","stats","close","hasWarnings","rawMessages","toJson","all","warnings","assets","cachedAssets","hash","err","panic","Stage","BuildJavascript","end","state","getState","push","rootDir","components","staticQueriesByTemplate","reporter","isVerbose","Promise","buildSSRBundleActivityProgress","BuildHTML","pageConfigActivity","validateEnginesActivity","error","id","context","cacheActivity","graphqlRunner","GraphQLRunner","collectStats","graphqlTracing","queryIds","pageQueryIds","filter","query","waitForWorkerPoolRestart","resolve","GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING","restart","send","type","action","timestamp","toJSON","appDataUtil","exists","dispatch","payload","rewriteActivityTimer","write","html","ssrCompilationHash","isTrackingEnabled","bundleSizes","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","actions","setProgramStatus","db","saveState","keepPageRenderer","waitMaterializePageMode","toRegenerate","toDelete","waitWorkerPoolEnd","SSGCount","DSGCount","SSRCount","page","pages","mode","pagesCount","length","totalPagesCount","postBuildActivityTimer","e","message","_renderPageTree","functions","info","uptime","finish","logPages","writeToFile","createdFilesPath","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAIA;;AAMA;;AACA;;AACA;;AACA;;AAMA;;AAIA;;AACA;;AAIA;;AACA;;AAIA;;AAGA;;AAKA;;;;;;AAEAA,MAAM,CAACC,OAAP,GAAiB,eAAeC,KAAf,CAAqBC,OAArB,EAAyD;AACxE;AACAC,EAAAA,MAAM,CAACC,QAAP,GAAkB;AAChBC,IAAAA,OAAO,EAAEC,sBAAKC,EAAL,EADO;AAEhBC,IAAAA,IAAI,EAAEN,OAAO,CAAEO;AAFC,GAAlB;;AAKA,MAAI,+BAASC,OAAO,CAACC,GAAR,CAAYC,OAArB,CAAJ,EAAmC;AACjCV,IAAAA,OAAO,CAACW,OAAR,GAAkB,IAAlB;AACD;;AACDC,oBAAOC,UAAP,CAAkBb,OAAO,CAACW,OAA1B;;AAEA,MAAIX,OAAO,CAACc,OAAZ,EAAqB;AACnBF,sBAAOG,IAAP,CACG,sKADH;AAGD;;AAED,QAAM,yCAAmB;AACvBC,IAAAA,IAAI,EAAEhB,OAAO,CAACiB,eAAR,CAAwBD,IADP;AAEvBE,IAAAA,QAAQ,EAAElB,OAAO,CAACO,SAFK;AAGvBY,IAAAA,OAAO,EAAEC,IAAI,CAACC,GAAL,EAHc;AAIvBC,IAAAA,GAAG,EAAEd,OAAO,CAACc;AAJU,GAAnB,CAAN;AAOA;;AAEA,QAAMC,SAAS,GAAGC,cAAKC,IAAL,CAAUzB,OAAO,CAACO,SAAlB,EAA8B,QAA9B,CAAlB;;AACA,QAAM,wBACJC,OAAO,CAACC,GAAR,CAAYiB,+BAAZ,IAA+C1B,OAAO,CAAC2B,qBADnD,CAAN;;AAGA,QAAMC,aAAa,GAAGhB,kBAAOiB,eAAP,CAAwB,OAAxB,CAAtB;;AACAD,EAAAA,aAAa,CAACE,KAAd;;AAEAC,2BAAUC,QAAV,CAAoB,aAApB;;AACA,2BAAWC,QAAQ,IAAI;AACrBF,6BAAUC,QAAV,CAAoB,WAApB,EAAgC;AAC9BC,MAAAA,QAAQ,EAAEA;AADoB,KAAhC;AAGD,GAJD;AAMA,QAAMC,SAAS,GAAGN,aAAa,CAACO,IAAhC;AACAD,EAAAA,SAAS,CAACE,MAAV,CAAkB,WAAlB,EAA8BpC,OAAO,CAACO,SAAtC;AAEA,QAAM;AAAE8B,IAAAA,yBAAF;AAA6BC,IAAAA;AAA7B,MAA4C,MAAM,0BAAU;AAChEtC,IAAAA,OADgE;AAEhEuC,IAAAA,UAAU,EAAEL;AAFoD,GAAV,CAAxD;AAKA,QAAM,4BAAe,YAAf,EAA4B;AAChCM,IAAAA,OAAO,EAAEH,yBADuB;AAEhCE,IAAAA,UAAU,EAAEL;AAFoB,GAA5B,CAAN,CAjDwE,CAsDxE;AACA;;AACA,QAAM,gCAAiB;AACrBO,IAAAA,KAAK,EAALA,YADqB;AAErBF,IAAAA,UAAU,EAAEL;AAFS,GAAjB,CAAN;AAKA,MAAIQ,gCAAJ;AACA,MAAIC,0BAAJ;AACA,MAAIC,aAA+C,GAAG,IAAtD;AACA,MAAIC,sBAAqC,GAAG,IAA5C;AACA,MAAIC,yBAAwC,GAAG,IAA/C;AAEA,QAAMC,sBAA2C,GAAG,EAApD;;AACA,QAAMC,kBAAkB,GAAGpC,kBAAOqC,aAAP,CACxB,gDADwB,EAEzB;AAAEV,IAAAA,UAAU,EAAEL;AAAd,GAFyB,CAA3B;;AAIAc,EAAAA,kBAAkB,CAAClB,KAAnB;;AAEA,MAAI;AACF,UAAM;AAAEoB,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAmB,MAAM,4CAC7BnD,OAD6B,EAE7BgD,kBAAkB,CAACb,IAFU,CAA/B;AAIAO,IAAAA,gCAAgC,GAAGS,KAAnC;;AAEA,QAAID,KAAK,CAACE,WAAN,EAAJ,EAAyB;AACvB,YAAMC,WAAW,GAAGH,KAAK,CAACI,MAAN,CAAa;AAAEC,QAAAA,GAAG,EAAE,KAAP;AAAcC,QAAAA,QAAQ,EAAE;AAAxB,OAAb,CAApB;AACA,oDAAsBH,WAAW,CAACG,QAAlC,EAA4C5C,iBAA5C;AACD;;AAEDgC,IAAAA,aAAa,GAAGM,KAAK,CAACI,MAAN,CAAa;AAC3BC,MAAAA,GAAG,EAAE,KADsB;AAE3BE,MAAAA,MAAM,EAAE,IAFmB;AAG3BC,MAAAA,YAAY,EAAE;AAHa,KAAb,EAIbD,MAJH;AAKAZ,IAAAA,sBAAsB,GAAGK,KAAK,CAACS,IAA/B;AACD,GAlBD,CAkBE,OAAOC,GAAP,EAAY;AACZZ,IAAAA,kBAAkB,CAACa,KAAnB,CAAyB,+CAAuBC,aAAMC,eAA7B,EAA8CH,GAA9C,CAAzB;AACD,GApBD,SAoBU;AACRZ,IAAAA,kBAAkB,CAACgB,GAAnB;AACD;;AAED,MAAI,QAA2B,GAA3B,IAAiC,4CAArC,EAA8D;AAC5D,UAAMC,KAAK,GAAGxB,aAAMyB,QAAN,EAAd;;AACA,UAAMlB,kBAAkB,GAAGpC,kBAAOqC,aAAP,CACxB,4BADwB,EAEzB;AAAEV,MAAAA,UAAU,EAAEL;AAAd,KAFyB,CAA3B;;AAIA,QAAI;AACFc,MAAAA,kBAAkB,CAAClB,KAAnB,GADE,CAEF;;AACAiB,MAAAA,sBAAsB,CAACoB,IAAvB,CACE,8CAA0BnE,OAAO,CAACO,SAAlC,EAA6CK,iBAA7C,EAAqDZ,OAAO,CAACW,OAA7D,CADF;AAIAoC,MAAAA,sBAAsB,CAACoB,IAAvB,CACE,yCAAoB;AAClBC,QAAAA,OAAO,EAAEpE,OAAO,CAACO,SADC;AAElB8D,QAAAA,UAAU,EAAEJ,KAAK,CAACI,UAFA;AAGlBC,QAAAA,uBAAuB,EAAEL,KAAK,CAACK,uBAHb;AAIlBC,QAAAA,QAAQ,EAAE3D,iBAJQ;AAKlB4D,QAAAA,SAAS,EAAExE,OAAO,CAACW;AALD,OAApB,CADF;AASA,YAAM8D,OAAO,CAAClB,GAAR,CAAYR,sBAAZ,CAAN;AACD,KAjBD,CAiBE,OAAOa,GAAP,EAAY;AACZW,wBAASV,KAAT,CAAeD,GAAf;AACD,KAnBD,SAmBU;AACRZ,MAAAA,kBAAkB,CAACgB,GAAnB;AACD;AACF;;AAED,QAAMU,8BAA8B,GAAG9D,kBAAOqC,aAAP,CACpC,wBADoC,EAErC;AAAEV,IAAAA,UAAU,EAAEL;AAAd,GAFqC,CAAvC;;AAIAwC,EAAAA,8BAA8B,CAAC5C,KAA/B;;AACA,MAAI;AACF,UAAM;AAAEqB,MAAAA,KAAF;AAASD,MAAAA;AAAT,QAAmB,MAAM,8BAC7BlD,OAD6B,EAE7B8D,aAAMa,SAFuB,EAG7BD,8BAA8B,CAACvC,IAHF,CAA/B;AAMAQ,IAAAA,0BAA0B,GAAGQ,KAA7B;AACAL,IAAAA,yBAAyB,GAAGI,KAAK,CAACS,IAAlC;AAEA,UAAMR,KAAK,EAAX;AACD,GAXD,CAWE,OAAOS,GAAP,EAAY;AACZZ,IAAAA,kBAAkB,CAACa,KAAnB,CAAyB,+CAAuBC,aAAMa,SAA7B,EAAwCf,GAAxC,CAAzB;AACD,GAbD,SAaU;AACRc,IAAAA,8BAA8B,CAACV,GAA/B;AACD,GApJuE,CAsJxE;;;AACA,QAAMY,kBAAkB,GAAGhE,kBAAOqC,aAAP,CAAsB,sBAAtB,EAA6C;AACtEV,IAAAA,UAAU,EAAEL;AAD0D,GAA7C,CAA3B;;AAGA0C,EAAAA,kBAAkB,CAAC9C,KAAnB;;AACA,MAAI;AACF,UAAM,0CAA2BO,yBAA3B,CAAN;AACD,GAFD,CAEE,OAAOuB,GAAP,EAAY;AACZW,sBAASV,KAAT,CAAeD,GAAf;AACD,GAJD,SAIU;AACRgB,IAAAA,kBAAkB,CAACZ,GAAnB;AACD;;AAED,MAAI,QAA2B,GAA3B,IAAiC,4CAArC,EAA8D;AAC5D,UAAMa,uBAAuB,GAAGjE,kBAAOqC,aAAP,CAC7B,8BAD6B,EAE9B;AACEV,MAAAA,UAAU,EAAEL;AADd,KAF8B,CAAhC;;AAMA2C,IAAAA,uBAAuB,CAAC/C,KAAxB;;AACA,QAAI;AACF,YAAM,sCAAgBW,aAAMyB,QAAN,GAAiBlE,OAAjB,CAAyBO,SAAzC,CAAN;AACD,KAFD,CAEE,OAAOuE,KAAP,EAAc;AACdD,MAAAA,uBAAuB,CAAChB,KAAxB,CAA8B;AAAEkB,QAAAA,EAAE,EAAG,OAAP;AAAeC,QAAAA,OAAO,EAAE,EAAxB;AAA4BF,QAAAA;AAA5B,OAA9B;AACD,KAJD,SAIU;AACRD,MAAAA,uBAAuB,CAACb,GAAxB;AACD;AACF;;AAED,QAAMiB,aAAa,GAAGrE,kBAAOqC,aAAP,CAAsB,8BAAtB,EAAqD;AACzEV,IAAAA,UAAU,EAAEL;AAD6D,GAArD,CAAtB;;AAGA,MAAI;AAAA;;AACF+C,IAAAA,aAAa,CAACnD,KAAd;AACA,UAAM2C,OAAO,CAAClB,GAAR,CAAY,0BAChBb,gCADgB,0DAChB,uBADgB,2BAEhBC,0BAFgB,0DAEhB,uBAFgB,CAAZ,CAAN;AAID,GAND,SAMU;AACRsC,IAAAA,aAAa,CAACjB,GAAd;AACD;;AAED,QAAMkB,aAAa,GAAG,IAAIC,4BAAJ,CAAkB1C,YAAlB,EAAyB;AAC7C2C,IAAAA,YAAY,EAAE,IAD+B;AAE7CC,IAAAA,cAAc,EAAErF,OAAO,CAACqF;AAFqB,GAAzB,CAAtB;AAKA,QAAM;AAAEC,IAAAA;AAAF,MAAe,MAAM,qCAAsB;AAAE7C,IAAAA,KAAK,EAALA;AAAF,GAAtB,CAA3B,CAtMwE,CAwMxE;;AACA,MAAI,QAA2B,GAA/B,EAAmC;AACjC6C,IAAAA,QAAQ,CAACC,YAAT,GAAwBD,QAAQ,CAACC,YAAT,CAAsBC,MAAtB,CACtBC,KAAK,IAAI,2BAAYA,KAAZ,MAAwB,KADX,CAAxB;AAGD;;AAED,MAAIC,wBAAwB,GAAGjB,OAAO,CAACkB,OAAR,EAA/B;;AACA,MAAInF,OAAO,CAACC,GAAR,CAAYmF,0CAAhB,EAA4D;AAC1D,UAAM,oCAAyBtD,UAAzB,EAAqCgD,QAArC,EAA+C;AACnD/C,MAAAA,UAAU,EAAEL;AADuC,KAA/C,CAAN,CAD0D,CAI1D;;AACA,UAAM,sDAAN,CAL0D,CAM1D;;AACAwD,IAAAA,wBAAwB,GAAGpD,UAAU,CAACuD,OAAX,EAA3B;AACA,UAAM,4BAAiBvD,UAAjB,EAA6BJ,SAA7B,CAAN;AACD,GATD,MASO;AACL,UAAM,gCAAiB;AACrBoD,MAAAA,QADqB;AAErB/C,MAAAA,UAAU,EAAEL,SAFS;AAGrBO,MAAAA,KAAK,EAALA,YAHqB;AAIrByC,MAAAA;AAJqB,KAAjB,CAAN;AAOA,UAAM,8BAAe;AACnBI,MAAAA,QADmB;AAEnBJ,MAAAA,aAFmB;AAGnB3C,MAAAA,UAAU,EAAEL,SAHO;AAInBO,MAAAA,KAAK,EAALA;AAJmB,KAAf,CAAN;AAMD,GAvOuE,CAyOxE;;;AACA;AACE,UAAMwB,KAAK,GAAGxB,aAAMyB,QAAN,EAAd;;AACA,UAAM,uCAAkB;AACtBI,MAAAA,uBAAuB,EAAEL,KAAK,CAACK,uBADT;AAEtBD,MAAAA,UAAU,EAAEJ,KAAK,CAACI;AAFI,KAAlB,CAAN;AAID;;AAED,MAAI7D,OAAO,CAACsF,IAAR,IAAgB,4CAApB,EAA6C;AAC3CtF,IAAAA,OAAO,CAACsF,IAAR,CAAa;AACXC,MAAAA,IAAI,EAAG,YADI;AAEXC,MAAAA,MAAM,EAAE;AACND,QAAAA,IAAI,EAAG,eADD;AAENE,QAAAA,SAAS,EAAE,IAAI7E,IAAJ,GAAW8E,MAAX;AAFL;AAFG,KAAb;AAOD,GA1PuE,CA4PxE;AACA;;;AACA,sCA9PwE,CAgQxE;;AACA;AACE,UAAMjC,KAAK,GAAGxB,aAAMyB,QAAN,EAAd;;AACA,QACErB,sBAAsB,KAAKoB,KAAK,CAACpB,sBAAjC,IACA,CAACsD,WAAW,CAACC,MAAZ,CAAmB7E,SAAnB,CAFH,EAGE;AACAkB,mBAAM4D,QAAN,CAAe;AACbN,QAAAA,IAAI,EAAG,8BADM;AAEbO,QAAAA,OAAO,EAAEzD;AAFI,OAAf;;AAKA,YAAM0D,oBAAoB,GAAG3F,kBAAOqC,aAAP,CAC1B,8BAD0B,EAE3B;AACEV,QAAAA,UAAU,EAAEL;AADd,OAF2B,CAA7B;;AAMAqE,MAAAA,oBAAoB,CAACzE,KAArB;AAEA,YAAMqE,WAAW,CAACK,KAAZ,CAAkBjF,SAAlB,EAA6BsB,sBAA7B,CAAN;AAEA0D,MAAAA,oBAAoB,CAACvC,GAArB;AACD;;AAED,QAAIC,KAAK,CAACwC,IAAN,CAAWC,kBAAX,KAAkC5D,yBAAtC,EAAiE;AAC/DL,mBAAM4D,QAAN,CAAe;AACbN,QAAAA,IAAI,EAAG,kCADM;AAEbO,QAAAA,OAAO,EAAExD;AAFI,OAAf;AAID;AACF;AAED,QAAM,qBAA2BZ,SAA3B,CAAN;AACA;;AAEA,MAAIH,yBAAU4E,iBAAV,EAAJ,EAAmC;AACjC;AACA,UAAMC,WAAW,GAAIhE,aAAD,CACjB4C,MADiB,CACVqB,KAAK,IAAIA,KAAK,CAAC7F,IAAN,CAAW8F,QAAX,CAAqB,KAArB,CADC,EAEjBC,GAFiB,CAEbF,KAAK,IAAIA,KAAK,CAACG,IAAN,GAAa,IAFT,CAApB;AAGA,UAAMC,aAAa,GAAG,CAAC,GAAGxE,aAAMyB,QAAN,GAAiBgD,aAAjB,CAA+BC,MAA/B,EAAJ,CAAtB;;AAEApF,6BAAUqF,kBAAV,CAA8B,WAA9B,EAA0C;AACxCC,MAAAA,WAAW,EAAEtF,yBAAUuF,cAAV,CAAyBV,WAAzB,CAD2B;AAExCM,MAAAA,aAAa,EAAEnF,yBAAUuF,cAAV,CAAyBL,aAAzB,CAFyB;AAGxCM,MAAAA,UAAU,EAAErC,aAAa,CAACsC,QAAd;AAH4B,KAA1C;AAKD;;AAED/E,eAAM4D,QAAN,CAAeoB,iBAAQC,gBAAR,CAA0B,kCAA1B,CAAf;;AAEA,QAAMC,EAAE,CAACC,SAAH,EAAN;AAEA,QAAM,sDAAN,CAtTwE,CAwTxE;;AACA,QAAMD,EAAE,CAACC,SAAH,EAAN;;AAEA,MAAI,QAA2B,GAA3B,IAAiC,4CAArC,EAA8D;AAC5D;AACA5H,IAAAA,OAAO,CAAC6H,gBAAR,GAA2B,IAA3B;AACD;;AAED,QAAMnC,wBAAN,CAhUwE,CAkUxE;;AACA,QAAMoC,uBAAuB,GAAG,oCAAhC;AAEA,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MACJ,MAAM,sDAAsC;AAC1ChI,IAAAA,OAD0C;AAE1CsC,IAAAA,UAF0C;AAG1CJ,IAAAA;AAH0C,GAAtC,CADR;AAOA,QAAM4F,uBAAN;AACA,QAAMG,iBAAiB,GAAGxD,OAAO,CAAClB,GAAR,CAAYjB,UAAU,CAAC0B,GAAX,EAAZ,CAA1B;AAEA;AACE,QAAIkE,QAAQ,GAAG,CAAf;AACA,QAAIC,QAAQ,GAAG,CAAf;AACA,QAAIC,QAAQ,GAAG,CAAf;;AACA,SAAK,MAAMC,IAAX,IAAmB5F,aAAMyB,QAAN,GAAiBoE,KAAjB,CAAuBnB,MAAvB,EAAnB,EAAoD;AAClD,UAAIkB,IAAI,CAACE,IAAL,KAAe,KAAnB,EAAyB;AACvBH,QAAAA,QAAQ;AACT,OAFD,MAEO,IAAIC,IAAI,CAACE,IAAL,KAAe,KAAnB,EAAyB;AAC9BJ,QAAAA,QAAQ;AACT,OAFM,MAEA;AACLD,QAAAA,QAAQ;AACT;AACF;;AAEDnG,6BAAUqF,kBAAV,CAA8B,WAA9B,EAA0C;AACxCoB,MAAAA,UAAU,EAAET,YAAY,CAACU,MADe;AACP;AACjCC,MAAAA,eAAe,EAAEjG,aAAMyB,QAAN,GAAiBoE,KAAjB,CAAuBtB,IAFA;AAEM;AAC9CoB,MAAAA,QAHwC;AAIxCD,MAAAA,QAJwC;AAKxCD,MAAAA;AALwC,KAA1C;AAOD;;AAED,QAAMS,sBAAsB,GAAG/H,kBAAOqC,aAAP,CAAsB,aAAtB,EAAoC;AACjEV,IAAAA,UAAU,EAAEL;AADqD,GAApC,CAA/B;;AAGAyG,EAAAA,sBAAsB,CAAC7G,KAAvB;AACA,QAAM,4BAAe,aAAf,EAA6B;AACjCU,IAAAA,OAAO,EAAEH,yBADwB;AAEjCE,IAAAA,UAAU,EAAEoG,sBAAsB,CAACxG;AAFF,GAA7B,CAAN;AAIAwG,EAAAA,sBAAsB,CAAC3E,GAAvB,GA9WwE,CAgXxE;AACA;;AACA,QAAM,sDAAN;;AAEA,MAAI;AACF,UAAMiE,iBAAN;AACD,GAFD,CAEE,OAAOW,CAAP,EAAU;AACVhI,sBAAOG,IAAP,CAAa,kCAAiC6H,CAAC,CAACC,OAAQ,EAAxD;AACD,GAxXuE,CA0XxE;;;AACA,QAAMlB,EAAE,CAACC,SAAH,EAAN;;AAEA,QAAM3D,KAAK,GAAGxB,aAAMyB,QAAN,EAAd;;AACAK,oBAASuE,eAAT,CAAyB;AACvBzE,IAAAA,UAAU,EAAEJ,KAAK,CAACI,UADK;AAEvB0E,IAAAA,SAAS,EAAE9E,KAAK,CAAC8E,SAFM;AAGvBT,IAAAA,KAAK,EAAErE,KAAK,CAACqE,KAHU;AAIvBhI,IAAAA,IAAI,EAAE2D,KAAK,CAACjE,OAAN,CAAcO;AAJG,GAAzB;;AAOAK,oBAAOoI,IAAP,CAAa,oBAAmBxI,OAAO,CAACyI,MAAR,EAAiB,MAAjD;;AAEA/G,EAAAA,SAAS,CAACgH,MAAV;AACA,QAAM,yBAAN;AACAtH,EAAAA,aAAa,CAACoC,GAAd;;AAEA,MAAIhE,OAAO,CAACmJ,QAAZ,EAAsB;AACpB,QAAIpB,YAAY,CAACU,MAAjB,EAAyB;AACvB7H,wBAAOoI,IAAP,CACG,iBAAgBjB,YAAY,CAC1BhB,GADc,CACVvF,IAAI,IAAK,iBAAgBA,IAAK,EADpB,EAEdC,IAFc,CAER,IAFQ,CAEH,EAHhB;AAKD;;AAED,QAAIuG,QAAQ,CAACS,MAAb,EAAqB;AACnB7H,wBAAOoI,IAAP,CACG,mBAAkBhB,QAAQ,CACxBjB,GADgB,CACZvF,IAAI,IAAK,iBAAgBA,IAAK,EADlB,EAEhBC,IAFgB,CAEV,IAFU,CAEL,EAHhB;AAKD;AACF;;AAED,MAAIzB,OAAO,CAACoJ,WAAZ,EAAyB;AACvB,UAAMC,gBAAgB,GAAG7H,cAAKmE,OAAL,CACtB,GAAE3F,OAAO,CAACO,SAAU,SADE,EAEtB,cAFsB,CAAzB;;AAIA,UAAM+I,mBAAmB,GAAGvB,YAAY,CAACU,MAAb,GACvB,GAAEV,YAAY,CAACtG,IAAb,CAAmB,IAAnB,CAAwB,IADH,GAEvB,EAFL;;AAIA,UAAM8H,gBAAgB,GAAG/H,cAAKmE,OAAL,CACtB,GAAE3F,OAAO,CAACO,SAAU,SADE,EAEtB,kBAFsB,CAAzB;;AAIA,UAAMiJ,mBAAmB,GAAGxB,QAAQ,CAACS,MAAT,GACvB,GAAET,QAAQ,CAACvG,IAAT,CAAe,IAAf,CAAoB,IADC,GAEvB,EAFL;AAIA,UAAMgI,iBAAGC,SAAH,CAAaL,gBAAb,EAA+BC,mBAA/B,EAAqD,MAArD,CAAN;;AACA1I,sBAAOoI,IAAP,CAAa,6BAAb;;AAEA,UAAMS,iBAAGC,SAAH,CAAaH,gBAAb,EAA+BC,mBAA/B,EAAqD,MAArD,CAAN;;AACA5I,sBAAOoI,IAAP,CAAa,iCAAb;AACD;;AAED;;AAEA,MAAI,MAAM,yCAAV,EAAsC;AACpC;AACD,GAFD,MAEO,IAAI,MAAM,mDAAV,EAAgD;AACrD;AACD;AACF,CA5bD","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\nimport { updateSiteMetadata, isTruthy, uuid } from \"gatsby-core-utils\"\nimport {\n buildRenderer,\n buildHTMLPagesAndDeleteStaleArtifacts,\n IBuildArgs,\n} from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport * as db from \"../redux/save-state\"\nimport { store } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport {\n structureWebpackErrors,\n reportWebpackWarnings,\n} from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { actions } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { Stage } from \"./types\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { showExperimentNotices } from \"../utils/show-experiment-notice\"\nimport {\n mergeWorkerState,\n runQueriesInWorkersQueue,\n} from \"../utils/worker/pool\"\nimport { createGraphqlEngineBundle } from \"../schema/graphql-engine/bundle-webpack\"\nimport {\n createPageSSRBundle,\n writeQueryContext,\n} from \"../utils/page-ssr-module/bundle-webpack\"\nimport { shouldGenerateEngines } from \"../utils/engines-helpers\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport type webpack from \"webpack\"\nimport {\n materializePageMode,\n getPageMode,\n preparePageTemplateConfigs,\n} from \"../utils/page-mode\"\nimport { validateEngines } from \"../utils/validate-engines\"\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n // global gatsby object to use without store\n global.__GATSBY = {\n buildId: uuid.v4(),\n root: program!.directory,\n }\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, {\n exitCode: exitCode as number | undefined,\n })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction, workerPool } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // writes sync and async require files to disk\n // used inside routing \"html\" + \"javascript\"\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n let closeJavascriptBundleCompilation: (() => Promise<void>) | undefined\n let closeHTMLBundleCompilation: (() => Promise<void>) | undefined\n let webpackAssets: Array<webpack.StatsAsset> | null = null\n let webpackCompilationHash: string | null = null\n let webpackSSRCompilationHash: string | null = null\n\n const engineBundlingPromises: Array<Promise<any>> = []\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n\n try {\n const { stats, close } = await buildProductionBundle(\n program,\n buildActivityTimer.span\n )\n closeJavascriptBundleCompilation = close\n\n if (stats.hasWarnings()) {\n const rawMessages = stats.toJson({ all: false, warnings: true })\n reportWebpackWarnings(rawMessages.warnings, report)\n }\n\n webpackAssets = stats.toJson({\n all: false,\n assets: true,\n cachedAssets: true,\n }).assets as Array<webpack.StatsAsset>\n webpackCompilationHash = stats.hash as string\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const state = store.getState()\n const buildActivityTimer = report.activityTimer(\n `Building Rendering Engines`,\n { parentSpan: buildSpan }\n )\n try {\n buildActivityTimer.start()\n // bundle graphql-engine\n engineBundlingPromises.push(\n createGraphqlEngineBundle(program.directory, report, program.verbose)\n )\n\n engineBundlingPromises.push(\n createPageSSRBundle({\n rootDir: program.directory,\n components: state.components,\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n reporter: report,\n isVerbose: program.verbose,\n })\n )\n await Promise.all(engineBundlingPromises)\n } catch (err) {\n reporter.panic(err)\n } finally {\n buildActivityTimer.end()\n }\n }\n\n const buildSSRBundleActivityProgress = report.activityTimer(\n `Building HTML renderer`,\n { parentSpan: buildSpan }\n )\n buildSSRBundleActivityProgress.start()\n try {\n const { close, stats } = await buildRenderer(\n program,\n Stage.BuildHTML,\n buildSSRBundleActivityProgress.span\n )\n\n closeHTMLBundleCompilation = close\n webpackSSRCompilationHash = stats.hash as string\n\n await close()\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildHTML, err))\n } finally {\n buildSSRBundleActivityProgress.end()\n }\n\n // exec outer config function for each template\n const pageConfigActivity = report.activityTimer(`Execute page configs`, {\n parentSpan: buildSpan,\n })\n pageConfigActivity.start()\n try {\n await preparePageTemplateConfigs(gatsbyNodeGraphQLFunction)\n } catch (err) {\n reporter.panic(err)\n } finally {\n pageConfigActivity.end()\n }\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n const validateEnginesActivity = report.activityTimer(\n `Validating Rendering Engines`,\n {\n parentSpan: buildSpan,\n }\n )\n validateEnginesActivity.start()\n try {\n await validateEngines(store.getState().program.directory)\n } catch (error) {\n validateEnginesActivity.panic({ id: `98001`, context: {}, error })\n } finally {\n validateEnginesActivity.end()\n }\n }\n\n const cacheActivity = report.activityTimer(`Caching Webpack compilations`, {\n parentSpan: buildSpan,\n })\n try {\n cacheActivity.start()\n await Promise.all([\n closeJavascriptBundleCompilation?.(),\n closeHTMLBundleCompilation?.(),\n ])\n } finally {\n cacheActivity.end()\n }\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n // Only run queries with mode SSG\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n queryIds.pageQueryIds = queryIds.pageQueryIds.filter(\n query => getPageMode(query) === `SSG`\n )\n }\n\n let waitForWorkerPoolRestart = Promise.resolve()\n if (process.env.GATSBY_EXPERIMENTAL_PARALLEL_QUERY_RUNNING) {\n await runQueriesInWorkersQueue(workerPool, queryIds, {\n parentSpan: buildSpan,\n })\n // Jobs still might be running even though query running finished\n await waitUntilAllJobsComplete()\n // Restart worker pool before merging state to lower memory pressure while merging state\n waitForWorkerPoolRestart = workerPool.restart()\n await mergeWorkerState(workerPool, buildSpan)\n } else {\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n }\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n await writeQueryContext({\n staticQueriesByTemplate: state.staticQueriesByTemplate,\n components: state.components,\n })\n }\n\n if (process.send && shouldGenerateEngines()) {\n process.send({\n type: `LOG_ACTION`,\n action: {\n type: `ENGINES_READY`,\n timestamp: new Date().toJSON(),\n },\n })\n }\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n // create scope so we don't leak state object\n {\n const state = store.getState()\n if (\n webpackCompilationHash !== state.webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash as string)\n\n rewriteActivityTimer.end()\n }\n\n if (state.html.ssrCompilationHash !== webpackSSRCompilationHash) {\n store.dispatch({\n type: `SET_SSR_WEBPACK_COMPILATION_HASH`,\n payload: webpackSSRCompilationHash,\n })\n }\n }\n\n await flushPendingPageDataWrites(buildSpan)\n markWebpackStatusAsDone()\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = (webpackAssets as Array<webpack.StatsAsset>)\n .filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n store.dispatch(actions.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`))\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n if (_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines()) {\n // well, tbf we should just generate this in `.cache` and avoid deleting it :shrug:\n program.keepPageRenderer = true\n }\n\n await waitForWorkerPoolRestart\n\n // Start saving page.mode in the main process (while HTML is generated in workers in parallel)\n const waitMaterializePageMode = materializePageMode()\n\n const { toRegenerate, toDelete } =\n await buildHTMLPagesAndDeleteStaleArtifacts({\n program,\n workerPool,\n buildSpan,\n })\n\n await waitMaterializePageMode\n const waitWorkerPoolEnd = Promise.all(workerPool.end())\n\n {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n pagesCount: toRegenerate.length, // number of html files that will be written\n totalPagesCount: store.getState().pages.size, // total number of pages\n SSRCount,\n DSGCount,\n SSGCount,\n })\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: postBuildActivityTimer.span,\n })\n postBuildActivityTimer.end()\n\n // Wait for any jobs that were started in onPostBuild\n // This could occur due to queries being run which invoke sharp for instance\n await waitUntilAllJobsComplete()\n\n try {\n await waitWorkerPoolEnd\n } catch (e) {\n report.warn(`Error when closing WorkerPool: ${e.message}`)\n }\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n const state = store.getState()\n reporter._renderPageTree({\n components: state.components,\n functions: state.functions,\n pages: state.pages,\n root: state.program.directory,\n })\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n buildActivity.end()\n\n if (program.logPages) {\n if (toRegenerate.length) {\n report.info(\n `Built pages:\\n${toRegenerate\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (toDelete.length) {\n report.info(\n `Deleted pages:\\n${toDelete\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (program.writeToFile) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = toRegenerate.length\n ? `${toRegenerate.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = toDelete.length\n ? `${toDelete.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n showExperimentNotices()\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
@@ -127,7 +127,7 @@ module.exports = async program => {
127
127
 
128
128
  process.exit(0);
129
129
  });
130
- (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
130
+ await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
131
131
  (0, _webpackStatus.markWebpackStatusAsPending)();
132
132
 
133
133
  _reporter.default.pendingActivity({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","SSGCount","DSGCount","SSRCount","page","store","getState","pages","values","mode","telemetry","trackCli","siteMeasurements","totalPagesCount","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","inspector","url","undefined","break","open","port","module","exports","program","global","__GATSBY","env","GATSBY_NODE_GLOBALS","JSON","parse","VERBOSE","verbose","reporter","setVerbose","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","pendingQueryRuns","Set","service","start"],"mappings":"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","sourcesContent":["import { syncStaticDir } from \"../utils/get-static-dir\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport telemetry from \"gatsby-telemetry\"\nimport { isTruthy } from \"gatsby-core-utils\"\nimport express from \"express\"\nimport inspector from \"inspector\"\nimport { initTracer } from \"../utils/tracer\"\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport onExit from \"signal-exit\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { markWebpackStatusAsPending } from \"../utils/webpack-status\"\nimport { store } from \"../redux\"\n\nimport { IProgram, IDebugInfo } from \"./types\"\nimport { interpret } from \"xstate\"\nimport { globalTracer } from \"opentracing\"\nimport { developMachine } from \"../state-machines/develop\"\nimport { logTransitions } from \"../utils/state-machine-logging\"\n\nconst tracer = globalTracer()\n\n// const isInteractive = process.stdout.isTTY\n\n// Watch the static directory and copy files to public as they're added or\n// changed. Wait 10 seconds so copying doesn't interfere with the regular\n// bootstrap.\nsetTimeout(() => {\n syncStaticDir()\n}, 10000)\n\n// Time for another story...\n// When the parent process is killed by SIGKILL, Node doesm't kill spawned child processes\n// Hence, we peiodically send a heart beat to the parent to check if it is still alive\n// This will crash with Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed\n// and kill the orphaned child process as a result\nif (process.send) {\n setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n process.send!({\n type: `HEARTBEAT`,\n })\n }, 1000)\n}\n\nonExit(() => {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.trackCli(`DEVELOP_STOP`, {\n siteMeasurements: {\n totalPagesCount: store.getState().pages.size,\n SSRCount,\n DSGCount,\n SSGCount,\n },\n })\n})\n\nprocess.on(`message`, msg => {\n if (msg.type === `COMMAND` && msg.action.type === `EXIT`) {\n process.exit(msg.action.payload)\n }\n})\n\ninterface IDevelopArgs extends IProgram {\n debugInfo: IDebugInfo | null\n}\n\nconst openDebuggerPort = (debugInfo: IDebugInfo): void => {\n if (inspector.url() !== undefined) {\n return // fixes #26708\n }\n\n if (debugInfo.break) {\n inspector.open(debugInfo.port, undefined, true)\n // eslint-disable-next-line no-debugger\n debugger\n } else {\n inspector.open(debugInfo.port)\n }\n}\n\nmodule.exports = async (program: IDevelopArgs): Promise<void> => {\n // provide global Gatsby object\n global.__GATSBY = process.env.GATSBY_NODE_GLOBALS\n ? JSON.parse(process.env.GATSBY_NODE_GLOBALS)\n : {}\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n reporter.setVerbose(program.verbose)\n\n if (program.debugInfo) {\n openDebuggerPort(program.debugInfo)\n }\n\n // We want to prompt the feedback request when users quit develop\n // assuming they pass the heuristic check to know they are a user\n // we want to request feedback from, and we're not annoying them.\n process.on(`SIGINT`, async (): Promise<void> => {\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n process.exit(0)\n })\n\n initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n markWebpackStatusAsPending()\n reporter.pendingActivity({ id: `webpack-develop` })\n telemetry.trackCli(`DEVELOP_START`)\n telemetry.startBackgroundUpdate()\n\n const port =\n typeof program.port === `string` ? parseInt(program.port, 10) : program.port\n\n try {\n program.port = await detectPortInUseAndPrompt(port)\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n process.exit(0)\n }\n\n throw e\n }\n\n const app = express()\n const parentSpan = tracer.startSpan(`bootstrap`)\n\n const machine = developMachine.withContext({\n program,\n parentSpan,\n app,\n pendingQueryRuns: new Set([`/`]),\n })\n\n const service = interpret(machine)\n\n if (program.verbose) {\n logTransitions(service)\n }\n\n service.start()\n}\n"],"file":"develop-process.js"}
1
+ {"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","SSGCount","DSGCount","SSRCount","page","store","getState","pages","values","mode","telemetry","trackCli","siteMeasurements","totalPagesCount","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","inspector","url","undefined","break","open","port","module","exports","program","global","__GATSBY","env","GATSBY_NODE_GLOBALS","JSON","parse","VERBOSE","verbose","reporter","setVerbose","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","pendingQueryRuns","Set","service","start"],"mappings":"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","sourcesContent":["import { syncStaticDir } from \"../utils/get-static-dir\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport telemetry from \"gatsby-telemetry\"\nimport { isTruthy } from \"gatsby-core-utils\"\nimport express from \"express\"\nimport inspector from \"inspector\"\nimport { initTracer } from \"../utils/tracer\"\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport onExit from \"signal-exit\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { markWebpackStatusAsPending } from \"../utils/webpack-status\"\nimport { store } from \"../redux\"\n\nimport { IProgram, IDebugInfo } from \"./types\"\nimport { interpret } from \"xstate\"\nimport { globalTracer } from \"opentracing\"\nimport { developMachine } from \"../state-machines/develop\"\nimport { logTransitions } from \"../utils/state-machine-logging\"\n\nconst tracer = globalTracer()\n\n// const isInteractive = process.stdout.isTTY\n\n// Watch the static directory and copy files to public as they're added or\n// changed. Wait 10 seconds so copying doesn't interfere with the regular\n// bootstrap.\nsetTimeout(() => {\n syncStaticDir()\n}, 10000)\n\n// Time for another story...\n// When the parent process is killed by SIGKILL, Node doesm't kill spawned child processes\n// Hence, we peiodically send a heart beat to the parent to check if it is still alive\n// This will crash with Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed\n// and kill the orphaned child process as a result\nif (process.send) {\n setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n process.send!({\n type: `HEARTBEAT`,\n })\n }, 1000)\n}\n\nonExit(() => {\n let SSGCount = 0\n let DSGCount = 0\n let SSRCount = 0\n for (const page of store.getState().pages.values()) {\n if (page.mode === `SSR`) {\n SSRCount++\n } else if (page.mode === `DSG`) {\n DSGCount++\n } else {\n SSGCount++\n }\n }\n\n telemetry.trackCli(`DEVELOP_STOP`, {\n siteMeasurements: {\n totalPagesCount: store.getState().pages.size,\n SSRCount,\n DSGCount,\n SSGCount,\n },\n })\n})\n\nprocess.on(`message`, msg => {\n if (msg.type === `COMMAND` && msg.action.type === `EXIT`) {\n process.exit(msg.action.payload)\n }\n})\n\ninterface IDevelopArgs extends IProgram {\n debugInfo: IDebugInfo | null\n}\n\nconst openDebuggerPort = (debugInfo: IDebugInfo): void => {\n if (inspector.url() !== undefined) {\n return // fixes #26708\n }\n\n if (debugInfo.break) {\n inspector.open(debugInfo.port, undefined, true)\n // eslint-disable-next-line no-debugger\n debugger\n } else {\n inspector.open(debugInfo.port)\n }\n}\n\nmodule.exports = async (program: IDevelopArgs): Promise<void> => {\n // provide global Gatsby object\n global.__GATSBY = process.env.GATSBY_NODE_GLOBALS\n ? JSON.parse(process.env.GATSBY_NODE_GLOBALS)\n : {}\n\n if (isTruthy(process.env.VERBOSE)) {\n program.verbose = true\n }\n reporter.setVerbose(program.verbose)\n\n if (program.debugInfo) {\n openDebuggerPort(program.debugInfo)\n }\n\n // We want to prompt the feedback request when users quit develop\n // assuming they pass the heuristic check to know they are a user\n // we want to request feedback from, and we're not annoying them.\n process.on(`SIGINT`, async (): Promise<void> => {\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n process.exit(0)\n })\n\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n markWebpackStatusAsPending()\n reporter.pendingActivity({ id: `webpack-develop` })\n telemetry.trackCli(`DEVELOP_START`)\n telemetry.startBackgroundUpdate()\n\n const port =\n typeof program.port === `string` ? parseInt(program.port, 10) : program.port\n\n try {\n program.port = await detectPortInUseAndPrompt(port)\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n process.exit(0)\n }\n\n throw e\n }\n\n const app = express()\n const parentSpan = tracer.startSpan(`bootstrap`)\n\n const machine = developMachine.withContext({\n program,\n parentSpan,\n app,\n pendingQueryRuns: new Set([`/`]),\n })\n\n const service = interpret(machine)\n\n if (program.verbose) {\n logTransitions(service)\n }\n\n service.start()\n}\n"],"file":"develop-process.js"}
@@ -36,6 +36,8 @@ var _prepareUrls = require("../utils/prepare-urls");
36
36
 
37
37
  var _pageData = require("../utils/page-data");
38
38
 
39
+ var _tracer = require("../utils/tracer");
40
+
39
41
  (0, _signalExit.default)(() => {
40
42
  _gatsbyTelemetry.default.trackCli(`SERVE_STOP`);
41
43
  });
@@ -85,6 +87,7 @@ module.exports = async program => {
85
87
 
86
88
  _gatsbyTelemetry.default.startBackgroundUpdate();
87
89
 
90
+ await (0, _tracer.initTracer)(process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile);
88
91
  let {
89
92
  prefixPaths,
90
93
  port,
@@ -223,14 +226,21 @@ module.exports = async program => {
223
226
  const page = graphqlEngine.findPageByPath(potentialPagePath);
224
227
 
225
228
  if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
229
+ const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
230
+
231
+ requestActivity.start();
232
+
226
233
  try {
234
+ const spanContext = requestActivity.span.context();
227
235
  const data = await getData({
228
236
  pathName: req.path,
229
237
  graphqlEngine,
230
- req
238
+ req,
239
+ spanContext
231
240
  });
232
241
  const results = await renderPageData({
233
- data
242
+ data,
243
+ spanContext
234
244
  });
235
245
 
236
246
  if (page.mode === `SSR` && data.serverDataHeaders) {
@@ -244,6 +254,8 @@ module.exports = async program => {
244
254
  _reporter.default.error(`Generating page-data for "${requestedPagePath}" / "${potentialPagePath}" failed.`, e);
245
255
 
246
256
  return res.status(500).contentType(`text/plain`).send(`Internal server error.`);
257
+ } finally {
258
+ requestActivity.end();
247
259
  }
248
260
  }
249
261
 
@@ -255,14 +267,21 @@ module.exports = async program => {
255
267
  const page = graphqlEngine.findPageByPath(potentialPagePath);
256
268
 
257
269
  if (page && (page.mode === `DSG` || page.mode === `SSR`)) {
270
+ const requestActivity = _reporter.default.phantomActivity(`request for "${req.path}"`);
271
+
272
+ requestActivity.start();
273
+
258
274
  try {
275
+ const spanContext = requestActivity.span.context();
259
276
  const data = await getData({
260
277
  pathName: potentialPagePath,
261
278
  graphqlEngine,
262
- req
279
+ req,
280
+ spanContext
263
281
  });
264
282
  const results = await renderHTML({
265
- data
283
+ data,
284
+ spanContext
266
285
  });
267
286
 
268
287
  if (page.mode === `SSR` && data.serverDataHeaders) {
@@ -282,6 +301,8 @@ module.exports = async program => {
282
301
  res.contentType(`text/plain`).send(`Internal server error.`);
283
302
  }
284
303
  });
304
+ } finally {
305
+ requestActivity.end();
285
306
  }
286
307
  }
287
308
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/serve.ts"],"names":["telemetry","trackCli","readMatchPaths","program","filePath","path","join","directory","rawJSON","fs","readFile","error","report","warn","chalk","bold","JSON","parse","matchPathRouter","matchPaths","options","req","res","next","url","accepts","matchPath","find","sendFile","err","module","exports","startBackgroundUpdate","prefixPaths","port","open","host","parseInt","configModule","config","pathPrefix","configPathPrefix","root","app","router","express","Router","use","expressMiddleware","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","any","urlencoded","extended","_","cookies","headers","cookie","text","json","raw","pathFragment","params","functionObj","functionRoute","some","f","matchResult","pathToFunction","absoluteCompiledFilePath","start","Date","now","require","cache","resolve","fn","fnToExecute","default","Promise","console","headersSent","sendStatus","end","log","GraphQLEngine","getData","renderPageData","renderHTML","graphqlEngine","dbPath","get","requestedPagePath","pagePath","potentialPagePath","page","findPageByPath","mode","data","pathName","results","serverDataHeaders","name","value","Object","entries","setHeader","send","status","contentType","header","printInstructions","appName","urls","lanUrlForTerminal","localUrlForTerminal","startListening","listen","ssl","sitePackageJson","info","localUrlForBrowser","catch","message"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport openurl from \"better-opn\"\nimport fs from \"fs-extra\"\nimport compression from \"compression\"\nimport express from \"express\"\nimport chalk from \"chalk\"\nimport { match as reachMatch } from \"@gatsbyjs/reach-router/lib/utils\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport multer from \"multer\"\nimport cookie from \"cookie\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport { IProgram } from \"./types\"\nimport { IPreparedUrls, prepareUrls } from \"../utils/prepare-urls\"\nimport { IGatsbyFunction } from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\n\ninterface IMatchPath {\n path: string\n matchPath: string\n}\n\ninterface IServeProgram extends IProgram {\n prefixPaths: boolean\n}\n\nonExit(() => {\n telemetry.trackCli(`SERVE_STOP`)\n})\n\nconst readMatchPaths = async (\n program: IServeProgram\n): Promise<Array<IMatchPath>> => {\n const filePath = path.join(program.directory, `.cache`, `match-paths.json`)\n let rawJSON = `[]`\n try {\n rawJSON = await fs.readFile(filePath, `utf8`)\n } catch (error) {\n report.warn(error)\n report.warn(\n `Could not read ${chalk.bold(\n `match-paths.json`\n )} from the .cache directory`\n )\n report.warn(\n `Client-side routing will not work correctly. Maybe you need to re-run ${chalk.bold(\n `gatsby build`\n )}?`\n )\n }\n return JSON.parse(rawJSON) as Array<IMatchPath>\n}\n\nconst matchPathRouter =\n (\n matchPaths: Array<IMatchPath>,\n options: {\n root: string\n }\n ) =>\n (\n req: express.Request,\n res: express.Response,\n next: express.NextFunction\n ): void => {\n const { url } = req\n if (req.accepts(`html`)) {\n const matchPath = matchPaths.find(\n ({ matchPath }) => reachMatch(matchPath, url) !== null\n )\n if (matchPath) {\n return res.sendFile(\n path.join(matchPath.path, `index.html`),\n options,\n err => {\n if (err) {\n next()\n }\n }\n )\n }\n }\n return next()\n }\n\nmodule.exports = async (program: IServeProgram): Promise<void> => {\n telemetry.trackCli(`SERVE_START`)\n telemetry.startBackgroundUpdate()\n let { prefixPaths, port, open, host } = program\n port = typeof port === `string` ? parseInt(port, 10) : port\n\n const { configModule } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n const config = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\n // eslint-disable-next-line new-cap\n const router = express.Router()\n\n app.use(telemetry.expressMiddleware(`SERVE`))\n\n router.use(compression())\n router.use(express.static(`public`, { dotfiles: `allow` }))\n\n const compiledFunctionsDir = path.join(\n program.directory,\n `.cache`,\n `functions`\n )\n\n let functions: Array<IGatsbyFunction> = []\n try {\n functions = JSON.parse(\n fs.readFileSync(path.join(compiledFunctionsDir, `manifest.json`), `utf-8`)\n )\n } catch (e) {\n // ignore\n }\n\n if (functions) {\n app.use(\n `/api/*`,\n multer().any(),\n express.urlencoded({ extended: true }),\n (req, _, next) => {\n const cookies = req.headers.cookie\n\n if (!cookies) {\n return next()\n }\n\n req.cookies = cookie.parse(cookies)\n\n return next()\n },\n express.text(),\n express.json(),\n express.raw(),\n async (req, res, next) => {\n const { \"0\": pathFragment } = req.params\n\n // Check first for exact matches.\n let functionObj = functions.find(\n ({ functionRoute }) => functionRoute === pathFragment\n )\n\n if (!functionObj) {\n // Check if there's any matchPaths that match.\n // We loop until we find the first match.\n functions.some(f => {\n if (f.matchPath) {\n const matchResult = reachMatch(f.matchPath, pathFragment)\n if (matchResult) {\n req.params = matchResult.params\n if (req.params[`*`]) {\n // Backwards compatability for v3\n // TODO remove in v5\n req.params[`0`] = req.params[`*`]\n }\n functionObj = f\n\n return true\n }\n }\n\n return false\n })\n }\n\n if (functionObj) {\n const pathToFunction = functionObj.absoluteCompiledFilePath\n const start = Date.now()\n\n try {\n delete require.cache[require.resolve(pathToFunction)]\n const fn = require(pathToFunction)\n\n const fnToExecute = (fn && fn.default) || fn\n\n await Promise.resolve(fnToExecute(req, res))\n } catch (e) {\n console.error(e)\n // Don't send the error if that would cause another error.\n if (!res.headersSent) {\n res.sendStatus(500)\n }\n }\n\n const end = Date.now()\n console.log(\n `Executed function \"/api/${functionObj.functionRoute}\" in ${\n end - start\n }ms`\n )\n\n return\n } else {\n next()\n }\n }\n )\n }\n\n // Handle SSR & DSG Pages\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n try {\n const { GraphQLEngine } = require(path.join(\n program.directory,\n `.cache`,\n `query-engine`\n )) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML } = require(path.join(\n program.directory,\n `.cache`,\n `page-ssr`\n )) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.join(program.directory, `.cache`, `data`, `datastore`),\n })\n\n app.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next) => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n return void next()\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n try {\n const data = await getData({\n pathName: req.path,\n graphqlEngine,\n req,\n })\n const results = await renderPageData({ data })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n return void res.send(results)\n } catch (e) {\n report.error(\n `Generating page-data for \"${requestedPagePath}\" / \"${potentialPagePath}\" failed.`,\n e\n )\n return res\n .status(500)\n .contentType(`text/plain`)\n .send(`Internal server error.`)\n }\n }\n\n return void next()\n }\n )\n\n router.use(async (req, res, next) => {\n if (req.accepts(`html`)) {\n const potentialPagePath = req.path\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n try {\n const data = await getData({\n pathName: potentialPagePath,\n graphqlEngine,\n req,\n })\n const results = await renderHTML({ data })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n return res.send(results)\n } catch (e) {\n report.error(\n `Rendering html for \"${potentialPagePath}\" failed.`,\n e\n )\n return res.status(500).sendFile(`500.html`, { root }, err => {\n if (err) {\n res.contentType(`text/plain`).send(`Internal server error.`)\n }\n })\n }\n }\n }\n return next()\n })\n } catch (error) {\n // TODO: Handle case of engine not being generated\n }\n }\n\n const matchPaths = await readMatchPaths(program)\n router.use(matchPathRouter(matchPaths, { root }))\n\n // TODO: Remove/merge with above same block\n router.use((req, res, next) => {\n if (req.accepts(`html`)) {\n return res.status(404).sendFile(`404.html`, { root })\n }\n return next()\n })\n app.use(function (\n _: express.Request,\n res: express.Response,\n next: express.NextFunction\n ) {\n res.header(`Access-Control-Allow-Origin`, `*`)\n res.header(\n `Access-Control-Allow-Headers`,\n `Origin, X-Requested-With, Content-Type, Accept`\n )\n next()\n })\n app.use(pathPrefix, router)\n\n function printInstructions(appName: string, urls: IPreparedUrls): void {\n console.log()\n console.log(`You can now view ${chalk.bold(appName)} in the browser.`)\n console.log()\n\n if (urls.lanUrlForTerminal) {\n console.log(\n ` ${chalk.bold(`Local:`)} ${urls.localUrlForTerminal}`\n )\n console.log(\n ` ${chalk.bold(`On Your Network:`)} ${urls.lanUrlForTerminal}`\n )\n } else {\n console.log(` ${urls.localUrlForTerminal}`)\n }\n }\n\n const startListening = (): void => {\n app.listen(port, host, () => {\n const urls = prepareUrls(\n program.ssl ? `https` : `http`,\n program.host,\n port\n )\n printInstructions(\n program.sitePackageJson.name || `(Unnamed package)`,\n urls\n )\n if (open) {\n report.info(`Opening browser...`)\n Promise.resolve(openurl(urls.localUrlForBrowser)).catch(() =>\n report.warn(`Browser not opened because no browser was found`)\n )\n }\n })\n }\n\n try {\n port = await detectPortInUseAndPrompt(port)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"file":"serve.js"}
1
+ {"version":3,"sources":["../../src/commands/serve.ts"],"names":["telemetry","trackCli","readMatchPaths","program","filePath","path","join","directory","rawJSON","fs","readFile","error","report","warn","chalk","bold","JSON","parse","matchPathRouter","matchPaths","options","req","res","next","url","accepts","matchPath","find","sendFile","err","module","exports","startBackgroundUpdate","process","env","GATSBY_OPEN_TRACING_CONFIG_FILE","openTracingConfigFile","prefixPaths","port","open","host","parseInt","configModule","config","pathPrefix","configPathPrefix","root","app","router","express","Router","use","expressMiddleware","static","dotfiles","compiledFunctionsDir","functions","readFileSync","e","any","urlencoded","extended","_","cookies","headers","cookie","text","json","raw","pathFragment","params","functionObj","functionRoute","some","f","matchResult","pathToFunction","absoluteCompiledFilePath","start","Date","now","require","cache","resolve","fn","fnToExecute","default","Promise","console","headersSent","sendStatus","end","log","GraphQLEngine","getData","renderPageData","renderHTML","graphqlEngine","dbPath","get","requestedPagePath","pagePath","potentialPagePath","page","findPageByPath","mode","requestActivity","phantomActivity","spanContext","span","context","data","pathName","results","serverDataHeaders","name","value","Object","entries","setHeader","send","status","contentType","header","printInstructions","appName","urls","lanUrlForTerminal","localUrlForTerminal","startListening","listen","ssl","sitePackageJson","info","localUrlForBrowser","catch","message"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport openurl from \"better-opn\"\nimport fs from \"fs-extra\"\nimport compression from \"compression\"\nimport express from \"express\"\nimport chalk from \"chalk\"\nimport { match as reachMatch } from \"@gatsbyjs/reach-router/lib/utils\"\nimport onExit from \"signal-exit\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport multer from \"multer\"\nimport cookie from \"cookie\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport { IProgram } from \"./types\"\nimport { IPreparedUrls, prepareUrls } from \"../utils/prepare-urls\"\nimport { IGatsbyFunction } from \"../redux/types\"\nimport { reverseFixedPagePath } from \"../utils/page-data\"\nimport { initTracer } from \"../utils/tracer\"\n\ninterface IMatchPath {\n path: string\n matchPath: string\n}\n\ninterface IServeProgram extends IProgram {\n prefixPaths: boolean\n}\n\nonExit(() => {\n telemetry.trackCli(`SERVE_STOP`)\n})\n\nconst readMatchPaths = async (\n program: IServeProgram\n): Promise<Array<IMatchPath>> => {\n const filePath = path.join(program.directory, `.cache`, `match-paths.json`)\n let rawJSON = `[]`\n try {\n rawJSON = await fs.readFile(filePath, `utf8`)\n } catch (error) {\n report.warn(error)\n report.warn(\n `Could not read ${chalk.bold(\n `match-paths.json`\n )} from the .cache directory`\n )\n report.warn(\n `Client-side routing will not work correctly. Maybe you need to re-run ${chalk.bold(\n `gatsby build`\n )}?`\n )\n }\n return JSON.parse(rawJSON) as Array<IMatchPath>\n}\n\nconst matchPathRouter =\n (\n matchPaths: Array<IMatchPath>,\n options: {\n root: string\n }\n ) =>\n (\n req: express.Request,\n res: express.Response,\n next: express.NextFunction\n ): void => {\n const { url } = req\n if (req.accepts(`html`)) {\n const matchPath = matchPaths.find(\n ({ matchPath }) => reachMatch(matchPath, url) !== null\n )\n if (matchPath) {\n return res.sendFile(\n path.join(matchPath.path, `index.html`),\n options,\n err => {\n if (err) {\n next()\n }\n }\n )\n }\n }\n return next()\n }\n\nmodule.exports = async (program: IServeProgram): Promise<void> => {\n telemetry.trackCli(`SERVE_START`)\n telemetry.startBackgroundUpdate()\n await initTracer(\n process.env.GATSBY_OPEN_TRACING_CONFIG_FILE || program.openTracingConfigFile\n )\n let { prefixPaths, port, open, host } = program\n port = typeof port === `string` ? parseInt(port, 10) : port\n\n const { configModule } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n const config = preferDefault(configModule)\n\n const { pathPrefix: configPathPrefix } = config || {}\n\n const pathPrefix = prefixPaths && configPathPrefix ? configPathPrefix : `/`\n\n const root = path.join(program.directory, `public`)\n\n const app = express()\n // eslint-disable-next-line new-cap\n const router = express.Router()\n\n app.use(telemetry.expressMiddleware(`SERVE`))\n\n router.use(compression())\n router.use(express.static(`public`, { dotfiles: `allow` }))\n\n const compiledFunctionsDir = path.join(\n program.directory,\n `.cache`,\n `functions`\n )\n\n let functions: Array<IGatsbyFunction> = []\n try {\n functions = JSON.parse(\n fs.readFileSync(path.join(compiledFunctionsDir, `manifest.json`), `utf-8`)\n )\n } catch (e) {\n // ignore\n }\n\n if (functions) {\n app.use(\n `/api/*`,\n multer().any(),\n express.urlencoded({ extended: true }),\n (req, _, next) => {\n const cookies = req.headers.cookie\n\n if (!cookies) {\n return next()\n }\n\n req.cookies = cookie.parse(cookies)\n\n return next()\n },\n express.text(),\n express.json(),\n express.raw(),\n async (req, res, next) => {\n const { \"0\": pathFragment } = req.params\n\n // Check first for exact matches.\n let functionObj = functions.find(\n ({ functionRoute }) => functionRoute === pathFragment\n )\n\n if (!functionObj) {\n // Check if there's any matchPaths that match.\n // We loop until we find the first match.\n functions.some(f => {\n if (f.matchPath) {\n const matchResult = reachMatch(f.matchPath, pathFragment)\n if (matchResult) {\n req.params = matchResult.params\n if (req.params[`*`]) {\n // Backwards compatability for v3\n // TODO remove in v5\n req.params[`0`] = req.params[`*`]\n }\n functionObj = f\n\n return true\n }\n }\n\n return false\n })\n }\n\n if (functionObj) {\n const pathToFunction = functionObj.absoluteCompiledFilePath\n const start = Date.now()\n\n try {\n delete require.cache[require.resolve(pathToFunction)]\n const fn = require(pathToFunction)\n\n const fnToExecute = (fn && fn.default) || fn\n\n await Promise.resolve(fnToExecute(req, res))\n } catch (e) {\n console.error(e)\n // Don't send the error if that would cause another error.\n if (!res.headersSent) {\n res.sendStatus(500)\n }\n }\n\n const end = Date.now()\n console.log(\n `Executed function \"/api/${functionObj.functionRoute}\" in ${\n end - start\n }ms`\n )\n\n return\n } else {\n next()\n }\n }\n )\n }\n\n // Handle SSR & DSG Pages\n if (_CFLAGS_.GATSBY_MAJOR === `4`) {\n try {\n const { GraphQLEngine } = require(path.join(\n program.directory,\n `.cache`,\n `query-engine`\n )) as typeof import(\"../schema/graphql-engine/entry\")\n const { getData, renderPageData, renderHTML } = require(path.join(\n program.directory,\n `.cache`,\n `page-ssr`\n )) as typeof import(\"../utils/page-ssr-module/entry\")\n const graphqlEngine = new GraphQLEngine({\n dbPath: path.join(program.directory, `.cache`, `data`, `datastore`),\n })\n\n app.get(\n `/page-data/:pagePath(*)/page-data.json`,\n async (req, res, next) => {\n const requestedPagePath = req.params.pagePath\n if (!requestedPagePath) {\n return void next()\n }\n\n const potentialPagePath = reverseFixedPagePath(requestedPagePath)\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: req.path,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderPageData({ data, spanContext })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n return void res.send(results)\n } catch (e) {\n report.error(\n `Generating page-data for \"${requestedPagePath}\" / \"${potentialPagePath}\" failed.`,\n e\n )\n return res\n .status(500)\n .contentType(`text/plain`)\n .send(`Internal server error.`)\n } finally {\n requestActivity.end()\n }\n }\n\n return void next()\n }\n )\n\n router.use(async (req, res, next) => {\n if (req.accepts(`html`)) {\n const potentialPagePath = req.path\n const page = graphqlEngine.findPageByPath(potentialPagePath)\n if (page && (page.mode === `DSG` || page.mode === `SSR`)) {\n const requestActivity = report.phantomActivity(\n `request for \"${req.path}\"`\n )\n requestActivity.start()\n\n try {\n const spanContext = requestActivity.span.context()\n const data = await getData({\n pathName: potentialPagePath,\n graphqlEngine,\n req,\n spanContext,\n })\n const results = await renderHTML({ data, spanContext })\n if (page.mode === `SSR` && data.serverDataHeaders) {\n for (const [name, value] of Object.entries(\n data.serverDataHeaders\n )) {\n res.setHeader(name, value)\n }\n }\n\n return res.send(results)\n } catch (e) {\n report.error(\n `Rendering html for \"${potentialPagePath}\" failed.`,\n e\n )\n return res.status(500).sendFile(`500.html`, { root }, err => {\n if (err) {\n res.contentType(`text/plain`).send(`Internal server error.`)\n }\n })\n } finally {\n requestActivity.end()\n }\n }\n }\n return next()\n })\n } catch (error) {\n // TODO: Handle case of engine not being generated\n }\n }\n\n const matchPaths = await readMatchPaths(program)\n router.use(matchPathRouter(matchPaths, { root }))\n\n // TODO: Remove/merge with above same block\n router.use((req, res, next) => {\n if (req.accepts(`html`)) {\n return res.status(404).sendFile(`404.html`, { root })\n }\n return next()\n })\n app.use(function (\n _: express.Request,\n res: express.Response,\n next: express.NextFunction\n ) {\n res.header(`Access-Control-Allow-Origin`, `*`)\n res.header(\n `Access-Control-Allow-Headers`,\n `Origin, X-Requested-With, Content-Type, Accept`\n )\n next()\n })\n app.use(pathPrefix, router)\n\n function printInstructions(appName: string, urls: IPreparedUrls): void {\n console.log()\n console.log(`You can now view ${chalk.bold(appName)} in the browser.`)\n console.log()\n\n if (urls.lanUrlForTerminal) {\n console.log(\n ` ${chalk.bold(`Local:`)} ${urls.localUrlForTerminal}`\n )\n console.log(\n ` ${chalk.bold(`On Your Network:`)} ${urls.lanUrlForTerminal}`\n )\n } else {\n console.log(` ${urls.localUrlForTerminal}`)\n }\n }\n\n const startListening = (): void => {\n app.listen(port, host, () => {\n const urls = prepareUrls(\n program.ssl ? `https` : `http`,\n program.host,\n port\n )\n printInstructions(\n program.sitePackageJson.name || `(Unnamed package)`,\n urls\n )\n if (open) {\n report.info(`Opening browser...`)\n Promise.resolve(openurl(urls.localUrlForBrowser)).catch(() =>\n report.warn(`Browser not opened because no browser was found`)\n )\n }\n })\n }\n\n try {\n port = await detectPortInUseAndPrompt(port)\n startListening()\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n return\n }\n\n throw e\n }\n}\n"],"file":"serve.js"}
@@ -33,7 +33,9 @@ const {
33
33
  getGraphQLTag,
34
34
  StringInterpolationNotAllowedError,
35
35
  EmptyGraphQLTagError,
36
- GraphQLSyntaxError
36
+ GraphQLSyntaxError,
37
+ ExportIsNotAsyncError,
38
+ isWithinConfigExport
37
39
  } = require(`babel-plugin-remove-graphql-queries`);
38
40
 
39
41
  const report = require(`gatsby-cli/lib/reporter`);
@@ -54,7 +56,8 @@ const {
54
56
  const generateQueryName = ({
55
57
  def,
56
58
  hash,
57
- file
59
+ file,
60
+ queryType
58
61
  }) => {
59
62
  if (!def.name || !def.name.value) {
60
63
  const slugified = slugify(file, {
@@ -62,7 +65,7 @@ const generateQueryName = ({
62
65
  lower: false
63
66
  });
64
67
  def.name = {
65
- value: `${_.camelCase(slugified)}${hash}`,
68
+ value: `${_.camelCase(`${queryType}-${slugified}-${hash}`)}`,
66
69
  kind: `Name`
67
70
  };
68
71
  }
@@ -265,7 +268,8 @@ async function findGraphQLTags(file, ast, {
265
268
  generateQueryName({
266
269
  def,
267
270
  hash,
268
- file
271
+ file,
272
+ queryType: `static`
269
273
  });
270
274
  });
271
275
  let templateLoc;
@@ -281,6 +285,7 @@ async function findGraphQLTags(file, ast, {
281
285
  text: text,
282
286
  hash: hash,
283
287
  isStaticQuery: true,
288
+ isConfigQuery: false,
284
289
  isHook,
285
290
  templateLoc
286
291
  };
@@ -395,11 +400,13 @@ async function findGraphQLTags(file, ast, {
395
400
  return;
396
401
  }
397
402
 
403
+ const isConfigQuery = isWithinConfigExport(innerPath);
398
404
  gqlAst.definitions.forEach(def => {
399
405
  generateQueryName({
400
406
  def,
401
407
  hash,
402
- file
408
+ file,
409
+ queryType: isConfigQuery ? `config` : `page`
403
410
  });
404
411
  });
405
412
  let templateLoc;
@@ -415,6 +422,7 @@ async function findGraphQLTags(file, ast, {
415
422
  text: text,
416
423
  hash: hash,
417
424
  isStaticQuery: false,
425
+ isConfigQuery,
418
426
  isHook: false,
419
427
  templateLoc
420
428
  };
@@ -502,14 +510,15 @@ class FileParser {
502
510
  parentSpan: this.parentSpan,
503
511
  addError
504
512
  }),
505
- serverData: findApiExport(ast, `getServerData`) // TODO: config: findApiExport(ast, `config`),
506
-
513
+ serverData: findApiExport(ast, `getServerData`),
514
+ config: findApiExport(ast, `config`)
507
515
  };
508
516
  }
509
517
 
510
518
  const {
511
519
  astDefinitions,
512
- serverData
520
+ serverData,
521
+ config
513
522
  } = cache[hash]; // Note: we should dispatch this action even when getServerData is not found
514
523
  // (maybe it was set before, so now we need to reset renderMode from SSR to the default one)
515
524
 
@@ -517,8 +526,8 @@ class FileParser {
517
526
  type: `SET_COMPONENT_FEATURES`,
518
527
  payload: {
519
528
  componentPath: file,
520
- serverData // TODO: config
521
-
529
+ serverData,
530
+ config
522
531
  }
523
532
  }); // If any AST definitions were extracted, report success.
524
533
  // This can mean there is none or there was a babel error when
@@ -583,6 +592,21 @@ class FileParser {
583
592
  sourceMessage: err.originalError.message
584
593
  }
585
594
  };
595
+ } else if (err instanceof ExportIsNotAsyncError) {
596
+ const location = {
597
+ start: err.exportStart,
598
+ end: err.exportStart
599
+ };
600
+ structuredError = {
601
+ id: `85929`,
602
+ location,
603
+ context: {
604
+ exportName: err.exportName,
605
+ codeFrame: (0, _codeFrame.codeFrameColumns)(text, location, {
606
+ highlightCode: process.env.FORCE_COLOR !== `0`
607
+ })
608
+ }
609
+ };
586
610
  }
587
611
 
588
612
  addError({ ...structuredError,