vike 0.4.229-commit-2a06dcc → 0.4.229-commit-2dbbc8d

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.
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveClientEntriesDev = resolveClientEntriesDev;
4
4
  const utils_js_1 = require("../utils.js");
5
5
  (0, utils_js_1.assertIsNotProductionRuntime)();
6
- async function resolveClientEntriesDev(clientEntry, viteDevServer) {
6
+ function resolveClientEntriesDev(clientEntry, viteDevServer) {
7
7
  let userRootDir = viteDevServer.config.root;
8
8
  (0, utils_js_1.assert)(userRootDir);
9
9
  userRootDir = (0, utils_js_1.toPosixPath)(userRootDir);
@@ -78,12 +78,16 @@ async function renderHtmlStream(streamOriginal, injectString, pageContext, onErr
78
78
  }
79
79
  let makeClosableAgain = () => { };
80
80
  if ((0, react_streaming_js_1.isStreamFromReactStreamingPackage)(streamOriginal)) {
81
- // Make sure Vike injects its HTML fragments, such as `<script id="vike_pageContext" type="application/json">`, before the stream is closed
81
+ // Make sure Vike injects its HTML fragments, such as `<script id="vike_pageContext" type="application/json">`, before the stream is closed (if React/Vue finishes its stream before the promise below resolves).
82
82
  makeClosableAgain = streamOriginal.doNotClose();
83
83
  }
84
- const streamWrapper = await (0, stream_js_1.processStream)(streamOriginal, processStreamOptions);
85
- makeClosableAgain();
86
- return streamWrapper;
84
+ try {
85
+ const streamWrapper = await (0, stream_js_1.processStream)(streamOriginal, processStreamOptions);
86
+ return streamWrapper;
87
+ }
88
+ finally {
89
+ makeClosableAgain();
90
+ }
87
91
  }
88
92
  function isTemplateWrapped(something) {
89
93
  return (0, utils_js_1.hasProp)(something, '_template');
@@ -19,7 +19,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
19
19
  let clientEntriesSrc;
20
20
  if (isDev) {
21
21
  const { _viteDevServer: viteDevServer } = globalContext;
22
- clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer)));
22
+ clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
23
23
  assetUrls = await (0, retrieveAssetsDev_js_1.retrieveAssetsDev)(clientDependencies, viteDevServer);
24
24
  }
