@sveltejs/kit 1.0.0-next.227 → 1.0.0-next.228
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/assets/kit.js +41 -30
- package/dist/cli.js +2 -2
- package/dist/ssr.js +41 -30
- package/package.json +1 -1
package/assets/kit.js
CHANGED
|
@@ -537,12 +537,25 @@ function escape(str, dict, unicode_encoder) {
|
|
|
537
537
|
|
|
538
538
|
const s = JSON.stringify;
|
|
539
539
|
|
|
540
|
+
/** @param {URL} url */
|
|
541
|
+
function create_prerendering_url_proxy(url) {
|
|
542
|
+
return new Proxy(url, {
|
|
543
|
+
get: (target, prop, receiver) => {
|
|
544
|
+
if (prop === 'search' || prop === 'searchParams') {
|
|
545
|
+
throw new Error(`Cannot access url.${prop} on a page with prerendering enabled`);
|
|
546
|
+
}
|
|
547
|
+
return Reflect.get(target, prop, receiver);
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
|
|
540
552
|
// TODO rename this function/module
|
|
541
553
|
|
|
542
554
|
/**
|
|
543
555
|
* @param {{
|
|
544
556
|
* branch: Array<import('./types').Loaded>;
|
|
545
557
|
* options: import('types/internal').SSRRenderOptions;
|
|
558
|
+
* state: import('types/internal').SSRRenderState;
|
|
546
559
|
* $session: any;
|
|
547
560
|
* page_config: { hydrate: boolean, router: boolean };
|
|
548
561
|
* status: number;
|
|
@@ -556,6 +569,7 @@ const s = JSON.stringify;
|
|
|
556
569
|
async function render_response({
|
|
557
570
|
branch,
|
|
558
571
|
options,
|
|
572
|
+
state,
|
|
559
573
|
$session,
|
|
560
574
|
page_config,
|
|
561
575
|
status,
|
|
@@ -605,7 +619,13 @@ async function render_response({
|
|
|
605
619
|
navigating: writable(null),
|
|
606
620
|
session
|
|
607
621
|
},
|
|
608
|
-
page: {
|
|
622
|
+
page: {
|
|
623
|
+
url: state.prerender ? create_prerendering_url_proxy(url) : url,
|
|
624
|
+
params,
|
|
625
|
+
status,
|
|
626
|
+
error,
|
|
627
|
+
stuff
|
|
628
|
+
},
|
|
609
629
|
components: branch.map(({ node }) => node.module.default)
|
|
610
630
|
};
|
|
611
631
|
|
|
@@ -895,7 +915,6 @@ function is_root_relative(path) {
|
|
|
895
915
|
* node: import('types/internal').SSRNode;
|
|
896
916
|
* $session: any;
|
|
897
917
|
* stuff: Record<string, any>;
|
|
898
|
-
* prerender_enabled: boolean;
|
|
899
918
|
* is_error: boolean;
|
|
900
919
|
* status?: number;
|
|
901
920
|
* error?: Error;
|
|
@@ -912,7 +931,6 @@ async function load_node({
|
|
|
912
931
|
node,
|
|
913
932
|
$session,
|
|
914
933
|
stuff,
|
|
915
|
-
prerender_enabled,
|
|
916
934
|
is_error,
|
|
917
935
|
status,
|
|
918
936
|
error
|
|
@@ -937,19 +955,10 @@ async function load_node({
|
|
|
937
955
|
|
|
938
956
|
let loaded;
|
|
939
957
|
|
|
940
|
-
const url_proxy = new Proxy(url, {
|
|
941
|
-
get: (target, prop, receiver) => {
|
|
942
|
-
if (prerender_enabled && (prop === 'search' || prop === 'searchParams')) {
|
|
943
|
-
throw new Error('Cannot access query on a page with prerendering enabled');
|
|
944
|
-
}
|
|
945
|
-
return Reflect.get(target, prop, receiver);
|
|
946
|
-
}
|
|
947
|
-
});
|
|
948
|
-
|
|
949
958
|
if (module.load) {
|
|
950
959
|
/** @type {import('types/page').LoadInput | import('types/page').ErrorLoadInput} */
|
|
951
960
|
const load_input = {
|
|
952
|
-
url:
|
|
961
|
+
url: state.prerender ? create_prerendering_url_proxy(url) : url,
|
|
953
962
|
params,
|
|
954
963
|
get session() {
|
|
955
964
|
uses_credentials = true;
|
|
@@ -1196,7 +1205,6 @@ async function load_node({
|
|
|
1196
1205
|
|
|
1197
1206
|
/**
|
|
1198
1207
|
* @typedef {import('./types.js').Loaded} Loaded
|
|
1199
|
-
* @typedef {import('types/internal').SSRNode} SSRNode
|
|
1200
1208
|
* @typedef {import('types/internal').SSRRenderOptions} SSRRenderOptions
|
|
1201
1209
|
* @typedef {import('types/internal').SSRRenderState} SSRRenderState
|
|
1202
1210
|
*/
|
|
@@ -1239,7 +1247,6 @@ async function respond_with_error({
|
|
|
1239
1247
|
node: default_layout,
|
|
1240
1248
|
$session,
|
|
1241
1249
|
stuff: {},
|
|
1242
|
-
prerender_enabled: is_prerender_enabled(options, default_error, state),
|
|
1243
1250
|
is_error: false
|
|
1244
1251
|
})
|
|
1245
1252
|
);
|
|
@@ -1255,7 +1262,6 @@ async function respond_with_error({
|
|
|
1255
1262
|
node: default_error,
|
|
1256
1263
|
$session,
|
|
1257
1264
|
stuff: layout_loaded ? layout_loaded.stuff : {},
|
|
1258
|
-
prerender_enabled: is_prerender_enabled(options, default_error, state),
|
|
1259
1265
|
is_error: true,
|
|
1260
1266
|
status,
|
|
1261
1267
|
error
|
|
@@ -1264,6 +1270,7 @@ async function respond_with_error({
|
|
|
1264
1270
|
|
|
1265
1271
|
return await render_response({
|
|
1266
1272
|
options,
|
|
1273
|
+
state,
|
|
1267
1274
|
$session,
|
|
1268
1275
|
page_config: {
|
|
1269
1276
|
hydrate: options.hydrate,
|
|
@@ -1290,17 +1297,6 @@ async function respond_with_error({
|
|
|
1290
1297
|
}
|
|
1291
1298
|
}
|
|
1292
1299
|
|
|
1293
|
-
/**
|
|
1294
|
-
* @param {SSRRenderOptions} options
|
|
1295
|
-
* @param {SSRNode} node
|
|
1296
|
-
* @param {SSRRenderState} state
|
|
1297
|
-
*/
|
|
1298
|
-
function is_prerender_enabled(options, node, state) {
|
|
1299
|
-
return (
|
|
1300
|
-
options.prerender && (!!node.module.prerender || (!!state.prerender && state.prerender.all))
|
|
1301
|
-
);
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
1300
|
/**
|
|
1305
1301
|
* @typedef {import('./types.js').Loaded} Loaded
|
|
1306
1302
|
* @typedef {import('types/hooks').ServerResponse} ServerResponse
|
|
@@ -1403,7 +1399,6 @@ async function respond$1(opts) {
|
|
|
1403
1399
|
url: request.url,
|
|
1404
1400
|
node,
|
|
1405
1401
|
stuff,
|
|
1406
|
-
prerender_enabled: is_prerender_enabled(options, node, state),
|
|
1407
1402
|
is_error: false
|
|
1408
1403
|
});
|
|
1409
1404
|
|
|
@@ -1458,7 +1453,6 @@ async function respond$1(opts) {
|
|
|
1458
1453
|
url: request.url,
|
|
1459
1454
|
node: error_node,
|
|
1460
1455
|
stuff: node_loaded.stuff,
|
|
1461
|
-
prerender_enabled: is_prerender_enabled(options, error_node, state),
|
|
1462
1456
|
is_error: true,
|
|
1463
1457
|
status,
|
|
1464
1458
|
error
|
|
@@ -1892,6 +1886,7 @@ async function respond(incoming, options, state = {}) {
|
|
|
1892
1886
|
url: request.url,
|
|
1893
1887
|
params: request.params,
|
|
1894
1888
|
options,
|
|
1889
|
+
state,
|
|
1895
1890
|
$session: await options.hooks.getSession(request),
|
|
1896
1891
|
page_config: { router: true, hydrate: true },
|
|
1897
1892
|
stuff: {},
|
|
@@ -1926,9 +1921,25 @@ async function respond(incoming, options, state = {}) {
|
|
|
1926
1921
|
const etag = `"${hash(response.body || '')}"`;
|
|
1927
1922
|
|
|
1928
1923
|
if (if_none_match_value === etag) {
|
|
1924
|
+
/** @type {import('types/helper').ResponseHeaders} */
|
|
1925
|
+
const headers = { etag };
|
|
1926
|
+
|
|
1927
|
+
// https://datatracker.ietf.org/doc/html/rfc7232#section-4.1
|
|
1928
|
+
for (const key of [
|
|
1929
|
+
'cache-control',
|
|
1930
|
+
'content-location',
|
|
1931
|
+
'date',
|
|
1932
|
+
'expires',
|
|
1933
|
+
'vary'
|
|
1934
|
+
]) {
|
|
1935
|
+
if (key in response.headers) {
|
|
1936
|
+
headers[key] = /** @type {string} */ (response.headers[key]);
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1929
1940
|
return {
|
|
1930
1941
|
status: 304,
|
|
1931
|
-
headers
|
|
1942
|
+
headers
|
|
1932
1943
|
};
|
|
1933
1944
|
}
|
|
1934
1945
|
|
package/dist/cli.js
CHANGED
|
@@ -870,7 +870,7 @@ async function launch(port, https) {
|
|
|
870
870
|
exec(`${cmd} ${https ? 'https' : 'http'}://localhost:${port}`);
|
|
871
871
|
}
|
|
872
872
|
|
|
873
|
-
const prog = sade('svelte-kit').version('1.0.0-next.
|
|
873
|
+
const prog = sade('svelte-kit').version('1.0.0-next.228');
|
|
874
874
|
|
|
875
875
|
prog
|
|
876
876
|
.command('dev')
|
|
@@ -1022,7 +1022,7 @@ async function check_port(port) {
|
|
|
1022
1022
|
function welcome({ port, host, https, open, loose, allow, cwd }) {
|
|
1023
1023
|
if (open) launch(port, https);
|
|
1024
1024
|
|
|
1025
|
-
console.log($.bold().cyan(`\n SvelteKit v${'1.0.0-next.
|
|
1025
|
+
console.log($.bold().cyan(`\n SvelteKit v${'1.0.0-next.228'}\n`));
|
|
1026
1026
|
|
|
1027
1027
|
const protocol = https ? 'https:' : 'http:';
|
|
1028
1028
|
const exposed = typeof host !== 'undefined' && host !== 'localhost' && host !== '127.0.0.1';
|
package/dist/ssr.js
CHANGED
|
@@ -506,12 +506,25 @@ function escape(str, dict, unicode_encoder) {
|
|
|
506
506
|
return result;
|
|
507
507
|
}
|
|
508
508
|
|
|
509
|
+
/** @param {URL} url */
|
|
510
|
+
function create_prerendering_url_proxy(url) {
|
|
511
|
+
return new Proxy(url, {
|
|
512
|
+
get: (target, prop, receiver) => {
|
|
513
|
+
if (prop === 'search' || prop === 'searchParams') {
|
|
514
|
+
throw new Error(`Cannot access url.${prop} on a page with prerendering enabled`);
|
|
515
|
+
}
|
|
516
|
+
return Reflect.get(target, prop, receiver);
|
|
517
|
+
}
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
|
|
509
521
|
// TODO rename this function/module
|
|
510
522
|
|
|
511
523
|
/**
|
|
512
524
|
* @param {{
|
|
513
525
|
* branch: Array<import('./types').Loaded>;
|
|
514
526
|
* options: import('types/internal').SSRRenderOptions;
|
|
527
|
+
* state: import('types/internal').SSRRenderState;
|
|
515
528
|
* $session: any;
|
|
516
529
|
* page_config: { hydrate: boolean, router: boolean };
|
|
517
530
|
* status: number;
|
|
@@ -525,6 +538,7 @@ function escape(str, dict, unicode_encoder) {
|
|
|
525
538
|
async function render_response({
|
|
526
539
|
branch,
|
|
527
540
|
options,
|
|
541
|
+
state,
|
|
528
542
|
$session,
|
|
529
543
|
page_config,
|
|
530
544
|
status,
|
|
@@ -574,7 +588,13 @@ async function render_response({
|
|
|
574
588
|
navigating: writable(null),
|
|
575
589
|
session
|
|
576
590
|
},
|
|
577
|
-
page: {
|
|
591
|
+
page: {
|
|
592
|
+
url: state.prerender ? create_prerendering_url_proxy(url) : url,
|
|
593
|
+
params,
|
|
594
|
+
status,
|
|
595
|
+
error,
|
|
596
|
+
stuff
|
|
597
|
+
},
|
|
578
598
|
components: branch.map(({ node }) => node.module.default)
|
|
579
599
|
};
|
|
580
600
|
|
|
@@ -825,7 +845,6 @@ function normalize(loaded) {
|
|
|
825
845
|
* node: import('types/internal').SSRNode;
|
|
826
846
|
* $session: any;
|
|
827
847
|
* stuff: Record<string, any>;
|
|
828
|
-
* prerender_enabled: boolean;
|
|
829
848
|
* is_error: boolean;
|
|
830
849
|
* status?: number;
|
|
831
850
|
* error?: Error;
|
|
@@ -842,7 +861,6 @@ async function load_node({
|
|
|
842
861
|
node,
|
|
843
862
|
$session,
|
|
844
863
|
stuff,
|
|
845
|
-
prerender_enabled,
|
|
846
864
|
is_error,
|
|
847
865
|
status,
|
|
848
866
|
error
|
|
@@ -867,19 +885,10 @@ async function load_node({
|
|
|
867
885
|
|
|
868
886
|
let loaded;
|
|
869
887
|
|
|
870
|
-
const url_proxy = new Proxy(url, {
|
|
871
|
-
get: (target, prop, receiver) => {
|
|
872
|
-
if (prerender_enabled && (prop === 'search' || prop === 'searchParams')) {
|
|
873
|
-
throw new Error('Cannot access query on a page with prerendering enabled');
|
|
874
|
-
}
|
|
875
|
-
return Reflect.get(target, prop, receiver);
|
|
876
|
-
}
|
|
877
|
-
});
|
|
878
|
-
|
|
879
888
|
if (module.load) {
|
|
880
889
|
/** @type {import('types/page').LoadInput | import('types/page').ErrorLoadInput} */
|
|
881
890
|
const load_input = {
|
|
882
|
-
url:
|
|
891
|
+
url: state.prerender ? create_prerendering_url_proxy(url) : url,
|
|
883
892
|
params,
|
|
884
893
|
get session() {
|
|
885
894
|
uses_credentials = true;
|
|
@@ -1126,7 +1135,6 @@ async function load_node({
|
|
|
1126
1135
|
|
|
1127
1136
|
/**
|
|
1128
1137
|
* @typedef {import('./types.js').Loaded} Loaded
|
|
1129
|
-
* @typedef {import('types/internal').SSRNode} SSRNode
|
|
1130
1138
|
* @typedef {import('types/internal').SSRRenderOptions} SSRRenderOptions
|
|
1131
1139
|
* @typedef {import('types/internal').SSRRenderState} SSRRenderState
|
|
1132
1140
|
*/
|
|
@@ -1169,7 +1177,6 @@ async function respond_with_error({
|
|
|
1169
1177
|
node: default_layout,
|
|
1170
1178
|
$session,
|
|
1171
1179
|
stuff: {},
|
|
1172
|
-
prerender_enabled: is_prerender_enabled(options, default_error, state),
|
|
1173
1180
|
is_error: false
|
|
1174
1181
|
})
|
|
1175
1182
|
);
|
|
@@ -1185,7 +1192,6 @@ async function respond_with_error({
|
|
|
1185
1192
|
node: default_error,
|
|
1186
1193
|
$session,
|
|
1187
1194
|
stuff: layout_loaded ? layout_loaded.stuff : {},
|
|
1188
|
-
prerender_enabled: is_prerender_enabled(options, default_error, state),
|
|
1189
1195
|
is_error: true,
|
|
1190
1196
|
status,
|
|
1191
1197
|
error
|
|
@@ -1194,6 +1200,7 @@ async function respond_with_error({
|
|
|
1194
1200
|
|
|
1195
1201
|
return await render_response({
|
|
1196
1202
|
options,
|
|
1203
|
+
state,
|
|
1197
1204
|
$session,
|
|
1198
1205
|
page_config: {
|
|
1199
1206
|
hydrate: options.hydrate,
|
|
@@ -1220,17 +1227,6 @@ async function respond_with_error({
|
|
|
1220
1227
|
}
|
|
1221
1228
|
}
|
|
1222
1229
|
|
|
1223
|
-
/**
|
|
1224
|
-
* @param {SSRRenderOptions} options
|
|
1225
|
-
* @param {SSRNode} node
|
|
1226
|
-
* @param {SSRRenderState} state
|
|
1227
|
-
*/
|
|
1228
|
-
function is_prerender_enabled(options, node, state) {
|
|
1229
|
-
return (
|
|
1230
|
-
options.prerender && (!!node.module.prerender || (!!state.prerender && state.prerender.all))
|
|
1231
|
-
);
|
|
1232
|
-
}
|
|
1233
|
-
|
|
1234
1230
|
/**
|
|
1235
1231
|
* @typedef {import('./types.js').Loaded} Loaded
|
|
1236
1232
|
* @typedef {import('types/hooks').ServerResponse} ServerResponse
|
|
@@ -1333,7 +1329,6 @@ async function respond$1(opts) {
|
|
|
1333
1329
|
url: request.url,
|
|
1334
1330
|
node,
|
|
1335
1331
|
stuff,
|
|
1336
|
-
prerender_enabled: is_prerender_enabled(options, node, state),
|
|
1337
1332
|
is_error: false
|
|
1338
1333
|
});
|
|
1339
1334
|
|
|
@@ -1388,7 +1383,6 @@ async function respond$1(opts) {
|
|
|
1388
1383
|
url: request.url,
|
|
1389
1384
|
node: error_node,
|
|
1390
1385
|
stuff: node_loaded.stuff,
|
|
1391
|
-
prerender_enabled: is_prerender_enabled(options, error_node, state),
|
|
1392
1386
|
is_error: true,
|
|
1393
1387
|
status,
|
|
1394
1388
|
error
|
|
@@ -1822,6 +1816,7 @@ async function respond(incoming, options, state = {}) {
|
|
|
1822
1816
|
url: request.url,
|
|
1823
1817
|
params: request.params,
|
|
1824
1818
|
options,
|
|
1819
|
+
state,
|
|
1825
1820
|
$session: await options.hooks.getSession(request),
|
|
1826
1821
|
page_config: { router: true, hydrate: true },
|
|
1827
1822
|
stuff: {},
|
|
@@ -1856,9 +1851,25 @@ async function respond(incoming, options, state = {}) {
|
|
|
1856
1851
|
const etag = `"${hash(response.body || '')}"`;
|
|
1857
1852
|
|
|
1858
1853
|
if (if_none_match_value === etag) {
|
|
1854
|
+
/** @type {import('types/helper').ResponseHeaders} */
|
|
1855
|
+
const headers = { etag };
|
|
1856
|
+
|
|
1857
|
+
// https://datatracker.ietf.org/doc/html/rfc7232#section-4.1
|
|
1858
|
+
for (const key of [
|
|
1859
|
+
'cache-control',
|
|
1860
|
+
'content-location',
|
|
1861
|
+
'date',
|
|
1862
|
+
'expires',
|
|
1863
|
+
'vary'
|
|
1864
|
+
]) {
|
|
1865
|
+
if (key in response.headers) {
|
|
1866
|
+
headers[key] = /** @type {string} */ (response.headers[key]);
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
|
|
1859
1870
|
return {
|
|
1860
1871
|
status: 304,
|
|
1861
|
-
headers
|
|
1872
|
+
headers
|
|
1862
1873
|
};
|
|
1863
1874
|
}
|
|
1864
1875
|
|