vike 0.4.165 → 0.4.166-commit-6a8acaa

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 (126) hide show
  1. package/dist/cjs/node/plugin/index.js +1 -1
  2. package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
  3. package/dist/cjs/node/plugin/plugins/buildConfig/fixServerAssets.js +6 -2
  4. package/dist/cjs/node/plugin/plugins/buildConfig.js +78 -63
  5. package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +14 -1
  6. package/dist/cjs/node/plugin/plugins/config/index.js +1 -1
  7. package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +18 -23
  8. package/dist/cjs/node/plugin/plugins/envVars.js +3 -2
  9. package/dist/cjs/node/plugin/plugins/fileEnv.js +6 -3
  10. package/dist/cjs/node/plugin/plugins/importUserCode/index.js +6 -2
  11. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +0 -1
  12. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +53 -24
  13. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +6 -6
  14. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +10 -25
  15. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +32 -35
  16. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +18 -26
  17. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +26 -21
  18. package/dist/cjs/node/plugin/shared/getFilePath.js +142 -0
  19. package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +3 -8
  20. package/dist/cjs/node/plugin/shared/loggerNotProd.js +2 -1
  21. package/dist/cjs/node/plugin/utils.js +1 -1
  22. package/dist/cjs/node/prerender/runPrerender.js +6 -7
  23. package/dist/cjs/node/prerender/utils.js +2 -1
  24. package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -0
  25. package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +1 -1
  26. package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +3 -3
  27. package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -1
  28. package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +31 -33
  29. package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +9 -8
  30. package/dist/cjs/node/runtime/renderPage/getPageAssets.js +6 -12
  31. package/dist/cjs/node/runtime/renderPage/logErrorHint.js +5 -0
  32. package/dist/cjs/node/runtime/renderPage.js +34 -21
  33. package/dist/cjs/node/runtime/utils.js +0 -1
  34. package/dist/cjs/shared/page-configs/FilePath.js +2 -0
  35. package/dist/cjs/shared/route/abort.js +2 -1
  36. package/dist/cjs/shared/route/executeGuardHook.js +2 -1
  37. package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +2 -1
  38. package/dist/cjs/shared/route/utils.js +0 -1
  39. package/dist/cjs/utils/assert.js +2 -0
  40. package/dist/cjs/utils/assertPathIsFilesystemAbsolute.js +1 -0
  41. package/dist/cjs/utils/assertSingleInstance.js +6 -5
  42. package/dist/cjs/utils/assertVersion.js +4 -1
  43. package/dist/cjs/utils/getGlobalObject.js +21 -6
  44. package/dist/cjs/utils/isNpmPackage.js +11 -5
  45. package/dist/cjs/utils/parseUrl.js +8 -1
  46. package/dist/cjs/utils/projectInfo.js +1 -4
  47. package/dist/esm/client/client-routing-runtime/history.d.ts +1 -1
  48. package/dist/esm/client/client-routing-runtime/history.js +5 -5
  49. package/dist/esm/client/client-routing-runtime/onBrowserHistoryNavigation.js +1 -1
  50. package/dist/esm/node/plugin/index.js +1 -1
  51. package/dist/esm/node/plugin/plugins/baseUrls.js +1 -1
  52. package/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js +6 -2
  53. package/dist/esm/node/plugin/plugins/buildConfig.d.ts +1 -1
  54. package/dist/esm/node/plugin/plugins/buildConfig.js +79 -64
  55. package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +14 -1
  56. package/dist/esm/node/plugin/plugins/config/index.js +1 -1
  57. package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +19 -24
  58. package/dist/esm/node/plugin/plugins/envVars.js +4 -3
  59. package/dist/esm/node/plugin/plugins/fileEnv.js +7 -4
  60. package/dist/esm/node/plugin/plugins/importUserCode/index.js +7 -3
  61. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +1 -1
  62. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +0 -1
  63. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.d.ts +1 -1
  64. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +54 -25
  65. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +1 -1
  66. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +6 -6
  67. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.d.ts +1 -1
  68. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +11 -26
  69. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.d.ts +2 -1
  70. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveImportPath.js +32 -35
  71. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.d.ts +1 -1
  72. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +18 -26
  73. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +3 -2
  74. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +26 -21
  75. package/dist/esm/node/plugin/shared/getFilePath.d.ts +21 -0
  76. package/dist/esm/node/plugin/shared/getFilePath.js +136 -0
  77. package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +4 -9
  78. package/dist/esm/node/plugin/shared/loggerNotProd.js +2 -1
  79. package/dist/esm/node/plugin/utils.d.ts +1 -1
  80. package/dist/esm/node/plugin/utils.js +1 -1
  81. package/dist/esm/node/prerender/runPrerender.js +2 -3
  82. package/dist/esm/node/prerender/utils.d.ts +2 -1
  83. package/dist/esm/node/prerender/utils.js +2 -1
  84. package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -0
  85. package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +1 -1
  86. package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +1 -1
  87. package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -1
  88. package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +32 -34
  89. package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +9 -8
  90. package/dist/esm/node/runtime/renderPage/getPageAssets.js +7 -13
  91. package/dist/esm/node/runtime/renderPage/logErrorHint.js +2 -0
  92. package/dist/esm/node/runtime/renderPage.js +34 -21
  93. package/dist/esm/node/runtime/utils.d.ts +0 -1
  94. package/dist/esm/node/runtime/utils.js +0 -1
  95. package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +1 -1
  96. package/dist/esm/shared/page-configs/FilePath.d.ts +64 -0
  97. package/dist/esm/shared/page-configs/FilePath.js +1 -0
  98. package/dist/esm/shared/page-configs/PageConfig.d.ts +1 -42
  99. package/dist/esm/shared/route/abort.js +2 -1
  100. package/dist/esm/shared/route/executeGuardHook.js +2 -1
  101. package/dist/esm/shared/route/executeOnBeforeRouteHook.js +2 -1
  102. package/dist/esm/shared/route/utils.d.ts +0 -1
  103. package/dist/esm/shared/route/utils.js +0 -1
  104. package/dist/esm/utils/assert.js +2 -0
  105. package/dist/esm/utils/assertPathIsFilesystemAbsolute.js +1 -0
  106. package/dist/esm/utils/assertSingleInstance.d.ts +2 -2
  107. package/dist/esm/utils/assertSingleInstance.js +5 -4
  108. package/dist/esm/utils/assertVersion.js +4 -1
  109. package/dist/esm/utils/debug.d.ts +1 -1
  110. package/dist/esm/utils/getGlobalObject.d.ts +6 -1
  111. package/dist/esm/utils/getGlobalObject.js +22 -6
  112. package/dist/esm/utils/isNpmPackage.d.ts +5 -7
  113. package/dist/esm/utils/isNpmPackage.js +15 -4
  114. package/dist/esm/utils/parseUrl.js +8 -1
  115. package/dist/esm/utils/projectInfo.d.ts +2 -2
  116. package/dist/esm/utils/projectInfo.js +1 -4
  117. package/package.json +26 -14
  118. package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveFilePath.js +0 -33
  119. package/dist/cjs/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +0 -19
  120. package/dist/cjs/utils/getFilePathAbsolute.js +0 -70
  121. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveFilePath.d.ts +0 -5
  122. package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolveFilePath.js +0 -27
  123. package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.d.ts +0 -2
  124. package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +0 -16
  125. package/dist/esm/utils/getFilePathAbsolute.d.ts +0 -5
  126. package/dist/esm/utils/getFilePathAbsolute.js +0 -64