25
25
  else {
@@ -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.229-commit-2a06dcc';
5
+ exports.PROJECT_VERSION = '0.4.229-commit-2dbbc8d';
@@ -31,6 +31,7 @@ const flags = [
31
31
  'vike:outDir',
32
32
  'vike:pageFiles',
33
33
  'vike:pointer-imports',
34
+ 'vike:resolve',
34
35
  'vike:routing',
35
36
  'vike:setup',
36
37
  'vike:stream',
@@ -17,11 +17,13 @@ const node_module_1 = require("node:module");
17
17
  const node_path_1 = __importDefault(require("node:path"));
18
18
  const parseNpmPackage_js_1 = require("./parseNpmPackage.js");
19
19
  const isNullish_js_1 = require("./isNullish.js");
20
+ const debug_js_1 = require("./debug.js");
20
21
  // @ts-ignore `file:///${__filename.split('\\').join('/')}` is shimmed at dist/cjs by dist-cjs-fixup.js.
21
22
  const importMetaUrl = `file:///${__filename.split('\\').join('/')}`;
22
23
  (0, path_js_1.assertPosixPath)(importMetaUrl);
23
24
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
24
25
  (0, assertSetup_js_1.assertIsNotProductionRuntime)();
26
+ const debug = (0, debug_js_1.createDebugger)('vike:resolve');
25
27
  // - We still can't use import.meta.resolve() as of 23.1.0 (November 2024) because `parent` argument requires an experimental flag.
26
28
  // - https://stackoverflow.com/questions/54977743/do-require-resolve-for-es-modules#comment139581675_62272600
27
29
  // - Passing context to createRequire(context) isn't equivalent to passing it to the `paths` argument of require.resolve()
@@ -40,23 +42,22 @@ function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandl
40
42
  let failure;
41
43
  for (const context of contexts) {
42
44
  (0, path_js_1.assertPosixPath)(context);
43
- const require_ = (0, node_module_1.createRequire)(ensureFilePrefix(context));
45
+ const contextNode = makeNodeFriendly(ensureFilePrefix(context));
46
+ let importPathNode = makeNodeFriendly(importPath);
47
+ const require_ = (0, node_module_1.createRequire)(contextNode);
44
48
  if (!doNotHandleFileExtension) {
45
49
  addFileExtensionsToRequireResolve(require_);
46
- importPath = removeFileExtention(importPath);
50
+ importPathNode = removeFileExtention(importPathNode);
47
51
  }
48
52
  try {
49
- importPathResolvedFilePath = require_.resolve(importPath);
53
+ importPathResolvedFilePath = require_.resolve(importPathNode);
50
54
  }
51
55
  catch (err) {
52
- /* DEBUG
53
- console.log('err', err)
54
- console.log('importPath', importPath)
55
- console.log('importerFilePath', importerFilePath)
56
- console.log('context', context)
57
- console.log('importMetaUrl', importMetaUrl)
58
- console.log('paths', paths)
59
- //*/
56
+ if (debug.isActivated) {
57
+ debug('err', err);
58
+ debug('importPath', importPath);
59
+ debug('context', context);
60
+ }
60
61
  failure ?? (failure = { err });
61
62
  }
62
63
  if (importPathResolvedFilePath)
@@ -64,9 +65,23 @@ function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandl
64
65
  }
65
66
  if (!importPathResolvedFilePath) {
66
67
  (0, assert_js_1.assert)(failure);
68
+ if (debug.isActivated) {
69
+ debug('FAILURE');
70
+ debug('importPath', importPath);
71
+ debug('importerFilePath', importerFilePath);
72
+ debug('userRootDir', userRootDir);
73
+ debug('doNotHandleFileExtension', doNotHandleFileExtension);
74
+ debug('importMetaUrl', importMetaUrl);
75
+ debug('contexts', contexts);
76
+ }
67
77
  return { importPathResolvedFilePath: undefined, err: failure.err, hasFailed: true };
68
78
  }
69
79
  else {
80
+ if (failure && debug.isActivated) {
81
+ debug('SUCCESS');
82
+ debug('importPath', importPath);
83
+ debug('contexts', contexts);
84
+ }
70
85
  (0, assert_js_1.assert)(importPathResolvedFilePath);
71
86
  importPathResolvedFilePath = (0, path_js_1.toPosixPath)(importPathResolvedFilePath);
72
87
  return { importPathResolvedFilePath, err: undefined, hasFailed: false };
@@ -97,7 +112,7 @@ function requireResolveVikeDistFile(vikeDistFile) {
97
112
  const vikeNodeModulesRoot = getVikeNodeModulesRoot();
98
113
  (0, path_js_1.assertPosixPath)(vikeNodeModulesRoot);
99
114
  (0, path_js_1.assertPosixPath)(vikeDistFile);
100
- const importPathResolvedFilePath = node_path_1.default.posix.join(vikeNodeModulesRoot, vikeDistFile);
115
+ const importPathResolvedFilePath = makeNodeFriendly(node_path_1.default.posix.join(vikeNodeModulesRoot, vikeDistFile));
101
116
  // Double check
102
117
  {
103
118
  const res = requireResolve_(importPathResolvedFilePath,
@@ -191,3 +206,7 @@ function getFilePrefix() {
191
206
  prefix += '/';
192
207
  return prefix;
193
208
  }
209
+ function makeNodeFriendly(filePath) {
210
+ // https://github.com/vikejs/vike/issues/2436#issuecomment-2849145340
211
+ return decodeURIComponent(filePath);
212
+ }
@@ -1,4 +1,4 @@
1
1
  export { resolveClientEntriesDev };
2
2
  export type ResolveClientEntriesDev = typeof resolveClientEntriesDev;
3
3
  import type { ViteDevServer } from 'vite';
4
- declare function resolveClientEntriesDev(clientEntry: string, viteDevServer: ViteDevServer): Promise<string>;
4
+ declare function resolveClientEntriesDev(clientEntry: string, viteDevServer: ViteDevServer): string;
@@ -1,7 +1,7 @@
1
1
  export { resolveClientEntriesDev };
2
2
  import { assert, assertPosixPath, toPosixPath, pathJoin, assertIsImportPathNpmPackage, assertIsNotProductionRuntime, requireResolveNpmPackage, requireResolveVikeDistFile } from '../utils.js';
3
3
  assertIsNotProductionRuntime();
4
- async function resolveClientEntriesDev(clientEntry, viteDevServer) {
4
+ function resolveClientEntriesDev(clientEntry, viteDevServer) {
5
5
  let userRootDir = viteDevServer.config.root;
6
6
  assert(userRootDir);
7
7
  userRootDir = toPosixPath(userRootDir);
@@ -73,12 +73,16 @@ async function renderHtmlStream(streamOriginal, injectString, pageContext, onErr
73
73
  }
74
74
  let makeClosableAgain = () => { };
75
75
  if (isStreamFromReactStreamingPackage(streamOriginal)) {
76
- // Make sure Vike injects its HTML fragments, such as `<script id="vike_pageContext" type="application/json">`, before the stream is closed
76
+ // Make sure Vike injects its HTML fragments, such as `<script id="vike_pageContext" type="application/json">`, before the stream is closed (if React/Vue finishes its stream before the promise below resolves).
77
77
  makeClosableAgain = streamOriginal.doNotClose();
78
78
  }
79
- const streamWrapper = await processStream(streamOriginal, processStreamOptions);
80
- makeClosableAgain();
81
- return streamWrapper;
79
+ try {
80
+ const streamWrapper = await processStream(streamOriginal, processStreamOptions);
81
+ return streamWrapper;
82
+ }
83
+ finally {
84
+ makeClosableAgain();
85
+ }
82
86
  }
83
87
  function isTemplateWrapped(something) {
84
88
  return hasProp(something, '_template');
@@ -17,7 +17,7 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
17
17
  let clientEntriesSrc;
18
18
  if (isDev) {
19
19
  const { _viteDevServer: viteDevServer } = globalContext;
20
- clientEntriesSrc = await Promise.all(clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer)));
20
+ clientEntriesSrc = clientEntries.map((clientEntry) => globalObject.resolveClientEntriesDev(clientEntry, viteDevServer));
21
21
  assetUrls = await retrieveAssetsDev(clientDependencies, viteDevServer);
22
22
  }
23
23
  else {
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.229-commit-2a06dcc";
1
+ export declare const PROJECT_VERSION: "0.4.229-commit-2dbbc8d";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.229-commit-2a06dcc';
2
+ export const PROJECT_VERSION = '0.4.229-commit-2dbbc8d';
@@ -1,7 +1,7 @@
1
1
  export { createDebugger };
2
2
  export { isDebugActivated };
3
3
  export type { Debug };
4
- declare const flags: readonly ["vike:crawl", "vike:error", "vike:esbuild-resolve", "vike:extractAssets", "vike:extractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:routing", "vike:setup", "vike:stream", "vike:virtual-files"];
4
+ declare const flags: readonly ["vike:crawl", "vike:error", "vike:esbuild-resolve", "vike:extractAssets", "vike:extractExportNames", "vike:glob", "vike:globalContext", "vike:log", "vike:optimizeDeps", "vike:outDir", "vike:pageFiles", "vike:pointer-imports", "vike:resolve", "vike:routing", "vike:setup", "vike:stream", "vike:virtual-files"];
5
5
  type Flag = (typeof flags)[number];
6
6
  type Debug = ReturnType<typeof createDebugger>;
7
7
  type Options = {
@@ -26,6 +26,7 @@ const flags = [
26
26
  'vike:outDir',
27
27
  'vike:pageFiles',
28
28
  'vike:pointer-imports',
29
+ 'vike:resolve',
29
30
  'vike:routing',
30
31
  'vike:setup',
31
32
  'vike:stream',
@@ -12,11 +12,13 @@ import { createRequire } from 'node:module';
12
12
  import path from 'node:path';
13
13
  import { assertIsImportPathNpmPackage, isImportPathNpmPackageOrPathAlias } from './parseNpmPackage.js';
14
14
  import { isNotNullish } from './isNullish.js';
15
+ import { createDebugger } from './debug.js';
15
16
  // @ts-ignore import.meta.url is shimmed at dist/cjs by dist-cjs-fixup.js.
16
17
  const importMetaUrl = import.meta.url;
17
18
  assertPosixPath(importMetaUrl);
18
19
  assertIsNotBrowser();
19
20
  assertIsNotProductionRuntime();
21
+ const debug = createDebugger('vike:resolve');
20
22
  // - We still can't use import.meta.resolve() as of 23.1.0 (November 2024) because `parent` argument requires an experimental flag.
21
23
  // - https://stackoverflow.com/questions/54977743/do-require-resolve-for-es-modules#comment139581675_62272600
22
24
  // - Passing context to createRequire(context) isn't equivalent to passing it to the `paths` argument of require.resolve()
@@ -35,23 +37,22 @@ function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandl
35
37
  let failure;
36
38
  for (const context of contexts) {
37
39
  assertPosixPath(context);
38
- const require_ = createRequire(ensureFilePrefix(context));
40
+ const contextNode = makeNodeFriendly(ensureFilePrefix(context));
41
+ let importPathNode = makeNodeFriendly(importPath);
42
+ const require_ = createRequire(contextNode);
39
43
  if (!doNotHandleFileExtension) {
40
44
  addFileExtensionsToRequireResolve(require_);
41
- importPath = removeFileExtention(importPath);
45
+ importPathNode = removeFileExtention(importPathNode);
42
46
  }
43
47
  try {
44
- importPathResolvedFilePath = require_.resolve(importPath);
48
+ importPathResolvedFilePath = require_.resolve(importPathNode);
45
49
  }
46
50
  catch (err) {
47
- /* DEBUG
48
- console.log('err', err)
49
- console.log('importPath', importPath)
50
- console.log('importerFilePath', importerFilePath)
51
- console.log('context', context)
52
- console.log('importMetaUrl', importMetaUrl)
53
- console.log('paths', paths)
54
- //*/
51
+ if (debug.isActivated) {
52
+ debug('err', err);
53
+ debug('importPath', importPath);
54
+ debug('context', context);
55
+ }
55
56
  failure ?? (failure = { err });
56
57
  }
57
58
  if (importPathResolvedFilePath)
@@ -59,9 +60,23 @@ function requireResolve_(importPath, importerFilePath, { userRootDir, doNotHandl
59
60
  }
60
61
  if (!importPathResolvedFilePath) {
61
62
  assert(failure);
63
+ if (debug.isActivated) {
64
+ debug('FAILURE');
65
+ debug('importPath', importPath);
66
+ debug('importerFilePath', importerFilePath);
67
+ debug('userRootDir', userRootDir);
68
+ debug('doNotHandleFileExtension', doNotHandleFileExtension);
69
+ debug('importMetaUrl', importMetaUrl);
70
+ debug('contexts', contexts);
71
+ }
62
72
  return { importPathResolvedFilePath: undefined, err: failure.err, hasFailed: true };
63
73
  }
64
74
  else {
75
+ if (failure && debug.isActivated) {
76
+ debug('SUCCESS');
77
+ debug('importPath', importPath);
78
+ debug('contexts', contexts);
79
+ }
65
80
  assert(importPathResolvedFilePath);
66
81
  importPathResolvedFilePath = toPosixPath(importPathResolvedFilePath);
67
82
  return { importPathResolvedFilePath, err: undefined, hasFailed: false };
@@ -92,7 +107,7 @@ function requireResolveVikeDistFile(vikeDistFile) {
92
107
  const vikeNodeModulesRoot = getVikeNodeModulesRoot();
93
108
  assertPosixPath(vikeNodeModulesRoot);
94
109
  assertPosixPath(vikeDistFile);
95
- const importPathResolvedFilePath = path.posix.join(vikeNodeModulesRoot, vikeDistFile);
110
+ const importPathResolvedFilePath = makeNodeFriendly(path.posix.join(vikeNodeModulesRoot, vikeDistFile));
96
111
  // Double check
97
112
  {
98
113
  const res = requireResolve_(importPathResolvedFilePath,
@@ -186,3 +201,7 @@ function getFilePrefix() {
186
201
  prefix += '/';
187
202
  return prefix;
188
203
  }
204
+ function makeNodeFriendly(filePath) {
205
+ // https://github.com/vikejs/vike/issues/2436#issuecomment-2849145340
206
+ return decodeURIComponent(filePath);
207
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.229-commit-2a06dcc",
3
+ "version": "0.4.229-commit-2dbbc8d",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {