vike 0.4.237-commit-8749e81 → 0.4.237-commit-e549c30

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 (78) hide show
  1. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  2. package/dist/cjs/node/runtime/renderPage.js +12 -7
  3. package/dist/cjs/node/runtime/utils.js +1 -1
  4. package/dist/cjs/node/vite/plugins/pluginBuild/handleAssetsManifest.js +12 -11
  5. package/dist/cjs/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +8 -7
  6. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildConfig.js +5 -5
  7. package/dist/cjs/node/vite/plugins/pluginBuild/pluginBuildEntry.js +1 -1
  8. package/dist/cjs/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
  9. package/dist/cjs/node/vite/plugins/pluginBuild/pluginModuleBanner.js +2 -2
  10. package/dist/cjs/node/vite/plugins/pluginDev/determineFsAllowList.js +2 -2
  11. package/dist/cjs/node/vite/plugins/pluginEnvVars.js +2 -2
  12. package/dist/cjs/node/vite/plugins/pluginExtractAssets.js +3 -3
  13. package/dist/cjs/node/vite/plugins/pluginExtractExportNames.js +2 -2
  14. package/dist/cjs/node/vite/plugins/pluginNonRunnableDev.js +1 -1
  15. package/dist/cjs/node/vite/plugins/pluginReplaceConstants.js +2 -2
  16. package/dist/cjs/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +2 -2
  17. package/dist/cjs/node/vite/shared/getClientEntrySrcDev.js +1 -1
  18. package/dist/cjs/node/vite/shared/getHttpRequestAsyncStore.js +8 -6
  19. package/dist/cjs/node/vite/shared/getOutDirs.js +9 -6
  20. package/dist/cjs/node/vite/shared/{isViteServerBuild.js → isViteServerSide.js} +15 -15
  21. package/dist/cjs/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +6 -4
  22. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +5 -4
  23. package/dist/cjs/node/vite/shared/resolveVikeConfigInternal.js +42 -44
  24. package/dist/cjs/types/VikeGlobalInternal.js +2 -0
  25. package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
  26. package/dist/cjs/utils/assertVersion.js +2 -0
  27. package/dist/cjs/utils/debug.js +4 -4
  28. package/dist/cjs/utils/getGlobalObject.js +8 -15
  29. package/dist/cjs/utils/isScriptFile.js +1 -1
  30. package/dist/cjs/utils/path.js +5 -5
  31. package/dist/cjs/utils/requireResolve.js +13 -12
  32. package/dist/esm/client/runtime-client-routing/renderPageClientSide.d.ts +2 -3
  33. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
  34. package/dist/esm/node/runtime/renderPage.d.ts +7 -4
  35. package/dist/esm/node/runtime/renderPage.js +12 -7
  36. package/dist/esm/node/runtime/utils.d.ts +1 -1
  37. package/dist/esm/node/runtime/utils.js +1 -1
  38. package/dist/esm/node/vite/plugins/pluginBuild/handleAssetsManifest.js +13 -12
  39. package/dist/esm/node/vite/plugins/pluginBuild/pluginAutoFullBuild.js +9 -8
  40. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildConfig.js +6 -6
  41. package/dist/esm/node/vite/plugins/pluginBuild/pluginBuildEntry.js +2 -2
  42. package/dist/esm/node/vite/plugins/pluginBuild/pluginDistPackageJsonFile.js +2 -2
  43. package/dist/esm/node/vite/plugins/pluginBuild/pluginModuleBanner.js +2 -2
  44. package/dist/esm/node/vite/plugins/pluginDev/determineFsAllowList.js +3 -3
  45. package/dist/esm/node/vite/plugins/pluginEnvVars.js +2 -2
  46. package/dist/esm/node/vite/plugins/pluginExtractAssets.js +3 -3
  47. package/dist/esm/node/vite/plugins/pluginExtractExportNames.js +2 -2
  48. package/dist/esm/node/vite/plugins/pluginNonRunnableDev.js +2 -2
  49. package/dist/esm/node/vite/plugins/pluginReplaceConstants.js +2 -2
  50. package/dist/esm/node/vite/plugins/pluginVirtualFiles/generateVirtualFileGlobalEntryWithOldDesign.js +2 -2
  51. package/dist/esm/node/vite/shared/getClientEntrySrcDev.js +2 -2
  52. package/dist/esm/node/vite/shared/getHttpRequestAsyncStore.js +9 -7
  53. package/dist/esm/node/vite/shared/getOutDirs.d.ts +1 -1
  54. package/dist/esm/node/vite/shared/getOutDirs.js +9 -6
  55. package/dist/esm/node/vite/shared/isViteServerSide.d.ts +18 -0
  56. package/dist/esm/node/vite/shared/{isViteServerBuild.js → isViteServerSide.js} +15 -17
  57. package/dist/esm/node/vite/shared/loggerVite/removeSuperfluousViteLog.js +7 -5
  58. package/dist/esm/node/vite/shared/resolveVikeConfigInternal/crawlPlusFiles.js +6 -5
  59. package/dist/esm/node/vite/shared/resolveVikeConfigInternal.js +43 -45
  60. package/dist/esm/types/VikeGlobalInternal.d.ts +4 -0
  61. package/dist/esm/types/VikeGlobalInternal.js +1 -0
  62. package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
  63. package/dist/esm/utils/PROJECT_VERSION.js +1 -1
  64. package/dist/esm/utils/assertVersion.js +2 -0
  65. package/dist/esm/utils/debug.js +3 -3
  66. package/dist/esm/utils/getGlobalObject.d.ts +6 -5
  67. package/dist/esm/utils/getGlobalObject.js +8 -15
  68. package/dist/esm/utils/isScriptFile.d.ts +1 -1
  69. package/dist/esm/utils/isScriptFile.js +1 -1
  70. package/dist/esm/utils/path.d.ts +2 -0
  71. package/dist/esm/utils/path.js +5 -5
  72. package/dist/esm/utils/requireResolve.d.ts +4 -4
  73. package/dist/esm/utils/requireResolve.js +13 -12
  74. package/package.json +1 -1
  75. package/dist/esm/node/vite/shared/isViteServerBuild.d.ts +0 -18
  76. /package/dist/cjs/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
  77. /package/dist/esm/utils/{getTerminWidth.d.ts → getTerminalWidth.d.ts} +0 -0
  78. /package/dist/esm/utils/{getTerminWidth.js → getTerminalWidth.js} +0 -0
