vike 0.4.218 → 0.4.219

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 (178) hide show
  1. package/dist/cjs/__internal/index.js +11 -11
  2. package/dist/cjs/node/api/build.js +20 -11
  3. package/dist/cjs/node/api/context.js +5 -1
  4. package/dist/cjs/node/api/index.js +17 -7
  5. package/dist/cjs/node/api/prepareViteApiCall.js +39 -11
  6. package/dist/cjs/node/cli/entry.js +19 -7
  7. package/dist/cjs/node/plugin/index.js +5 -5
  8. package/dist/cjs/node/plugin/plugins/autoFullBuild.js +3 -4
  9. package/dist/cjs/node/plugin/plugins/baseUrls.js +3 -10
  10. package/dist/cjs/node/plugin/plugins/buildConfig.js +2 -2
  11. package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  12. package/dist/cjs/node/plugin/plugins/commonConfig.js +38 -3
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +26 -23
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +171 -68
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +4 -3
  17. package/dist/cjs/node/plugin/plugins/setGlobalContext.js +1 -1
  18. package/dist/cjs/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  19. package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +17 -7
  20. package/dist/cjs/node/prerender/isPrerenderAutoRunEnabled.js +16 -0
  21. package/dist/cjs/node/prerender/runPrerender.js +94 -66
  22. package/dist/cjs/node/prerender/utils.js +1 -0
  23. package/dist/cjs/node/runtime/globalContext.js +108 -34
  24. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +2 -2
  25. package/dist/cjs/node/runtime/index-common.js +0 -15
  26. package/dist/cjs/node/runtime/onLoad.js +17 -3
  27. package/dist/cjs/node/runtime/page-files/setup.js +2 -4
  28. package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
  29. package/dist/cjs/node/runtime/renderPage/createHttpResponse/getCacheControl.js +2 -2
  30. package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
  31. package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  32. package/dist/cjs/node/runtime/renderPage/resolveRedirects.js +9 -1
  33. package/dist/cjs/node/runtime/renderPage.js +21 -22
  34. package/dist/cjs/node/runtime/utils.js +1 -0
  35. package/dist/cjs/node/runtime-dev/index.js +17 -7
  36. package/dist/cjs/node/shared/assertRuntimeManifest.js +0 -2
  37. package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +3 -3
  38. package/dist/cjs/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  39. package/dist/cjs/shared/getPageFiles.js +3 -9
  40. package/dist/cjs/shared/hooks/getHook.js +3 -3
  41. package/dist/cjs/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +113 -81
  42. package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  43. package/dist/cjs/shared/route/loadPageRoutes.js +3 -3
  44. package/dist/cjs/shared/utils.js +1 -0
  45. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  46. package/dist/cjs/utils/assert.js +4 -3
  47. package/dist/cjs/utils/assertSetup.js +33 -16
  48. package/dist/cjs/utils/debug.js +11 -6
  49. package/dist/cjs/utils/getGlobalObject.js +1 -2
  50. package/dist/cjs/utils/objectReplace.js +9 -0
  51. package/dist/esm/__internal/index.d.ts +3 -5
  52. package/dist/esm/__internal/index.js +6 -8
  53. package/dist/esm/client/client-routing-runtime/createPageContext.js +4 -1
  54. package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -1
  55. package/dist/esm/client/client-routing-runtime/entry.js +0 -1
  56. package/dist/esm/client/client-routing-runtime/getPageContextCurrent.d.ts +2 -2
  57. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.d.ts +4 -4
  58. package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +1 -1
  59. package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +2 -2
  60. package/dist/esm/client/client-routing-runtime/prefetch.d.ts +2 -2
  61. package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
  62. package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -1
  63. package/dist/esm/client/server-routing-runtime/entry.js +0 -1
  64. package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
  65. package/dist/esm/client/server-routing-runtime/getPageContext.js +5 -2
  66. package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
  67. package/dist/esm/client/shared/loadUserFilesClientSide.d.ts +2 -2
  68. package/dist/esm/client/shared/loadUserFilesClientSide.js +2 -2
  69. package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
  70. package/dist/esm/node/api/build.js +3 -4
  71. package/dist/esm/node/api/context.d.ts +3 -1
  72. package/dist/esm/node/api/context.js +6 -2
  73. package/dist/esm/node/api/prepareViteApiCall.d.ts +1 -1
  74. package/dist/esm/node/api/prepareViteApiCall.js +25 -7
  75. package/dist/esm/node/cli/entry.js +2 -0
  76. package/dist/esm/node/cli/parseCli.d.ts +1 -1
  77. package/dist/esm/node/plugin/index.d.ts +1 -1
  78. package/dist/esm/node/plugin/index.js +5 -5
  79. package/dist/esm/node/plugin/plugins/autoFullBuild.js +3 -4
  80. package/dist/esm/node/plugin/plugins/baseUrls.d.ts +1 -1
  81. package/dist/esm/node/plugin/plugins/baseUrls.js +4 -11
  82. package/dist/esm/node/plugin/plugins/buildConfig.js +2 -2
  83. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.d.ts +1 -1
  84. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.d.ts +2 -2
  85. package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/index.js +16 -17
  86. package/dist/esm/node/plugin/plugins/commonConfig.d.ts +3 -0
  87. package/dist/esm/node/plugin/plugins/commonConfig.js +39 -4
  88. package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +1 -1
  89. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +6 -9
  90. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +25 -22
  91. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +96 -1
  92. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +167 -64
  93. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +1 -1
  94. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +4 -3
  95. package/dist/esm/node/plugin/plugins/setGlobalContext.js +1 -1
  96. package/dist/esm/node/plugin/plugins/workaroundVite6HmrRegression.d.ts +3 -0
  97. package/dist/esm/node/plugin/plugins/{vite6HmrRegressionWorkaround.js → workaroundVite6HmrRegression.js} +3 -3
  98. package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.d.ts +5 -0
  99. package/dist/esm/node/prerender/isPrerenderAutoRunEnabled.js +14 -0
  100. package/dist/esm/node/prerender/runPrerender.d.ts +1 -2
  101. package/dist/esm/node/prerender/runPrerender.js +78 -60
  102. package/dist/esm/node/prerender/utils.d.ts +1 -0
  103. package/dist/esm/node/prerender/utils.js +1 -0
  104. package/dist/esm/node/runtime/globalContext.d.ts +23 -7
  105. package/dist/esm/node/runtime/globalContext.js +108 -34
  106. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  107. package/dist/esm/node/runtime/index-common.d.ts +0 -1
  108. package/dist/esm/node/runtime/index-common.js +0 -15
  109. package/dist/esm/node/runtime/index-deprecated.d.ts +1 -0
  110. package/dist/esm/node/runtime/onLoad.js +16 -2
  111. package/dist/esm/node/runtime/page-files/setup.js +3 -3
  112. package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
  113. package/dist/esm/node/runtime/renderPage/createHttpResponse/getCacheControl.js +1 -1
  114. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.d.ts +2 -2
  115. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +1 -1
  116. package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +2 -2
  117. package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
  118. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +31 -46
  119. package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +11 -33
  120. package/dist/esm/node/runtime/renderPage/resolveRedirects.d.ts +1 -1
  121. package/dist/esm/node/runtime/renderPage/resolveRedirects.js +9 -1
  122. package/dist/esm/node/runtime/renderPage.js +22 -23
  123. package/dist/esm/node/runtime/utils.d.ts +1 -0
  124. package/dist/esm/node/runtime/utils.js +1 -0
  125. package/dist/esm/node/shared/assertPluginManifest.d.ts +0 -1
  126. package/dist/esm/node/shared/assertRuntimeManifest.d.ts +0 -1
  127. package/dist/esm/node/shared/assertRuntimeManifest.js +1 -3
  128. package/dist/esm/shared/getPageFiles/analyzeClientSide.js +1 -1
  129. package/dist/esm/shared/getPageFiles/{setPageFiles.d.ts → getPageFiles.d.ts} +3 -1
  130. package/dist/esm/shared/getPageFiles/{setPageFiles.js → getPageFiles.js} +8 -6
  131. package/dist/esm/shared/getPageFiles.d.ts +2 -5
  132. package/dist/esm/shared/getPageFiles.js +1 -4
  133. package/dist/esm/shared/hooks/getHook.d.ts +3 -3
  134. package/dist/esm/shared/hooks/getHook.js +1 -1
  135. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +9 -5
  136. package/dist/esm/shared/page-configs/Config.d.ts +20 -2
  137. package/dist/esm/shared/page-configs/PageConfig.d.ts +7 -3
  138. package/dist/esm/shared/{getPageFiles/getExports.d.ts → page-configs/getPageConfigUserFriendly.d.ts} +26 -12
  139. package/dist/esm/shared/{getPageFiles/getExports.js → page-configs/getPageConfigUserFriendly.js} +112 -80
  140. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.d.ts +26 -6
  141. package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +80 -55
  142. package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
  143. package/dist/esm/shared/route/loadPageRoutes.js +1 -1
  144. package/dist/esm/shared/types.d.ts +1 -1
  145. package/dist/esm/shared/utils.d.ts +1 -0
  146. package/dist/esm/shared/utils.js +1 -0
  147. package/dist/esm/types/index.d.ts +1 -1
  148. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  149. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  150. package/dist/esm/utils/assert.js +4 -3
  151. package/dist/esm/utils/assertSetup.js +33 -16
  152. package/dist/esm/utils/debug.d.ts +1 -1
  153. package/dist/esm/utils/debug.js +11 -6
  154. package/dist/esm/utils/getGlobalObject.js +1 -2
  155. package/dist/esm/utils/objectReplace.d.ts +1 -0
  156. package/dist/esm/utils/objectReplace.js +6 -0
  157. package/dist/esm/utils/projectInfo.d.ts +1 -1
  158. package/package.json +4 -13
  159. package/__internal/loadImportBuild.js +0 -3
  160. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -128
  161. package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +0 -25
  162. package/dist/cjs/node/runtime/page-files/getPageFilesExports.js +0 -22
  163. package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +0 -1
  164. package/dist/esm/client/client-routing-runtime/pageFiles.js +0 -4
  165. package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +0 -1
  166. package/dist/esm/client/server-routing-runtime/pageFiles.js +0 -4
  167. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.d.ts +0 -104
  168. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveVikeConfigGlobal.js +0 -123
  169. package/dist/esm/node/plugin/plugins/vite6HmrRegressionWorkaround.d.ts +0 -3
  170. package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +0 -18
  171. package/dist/esm/node/runtime/globalContext/loadImportBuild.js +0 -23
  172. package/dist/esm/node/runtime/page-files/getPageFilesExports.d.ts +0 -2
  173. package/dist/esm/node/runtime/page-files/getPageFilesExports.js +0 -20
  174. /package/dist/cjs/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  175. /package/dist/cjs/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
  176. /package/dist/esm/node/plugin/plugins/{importBuild → buildEntry}/getVikeManifest.js +0 -0
  177. /package/dist/esm/shared/page-configs/{getConfigValue.d.ts → getConfigValueRuntime.d.ts} +0 -0
  178. /package/dist/esm/shared/page-configs/{getConfigValue.js → getConfigValueRuntime.js} +0 -0
