gatsby 4.5.0 → 4.5.4

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.
@@ -133,10 +133,23 @@ const reloadStorageKey = `gatsby-reload-compilation-hash-match`;
133
133
  (0, _reachRouter.navigate)(__BASE_PATH__ + pagePath + (!pagePath.includes(`?`) ? browserLoc.search : ``) + browserLoc.hash, {
134
134
  replace: true
135
135
  });
136
- }
136
+ } // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512
137
+
138
+
139
+ const getSessionStorage = () => {
140
+ try {
141
+ return sessionStorage;
142
+ } catch {
143
+ return null;
144
+ }
145
+ };
137
146
 
138
147
  _loader.publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {
139
- if (page.page.webpackCompilationHash !== window.___webpackCompilationHash) {
148
+ var _page$page;
149
+
150
+ const sessionStorage = getSessionStorage();
151
+
152
+ if (page !== null && page !== void 0 && (_page$page = page.page) !== null && _page$page !== void 0 && _page$page.webpackCompilationHash && page.page.webpackCompilationHash !== window.___webpackCompilationHash) {
140
153
  // Purge plugin-offline cache
141
154
  if (`serviceWorker` in navigator && navigator.serviceWorker.controller !== null && navigator.serviceWorker.controller.state === `activated`) {
142
155
  navigator.serviceWorker.controller.postMessage({
@@ -162,8 +162,22 @@ apiRunnerAsync(`onClientEntry`).then(() => {
162
162
  )
163
163
  }
164
164
 
165
+ // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512
166
+ const getSessionStorage = () => {
167
+ try {
168
+ return sessionStorage
169
+ } catch {
170
+ return null
171
+ }
172
+ }
173
+
165
174
  publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {
166
- if (page.page.webpackCompilationHash !== window.___webpackCompilationHash) {
175
+ const sessionStorage = getSessionStorage()
176
+
177
+ if (
178
+ page?.page?.webpackCompilationHash &&
179
+ page.page.webpackCompilationHash !== window.___webpackCompilationHash
180
+ ) {
167
181
  // Purge plugin-offline cache
168
182
  if (
169
183
  `serviceWorker` in navigator &&
@@ -72,14 +72,6 @@ const prepareOptions = (babel, options = {}, resolve = require.resolve) => {
72
72
  }));
73
73
  }
74
74
 
75
- if ("4" === `4` && (stage === `build-html` || stage === `develop-html`)) {
76
- requiredPlugins.push(babel.createConfigItem([resolve(`./babel/babel-plugin-env-vars`), {
77
- apis: [`getServerData`]
78
- }], {
79
- type: `plugin`
80
- }));
81
- }
82
-
83
75
  if (stage === `develop`) {
84
76
  requiredPlugins.push(babel.createConfigItem([resolve(`react-refresh/babel`)], {
85
77
  type: `plugin`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/babel-loader-helpers.js"],"names":["path","require","_","loadCachedConfig","pluginBabelConfig","stages","test","plugins","presets","process","env","NODE_ENV","join","cwd","getCustomOptions","stage","options","configItemsMemoCache","Map","prepareOptions","babel","resolve","reactRuntime","reactImportSource","has","get","requiredPlugins","createConfigItem","staticQueryDir","type","push","apis","requiredPresets","fallbackPresets","reduxPlugins","reduxPresets","forEach","plugin","name","preset","toReturn","set","addRequiredPresetOptions","gatsbyPresetResolved","index","findIndex","p","file","resolved","mergeConfigItemOptions","items","itemToMerge","i","merge","exports"],"mappings":";;AAAA,MAAMA,IAAI,GAAGC,OAAO,CAAE,MAAF,CAApB;;AACA,MAAMC,CAAC,GAAGD,OAAO,CAAE,QAAF,CAAjB;;AAEA,MAAME,gBAAgB,GAAG,MAAM;AAC7B,MAAIC,iBAAiB,GAAG;AACtBC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE;AAAEC,QAAAA,OAAO,EAAE,EAAX;AAAeC,QAAAA,OAAO,EAAE;AAAxB;AADA;AADc,GAAxB;;AAKA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAA0B,MAA9B,EAAqC;AACnCP,IAAAA,iBAAiB,GAAGH,OAAO,CAACD,IAAI,CAACY,IAAL,CAC1BH,OAAO,CAACI,GAAR,EAD0B,EAEzB,0BAFyB,CAAD,CAA3B;AAID;;AACD,SAAOT,iBAAP;AACD,CAbD;;AAeA,MAAMU,gBAAgB,GAAGC,KAAK,IAAI;AAChC,QAAMX,iBAAiB,GAAGD,gBAAgB,EAA1C;AACA,SAAOC,iBAAiB,CAACC,MAAlB,CAAyBU,KAAzB,EAAgCC,OAAvC;AACD,CAHD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAoB,GAAG,IAAIC,GAAJ,EAA7B;;AAEA,MAAMC,cAAc,GAAG,CAACC,KAAD,EAAQJ,OAAO,GAAG,EAAlB,EAAsBK,OAAO,GAAGpB,OAAO,CAACoB,OAAxC,KAAoD;AACzE,QAAM;AAAEN,IAAAA,KAAF;AAASO,IAAAA,YAAT;AAAuBC,IAAAA;AAAvB,MAA6CP,OAAnD;;AAEA,MAAIC,oBAAoB,CAACO,GAArB,CAAyBT,KAAzB,CAAJ,EAAqC;AACnC,WAAOE,oBAAoB,CAACQ,GAArB,CAAyBV,KAAzB,CAAP;AACD;;AAED,QAAMX,iBAAiB,GAAGD,gBAAgB,EAA1C,CAPyE,CASzE;;AACA,QAAMuB,eAAe,GAAG,CACtBN,KAAK,CAACO,gBAAN,CACE,CACEN,OAAO,CAAE,qCAAF,CADT,EAEE;AAAEN,IAAAA,KAAF;AAASa,IAAAA,cAAc,EAAG;AAA1B,GAFF,CADF,EAKE;AACEC,IAAAA,IAAI,EAAG;AADT,GALF,CADsB,CAAxB;;AAYA,MACE,QAA2B,GAA3B,KACCd,KAAK,KAAM,SAAX,IAAuBA,KAAK,KAAM,kBADnC,CADF,EAGE;AACAW,IAAAA,eAAe,CAACI,IAAhB,CACEV,KAAK,CAACO,gBAAN,CACE,CACEN,OAAO,CAAE,iCAAF,CADT,EAEE;AACEU,MAAAA,IAAI,EAAE,CAAE,eAAF,EAAmB,QAAnB;AADR,KAFF,CADF,EAOE;AACEF,MAAAA,IAAI,EAAG;AADT,KAPF,CADF;AAaD;;AAED,QAAMG,eAAe,GAAG,EAAxB,CAzCyE,CA2CzE;;AACA,MACE,QAA2B,GAA3B,KACCjB,KAAK,KAAM,YAAX,IAA0BA,KAAK,KAAM,cADtC,CADF,EAGE;AACAW,IAAAA,eAAe,CAACI,IAAhB,CACEV,KAAK,CAACO,gBAAN,CAAuB,CAACN,OAAO,CAAE,kCAAF,CAAR,CAAvB,EAAsE;AACpEQ,MAAAA,IAAI,EAAG;AAD6D,KAAtE,CADF;AAKD;;AAED,MACE,QAA2B,GAA3B,KACCd,KAAK,KAAM,YAAX,IAA0BA,KAAK,KAAM,cADtC,CADF,EAGE;AACAW,IAAAA,eAAe,CAACI,IAAhB,CACEV,KAAK,CAACO,gBAAN,CACE,CACEN,OAAO,CAAE,+BAAF,CADT,EAEE;AACEU,MAAAA,IAAI,EAAE,CAAE,eAAF;AADR,KAFF,CADF,EAOE;AACEF,MAAAA,IAAI,EAAG;AADT,KAPF,CADF;AAaD;;AAED,MAAId,KAAK,KAAM,SAAf,EAAyB;AACvBW,IAAAA,eAAe,CAACI,IAAhB,CACEV,KAAK,CAACO,gBAAN,CAAuB,CAACN,OAAO,CAAE,qBAAF,CAAR,CAAvB,EAAyD;AACvDQ,MAAAA,IAAI,EAAG;AADgD,KAAzD,CADF;AAKD,GAhFwE,CAkFzE;;;AACA,QAAMI,eAAe,GAAG,EAAxB;AAEAA,EAAAA,eAAe,CAACH,IAAhB,CACEV,KAAK,CAACO,gBAAN,CACE,CACEN,OAAO,CAAE,qBAAF,CADT,EAEE;AACEN,IAAAA,KADF;AAEEO,IAAAA,YAFF;AAGEC,IAAAA;AAHF,GAFF,CADF,EASE;AACEM,IAAAA,IAAI,EAAG;AADT,GATF,CADF,EArFyE,CAqGzE;;AACA,QAAMK,YAAY,GAAG,EAArB;AACA,QAAMC,YAAY,GAAG,EAArB;AACA/B,EAAAA,iBAAiB,CAACC,MAAlB,CAAyBU,KAAzB,EAAgCR,OAAhC,CAAwC6B,OAAxC,CAAgDC,MAAM,IAAI;AACxDH,IAAAA,YAAY,CAACJ,IAAb,CACEV,KAAK,CAACO,gBAAN,CAAuB,CAACN,OAAO,CAACgB,MAAM,CAACC,IAAR,CAAR,EAAuBD,MAAM,CAACrB,OAA9B,CAAvB,EAA+D;AAC7DsB,MAAAA,IAAI,EAAED,MAAM,CAACC,IADgD;AAE7DT,MAAAA,IAAI,EAAG;AAFsD,KAA/D,CADF;AAMD,GAPD;AAQAzB,EAAAA,iBAAiB,CAACC,MAAlB,CAAyBU,KAAzB,EAAgCP,OAAhC,CAAwC4B,OAAxC,CAAgDG,MAAM,IAAI;AACxDJ,IAAAA,YAAY,CAACL,IAAb,CACEV,KAAK,CAACO,gBAAN,CAAuB,CAACN,OAAO,CAACkB,MAAM,CAACD,IAAR,CAAR,EAAuBC,MAAM,CAACvB,OAA9B,CAAvB,EAA+D;AAC7DsB,MAAAA,IAAI,EAAEC,MAAM,CAACD,IADgD;AAE7DT,MAAAA,IAAI,EAAG;AAFsD,KAA/D,CADF;AAMD,GAPD;AASA,QAAMW,QAAQ,GAAG,CACfL,YADe,EAEfD,YAFe,EAGfF,eAHe,EAIfN,eAJe,EAKfO,eALe,CAAjB;AAQAhB,EAAAA,oBAAoB,CAACwB,GAArB,CAAyB1B,KAAzB,EAAgCyB,QAAhC;AAEA,SAAOA,QAAP;AACD,CApID;;AAsIA,MAAME,wBAAwB,GAAG,CAC/BtB,KAD+B,EAE/BZ,OAF+B,EAG/BQ,OAAO,GAAG,EAHqB,EAI/BK,OAAO,GAAGpB,OAAO,CAACoB,OAJa,KAK5B;AACH;AACA;AACA,QAAMsB,oBAAoB,GAAGtB,OAAO,CAAE,qBAAF,CAApC;AACA,QAAMuB,KAAK,GAAGpC,OAAO,CAACqC,SAAR,CAAkBC,CAAC,IAAIA,CAAC,CAACC,IAAF,CAAOC,QAAP,KAAoBL,oBAA3C,CAAd;;AAEA,MAAIC,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBpC,IAAAA,OAAO,CAACoC,KAAD,CAAP,GAAiBxB,KAAK,CAACO,gBAAN,CACf,CACEgB,oBADF,EAEE,EAAE,GAAGnC,OAAO,CAACoC,KAAD,CAAP,CAAe5B,OAApB;AAA6BD,MAAAA,KAAK,EAAEC,OAAO,CAACD;AAA5C,KAFF,CADe,EAKf;AAAEc,MAAAA,IAAI,EAAG;AAAT,KALe,CAAjB;AAOD;;AACD,SAAOrB,OAAP;AACD,CArBD;;AAuBA,MAAMyC,sBAAsB,GAAG,CAAC;AAAEC,EAAAA,KAAF;AAASC,EAAAA,WAAT;AAAsBtB,EAAAA,IAAtB;AAA4BT,EAAAA;AAA5B,CAAD,KAAyC;AACtE,QAAMwB,KAAK,GAAG1C,CAAC,CAAC2C,SAAF,CACZK,KADY,EAEZE,CAAC,IAAIA,CAAC,CAACL,IAAF,CAAOC,QAAP,KAAoBG,WAAW,CAACJ,IAAZ,CAAiBC,QAF9B,CAAd,CADsE,CAMtE;;;AACA,MAAIJ,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChBM,IAAAA,KAAK,CAACN,KAAD,CAAL,GAAexB,KAAK,CAACO,gBAAN,CACb,CACEwB,WAAW,CAACJ,IAAZ,CAAiBC,QADnB,EAEE9C,CAAC,CAACmD,KAAF,CAAQ,EAAR,EAAYH,KAAK,CAACN,KAAD,CAAL,CAAa5B,OAAzB,EAAkCmC,WAAW,CAACnC,OAA9C,CAFF,CADa,EAKb;AACEa,MAAAA;AADF,KALa,CAAf;AASD,GAVD,MAUO;AACLqB,IAAAA,KAAK,CAACpB,IAAN,CAAWqB,WAAX;AACD;;AAED,SAAOD,KAAP;AACD,CAtBD;;AAwBAI,OAAO,CAACxC,gBAAR,GAA2BA,gBAA3B,C,CAEA;;AACAwC,OAAO,CAACnC,cAAR,GAAyBA,cAAzB;AACAmC,OAAO,CAACL,sBAAR,GAAiCA,sBAAjC;AACAK,OAAO,CAACZ,wBAAR,GAAmCA,wBAAnC","sourcesContent":["const path = require(`path`)\nconst _ = require(`lodash`)\n\nconst loadCachedConfig = () => {\n let pluginBabelConfig = {\n stages: {\n test: { plugins: [], presets: [] },\n },\n }\n if (process.env.NODE_ENV !== `test`) {\n pluginBabelConfig = require(path.join(\n process.cwd(),\n `./.cache/babelState.json`\n ))\n }\n return pluginBabelConfig\n}\n\nconst getCustomOptions = stage => {\n const pluginBabelConfig = loadCachedConfig()\n return pluginBabelConfig.stages[stage].options\n}\n\n/**\n * https://babeljs.io/docs/en/babel-core#createconfigitem\n * If this function is called multiple times for a given plugin,\n * Babel will call the plugin's function itself multiple times.\n * If you have a clear set of expected plugins and presets to inject,\n * pre-constructing the config items would be recommended.\n */\nconst configItemsMemoCache = new Map()\n\nconst prepareOptions = (babel, options = {}, resolve = require.resolve) => {\n const { stage, reactRuntime, reactImportSource } = options\n\n if (configItemsMemoCache.has(stage)) {\n return configItemsMemoCache.get(stage)\n }\n\n const pluginBabelConfig = loadCachedConfig()\n\n // Required plugins/presets\n const requiredPlugins = [\n babel.createConfigItem(\n [\n resolve(`babel-plugin-remove-graphql-queries`),\n { stage, staticQueryDir: `page-data/sq/d` },\n ],\n {\n type: `plugin`,\n }\n ),\n ]\n\n if (\n _CFLAGS_.GATSBY_MAJOR === `4` &&\n (stage === `develop` || stage === `build-javascript`)\n ) {\n requiredPlugins.push(\n babel.createConfigItem(\n [\n resolve(`./babel/babel-plugin-remove-api`),\n {\n apis: [`getServerData`, `config`],\n },\n ],\n {\n type: `plugin`,\n }\n )\n )\n }\n\n const requiredPresets = []\n\n // Stage specific plugins to add\n if (\n _CFLAGS_.GATSBY_MAJOR !== `4` &&\n (stage === `build-html` || stage === `develop-html`)\n ) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`babel-plugin-dynamic-import-node`)], {\n type: `plugin`,\n })\n )\n }\n\n if (\n _CFLAGS_.GATSBY_MAJOR === `4` &&\n (stage === `build-html` || stage === `develop-html`)\n ) {\n requiredPlugins.push(\n babel.createConfigItem(\n [\n resolve(`./babel/babel-plugin-env-vars`),\n {\n apis: [`getServerData`],\n },\n ],\n {\n type: `plugin`,\n }\n )\n )\n }\n\n if (stage === `develop`) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`react-refresh/babel`)], {\n type: `plugin`,\n })\n )\n }\n\n // Fallback preset\n const fallbackPresets = []\n\n fallbackPresets.push(\n babel.createConfigItem(\n [\n resolve(`babel-preset-gatsby`),\n {\n stage,\n reactRuntime,\n reactImportSource,\n },\n ],\n {\n type: `preset`,\n }\n )\n )\n\n // Go through babel state and create config items for presets/plugins from.\n const reduxPlugins = []\n const reduxPresets = []\n pluginBabelConfig.stages[stage].plugins.forEach(plugin => {\n reduxPlugins.push(\n babel.createConfigItem([resolve(plugin.name), plugin.options], {\n name: plugin.name,\n type: `plugin`,\n })\n )\n })\n pluginBabelConfig.stages[stage].presets.forEach(preset => {\n reduxPresets.push(\n babel.createConfigItem([resolve(preset.name), preset.options], {\n name: preset.name,\n type: `preset`,\n })\n )\n })\n\n const toReturn = [\n reduxPresets,\n reduxPlugins,\n requiredPresets,\n requiredPlugins,\n fallbackPresets,\n ]\n\n configItemsMemoCache.set(stage, toReturn)\n\n return toReturn\n}\n\nconst addRequiredPresetOptions = (\n babel,\n presets,\n options = {},\n resolve = require.resolve\n) => {\n // Always pass `stage` option to babel-preset-gatsby\n // (even if defined in custom babelrc)\n const gatsbyPresetResolved = resolve(`babel-preset-gatsby`)\n const index = presets.findIndex(p => p.file.resolved === gatsbyPresetResolved)\n\n if (index !== -1) {\n presets[index] = babel.createConfigItem(\n [\n gatsbyPresetResolved,\n { ...presets[index].options, stage: options.stage },\n ],\n { type: `preset` }\n )\n }\n return presets\n}\n\nconst mergeConfigItemOptions = ({ items, itemToMerge, type, babel }) => {\n const index = _.findIndex(\n items,\n i => i.file.resolved === itemToMerge.file.resolved\n )\n\n // If this exist, merge the options, otherwise, add it to the array\n if (index !== -1) {\n items[index] = babel.createConfigItem(\n [\n itemToMerge.file.resolved,\n _.merge({}, items[index].options, itemToMerge.options),\n ],\n {\n type,\n }\n )\n } else {\n items.push(itemToMerge)\n }\n\n return items\n}\n\nexports.getCustomOptions = getCustomOptions\n\n// Export helper functions for testing\nexports.prepareOptions = prepareOptions\nexports.mergeConfigItemOptions = mergeConfigItemOptions\nexports.addRequiredPresetOptions = addRequiredPresetOptions\n"],"file":"babel-loader-helpers.js"}
1
+ {"version":3,"sources":["../../src/utils/babel-loader-helpers.js"],"names":["path","require","_","loadCachedConfig","pluginBabelConfig","stages","test","plugins","presets","process","env","NODE_ENV","join","cwd","getCustomOptions","stage","options","configItemsMemoCache","Map","prepareOptions","babel","resolve","reactRuntime","reactImportSource","has","get","requiredPlugins","createConfigItem","staticQueryDir","type","push","apis","requiredPresets","fallbackPresets","reduxPlugins","reduxPresets","forEach","plugin","name","preset","toReturn","set","addRequiredPresetOptions","gatsbyPresetResolved","index","findIndex","p","file","resolved","mergeConfigItemOptions","items","itemToMerge","i","merge","exports"],"mappings":"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","sourcesContent":["const path = require(`path`)\nconst _ = require(`lodash`)\n\nconst loadCachedConfig = () => {\n let pluginBabelConfig = {\n stages: {\n test: { plugins: [], presets: [] },\n },\n }\n if (process.env.NODE_ENV !== `test`) {\n pluginBabelConfig = require(path.join(\n process.cwd(),\n `./.cache/babelState.json`\n ))\n }\n return pluginBabelConfig\n}\n\nconst getCustomOptions = stage => {\n const pluginBabelConfig = loadCachedConfig()\n return pluginBabelConfig.stages[stage].options\n}\n\n/**\n * https://babeljs.io/docs/en/babel-core#createconfigitem\n * If this function is called multiple times for a given plugin,\n * Babel will call the plugin's function itself multiple times.\n * If you have a clear set of expected plugins and presets to inject,\n * pre-constructing the config items would be recommended.\n */\nconst configItemsMemoCache = new Map()\n\nconst prepareOptions = (babel, options = {}, resolve = require.resolve) => {\n const { stage, reactRuntime, reactImportSource } = options\n\n if (configItemsMemoCache.has(stage)) {\n return configItemsMemoCache.get(stage)\n }\n\n const pluginBabelConfig = loadCachedConfig()\n\n // Required plugins/presets\n const requiredPlugins = [\n babel.createConfigItem(\n [\n resolve(`babel-plugin-remove-graphql-queries`),\n { stage, staticQueryDir: `page-data/sq/d` },\n ],\n {\n type: `plugin`,\n }\n ),\n ]\n\n if (\n _CFLAGS_.GATSBY_MAJOR === `4` &&\n (stage === `develop` || stage === `build-javascript`)\n ) {\n requiredPlugins.push(\n babel.createConfigItem(\n [\n resolve(`./babel/babel-plugin-remove-api`),\n {\n apis: [`getServerData`, `config`],\n },\n ],\n {\n type: `plugin`,\n }\n )\n )\n }\n\n const requiredPresets = []\n\n // Stage specific plugins to add\n if (\n _CFLAGS_.GATSBY_MAJOR !== `4` &&\n (stage === `build-html` || stage === `develop-html`)\n ) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`babel-plugin-dynamic-import-node`)], {\n type: `plugin`,\n })\n )\n }\n\n if (stage === `develop`) {\n requiredPlugins.push(\n babel.createConfigItem([resolve(`react-refresh/babel`)], {\n type: `plugin`,\n })\n )\n }\n\n // Fallback preset\n const fallbackPresets = []\n\n fallbackPresets.push(\n babel.createConfigItem(\n [\n resolve(`babel-preset-gatsby`),\n {\n stage,\n reactRuntime,\n reactImportSource,\n },\n ],\n {\n type: `preset`,\n }\n )\n )\n\n // Go through babel state and create config items for presets/plugins from.\n const reduxPlugins = []\n const reduxPresets = []\n pluginBabelConfig.stages[stage].plugins.forEach(plugin => {\n reduxPlugins.push(\n babel.createConfigItem([resolve(plugin.name), plugin.options], {\n name: plugin.name,\n type: `plugin`,\n })\n )\n })\n pluginBabelConfig.stages[stage].presets.forEach(preset => {\n reduxPresets.push(\n babel.createConfigItem([resolve(preset.name), preset.options], {\n name: preset.name,\n type: `preset`,\n })\n )\n })\n\n const toReturn = [\n reduxPresets,\n reduxPlugins,\n requiredPresets,\n requiredPlugins,\n fallbackPresets,\n ]\n\n configItemsMemoCache.set(stage, toReturn)\n\n return toReturn\n}\n\nconst addRequiredPresetOptions = (\n babel,\n presets,\n options = {},\n resolve = require.resolve\n) => {\n // Always pass `stage` option to babel-preset-gatsby\n // (even if defined in custom babelrc)\n const gatsbyPresetResolved = resolve(`babel-preset-gatsby`)\n const index = presets.findIndex(p => p.file.resolved === gatsbyPresetResolved)\n\n if (index !== -1) {\n presets[index] = babel.createConfigItem(\n [\n gatsbyPresetResolved,\n { ...presets[index].options, stage: options.stage },\n ],\n { type: `preset` }\n )\n }\n return presets\n}\n\nconst mergeConfigItemOptions = ({ items, itemToMerge, type, babel }) => {\n const index = _.findIndex(\n items,\n i => i.file.resolved === itemToMerge.file.resolved\n )\n\n // If this exist, merge the options, otherwise, add it to the array\n if (index !== -1) {\n items[index] = babel.createConfigItem(\n [\n itemToMerge.file.resolved,\n _.merge({}, items[index].options, itemToMerge.options),\n ],\n {\n type,\n }\n )\n } else {\n items.push(itemToMerge)\n }\n\n return items\n}\n\nexports.getCustomOptions = getCustomOptions\n\n// Export helper functions for testing\nexports.prepareOptions = prepareOptions\nexports.mergeConfigItemOptions = mergeConfigItemOptions\nexports.addRequiredPresetOptions = addRequiredPresetOptions\n"],"file":"babel-loader-helpers.js"}
@@ -115,12 +115,13 @@ module.exports = async (program, directory, suppliedStage, port, {
115
115
  }
116
116
  }
117
117
 
118
+ const target = stage === `build-html` || stage === `develop-html` ? `node` : `web`;
118
119
  const envObject = Object.keys(parsed).reduce((acc, key) => {
119
120
  acc[key] = JSON.stringify(parsed[key]);
120
121
  return acc;
121
122
  }, {});
122
123
  const gatsbyVarObject = Object.keys(process.env).reduce((acc, key) => {
123
- if (key.match(/^GATSBY_/)) {
124
+ if (target === `node` || key.match(/^GATSBY_/)) {
124
125
  acc[key] = JSON.stringify(process.env[key]);
125
126
  }
126
127
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/webpack.config.js"],"names":["require","crypto","fs","path","dotenv","CoreJSResolver","CacheFolderResolver","store","actions","getPublicPath","debug","report","apiRunnerNode","BabelConfigItemsCacheInvalidatorPlugin","FRAMEWORK_BUNDLES","module","exports","program","directory","suppliedStage","port","parentSpan","fastRefreshPlugin","modulesThatUseGatsby","directoryPath","stage","rules","loaders","plugins","assetPrefix","pathPrefix","getState","config","publicPath","processEnv","defaultNodeEnv","nodeEnv","process","env","NODE_ENV","configEnv","GATSBY_ACTIVE_ENV","envFile","join","cwd","parsed","parse","readFileSync","encoding","err","code","error","envObject","Object","keys","reduce","acc","key","JSON","stringify","gatsbyVarObject","match","PUBLIC_DIR","BUILD_STAGE","CYPRESS_SUPPORT","GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND","GATSBY_SOCKET_IO_DEFAULT_TRANSPORT","mergedEnvVars","assign","getHmrPath","hmrBasePath","hmrSuffix","GATSBY_WEBPACK_PUBLICPATH","pubPath","substr","getOutput","filename","pathinfo","devtoolModuleFilenameTemplate","info","resolve","absoluteResourcePath","replace","crossOriginLoading","ROUTES_DIRECTORY","chunkFilename","library","type","Error","getEntry","commons","polyfill","GATSBY_EXPERIMENTAL_DEV_SSR","app","getPlugins","configPlugins","moment","define","__BASE_PATH__","prefixPaths","__PATH_PREFIX__","__ASSET_PREFIX__","BROWSER_ESM_ONLY","virtualModules","GATSBY_WEBPACK_LOGGING","split","includes","WebpackLoggingPlugin","verbose","filter","Boolean","concat","fastRefresh","ForceCssHMRForEdgeCases","hotModuleReplacement","noEmitOnErrors","eslintGraphqlSchemaReload","StaticQueryMapper","push","extractText","extractStats","isCustomEslint","schema","eslint","eslintRequired","provide","fetch","getDevtool","getMode","getModule","configRules","test","byDependency","esm","fullySpecified","descriptionData","js","yaml","fonts","images","media","miscAssets","use","loader","dependencies","oneOf","cssModules","css","null","getPackageRoot","pkg","dirname","getResolve","extensions","alias","gatsby$","$virtual","target","profile","getResolveLoader","root","userLoaderDirectoryPath","statSync","isDirectory","modules","__dirname","name","context","entry","output","devtool","performance","hints","mode","resolveLoader","major","minor","version","isCssModule","optimization","splitChunks","chunks","cacheGroups","default","defaultVendors","framework","RegExp","priority","enforce","styles","minimize","componentsCount","components","size","lib","identifier","hash","createHash","libIdent","update","digest","substring","minChunks","reuseExistingChunk","Math","max","shared","chunk","maxAsyncRequests","Infinity","maxInitialRequests","minSize","runtimeChunk","minimizer","noUglify","minifyJs","terserOptions","keep_classnames","keep_fnames","minifyCss","shouldMarkPackagesAsExternal","shouldTrackBuiltins","externalsPresets","node","externals","userExternalList","checkItem","item","request","callback","resolver","dependencyType","some","newRequest","builtinModulesToTrack","builtinsExternalsDictionary","builtinModules","builtinModule","unshift","GATSBY_EXPERIMENTAL_DEV_WEBPACK_CACHE","cacheLocation","cacheConfig","buildDependencies","__filename","flattenedPlugins","plugin","nodeAPIs","map","cache","dispatch","replaceWebpackConfig","getConfig","webpack","fastRefreshIncludes","babelLoaderLoc","rule","ruleLoaders","Array","isArray","useEntry","hasBabelLoader","includeRegex","modulePath","queryParamStartIndex","indexOf","re","options","include"],"mappings":"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","sourcesContent":["require(`v8-compile-cache`)\n\nconst crypto = require(`crypto`)\nconst fs = require(`fs-extra`)\nconst path = require(`path`)\nconst dotenv = require(`dotenv`)\nconst { CoreJSResolver } = require(`./webpack/plugins/corejs-resolver`)\nconst {\n CacheFolderResolver,\n} = require(`./webpack/plugins/cache-folder-resolver`)\nconst { store } = require(`../redux`)\nconst { actions } = require(`../redux/actions`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst debug = require(`debug`)(`gatsby:webpack-config`)\nconst report = require(`gatsby-cli/lib/reporter`)\nimport { withBasePath, withTrailingSlash } from \"./path\"\nimport { getGatsbyDependents } from \"./gatsby-dependents\"\nconst apiRunnerNode = require(`./api-runner-node`)\nimport { createWebpackUtils } from \"./webpack-utils\"\nimport { hasLocalEslint } from \"./local-eslint-config-finder\"\nimport { getAbsolutePathForVirtualModule } from \"./gatsby-webpack-virtual-modules\"\nimport { StaticQueryMapper } from \"./webpack/plugins/static-query-mapper\"\nimport { ForceCssHMRForEdgeCases } from \"./webpack/plugins/force-css-hmr-for-edge-cases\"\nimport { WebpackLoggingPlugin } from \"./webpack/plugins/webpack-logging\"\nimport { hasES6ModuleSupport } from \"./browserslist\"\nimport { builtinModules } from \"module\"\nimport { shouldGenerateEngines } from \"./engines-helpers\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nconst { BabelConfigItemsCacheInvalidatorPlugin } = require(`./babel-loader`)\n\nconst FRAMEWORK_BUNDLES = [`react`, `react-dom`, `scheduler`, `prop-types`]\n\n// Four stages or modes:\n// 1) develop: for `gatsby develop` command, hot reload and CSS injection into page\n// 2) develop-html: same as develop without react-hmre in the babel config for html renderer\n// 3) build-javascript: Build JS and CSS chunks for production\n// 4) build-html: build all HTML files\n\nmodule.exports = async (\n program,\n directory,\n suppliedStage,\n port,\n { parentSpan } = {}\n) => {\n let fastRefreshPlugin\n const modulesThatUseGatsby = await getGatsbyDependents()\n const directoryPath = withBasePath(directory)\n\n // We combine develop & develop-html stages for purposes of generating the\n // webpack config.\n const stage = suppliedStage\n const { rules, loaders, plugins } = createWebpackUtils(stage, program)\n\n const { assetPrefix, pathPrefix } = store.getState().config\n\n const publicPath = getPublicPath({ assetPrefix, pathPrefix, ...program })\n\n function processEnv(stage, defaultNodeEnv) {\n debug(`Building env for \"${stage}\"`)\n // node env should be DEVELOPMENT | PRODUCTION as these are commonly used in node land\n // this variable is used inside webpack\n const nodeEnv = process.env.NODE_ENV || `${defaultNodeEnv}`\n // config env is dependent on the env that it's run, this can be anything from staging-production\n // this allows you to set use different .env environments or conditions in gatsby files\n const configEnv = process.env.GATSBY_ACTIVE_ENV || nodeEnv\n const envFile = path.join(process.cwd(), `./.env.${configEnv}`)\n let parsed = {}\n try {\n parsed = dotenv.parse(fs.readFileSync(envFile, { encoding: `utf8` }))\n } catch (err) {\n if (err.code !== `ENOENT`) {\n report.error(\n `There was a problem processing the .env file (${envFile})`,\n err\n )\n }\n }\n\n const envObject = Object.keys(parsed).reduce((acc, key) => {\n acc[key] = JSON.stringify(parsed[key])\n return acc\n }, {})\n\n const gatsbyVarObject = Object.keys(process.env).reduce((acc, key) => {\n if (key.match(/^GATSBY_/)) {\n acc[key] = JSON.stringify(process.env[key])\n }\n return acc\n }, {})\n\n // Don't allow overwriting of NODE_ENV, PUBLIC_DIR as to not break gatsby things\n envObject.NODE_ENV = JSON.stringify(nodeEnv)\n envObject.PUBLIC_DIR = JSON.stringify(`${process.cwd()}/public`)\n envObject.BUILD_STAGE = JSON.stringify(stage)\n envObject.CYPRESS_SUPPORT = JSON.stringify(process.env.CYPRESS_SUPPORT)\n envObject.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND = JSON.stringify(\n !!process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND\n )\n\n if (stage === `develop`) {\n envObject.GATSBY_SOCKET_IO_DEFAULT_TRANSPORT = JSON.stringify(\n process.env.GATSBY_SOCKET_IO_DEFAULT_TRANSPORT || `websocket`\n )\n }\n\n const mergedEnvVars = Object.assign(envObject, gatsbyVarObject)\n\n return Object.keys(mergedEnvVars).reduce(\n (acc, key) => {\n acc[`process.env.${key}`] = mergedEnvVars[key]\n return acc\n },\n {\n \"process.env\": `({})`,\n }\n )\n }\n\n function getHmrPath() {\n // ref: https://github.com/gatsbyjs/gatsby/issues/8348\n let hmrBasePath = `/`\n const hmrSuffix = `__webpack_hmr&reload=true&overlay=false`\n\n if (process.env.GATSBY_WEBPACK_PUBLICPATH) {\n const pubPath = process.env.GATSBY_WEBPACK_PUBLICPATH\n if (pubPath.substr(-1) === `/`) {\n hmrBasePath = pubPath\n } else {\n hmrBasePath = withTrailingSlash(pubPath)\n }\n }\n\n return hmrBasePath + hmrSuffix\n }\n\n debug(`Loading webpack config for stage \"${stage}\"`)\n function getOutput() {\n switch (stage) {\n case `develop`:\n return {\n path: directory,\n filename: `[name].js`,\n // Add /* filename */ comments to generated require()s in the output.\n pathinfo: true,\n // Point sourcemap entries to original disk location (format as URL on Windows)\n publicPath: process.env.GATSBY_WEBPACK_PUBLICPATH || `/`,\n devtoolModuleFilenameTemplate: info =>\n path.resolve(info.absoluteResourcePath).replace(/\\\\/g, `/`),\n // Avoid React cross-origin errors\n // See https://reactjs.org/docs/cross-origin-errors.html\n crossOriginLoading: `anonymous`,\n }\n case `build-html`:\n case `develop-html`:\n // Generate the file needed to SSR pages.\n // Deleted by build-html.js, since it's not needed for production.\n return {\n path: directoryPath(ROUTES_DIRECTORY),\n filename: `[name].js`,\n chunkFilename: `[name].js`,\n library: {\n type: `commonjs`,\n },\n publicPath: withTrailingSlash(publicPath),\n }\n case `build-javascript`:\n return {\n filename: `[name]-[contenthash].js`,\n chunkFilename: `[name]-[contenthash].js`,\n path: directoryPath(`public`),\n publicPath: withTrailingSlash(publicPath),\n }\n default:\n throw new Error(`The state requested ${stage} doesn't exist.`)\n }\n }\n\n function getEntry() {\n switch (stage) {\n case `develop`:\n return hasES6ModuleSupport(directory)\n ? {\n commons: [directoryPath(`.cache/app`)],\n }\n : {\n polyfill: directoryPath(`.cache/polyfill-entry`),\n commons: [directoryPath(`.cache/app`)],\n }\n case `develop-html`:\n return {\n \"render-page\": process.env.GATSBY_EXPERIMENTAL_DEV_SSR\n ? directoryPath(`.cache/ssr-develop-static-entry`)\n : directoryPath(`.cache/develop-static-entry`),\n }\n case `build-html`: {\n return {\n \"render-page\": directoryPath(`.cache/static-entry`),\n }\n }\n case `build-javascript`:\n return hasES6ModuleSupport(directory)\n ? {\n app: directoryPath(`.cache/production-app`),\n }\n : {\n polyfill: directoryPath(`.cache/polyfill-entry`),\n app: directoryPath(`.cache/production-app`),\n }\n default:\n throw new Error(`The state requested ${stage} doesn't exist.`)\n }\n }\n\n function getPlugins() {\n let configPlugins = [\n plugins.moment(),\n\n // Add a few global variables. Set NODE_ENV to production (enables\n // optimizations for React) and what the link prefix is (__PATH_PREFIX__).\n plugins.define({\n ...processEnv(stage, `development`),\n __BASE_PATH__: JSON.stringify(program.prefixPaths ? pathPrefix : ``),\n __PATH_PREFIX__: JSON.stringify(program.prefixPaths ? publicPath : ``),\n __ASSET_PREFIX__: JSON.stringify(\n program.prefixPaths ? assetPrefix : ``\n ),\n // TODO Improve asset passing to pages\n BROWSER_ESM_ONLY: JSON.stringify(hasES6ModuleSupport(directory)),\n }),\n\n plugins.virtualModules(),\n new BabelConfigItemsCacheInvalidatorPlugin(),\n process.env.GATSBY_WEBPACK_LOGGING?.split(`,`)?.includes(stage) &&\n new WebpackLoggingPlugin(program.directory, report, program.verbose),\n ].filter(Boolean)\n\n switch (stage) {\n case `develop`: {\n configPlugins = configPlugins\n .concat([\n (fastRefreshPlugin = plugins.fastRefresh({ modulesThatUseGatsby })),\n new ForceCssHMRForEdgeCases(),\n plugins.hotModuleReplacement(),\n plugins.noEmitOnErrors(),\n plugins.eslintGraphqlSchemaReload(),\n new StaticQueryMapper(store),\n ])\n .filter(Boolean)\n\n configPlugins.push(\n plugins.extractText({\n filename: `[name].css`,\n chunkFilename: `[id].css`,\n })\n )\n\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n configPlugins.push(plugins.extractStats())\n }\n\n const isCustomEslint = hasLocalEslint(program.directory)\n // get schema to pass to eslint config and program for directory\n const { schema } = store.getState()\n\n // if no local eslint config, then add gatsby config\n if (!isCustomEslint) {\n configPlugins.push(plugins.eslint(schema))\n }\n\n // Enforce fast-refresh rules even with local eslint config\n if (isCustomEslint) {\n configPlugins.push(plugins.eslintRequired())\n }\n\n break\n }\n case `build-javascript`: {\n configPlugins = configPlugins.concat([\n plugins.extractText({\n filename: `[name].[contenthash].css`,\n chunkFilename: `[name].[contenthash].css`,\n }),\n // Write out stats object mapping named dynamic imports (aka page\n // components) to all their async chunks.\n plugins.extractStats(),\n new StaticQueryMapper(store),\n ])\n break\n }\n case `develop-html`:\n case `build-html`: {\n // Add global fetch in node environments\n configPlugins.push(\n plugins.provide({\n fetch: require.resolve(`node-fetch`),\n \"global.fetch\": require.resolve(`node-fetch`),\n })\n )\n break\n }\n }\n\n return configPlugins\n }\n\n function getDevtool() {\n switch (stage) {\n case `develop`:\n return `eval-cheap-module-source-map`\n // use a normal `source-map` for the html phases since\n // it gives better line and column numbers\n case `develop-html`:\n case `build-html`:\n case `build-javascript`:\n return `source-map`\n default:\n return false\n }\n }\n\n function getMode() {\n switch (stage) {\n case `develop`:\n case `develop-html`:\n return `development`\n case `build-javascript`:\n case `build-html`:\n default:\n return `production`\n }\n }\n\n function getModule() {\n // Common config for every env.\n // prettier-ignore\n let configRules = [\n // Webpack expects extensions when importing ESM modules as that's what the spec describes.\n // Not all libraries have adapted so we don't enforce its behaviour\n // @see https://github.com/webpack/webpack/issues/11467\n {\n test: /\\.mjs$/i,\n resolve: {\n byDependency: {\n esm: {\n fullySpecified: false\n }\n }\n }\n },\n {\n test: /\\.js$/i,\n descriptionData: {\n type: `module`\n },\n resolve: {\n byDependency: {\n esm: {\n fullySpecified: false\n }\n }\n }\n },\n rules.js({\n modulesThatUseGatsby,\n }),\n rules.yaml(),\n rules.fonts(),\n rules.images(),\n rules.media(),\n rules.miscAssets(),\n\n // This is a hack that exports one of @reach/router internals (BaseContext)\n // to export list. We need it to reset basepath and baseuri context after\n // Gatsby main router changes it, to keep v2 behaviour.\n // We will need to most likely remove this for v3.\n {\n test: require.resolve(`@gatsbyjs/reach-router/es/index`),\n type: `javascript/auto`,\n use: [{\n loader: require.resolve(`./reach-router-add-basecontext-export-loader`),\n }],\n }\n ]\n\n // Speedup 🏎️💨 the build! We only include transpilation of node_modules on javascript production builds\n // TODO create gatsby plugin to enable this behaviour on develop (only when people are requesting this feature)\n if (stage === `build-javascript`) {\n configRules.push(\n rules.dependencies({\n modulesThatUseGatsby,\n })\n )\n }\n\n switch (stage) {\n case `develop`: {\n configRules = configRules.concat([\n {\n oneOf: [rules.cssModules(), rules.css()],\n },\n ])\n\n break\n }\n case `build-html`:\n case `develop-html`:\n // We don't deal with CSS at all when building the HTML.\n // The 'null' loader is used to prevent 'module not found' errors.\n // On the other hand CSS modules loaders are necessary.\n\n // prettier-ignore\n configRules = configRules.concat([\n {\n oneOf: [\n rules.cssModules(),\n {\n ...rules.css(),\n use: [loaders.null()],\n },\n ],\n },\n ])\n break\n\n case `build-javascript`:\n // We don't deal with CSS at all when building JavaScript but we still\n // need to process the CSS so offline-plugin knows about the various\n // assets referenced in your CSS.\n //\n // It's also necessary to process CSS Modules so your JS knows the\n // classNames to use.\n configRules = configRules.concat([\n {\n oneOf: [rules.cssModules(), rules.css()],\n },\n ])\n\n break\n }\n\n return { rules: configRules }\n }\n\n function getPackageRoot(pkg) {\n return path.dirname(require.resolve(`${pkg}/package.json`))\n }\n\n function getResolve(stage) {\n const { program } = store.getState()\n const resolve = {\n // Use the program's extension list (generated via the\n // 'resolvableExtensions' API hook).\n extensions: [...program.extensions],\n alias: {\n gatsby$: directoryPath(path.join(`.cache`, `gatsby-browser-entry.js`)),\n // Using directories for module resolution is mandatory because\n // relative path imports are used sometimes\n // See https://stackoverflow.com/a/49455609/6420957 for more details\n \"@babel/runtime\": getPackageRoot(`@babel/runtime`),\n \"@reach/router\": getPackageRoot(`@gatsbyjs/reach-router`),\n \"react-lifecycles-compat\": directoryPath(\n `.cache/react-lifecycles-compat.js`\n ),\n \"@pmmmwh/react-refresh-webpack-plugin\": getPackageRoot(\n `@pmmmwh/react-refresh-webpack-plugin`\n ),\n \"socket.io-client\": getPackageRoot(`socket.io-client`),\n \"webpack-hot-middleware\": getPackageRoot(\n `@gatsbyjs/webpack-hot-middleware`\n ),\n $virtual: getAbsolutePathForVirtualModule(`$virtual`),\n },\n plugins: [\n new CoreJSResolver(),\n new CacheFolderResolver(path.join(program.directory, `.cache`)),\n ],\n }\n\n const target =\n stage === `build-html` || stage === `develop-html` ? `node` : `web`\n if (target === `web`) {\n resolve.alias[`@reach/router`] = path.join(\n getPackageRoot(`@gatsbyjs/reach-router`),\n `es`\n )\n }\n\n if (stage === `build-javascript` && program.profile) {\n resolve.alias[`react-dom$`] = `react-dom/profiling`\n resolve.alias[`scheduler/tracing`] = `scheduler/tracing-profiling`\n }\n\n // SSR can have many react versions as some packages use their own version. React works best with 1 version.\n // By resolving react,react-dom from gatsby we'll get the site versions of react & react-dom because it's specified as a peerdependency.\n //\n // we need to put this below our resolve.alias for profiling as webpack picks the first one that matches\n // @see https://github.com/gatsbyjs/gatsby/issues/31098\n resolve.alias[`react`] = getPackageRoot(`react`)\n resolve.alias[`react-dom`] = getPackageRoot(`react-dom`)\n\n return resolve\n }\n\n function getResolveLoader() {\n const root = [path.resolve(directory, `node_modules`)]\n\n const userLoaderDirectoryPath = path.resolve(directory, `loaders`)\n\n try {\n if (fs.statSync(userLoaderDirectoryPath).isDirectory()) {\n root.push(userLoaderDirectoryPath)\n }\n } catch (err) {\n debug(`Error resolving user loaders directory`, err)\n }\n\n return {\n modules: [...root, path.join(__dirname, `../loaders`), `node_modules`],\n }\n }\n\n const config = {\n name: stage,\n // Context is the base directory for resolving the entry option.\n context: directory,\n entry: getEntry(),\n output: getOutput(),\n\n module: getModule(),\n plugins: getPlugins(),\n\n devtool: getDevtool(),\n // Turn off performance hints as we (for now) don't want to show the normal\n // webpack output anywhere.\n performance: {\n hints: false,\n },\n mode: getMode(),\n\n resolveLoader: getResolveLoader(),\n resolve: getResolve(stage),\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n const [major, minor] = process.version.replace(`v`, ``).split(`.`)\n config.target = `node14.15`\n } else {\n config.target = [`web`, `es5`]\n }\n\n const isCssModule = module => module.type === `css/mini-extract`\n\n if (stage === `develop`) {\n config.optimization = {\n splitChunks: {\n chunks: `all`,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n framework: {\n chunks: `all`,\n name: `framework`,\n // This regex ignores nested copies of framework libraries so they're bundled with their issuer.\n test: new RegExp(\n `(?<!node_modules.*)[\\\\\\\\/]node_modules[\\\\\\\\/](${FRAMEWORK_BUNDLES.join(\n `|`\n )})[\\\\\\\\/]`\n ),\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from becoming a part of the commons chunk)\n enforce: true,\n },\n // Bundle all css & lazy css into one stylesheet to make sure lazy components do not break\n // TODO make an exception for css-modules\n styles: {\n test(module) {\n return isCssModule(module)\n },\n\n name: `commons`,\n priority: 40,\n enforce: true,\n },\n },\n },\n minimize: false,\n }\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n config.optimization = {\n splitChunks: {\n cacheGroups: {\n default: false,\n defaultVendors: false,\n },\n },\n minimize: false,\n }\n }\n\n if (stage === `build-javascript`) {\n const componentsCount = store.getState().components.size\n\n const splitChunks = {\n chunks: `all`,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n framework: {\n chunks: `all`,\n name: `framework`,\n // This regex ignores nested copies of framework libraries so they're bundled with their issuer.\n test: new RegExp(\n `(?<!node_modules.*)[\\\\\\\\/]node_modules[\\\\\\\\/](${FRAMEWORK_BUNDLES.join(\n `|`\n )})[\\\\\\\\/]`\n ),\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from becoming a part of the commons chunk)\n enforce: true,\n },\n // if a module is bigger than 160kb from node_modules we make a separate chunk for it\n lib: {\n test(module) {\n return (\n !isCssModule(module) &&\n module.size() > 160000 &&\n /node_modules[/\\\\]/.test(module.identifier())\n )\n },\n name(module) {\n const hash = crypto.createHash(`sha1`)\n if (!module.libIdent) {\n throw new Error(\n `Encountered unknown module type: ${module.type}. Please open an issue.`\n )\n }\n\n hash.update(module.libIdent({ context: program.directory }))\n\n return hash.digest(`hex`).substring(0, 8)\n },\n priority: 30,\n minChunks: 1,\n reuseExistingChunk: true,\n },\n commons: {\n name: `commons`,\n // if a chunk is used on all components we put it in commons (we need at least 2 components)\n minChunks: Math.max(componentsCount, 2),\n priority: 20,\n },\n // If a chunk is used in at least 2 components we create a separate chunk\n shared: {\n test(module) {\n return !isCssModule(module)\n },\n name(module, chunks) {\n const hash = crypto\n .createHash(`sha1`)\n .update(chunks.reduce((acc, chunk) => acc + chunk.name, ``))\n .digest(`hex`)\n\n return hash\n },\n priority: 10,\n minChunks: 2,\n reuseExistingChunk: true,\n },\n\n // Bundle all css & lazy css into one stylesheet to make sure lazy components do not break\n // TODO make an exception for css-modules\n styles: {\n test(module) {\n return isCssModule(module)\n },\n\n name: `styles`,\n priority: 40,\n enforce: true,\n },\n },\n // We load our pages async through async-requires, maxInitialRequests doesn't have an effect on chunks derived from page components.\n // By default webpack has set maxAsyncRequests to 6, in some cases this isn't enough an actually makes the bundle size blow up.\n // We've set maxAsyncRequests to Infinity to negate this. This could potentionally exceed the 25 initial requests that we set before\n // sadly I do not have a better solution.\n maxAsyncRequests: Infinity,\n maxInitialRequests: 25,\n minSize: 20000,\n }\n\n config.optimization = {\n runtimeChunk: {\n name: `webpack-runtime`,\n },\n splitChunks,\n minimizer: [\n // TODO: maybe this option should be noMinimize?\n !program.noUglify &&\n plugins.minifyJs(\n program.profile\n ? {\n terserOptions: {\n keep_classnames: true,\n keep_fnames: true,\n },\n }\n : {}\n ),\n plugins.minifyCss(),\n ].filter(Boolean),\n }\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n // externalize react, react-dom when develop-html or build-html(when not generating engines)\n const shouldMarkPackagesAsExternal =\n stage === `develop-html` ||\n !(_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines())\n\n // tracking = build-html (when not generating engines)\n const shouldTrackBuiltins =\n stage === `build-html` &&\n !(_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines())\n\n // removes node internals from bundle\n // https://webpack.js.org/configuration/externals/#externalspresets\n config.externalsPresets = {\n // use it only when not tracking builtins (tracking builtins provide their own fallbacks)\n node: !shouldTrackBuiltins,\n }\n config.externals = []\n\n if (shouldMarkPackagesAsExternal) {\n // Packages we want to externalize to save some build time\n // https://github.com/gatsbyjs/gatsby/pull/14208#pullrequestreview-240178728\n // const externalList = [`common-tags`, `lodash`, `semver`, /^lodash\\//]\n\n // Packages we want to externalize because meant to be user-provided\n const userExternalList = [`react`, /^react-dom\\//]\n\n const checkItem = (item, request) => {\n if (typeof item === `string` && item === request) {\n return true\n } else if (item instanceof RegExp && item.test(request)) {\n return true\n }\n\n return false\n }\n\n config.externals.push(function (\n { context, getResolve, request },\n callback\n ) {\n // allows us to resolve webpack aliases from our config\n // helpful for when react is aliased to preact-compat\n // Force commonjs as we're in node land\n const resolver = getResolve({\n dependencyType: `commonjs`,\n })\n\n // User modules that do not need to be part of the bundle\n if (userExternalList.some(item => checkItem(item, request))) {\n // TODO figure out to make preact work with this too\n\n resolver(context, request, (err, newRequest) => {\n if (err) {\n callback(err)\n return\n }\n\n callback(null, newRequest)\n })\n return\n }\n // TODO look into re-enabling, breaks builds right now because of esm\n // User modules that do not need to be part of the bundle\n // if (externalList.some(item => checkItem(item, request))) {\n // resolver(context, request, (err, request) => {\n // if (err) {\n // callback(err)\n // return\n // }\n\n // callback(null, `commonjs2 ${request}`)\n // })\n // return\n // }\n\n callback()\n })\n }\n\n if (shouldTrackBuiltins) {\n if (stage === `build-html`) {\n const builtinModulesToTrack = [\n `fs`,\n `http`,\n `http2`,\n `https`,\n `child_process`,\n ]\n const builtinsExternalsDictionary = builtinModules.reduce(\n (acc, builtinModule) => {\n if (builtinModulesToTrack.includes(builtinModule)) {\n acc[builtinModule] = `commonjs ${path.join(\n program.directory,\n `.cache`,\n `ssr-builtin-trackers`,\n builtinModule\n )}`\n } else {\n acc[builtinModule] = `commonjs ${builtinModule}`\n }\n return acc\n },\n {}\n )\n\n config.externals.unshift(builtinsExternalsDictionary)\n }\n }\n }\n\n if (stage === `develop`) {\n config.externals = {\n \"socket.io-client\": `io`,\n }\n }\n\n if (\n stage === `build-javascript` ||\n stage === `build-html` ||\n (process.env.GATSBY_EXPERIMENTAL_DEV_WEBPACK_CACHE &&\n (stage === `develop` || stage === `develop-html`))\n ) {\n const cacheLocation = path.join(\n program.directory,\n `.cache`,\n `webpack`,\n `stage-` + stage\n )\n\n const cacheConfig = {\n type: `filesystem`,\n name: stage,\n cacheLocation,\n buildDependencies: {\n config: [\n __filename,\n ...store\n .getState()\n .flattenedPlugins.filter(plugin =>\n plugin.nodeAPIs.includes(`onCreateWebpackConfig`)\n )\n .map(plugin => path.join(plugin.resolve, `gatsby-node.js`)),\n ],\n },\n }\n\n config.cache = cacheConfig\n }\n\n store.dispatch(actions.replaceWebpackConfig(config))\n const getConfig = () => store.getState().webpack\n\n await apiRunnerNode(`onCreateWebpackConfig`, {\n getConfig,\n // we will converge to build-html later on but for now this was the fastest way to get SSR to work\n stage,\n rules,\n loaders,\n plugins,\n parentSpan,\n })\n\n if (fastRefreshPlugin) {\n // Fast refresh plugin has `include` option that determines\n // wether HMR code gets injected. We need to make sure all custom loaders\n // (like .ts or .mdx) that use our babel-loader will be taken into account\n // when deciding which modules get fast-refresh HMR addition.\n const fastRefreshIncludes = []\n const babelLoaderLoc = require.resolve(`./babel-loader`)\n for (const rule of getConfig().module.rules) {\n if (!rule.use && !rule.loader) {\n continue\n }\n\n const ruleLoaders = Array.isArray(rule.use)\n ? rule.use.map(useEntry =>\n typeof useEntry === `string` ? useEntry : useEntry.loader\n )\n : [rule.use?.loader ?? rule.loader]\n\n const hasBabelLoader = ruleLoaders.some(\n loader => loader === babelLoaderLoc\n )\n\n if (hasBabelLoader) {\n fastRefreshIncludes.push(rule.test)\n }\n }\n\n // start with default include of fast refresh plugin\n const includeRegex = /\\.([jt]sx?|flow)$/i\n includeRegex.test = modulePath => {\n // drop query param from request (i.e. ?type=component for mdx-loader)\n // so loader rule test work well\n const queryParamStartIndex = modulePath.indexOf(`?`)\n if (queryParamStartIndex !== -1) {\n modulePath = modulePath.substr(0, queryParamStartIndex)\n }\n\n return fastRefreshIncludes.some(re => re.test(modulePath))\n }\n\n fastRefreshPlugin.options.include = includeRegex\n }\n\n return getConfig()\n}\n"],"file":"webpack.config.js"}
1
+ {"version":3,"sources":["../../src/utils/webpack.config.js"],"names":["require","crypto","fs","path","dotenv","CoreJSResolver","CacheFolderResolver","store","actions","getPublicPath","debug","report","apiRunnerNode","BabelConfigItemsCacheInvalidatorPlugin","FRAMEWORK_BUNDLES","module","exports","program","directory","suppliedStage","port","parentSpan","fastRefreshPlugin","modulesThatUseGatsby","directoryPath","stage","rules","loaders","plugins","assetPrefix","pathPrefix","getState","config","publicPath","processEnv","defaultNodeEnv","nodeEnv","process","env","NODE_ENV","configEnv","GATSBY_ACTIVE_ENV","envFile","join","cwd","parsed","parse","readFileSync","encoding","err","code","error","target","envObject","Object","keys","reduce","acc","key","JSON","stringify","gatsbyVarObject","match","PUBLIC_DIR","BUILD_STAGE","CYPRESS_SUPPORT","GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND","GATSBY_SOCKET_IO_DEFAULT_TRANSPORT","mergedEnvVars","assign","getHmrPath","hmrBasePath","hmrSuffix","GATSBY_WEBPACK_PUBLICPATH","pubPath","substr","getOutput","filename","pathinfo","devtoolModuleFilenameTemplate","info","resolve","absoluteResourcePath","replace","crossOriginLoading","ROUTES_DIRECTORY","chunkFilename","library","type","Error","getEntry","commons","polyfill","GATSBY_EXPERIMENTAL_DEV_SSR","app","getPlugins","configPlugins","moment","define","__BASE_PATH__","prefixPaths","__PATH_PREFIX__","__ASSET_PREFIX__","BROWSER_ESM_ONLY","virtualModules","GATSBY_WEBPACK_LOGGING","split","includes","WebpackLoggingPlugin","verbose","filter","Boolean","concat","fastRefresh","ForceCssHMRForEdgeCases","hotModuleReplacement","noEmitOnErrors","eslintGraphqlSchemaReload","StaticQueryMapper","push","extractText","extractStats","isCustomEslint","schema","eslint","eslintRequired","provide","fetch","getDevtool","getMode","getModule","configRules","test","byDependency","esm","fullySpecified","descriptionData","js","yaml","fonts","images","media","miscAssets","use","loader","dependencies","oneOf","cssModules","css","null","getPackageRoot","pkg","dirname","getResolve","extensions","alias","gatsby$","$virtual","profile","getResolveLoader","root","userLoaderDirectoryPath","statSync","isDirectory","modules","__dirname","name","context","entry","output","devtool","performance","hints","mode","resolveLoader","major","minor","version","isCssModule","optimization","splitChunks","chunks","cacheGroups","default","defaultVendors","framework","RegExp","priority","enforce","styles","minimize","componentsCount","components","size","lib","identifier","hash","createHash","libIdent","update","digest","substring","minChunks","reuseExistingChunk","Math","max","shared","chunk","maxAsyncRequests","Infinity","maxInitialRequests","minSize","runtimeChunk","minimizer","noUglify","minifyJs","terserOptions","keep_classnames","keep_fnames","minifyCss","shouldMarkPackagesAsExternal","shouldTrackBuiltins","externalsPresets","node","externals","userExternalList","checkItem","item","request","callback","resolver","dependencyType","some","newRequest","builtinModulesToTrack","builtinsExternalsDictionary","builtinModules","builtinModule","unshift","GATSBY_EXPERIMENTAL_DEV_WEBPACK_CACHE","cacheLocation","cacheConfig","buildDependencies","__filename","flattenedPlugins","plugin","nodeAPIs","map","cache","dispatch","replaceWebpackConfig","getConfig","webpack","fastRefreshIncludes","babelLoaderLoc","rule","ruleLoaders","Array","isArray","useEntry","hasBabelLoader","includeRegex","modulePath","queryParamStartIndex","indexOf","re","options","include"],"mappings":"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","sourcesContent":["require(`v8-compile-cache`)\n\nconst crypto = require(`crypto`)\nconst fs = require(`fs-extra`)\nconst path = require(`path`)\nconst dotenv = require(`dotenv`)\nconst { CoreJSResolver } = require(`./webpack/plugins/corejs-resolver`)\nconst {\n CacheFolderResolver,\n} = require(`./webpack/plugins/cache-folder-resolver`)\nconst { store } = require(`../redux`)\nconst { actions } = require(`../redux/actions`)\nconst { getPublicPath } = require(`./get-public-path`)\nconst debug = require(`debug`)(`gatsby:webpack-config`)\nconst report = require(`gatsby-cli/lib/reporter`)\nimport { withBasePath, withTrailingSlash } from \"./path\"\nimport { getGatsbyDependents } from \"./gatsby-dependents\"\nconst apiRunnerNode = require(`./api-runner-node`)\nimport { createWebpackUtils } from \"./webpack-utils\"\nimport { hasLocalEslint } from \"./local-eslint-config-finder\"\nimport { getAbsolutePathForVirtualModule } from \"./gatsby-webpack-virtual-modules\"\nimport { StaticQueryMapper } from \"./webpack/plugins/static-query-mapper\"\nimport { ForceCssHMRForEdgeCases } from \"./webpack/plugins/force-css-hmr-for-edge-cases\"\nimport { WebpackLoggingPlugin } from \"./webpack/plugins/webpack-logging\"\nimport { hasES6ModuleSupport } from \"./browserslist\"\nimport { builtinModules } from \"module\"\nimport { shouldGenerateEngines } from \"./engines-helpers\"\nimport { ROUTES_DIRECTORY } from \"../constants\"\nconst { BabelConfigItemsCacheInvalidatorPlugin } = require(`./babel-loader`)\n\nconst FRAMEWORK_BUNDLES = [`react`, `react-dom`, `scheduler`, `prop-types`]\n\n// Four stages or modes:\n// 1) develop: for `gatsby develop` command, hot reload and CSS injection into page\n// 2) develop-html: same as develop without react-hmre in the babel config for html renderer\n// 3) build-javascript: Build JS and CSS chunks for production\n// 4) build-html: build all HTML files\n\nmodule.exports = async (\n program,\n directory,\n suppliedStage,\n port,\n { parentSpan } = {}\n) => {\n let fastRefreshPlugin\n const modulesThatUseGatsby = await getGatsbyDependents()\n const directoryPath = withBasePath(directory)\n\n // We combine develop & develop-html stages for purposes of generating the\n // webpack config.\n const stage = suppliedStage\n const { rules, loaders, plugins } = createWebpackUtils(stage, program)\n\n const { assetPrefix, pathPrefix } = store.getState().config\n\n const publicPath = getPublicPath({ assetPrefix, pathPrefix, ...program })\n\n function processEnv(stage, defaultNodeEnv) {\n debug(`Building env for \"${stage}\"`)\n // node env should be DEVELOPMENT | PRODUCTION as these are commonly used in node land\n // this variable is used inside webpack\n const nodeEnv = process.env.NODE_ENV || `${defaultNodeEnv}`\n // config env is dependent on the env that it's run, this can be anything from staging-production\n // this allows you to set use different .env environments or conditions in gatsby files\n const configEnv = process.env.GATSBY_ACTIVE_ENV || nodeEnv\n const envFile = path.join(process.cwd(), `./.env.${configEnv}`)\n let parsed = {}\n try {\n parsed = dotenv.parse(fs.readFileSync(envFile, { encoding: `utf8` }))\n } catch (err) {\n if (err.code !== `ENOENT`) {\n report.error(\n `There was a problem processing the .env file (${envFile})`,\n err\n )\n }\n }\n\n const target =\n stage === `build-html` || stage === `develop-html` ? `node` : `web`\n\n const envObject = Object.keys(parsed).reduce((acc, key) => {\n acc[key] = JSON.stringify(parsed[key])\n return acc\n }, {})\n\n const gatsbyVarObject = Object.keys(process.env).reduce((acc, key) => {\n if (target === `node` || key.match(/^GATSBY_/)) {\n acc[key] = JSON.stringify(process.env[key])\n }\n return acc\n }, {})\n\n // Don't allow overwriting of NODE_ENV, PUBLIC_DIR as to not break gatsby things\n envObject.NODE_ENV = JSON.stringify(nodeEnv)\n envObject.PUBLIC_DIR = JSON.stringify(`${process.cwd()}/public`)\n envObject.BUILD_STAGE = JSON.stringify(stage)\n envObject.CYPRESS_SUPPORT = JSON.stringify(process.env.CYPRESS_SUPPORT)\n envObject.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND = JSON.stringify(\n !!process.env.GATSBY_EXPERIMENTAL_QUERY_ON_DEMAND\n )\n\n if (stage === `develop`) {\n envObject.GATSBY_SOCKET_IO_DEFAULT_TRANSPORT = JSON.stringify(\n process.env.GATSBY_SOCKET_IO_DEFAULT_TRANSPORT || `websocket`\n )\n }\n\n const mergedEnvVars = Object.assign(envObject, gatsbyVarObject)\n\n return Object.keys(mergedEnvVars).reduce(\n (acc, key) => {\n acc[`process.env.${key}`] = mergedEnvVars[key]\n return acc\n },\n {\n \"process.env\": `({})`,\n }\n )\n }\n\n function getHmrPath() {\n // ref: https://github.com/gatsbyjs/gatsby/issues/8348\n let hmrBasePath = `/`\n const hmrSuffix = `__webpack_hmr&reload=true&overlay=false`\n\n if (process.env.GATSBY_WEBPACK_PUBLICPATH) {\n const pubPath = process.env.GATSBY_WEBPACK_PUBLICPATH\n if (pubPath.substr(-1) === `/`) {\n hmrBasePath = pubPath\n } else {\n hmrBasePath = withTrailingSlash(pubPath)\n }\n }\n\n return hmrBasePath + hmrSuffix\n }\n\n debug(`Loading webpack config for stage \"${stage}\"`)\n function getOutput() {\n switch (stage) {\n case `develop`:\n return {\n path: directory,\n filename: `[name].js`,\n // Add /* filename */ comments to generated require()s in the output.\n pathinfo: true,\n // Point sourcemap entries to original disk location (format as URL on Windows)\n publicPath: process.env.GATSBY_WEBPACK_PUBLICPATH || `/`,\n devtoolModuleFilenameTemplate: info =>\n path.resolve(info.absoluteResourcePath).replace(/\\\\/g, `/`),\n // Avoid React cross-origin errors\n // See https://reactjs.org/docs/cross-origin-errors.html\n crossOriginLoading: `anonymous`,\n }\n case `build-html`:\n case `develop-html`:\n // Generate the file needed to SSR pages.\n // Deleted by build-html.js, since it's not needed for production.\n return {\n path: directoryPath(ROUTES_DIRECTORY),\n filename: `[name].js`,\n chunkFilename: `[name].js`,\n library: {\n type: `commonjs`,\n },\n publicPath: withTrailingSlash(publicPath),\n }\n case `build-javascript`:\n return {\n filename: `[name]-[contenthash].js`,\n chunkFilename: `[name]-[contenthash].js`,\n path: directoryPath(`public`),\n publicPath: withTrailingSlash(publicPath),\n }\n default:\n throw new Error(`The state requested ${stage} doesn't exist.`)\n }\n }\n\n function getEntry() {\n switch (stage) {\n case `develop`:\n return hasES6ModuleSupport(directory)\n ? {\n commons: [directoryPath(`.cache/app`)],\n }\n : {\n polyfill: directoryPath(`.cache/polyfill-entry`),\n commons: [directoryPath(`.cache/app`)],\n }\n case `develop-html`:\n return {\n \"render-page\": process.env.GATSBY_EXPERIMENTAL_DEV_SSR\n ? directoryPath(`.cache/ssr-develop-static-entry`)\n : directoryPath(`.cache/develop-static-entry`),\n }\n case `build-html`: {\n return {\n \"render-page\": directoryPath(`.cache/static-entry`),\n }\n }\n case `build-javascript`:\n return hasES6ModuleSupport(directory)\n ? {\n app: directoryPath(`.cache/production-app`),\n }\n : {\n polyfill: directoryPath(`.cache/polyfill-entry`),\n app: directoryPath(`.cache/production-app`),\n }\n default:\n throw new Error(`The state requested ${stage} doesn't exist.`)\n }\n }\n\n function getPlugins() {\n let configPlugins = [\n plugins.moment(),\n\n // Add a few global variables. Set NODE_ENV to production (enables\n // optimizations for React) and what the link prefix is (__PATH_PREFIX__).\n plugins.define({\n ...processEnv(stage, `development`),\n __BASE_PATH__: JSON.stringify(program.prefixPaths ? pathPrefix : ``),\n __PATH_PREFIX__: JSON.stringify(program.prefixPaths ? publicPath : ``),\n __ASSET_PREFIX__: JSON.stringify(\n program.prefixPaths ? assetPrefix : ``\n ),\n // TODO Improve asset passing to pages\n BROWSER_ESM_ONLY: JSON.stringify(hasES6ModuleSupport(directory)),\n }),\n\n plugins.virtualModules(),\n new BabelConfigItemsCacheInvalidatorPlugin(),\n process.env.GATSBY_WEBPACK_LOGGING?.split(`,`)?.includes(stage) &&\n new WebpackLoggingPlugin(program.directory, report, program.verbose),\n ].filter(Boolean)\n\n switch (stage) {\n case `develop`: {\n configPlugins = configPlugins\n .concat([\n (fastRefreshPlugin = plugins.fastRefresh({ modulesThatUseGatsby })),\n new ForceCssHMRForEdgeCases(),\n plugins.hotModuleReplacement(),\n plugins.noEmitOnErrors(),\n plugins.eslintGraphqlSchemaReload(),\n new StaticQueryMapper(store),\n ])\n .filter(Boolean)\n\n configPlugins.push(\n plugins.extractText({\n filename: `[name].css`,\n chunkFilename: `[id].css`,\n })\n )\n\n if (process.env.GATSBY_EXPERIMENTAL_DEV_SSR) {\n configPlugins.push(plugins.extractStats())\n }\n\n const isCustomEslint = hasLocalEslint(program.directory)\n // get schema to pass to eslint config and program for directory\n const { schema } = store.getState()\n\n // if no local eslint config, then add gatsby config\n if (!isCustomEslint) {\n configPlugins.push(plugins.eslint(schema))\n }\n\n // Enforce fast-refresh rules even with local eslint config\n if (isCustomEslint) {\n configPlugins.push(plugins.eslintRequired())\n }\n\n break\n }\n case `build-javascript`: {\n configPlugins = configPlugins.concat([\n plugins.extractText({\n filename: `[name].[contenthash].css`,\n chunkFilename: `[name].[contenthash].css`,\n }),\n // Write out stats object mapping named dynamic imports (aka page\n // components) to all their async chunks.\n plugins.extractStats(),\n new StaticQueryMapper(store),\n ])\n break\n }\n case `develop-html`:\n case `build-html`: {\n // Add global fetch in node environments\n configPlugins.push(\n plugins.provide({\n fetch: require.resolve(`node-fetch`),\n \"global.fetch\": require.resolve(`node-fetch`),\n })\n )\n break\n }\n }\n\n return configPlugins\n }\n\n function getDevtool() {\n switch (stage) {\n case `develop`:\n return `eval-cheap-module-source-map`\n // use a normal `source-map` for the html phases since\n // it gives better line and column numbers\n case `develop-html`:\n case `build-html`:\n case `build-javascript`:\n return `source-map`\n default:\n return false\n }\n }\n\n function getMode() {\n switch (stage) {\n case `develop`:\n case `develop-html`:\n return `development`\n case `build-javascript`:\n case `build-html`:\n default:\n return `production`\n }\n }\n\n function getModule() {\n // Common config for every env.\n // prettier-ignore\n let configRules = [\n // Webpack expects extensions when importing ESM modules as that's what the spec describes.\n // Not all libraries have adapted so we don't enforce its behaviour\n // @see https://github.com/webpack/webpack/issues/11467\n {\n test: /\\.mjs$/i,\n resolve: {\n byDependency: {\n esm: {\n fullySpecified: false\n }\n }\n }\n },\n {\n test: /\\.js$/i,\n descriptionData: {\n type: `module`\n },\n resolve: {\n byDependency: {\n esm: {\n fullySpecified: false\n }\n }\n }\n },\n rules.js({\n modulesThatUseGatsby,\n }),\n rules.yaml(),\n rules.fonts(),\n rules.images(),\n rules.media(),\n rules.miscAssets(),\n\n // This is a hack that exports one of @reach/router internals (BaseContext)\n // to export list. We need it to reset basepath and baseuri context after\n // Gatsby main router changes it, to keep v2 behaviour.\n // We will need to most likely remove this for v3.\n {\n test: require.resolve(`@gatsbyjs/reach-router/es/index`),\n type: `javascript/auto`,\n use: [{\n loader: require.resolve(`./reach-router-add-basecontext-export-loader`),\n }],\n }\n ]\n\n // Speedup 🏎️💨 the build! We only include transpilation of node_modules on javascript production builds\n // TODO create gatsby plugin to enable this behaviour on develop (only when people are requesting this feature)\n if (stage === `build-javascript`) {\n configRules.push(\n rules.dependencies({\n modulesThatUseGatsby,\n })\n )\n }\n\n switch (stage) {\n case `develop`: {\n configRules = configRules.concat([\n {\n oneOf: [rules.cssModules(), rules.css()],\n },\n ])\n\n break\n }\n case `build-html`:\n case `develop-html`:\n // We don't deal with CSS at all when building the HTML.\n // The 'null' loader is used to prevent 'module not found' errors.\n // On the other hand CSS modules loaders are necessary.\n\n // prettier-ignore\n configRules = configRules.concat([\n {\n oneOf: [\n rules.cssModules(),\n {\n ...rules.css(),\n use: [loaders.null()],\n },\n ],\n },\n ])\n break\n\n case `build-javascript`:\n // We don't deal with CSS at all when building JavaScript but we still\n // need to process the CSS so offline-plugin knows about the various\n // assets referenced in your CSS.\n //\n // It's also necessary to process CSS Modules so your JS knows the\n // classNames to use.\n configRules = configRules.concat([\n {\n oneOf: [rules.cssModules(), rules.css()],\n },\n ])\n\n break\n }\n\n return { rules: configRules }\n }\n\n function getPackageRoot(pkg) {\n return path.dirname(require.resolve(`${pkg}/package.json`))\n }\n\n function getResolve(stage) {\n const { program } = store.getState()\n const resolve = {\n // Use the program's extension list (generated via the\n // 'resolvableExtensions' API hook).\n extensions: [...program.extensions],\n alias: {\n gatsby$: directoryPath(path.join(`.cache`, `gatsby-browser-entry.js`)),\n // Using directories for module resolution is mandatory because\n // relative path imports are used sometimes\n // See https://stackoverflow.com/a/49455609/6420957 for more details\n \"@babel/runtime\": getPackageRoot(`@babel/runtime`),\n \"@reach/router\": getPackageRoot(`@gatsbyjs/reach-router`),\n \"react-lifecycles-compat\": directoryPath(\n `.cache/react-lifecycles-compat.js`\n ),\n \"@pmmmwh/react-refresh-webpack-plugin\": getPackageRoot(\n `@pmmmwh/react-refresh-webpack-plugin`\n ),\n \"socket.io-client\": getPackageRoot(`socket.io-client`),\n \"webpack-hot-middleware\": getPackageRoot(\n `@gatsbyjs/webpack-hot-middleware`\n ),\n $virtual: getAbsolutePathForVirtualModule(`$virtual`),\n },\n plugins: [\n new CoreJSResolver(),\n new CacheFolderResolver(path.join(program.directory, `.cache`)),\n ],\n }\n\n const target =\n stage === `build-html` || stage === `develop-html` ? `node` : `web`\n if (target === `web`) {\n resolve.alias[`@reach/router`] = path.join(\n getPackageRoot(`@gatsbyjs/reach-router`),\n `es`\n )\n }\n\n if (stage === `build-javascript` && program.profile) {\n resolve.alias[`react-dom$`] = `react-dom/profiling`\n resolve.alias[`scheduler/tracing`] = `scheduler/tracing-profiling`\n }\n\n // SSR can have many react versions as some packages use their own version. React works best with 1 version.\n // By resolving react,react-dom from gatsby we'll get the site versions of react & react-dom because it's specified as a peerdependency.\n //\n // we need to put this below our resolve.alias for profiling as webpack picks the first one that matches\n // @see https://github.com/gatsbyjs/gatsby/issues/31098\n resolve.alias[`react`] = getPackageRoot(`react`)\n resolve.alias[`react-dom`] = getPackageRoot(`react-dom`)\n\n return resolve\n }\n\n function getResolveLoader() {\n const root = [path.resolve(directory, `node_modules`)]\n\n const userLoaderDirectoryPath = path.resolve(directory, `loaders`)\n\n try {\n if (fs.statSync(userLoaderDirectoryPath).isDirectory()) {\n root.push(userLoaderDirectoryPath)\n }\n } catch (err) {\n debug(`Error resolving user loaders directory`, err)\n }\n\n return {\n modules: [...root, path.join(__dirname, `../loaders`), `node_modules`],\n }\n }\n\n const config = {\n name: stage,\n // Context is the base directory for resolving the entry option.\n context: directory,\n entry: getEntry(),\n output: getOutput(),\n\n module: getModule(),\n plugins: getPlugins(),\n\n devtool: getDevtool(),\n // Turn off performance hints as we (for now) don't want to show the normal\n // webpack output anywhere.\n performance: {\n hints: false,\n },\n mode: getMode(),\n\n resolveLoader: getResolveLoader(),\n resolve: getResolve(stage),\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n const [major, minor] = process.version.replace(`v`, ``).split(`.`)\n config.target = `node14.15`\n } else {\n config.target = [`web`, `es5`]\n }\n\n const isCssModule = module => module.type === `css/mini-extract`\n\n if (stage === `develop`) {\n config.optimization = {\n splitChunks: {\n chunks: `all`,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n framework: {\n chunks: `all`,\n name: `framework`,\n // This regex ignores nested copies of framework libraries so they're bundled with their issuer.\n test: new RegExp(\n `(?<!node_modules.*)[\\\\\\\\/]node_modules[\\\\\\\\/](${FRAMEWORK_BUNDLES.join(\n `|`\n )})[\\\\\\\\/]`\n ),\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from becoming a part of the commons chunk)\n enforce: true,\n },\n // Bundle all css & lazy css into one stylesheet to make sure lazy components do not break\n // TODO make an exception for css-modules\n styles: {\n test(module) {\n return isCssModule(module)\n },\n\n name: `commons`,\n priority: 40,\n enforce: true,\n },\n },\n },\n minimize: false,\n }\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n config.optimization = {\n splitChunks: {\n cacheGroups: {\n default: false,\n defaultVendors: false,\n },\n },\n minimize: false,\n }\n }\n\n if (stage === `build-javascript`) {\n const componentsCount = store.getState().components.size\n\n const splitChunks = {\n chunks: `all`,\n cacheGroups: {\n default: false,\n defaultVendors: false,\n framework: {\n chunks: `all`,\n name: `framework`,\n // This regex ignores nested copies of framework libraries so they're bundled with their issuer.\n test: new RegExp(\n `(?<!node_modules.*)[\\\\\\\\/]node_modules[\\\\\\\\/](${FRAMEWORK_BUNDLES.join(\n `|`\n )})[\\\\\\\\/]`\n ),\n priority: 40,\n // Don't let webpack eliminate this chunk (prevents this chunk from becoming a part of the commons chunk)\n enforce: true,\n },\n // if a module is bigger than 160kb from node_modules we make a separate chunk for it\n lib: {\n test(module) {\n return (\n !isCssModule(module) &&\n module.size() > 160000 &&\n /node_modules[/\\\\]/.test(module.identifier())\n )\n },\n name(module) {\n const hash = crypto.createHash(`sha1`)\n if (!module.libIdent) {\n throw new Error(\n `Encountered unknown module type: ${module.type}. Please open an issue.`\n )\n }\n\n hash.update(module.libIdent({ context: program.directory }))\n\n return hash.digest(`hex`).substring(0, 8)\n },\n priority: 30,\n minChunks: 1,\n reuseExistingChunk: true,\n },\n commons: {\n name: `commons`,\n // if a chunk is used on all components we put it in commons (we need at least 2 components)\n minChunks: Math.max(componentsCount, 2),\n priority: 20,\n },\n // If a chunk is used in at least 2 components we create a separate chunk\n shared: {\n test(module) {\n return !isCssModule(module)\n },\n name(module, chunks) {\n const hash = crypto\n .createHash(`sha1`)\n .update(chunks.reduce((acc, chunk) => acc + chunk.name, ``))\n .digest(`hex`)\n\n return hash\n },\n priority: 10,\n minChunks: 2,\n reuseExistingChunk: true,\n },\n\n // Bundle all css & lazy css into one stylesheet to make sure lazy components do not break\n // TODO make an exception for css-modules\n styles: {\n test(module) {\n return isCssModule(module)\n },\n\n name: `styles`,\n priority: 40,\n enforce: true,\n },\n },\n // We load our pages async through async-requires, maxInitialRequests doesn't have an effect on chunks derived from page components.\n // By default webpack has set maxAsyncRequests to 6, in some cases this isn't enough an actually makes the bundle size blow up.\n // We've set maxAsyncRequests to Infinity to negate this. This could potentionally exceed the 25 initial requests that we set before\n // sadly I do not have a better solution.\n maxAsyncRequests: Infinity,\n maxInitialRequests: 25,\n minSize: 20000,\n }\n\n config.optimization = {\n runtimeChunk: {\n name: `webpack-runtime`,\n },\n splitChunks,\n minimizer: [\n // TODO: maybe this option should be noMinimize?\n !program.noUglify &&\n plugins.minifyJs(\n program.profile\n ? {\n terserOptions: {\n keep_classnames: true,\n keep_fnames: true,\n },\n }\n : {}\n ),\n plugins.minifyCss(),\n ].filter(Boolean),\n }\n }\n\n if (stage === `build-html` || stage === `develop-html`) {\n // externalize react, react-dom when develop-html or build-html(when not generating engines)\n const shouldMarkPackagesAsExternal =\n stage === `develop-html` ||\n !(_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines())\n\n // tracking = build-html (when not generating engines)\n const shouldTrackBuiltins =\n stage === `build-html` &&\n !(_CFLAGS_.GATSBY_MAJOR === `4` && shouldGenerateEngines())\n\n // removes node internals from bundle\n // https://webpack.js.org/configuration/externals/#externalspresets\n config.externalsPresets = {\n // use it only when not tracking builtins (tracking builtins provide their own fallbacks)\n node: !shouldTrackBuiltins,\n }\n config.externals = []\n\n if (shouldMarkPackagesAsExternal) {\n // Packages we want to externalize to save some build time\n // https://github.com/gatsbyjs/gatsby/pull/14208#pullrequestreview-240178728\n // const externalList = [`common-tags`, `lodash`, `semver`, /^lodash\\//]\n\n // Packages we want to externalize because meant to be user-provided\n const userExternalList = [`react`, /^react-dom\\//]\n\n const checkItem = (item, request) => {\n if (typeof item === `string` && item === request) {\n return true\n } else if (item instanceof RegExp && item.test(request)) {\n return true\n }\n\n return false\n }\n\n config.externals.push(function (\n { context, getResolve, request },\n callback\n ) {\n // allows us to resolve webpack aliases from our config\n // helpful for when react is aliased to preact-compat\n // Force commonjs as we're in node land\n const resolver = getResolve({\n dependencyType: `commonjs`,\n })\n\n // User modules that do not need to be part of the bundle\n if (userExternalList.some(item => checkItem(item, request))) {\n // TODO figure out to make preact work with this too\n\n resolver(context, request, (err, newRequest) => {\n if (err) {\n callback(err)\n return\n }\n\n callback(null, newRequest)\n })\n return\n }\n // TODO look into re-enabling, breaks builds right now because of esm\n // User modules that do not need to be part of the bundle\n // if (externalList.some(item => checkItem(item, request))) {\n // resolver(context, request, (err, request) => {\n // if (err) {\n // callback(err)\n // return\n // }\n\n // callback(null, `commonjs2 ${request}`)\n // })\n // return\n // }\n\n callback()\n })\n }\n\n if (shouldTrackBuiltins) {\n if (stage === `build-html`) {\n const builtinModulesToTrack = [\n `fs`,\n `http`,\n `http2`,\n `https`,\n `child_process`,\n ]\n const builtinsExternalsDictionary = builtinModules.reduce(\n (acc, builtinModule) => {\n if (builtinModulesToTrack.includes(builtinModule)) {\n acc[builtinModule] = `commonjs ${path.join(\n program.directory,\n `.cache`,\n `ssr-builtin-trackers`,\n builtinModule\n )}`\n } else {\n acc[builtinModule] = `commonjs ${builtinModule}`\n }\n return acc\n },\n {}\n )\n\n config.externals.unshift(builtinsExternalsDictionary)\n }\n }\n }\n\n if (stage === `develop`) {\n config.externals = {\n \"socket.io-client\": `io`,\n }\n }\n\n if (\n stage === `build-javascript` ||\n stage === `build-html` ||\n (process.env.GATSBY_EXPERIMENTAL_DEV_WEBPACK_CACHE &&\n (stage === `develop` || stage === `develop-html`))\n ) {\n const cacheLocation = path.join(\n program.directory,\n `.cache`,\n `webpack`,\n `stage-` + stage\n )\n\n const cacheConfig = {\n type: `filesystem`,\n name: stage,\n cacheLocation,\n buildDependencies: {\n config: [\n __filename,\n ...store\n .getState()\n .flattenedPlugins.filter(plugin =>\n plugin.nodeAPIs.includes(`onCreateWebpackConfig`)\n )\n .map(plugin => path.join(plugin.resolve, `gatsby-node.js`)),\n ],\n },\n }\n\n config.cache = cacheConfig\n }\n\n store.dispatch(actions.replaceWebpackConfig(config))\n const getConfig = () => store.getState().webpack\n\n await apiRunnerNode(`onCreateWebpackConfig`, {\n getConfig,\n // we will converge to build-html later on but for now this was the fastest way to get SSR to work\n stage,\n rules,\n loaders,\n plugins,\n parentSpan,\n })\n\n if (fastRefreshPlugin) {\n // Fast refresh plugin has `include` option that determines\n // wether HMR code gets injected. We need to make sure all custom loaders\n // (like .ts or .mdx) that use our babel-loader will be taken into account\n // when deciding which modules get fast-refresh HMR addition.\n const fastRefreshIncludes = []\n const babelLoaderLoc = require.resolve(`./babel-loader`)\n for (const rule of getConfig().module.rules) {\n if (!rule.use && !rule.loader) {\n continue\n }\n\n const ruleLoaders = Array.isArray(rule.use)\n ? rule.use.map(useEntry =>\n typeof useEntry === `string` ? useEntry : useEntry.loader\n )\n : [rule.use?.loader ?? rule.loader]\n\n const hasBabelLoader = ruleLoaders.some(\n loader => loader === babelLoaderLoc\n )\n\n if (hasBabelLoader) {\n fastRefreshIncludes.push(rule.test)\n }\n }\n\n // start with default include of fast refresh plugin\n const includeRegex = /\\.([jt]sx?|flow)$/i\n includeRegex.test = modulePath => {\n // drop query param from request (i.e. ?type=component for mdx-loader)\n // so loader rule test work well\n const queryParamStartIndex = modulePath.indexOf(`?`)\n if (queryParamStartIndex !== -1) {\n modulePath = modulePath.substr(0, queryParamStartIndex)\n }\n\n return fastRefreshIncludes.some(re => re.test(modulePath))\n }\n\n fastRefreshPlugin.options.include = includeRegex\n }\n\n return getConfig()\n}\n"],"file":"webpack.config.js"}
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": "4.5.0",
4
+ "version": "4.5.4",
5
5
  "author": "Kyle Mathews <mathews.kyle@gmail.com>",
6
6
  "bin": {
7
7
  "gatsby": "./cli.js"
@@ -23,8 +23,8 @@
23
23
  "@nodelib/fs.walk": "^1.2.8",
24
24
  "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
25
25
  "@types/http-proxy": "^1.17.7",
26
- "@typescript-eslint/eslint-plugin": "^5.8.1",
27
- "@typescript-eslint/parser": "^5.8.1",
26
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
27
+ "@typescript-eslint/parser": "^4.33.0",
28
28
  "@vercel/webpack-asset-relocator-loader": "^1.7.0",
29
29
  "address": "1.1.2",
30
30
  "anser": "^2.1.0",
@@ -34,8 +34,8 @@
34
34
  "babel-plugin-add-module-exports": "^1.0.4",
35
35
  "babel-plugin-dynamic-import-node": "^2.3.3",
36
36
  "babel-plugin-lodash": "^3.3.4",
37
- "babel-plugin-remove-graphql-queries": "^4.5.0",
38
- "babel-preset-gatsby": "^2.5.0",
37
+ "babel-plugin-remove-graphql-queries": "^4.5.2",
38
+ "babel-preset-gatsby": "^2.5.2",
39
39
  "better-opn": "^2.1.1",
40
40
  "bluebird": "^3.7.2",
41
41
  "body-parser": "^1.19.0",
@@ -77,16 +77,16 @@
77
77
  "find-cache-dir": "^3.3.2",
78
78
  "fs-exists-cached": "1.0.0",
79
79
  "fs-extra": "^10.0.0",
80
- "gatsby-cli": "^4.5.0",
81
- "gatsby-core-utils": "^3.5.0",
80
+ "gatsby-cli": "^4.5.2",
81
+ "gatsby-core-utils": "^3.5.2",
82
82
  "gatsby-graphiql-explorer": "^2.5.0",
83
83
  "gatsby-legacy-polyfills": "^2.5.0",
84
84
  "gatsby-link": "^4.5.0",
85
- "gatsby-plugin-page-creator": "^4.5.0",
86
- "gatsby-plugin-typescript": "^4.5.0",
85
+ "gatsby-plugin-page-creator": "^4.5.2",
86
+ "gatsby-plugin-typescript": "^4.5.2",
87
87
  "gatsby-plugin-utils": "^2.5.0",
88
88
  "gatsby-react-router-scroll": "^5.5.0",
89
- "gatsby-telemetry": "^3.5.0",
89
+ "gatsby-telemetry": "^3.5.2",
90
90
  "gatsby-worker": "^1.5.0",
91
91
  "glob": "^7.2.0",
92
92
  "got": "^11.8.2",
@@ -258,5 +258,5 @@
258
258
  "yargs": {
259
259
  "boolean-negation": false
260
260
  },
261
- "gitHead": "93c356e53f157b34b825ce3d1951fefc25dde433"
261
+ "gitHead": "80b3915e1373ef8c277e50fdfd6178b9930c830c"
262
262
  }
@@ -1,2 +0,0 @@
1
- declare const _default: any;
2
- export default _default;
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- exports.__esModule = true;
4
- exports.default = void 0;
5
-
6
- var _helperPluginUtils = require("@babel/helper-plugin-utils");
7
-
8
- var t = _interopRequireWildcard(require("@babel/types"));
9
-
10
- 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); }
11
-
12
- 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; }
13
-
14
- // Partially copied from https://github.com/babel/minify/blob/1ad7838116ec34621d39bb1b4a985e7601eab659/packages/babel-plugin-transform-inline-environment-variables/src/index.js
15
- var _default = (0, _helperPluginUtils.declare)(function replaceEnvVars(api, options) {
16
- var _options$apis;
17
-
18
- api.assertVersion(7);
19
- const apisToInclude = (_options$apis = options === null || options === void 0 ? void 0 : options.apis) !== null && _options$apis !== void 0 ? _options$apis : [];
20
-
21
- if (!apisToInclude.length) {
22
- console.warn(`No list of APIs was given to replace env vars, check your plugin options.`);
23
- }
24
-
25
- function isLeftSideOfAssignmentExpression(path) {
26
- return t.isAssignmentExpression(path.parent) && path.parent.left === path.node;
27
- }
28
-
29
- function replacement(path) {
30
- if (path.get(`object`).matchesPattern(`process.env`)) {
31
- const key = path.toComputedKey();
32
-
33
- if (t.isStringLiteral(key) && !isLeftSideOfAssignmentExpression(path)) {
34
- path.replaceWith(t.valueToNode(process.env[key.value]));
35
- }
36
- }
37
- }
38
-
39
- return {
40
- name: `ssr-env-vars`,
41
- visitor: {
42
- ExportNamedDeclaration(path) {
43
- const declaration = path.node.declaration;
44
-
45
- if (t.isExportNamedDeclaration(path.node)) {
46
- const hasExport = path.node.specifiers.some(specifier => t.isExportSpecifier(specifier) && t.isIdentifier(specifier.exported) && apisToInclude.includes(specifier.exported.name));
47
-
48
- if (hasExport) {
49
- path.traverse({
50
- MemberExpression(path) {
51
- replacement(path);
52
- }
53
-
54
- });
55
- }
56
- }
57
-
58
- let apiToCheck;
59
-
60
- if (t.isFunctionDeclaration(declaration) && declaration.id) {
61
- apiToCheck = declaration.id.name;
62
- }
63
-
64
- if (t.isVariableDeclaration(declaration) && t.isIdentifier(declaration.declarations[0].id)) {
65
- apiToCheck = declaration.declarations[0].id.name;
66
- }
67
-
68
- if (apiToCheck && apisToInclude.includes(apiToCheck)) {
69
- path.traverse({
70
- MemberExpression(path) {
71
- replacement(path);
72
- }
73
-
74
- });
75
- }
76
- }
77
-
78
- }
79
- };
80
- });
81
-
82
- exports.default = _default;
83
- //# sourceMappingURL=babel-plugin-env-vars.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/utils/babel/babel-plugin-env-vars.ts"],"names":["replaceEnvVars","api","options","assertVersion","apisToInclude","apis","length","console","warn","isLeftSideOfAssignmentExpression","path","t","isAssignmentExpression","parent","left","node","replacement","get","matchesPattern","key","toComputedKey","isStringLiteral","replaceWith","valueToNode","process","env","value","name","visitor","ExportNamedDeclaration","declaration","isExportNamedDeclaration","hasExport","specifiers","some","specifier","isExportSpecifier","isIdentifier","exported","includes","traverse","MemberExpression","apiToCheck","isFunctionDeclaration","id","isVariableDeclaration","declarations"],"mappings":";;;;;AAAA;;AACA;;;;;;AAGA;eAEe,gCAAQ,SAASA,cAAT,CACrBC,GADqB,EAErBC,OAFqB,EAGV;AAAA;;AACXD,EAAAA,GAAG,CAACE,aAAJ,CAAkB,CAAlB;AAEA,QAAMC,aAAa,oBAAGF,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEG,IAAZ,yDAAoB,EAAvC;;AAEA,MAAI,CAACD,aAAa,CAACE,MAAnB,EAA2B;AACzBC,IAAAA,OAAO,CAACC,IAAR,CACG,2EADH;AAGD;;AAED,WAASC,gCAAT,CAA0CC,IAA1C,EAAyD;AACvD,WACEC,CAAC,CAACC,sBAAF,CAAyBF,IAAI,CAACG,MAA9B,KAAyCH,IAAI,CAACG,MAAL,CAAYC,IAAZ,KAAqBJ,IAAI,CAACK,IADrE;AAGD;;AAED,WAASC,WAAT,CAAqBN,IAArB,EAAiC;AAC/B,QAAIA,IAAI,CAACO,GAAL,CAAU,QAAV,EAAmBC,cAAnB,CAAmC,aAAnC,CAAJ,EAAsD;AACpD,YAAMC,GAAG,GAAGT,IAAI,CAACU,aAAL,EAAZ;;AACA,UAAIT,CAAC,CAACU,eAAF,CAAkBF,GAAlB,KAA0B,CAACV,gCAAgC,CAACC,IAAD,CAA/D,EAAuE;AACrEA,QAAAA,IAAI,CAACY,WAAL,CAAiBX,CAAC,CAACY,WAAF,CAAcC,OAAO,CAACC,GAAR,CAAYN,GAAG,CAACO,KAAhB,CAAd,CAAjB;AACD;AACF;AACF;;AAED,SAAO;AACLC,IAAAA,IAAI,EAAG,cADF;AAELC,IAAAA,OAAO,EAAE;AACPC,MAAAA,sBAAsB,CAACnB,IAAD,EAAa;AACjC,cAAMoB,WAAW,GAAGpB,IAAI,CAACK,IAAL,CAAUe,WAA9B;;AAEA,YAAInB,CAAC,CAACoB,wBAAF,CAA2BrB,IAAI,CAACK,IAAhC,CAAJ,EAA2C;AACzC,gBAAMiB,SAAS,GAAGtB,IAAI,CAACK,IAAL,CAAUkB,UAAV,CAAqBC,IAArB,CAChBC,SAAS,IACPxB,CAAC,CAACyB,iBAAF,CAAoBD,SAApB,KACAxB,CAAC,CAAC0B,YAAF,CAAeF,SAAS,CAACG,QAAzB,CADA,IAEAlC,aAAa,CAACmC,QAAd,CAAuBJ,SAAS,CAACG,QAAV,CAAmBX,IAA1C,CAJc,CAAlB;;AAMA,cAAIK,SAAJ,EAAe;AACbtB,YAAAA,IAAI,CAAC8B,QAAL,CAAc;AACZC,cAAAA,gBAAgB,CAAC/B,IAAD,EAAO;AACrBM,gBAAAA,WAAW,CAACN,IAAD,CAAX;AACD;;AAHW,aAAd;AAKD;AACF;;AAED,YAAIgC,UAAJ;;AACA,YAAI/B,CAAC,CAACgC,qBAAF,CAAwBb,WAAxB,KAAwCA,WAAW,CAACc,EAAxD,EAA4D;AAC1DF,UAAAA,UAAU,GAAGZ,WAAW,CAACc,EAAZ,CAAejB,IAA5B;AACD;;AAED,YACEhB,CAAC,CAACkC,qBAAF,CAAwBf,WAAxB,KACAnB,CAAC,CAAC0B,YAAF,CAAeP,WAAW,CAACgB,YAAZ,CAAyB,CAAzB,EAA4BF,EAA3C,CAFF,EAGE;AACAF,UAAAA,UAAU,GAAGZ,WAAW,CAACgB,YAAZ,CAAyB,CAAzB,EAA4BF,EAA5B,CAA+BjB,IAA5C;AACD;;AAED,YAAIe,UAAU,IAAItC,aAAa,CAACmC,QAAd,CAAuBG,UAAvB,CAAlB,EAAsD;AACpDhC,UAAAA,IAAI,CAAC8B,QAAL,CAAc;AACZC,YAAAA,gBAAgB,CAAC/B,IAAD,EAAO;AACrBM,cAAAA,WAAW,CAACN,IAAD,CAAX;AACD;;AAHW,WAAd;AAKD;AACF;;AAvCM;AAFJ,GAAP;AA4CD,CAzEc,C","sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\"\nimport * as t from \"@babel/types\"\nimport type { PluginObj, ConfigAPI } from \"@babel/core\"\n\n// Partially copied from https://github.com/babel/minify/blob/1ad7838116ec34621d39bb1b4a985e7601eab659/packages/babel-plugin-transform-inline-environment-variables/src/index.js\n\nexport default declare(function replaceEnvVars(\n api: ConfigAPI,\n options: { apis?: Array<string> }\n): PluginObj {\n api.assertVersion(7)\n\n const apisToInclude = options?.apis ?? []\n\n if (!apisToInclude.length) {\n console.warn(\n `No list of APIs was given to replace env vars, check your plugin options.`\n )\n }\n\n function isLeftSideOfAssignmentExpression(path): boolean {\n return (\n t.isAssignmentExpression(path.parent) && path.parent.left === path.node\n )\n }\n\n function replacement(path): void {\n if (path.get(`object`).matchesPattern(`process.env`)) {\n const key = path.toComputedKey()\n if (t.isStringLiteral(key) && !isLeftSideOfAssignmentExpression(path)) {\n path.replaceWith(t.valueToNode(process.env[key.value]))\n }\n }\n }\n\n return {\n name: `ssr-env-vars`,\n visitor: {\n ExportNamedDeclaration(path): void {\n const declaration = path.node.declaration\n\n if (t.isExportNamedDeclaration(path.node)) {\n const hasExport = path.node.specifiers.some(\n specifier =>\n t.isExportSpecifier(specifier) &&\n t.isIdentifier(specifier.exported) &&\n apisToInclude.includes(specifier.exported.name)\n )\n if (hasExport) {\n path.traverse({\n MemberExpression(path) {\n replacement(path)\n },\n })\n }\n }\n\n let apiToCheck\n if (t.isFunctionDeclaration(declaration) && declaration.id) {\n apiToCheck = declaration.id.name\n }\n\n if (\n t.isVariableDeclaration(declaration) &&\n t.isIdentifier(declaration.declarations[0].id)\n ) {\n apiToCheck = declaration.declarations[0].id.name\n }\n\n if (apiToCheck && apisToInclude.includes(apiToCheck)) {\n path.traverse({\n MemberExpression(path) {\n replacement(path)\n },\n })\n }\n },\n },\n }\n})\n"],"file":"babel-plugin-env-vars.js"}