@@ -35,21 +35,19 @@ const resolvePrerenderConfig_js_1 = require("../../prerender/resolvePrerenderCon
35
35
  const getProxyForPublicUsage_js_1 = require("../../../shared/getProxyForPublicUsage.js");
36
36
  const getVikeConfigError_js_1 = require("../../shared/getVikeConfigError.js");
37
37
  (0, utils_js_1.assertIsNotProductionRuntime)();
38
- // We can simply use global variables since Vike's config is:
39
- // - global
40
- // - independent of Vite (therefore we don't need to tie Vike's config with Vite's `config` object)
41
- (0, utils_js_1.assertIsSingleModuleInstance)('v1-design/getVikeConfig.ts');
42
- let restartVite = false;
43
- let vikeConfigHasBuildError = null;
44
- let isV1Design_ = null;
45
- let vikeConfigPromise = null;
46
- // TO-DO/next-major-release: remove
47
- let vikeConfigSync = null;
48
- let vikeConfigCtx = null; // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
49
- let prerenderContext;
38
+ const globalObject = (0, utils_js_1.getGlobalObject)('vite/shared/resolveVikeConfigInternal.ts', {
39
+ restartVite: false,
40
+ vikeConfigHasBuildError: null,
41
+ isV1Design_: null,
42
+ vikeConfigPromise: null,
43
+ // TO-DO/next-major-release: remove
44
+ vikeConfigSync: null,
45
+ vikeConfigCtx: null, // Information provided by Vite's `config` and Vike's CLI. We could, if we want or need to, completely remove the dependency on Vite.
46
+ prerenderContext: null,
47
+ });
50
48
  function reloadVikeConfig() {
51
- (0, utils_js_1.assert)(vikeConfigCtx);
52
- const { userRootDir, vikeVitePluginOptions } = vikeConfigCtx;
49
+ (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
50
+ const { userRootDir, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
53
51
  (0, utils_js_1.assert)(vikeVitePluginOptions);
54
52
  resolveVikeConfigInternal_withErrorHandling(userRootDir, true, vikeVitePluginOptions);
55
53
  }
@@ -57,15 +55,15 @@ async function getVikeConfigInternal(
57
55
  // I don't remember the logic behind it — neither why we restart Vite's dev server, nor why we sometimes don't.
58
56
  // TO-DO/eventually: re-think all that. Some + settings are expected to influence Vite's config (restarting Vite's dev server is needed) while some don't.
59
57
  doNotRestartViteOnError = false) {
60
- (0, utils_js_1.assert)(vikeConfigCtx);
61
- const { userRootDir, isDev, vikeVitePluginOptions } = vikeConfigCtx;
58
+ (0, utils_js_1.assert)(globalObject.vikeConfigCtx);
59
+ const { userRootDir, isDev, vikeVitePluginOptions } = globalObject.vikeConfigCtx;
62
60
  const vikeConfig = await getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
63
61
  return vikeConfig;
64
62
  }
65
63
  // TO-DO/next-major-release: remove
66
64
  function getVikeConfigInternalSync() {
67
- (0, utils_js_1.assert)(vikeConfigSync);
68
- return vikeConfigSync;
65
+ (0, utils_js_1.assert)(globalObject.vikeConfigSync);
66
+ return globalObject.vikeConfigSync;
69
67
  }
70
68
  // TO-DO/eventually: this maybe(/probably?) isn't safe against race conditions upon file changes in development, thus:
71
69
  // - Like getGlobalContext() and getGlobalContextSync() — make getVikeConfig() async and provide a getVikeConfigSync() while discourage using it
@@ -86,29 +84,29 @@ config) {
86
84
  }
87
85
  function setVikeConfigContext(vikeConfigCtx_) {
88
86
  // If the user changes Vite's `config.root` => Vite completely reloads itself => setVikeConfigContext() is called again
89
- vikeConfigCtx = vikeConfigCtx_;
87
+ globalObject.vikeConfigCtx = vikeConfigCtx_;
90
88
  }
91
89
  async function getOrResolveVikeConfig(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
92
- if (!vikeConfigPromise) {
90
+ if (!globalObject.vikeConfigPromise) {
93
91
  resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError);
94
92
  }
95
- (0, utils_js_1.assert)(vikeConfigPromise);
96
- const vikeConfig = await vikeConfigPromise;
93
+ (0, utils_js_1.assert)(globalObject.vikeConfigPromise);
94
+ const vikeConfig = await globalObject.vikeConfigPromise;
97
95
  return vikeConfig;
98
96
  }
99
97
  async function getVikeConfigInternalOptional() {
100
- if (!vikeConfigPromise)
98
+ if (!globalObject.vikeConfigPromise)
101
99
  return null;
102
- const vikeConfig = await vikeConfigPromise;
100
+ const vikeConfig = await globalObject.vikeConfigPromise;
103
101
  return vikeConfig;
104
102
  }
105
103
  function isV1Design() {
106
- (0, utils_js_1.assert)(typeof isV1Design_ === 'boolean');
107
- return isV1Design_;
104
+ (0, utils_js_1.assert)(typeof globalObject.isV1Design_ === 'boolean');
105
+ return globalObject.isV1Design_;
108
106
  }
109
107
  async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, vikeVitePluginOptions, doNotRestartViteOnError) {
110
108
  const { promise, resolve, reject } = (0, utils_js_1.genPromise)();
111
- vikeConfigPromise = promise;
109
+ globalObject.vikeConfigPromise = promise;
112
110
  const esbuildCache = {
113
111
  transpileCache: {},
114
112
  vikeConfigDependencies: new Set(),
@@ -125,10 +123,10 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
125
123
  }
126
124
  // There is a newer call — let the new call supersede the old one.
127
125
  // We deliberately swallow the intermetidate state (including any potential error) — it's now outdated and has existed only for a very short period of time.
128
- if (vikeConfigPromise !== promise) {
126
+ if (globalObject.vikeConfigPromise !== promise) {
129
127
  // vikeConfigPromise.then(resolve).catch(reject)
130
128
  try {
131
- resolve(await vikeConfigPromise);
129
+ resolve(await globalObject.vikeConfigPromise);
132
130
  }
133
131
  catch (err) {
134
132
  reject(err);
@@ -138,13 +136,13 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
138
136
  if (!hasError) {
139
137
  (0, utils_js_1.assert)(ret);
140
138
  (0, utils_js_1.assert)(err === undefined);
141
- const hadError = vikeConfigHasBuildError;
142
- vikeConfigHasBuildError = false;
139
+ const hadError = globalObject.vikeConfigHasBuildError;
140
+ globalObject.vikeConfigHasBuildError = false;
143
141
  (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: false });
144
142
  if (hadError) {
145
143
  (0, loggerNotProd_js_1.logConfigErrorRecover)();
146
- if (restartVite) {
147
- restartVite = false;
144
+ if (globalObject.restartVite) {
145
+ globalObject.restartVite = false;
148
146
  restartViteDevServer();
149
147
  }
150
148
  }
@@ -153,10 +151,10 @@ async function resolveVikeConfigInternal_withErrorHandling(userRootDir, isDev, v
153
151
  else {
154
152
  (0, utils_js_1.assert)(ret === undefined);
155
153
  (0, utils_js_1.assert)(err);
156
- vikeConfigHasBuildError = true;
154
+ globalObject.vikeConfigHasBuildError = true;
157
155
  (0, getVikeConfigError_js_1.setVikeConfigError)({ errorBuild: { err } });
158
156
  if (!doNotRestartViteOnError)
159
- restartVite = true;
157
+ globalObject.restartVite = true;
160
158
  if (!isDev) {
161
159
  reject(err);
162
160
  }
@@ -170,8 +168,8 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
170
168
  const plusFilesAll = await (0, getPlusFilesAll_js_1.getPlusFilesAll)(userRootDir, esbuildCache);
171
169
  const configDefinitionsResolved = await resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache);
172
170
  const { pageConfigGlobal, pageConfigs } = getPageConfigsBuildTime(configDefinitionsResolved, plusFilesAll, userRootDir);
173
- if (!isV1Design_)
174
- isV1Design_ = pageConfigs.length > 0;
171
+ if (!globalObject.isV1Design_)
172
+ globalObject.isV1Design_ = pageConfigs.length > 0;
175
173
  // Backwards compatibility for vike(options) in vite.config.js
176
174
  temp_interopVikeVitePlugin(pageConfigGlobal, vikeVitePluginOptions, userRootDir);
177
175
  setCliAndApiOptions(pageConfigGlobal, configDefinitionsResolved);
@@ -197,7 +195,7 @@ async function resolveVikeConfigInternal(userRootDir, vikeVitePluginOptions, esb
197
195
  prerenderContext,
198
196
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
199
197
  };
200
- vikeConfigSync = vikeConfig;
198
+ globalObject.vikeConfigSync = vikeConfig;
201
199
  return vikeConfig;
202
200
  }
203
201
  async function resolveConfigDefinitions(plusFilesAll, userRootDir, esbuildCache) {
@@ -1102,7 +1100,7 @@ function isGlobalLocation(locationId, plusFilesAll) {
1102
1100
  }
1103
1101
  function resolvePrerenderContext(vikeConfig) {
1104
1102
  const { isPrerenderingEnabled, isPrerenderingEnabledForAllPages } = (0, resolvePrerenderConfig_js_1.resolvePrerenderConfigGlobal)(vikeConfig);
1105
- prerenderContext ?? (prerenderContext = {
1103
+ globalObject.prerenderContext ?? (globalObject.prerenderContext = {
1106
1104
  isPrerenderingEnabled: false,
1107
1105
  isPrerenderingEnabledForAllPages: false,
1108
1106
  // Set at runPrerender()
@@ -1110,9 +1108,9 @@ function resolvePrerenderContext(vikeConfig) {
1110
1108
  // Set at runPrerender()
1111
1109
  pageContexts: null,
1112
1110
  });
1113
- prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
1114
- prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
1115
- return prerenderContext;
1111
+ globalObject.prerenderContext.isPrerenderingEnabled = isPrerenderingEnabled;
1112
+ globalObject.prerenderContext.isPrerenderingEnabledForAllPages = isPrerenderingEnabledForAllPages;
1113
+ return globalObject.prerenderContext;
1116
1114
  }
1117
1115
  function restartViteDevServer() {
1118
1116
  const viteDevServer = (0, globalContext_js_1.getViteDevServer)();
@@ -1149,7 +1147,7 @@ function getVikeConfigDummy(esbuildCache) {
1149
1147
  prerenderContext: prerenderContextDummy,
1150
1148
  _vikeConfigDependencies: esbuildCache.vikeConfigDependencies,
1151
1149
  };
1152
- vikeConfigSync = vikeConfigDummy;
1153
- isV1Design_ = true;
1150
+ globalObject.vikeConfigSync = vikeConfigDummy;
1151
+ globalObject.isV1Design_ = true;
1154
1152
  return vikeConfigDummy;
1155
1153
  }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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.237-commit-8749e81';
5
+ exports.PROJECT_VERSION = '0.4.237-commit-e549c30';
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertVersion = assertVersion;
4
4
  exports.isVersionOrAbove = isVersionOrAbove;
5
5
  const assert_js_1 = require("./assert.js");
6
+ const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
7
+ (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
6
8
  function assertVersion(dependencyName, versionActual, versionExpected) {
7
9
  (0, assert_js_1.assert)(versionActual);
8
10
  (0, assert_js_1.assert)(versionExpected);
@@ -5,17 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createDebugger = createDebugger;
7
7
  exports.isDebugActivated = isDebugActivated;
8
- const isBrowser_js_1 = require("./isBrowser.js");
9
8
  const isCallable_js_1 = require("./isCallable.js");
10
9
  const objectAssign_js_1 = require("./objectAssign.js");
11
10
  const assert_js_1 = require("./assert.js");
12
11
  const checkType_js_1 = require("./checkType.js");
13
- const getTerminWidth_js_1 = require("./getTerminWidth.js");
12
+ const getTerminalWidth_js_1 = require("./getTerminalWidth.js");
14
13
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
15
14
  const isArray_js_1 = require("./isArray.js");
16
15
  const isObject_js_1 = require("./isObject.js");
17
16
  const debug_js_1 = require("../shared/route/debug.js");
18
- (0, assert_js_1.assert)(!(0, isBrowser_js_1.isBrowser)());
17
+ const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
18
+ (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
19
19
  (0, debug_js_1.setCreateDebugger)(createDebugger); // for isomorphic code
20
20
  const flags = [
21
21
  'vike:crawl',
@@ -117,7 +117,7 @@ function formatMsg(info, options, padding, position) {
117
117
  return str;
118
118
  }
119
119
  function pad(str, padding) {
120
- const terminalWidth = (0, getTerminWidth_js_1.getTerminalWidth)();
120
+ const terminalWidth = (0, getTerminalWidth_js_1.getTerminalWidth)();
121
121
  const lines = [];
122
122
  str.split('\n').forEach((line) => {
123
123
  if (!terminalWidth) {
@@ -1,22 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getGlobalObject = getGlobalObject;
4
- exports.assertIsSingleModuleInstance = assertIsSingleModuleInstance;
5
- const assert_js_1 = require("./assert.js");
6
4
  /** Share information across module instances. */
7
- function getGlobalObject(key, defaultValue) {
8
- const globalObjects = getGlobalObjects();
9
- const globalObject = (globalObjects[key] = globalObjects[key] || defaultValue);
5
+ function getGlobalObject(moduleId, defaultValue) {
6
+ const globals = getGlobals();
7
+ const globalObject = (globals[moduleId] ?? (globals[moduleId] = defaultValue));
10
8
  return globalObject;
11
9
  }
12
- /** Assert that the module is instantiated only once. */
13
- function assertIsSingleModuleInstance(key) {
14
- const globalObjects = getGlobalObjects();
15
- (0, assert_js_1.assert)(!(key in globalObjects));
16
- }
17
- function getGlobalObjects() {
18
- const projectKey = '_vike';
19
- // @ts-ignore
20
- const globalObjects = (globalThis[projectKey] = globalThis[projectKey] || {});
21
- return globalObjects;
10
+ function getGlobals() {
11
+ var _a;
12
+ globalThis._vike ?? (globalThis._vike = {});
13
+ (_a = globalThis._vike).globals ?? (_a.globals = {});
14
+ return globalThis._vike.globals;
22
15
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scriptFileExtensionList = exports.scriptFileExtensionPattern = void 0;
3
+ exports.scriptFileExtensionPattern = exports.scriptFileExtensionList = void 0;
4
4
  exports.isScriptFile = isScriptFile;
5
5
  exports.isPlainScriptFile = isPlainScriptFile;
6
6
  exports.isTemplateFile = isTemplateFile;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pathJoin = pathJoin;
4
4
  exports.pathIsRelative = pathIsRelative;
5
+ exports.pathIsAbsolute = pathIsAbsolute;
5
6
  exports.toPosixPath = toPosixPath;
6
7
  exports.assertPosixPath = assertPosixPath;
7
8
  // Utilities for handling file paths.
@@ -22,12 +23,11 @@ function pathJoin(path1, path2) {
22
23
  joined = '/' + joined;
23
24
  return joined;
24
25
  }
25
- /* https://github.com/brillout/telefunc/blob/0fd44322acbd07857ae29361ba7c998607f17dd5/telefunc/utils/path-shim.ts#L17-L21
26
- const IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/
27
- function pathIsAbsolute(filePath: string) {
28
- return IS_ABSOLUTE_RE.test(filePath)
26
+ // https://github.com/brillout/telefunc/blob/0fd44322acbd07857ae29361ba7c998607f17dd5/telefunc/utils/path-shim.ts#L17-L21
27
+ const IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
28
+ function pathIsAbsolute(filePath) {
29
+ return IS_ABSOLUTE_RE.test(filePath);
29
30
  }
30
- //*/
31
31
  /**********************/
32
32
  /****** UTILS *********/
33
33
  /**********************/
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.requireResolveOptional = requireResolveOptional;
7
7
  exports.requireResolveOptionalDir = requireResolveOptionalDir;
8
8
  exports.requireResolveNpmPackage = requireResolveNpmPackage;
9
- exports.requireResolveVikeDistFile = requireResolveVikeDistFile;
10
- exports.getVikeNodeModulesRoot = getVikeNodeModulesRoot;
9
+ exports.requireResolveDistFile = requireResolveDistFile;
10
+ exports.getPackageNodeModulesDirectory = getPackageNodeModulesDirectory;
11
11
  const assert_js_1 = require("./assert.js");
12
12
  const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
13
13
  const assertSetup_js_1 = require("./assertSetup.js");
@@ -109,11 +109,11 @@ function requireResolveNpmPackage({ importPathNpmPackage, userRootDir, }) {
109
109
  throw res.err;
110
110
  return res.importPathResolvedFilePath;
111
111
  }
112
- function requireResolveVikeDistFile(vikeDistFile) {
113
- const vikeNodeModulesRoot = getVikeNodeModulesRoot();
114
- (0, path_js_1.assertPosixPath)(vikeNodeModulesRoot);
115
- (0, path_js_1.assertPosixPath)(vikeDistFile);
116
- const importPathResolvedFilePath = makeNodeFriendly(node_path_1.default.posix.join(vikeNodeModulesRoot, vikeDistFile));
112
+ function requireResolveDistFile(distFile) {
113
+ const packageNodeModulesDirectory = getPackageNodeModulesDirectory();
114
+ (0, path_js_1.assertPosixPath)(packageNodeModulesDirectory);
115
+ (0, path_js_1.assertPosixPath)(distFile);
116
+ const importPathResolvedFilePath = makeNodeFriendly(node_path_1.default.posix.join(packageNodeModulesDirectory, distFile));
117
117
  // Double check
118
118
  {
119
119
  const res = requireResolve_(importPathResolvedFilePath,
@@ -171,11 +171,12 @@ function addFileExtensionsToRequireResolve(require_) {
171
171
  }
172
172
  });
173
173
  }
174
- function getVikeNodeModulesRoot() {
175
- // [RELATIVE_PATH_FROM_DIST] Current file: vike/dist/esm/utils/requireResolve.js
176
- (0, assert_js_1.assert)(importMetaUrl.includes('/dist/esm/') || importMetaUrl.includes('/dist/cjs/'));
177
- const vikeNodeModulesRoot = node_path_1.default.posix.join(removeFilePrefix(importMetaUrl), '../../../../');
178
- return vikeNodeModulesRoot;
174
+ function getPackageNodeModulesDirectory() {
175
+ // [RELATIVE_PATH_FROM_DIST] Current file: node_modules/${packageName}/dist/esm/utils/requireResolve.js
176
+ (0, assert_js_1.assert)(importMetaUrl.includes('/dist/esm/utils/') || importMetaUrl.includes('/dist/cjs/utils/'));
177
+ const packageNodeModulesDirectory = node_path_1.default.posix.join(removeFilePrefix(node_path_1.default.dirname(importMetaUrl)), '../../../');
178
+ // Return `node_modules/${packageName}/`
179
+ return packageNodeModulesDirectory;
179
180
  }
180
181
  function getFakeImporterFile(dirPath) {
181
182
  (0, path_js_1.assertPosixPath)(dirPath);
@@ -8,6 +8,7 @@ import { type PageContextFromRewrite } from '../../shared/route/abort.js';
8
8
  import { type ScrollTarget } from './setScrollPosition.js';
9
9
  import type { VikeConfigPublicPageLazyLoaded } from '../../shared/getPageFiles.js';
10
10
  import type { PageContextClient } from '../../types/PageContext.js';
11
+ import type { VikeGlobalInternal } from '../../types/VikeGlobalInternal.js';
11
12
  declare const firstRenderStartPromise: Promise<void>;
12
13
  type PageContextRouted = {
13
14
  pageId: string;
@@ -156,9 +157,7 @@ declare function getPageContextBegin(isForErrorPage: boolean, { urlOriginal, isB
156
157
  }) | null;
157
158
  }>;
158
159
  declare global {
159
- var _vike: {
160
- fullyRenderedUrl?: string;
161
- } | undefined;
160
+ var _vike: VikeGlobalInternal;
162
161
  }
163
162
  declare function disableClientRouting(err: unknown, log: boolean): void;
164
163
  declare function getRenderCount(): number;
@@ -1,4 +1,3 @@
1
- import { isFontFallback } from '../../renderPage/isFontFallback.js';
2
1
  export { getHtmlTags };
3
2
  import { assert, assertWarning, assertUsage, isObject, freezePartial } from '../../utils.js';
4
3
  import { getGlobalContextClientSerialized, getPageContextClientSerialized, } from '../serializeContext.js';
@@ -10,6 +9,7 @@ import { getConfigValueRuntime } from '../../../../shared/page-configs/getConfig
10
9
  import pc from '@brillout/picocolors';
11
10
  import { getConfigDefinedAt } from '../../../../shared/page-configs/getConfigDefinedAt.js';
12
11
  import { htmlElementId_globalContext, htmlElementId_pageContext } from '../../../../shared/htmlElementIds.js';
12
+ import { isFontFallback } from '../../renderPage/isFontFallback.js';
13
13
  const stamp = '__injectFilterEntry';
14
14
  async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, isStream) {
15
15
  assert([true, false].includes(pageContext._isHtmlOnly));
@@ -6,6 +6,12 @@ import { type GlobalContextServerInternal } from './globalContext.js';
6
6
  import { type HttpResponse } from './renderPage/createHttpResponse.js';
7
7
  import type { PageContextServer } from '../../types/index.js';
8
8
  import type { PageContextInternalServer } from '../../types/PageContext.js';
9
+ declare const globalObject: {
10
+ httpRequestsCount: number;
11
+ asyncHookWrapper: <PageContext>(_httpRequestId: number, ret: () => Promise<PageContext>) => Promise<{
12
+ pageContextReturn: Awaited<PageContext>;
13
+ }>;
14
+ };
9
15
  type PageContextInit = Pick<PageContextInternalServer, 'urlOriginal' | 'headersOriginal'> & {
10
16
  /** @deprecated Set `pageContextInit.urlOriginal` instead */ url?: string;
11
17
  /** @deprecated Set pageContextInit.headersOriginal instead */ headers?: Record<string, string>;
@@ -14,10 +20,7 @@ type PageContextBegin = ReturnType<typeof getPageContextBegin>;
14
20
  declare function renderPage<PageContextUserAdded extends {}, PageContextInitUser extends PageContextInit>(pageContextInit: PageContextInitUser): Promise<PageContextInitUser & {
15
21
  httpResponse: HttpResponse;
16
22
  } & Partial<PageContextServer & PageContextUserAdded>>;
17
- declare let asyncHookWrapper: <PageContext>(_httpRequestId: number, ret: () => Promise<PageContext>) => Promise<{
18
- pageContextReturn: Awaited<PageContext>;
19
- }>;
20
- declare function renderPage_addAsyncHookwrapper(wrapper: typeof asyncHookWrapper): void;
23
+ declare function renderPage_addAsyncHookwrapper(wrapper: typeof globalObject.asyncHookWrapper): void;
21
24
  declare function getPageContextBegin(pageContextInit: PageContextInit, globalContext: GlobalContextServerInternal, httpRequestId: number): {
22
25
  _isOriginalObject: true;
23
26
  isPageContext: true;
@@ -19,7 +19,10 @@ import { handleErrorWithoutErrorPage } from './renderPage/handleErrorWithoutErro
19
19
  import { loadPageConfigsLazyServerSideAndExecHook } from './renderPage/loadPageConfigsLazyServerSide.js';
20
20
  import { resolveRedirects } from './renderPage/resolveRedirects.js';
21
21
  import { getVikeConfigError } from '../shared/getVikeConfigError.js';
22
- const globalObject = getGlobalObject('runtime/renderPage.ts', { httpRequestsCount: 0 });
22
+ const globalObject = getGlobalObject('runtime/renderPage.ts', {
23
+ httpRequestsCount: 0,
24
+ asyncHookWrapper: getFallbackAsyncHookWrapper(),
25
+ });
23
26
  // `renderPage()` calls `renderPageNominal()` while ensuring that errors are `console.error(err)` instead of `throw err`, so that Vike never triggers a server shut down. (Throwing an error in an Express.js middleware shuts down the whole Express.js server.)
24
27
  async function renderPage(pageContextInit) {
25
28
  assertArguments(...arguments);
@@ -32,19 +35,21 @@ async function renderPage(pageContextInit) {
32
35
  const httpRequestId = getRequestId();
33
36
  const urlOriginalPretty = getUrlPretty(pageContextInit.urlOriginal);
34
37
  logHttpRequest(urlOriginalPretty, httpRequestId);
35
- const { pageContextReturn } = await asyncHookWrapper(httpRequestId, () => renderPagePrepare(pageContextInit, httpRequestId));
38
+ const { pageContextReturn } = await globalObject.asyncHookWrapper(httpRequestId, () => renderPagePrepare(pageContextInit, httpRequestId));
36
39
  logHttpResponse(urlOriginalPretty, httpRequestId, pageContextReturn);
37
40
  checkType(pageContextReturn);
38
41
  assert(pageContextReturn.httpResponse);
39
42
  return pageContextReturn;
40
43
  }
41
- // Fallback wrapper if node:async_hooks isn't available
42
- let asyncHookWrapper = async (_httpRequestId, ret) => ({
43
- pageContextReturn: await ret(),
44
- });
45
44
  // Add node:async_hooks wrapper
46
45
  function renderPage_addAsyncHookwrapper(wrapper) {
47
- asyncHookWrapper = wrapper;
46
+ globalObject.asyncHookWrapper = wrapper;
47
+ }
48
+ // Fallback wrapper if node:async_hooks isn't available
49
+ function getFallbackAsyncHookWrapper() {
50
+ return async (_httpRequestId, ret) => ({
51
+ pageContextReturn: await ret(),
52
+ });
48
53
  }
49
54
  async function renderPagePrepare(pageContextInit, httpRequestId) {
50
55
  // Invalid config
@@ -44,7 +44,7 @@ export * from '../../utils/isHtml.js';
44
44
  export * from '../../utils/warnIfErrorIsNotObject.js';
45
45
  export * from '../../utils/virtualFileId.js';
46
46
  export * from '../../utils/stripAnsi.js';
47
- export * from '../../utils/getTerminWidth.js';
47
+ export * from '../../utils/getTerminalWidth.js';
48
48
  export * from '../../utils/truncateString.js';
49
49
  export * from '../../utils/formatHintLog.js';
50
50
  export * from '../../utils/joinEnglish.js';
@@ -48,7 +48,7 @@ export * from '../../utils/isHtml.js';
48
48
  export * from '../../utils/warnIfErrorIsNotObject.js';
49
49
  export * from '../../utils/virtualFileId.js';
50
50
  export * from '../../utils/stripAnsi.js';
51
- export * from '../../utils/getTerminWidth.js';
51
+ export * from '../../utils/getTerminalWidth.js';
52
52
  export * from '../../utils/truncateString.js';
53
53
  export * from '../../utils/formatHintLog.js';
54
54
  export * from '../../utils/joinEnglish.js';
@@ -7,17 +7,18 @@ import fs from 'node:fs/promises';
7
7
  import fs_sync from 'node:fs';
8
8
  import path from 'node:path';
9
9
  import { existsSync } from 'node:fs';
10
- import { assert, assertIsSingleModuleInstance, assertWarning, isEqualStringList, isObject, pLimit, unique, } from '../../utils.js';
10
+ import { assert, assertWarning, getGlobalObject, isEqualStringList, isObject, pLimit, unique } from '../../utils.js';
11
11
  import { parseVirtualFileId } from '../../../shared/virtualFileId.js';
12
12
  import { getAssetsDir } from '../../shared/getAssetsDir.js';
13
13
  import pc from '@brillout/picocolors';
14
14
  import { getVikeConfigInternal, isV1Design } from '../../shared/resolveVikeConfigInternal.js';
15
15
  import { getOutDirs } from '../../shared/getOutDirs.js';
16
- import { isViteServerBuild_onlySsrEnv, isViteServerBuild, isViteServerBuild_withoutEnv, } from '../../shared/isViteServerBuild.js';
16
+ import { isViteServerSide_onlySsrEnv, isViteServerSide, isViteServerSide_withoutEnv, } from '../../shared/isViteServerSide.js';
17
17
  import { set_macro_ASSETS_MANIFEST } from './pluginBuildEntry.js';
18
18
  import { getManifestFilePathRelative } from '../../shared/getManifestFilePathRelative.js';
19
- assertIsSingleModuleInstance('build/handleAssetsManifest.ts');
20
- let assetsJsonFilePath;
19
+ const globalObject = getGlobalObject('build/handleAssetsManifest.ts', {
20
+ assetsJsonFilePath: undefined,
21
+ });
21
22
  // true => use workaround config.build.ssrEmitAssets
22
23
  // false => use workaround extractAssets plugin
23
24
  function handleAssetsManifest_isFixEnabled(config) {
@@ -219,7 +220,7 @@ const targets = [];
219
220
  function handleAssetsManifest_assertUsageCssTarget(config, env) {
220
221
  if (!handleAssetsManifest_isFixEnabled(config))
221
222
  return;
222
- const isServerSide = isViteServerBuild(config, env);
223
+ const isServerSide = isViteServerSide(config, env);
223
224
  assert(typeof isServerSide === 'boolean');
224
225
  assert(config.build.target !== undefined);
225
226
  targets.push({ global: config.build.target, css: config.build.cssTarget, isServerSide });
@@ -290,25 +291,25 @@ async function handleAssetsManifest_getBuildConfig(config) {
290
291
  copyPublicDir: vikeConfig.config.vite6BuilderApp
291
292
  ? // Already set by vike:build:pluginBuildApp
292
293
  undefined
293
- : !isViteServerBuild_withoutEnv(config),
294
+ : !isViteServerSide_withoutEnv(config),
294
295
  };
295
296
  }
296
297
  async function handleAssetsManifest(config, viteEnv, options, bundle) {
297
- const isSsrEnv = isViteServerBuild_onlySsrEnv(config, viteEnv);
298
+ const isSsrEnv = isViteServerSide_onlySsrEnv(config, viteEnv);
298
299
  if (isSsrEnv) {
299
- assert(!assetsJsonFilePath);
300
+ assert(!globalObject.assetsJsonFilePath);
300
301
  const outDirs = getOutDirs(config, viteEnv);
301
- assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
302
- await writeAssetsManifestFile(assetsJsonFilePath, config);
302
+ globalObject.assetsJsonFilePath = path.posix.join(outDirs.outDirRoot, 'assets.json');
303
+ await writeAssetsManifestFile(globalObject.assetsJsonFilePath, config);
303
304
  }
304
- if (isViteServerBuild(config, viteEnv)) {
305
+ if (isViteServerSide(config, viteEnv)) {
305
306
  const outDir = options.dir;
306
307
  assert(outDir);
307
308
  // Replace __VITE_ASSETS_MANIFEST__ in server builds
308
309
  // - Always replace it in dist/server/
309
310
  // - Also in some other server builds such as dist/vercel/ from vike-vercel
310
311
  // - Don't replace it in dist/rsc/ from vike-react-rsc since __VITE_ASSETS_MANIFEST__ doesn't exist there
311
- const noop = await set_macro_ASSETS_MANIFEST(assetsJsonFilePath, bundle, outDir);
312
+ const noop = await set_macro_ASSETS_MANIFEST(globalObject.assetsJsonFilePath, bundle, outDir);
312
313
  if (isSsrEnv)
313
314
  assert(!noop); // dist/server should always contain __VITE_ASSETS_MANIFEST__
314
315
  }
@@ -1,7 +1,7 @@
1
1
  export { pluginAutoFullBuild };
2
2
  export { isPrerenderForceExit };
3
3
  import { build } from 'vite';
4
- import { assert, assertIsSingleModuleInstance, assertWarning, onSetupBuild } from '../../utils.js';
4
+ import { assert, assertWarning, getGlobalObject, onSetupBuild } from '../../utils.js';
5
5
  import { isPrerenderAutoRunEnabled, wasPrerenderRun } from '../../../prerender/context.js';
6
6
  import { isViteCliCall, getViteConfigFromCli } from '../../shared/isViteCliCall.js';
7
7
  import pc from '@brillout/picocolors';
@@ -9,11 +9,12 @@ import { logErrorHint } from '../../../runtime/renderPage/logErrorHint.js';
9
9
  import { getVikeConfigInternal } from '../../shared/resolveVikeConfigInternal.js';
10
10
  import { isVikeCliOrApi } from '../../../api/context.js';
11
11
  import { handleAssetsManifest, handleAssetsManifest_assertUsageCssTarget } from './handleAssetsManifest.js';
12
- import { isViteClientBuild, isViteServerBuild_onlySsrEnv } from '../../shared/isViteServerBuild.js';
12
+ import { isViteClientSide, isViteServerSide_onlySsrEnv } from '../../shared/isViteServerSide.js';
13
13
  import { runPrerender_forceExit, runPrerenderFromAutoRun } from '../../../prerender/runPrerenderEntry.js';
14
14
  import { getManifestFilePathRelative } from '../../shared/getManifestFilePathRelative.js';
15
- assertIsSingleModuleInstance('build/pluginAutoFullBuild.ts');
16
- let forceExit = false;
15
+ const globalObject = getGlobalObject('build/pluginAutoFullBuild.ts', {
16
+ forceExit: false,
17
+ });
17
18
  function pluginAutoFullBuild() {
18
19
  let config;
19
20
  return [
@@ -57,7 +58,7 @@ function pluginAutoFullBuild() {
57
58
  onSetupBuild();
58
59
  handleAssetsManifest_assertUsageCssTarget(config, this.environment);
59
60
  const vikeConfig = await getVikeConfigInternal();
60
- if (forceExit &&
61
+ if (globalObject.forceExit &&
61
62
  // Let vike:build:pluginBuildApp force exit
62
63
  !vikeConfig.config.vite6BuilderApp) {
63
64
  runPrerender_forceExit();
@@ -74,7 +75,7 @@ async function triggerFullBuild(config, viteEnv, bundle) {
74
75
  const isBuilderApp = vikeConfig.config.vite6BuilderApp;
75
76
  // If builder.buildApp() => trigger at end of `this.environment.name === 'ssr'`.
76
77
  // Else => trigger at end of client-side build.
77
- if (isBuilderApp ? !isViteServerBuild_onlySsrEnv(config, viteEnv) : !isViteClientBuild(config, viteEnv))
78
+ if (isBuilderApp ? !isViteServerSide_onlySsrEnv(config, viteEnv) : !isViteClientSide(config, viteEnv))
78
79
  return;
79
80
  if (isEntirelyDisabled(vikeConfig))
80
81
  return;
@@ -93,7 +94,7 @@ async function triggerFullBuild(config, viteEnv, bundle) {
93
94
  }
94
95
  if (isPrerenderAutoRunEnabled(vikeConfig)) {
95
96
  const res = await runPrerenderFromAutoRun(configInline);
96
- forceExit = res.forceExit;
97
+ globalObject.forceExit = res.forceExit;
97
98
  assert(wasPrerenderRun());
98
99
  }
99
100
  }
@@ -124,7 +125,7 @@ function isEntirelyDisabled(vikeConfig) {
124
125
  }
125
126
  }
126
127
  function isPrerenderForceExit() {
127
- return forceExit;
128
+ return globalObject.forceExit;
128
129
  }
129
130
  function getFullBuildInlineConfig(config) {
130
131
  const configFromCli = !isViteCliCall() ? null : getViteConfigFromCli();