@sveltejs/kit 2.1.0 → 2.1.2
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.
- package/package.json +1 -1
- package/src/exports/public.d.ts +1 -0
- package/src/runtime/client/client.js +15 -11
- package/src/utils/routing.js +7 -2
- package/src/utils/url.js +5 -3
- package/src/version.js +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
package/src/exports/public.d.ts
CHANGED
|
@@ -349,6 +349,7 @@ export interface KitConfig {
|
|
|
349
349
|
};
|
|
350
350
|
/**
|
|
351
351
|
* Whether or not the app is embedded inside a larger app. If `true`, SvelteKit will add its event listeners related to navigation etc on the parent of `%sveltekit.body%` instead of `window`, and will pass `params` from the server rather than inferring them from `location.pathname`.
|
|
352
|
+
* Note that it is generally not supported to embed multiple SvelteKit apps on the same page and use client-side SvelteKit features within them (things such as pushing to the history state assume a single instance).
|
|
352
353
|
* @default false
|
|
353
354
|
*/
|
|
354
355
|
embedded?: boolean;
|
|
@@ -441,10 +441,19 @@ async function get_navigation_result_from_branch({
|
|
|
441
441
|
}) {
|
|
442
442
|
/** @type {import('types').TrailingSlash} */
|
|
443
443
|
let slash = 'never';
|
|
444
|
-
|
|
445
|
-
|
|
444
|
+
|
|
445
|
+
// if `paths.base === '/a/b/c`, then the root route is always `/a/b/c/`, regardless of
|
|
446
|
+
// the `trailingSlash` route option, so that relative paths to JS and CSS work
|
|
447
|
+
if (base && (url.pathname === base || url.pathname === base + '/')) {
|
|
448
|
+
slash = 'always';
|
|
449
|
+
} else {
|
|
450
|
+
for (const node of branch) {
|
|
451
|
+
if (node?.slash !== undefined) slash = node.slash;
|
|
452
|
+
}
|
|
446
453
|
}
|
|
454
|
+
|
|
447
455
|
url.pathname = normalize_path(url.pathname, slash);
|
|
456
|
+
|
|
448
457
|
// eslint-disable-next-line
|
|
449
458
|
url.search = url.search; // turn `/?` into `/`
|
|
450
459
|
|
|
@@ -694,12 +703,7 @@ async function load_node({ loader, parent, url, params, route, server_data_node
|
|
|
694
703
|
server: server_data_node,
|
|
695
704
|
universal: node.universal?.load ? { type: 'data', data, uses } : null,
|
|
696
705
|
data: data ?? server_data_node?.data ?? null,
|
|
697
|
-
|
|
698
|
-
// the `trailingSlash` route option, so that relative paths to JS and CSS work
|
|
699
|
-
slash:
|
|
700
|
-
base && (url.pathname === base || url.pathname === base + '/')
|
|
701
|
-
? 'always'
|
|
702
|
-
: node.universal?.trailingSlash ?? server_data_node?.slash
|
|
706
|
+
slash: node.universal?.trailingSlash ?? server_data_node?.slash
|
|
703
707
|
};
|
|
704
708
|
}
|
|
705
709
|
|
|
@@ -1117,7 +1121,7 @@ function _before_navigate({ url, type, intent, delta }) {
|
|
|
1117
1121
|
...nav.navigation,
|
|
1118
1122
|
cancel: () => {
|
|
1119
1123
|
should_block = true;
|
|
1120
|
-
nav.reject(new Error('navigation
|
|
1124
|
+
nav.reject(new Error('navigation cancelled'));
|
|
1121
1125
|
}
|
|
1122
1126
|
};
|
|
1123
1127
|
|
|
@@ -1206,7 +1210,7 @@ async function navigate({
|
|
|
1206
1210
|
|
|
1207
1211
|
// abort if user navigated during update
|
|
1208
1212
|
if (token !== nav_token) {
|
|
1209
|
-
nav.reject(new Error('navigation
|
|
1213
|
+
nav.reject(new Error('navigation aborted'));
|
|
1210
1214
|
return false;
|
|
1211
1215
|
}
|
|
1212
1216
|
|
|
@@ -1899,7 +1903,7 @@ function _start_router() {
|
|
|
1899
1903
|
...nav.navigation,
|
|
1900
1904
|
cancel: () => {
|
|
1901
1905
|
should_block = true;
|
|
1902
|
-
nav.reject(new Error('navigation
|
|
1906
|
+
nav.reject(new Error('navigation cancelled'));
|
|
1903
1907
|
}
|
|
1904
1908
|
};
|
|
1905
1909
|
|
package/src/utils/routing.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { BROWSER } from 'esm-env';
|
|
2
|
+
|
|
1
3
|
const param_pattern = /^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;
|
|
2
4
|
|
|
3
5
|
/**
|
|
@@ -62,8 +64,11 @@ export function parse_route_id(id) {
|
|
|
62
64
|
);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
|
|
66
|
-
if
|
|
67
|
+
// We know the match cannot be null in the browser because manifest generation
|
|
68
|
+
// would have invoked this during build and failed if we hit an invalid
|
|
69
|
+
// param/matcher name with non-alphanumeric character.
|
|
70
|
+
const match = /** @type {RegExpExecArray} */ (param_pattern.exec(content));
|
|
71
|
+
if (!BROWSER && !match) {
|
|
67
72
|
throw new Error(
|
|
68
73
|
`Invalid param: ${content}. Params and matcher names can only have underscores and alphanumeric characters.`
|
|
69
74
|
);
|
package/src/utils/url.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BROWSER } from 'esm-env';
|
|
1
|
+
import { BROWSER, DEV } from 'esm-env';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Matches a URI scheme. See https://www.rfc-editor.org/rfc/rfc3986#section-3.1
|
|
@@ -146,7 +146,9 @@ export function make_trackable(url, callback, search_params_callback) {
|
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
|
|
149
|
+
if (DEV || !BROWSER) {
|
|
150
|
+
disable_hash(tracked);
|
|
151
|
+
}
|
|
150
152
|
|
|
151
153
|
return tracked;
|
|
152
154
|
}
|
|
@@ -155,7 +157,7 @@ export function make_trackable(url, callback, search_params_callback) {
|
|
|
155
157
|
* Disallow access to `url.hash` on the server and in `load`
|
|
156
158
|
* @param {URL} url
|
|
157
159
|
*/
|
|
158
|
-
|
|
160
|
+
function disable_hash(url) {
|
|
159
161
|
allow_nodejs_console_log(url);
|
|
160
162
|
|
|
161
163
|
Object.defineProperty(url, 'hash', {
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -331,6 +331,7 @@ declare module '@sveltejs/kit' {
|
|
|
331
331
|
};
|
|
332
332
|
/**
|
|
333
333
|
* Whether or not the app is embedded inside a larger app. If `true`, SvelteKit will add its event listeners related to navigation etc on the parent of `%sveltekit.body%` instead of `window`, and will pass `params` from the server rather than inferring them from `location.pathname`.
|
|
334
|
+
* Note that it is generally not supported to embed multiple SvelteKit apps on the same page and use client-side SvelteKit features within them (things such as pushing to the history state assume a single instance).
|
|
334
335
|
* @default false
|
|
335
336
|
*/
|
|
336
337
|
embedded?: boolean;
|
package/types/index.d.ts.map
CHANGED
|
@@ -143,5 +143,5 @@
|
|
|
143
143
|
null,
|
|
144
144
|
null
|
|
145
145
|
],
|
|
146
|
-
"mappings": ";;;;;;;;;kBA2BiBA,OAAOA;;;;;;;;;;;;aAYZC,cAAcA;;;;;;aAMdC,cAAcA;;;;;;;;;;;;;;;kBAeTC,aAAaA;;;;;;;;;;;;;;;;kBAgBbC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4FPC,MAAMA;;;;;;;;;;;;;;;;;;;;;kBAqBNC,OAAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyDPC,SAASA
|
|
146
|
+
"mappings": "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"
|
|
147
147
|
}
|