@sveltejs/kit 2.48.4 → 2.48.6

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.48.4",
3
+ "version": "2.48.6",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -25,10 +25,12 @@ import {
25
25
  LayoutParams as AppLayoutParams,
26
26
  ResolvedPathname
27
27
  } from '$app/types';
28
- import { Span } from '@opentelemetry/api';
29
28
 
30
29
  export { PrerenderOption } from '../types/private.js';
31
30
 
31
+ // @ts-ignore this is an optional peer dependency so could be missing. Written like this so dts-buddy preserves the ts-ignore
32
+ type Span = import('@opentelemetry/api').Span;
33
+
32
34
  /**
33
35
  * [Adapters](https://svelte.dev/docs/kit/adapters) are responsible for taking the production build and turning it into something that can be deployed to a platform of your choosing.
34
36
  */
@@ -1865,13 +1867,28 @@ type InputElementProps<T extends keyof InputTypeMap> = T extends 'checkbox' | 'r
1865
1867
  get files(): FileList | null;
1866
1868
  set files(v: FileList | null);
1867
1869
  }
1868
- : {
1869
- name: string;
1870
- type: T;
1871
- 'aria-invalid': boolean | 'false' | 'true' | undefined;
1872
- get value(): string | number;
1873
- set value(v: string | number);
1874
- };
1870
+ : T extends 'select' | 'select multiple'
1871
+ ? {
1872
+ name: string;
1873
+ multiple: T extends 'select' ? false : true;
1874
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1875
+ get value(): string | number;
1876
+ set value(v: string | number);
1877
+ }
1878
+ : T extends 'text'
1879
+ ? {
1880
+ name: string;
1881
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1882
+ get value(): string | number;
1883
+ set value(v: string | number);
1884
+ }
1885
+ : {
1886
+ name: string;
1887
+ type: T;
1888
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1889
+ get value(): string | number;
1890
+ set value(v: string | number);
1891
+ };
1875
1892
 