@@ -3,17 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPageContextExports = getPageContextExports;
7
- const isScriptFile_js_1 = require("../../utils/isScriptFile.js");
6
+ exports.getPageConfigUserFriendly = getPageConfigUserFriendly;
7
+ exports.getPageConfigUserFriendlyNew = getPageConfigUserFriendlyNew;
8
+ const assert_exports_old_design_js_1 = require("../getPageFiles/assert_exports_old_design.js");
9
+ const getConfigDefinedAt_js_1 = require("./getConfigDefinedAt.js");
10
+ const helpers_js_1 = require("./helpers.js");
8
11
  const utils_js_1 = require("../utils.js");
9
- const assert_exports_old_design_js_1 = require("./assert_exports_old_design.js");
10
- const getConfigDefinedAt_js_1 = require("../page-configs/getConfigDefinedAt.js");
11
- const helpers_js_1 = require("../page-configs/helpers.js");
12
12
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
13
- function getPageContextExports(pageFiles, pageConfig) {
14
- const configEntries = {};
13
+ function getPageConfigUserFriendly(pageFiles, pageConfig) {
15
14
  const config = {};
16
- const exportsAll = {};
15
+ const configEntries = {}; // TODO/v1-release: remove
16
+ const exportsAll = {}; // TODO/v1-release: remove
17
17
  // V0.4 design
18
18
  // TODO/v1-release: remove
19
19
  pageFiles.forEach((pageFile) => {
@@ -31,78 +31,26 @@ function getPageContextExports(pageFiles, pageConfig) {
31
31
  });
32
32
  });
33
33
  });