@@ -95,7 +95,7 @@ function injectBreakLines(htmlFragment, before, after) {
95
95
  const whitespaceExtra = paddingParent ? ' ' : '';
96
96
  const whitespace = `${paddingParent}${whitespaceExtra}`;
97
97
  const padding = `\n${whitespace}`;
98
- htmlFragment = htmlFragment.split(/<(?=[^\/])/).join(`${padding}<`);
98
+ htmlFragment = htmlFragment.replace(/<[^\/]/g, (match) => `${padding}${match}`);
99
99
  if (isBlankLine) {
100
100
  (0, utils_js_1.assert)(htmlFragment.startsWith(padding), { htmlFragment });
101
101
  htmlFragment = whitespaceExtra + htmlFragment.slice(padding.length);
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeOnBeforeRenderAndDataHooks = void 0;
4
4
  const getHook_js_1 = require("../../../shared/hooks/getHook.js");
5
5
  const preparePageContextForUserConsumptionServerSide_js_1 = require("./preparePageContextForUserConsumptionServerSide.js");
6
- const utils_js_1 = require("../utils.js");
7
6
  const assertOnBeforeRenderHookReturn_js_1 = require("../../../shared/assertOnBeforeRenderHookReturn.js");
7
+ const executeHook_js_1 = require("../../../shared/hooks/executeHook.js");
8
8
  async function executeOnBeforeRenderAndDataHooks(pageContext) {
9
9
  if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
10
10
  return;
@@ -16,7 +16,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
16
16
  }
17
17
  (0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext);
18
18
  if (dataHook) {
19
- const hookResult = await (0, utils_js_1.executeHook)(() => dataHook.hookFn(pageContext), dataHook);
19
+ const hookResult = await (0, executeHook_js_1.executeHook)(() => dataHook.hookFn(pageContext), dataHook);
20
20
  // Note: hookResult can be anything (e.g. an object) and is to be assigned to pageContext.data
21
21
  const pageContextFromHook = {
22
22
  data: hookResult
@@ -24,7 +24,7 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
24
24
  Object.assign(pageContext, pageContextFromHook);
25
25
  }
26
26
  if (onBeforeRenderHook) {
27
- const hookResult = await (0, utils_js_1.executeHook)(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook);
27
+ const hookResult = await (0, executeHook_js_1.executeHook)(() => onBeforeRenderHook.hookFn(pageContext), onBeforeRenderHook);
28
28
  (0, assertOnBeforeRenderHookReturn_js_1.assertOnBeforeRenderHookReturn)(hookResult, onBeforeRenderHook.hookFilePath);
29
29
  const pageContextFromHook = hookResult?.pageContext;
30
30
  Object.assign(pageContext, pageContextFromHook);
@@ -13,11 +13,12 @@ const preparePageContextForUserConsumptionServerSide_js_1 = require("./preparePa
13
13
  const assertHookReturnedObject_js_1 = require("../../../shared/assertHookReturnedObject.js");
14
14
  const loggerRuntime_js_1 = require("./loggerRuntime.js");
15
15
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
16
+ const executeHook_js_1 = require("../../../shared/hooks/executeHook.js");
16
17
  async function executeOnRenderHtmlHook(pageContext) {
17
18
  const { renderHook, hookFn } = getRenderHook(pageContext);
18
19
  (0, utils_js_1.objectAssign)(pageContext, { _renderHook: renderHook });
19
20
  (0, preparePageContextForUserConsumptionServerSide_js_1.preparePageContextForUserConsumptionServerSide)(pageContext);
20
- const hookReturnValue = await (0, utils_js_1.executeHook)(() => hookFn(pageContext), renderHook);
21
+ const hookReturnValue = await (0, executeHook_js_1.executeHook)(() => hookFn(pageContext), renderHook);
21
22
  const { documentHtml, pageContextProvidedByRenderHook, pageContextPromise, injectFilter } = processHookReturnValue(hookReturnValue, renderHook);
22
23
  Object.assign(pageContext, pageContextProvidedByRenderHook);
23
24
  (0, utils_js_1.objectAssign)(pageContext, { _pageContextPromise: pageContextPromise });
@@ -2,11 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getManifestEntry = void 0;
4
4
  const utils_js_1 = require("../../utils.js");
5
- const assertClientEntryId_js_1 = require("./assertClientEntryId.js");
6
5
  const virtualFilePageConfigValuesAll_js_1 = require("../../../shared/virtual-files/virtualFilePageConfigValuesAll.js");
7
6
  const prependEntriesDir_js_1 = require("../../../shared/prependEntriesDir.js");
8
7
  function getManifestEntry(id, assetsManifest) {
9
- (0, assertClientEntryId_js_1.assertClientEntryId)(id);
10
8
  const debugInfo = getDebugInfo(id, assetsManifest);
11
9
  // Vike client entry
12
10
  if (id.startsWith('@@vike/')) {
@@ -44,42 +42,42 @@ function getManifestEntry(id, assetsManifest) {
44
42
  return { manifestEntry, manifestKey };
45
43
  }
46
44
  // npm package import
47
- if ((0, utils_js_1.isNpmPackageImport)(id)) {
48
- const found = Object.entries(assetsManifest).find(([, e]) => e.name === (0, prependEntriesDir_js_1.prependEntriesDir)(id));
49
- (0, utils_js_1.assert)(found);
50
- const [manifestKey, manifestEntry] = found;
51
- return { manifestEntry, manifestKey };
52
- }
45
+ (0, utils_js_1.assertIsNpmPackageImport)(id);
46
+ const found = Object.entries(assetsManifest).find(([, e]) => e.name === (0, prependEntriesDir_js_1.prependEntriesDir)(id));
47
+ (0, utils_js_1.assert)(found);
48
+ const [manifestKey, manifestEntry] = found;
49
+ return { manifestEntry, manifestKey };
50
+ /* Can we remove this?
53
51
  // extensions[number].pageConfigsSrcDir
54
52
  if (id.startsWith('/node_modules/') || id.startsWith('/../')) {
55
- let manifestKeyEnd = id.split('/node_modules/').slice(-1)[0];
56
- (0, utils_js_1.assert)(manifestKeyEnd, debugInfo);
57
- (0, utils_js_1.assert)(!manifestKeyEnd.startsWith('/'), debugInfo);
58
- manifestKeyEnd = '/' + manifestKeyEnd;
59
- {
60
- const { manifestEntry, manifestKey } = findEntryWithKeyEnd(manifestKeyEnd, assetsManifest, id);
61
- if (manifestEntry) {
62
- (0, utils_js_1.assert)(manifestKey, debugInfo);
63
- return { manifestEntry, manifestKey };
64
- }
53
+ let manifestKeyEnd = id.split('/node_modules/').slice(-1)[0]
54
+ assert(manifestKeyEnd, debugInfo)
55
+ assert(!manifestKeyEnd.startsWith('/'), debugInfo)
56
+ manifestKeyEnd = '/' + manifestKeyEnd
57
+ {
58
+ const { manifestEntry, manifestKey } = findEntryWithKeyEnd(manifestKeyEnd, assetsManifest, id)
59
+ if (manifestEntry) {
60
+ assert(manifestKey, debugInfo)
61
+ return { manifestEntry, manifestKey }
65
62
  }
66
- {
67
- (0, utils_js_1.assert)(manifestKeyEnd.startsWith('/'), debugInfo);
68
- const dirS = manifestKeyEnd.split('/');
69
- (0, utils_js_1.assert)(dirS[0] === '', debugInfo);
70
- manifestKeyEnd = '/' + dirS.slice(2).join('/');
71
- (0, utils_js_1.assert)(manifestKeyEnd.startsWith('/'), debugInfo);
72
- }
73
- {
74
- const { manifestEntry, manifestKey } = findEntryWithKeyEnd(manifestKeyEnd, assetsManifest, id);
75
- if (manifestEntry) {
76
- (0, utils_js_1.assert)(manifestKey, debugInfo);
77
- return { manifestEntry, manifestKey };
78
- }
63
+ }
64
+ {
65
+ assert(manifestKeyEnd.startsWith('/'), debugInfo)
66
+ const dirS = manifestKeyEnd.split('/')
67
+ assert(dirS[0] === '', debugInfo)
68
+ manifestKeyEnd = '/' + dirS.slice(2).join('/')
69
+ assert(manifestKeyEnd.startsWith('/'), debugInfo)
70
+ }
71
+ {
72
+ const { manifestEntry, manifestKey } = findEntryWithKeyEnd(manifestKeyEnd, assetsManifest, id)
73
+ if (manifestEntry) {
74
+ assert(manifestKey, debugInfo)
75
+ return { manifestEntry, manifestKey }
79
76
  }
80
- (0, utils_js_1.assert)(false, debugInfo);
77
+ }
78
+ assert(false, debugInfo)
81
79
  }
82
- (0, utils_js_1.assert)(false, debugInfo);
80
+ */
83
81
  }
84
82
  exports.getManifestEntry = getManifestEntry;
85
83
  function findEntryWithKeyEnd(manifestKeyEnd, assetsManifest, id) {
@@ -11,15 +11,16 @@ function retrieveAssetsProd(clientDependencies, assetsManifest, includeAssetsImp
11
11
  clientDependencies.forEach(({ id, onlyAssets, eagerlyImported }) => {
12
12
  if (eagerlyImported)
13
13
  return; // Eagerly imported assets aren't imported with import() and therefore don't create a new Rollup entry and aren't listed in the manifest file
14
- if (onlyAssets) {
15
- if (!includeAssetsImportedByServer)
16
- return;
14
+ // TODO/v1-release: remove
15
+ if (includeAssetsImportedByServer &&
16
+ onlyAssets &&
17
+ id.includes('.page.server.') &&
17
18
  // We assume that all npm packages have already built their files: bundlers (Rollup, esbuild, tsup, ...) extract the CSS out of JavaScript => we can assume JavaScript to not import any CSS/assets.
18
- if ((0, utils_js_1.isNpmPackageImport)(id))
19
- return;
20
- if (id.includes('.page.server.')) {
21
- id = (0, extractAssetsQuery_js_1.extractAssetsAddQuery)(id);
22
- }
19
+ !(0, utils_js_1.isNpmPackageImport)(id, {
20
+ // I presume Vite already resolves path aliases when Vite sets the module's id
21
+ cannotBePathAlias: true
22
+ })) {
23
+ id = (0, extractAssetsQuery_js_1.extractAssetsAddQuery)(id);
23
24
  }
24
25
  const { manifestKey } = (0, getManifestEntry_js_1.getManifestEntry)(id, assetsManifest);
25
26
  collectAssets(manifestKey, assetUrls, visistedAssets, assetsManifest, onlyAssets);
@@ -8,7 +8,6 @@ const inferMediaType_js_1 = require("./inferMediaType.js");
8
8
  const getManifestEntry_js_1 = require("./getPageAssets/getManifestEntry.js");
9
9
  const sortPageAssetsForEarlyHintsHeader_js_1 = require("./getPageAssets/sortPageAssetsForEarlyHintsHeader.js");
10
10
  const globalContext_js_1 = require("../globalContext.js");
11
- const assertClientEntryId_js_1 = require("./getPageAssets/assertClientEntryId.js");
12
11
  const import_1 = require("@brillout/import");
13
12
  async function getPageAssets(pageContext, clientDependencies, clientEntries) {
14
13
  const globalContext = (0, globalContext_js_1.getGlobalContext)();
@@ -59,7 +58,6 @@ async function getPageAssets(pageContext, clientDependencies, clientEntries) {
59
58
  }
60
59
  exports.getPageAssets = getPageAssets;
61
60
  async function resolveClientEntriesDev(clientEntry, viteDevServer) {
62
- (0, assertClientEntryId_js_1.assertClientEntryId)(clientEntry);
63
61
  let root = viteDevServer.config.root;
64
62
  (0, utils_js_1.assert)(root);
65
63
  root = (0, utils_js_1.toPosixPath)(root);
@@ -76,11 +74,9 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
76
74
  (0, utils_js_1.assertPosixPath)(clientEntry);
77
75
  let filePath;
78
76
  if (clientEntry.startsWith('/')) {
79
- // User files
80
77
  filePath = (0, utils_js_1.pathJoin)(root, clientEntry);
81
78
  }
82
- else if (clientEntry.startsWith('@@vike/') || (0, utils_js_1.isNpmPackageImport)(clientEntry)) {
83
- // Vike client entry
79
+ else {
84
80
  const { createRequire } = (await (0, import_1.import_)('module')).default;
85
81
  const { dirname } = (await (0, import_1.import_)('path')).default;
86
82
  const { fileURLToPath } = (await (0, import_1.import_)('url')).default;
@@ -91,10 +87,7 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
91
87
  // @ts-expect-error
92
88
  // Bun workaround https://github.com/vikejs/vike/pull/1048
93
89
  const res = typeof Bun !== 'undefined' ? (toPath) => Bun.resolveSync(toPath, __dirname_) : require_.resolve;
94
- if ((0, utils_js_1.isNpmPackageImport)(clientEntry)) {
95
- filePath = res(clientEntry);
96
- }
97
- else {
90
+ if (clientEntry.startsWith('@@vike/')) {
98
91
  (0, utils_js_1.assert)(clientEntry.endsWith('.js'));
99
92
  try {
100
93
  // For Vitest (which doesn't resolve vike to its dist but to its source files)
@@ -107,9 +100,10 @@ async function resolveClientEntriesDev(clientEntry, viteDevServer) {
107
100
  filePath = (0, utils_js_1.toPosixPath)(res(clientEntry.replace('@@vike/dist/esm/client/', '../../../../../dist/esm/client/')));
108
101
  }
109
102
  }
110
- }
111
- else {
112
- (0, utils_js_1.assert)(false);
103
+ else {
104
+ (0, utils_js_1.assertIsNpmPackageImport)(clientEntry);
105
+ filePath = res(clientEntry);
106
+ }
113
107
  }
114
108
  if (!filePath.startsWith('/')) {
115
109
  (0, utils_js_1.assert)(process.platform === 'win32');
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.getHint = exports.isKnownError = exports.isCjsEsmError = exports.logErrorHint = void 0;
4
7
  const utils_js_1 = require("../utils.js");
8
+ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
5
9
  const knownErrors = [
6
10
  {
7
11
  errMsg: 'jsxDEV is not a function',
@@ -44,6 +48,7 @@ function getHint(error) {
44
48
  exports.getHint = getHint;
45
49
  function logHint(hint) {
46
50
  hint = (0, utils_js_1.formatHintLog)(hint);
51
+ hint = picocolors_1.default.bold(hint);
47
52
  console.error(hint);
48
53
  }
49
54
  function isKnownError(error) {
@@ -57,7 +57,7 @@ exports.renderPage = renderPage;
57
57
  async function renderPageAndPrepare(pageContextInit, httpRequestId) {
58
58
  // Invalid config
59
59
  const handleInvalidConfig = () => {
60
- (0, loggerRuntime_js_1.logRuntimeInfo)?.(picocolors_1.default.bold(picocolors_1.default.red("Couldn't load configuration: see error above.")), httpRequestId, 'error');
60
+ (0, loggerRuntime_js_1.logRuntimeInfo)?.(picocolors_1.default.bold(picocolors_1.default.red('Error while loading a Vike config file, see error above.')), httpRequestId, 'error');
61
61
  const pageContextHttpResponseNull = getPageContextHttpResponseNull(pageContextInit);
62
62
  return pageContextHttpResponseNull;
63
63
  };
@@ -209,29 +209,42 @@ function getRequestInfoMessage(urlOriginal) {
209
209
  }
210
210
  function logHttpResponse(urlOriginal, httpRequestId, pageContextReturn) {
211
211
  const statusCode = pageContextReturn.httpResponse?.statusCode ?? null;
212
+ let msg;
213
+ let isNominal;
212
214
  {
213
- // If URL doesn't include Base URL
214
215
  const { errorWhileRendering } = pageContextReturn;
215
- const isSkipped = statusCode === null && (errorWhileRendering === null || errorWhileRendering === undefined);
216
- if (isSkipped)
217
- return;
218
- }
219
- const isSuccess = statusCode !== null && statusCode >= 200 && statusCode <= 399;
220
- const isNominal = isSuccess || statusCode === 404;
221
- const color = (s) => picocolors_1.default.bold(isSuccess ? picocolors_1.default.green(String(s)) : picocolors_1.default.red(String(s)));
222
- const isRedirect = statusCode && 300 <= statusCode && statusCode <= 399;
223
- const type = isRedirect ? 'redirect' : 'response';
224
- if (isRedirect) {
225
- (0, utils_js_1.assert)(pageContextReturn.httpResponse);
226
- const headerRedirect = pageContextReturn.httpResponse.headers
227
- .slice()
228
- .reverse()
229
- .find((header) => header[0] === 'Location');
230
- (0, utils_js_1.assert)(headerRedirect);
231
- const urlRedirect = headerRedirect[1];
232
- urlOriginal = urlRedirect;
216
+ const isSkipped = statusCode === null && !errorWhileRendering;
217
+ if (isSkipped) {
218
+ // - URL doesn't include Base URL
219
+ // - Can we abort earlier so that `logHttpResponse()` and `logHttpRequest()` aren't even called?
220
+ // - Error loading a Vike config file
221
+ // - We should show `HTTP response ${urlOriginal} ERR` instead.
222
+ // - Maybe we can/should make the error available at pageContext.errorWhileRendering
223
+ (0, utils_js_1.assert)(errorWhileRendering === null || errorWhileRendering === undefined);
224
+ msg = `HTTP response ${picocolors_1.default.bold(urlOriginal)} ${picocolors_1.default.dim('null')}`;
225
+ // Erroneous value (it shoud sometimes be `false`) but it's fine as it doesn't seem to have much of an impact.
226
+ isNominal = true;
227
+ }
228
+ else {
229
+ const isSuccess = statusCode !== null && statusCode >= 200 && statusCode <= 399;
230
+ isNominal = isSuccess || statusCode === 404;
231
+ const color = (s) => picocolors_1.default.bold(isSuccess ? picocolors_1.default.green(String(s)) : picocolors_1.default.red(String(s)));
232
+ const isRedirect = statusCode && 300 <= statusCode && statusCode <= 399;
233
+ const type = isRedirect ? 'redirect' : 'response';
234
+ if (isRedirect) {
235
+ (0, utils_js_1.assert)(pageContextReturn.httpResponse);
236
+ const headerRedirect = pageContextReturn.httpResponse.headers
237
+ .slice()
238
+ .reverse()
239
+ .find((header) => header[0] === 'Location');
240
+ (0, utils_js_1.assert)(headerRedirect);
241
+ const urlRedirect = headerRedirect[1];
242
+ urlOriginal = urlRedirect;
243
+ }
244
+ msg = `HTTP ${type} ${picocolors_1.default.bold(urlOriginal)} ${color(statusCode ?? 'ERR')}`;
245
+ }
233
246
  }
234
- (0, loggerRuntime_js_1.logRuntimeInfo)?.(`HTTP ${type} ${picocolors_1.default.bold(urlOriginal)} ${color(statusCode ?? 'ERR')}`, httpRequestId, isNominal ? 'info' : 'error');
247
+ (0, loggerRuntime_js_1.logRuntimeInfo)?.(msg, httpRequestId, isNominal ? 'info' : 'error');
235
248
  }
236
249
  function getPageContextHttpResponseNullWithError(err, pageContextInit) {
237
250
  const pageContextHttpResponseNull = {};
@@ -48,7 +48,6 @@ __exportStar(require("../../utils/isPropertyGetter.js"), exports);
48
48
  __exportStar(require("../../utils/debug.js"), exports);
49
49
  __exportStar(require("../../utils/urlToFile.js"), exports);
50
50
  __exportStar(require("../../utils/getGlobalObject.js"), exports);
51
- __exportStar(require("../../shared/hooks/executeHook.js"), exports);
52
51
  __exportStar(require("../../utils/freezePartial.js"), exports);
53
52
  __exportStar(require("../../utils/isNpmPackage.js"), exports);
54
53
  __exportStar(require("../../utils/isNotNullish.js"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.assertNoInfiniteAbortLoop = exports.AbortRender = exports.getPageContextFromAllRewrites = exports.logAbortErrorHandled = exports.isAbortPageContext = exports.isAbortError = exports.RenderErrorPage = exports.render = exports.redirect = void 0;
7
+ const executeHook_js_1 = require("../hooks/executeHook.js");
7
8
  const utils_js_1 = require("./utils.js");
8
9
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
9
10
  /**
@@ -121,7 +122,7 @@ function logAbortErrorHandled(err, isProduction, pageContext) {
121
122
  (0, utils_js_1.assert)(urlCurrent);
122
123
  const abortCall = err._pageContextAbort._abortCall;
123
124
  (0, utils_js_1.assert)(abortCall);
124
- const hookLoc = (0, utils_js_1.isUserHookError)(err);
125
+ const hookLoc = (0, executeHook_js_1.isUserHookError)(err);
125
126
  let thrownBy = '';
126
127
  if (hookLoc) {
127
128
  thrownBy = ` by ${picocolors_1.default.cyan(`${hookLoc.hookName}()`)} hook defined at ${hookLoc.hookFilePath}`;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeGuardHook = void 0;
4
4
  const getHook_js_1 = require("../hooks/getHook.js");
5
5
  const utils_js_1 = require("./utils.js");
6
+ const executeHook_js_1 = require("../hooks/executeHook.js");
6
7
  const errIntro = 'The guard() hook defined by';
7
8
  async function executeGuardHook(pageContext, prepareForUserConsumption) {
8
9
  let hook;
@@ -22,7 +23,7 @@ async function executeGuardHook(pageContext, prepareForUserConsumption) {
22
23
  const res = prepareForUserConsumption(pageContext);
23
24
  if (res)
24
25
  pageContextForUserConsumption = res;
25
- const hookResult = await (0, utils_js_1.executeHook)(() => guard(pageContextForUserConsumption), hook);
26
+ const hookResult = await (0, executeHook_js_1.executeHook)(() => guard(pageContextForUserConsumption), hook);
26
27
  (0, utils_js_1.assertUsage)(hookResult === undefined, `${errIntro} ${hook.hookFilePath} returns a value, but guard() shouldn't return any value`);
27
28
  }
28
29
  exports.executeGuardHook = executeGuardHook;
@@ -8,6 +8,7 @@ const assertPageContextProvidedByUser_js_1 = require("../assertPageContextProvid
8
8
  const utils_js_1 = require("./utils.js");
9
9
  const resolveRouteFunction_js_1 = require("./resolveRouteFunction.js");
10
10
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
11
+ const executeHook_js_1 = require("../hooks/executeHook.js");
11
12
  async function executeOnBeforeRouteHook(pageContext) {
12
13
  const pageContextFromOnBeforeRouteHook = {};
13
14
  if (!pageContext._onBeforeRouteHook)
@@ -41,7 +42,7 @@ async function getPageContextFromHook(onBeforeRouteHook, pageContext) {
41
42
  let hookReturn = onBeforeRouteHook.hookFn(pageContext);
42
43
  (0, resolveRouteFunction_js_1.assertSyncRouting)(hookReturn, `The onBeforeRoute() hook ${onBeforeRouteHook.hookFilePath}`);
43
44
  // TODO/v1-release: make executeOnBeforeRouteHook() and route() sync
44
- hookReturn = await (0, utils_js_1.executeHook)(() => hookReturn, onBeforeRouteHook);
45
+ hookReturn = await (0, executeHook_js_1.executeHook)(() => hookReturn, onBeforeRouteHook);
45
46
  const errPrefix = `The onBeforeRoute() hook defined by ${onBeforeRouteHook.hookFilePath}`;
46
47
  (0, utils_js_1.assertUsage)(hookReturn === null ||
47
48
  hookReturn === undefined ||
@@ -35,7 +35,6 @@ __exportStar(require("../../utils/isStringRecord.js"), exports);
35
35
  __exportStar(require("../../utils/unique.js"), exports);
36
36
  __exportStar(require("../../utils/isBrowser.js"), exports);
37
37
  __exportStar(require("../../utils/parseUrl.js"), exports);
38
- __exportStar(require("../hooks/executeHook.js"), exports);
39
38
  __exportStar(require("../../utils/checkType.js"), exports);
40
39
  __exportStar(require("../../utils/joinEnglish.js"), exports);
41
40
  __exportStar(require("../../utils/projectInfo.js"), exports);
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isBug = exports.overwriteAssertProductionLogger = exports.getAssertErrMsg = exports.addOnBeforeLogHook = exports.getProjectError = exports.assertInfo = exports.assertWarning = exports.assertUsage = exports.assert = void 0;
7
+ const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
7
8
  const createErrorWithCleanStackTrace_js_1 = require("./createErrorWithCleanStackTrace.js");
8
9
  const getGlobalObject_js_1 = require("./getGlobalObject.js");
9
10
  const isObject_js_1 = require("./isObject.js");
@@ -22,6 +23,7 @@ const globalObject = (0, getGlobalObject_js_1.getGlobalObject)('utils/assert.ts'
22
23
  },
23
24
  showStackTraceList: new WeakSet()
24
25
  });
26
+ (0, assertSingleInstance_js_1.onAssertModuleLoad)();
25
27
  const projectTag = `[vike]`;
26
28
  const projectTagWithVersion = `[vike@${projectInfo_js_1.projectInfo.projectVersion}]`;
27
29
  const numberOfStackTraceLinesToRemove = 2;
@@ -10,6 +10,7 @@ const filesystemPathHandling_js_1 = require("./filesystemPathHandling.js");
10
10
  /** Assert path is absolute from the filesystem root */
11
11
  function assertPathIsFilesystemAbsolute(p) {
12
12
  (0, filesystemPathHandling_js_1.assertPosixPath)(p);
13
+ (0, assert_js_1.assert)(!p.startsWith('/@fs/'));
13
14
  if (process.platform === 'win32') {
14
15
  (0, assert_js_1.assert)(path_1.default.win32.isAbsolute(p));
15
16
  }
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.onProjectInfo = exports.onClientEntry_ClientRouting = exports.onClientEntry_ServerRouting = void 0;
3
+ exports.onAssertModuleLoad = exports.onClientEntry_ClientRouting = exports.onClientEntry_ServerRouting = void 0;
4
4
  // - Throw error if there are two different versions of vike loaded
5
5
  // - Show warning if entry of Client Routing and entry of Server Routing are both loaded
6
6
  // - Show warning if vike is loaded twice
7
7
  const unique_js_1 = require("./unique.js");
8
8
  const getGlobalObject_js_1 = require("./getGlobalObject.js");
9
+ const projectInfo_js_1 = require("./projectInfo.js");
9
10
  /* Use original assertUsage() & assertWarning() after all CJS is removed from node_modules/vike/dist/
10
11
  import { assertUsage, assertWarning } from './assert.js'
11
12
  */
@@ -60,12 +61,12 @@ function onClientEntry_ClientRouting(isProduction) {
60
61
  assertSingleInstance();
61
62
  }
62
63
  exports.onClientEntry_ClientRouting = onClientEntry_ClientRouting;
63
- // Called by utils/projectInfo.ts which is loaded by all entries (since utils/asserts.ts depends on utils/projectInfo.ts, we can have confidence that onProjectInfo() is called by each entry). That way we don't have to call a callback for every entry (there are a *lot* of entries: `client/router/`, `client/`, `node/runtime/`, `node/plugin/`, `node/cli`).
64
- function onProjectInfo(projectVersion) {
65
- globalObject.instances.push(projectVersion);
64
+ // Called by utils/assert.ts which is (most certainly) loaded by all entries. That way we don't have to call a callback for every entry. (There are a lot of entries: `client/router/`, `client/`, `node/runtime/`, `node/plugin/`, `node/cli`.)
65
+ function onAssertModuleLoad() {
66
+ globalObject.instances.push(projectInfo_js_1.projectInfo.projectVersion);
66
67
  assertSingleInstance();
67
68
  }
68
- exports.onProjectInfo = onProjectInfo;
69
+ exports.onAssertModuleLoad = onAssertModuleLoad;
69
70
  function assertUsage(condition, errorMessage) {
70
71
  if (condition) {
71
72
  return;
@@ -25,9 +25,12 @@ exports.isVersionOrAbove = isVersionOrAbove;
25
25
  function parseVersion(version) {
26
26
  // Remove pre-release tag
27
27
  version = version.split('-')[0];
28
+ let partsStr = version.split('.');
29
+ // Git seems to be using a fourth number: https://github.com/git/git/tree/master/Documentation/RelNotes
30
+ partsStr = partsStr.slice(0, 3);
28
31
  // major.minor.patch
29
- const partsStr = version.split('.');
30
32
  (0, assert_js_1.assert)(partsStr.length === 3);
33
+ (0, assert_js_1.assert)(partsStr.every((s) => s.length > 0));
31
34
  const parts = partsStr.map((s) => parseInt(s, 10));
32
35
  return parts;
33
36
  }
@@ -1,13 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGlobalObject = void 0;
3
+ exports.assertIsSingleModuleInstance = exports.getGlobalObject = void 0;
4
+ const assert_js_1 = require("./assert.js");
5
+ const projectInfo_js_1 = require("./projectInfo.js");
6
+ const projectKey = `_${projectInfo_js_1.projectInfo.projectName.toLowerCase()}`;
7
+ /** Share information across module instances. */
4
8
  function getGlobalObject(
5
- // We use the filename as key; each `getGlobalObject()` call should live inside a file with a unique filename.
9
+ // 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.
6
10
  key, defaultValue) {
7
- // @ts-ignore
8
- const globalObjectsAll = (globalThis[projectKey] = globalThis[projectKey] || {});
9
- const globalObject = (globalObjectsAll[key] = globalObjectsAll[key] || defaultValue);
11
+ const globalObjects = getGlobalObjects();
12
+ const globalObject = (globalObjects[key] = globalObjects[key] || defaultValue);
10
13
  return globalObject;
11
14
  }
12
15
  exports.getGlobalObject = getGlobalObject;
13
- const projectKey = '_vike';
16
+ /** Assert that the module is instantiated only once. */
17
+ function assertIsSingleModuleInstance(
18
+ // We use the filename (or file path) as key.
19
+ key) {
20
+ const globalObjects = getGlobalObjects();
21
+ (0, assert_js_1.assert)(!(key in globalObjects));
22
+ }
23
+ exports.assertIsSingleModuleInstance = assertIsSingleModuleInstance;
24
+ function getGlobalObjects() {
25
+ // @ts-ignore
26
+ const globalObjects = (globalThis[projectKey] = globalThis[projectKey] || {});
27
+ return globalObjects;
28
+ }
@@ -1,33 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDistinguishable = exports.parse = exports.isValidPathAlias = exports.getNpmPackageImportPath = exports.getNpmPackageName = exports.isNpmPackageName = exports.isNpmPackageImport = void 0;
3
+ exports.isDistinguishable = exports.parse = exports.isValidPathAlias = exports.assertIsNpmPackageImport = exports.isNpmPackageImport = void 0;
4
4
  const assert_js_1 = require("./assert.js");
5
5
  const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
6
6
  (0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
7
- function isNpmPackageImport(str) {
7
+ function isNpmPackageImport(str, { cannotBePathAlias }) {
8
+ // We cannot distinguish path alises that look like npm package imports
9
+ (0, assert_js_1.assert)(cannotBePathAlias);
8
10
  const res = parse(str);
9
11
  return res !== null;
10
12
  }
11
13
  exports.isNpmPackageImport = isNpmPackageImport;
14
+ function assertIsNpmPackageImport(str) {
15
+ (0, assert_js_1.assert)(isNpmPackageImport(str, {
16
+ // If `str` is a path alias that looks like an npm package => assertIsNpmPackageImport() is erroneous but that's okay because the assertion will eventually fail for some other user using a disambiguated path alias.
17
+ cannotBePathAlias: true
18
+ }));
19
+ }
20
+ exports.assertIsNpmPackageImport = assertIsNpmPackageImport;
12
21
  function isNpmPackageName(str) {
13
22
  const res = parse(str);
14
23
  return res !== null && res.importPath === null;
15
24
  }
16
- exports.isNpmPackageName = isNpmPackageName;
17
25
  function getNpmPackageName(str) {
18
26
  const res = parse(str);
19
27
  if (!res)
20
28
  return null;
21
29
  return res.pkgName;
22
30
  }
23
- exports.getNpmPackageName = getNpmPackageName;
24
31
  function getNpmPackageImportPath(str) {
25
32
  const res = parse(str);
26
33
  if (!res)
27
34
  return null;
28
35
  return res.importPath;
29
36
  }
30
- exports.getNpmPackageImportPath = getNpmPackageImportPath;
31
37
  function isValidPathAlias(alias) {
32
38
  // Cannot be distinguished from npm package names
33
39
  if (!isDistinguishable(alias))
@@ -10,7 +10,14 @@ exports.isUriWithProtocol = exports.createUrlFromComponents = exports.assertUrlC
10
10
  const slice_js_1 = require("./slice.js");
11
11
  const assert_js_1 = require("./assert.js");
12
12
  const picocolors_1 = __importDefault(require("@brillout/picocolors"));
13
- const PROTOCOLS = ['http://', 'https://', 'tauri://'];
13
+ const PROTOCOLS = [
14
+ 'http://',
15
+ 'https://',
16
+ // For [Tauri](https://tauri.app/)
17
+ 'tauri://',
18
+ // For Electron: https://github.com/vikejs/vike/issues/1557
19
+ 'file://'
20
+ ];
14
21
  function isParsable(url) {
15
22
  // `parseUrl()` works with these URLs
16
23
  return (PROTOCOLS.some((p) => url.startsWith(p)) ||
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROJECT_VERSION = exports.projectInfo = void 0;
4
- const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
5
- const PROJECT_VERSION = '0.4.165';
4
+ const PROJECT_VERSION = '0.4.166-commit-6a8acaa';
6
5
  exports.PROJECT_VERSION = PROJECT_VERSION;
7
6
  const projectInfo = {
8
7
  projectName: 'Vike',
9
8
  projectVersion: PROJECT_VERSION
10
9
  };
11
10
  exports.projectInfo = projectInfo;
12
- // Trick: since `utils/asserts.ts` depends on this file (`utils/projectInfo.ts`), we can have confidence that this file is always instantiated. So that we don't have to initialize this code snippet at every possible entry. (There are a *lot* of entries: `client/router/`, `client/`, `node/`, `node/plugin/`, `node/cli`, etc.)
13
- (0, assertSingleInstance_js_1.onProjectInfo)(projectInfo.projectVersion);
@@ -2,7 +2,7 @@ export { initHistoryState, getHistoryState, pushHistory, ScrollPosition, saveScr
2
2
  type HistoryState = {
3
3
  timestamp?: number;
4
4
  scrollPosition?: null | ScrollPosition;
5
- triggedBy?: 'user' | 'vike' | 'browser';
5
+ triggeredBy?: 'user' | 'vike' | 'browser';
6
6
  };
7
7
  type ScrollPosition = {
8
8
  x: number;
@@ -21,8 +21,8 @@ function initHistoryState() {
21
21
  hasModifications = true;
22
22
  state.scrollPosition = getScrollPosition();
23
23
  }
24
- if (!('triggedBy' in state)) {
25
- state.triggedBy = 'browser';
24
+ if (!('triggeredBy' in state)) {
25
+ state.triggeredBy = 'browser';
26
26
  }
27
27
  assertState(state);
28
28
  if (hasModifications) {
@@ -49,7 +49,7 @@ function saveScrollPosition() {
49
49
  function pushHistory(url, overwriteLastHistoryEntry) {
50
50
  if (!overwriteLastHistoryEntry) {
51
51
  const timestamp = getTimestamp();
52
- pushHistoryState({ timestamp, scrollPosition: null, triggedBy: 'vike' }, url);
52
+ pushHistoryState({ timestamp, scrollPosition: null, triggeredBy: 'vike' }, url);
53
53
  }
54
54
  else {
55
55
  replaceHistoryState(getHistoryState(), url);
@@ -82,8 +82,8 @@ function monkeyPatchHistoryPushState() {
82
82
  scrollPosition: getScrollPosition(),
83
83
  timestamp: getTimestamp(),
84
84
  ...stateFromUser,
85
- // Don't allow user to overwrite triggedBy as it would break Vike's handling of the 'popstate' event
86
- triggedBy: 'user'
85
+ // Don't allow user to overwrite triggeredBy as it would break Vike's handling of the 'popstate' event
86
+ triggeredBy: 'user'
87
87
  };
88
88
  return pushStateOriginal(state, ...rest);
89
89
  };