@sveltejs/kit 3.0.0-next.25 → 3.0.0-next.27
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 +5 -7
- package/src/core/adapt/builder.js +127 -31
- package/src/core/adapt/index.js +3 -0
- package/src/core/config/index.js +4 -7
- package/src/core/env.js +36 -8
- package/src/core/generate_manifest/index.js +42 -43
- package/src/core/postbuild/analyse.js +4 -4
- package/src/core/postbuild/fallback.js +1 -1
- package/src/core/postbuild/prerender.js +2 -2
- package/src/core/sync/create_manifest_data/index.js +0 -1
- package/src/core/sync/write_app_manifest.js +3 -2
- package/src/exports/public.d.ts +100 -48
- package/src/exports/vite/build/index.js +1173 -0
- package/src/exports/vite/build/remote.js +4 -4
- package/src/exports/vite/dev/generate_manifest.js +308 -0
- package/src/exports/vite/dev/index.js +28 -284
- package/src/exports/vite/index.js +117 -1308
- package/src/exports/vite/plugins/env-vars.js +11 -34
- package/src/exports/vite/plugins/guard.js +19 -7
- package/src/exports/vite/plugins/remote.js +237 -0
- package/src/exports/vite/preview/index.js +8 -8
- package/src/exports/vite/static_analysis/index.js +15 -15
- package/src/exports/vite/utils.js +1 -1
- package/src/runner.js +4 -3
- package/src/runtime/app/paths/server.js +2 -2
- package/src/runtime/app/server/index.js +3 -3
- package/src/runtime/app/server/public.d.ts +114 -57
- package/src/runtime/app/server/remote/requested.js +31 -15
- package/src/runtime/app/state/client.svelte.js +3 -1
- package/src/runtime/client/client.js +39 -194
- package/src/runtime/client/fetcher.js +6 -6
- package/src/runtime/client/focus.js +120 -0
- package/src/runtime/client/remote-functions/command.svelte.js +20 -9
- package/src/runtime/client/remote-functions/form.svelte.js +12 -7
- package/src/runtime/client/remote-functions/query/instance.svelte.js +19 -5
- package/src/runtime/client/remote-functions/shared.svelte.js +22 -1
- package/src/runtime/client/scroll.js +39 -0
- package/src/runtime/client/utils.js +28 -0
- package/src/runtime/form-utils.js +243 -245
- package/src/runtime/server/data/index.js +3 -10
- package/src/runtime/server/fetch.js +13 -15
- package/src/runtime/server/index.js +8 -7
- package/src/runtime/server/internal.js +1 -2
- package/src/runtime/server/page/index.js +10 -15
- package/src/runtime/server/page/load_data.js +2 -2
- package/src/runtime/server/page/render.js +8 -13
- package/src/runtime/server/page/respond_with_error.js +4 -5
- package/src/runtime/server/page/server_routing.js +21 -27
- package/src/runtime/server/remote-functions.js +14 -14
- package/src/runtime/server/respond.js +17 -40
- package/src/runtime/server/state.js +1 -0
- package/src/runtime/server/utils.js +4 -4
- package/src/runtime/shared.js +9 -0
- package/src/types/ambient-private.d.ts +1 -2
- package/src/types/internal.d.ts +49 -6
- package/src/utils/filesystem.js +43 -27
- package/src/version.js +1 -1
- package/types/index.d.ts +215 -92
- package/types/index.d.ts.map +6 -2
|
@@ -109,8 +109,9 @@ export function get_remote_request_headers() {
|
|
|
109
109
|
/**
|
|
110
110
|
* @param {string} url
|
|
111
111
|
* @param {RequestInit} [init]
|
|
112
|
+
* @param {Set<string> | null} [refreshes]
|
|
112
113
|
*/
|
|
113
|
-
export async function remote_request(url, init) {
|
|
114
|
+
export async function remote_request(url, init, refreshes) {
|
|
114
115
|
const response = await fetch(url, init);
|
|
115
116
|
const status = response.status;
|
|
116
117
|
|
|
@@ -158,6 +159,7 @@ export async function remote_request(url, init) {
|
|
|
158
159
|
// update queries with refreshed data
|
|
159
160
|
if (data.q) {
|
|
160
161
|
for (const key in data.q) {
|
|
162
|
+
refreshes?.delete(key);
|
|
161
163
|
const parts = split_remote_key(key);
|
|
162
164
|
const entry = query_map.get(parts.id)?.get(parts.payload);
|
|
163
165
|
|
|
@@ -168,6 +170,7 @@ export async function remote_request(url, init) {
|
|
|
168
170
|
// reconnect live queries
|
|
169
171
|
if (data.l) {
|
|
170
172
|
for (const key in data.l) {
|
|
173
|
+
refreshes?.delete(key);
|
|
171
174
|
const parts = split_remote_key(key);
|
|
172
175
|
const entry = live_query_map.get(parts.id)?.get(parts.payload);
|
|
173
176
|
|
|
@@ -182,9 +185,27 @@ export async function remote_request(url, init) {
|
|
|
182
185
|
}
|
|
183
186
|
}
|
|
184
187
|
|
|
188
|
+
for (const key of data.i ?? []) refreshes?.delete(key);
|
|
189
|
+
|
|
185
190
|
return data;
|
|
186
191
|
}
|
|
187
192
|
|
|
193
|
+
/** @param {Set<string> | null} refreshes */
|
|
194
|
+
export function fail_unhandled_refreshes(refreshes) {
|
|
195
|
+
for (const key of refreshes ?? []) {
|
|
196
|
+
const parts = split_remote_key(key);
|
|
197
|
+
const entry =
|
|
198
|
+
query_map.get(parts.id)?.get(parts.payload) ??
|
|
199
|
+
live_query_map.get(parts.id)?.get(parts.payload);
|
|
200
|
+
entry?.resource.fail(
|
|
201
|
+
new HttpError({
|
|
202
|
+
status: 400,
|
|
203
|
+
message: 'Requested update was not handled by the remote function'
|
|
204
|
+
})
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
188
209
|
/**
|
|
189
210
|
* @param {RemoteFunctionResponse} response
|
|
190
211
|
* @returns {Promise<Extract<RemoteFunctionResponse, { type: 'result' }>>}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { hash_routing } from '$app/paths/internal/client';
|
|
2
|
+
import { reset_focus } from './focus.js';
|
|
3
|
+
import { get_hash_element } from './utils.js';
|
|
4
|
+
|
|
5
|
+
let autoscroll = true;
|
|
6
|
+
|
|
7
|
+
export function disable_scroll_handling() {
|
|
8
|
+
autoscroll = false;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @param {URL} url
|
|
13
|
+
* @param {{ x: number; y: number } | null | undefined} scroll
|
|
14
|
+
* @param {boolean} reset
|
|
15
|
+
* @param {Element | null} active_element
|
|
16
|
+
*/
|
|
17
|
+
export function reset_scroll_and_focus(url, scroll, reset, active_element) {
|
|
18
|
+
/** @type {Element | null} */
|
|
19
|
+
let deep_linked = null;
|
|
20
|
+
|
|
21
|
+
if (autoscroll) {
|
|
22
|
+
if (scroll) {
|
|
23
|
+
scrollTo(scroll.x, scroll.y);
|
|
24
|
+
} else if ((deep_linked = get_hash_element(url, hash_routing))) {
|
|
25
|
+
deep_linked.scrollIntoView();
|
|
26
|
+
} else {
|
|
27
|
+
scrollTo(0, 0);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const changed_focus =
|
|
32
|
+
document.activeElement !== active_element && document.activeElement !== document.body;
|
|
33
|
+
|
|
34
|
+
if (reset && !changed_focus) {
|
|
35
|
+
reset_focus(url, !deep_linked);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
autoscroll = true;
|
|
39
|
+
}
|
|
@@ -238,6 +238,34 @@ export function is_external_url(url, base, hash_routing) {
|
|
|
238
238
|
return false;
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
+
/**
|
|
242
|
+
* @param {URL} url
|
|
243
|
+
* @param {boolean} hash_routing
|
|
244
|
+
* @returns {string}
|
|
245
|
+
*/
|
|
246
|
+
export function get_id(url, hash_routing) {
|
|
247
|
+
let id;
|
|
248
|
+
|
|
249
|
+
if (hash_routing) {
|
|
250
|
+
const [, , second] = url.hash.split('#', 3);
|
|
251
|
+
id = second ?? '';
|
|
252
|
+
} else {
|
|
253
|
+
id = url.hash.slice(1);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return decodeURIComponent(id);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @param {URL} url
|
|
261
|
+
* @param {boolean} hash_routing
|
|
262
|
+
* @returns {Element | null}
|
|
263
|
+
*/
|
|
264
|
+
export function get_hash_element(url, hash_routing) {
|
|
265
|
+
const id = get_id(url, hash_routing);
|
|
266
|
+
return id ? document.getElementById(id) : null;
|
|
267
|
+
}
|
|
268
|
+
|
|
241
269
|
/** @type {Set<string> | null} */
|
|
242
270
|
let seen = null;
|
|
243
271
|
|