34
- // V1 design
35
- const source = {};
36
- const sources = {};
37
- const addSrc = (src, configName) => {
38
- source[configName] = src;
39
- sources[configName] ?? (sources[configName] = []);
40
- sources[configName].push(src);
41
- };
42
- const from = {
43
- configsStandard: {},
44
- configsCumulative: {},
45
- configsComputed: {}
46
- };
34
+ let source;
35
+ let sources;
36
+ let from;
47
37
  if (pageConfig) {
48
- Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
49
- const { value } = configValue;
50
- const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
51
- const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, configValue.definedAtData);
52
- config[configName] = config[configName] ?? value;
53
- configEntries[configName] = configEntries[configName] ?? [];
54
- // Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
55
- (0, utils_js_1.assert)(configEntries[configName].length === 0);
56
- configEntries[configName].push({
57
- configValue: value,
58
- configDefinedAt,
59
- configDefinedByFile: configValueFilePathToShowToUser
60
- });
61
- if (configValue.type === 'standard') {
62
- const src = {
63
- type: 'configsStandard',
64
- value: configValue.value,
65
- definedAt: (0, getConfigDefinedAt_js_1.getDefinedAtString)(configValue.definedAtData, configName)
66
- };
67
- addSrc(src, configName);
68
- from.configsStandard[configName] = src;
69
- }
70
- if (configValue.type === 'cumulative') {
71
- const src = {
72
- type: 'configsCumulative',
73
- values: configValue.value.map((value, i) => {
74
- const definedAtFile = configValue.definedAtData[i];
75
- (0, utils_js_1.assert)(definedAtFile);
76
- const definedAt = (0, getConfigDefinedAt_js_1.getDefinedAtString)(definedAtFile, configName);
77
- return {
78
- value,
79
- definedAt
80
- };
81
- })
82
- };
83
- addSrc(src, configName);
84
- from.configsCumulative[configName] = src;
85
- }
86
- if (configValue.type === 'computed') {
87
- const src = {
88
- type: 'configsComputed',
89
- value: configValue.value
90
- };
91
- addSrc(src, configName);
92
- from.configsComputed[configName] = src;
93
- }
94
- // TODO/v1-release: remove
95
- const exportName = configName;
96
- exportsAll[exportName] = exportsAll[exportName] ?? [];
97
- exportsAll[exportName].push({
98
- exportValue: value,
99
- exportSource: configDefinedAt,
100
- filePath: configValueFilePathToShowToUser,
101
- _filePath: configValueFilePathToShowToUser,
102
- _fileType: null,
103
- _isFromDefaultExport: null
104
- });
105
- });
38
+ const res = getPageConfigUserFriendlyNew(pageConfig);
39
+ source = res.source;
40
+ sources = res.sources;
41
+ from = res.from;
42
+ Object.assign(config, res.config);
43
+ Object.assign(configEntries, res.configEntries);
44
+ Object.assign(exportsAll, res.exportsAll);
45
+ }
46
+ else {
47
+ source = {};
48
+ sources = {};
49
+ from = {
50
+ configsStandard: {},
51
+ configsCumulative: {},
52
+ configsComputed: {}
53
+ };
106
54
  }
107
55
  const pageExports = createObjectWithDeprecationWarning();
108
56
  const exports = {};
@@ -132,17 +80,101 @@ function getPageContextExports(pageFiles, pageConfig) {
132
80
  };
133
81
  return pageContextExports;
134
82
  }
