@sveltejs/kit 2.66.0 → 2.67.0
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 +2 -2
- package/src/core/config/options.js +14 -0
- package/src/core/postbuild/crawl.js +22 -6
- package/src/core/postbuild/prerender.js +13 -1
- package/src/exports/public.d.ts +14 -1
- package/src/exports/vite/build/build_service_worker.js +0 -7
- package/src/exports/vite/index.js +2 -2
- package/src/types/private.d.ts +9 -0
- package/src/version.js +1 -1
- package/types/index.d.ts +22 -1
- package/types/index.d.ts.map +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sveltejs/kit",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.67.0",
|
|
4
4
|
"description": "SvelteKit is the fastest way to build Svelte apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"import": "./src/exports/internal/env.js"
|
|
98
98
|
},
|
|
99
99
|
"./internal/types": {
|
|
100
|
-
"
|
|
100
|
+
"types": "./src/exports/internal/types.d.ts"
|
|
101
101
|
},
|
|
102
102
|
"./internal/server": {
|
|
103
103
|
"types": "./types/index.d.ts",
|
|
@@ -281,6 +281,20 @@ export const options = object(
|
|
|
281
281
|
}
|
|
282
282
|
),
|
|
283
283
|
|
|
284
|
+
handleInvalidUrl: validate(
|
|
285
|
+
(/** @type {any} */ { message }) => {
|
|
286
|
+
throw new Error(
|
|
287
|
+
message +
|
|
288
|
+
'\nTo suppress or handle this error, implement `handleInvalidUrl` in https://svelte.dev/docs/kit/configuration#prerender'
|
|
289
|
+
);
|
|
290
|
+
},
|
|
291
|
+
(input, keypath) => {
|
|
292
|
+
if (typeof input === 'function') return input;
|
|
293
|
+
if (['fail', 'warn', 'ignore'].includes(input)) return input;
|
|
294
|
+
throw new Error(`${keypath} should be "fail", "warn", "ignore" or a custom function`);
|
|
295
|
+
}
|
|
296
|
+
),
|
|
297
|
+
|
|
284
298
|
origin: validate('http://sveltekit-prerender', (input, keypath) => {
|
|
285
299
|
assert_string(input, keypath);
|
|
286
300
|
|
|
@@ -38,6 +38,18 @@ export function crawl(html, base) {
|
|
|
38
38
|
/** @type {string[]} */
|
|
39
39
|
const hrefs = [];
|
|
40
40
|
|
|
41
|
+
/** @type {string[]} */
|
|
42
|
+
const invalid = [];
|
|
43
|
+
|
|
44
|
+
/** @param {string} url */
|
|
45
|
+
const push_href = (url) => {
|
|
46
|
+
try {
|
|
47
|
+
hrefs.push(resolve(base, url));
|
|
48
|
+
} catch {
|
|
49
|
+
invalid.push(url);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
41
53
|
let i = 0;
|
|
42
54
|
main: while (i < html.length) {
|
|
43
55
|
const char = html[i];
|
|
@@ -186,9 +198,13 @@ export function crawl(html, base) {
|
|
|
186
198
|
|
|
187
199
|
if (href) {
|
|
188
200
|
if (tag === 'BASE') {
|
|
189
|
-
|
|
201
|
+
try {
|
|
202
|
+
base = resolve(base, href);
|
|
203
|
+
} catch {
|
|
204
|
+
invalid.push(href);
|
|
205
|
+
}
|
|
190
206
|
} else if (!rel || !/\bexternal\b/i.test(rel)) {
|
|
191
|
-
|
|
207
|
+
push_href(href);
|
|
192
208
|
}
|
|
193
209
|
}
|
|
194
210
|
|
|
@@ -201,7 +217,7 @@ export function crawl(html, base) {
|
|
|
201
217
|
}
|
|
202
218
|
|
|
203
219
|
if (src) {
|
|
204
|
-
|
|
220
|
+
push_href(src);
|
|
205
221
|
}
|
|
206
222
|
|
|
207
223
|
if (srcset) {
|
|
@@ -222,7 +238,7 @@ export function crawl(html, base) {
|
|
|
222
238
|
candidates.push(value);
|
|
223
239
|
for (const candidate of candidates) {
|
|
224
240
|
const src = candidate.split(WHITESPACE)[0];
|
|
225
|
-
if (src)
|
|
241
|
+
if (src) push_href(src);
|
|
226
242
|
}
|
|
227
243
|
}
|
|
228
244
|
|
|
@@ -230,7 +246,7 @@ export function crawl(html, base) {
|
|
|
230
246
|
const attr = name ?? property;
|
|
231
247
|
|
|
232
248
|
if (attr && CRAWLABLE_META_NAME_ATTRS.has(attr)) {
|
|
233
|
-
|
|
249
|
+
push_href(content);
|
|
234
250
|
}
|
|
235
251
|
}
|
|
236
252
|
}
|
|
@@ -239,5 +255,5 @@ export function crawl(html, base) {
|
|
|
239
255
|
i += 1;
|
|
240
256
|
}
|
|
241
257
|
|
|
242
|
-
return { ids, hrefs };
|
|
258
|
+
return { ids, hrefs, invalid };
|
|
243
259
|
}
|
|
@@ -178,6 +178,14 @@ async function prerender({ hash, out, manifest_path, metadata, verbose, env }) {
|
|
|
178
178
|
}
|
|
179
179
|
);
|
|
180
180
|
|
|
181
|
+
const handle_invalid_url = normalise_error_handler(
|
|
182
|
+
log,
|
|
183
|
+
config.prerender.handleInvalidUrl,
|
|
184
|
+
({ href, referrer }) => {
|
|
185
|
+
return `Invalid URL ${href}${referrer ? ` (linked from ${referrer})` : ''}`;
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
|
|
181
189
|
const q = queue(config.prerender.concurrency);
|
|
182
190
|
|
|
183
191
|
/**
|
|
@@ -332,7 +340,11 @@ async function prerender({ hash, out, manifest_path, metadata, verbose, env }) {
|
|
|
332
340
|
|
|
333
341
|
// if it's a 200 HTML response, crawl it. Skip error responses, as we don't save those
|
|
334
342
|
if (response.ok && config.prerender.crawl && headers['content-type'] === 'text/html') {
|
|
335
|
-
const { ids, hrefs } = crawl(body.toString(), decoded);
|
|
343
|
+
const { ids, hrefs, invalid } = crawl(body.toString(), decoded);
|
|
344
|
+
|
|
345
|
+
for (const href of invalid) {
|
|
346
|
+
handle_invalid_url({ href, referrer: decoded });
|
|
347
|
+
}
|
|
336
348
|
|
|
337
349
|
actual_hashlinks.set(decoded, ids);
|
|
338
350
|
|
package/src/exports/public.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
Prerendered,
|
|
12
12
|
PrerenderEntryGeneratorMismatchHandlerValue,
|
|
13
13
|
PrerenderHttpErrorHandlerValue,
|
|
14
|
+
PrerenderInvalidUrlHandlerValue,
|
|
14
15
|
PrerenderMissingIdHandlerValue,
|
|
15
16
|
PrerenderUnseenRoutesHandlerValue,
|
|
16
17
|
PrerenderOption,
|
|
@@ -796,6 +797,18 @@ export interface KitConfig {
|
|
|
796
797
|
* @since 2.16.0
|
|
797
798
|
*/
|
|
798
799
|
handleUnseenRoutes?: PrerenderUnseenRoutesHandlerValue;
|
|
800
|
+
/**
|
|
801
|
+
* How to respond when SvelteKit encounters a URL it cannot parse while crawling prerendered HTML (for example, an AT Protocol URL such as `at://did:plc:...`).
|
|
802
|
+
*
|
|
803
|
+
* - `'fail'` — fail the build
|
|
804
|
+
* - `'ignore'` - silently ignore the failure and continue
|
|
805
|
+
* - `'warn'` — continue, but print a warning
|
|
806
|
+
* - `(details) => void` — a custom error handler that takes a `details` object with `href`, `referrer` and `message` properties. If you `throw` from this function, the build will fail
|
|
807
|
+
*
|
|
808
|
+
* @default "fail"
|
|
809
|
+
* @since 2.67.0
|
|
810
|
+
*/
|
|
811
|
+
handleInvalidUrl?: PrerenderInvalidUrlHandlerValue;
|
|
799
812
|
/**
|
|
800
813
|
* The value of `url.origin` during prerendering; useful if it is included in rendered content.
|
|
801
814
|
* @default "http://sveltekit-prerender"
|
|
@@ -2109,7 +2122,7 @@ type RecursiveFormFields = RemoteFormFieldContainer<any> & {
|
|
|
2109
2122
|
type MaybeArray<T> = T | T[];
|
|
2110
2123
|
|
|
2111
2124
|
export interface RemoteFormInput {
|
|
2112
|
-
[key: string]: MaybeArray<string | number | boolean | File | RemoteFormInput
|
|
2125
|
+
[key: string]: MaybeArray<string | number | boolean | File | RemoteFormInput> | undefined;
|
|
2113
2126
|
}
|
|
2114
2127
|
|
|
2115
2128
|
export interface RemoteFormIssue {
|
|
@@ -165,13 +165,6 @@ export async function build_service_worker(
|
|
|
165
165
|
}
|
|
166
166
|
};
|
|
167
167
|
|
|
168
|
-
// we must reference Vite 8 options conditionally. Otherwise, older Vite
|
|
169
|
-
// versions throw an error about unknown config options
|
|
170
|
-
if (is_rolldown && config?.build?.rollupOptions?.output) {
|
|
171
|
-
// @ts-ignore only available in Vite 8
|
|
172
|
-
config.build.rollupOptions.output.codeSplitting = true;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
168
|
await vite.build(config);
|
|
176
169
|
|
|
177
170
|
// rename .mjs to .js to avoid incorrect MIME types with ancient webservers
|
|
@@ -1147,9 +1147,9 @@ async function kit({ svelte_config }) {
|
|
|
1147
1147
|
|
|
1148
1148
|
// we must reference Vite 8 options conditionally. Otherwise, older Vite
|
|
1149
1149
|
// versions throw an error about unknown config options
|
|
1150
|
-
if (is_rolldown && new_config
|
|
1150
|
+
if (is_rolldown && !split && new_config.build?.rollupOptions?.output) {
|
|
1151
1151
|
// @ts-ignore only available in Vite 8
|
|
1152
|
-
new_config.build.rollupOptions.output.codeSplitting =
|
|
1152
|
+
new_config.build.rollupOptions.output.codeSplitting = false;
|
|
1153
1153
|
}
|
|
1154
1154
|
} else {
|
|
1155
1155
|
new_config = {
|
package/src/types/private.d.ts
CHANGED
|
@@ -224,6 +224,10 @@ export interface PrerenderUnseenRoutesHandler {
|
|
|
224
224
|
(details: { routes: string[]; message: string }): void;
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
export interface PrerenderInvalidUrlHandler {
|
|
228
|
+
(details: { href: string; referrer: string | null; message: string }): void;
|
|
229
|
+
}
|
|
230
|
+
|
|
227
231
|
export type PrerenderHttpErrorHandlerValue = 'fail' | 'warn' | 'ignore' | PrerenderHttpErrorHandler;
|
|
228
232
|
export type PrerenderMissingIdHandlerValue = 'fail' | 'warn' | 'ignore' | PrerenderMissingIdHandler;
|
|
229
233
|
export type PrerenderUnseenRoutesHandlerValue =
|
|
@@ -236,6 +240,11 @@ export type PrerenderEntryGeneratorMismatchHandlerValue =
|
|
|
236
240
|
| 'warn'
|
|
237
241
|
| 'ignore'
|
|
238
242
|
| PrerenderEntryGeneratorMismatchHandler;
|
|
243
|
+
export type PrerenderInvalidUrlHandlerValue =
|
|
244
|
+
| 'fail'
|
|
245
|
+
| 'warn'
|
|
246
|
+
| 'ignore'
|
|
247
|
+
| PrerenderInvalidUrlHandler;
|
|
239
248
|
|
|
240
249
|
export type PrerenderOption = boolean | 'auto';
|
|
241
250
|
|
package/src/version.js
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -770,6 +770,18 @@ declare module '@sveltejs/kit' {
|
|
|
770
770
|
* @since 2.16.0
|
|
771
771
|
*/
|
|
772
772
|
handleUnseenRoutes?: PrerenderUnseenRoutesHandlerValue;
|
|
773
|
+
/**
|
|
774
|
+
* How to respond when SvelteKit encounters a URL it cannot parse while crawling prerendered HTML (for example, an AT Protocol URL such as `at://did:plc:...`).
|
|
775
|
+
*
|
|
776
|
+
* - `'fail'` — fail the build
|
|
777
|
+
* - `'ignore'` - silently ignore the failure and continue
|
|
778
|
+
* - `'warn'` — continue, but print a warning
|
|
779
|
+
* - `(details) => void` — a custom error handler that takes a `details` object with `href`, `referrer` and `message` properties. If you `throw` from this function, the build will fail
|
|
780
|
+
*
|
|
781
|
+
* @default "fail"
|
|
782
|
+
* @since 2.67.0
|
|
783
|
+
*/
|
|
784
|
+
handleInvalidUrl?: PrerenderInvalidUrlHandlerValue;
|
|
773
785
|
/**
|
|
774
786
|
* The value of `url.origin` during prerendering; useful if it is included in rendered content.
|
|
775
787
|
* @default "http://sveltekit-prerender"
|
|
@@ -2083,7 +2095,7 @@ declare module '@sveltejs/kit' {
|
|
|
2083
2095
|
type MaybeArray<T> = T | T[];
|
|
2084
2096
|
|
|
2085
2097
|
export interface RemoteFormInput {
|
|
2086
|
-
[key: string]: MaybeArray<string | number | boolean | File | RemoteFormInput
|
|
2098
|
+
[key: string]: MaybeArray<string | number | boolean | File | RemoteFormInput> | undefined;
|
|
2087
2099
|
}
|
|
2088
2100
|
|
|
2089
2101
|
export interface RemoteFormIssue {
|
|
@@ -2559,6 +2571,10 @@ declare module '@sveltejs/kit' {
|
|
|
2559
2571
|
(details: { routes: string[]; message: string }): void;
|
|
2560
2572
|
}
|
|
2561
2573
|
|
|
2574
|
+
interface PrerenderInvalidUrlHandler {
|
|
2575
|
+
(details: { href: string; referrer: string | null; message: string }): void;
|
|
2576
|
+
}
|
|
2577
|
+
|
|
2562
2578
|
type PrerenderHttpErrorHandlerValue = 'fail' | 'warn' | 'ignore' | PrerenderHttpErrorHandler;
|
|
2563
2579
|
type PrerenderMissingIdHandlerValue = 'fail' | 'warn' | 'ignore' | PrerenderMissingIdHandler;
|
|
2564
2580
|
type PrerenderUnseenRoutesHandlerValue =
|
|
@@ -2571,6 +2587,11 @@ declare module '@sveltejs/kit' {
|
|
|
2571
2587
|
| 'warn'
|
|
2572
2588
|
| 'ignore'
|
|
2573
2589
|
| PrerenderEntryGeneratorMismatchHandler;
|
|
2590
|
+
type PrerenderInvalidUrlHandlerValue =
|
|
2591
|
+
| 'fail'
|
|
2592
|
+
| 'warn'
|
|
2593
|
+
| 'ignore'
|
|
2594
|
+
| PrerenderInvalidUrlHandler;
|
|
2574
2595
|
|
|
2575
2596
|
export type PrerenderOption = boolean | 'auto';
|
|
2576
2597
|
|
package/types/index.d.ts.map
CHANGED
|
@@ -108,10 +108,12 @@
|
|
|
108
108
|
"PrerenderMissingIdHandler",
|
|
109
109
|
"PrerenderEntryGeneratorMismatchHandler",
|
|
110
110
|
"PrerenderUnseenRoutesHandler",
|
|
111
|
+
"PrerenderInvalidUrlHandler",
|
|
111
112
|
"PrerenderHttpErrorHandlerValue",
|
|
112
113
|
"PrerenderMissingIdHandlerValue",
|
|
113
114
|
"PrerenderUnseenRoutesHandlerValue",
|
|
114
115
|
"PrerenderEntryGeneratorMismatchHandlerValue",
|
|
116
|
+
"PrerenderInvalidUrlHandlerValue",
|
|
115
117
|
"PrerenderOption",
|
|
116
118
|
"RequestOptions",
|
|
117
119
|
"RouteSegment",
|
|
@@ -247,6 +249,6 @@
|
|
|
247
249
|
null,
|
|
248
250
|
null
|
|
249
251
|
],
|
|
250
|
-
"mappings": ";;;;;;;;
|
|
252
|
+
"mappings": "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",
|
|
251
253
|
"ignoreList": []
|
|
252
254
|
}
|