1876
1893
  type RemoteFormFieldMethods<T> = {
1877
1894
  /** The values that will be submitted */
@@ -1911,12 +1928,12 @@ export type RemoteFormField<Value extends RemoteFormFieldValue> = RemoteFormFiel
1911
1928
 
1912
1929
  type RemoteFormFieldContainer<Value> = RemoteFormFieldMethods<Value> & {
1913
1930
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1914
- allIssues(): RemoteFormAllIssue[] | undefined;
1931
+ allIssues(): RemoteFormIssue[] | undefined;
1915
1932
  };
1916
1933
 
1917
1934
  type UnknownField<Value> = RemoteFormFieldMethods<Value> & {
1918
1935
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1919
- allIssues(): RemoteFormAllIssue[] | undefined;
1936
+ allIssues(): RemoteFormIssue[] | undefined;
1920
1937
  /**
1921
1938
  * Returns an object that can be spread onto an input element with the correct type attribute,
1922
1939
  * aria-invalid attribute if the field is invalid, and appropriate value/checked property getters/setters.
@@ -1963,9 +1980,6 @@ export interface RemoteFormInput {
1963
1980
 
1964
1981
  export interface RemoteFormIssue {
1965
1982
  message: string;
1966
- }
1967
-
1968
- export interface RemoteFormAllIssue extends RemoteFormIssue {
1969
1983
  path: Array<string | number>;
1970
1984
  }
1971
1985
 
@@ -598,6 +598,9 @@ async function kit({ svelte_config }) {
598
598
  if (node.universal) entrypoints.add(node.universal);
599
599
  }
600
600
 
601
+ if (manifest_data.hooks.client) entrypoints.add(manifest_data.hooks.client);
602
+ if (manifest_data.hooks.universal) entrypoints.add(manifest_data.hooks.universal);
603
+
601
604
  const normalized = normalize_id(id, normalized_lib, normalized_cwd);
602
605
  const chain = [normalized];
603
606
 
@@ -698,6 +701,12 @@ async function kit({ svelte_config }) {
698
701
  remotes.push(remote);
699
702
 
700
703
  if (opts?.ssr) {
704
+ // we need to add an `await Promise.resolve()` because if the user imports this function
705
+ // on the client AND in a load function when loading the client module we will trigger
706
+ // an ssrLoadModule during dev. During a link preload, the module can be mistakenly
707
+ // loaded and transformed twice and the first time all its exports would be undefined
708
+ // triggering a dev server error. By adding a microtask we ensure that the module is fully loaded
709
+
701
710
  // Extra newlines to prevent syntax errors around missing semicolons or comments
702
711
  code +=
703
712
  '\n\n' +
@@ -705,6 +714,8 @@ async function kit({ svelte_config }) {
705
714
  import * as $$_self_$$ from './${path.basename(id)}';
706
715
  import { init_remote_functions as $$_init_$$ } from '@sveltejs/kit/internal';
707
716
 
717
+ ${dev_server ? 'await Promise.resolve()' : ''}
718
+
708
719
  $$_init_$$($$_self_$$, ${s(file)}, ${s(remote.hash)});
709
720
 
710
721
  for (const [name, fn] of Object.entries($$_self_$$)) {
@@ -2,7 +2,7 @@
2
2
  /** @import { RemoteInfo, MaybePromise } from 'types' */
3
3
  /** @import { StandardSchemaV1 } from '@standard-schema/spec' */
4
4
  import { get_request_store } from '@sveltejs/kit/internal/server';
5
- import { create_remote_cache_key, stringify_remote_arg } from '../../../shared.js';
5
+ import { create_remote_key, stringify_remote_arg } from '../../../shared.js';
6
6
  import { prerendering } from '__sveltekit/environment';
7
7
  import { create_validator, get_cache, get_response, run_remote_function } from './shared.js';
8
8
 
@@ -72,46 +72,21 @@ export function query(validate_or_fn, maybe_fn) {
72
72
 
73
73
  const { event, state } = get_request_store();
74
74
 
75
+ const get_remote_function_result = () =>
76
+ run_remote_function(event, state, false, arg, validate, fn);
77
+
75
78
  /** @type {Promise<any> & Partial<RemoteQuery<any>>} */
76
- const promise = get_response(__, arg, state, () =>
77
- run_remote_function(event, state, false, arg, validate, fn)
78
- );
79
+ const promise = get_response(__, arg, state, get_remote_function_result);
79
80
 
80
81
  promise.catch(() => {});
81
82
 
82
- /** @param {Output} value */
83
- promise.set = (value) => {
84
- const { state } = get_request_store();
85
- const refreshes = state.refreshes;
86
-
87
- if (!refreshes) {
88
- throw new Error(
89
- `Cannot call set on query '${__.name}' because it is not executed in the context of a command/form remote function`
90
- );
91
- }
92
-
93
- if (__.id) {
94
- const cache = get_cache(__, state);
95
- const key = stringify_remote_arg(arg, state.transport);
96
- refreshes[create_remote_cache_key(__.id, key)] = cache[key] = Promise.resolve(value);
97
- }
98
- };
83
+ promise.set = (value) => update_refresh_value(get_refresh_context(__, 'set', arg), value);
99
84
 
100
85
  promise.refresh = () => {
101
- const { state } = get_request_store();
102
- const refreshes = state.refreshes;
103
-
104
- if (!refreshes) {
105
- throw new Error(
106
- `Cannot call refresh on query '${__.name}' because it is not executed in the context of a command/form remote function`
107
- );
108
- }
109
-
110
- const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state.transport));
111
- refreshes[cache_key] = promise;
112
-
113
- // TODO we could probably just return promise here, but would need to update the types
114
- return promise.then(() => {});
86
+ const refresh_context = get_refresh_context(__, 'refresh', arg);
87
+ const is_immediate_refresh = !refresh_context.cache[refresh_context.cache_key];
88
+ const value = is_immediate_refresh ? promise : get_remote_function_result();
89
+ return update_refresh_value(refresh_context, value, is_immediate_refresh);
115
90
  };
116
91
 
117
92
  promise.withOverride = () => {
@@ -200,8 +175,7 @@ function batch(validate_or_fn, maybe_fn) {
200
175
 
201
176
  const { event, state } = get_request_store();
202
177
 
203
- /** @type {Promise<any> & Partial<RemoteQuery<any>>} */
204
- const promise = get_response(__, arg, state, () => {
178
+ const get_remote_function_result = () => {
205
179
  // Collect all the calls to the same query in the same macrotask,
206
180
  // then execute them as one backend request.
207
181
  return new Promise((resolve, reject) => {
@@ -239,22 +213,20 @@ function batch(validate_or_fn, maybe_fn) {
239
213
  }
240
214
  }, 0);
241
215
  });
242
- });
216
+ };
243
217
 
244
- promise.catch(() => {});
218
+ /** @type {Promise<any> & Partial<RemoteQuery<any>>} */
219
+ const promise = get_response(__, arg, state, get_remote_function_result);
245
220
 
246
- promise.refresh = async () => {
247
- const { state } = get_request_store();
248
- const refreshes = state.refreshes;
221
+ promise.catch(() => {});
249
222
 
250
- if (!refreshes) {
251
- throw new Error(
252
- `Cannot call refresh on query.batch '${__.name}' because it is not executed in the context of a command/form remote function`
253
- );
254
- }
223
+ promise.set = (value) => update_refresh_value(get_refresh_context(__, 'set', arg), value);
255
224
 
256
- const cache_key = create_remote_cache_key(__.id, stringify_remote_arg(arg, state.transport));
257
- refreshes[cache_key] = await /** @type {Promise<any>} */ (promise);
225
+ promise.refresh = () => {
226
+ const refresh_context = get_refresh_context(__, 'refresh', arg);
227
+ const is_immediate_refresh = !refresh_context.cache[refresh_context.cache_key];
228
+ const value = is_immediate_refresh ? promise : get_remote_function_result();
229
+ return update_refresh_value(refresh_context, value, is_immediate_refresh);
258
230
  };
259
231
 
260
232
  promise.withOverride = () => {
@@ -271,3 +243,51 @@ function batch(validate_or_fn, maybe_fn) {
271
243
 
272
244
  // Add batch as a property to the query function
273
245
  Object.defineProperty(query, 'batch', { value: batch, enumerable: true });
246
+
247
+ /**
248
+ * @param {RemoteInfo} __
249
+ * @param {'set' | 'refresh'} action
250
+ * @param {any} [arg]
251
+ * @returns {{ __: RemoteInfo; state: any; refreshes: Record<string, Promise<any>>; cache: Record<string, Promise<any>>; refreshes_key: string; cache_key: string }}
252
+ */
253
+ function get_refresh_context(__, action, arg) {
254
+ const { state } = get_request_store();
255
+ const { refreshes } = state;
256
+
257
+ if (!refreshes) {
258
+ const name = __.type === 'query_batch' ? `query.batch '${__.name}'` : `query '${__.name}'`;
259
+ throw new Error(
260
+ `Cannot call ${action} on ${name} because it is not executed in the context of a command/form remote function`
261
+ );
262
+ }
263
+
264
+ const cache = get_cache(__, state);
265
+ const cache_key = stringify_remote_arg(arg, state.transport);
266
+ const refreshes_key = create_remote_key(__.id, cache_key);
267
+
268
+ return { __, state, refreshes, refreshes_key, cache, cache_key };
269
+ }
270
+
271
+ /**
272
+ * @param {{ __: RemoteInfo; refreshes: Record<string, Promise<any>>; cache: Record<string, Promise<any>>; refreshes_key: string; cache_key: string }} context
273
+ * @param {any} value
274
+ * @param {boolean} [is_immediate_refresh=false]
275
+ * @returns {Promise<void>}
276
+ */
277
+ function update_refresh_value(
278
+ { __, refreshes, refreshes_key, cache, cache_key },
279
+ value,
280
+ is_immediate_refresh = false
281
+ ) {
282
+ const promise = Promise.resolve(value);
283
+
284
+ if (!is_immediate_refresh) {
285
+ cache[cache_key] = promise;
286
+ }
287
+
288
+ if (__.id) {
289
+ refreshes[refreshes_key] = promise;
290
+ }
291
+
292
+ return promise.then(() => {});
293
+ }
@@ -30,9 +30,8 @@ export function create_validator(validate_or_fn, maybe_fn) {
30
30
  return async (arg) => {
31
31
  // Get event before async validation to ensure it's available in server environments without AsyncLocalStorage, too
32
32
  const { event, state } = get_request_store();
33
- const validate = validate_or_fn['~standard'].validate;
34
-
35
- const result = await validate(arg);
33
+ // access property and call method in one go to preserve potential this context
34
+ const result = await validate_or_fn['~standard'].validate(arg);
36
35
 
37
36
  // if the `issues` field exists, the validation failed
38
37
  if (result.issues) {
@@ -69,7 +68,7 @@ export function create_validator(validate_or_fn, maybe_fn) {
69
68
  * @returns {Promise<T>}
70
69
  */
71
70
  export async function get_response(info, arg, state, get_result) {
72
- // wait a beat, in case `myQuery().set(...)` is immediately called
71
+ // wait a beat, in case `myQuery().set(...)` or `myQuery().refresh()` is immediately called
73
72
  // eslint-disable-next-line @typescript-eslint/await-thenable
74
73
  await 0;
75
74
 
@@ -514,6 +514,8 @@ async function _preload_data(intent) {
514
514
  // then a later one is becoming the real navigation and the preload tokens
515
515
  // get out of sync.
516
516
  if (intent.id !== load_cache?.id) {
517
+ discard_load_cache();
518
+
517
519
  const preload = {};
518
520
  preload_tokens.add(preload);
519
521
  load_cache = {
@@ -1688,8 +1690,9 @@ async function navigate({
1688
1690
  }
1689
1691
  }
1690
1692
 
1693
+ // also compare ids to avoid using wrong fork (e.g. a new one could've been added while navigating)
1694
+ const load_cache_fork = intent && load_cache?.id === intent.id ? load_cache.fork : null;
1691
1695
  // reset preload synchronously after the history state has been set to avoid race conditions
1692
- const load_cache_fork = load_cache?.fork;
1693
1696
  load_cache = null;
1694
1697
 
1695
1698
  navigation_result.props.page.state = state;
@@ -203,6 +203,9 @@ export function form(id) {
203
203
 
204
204
  const form_result = /** @type { RemoteFunctionResponse} */ (await response.json());
205
205
 
206
+ // reset issues in case it's a redirect or error (but issues passed in that case)
207
+ raw_issues = [];
208
+
206
209
  if (form_result.type === 'result') {
207
210
  ({ issues: raw_issues = [], result } = devalue.parse(form_result.result, app.decoders));
208
211
 
@@ -5,7 +5,7 @@ import * as devalue from 'devalue';
5
5
  import { app, goto, query_map, remote_responses } from '../client.js';
6
6
  import { HttpError, Redirect } from '@sveltejs/kit/internal';
7
7
  import { tick } from 'svelte';
8
- import { create_remote_cache_key, stringify_remote_arg } from '../../shared.js';
8
+ import { create_remote_key, stringify_remote_arg } from '../../shared.js';
9
9
 
10
10
  /**
11
11
  *
@@ -48,7 +48,7 @@ export async function remote_request(url) {
48
48
  export function create_remote_function(id, create) {
49
49
  return (/** @type {any} */ arg) => {
50
50
  const payload = stringify_remote_arg(arg, app.hooks.transport);
51
- const cache_key = create_remote_cache_key(id, payload);
51
+ const cache_key = create_remote_key(id, payload);
52
52
  let entry = query_map.get(cache_key);
53
53
 
54
54
  let tracking = true;
@@ -255,6 +255,7 @@ export function create_field_proxy(target, get_input, set_input, get_issues, pat
255
255
  return all_issues
256
256
  ?.filter((issue) => issue.name === key)
257
257
  ?.map((issue) => ({
258
+ path: issue.path,
258
259
  message: issue.message
259
260
  }));
260
261
  };
@@ -16,7 +16,7 @@ import { add_resolution_suffix } from '../../pathname.js';
16
16
  import { try_get_request_store, with_request_store } from '@sveltejs/kit/internal/server';
17
17
  import { text_encoder } from '../../utils.js';
18
18
  import { get_global_name } from '../utils.js';
19
- import { create_remote_cache_key } from '../../shared.js';
19
+ import { create_remote_key } from '../../shared.js';
20
20
 
21
21
  // TODO rename this function/module
22
22
 
@@ -493,7 +493,7 @@ export async function render_response({
493
493
  if (!info.id) continue;
494
494
 
495
495
  for (const key in cache) {
496
- remote[create_remote_cache_key(info.id, key)] = await cache[key];
496
+ remote[create_remote_key(info.id, key)] = await cache[key];
497
497
  }
498
498
  }
499
499
 
@@ -88,6 +88,6 @@ export function parse_remote_arg(string, transport) {
88
88
  * @param {string} id
89
89
  * @param {string} payload
90
90
  */
91
- export function create_remote_cache_key(id, payload) {
91
+ export function create_remote_key(id, payload) {
92
92
  return id + '/' + payload;
93
93
  }
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.48.4';
4
+ export const VERSION = '2.48.6';
package/types/index.d.ts CHANGED
@@ -5,7 +5,9 @@ declare module '@sveltejs/kit' {
5
5
  import type { SvelteConfig } from '@sveltejs/vite-plugin-svelte';
6
6
  import type { StandardSchemaV1 } from '@standard-schema/spec';
7
7
  import type { RouteId as AppRouteId, LayoutParams as AppLayoutParams, ResolvedPathname } from '$app/types';
8
- import type { Span } from '@opentelemetry/api';
8
+ // @ts-ignore this is an optional peer dependency so could be missing. Written like this so dts-buddy preserves the ts-ignore
9
+ type Span = import('@opentelemetry/api').Span;
10
+
9
11
  /**
10
12
  * [Adapters](https://svelte.dev/docs/kit/adapters) are responsible for taking the production build and turning it into something that can be deployed to a platform of your choosing.
11
13
  */
@@ -1841,13 +1843,28 @@ declare module '@sveltejs/kit' {
1841
1843
  get files(): FileList | null;
1842
1844
  set files(v: FileList | null);
1843
1845
  }
1844
- : {
1845
- name: string;
1846
- type: T;
1847
- 'aria-invalid': boolean | 'false' | 'true' | undefined;
1848
- get value(): string | number;
1849
- set value(v: string | number);
1850
- };
1846
+ : T extends 'select' | 'select multiple'
1847
+ ? {
1848
+ name: string;
1849
+ multiple: T extends 'select' ? false : true;
1850
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1851
+ get value(): string | number;
1852
+ set value(v: string | number);
1853
+ }
1854
+ : T extends 'text'
1855
+ ? {
1856
+ name: string;
1857
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1858
+ get value(): string | number;
1859
+ set value(v: string | number);
1860
+ }
1861
+ : {
1862
+ name: string;
1863
+ type: T;
1864
+ 'aria-invalid': boolean | 'false' | 'true' | undefined;
1865
+ get value(): string | number;
1866
+ set value(v: string | number);
1867
+ };
1851
1868
 
1852
1869
  type RemoteFormFieldMethods<T> = {
1853
1870
  /** The values that will be submitted */
@@ -1887,12 +1904,12 @@ declare module '@sveltejs/kit' {
1887
1904
 
1888
1905
  type RemoteFormFieldContainer<Value> = RemoteFormFieldMethods<Value> & {
1889
1906
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1890
- allIssues(): RemoteFormAllIssue[] | undefined;
1907
+ allIssues(): RemoteFormIssue[] | undefined;
1891
1908
  };
1892
1909
 
1893
1910
  type UnknownField<Value> = RemoteFormFieldMethods<Value> & {
1894
1911
  /** Validation issues belonging to this or any of the fields that belong to it, if any */
1895
- allIssues(): RemoteFormAllIssue[] | undefined;
1912
+ allIssues(): RemoteFormIssue[] | undefined;
1896
1913
  /**
1897
1914
  * Returns an object that can be spread onto an input element with the correct type attribute,
1898
1915
  * aria-invalid attribute if the field is invalid, and appropriate value/checked property getters/setters.
@@ -1939,9 +1956,6 @@ declare module '@sveltejs/kit' {
1939
1956
 
1940
1957
  export interface RemoteFormIssue {
1941
1958
  message: string;
1942
- }
1943
-
1944
- export interface RemoteFormAllIssue extends RemoteFormIssue {
1945
1959
  path: Array<string | number>;
1946
1960
  }
1947
1961
 
@@ -2,6 +2,7 @@
2
2
  "version": 3,
3
3
  "file": "index.d.ts",
4
4
  "names": [
5
+ "Span",
5
6
  "Adapter",
6
7
  "LoadProperties",
7
8
  "AwaitedActions",
@@ -72,7 +73,6 @@
72
73
  "MaybeArray",
73
74
  "RemoteFormInput",
74
75
  "RemoteFormIssue",
75
- "RemoteFormAllIssue",
76
76
  "ExtractId",
77
77
  "InvalidField",
78
78
  "Invalid",
@@ -213,6 +213,6 @@
213
213
  null,
214
214
  null
215
215
  ],
216
- "mappings": "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",
216
+ "mappings": "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",
217
217
  "ignoreList": []
218
218
  }