83
+ // V1 design
84
+ function getPageConfigUserFriendlyNew(pageConfig) {
85
+ const config = {};
86
+ const configEntries = {};
87
+ const exportsAll = {};
88
+ const source = {};
89
+ const sources = {};
90
+ const from = {
91
+ configsStandard: {},
92
+ configsCumulative: {},
93
+ configsComputed: {}
94
+ };
95
+ const addSrc = (src, configName) => {
96
+ source[configName] = src;
97
+ sources[configName] ?? (sources[configName] = []);
98
+ sources[configName].push(src);
99
+ };
100
+ Object.entries(pageConfig.configValues).forEach(([configName, configValue]) => {
101
+ const { value } = configValue;
102
+ const configValueFilePathToShowToUser = (0, helpers_js_1.getConfigValueFilePathToShowToUser)(configValue.definedAtData);
103
+ const configDefinedAt = (0, getConfigDefinedAt_js_1.getConfigDefinedAtOptional)('Config', configName, configValue.definedAtData);
104
+ config[configName] = config[configName] ?? value;
105
+ configEntries[configName] = configEntries[configName] ?? [];
106
+ // Currently each configName has only one entry. Adding an entry for each overriden config value isn't implemented yet. (This is an isomorphic file and it isn't clear whether this can/should be implemented on the client-side. We should load a minimum amount of code on the client-side.)
107
+ (0, utils_js_1.assert)(configEntries[configName].length === 0);
108
+ configEntries[configName].push({
109
+ configValue: value,
110
+ configDefinedAt,
111
+ configDefinedByFile: configValueFilePathToShowToUser
112
+ });
113
+ if (configValue.type === 'standard') {
114
+ const src = {
115
+ type: 'configsStandard',
116
+ value: configValue.value,
117
+ definedAt: (0, getConfigDefinedAt_js_1.getDefinedAtString)(configValue.definedAtData, configName)
118
+ };
119
+ addSrc(src, configName);
120
+ from.configsStandard[configName] = src;
121
+ }
122
+ if (configValue.type === 'cumulative') {
123
+ const src = {
124
+ type: 'configsCumulative',
125
+ values: configValue.value.map((value, i) => {
126
+ const definedAtFile = configValue.definedAtData[i];
127
+ (0, utils_js_1.assert)(definedAtFile);
128
+ const definedAt = (0, getConfigDefinedAt_js_1.getDefinedAtString)(definedAtFile, configName);
129
+ return {
130
+ value,
131
+ definedAt
132
+ };
133
+ })
134
+ };
135
+ addSrc(src, configName);
136
+ from.configsCumulative[configName] = src;
137
+ }
138
+ if (configValue.type === 'computed') {
139
+ const src = {
140
+ type: 'configsComputed',
141
+ value: configValue.value
142
+ };
143
+ addSrc(src, configName);
144
+ from.configsComputed[configName] = src;
145
+ }
146
+ // TODO/v1-release: remove
147
+ const exportName = configName;
148
+ exportsAll[exportName] = exportsAll[exportName] ?? [];
149
+ exportsAll[exportName].push({
150
+ exportValue: value,
151
+ exportSource: configDefinedAt,
152
+ filePath: configValueFilePathToShowToUser,
153
+ _filePath: configValueFilePathToShowToUser,
154
+ _fileType: null,
155
+ _isFromDefaultExport: null
156
+ });
157
+ });
158
+ return {
159
+ config,
160
+ configEntries,
161
+ exportsAll,
162
+ source,
163
+ sources,
164
+ from
165
+ };
166
+ }
135
167
  function getExportValues(pageFile) {
136
168
  const { filePath, fileExports } = pageFile;
137
169
  (0, utils_js_1.assert)(fileExports); // assume pageFile.loadFile() was called
138
- (0, utils_js_1.assert)((0, isScriptFile_js_1.isScriptFile)(filePath));
170
+ (0, utils_js_1.assert)((0, utils_js_1.isScriptFile)(filePath));
139
171
  const exportValues = [];
140
172
  Object.entries(fileExports)
141
173
  .sort((0, utils_js_1.makeLast)(([exportName]) => exportName === 'default')) // `export { bla }` should override `export default { bla }`
142
174
  .forEach(([exportName, exportValue]) => {
143
175
  let isFromDefaultExport = exportName === 'default';
144
176
  if (isFromDefaultExport) {
145
- if ((0, isScriptFile_js_1.isTemplateFile)(filePath)) {
177
+ if ((0, utils_js_1.isTemplateFile)(filePath)) {
146
178
  exportName = 'Page';
147
179
  }
148
180
  else {
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.serializeConfigValues = serializeConfigValues;
7
+ exports.getConfigValuesBase = getConfigValuesBase;
7
8
  const assertSetup_js_1 = require("../../../utils/assertSetup.js");
8
9
  const utils_js_1 = require("../../../node/plugin/utils.js");
9
10
  const addImportStatement_js_1 = require("../../../node/plugin/plugins/importUserCode/addImportStatement.js");
@@ -17,77 +18,45 @@ const REPLACE_ME_AFTER = '__VIKE__REPLACE_ME_AFTER__';
17
18
  // - vike/shared/page-configs/serialize/parsePageConfigs.ts
18
19
  // - parsePageConfigs() is loaded on both the client- and server-side.
19
20
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
20
- function serializeConfigValues(pageConfig, importStatements, isEnvMatch, { isEager }, tabspace) {
21
+ function serializeConfigValues(pageConfig, importStatements, isEnvMatch, tabspace, isEager) {
21
22
  const lines = [];
22
23
  tabspace += ' ';
23
- Object.entries(pageConfig.configValuesComputed ?? {}).forEach(([configName, configValuesComputed]) => {
24
- if (!isEnvMatch(configValuesComputed.configEnv))
25
- return;
26
- // Is there a use case for overriding computed values? If yes, then configValeSources has higher precedence
27
- if (pageConfig.configValueSources[configName])
28
- return;
29
- const valueData = serializeWithJson(configValuesComputed.value, configName, null, importStatements);
30
- const configValueBase = {
31
- type: 'computed',
32
- definedAtData: null
33
- };
34
- serializeConfigValue(configValueBase, valueData, configName, lines, tabspace);
35
- });
36
- Object.entries(pageConfig.configValueSources).forEach(([configName, sources]) => {
37
- const configDef = pageConfig.configDefinitions[configName];
38
- (0, utils_js_1.assert)(configDef);
39
- if (isEager !== !!configDef.eager)
40
- return;
41
- if (!configDef.cumulative) {
42
- const configValueSource = sources[0];
43
- (0, utils_js_1.assert)(configValueSource);
44
- (0, utils_js_1.assert)(sources.slice(1).every((s) => s.isOverriden === true));
45
- if (!isEnvMatch(configValueSource.configEnv))
46
- return;
47
- const { valueData, definedAtFile } = serializeConfigValueSource(configValueSource, configName, importStatements);
48
- const configValueBase = {
49
- type: 'standard',
50
- definedAtData: definedAtFile
51
- };
24
+ getConfigValuesBase(pageConfig, isEnvMatch, isEager).forEach((entry) => {
25
+ if (entry.configValueBase.type === 'computed') {
26
+ (0, utils_js_1.assert)('value' in entry); // Help TS
27
+ const { configValueBase, value, configName } = entry;
28
+ const valueData = getValueSerializedWithJson(value, configName, configValueBase.definedAtData, importStatements);
52
29
  serializeConfigValue(configValueBase, valueData, configName, lines, tabspace);
53
30
  }
54
- else {
31
+ if (entry.configValueBase.type === 'standard') {
32
+ (0, utils_js_1.assert)('sourceRelevant' in entry); // Help TS
33
+ const { configValueBase, sourceRelevant, configName } = entry;
34
+ const valueData = getValueSerializedFromSource(sourceRelevant, configName, importStatements);
35
+ serializeConfigValue(configValueBase, valueData, configName, lines, tabspace);
36
+ }
37
+ if (entry.configValueBase.type === 'cumulative') {
38
+ (0, utils_js_1.assert)('sourcesRelevant' in entry); // Help TS
39
+ const { configValueBase, sourcesRelevant, configName } = entry;
55
40
  const valueDataList = [];
56
- const definedAtData = [];
57
- sources
58
- .filter((s) => !s.isOverriden)
59
- .forEach((configValueSource) => {
60
- if (!isEnvMatch(configValueSource.configEnv))
61
- return;
62
- const { valueData, definedAtFile } = serializeConfigValueSource(configValueSource, configName, importStatements);
41
+ sourcesRelevant.forEach((source) => {
42
+ const valueData = getValueSerializedFromSource(source, configName, importStatements);
63
43
  valueDataList.push(valueData);
64
- definedAtData.push(definedAtFile);
65
44
  });
66
- if (valueDataList.length === 0)
67
- return;
68
- const configValueBase = {
69
- type: 'cumulative',
70
- definedAtData
71
- };
72
45
  serializeConfigValue(configValueBase, valueDataList, configName, lines, tabspace);
73
46
  }
74
47
  });
75
48
  return lines;
76
49
  }
77
- function serializeConfigValueSource(configValueSource, configName, importStatements) {
50
+ function getValueSerializedFromSource(configValueSource, configName, importStatements) {
78
51
  (0, utils_js_1.assert)(configValueSource.isOverriden === false);
79
52
  let valueData;
80
53
  if ('value' in configValueSource) {
81
- valueData = serializeWithJson(configValueSource.value, configName, configValueSource.definedAtFilePath, importStatements);
54
+ valueData = getValueSerializedWithJson(configValueSource.value, configName, configValueSource.definedAtFilePath, importStatements);
82
55
  }
83
56
  else {
84
- valueData = serializeWithImport(configValueSource, importStatements);
57
+ valueData = getValueSerializedWithImport(configValueSource, importStatements);
85
58
  }
86
- const definedAtFile = {
87
- filePathToShowToUser: configValueSource.definedAtFilePath.filePathToShowToUser,
88
- fileExportPathToShowToUser: configValueSource.definedAtFilePath.fileExportPathToShowToUser
89
- };
90
- return { valueData, definedAtFile };
59
+ return valueData;
91
60
  }
92
61
  function serializeConfigValue(configValueBase, valueData, configName, lines, tabspace) {
93
62
  lineAdd(`[${JSON.stringify(configName)}]: {`);
@@ -131,7 +100,7 @@ function serializeConfigValue(configValueBase, valueData, configName, lines, tab
131
100
  tabspace = tabspace.slice(2);
132
101
  }
133
102
  }
134
- function serializeWithImport(configValueSource, importStatements) {
103
+ function getValueSerializedWithImport(configValueSource, importStatements) {
135
104
  (0, utils_js_1.assert)(!configValueSource.valueIsFilePath);
136
105
  const { valueIsImportedAtRuntime, valueIsDefinedByPlusFile, definedAtFilePath } = configValueSource;
137
106
  (0, utils_js_1.assert)(valueIsImportedAtRuntime);
@@ -144,7 +113,7 @@ function serializeWithImport(configValueSource, importStatements) {
144
113
  valueAsJsCode: importName
145
114
  };
146
115
  }
147
- function serializeWithJson(value, configName, definedAtData, importStatements) {
116
+ function getValueSerializedWithJson(value, configName, definedAtData, importStatements) {
148
117
  const valueAsJsCode = valueToJson(value, configName, definedAtData, importStatements);
149
118
  return {
150
119
  type: 'js-serialized',
@@ -201,3 +170,59 @@ function logJsonSerializeError(err, configName, definedAtData) {
201
170
  (0, utils_js_1.assert)(configValueFilePathToShowToUser);
202
171
  (0, utils_js_1.assertUsage)(false, `${picocolors_1.default.cyan(configName)} defined by ${configValueFilePathToShowToUser} must be defined over a so-called "pointer import", see https://vike.dev/config#pointer-imports`);
203
172
  }
173
+ function getConfigValuesBase(pageConfig, isEnvMatch, isEager) {
174
+ const fromComputed = Object.entries(pageConfig.configValuesComputed ?? {}).map(([configName, valueInfo]) => {
175
+ if (!isEnvMatch(valueInfo.configEnv))
176
+ return 'SKIP';
177
+ // Is there a use case for overriding computed values? If yes, then configValeSources has higher precedence
178
+ if (pageConfig.configValueSources[configName])
179
+ return 'SKIP';
180
+ const configValueBase = {
181
+ type: 'computed',
182
+ definedAtData: null
183
+ };
184
+ return { configValueBase, value: valueInfo.value, configName };
185
+ });
186
+ const fromSources = Object.entries(pageConfig.configValueSources).map(([configName, sources]) => {
187
+ const configDef = pageConfig.configDefinitions[configName];
188
+ (0, utils_js_1.assert)(configDef);
189
+ if (isEager !== null && isEager !== !!configDef.eager)
190
+ return 'SKIP';
191
+ if (!configDef.cumulative) {
192
+ const source = sources[0];
193
+ (0, utils_js_1.assert)(source);
194
+ (0, utils_js_1.assert)(sources.slice(1).every((s) => s.isOverriden === true));
195
+ if (!isEnvMatch(source.configEnv))
196
+ return 'SKIP';
197
+ const definedAtFile = getDefinedAtFileSource(source);
198
+ const configValueBase = {
199
+ type: 'standard',
200
+ definedAtData: definedAtFile
201
+ };
202
+ return { configValueBase, sourceRelevant: source, configName };
203
+ }
204
+ else {
205
+ const sourcesRelevant = sources.filter((source) => !source.isOverriden && isEnvMatch(source.configEnv));
206
+ if (sourcesRelevant.length === 0)
207
+ return 'SKIP';
208
+ const definedAtData = [];
209
+ sourcesRelevant.forEach((source) => {
210
+ const definedAtFile = getDefinedAtFileSource(source);
211
+ definedAtData.push(definedAtFile);
212
+ });
213
+ const configValueBase = {
214
+ type: 'cumulative',
215
+ definedAtData
216
+ };
217
+ return { configValueBase, sourcesRelevant, configName };
218
+ }
219
+ });
220
+ return [...fromComputed, ...fromSources].filter((r) => r !== 'SKIP');
221
+ }
222
+ function getDefinedAtFileSource(source) {
223
+ const definedAtFile = {
224
+ filePathToShowToUser: source.definedAtFilePath.filePathToShowToUser,
225
+ fileExportPathToShowToUser: source.definedAtFilePath.fileExportPathToShowToUser
226
+ };
227
+ return definedAtFile;
228
+ }
@@ -5,7 +5,7 @@ const error_page_js_1 = require("../error-page.js");
5
5
  const utils_js_1 = require("./utils.js");
6
6
  const deduceRouteStringFromFilesystemPath_js_1 = require("./deduceRouteStringFromFilesystemPath.js");
7
7
  const utils_js_2 = require("../utils.js");
8
- const getConfigValue_js_1 = require("../page-configs/getConfigValue.js");
8
+ const getConfigValueRuntime_js_1 = require("../page-configs/getConfigValueRuntime.js");
9
9
  const getConfigDefinedAt_js_1 = require("../page-configs/getConfigDefinedAt.js");
10
10
  const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
11
11
  const getHook_js_1 = require("../hooks/getHook.js");
@@ -30,7 +30,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
30
30
  let pageRoute = null;
31
31
  {
32
32
  const configName = 'route';
33
- const configValue = (0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, configName);
33
+ const configValue = (0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, configName);
34
34
  if (configValue) {
35
35
  const route = configValue.value;
36
36
  (0, utils_js_1.assert)(configValue.definedAtData);
@@ -46,7 +46,7 @@ function getPageRoutes(filesystemRoots, pageFilesAll, pageConfigs, allPageIds) {
46
46
  }
47
47
  else {
48
48
  (0, utils_js_1.assert)((0, utils_js_2.isCallable)(route));
49
- if ((0, getConfigValue_js_1.getConfigValueRuntime)(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
49
+ if ((0, getConfigValueRuntime_js_1.getConfigValueRuntime)(pageConfig, 'iKnowThePerformanceRisksOfAsyncRouteFunctions', 'boolean'))
50
50
  (0, resolveRouteFunction_js_1.warnDeprecatedAllowKey)();
51
51
  pageRoute = {
52
52
  pageId,
@@ -42,3 +42,4 @@ __exportStar(require("../utils/escapeRegex.js"), exports);
42
42
  __exportStar(require("../utils/isArray.js"), exports);
43
43
  __exportStar(require("../utils/changeEnumerable.js"), exports);
44
44
  __exportStar(require("../utils/objectDefineProperty.js"), exports);
45
+ __exportStar(require("../utils/isScriptFile.js"), exports);
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = void 0;
4
4
  // Automatically updated by @brillout/release-me
5
- exports.PROJECT_VERSION = '0.4.218';
5
+ exports.PROJECT_VERSION = '0.4.219';
@@ -35,6 +35,7 @@ const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/assert.ts'
35
35
  (0, assertSingleInstance_js_1.assertSingleInstance_onAssertModuleLoad)();
36
36
  const projectTag = `[vike]`;
37
37
  const projectTagWithVersion = `[vike@${projectInfo_js_1.projectInfo.projectVersion}]`;
38
+ const bugTag = 'Bug';
38
39
  const numberOfStackTraceLinesToRemove = 2;
39
40
  function assert(condition, debugInfo) {
40
41
  if (condition)
@@ -54,7 +55,7 @@ function assert(condition, debugInfo) {
54
55
  .filter(Boolean)
55
56
  .join(' ');
56
57
  errMsg = addWhitespace(errMsg);
57
- errMsg = addPrefixAssertType(errMsg, 'Bug');
58
+ errMsg = addPrefixAssertType(errMsg, bugTag);
58
59
  errMsg = addPrefixProjctName(errMsg, true);
59
60
  const internalError = (0, createErrorWithCleanStackTrace_js_1.createErrorWithCleanStackTrace)(errMsg, numberOfStackTraceLinesToRemove);
60
61
  globalObject.onBeforeLog?.();
@@ -165,7 +166,7 @@ function getAssertErrMsg(thing) {
165
166
  const showVikeVersion = tag === projectTagWithVersion;
166
167
  const errStackPrefix = `Error: ${tag}`;
167
168
  if (errStack?.startsWith(errStackPrefix)) {
168
- if (globalObject.showStackTraceList.has(thing)) {
169
+ if (globalObject.showStackTraceList.has(thing) || isBug(thing)) {
169
170
  const assertMsg = errStack.slice(errStackPrefix.length);
170
171
  return { assertMsg, showVikeVersion };
171
172
  }
@@ -184,7 +185,7 @@ function overwriteAssertProductionLogger(logger) {
184
185
  globalObject.logger = logger;
185
186
  }
186
187
  function isBug(err) {
187
- return !String(err).includes('[Bug]');
188
+ return String(err).includes(`[${bugTag}]`);
188
189
  }
189
190
  function setAlwaysShowStackTrace() {
190
191
  globalObject.alwaysShowStackTrace = true;
@@ -33,16 +33,19 @@ function onSetupRuntime() {
33
33
  debug('assertSetup()', new Error().stack);
34
34
  if (isTest())
35
35
  return;
36
+ assertNodeEnvIsNotUndefinedString();
36
37
  if (!isViteLoaded()) {
37
38
  // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
38
- (0, assert_js_1.assertWarning)(!isNodeEnvDev(), `The ${getEnvDescription()}, which seems contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
39
+ (0, assert_js_1.assertWarning)(!isNodeEnvDev(), `The ${getEnvDescription()}, which is contradictory because the environment seems to be a production environment (Vite isn't loaded), see https://vike.dev/NODE_ENV`, { onlyOnce: true });
39
40
  (0, assert_js_1.assertUsage)(!setup.vikeVitePlugin, "Loading Vike's Vite plugin (the vike/plugin module) is prohibited in production.");
40
41
  // This assert() one of the main goal of this file: it ensures assertIsNotProductionRuntime()
41
42
  (0, assert_js_1.assert)(!setup.shouldNotBeProduction);
42
43
  }
43
44
  else {
44
- // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
45
- (0, assert_js_1.assertWarning)(isNodeEnvDev() || setup.vitePreviewServer || setup.isPrerendering, `The ${getEnvDescription()}, but Vite is loaded which is prohibited in production, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
45
+ if (!setup.vitePreviewServer && !setup.isPrerendering) {
46
+ // TODO: make it assertUsage() again once https://github.com/vikejs/vike/issues/1528 is implemented.
47
+ (0, assert_js_1.assertWarning)(isNodeEnvDev(), `The ${getEnvDescription()}, but Vite is loaded which is prohibited in production, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
48
+ }
46
49
  // These two assert() calls aren't that interesting
47
50
  (0, assert_js_1.assert)(setup.vikeVitePlugin);
48
51
  (0, assert_js_1.assert)(setup.shouldNotBeProduction);
@@ -62,7 +65,7 @@ function onSetupBuild() {
62
65
  }
63
66
  function onSetupPrerender() {
64
67
  markSetup_isPrerendering();
65
- if (getNodeEnvValue())
68
+ if (getNodeEnv())
66
69
  assertUsageNodeEnvIsNotDev('pre-rendering');
67
70
  setNodeEnvProduction();
68
71
  }
@@ -71,7 +74,7 @@ function isViteLoaded() {
71
74
  return setup.viteDevServer || setup.vitePreviewServer || setup.isViteDev !== undefined;
72
75
  }
73
76
  function isTest() {
74
- return (0, isVitest_js_1.isVitest)() || getNodeEnvValue() === 'test';
77
+ return (0, isVitest_js_1.isVitest)() || isNodeEnv('test');
75
78
  }
76
79
  // Called by Vite hook configureServer()
77
80
  function markSetup_viteDevServer() {
@@ -110,26 +113,40 @@ function assertUsageNodeEnvIsNotDev(operation) {
110
113
  (0, assert_js_1.assertWarning)(false, `The ${getEnvDescription()} which is forbidden upon ${operation}, see https://vike.dev/NODE_ENV`, { onlyOnce: true });
111
114
  }
112
115
  function getEnvDescription() {
113
- const nodeEnv = getNodeEnvValue();
114
- const isDev = isNodeEnvDev();
115
- const envType = `${(isDev ? 'development' : 'production')} environment`;
116
- const nodeEnvDesc = `environment is set to be a ${picocolors_1.default.bold(envType)} by ${picocolors_1.default.cyan(`process.env.NODE_ENV===${JSON.stringify(nodeEnv)}`)}`;
116
+ const envType = `${(isNodeEnvDev() ? 'development' : 'production')} environment`;
117
+ const nodeEnvDesc = `environment is set to be a ${picocolors_1.default.bold(envType)} by ${picocolors_1.default.cyan(`process.env.NODE_ENV===${JSON.stringify(getNodeEnv())}`)}`;
117
118
  return nodeEnvDesc;
118
119
  }
120
+ // For example, Wrangler bug replaces `process.env.NODE_ENV` with `"undefined"`
121
+ // https://github.com/cloudflare/workers-sdk/issues/7886
122
+ function assertNodeEnvIsNotUndefinedString() {
123
+ const nodeEnv = getNodeEnv();
124
+ (0, assert_js_1.assertWarning)(nodeEnv !== 'undefined', `${picocolors_1.default.cyan('process.env.NODE_ENV==="undefined"')} which is unexpected: ${picocolors_1.default.cyan('process.env.NODE_ENV')} can be set to the *value* ${picocolors_1.default.cyan('undefined')} (i.e. ${picocolors_1.default.cyan('process.env.NODE_ENV===undefined')}) but it shouldn't be set to the *string* ${picocolors_1.default.cyan('"undefined"')} ${picocolors_1.default.underline('https://vike.dev/NODE_ENV')}`, { onlyOnce: true });
125
+ }
119
126
  function isNodeEnvDev() {
120
- const nodeEnv = getNodeEnvValue();
127
+ const nodeEnv = getNodeEnv();
121
128
  // That's quite strict, let's see if some user complains
122
- return !nodeEnv || ['development', 'dev'].includes(nodeEnv);
129
+ return nodeEnv === undefined || isNodeEnv(['development', 'dev', '']);
130
+ }
131
+ function isNodeEnv(value) {
132
+ const values = Array.isArray(value) ? value : [value];
133
+ const nodeEnv = getNodeEnv();
134
+ return nodeEnv !== undefined && values.includes(nodeEnv.toLowerCase());
123
135
  }
124
- function getNodeEnvValue() {
125
- if (typeof process === 'undefined')
126
- return null;
127
- return process.env.NODE_ENV?.toLowerCase();
136
+ function getNodeEnv() {
137
+ let val;
138
+ try {
139
+ val = process.env.NODE_ENV;
140
+ }
141
+ catch {
142
+ return undefined;
143
+ }
144
+ return val;
128
145
  }
129
146
  function setNodeEnvProduction() {
130
147
  // The statement `process.env['NODE_ENV'] = 'production'` chokes webpack v4
131
148
  const proc = process;
132
149
  const { env } = proc;
133
150
  env.NODE_ENV = 'production';
134
- (0, assert_js_1.assert)(getNodeEnvValue() === 'production');
151
+ (0, assert_js_1.assert)(isNodeEnv('production'));
135
152
  }
@@ -21,6 +21,7 @@ const flags = [
21
21
  'vike:extractAssets',
22
22
  'vike:extractExportNames',
23
23
  'vike:glob',
24
+ 'vike:globalContext',
24
25
  'vike:log',
25
26
  'vike:optimizeDeps',
26
27
  'vike:outDir',
@@ -33,7 +34,7 @@ const flags = [
33
34
  'vike:esbuild-resolve'
34
35
  ];
35
36
  const flagRegex = /\bvike:[a-zA-Z-]+/g;
36
- assertDEBUG();
37
+ assertFlagsActivated();
37
38
  function createDebugger(flag, optionsGlobal) {
38
39
  (0, checkType_js_1.checkType)(flag);
39
40
  (0, assert_js_1.assert)(flags.includes(flag));
@@ -76,8 +77,8 @@ function debug_(flag, options, ...msgs) {
76
77
  function isDebugActivated(flag) {
77
78
  (0, checkType_js_1.checkType)(flag);
78
79
  (0, assert_js_1.assert)(flags.includes(flag));
79
- const DEBUG = getDEBUG();
80
- const isActivated = DEBUG?.includes(flag) ?? false;
80
+ const flagsActivated = getFlagsActivated();
81
+ const isActivated = flagsActivated.includes(flag);
81
82
  return isActivated;
82
83
  }
83
84
  function formatMsg(info, options, padding, position) {
@@ -140,13 +141,17 @@ function replaceFunctionSerializer(_key, value) {
140
141
  }
141
142
  return value;
142
143
  }
143
- function assertDEBUG() {
144
- const DEBUG = getDEBUG() ?? '';
145
- const flagsActivated = DEBUG.match(flagRegex) ?? [];
144
+ function assertFlagsActivated() {
145
+ const flagsActivated = getFlagsActivated();
146
146
  flagsActivated.forEach((flag) => {
147
147
  (0, assert_js_1.assertUsage)(flags.includes(flag), `Unknown DEBUG flag ${picocolors_1.default.cyan(flag)}. Valid flags:\n${flags.map((f) => ` ${picocolors_1.default.cyan(f)}`).join('\n')}`);
148
148
  });
149
149
  }
150
+ function getFlagsActivated() {
151
+ const DEBUG = getDEBUG() ?? '';
152
+ const flagsActivated = DEBUG.match(flagRegex) ?? [];
153
+ return flagsActivated;
154
+ }
150
155
  function getDEBUG() {
151
156
  let DEBUG;
152
157
  // - `process` can be undefined in edge workers
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGlobalObject = getGlobalObject;
4
4
  exports.assertIsSingleModuleInstance = assertIsSingleModuleInstance;
5
5
  const assert_js_1 = require("./assert.js");
6
- const projectInfo_js_1 = require("./projectInfo.js");
7
- const projectKey = `_${projectInfo_js_1.projectInfo.projectName.toLowerCase()}`;
8
6
  /** Share information across module instances. */
9
7
  function getGlobalObject(
10
8
  // We use the filename (or file path) as key. There should be only one getGlobalObject() usage per file. Thus the key should be unique, assuming the filename (or file path) is unique.
@@ -21,6 +19,7 @@ key) {
21
19
  (0, assert_js_1.assert)(!(key in globalObjects));
22
20
  }
23
21
  function getGlobalObjects() {
22
+ const projectKey = '_vike';
24
23
  // @ts-ignore
25
24
  const globalObjects = (globalThis[projectKey] = globalThis[projectKey] || {});
26
25
  return globalObjects;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.objectReplace = objectReplace;
4
+ function objectReplace(obj, objNew, except) {
5
+ Object.keys(obj)
6
+ .filter((key) => !except?.includes(key))
7
+ .forEach((key) => delete obj[key]);
8
+ Object.assign(obj, objNew);
9
+ }