vike 0.4.197-commit-9330153 → 0.4.197-commit-6410424

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.
@@ -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.197-commit-9330153';
5
+ exports.PROJECT_VERSION = '0.4.197-commit-6410424';
@@ -7,12 +7,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.parseUrl = parseUrl;
10
- exports.assertUsageUrlPathname = assertUsageUrlPathname;
11
10
  exports.assertUsageUrlPathnameAbsolute = assertUsageUrlPathnameAbsolute;
12
11
  exports.assertUsageUrlRedirectTarget = assertUsageUrlRedirectTarget;
13
12
  exports.isUrl = isUrl;
14
13
  exports.isUri = isUri;
15
14
  exports.isUrlRedirectTarget = isUrlRedirectTarget;
15
+ exports.isUrlPathnameRelative = isUrlPathnameRelative;
16
16
  exports.isUrlExternal = isUrlExternal;
17
17
  exports.isBaseServer = isBaseServer;
18
18
  exports.assertUrlComponents = assertUrlComponents;
@@ -297,16 +297,13 @@ function isUri(uri) {
297
297
  const { protocol } = parseProtocol(uri);
298
298
  return !!protocol && !isUrlProtocol(uri);
299
299
  }
300
- function assertUsageUrlPathname(url, errPrefix) {
301
- assertUsageUrl(url, errPrefix, { allowRelative: true });
302
- }
303
300
  function assertUsageUrlPathnameAbsolute(url, errPrefix) {
304
301
  assertUsageUrl(url, errPrefix);
305
302
  }
306
303
  function assertUsageUrlRedirectTarget(url, errPrefix, isUnresolved) {
307
304
  assertUsageUrl(url, errPrefix, { isRedirectTarget: isUnresolved ? 'unresolved' : true });
308
305
  }
309
- function assertUsageUrl(url, errPrefix, { allowRelative, isRedirectTarget } = {}) {
306
+ function assertUsageUrl(url, errPrefix, { isRedirectTarget } = {}) {
310
307
  if (url.startsWith('/'))
311
308
  return;
312
309
  let errMsg = `${errPrefix} is ${picocolors_1.default.string(url)} but it should start with ${picocolors_1.default.string('/')}`;
@@ -320,10 +317,5 @@ function assertUsageUrl(url, errPrefix, { allowRelative, isRedirectTarget } = {}
320
317
  errMsg += `, or be ${picocolors_1.default.string('*')}`;
321
318
  }
322
319
  }
323
- if (allowRelative) {
324
- if (isUrlPathnameRelative(url))
325
- return;
326
- errMsg += ', or be a relative URL';
327
- }
328
320
  (0, assert_js_1.assertUsage)(false, errMsg);
329
321
  }
@@ -1,7 +1,8 @@
1
1
  export { navigate };
2
2
  export { reload };
3
+ import { normalizeUrlArgument } from './normalizeUrlArgument.js';
3
4
  import { firstRenderStartPromise, renderPageClientSide } from './renderPageClientSide.js';
4
- import { assertClientRouting, assertUsageUrlPathname, getCurrentUrl } from './utils.js';
5
+ import { assertClientRouting, getCurrentUrl } from './utils.js';
5
6
  assertClientRouting();
6
7
  /** Programmatically navigate to a new page.
7
8
  *
@@ -12,7 +13,7 @@ assertClientRouting();
12
13
  * @param overwriteLastHistoryEntry - Don't create a new entry in the browser's history, instead let the new URL replace the current URL. (This effectively removes the current URL from the browser history).
13
14
  */
14
15
  async function navigate(url, { keepScrollPosition = false, overwriteLastHistoryEntry = false } = {}) {
15
- assertUsageUrlPathname(url, '[navigate(url)] url');
16
+ normalizeUrlArgument(url, 'navigate');
16
17
  // If `hydrationCanBeAborted === false` (e.g. Vue) then we can apply navigate() only after hydration is done
17
18
  await firstRenderStartPromise;
18
19
  const scrollTarget = { preserveScroll: keepScrollPosition };
@@ -0,0 +1,2 @@
1
+ export { normalizeUrlArgument };
2
+ declare function normalizeUrlArgument(url: string, fnName: 'prefetch' | 'navigate'): string;
@@ -0,0 +1,14 @@
1
+ export { normalizeUrlArgument };
2
+ import { assertUsage, isUrl, isUrlPathnameRelative } from './utils.js';
3
+ function normalizeUrlArgument(url, fnName) {
4
+ // Succinct error message to save client-side KBs
5
+ const errMsg = `[${fnName}(url)] Invalid URL ${url}`;
6
+ assertUsage(isUrl(url), errMsg);
7
+ if (url.startsWith(location.origin)) {
8
+ url = url.slice(location.origin.length);
9
+ }
10
+ assertUsage(url.startsWith('/') || isUrlPathnameRelative(url),
11
+ // `errMsg` used the original `url` value
12
+ errMsg);
13
+ return url;
14
+ }
@@ -5,7 +5,7 @@ export { populatePageContextPrefetchCache };
5
5
  export { addLinkPrefetchHandlers };
6
6
  export { addLinkPrefetchHandlers_watch };
7
7
  export { addLinkPrefetchHandlers_unwatch };
8
- import { assert, assertClientRouting, assertUsage, assertUsageUrlPathname, assertWarning, checkIfClientRouting, getGlobalObject, hasProp, objectAssign } from './utils.js';
8
+ import { assert, assertClientRouting, assertUsage, assertWarning, checkIfClientRouting, getGlobalObject, hasProp, objectAssign } from './utils.js';
9
9
  import { isErrorFetchingStaticAssets, loadUserFilesClientSide } from '../shared/loadUserFilesClientSide.js';
10
10
  import { skipLink } from './skipLink.js';
11
11
  import { disableClientRouting } from './renderPageClientSide.js';
@@ -17,6 +17,7 @@ import { getPageContextFromServerHooks } from './getPageContextFromHooks.js';
17
17
  import { getPageContextCurrent } from './getPageContextCurrent.js';
18
18
  import { PAGE_CONTEXT_MAX_AGE_DEFAULT, getPrefetchSettings } from './prefetch/getPrefetchSettings.js';
19
19
  import pc from '@brillout/picocolors';
20
+ import { normalizeUrlArgument } from './normalizeUrlArgument.js';
20
21
  assertClientRouting();
21
22
  const globalObject = getGlobalObject('prefetch.ts', {
22
23
  linkPrefetchHandlerAdded: new WeakSet(),
@@ -96,11 +97,10 @@ async function prefetch(url, options) {
96
97
  assertUsage(checkIfClientRouting(), 'prefetch() only works with Client Routing, see https://vike.dev/prefetch', {
97
98
  showStackTrace: true
98
99
  });
99
- const errPrefix = '[prefetch(url)] url';
100
- assertUsageUrlPathname(url, errPrefix);
100
+ url = normalizeUrlArgument(url, 'prefetch');
101
101
  const pageContextLink = await getPageContextLink(url);
102
102
  if (!pageContextLink?.pageId) {
103
- assertWarning(false, `${errPrefix} ${pc.string(url)} ${noRouteMatch}`, {
103
+ assertWarning(false, `[prefetch(url)] ${pc.string(url)} ${noRouteMatch}`, {
104
104
  showStackTrace: true,
105
105
  onlyOnce: false
106
106
  });
@@ -1 +1 @@
1
- export declare const PROJECT_VERSION: "0.4.197-commit-9330153";
1
+ export declare const PROJECT_VERSION: "0.4.197-commit-6410424";
@@ -1,2 +1,2 @@
1
1
  // Automatically updated by @brillout/release-me
2
- export const PROJECT_VERSION = '0.4.197-commit-9330153';
2
+ export const PROJECT_VERSION = '0.4.197-commit-6410424';
@@ -1,10 +1,10 @@
1
1
  export { parseUrl };
2
- export { assertUsageUrlPathname };
3
2
  export { assertUsageUrlPathnameAbsolute };
4
3
  export { assertUsageUrlRedirectTarget };
5
4
  export { isUrl };
6
5
  export { isUri };
7
6
  export { isUrlRedirectTarget };
7
+ export { isUrlPathnameRelative };
8
8
  export { isUrlExternal };
9
9
  export { isBaseServer };
10
10
  export { assertUrlComponents };
@@ -50,8 +50,8 @@ declare function assertUrlComponents(url: string, origin: string | null, pathnam
50
50
  declare function createUrlFromComponents(origin: string | null, pathname: string, search: string | null, hash: string | null): string;
51
51
  declare function isUrl(url: string): boolean;
52
52
  declare function isUrlRedirectTarget(url: string): boolean;
53
+ declare function isUrlPathnameRelative(url: string): boolean;
53
54
  declare function isUrlExternal(url: string): boolean;
54
55
  declare function isUri(uri: string): boolean;
55
- declare function assertUsageUrlPathname(url: string, errPrefix: string): void;
56
56
  declare function assertUsageUrlPathnameAbsolute(url: string, errPrefix: string): void;
57
57
  declare function assertUsageUrlRedirectTarget(url: string, errPrefix: string, isUnresolved?: true): void;
@@ -3,12 +3,12 @@
3
3
  // - It doesn't support the tauri:// protocol
4
4
  // Unit tests at ./parseUrl.spec.ts
5
5
  export { parseUrl };
6
- export { assertUsageUrlPathname };
7
6
  export { assertUsageUrlPathnameAbsolute };
8
7
  export { assertUsageUrlRedirectTarget };
9
8
  export { isUrl };
10
9
  export { isUri };
11
10
  export { isUrlRedirectTarget };
11
+ export { isUrlPathnameRelative };
12
12
  export { isUrlExternal };
13
13
  export { isBaseServer };
14
14
  export { assertUrlComponents };
@@ -293,16 +293,13 @@ function isUri(uri) {
293
293
  const { protocol } = parseProtocol(uri);
294
294
  return !!protocol && !isUrlProtocol(uri);
295
295
  }
296
- function assertUsageUrlPathname(url, errPrefix) {
297
- assertUsageUrl(url, errPrefix, { allowRelative: true });
298
- }
299
296
  function assertUsageUrlPathnameAbsolute(url, errPrefix) {
300
297
  assertUsageUrl(url, errPrefix);
301
298
  }
302
299
  function assertUsageUrlRedirectTarget(url, errPrefix, isUnresolved) {
303
300
  assertUsageUrl(url, errPrefix, { isRedirectTarget: isUnresolved ? 'unresolved' : true });
304
301
  }
305
- function assertUsageUrl(url, errPrefix, { allowRelative, isRedirectTarget } = {}) {
302
+ function assertUsageUrl(url, errPrefix, { isRedirectTarget } = {}) {
306
303
  if (url.startsWith('/'))
307
304
  return;
308
305
  let errMsg = `${errPrefix} is ${pc.string(url)} but it should start with ${pc.string('/')}`;
@@ -316,10 +313,5 @@ function assertUsageUrl(url, errPrefix, { allowRelative, isRedirectTarget } = {}
316
313
  errMsg += `, or be ${pc.string('*')}`;
317
314
  }
318
315
  }
319
- if (allowRelative) {
320
- if (isUrlPathnameRelative(url))
321
- return;
322
- errMsg += ', or be a relative URL';
323
- }
324
316
  assertUsage(false, errMsg);
325
317
  }
@@ -1,4 +1,4 @@
1
1
  export declare const projectInfo: {
2
2
  projectName: "Vike";
3
- projectVersion: "0.4.197-commit-9330153";
3
+ projectVersion: "0.4.197-commit-6410424";
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vike",
3
- "version": "0.4.197-commit-9330153",
3
+ "version": "0.4.197-commit-6410424",
4
4
  "repository": "https://github.com/vikejs/vike",
5
5
  "exports": {
6
6
  "./server": {