svelte 5.49.1 → 5.49.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/compiler/index.js +1 -1
- package/elements.d.ts +0 -17
- package/package.json +1 -1
- package/src/compiler/phases/3-transform/client/visitors/EachBlock.js +9 -6
- package/src/compiler/phases/3-transform/client/visitors/HtmlTag.js +9 -5
- package/src/compiler/phases/3-transform/client/visitors/IfBlock.js +9 -5
- package/src/compiler/phases/3-transform/client/visitors/KeyBlock.js +19 -13
- package/src/compiler/phases/3-transform/client/visitors/SvelteElement.js +9 -5
- package/src/internal/client/dom/blocks/branches.js +4 -4
- package/src/internal/client/dom/blocks/each.js +2 -2
- package/src/internal/client/reactivity/batch.js +54 -11
- package/src/internal/server/crypto.js +2 -1
- package/src/version.js +1 -1
- package/types/index.d.ts.map +1 -1
package/elements.d.ts
CHANGED
|
@@ -851,23 +851,6 @@ export interface HTMLAttributes<T extends EventTarget> extends AriaAttributes, D
|
|
|
851
851
|
readonly 'bind:offsetWidth'?: number | undefined | null;
|
|
852
852
|
readonly 'bind:offsetHeight'?: number | undefined | null;
|
|
853
853
|
|
|
854
|
-
// SvelteKit
|
|
855
|
-
'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null;
|
|
856
|
-
'data-sveltekit-noscroll'?: true | '' | 'off' | undefined | null;
|
|
857
|
-
'data-sveltekit-preload-code'?:
|
|
858
|
-
| true
|
|
859
|
-
| ''
|
|
860
|
-
| 'eager'
|
|
861
|
-
| 'viewport'
|
|
862
|
-
| 'hover'
|
|
863
|
-
| 'tap'
|
|
864
|
-
| 'off'
|
|
865
|
-
| undefined
|
|
866
|
-
| null;
|
|
867
|
-
'data-sveltekit-preload-data'?: true | '' | 'hover' | 'tap' | 'off' | undefined | null;
|
|
868
|
-
'data-sveltekit-reload'?: true | '' | 'off' | undefined | null;
|
|
869
|
-
'data-sveltekit-replacestate'?: true | '' | 'off' | undefined | null;
|
|
870
|
-
|
|
871
854
|
// allow any data- attribute
|
|
872
855
|
[key: `data-${string}`]: any;
|
|
873
856
|
|
package/package.json
CHANGED
|
@@ -312,10 +312,10 @@ export function EachBlock(node, context) {
|
|
|
312
312
|
declarations.push(b.let(node.index, index));
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
-
const
|
|
315
|
+
const has_await = node.metadata.expression.has_await;
|
|
316
316
|
|
|
317
|
-
const get_collection = b.thunk(collection,
|
|
318
|
-
const thunk =
|
|
317
|
+
const get_collection = b.thunk(collection, has_await);
|
|
318
|
+
const thunk = has_await ? b.thunk(b.call('$.get', b.id('$$collection'))) : get_collection;
|
|
319
319
|
|
|
320
320
|
const render_args = [b.id('$$anchor'), item];
|
|
321
321
|
if (uses_index || collection_id) render_args.push(index);
|
|
@@ -342,15 +342,18 @@ export function EachBlock(node, context) {
|
|
|
342
342
|
statements.unshift(b.stmt(b.call('$.validate_each_keys', thunk, key_function)));
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
-
if (is_async) {
|
|
345
|
+
if (node.metadata.expression.is_async()) {
|
|
346
346
|
context.state.init.push(
|
|
347
347
|
b.stmt(
|
|
348
348
|
b.call(
|
|
349
349
|
'$.async',
|
|
350
350
|
context.state.node,
|
|
351
351
|
node.metadata.expression.blockers(),
|
|
352
|
-
b.array([get_collection]),
|
|
353
|
-
b.arrow(
|
|
352
|
+
has_await ? b.array([get_collection]) : b.void0,
|
|
353
|
+
b.arrow(
|
|
354
|
+
has_await ? [context.state.node, b.id('$$collection')] : [context.state.node],
|
|
355
|
+
b.block(statements)
|
|
356
|
+
)
|
|
354
357
|
)
|
|
355
358
|
)
|
|
356
359
|
);
|
|
@@ -11,10 +11,11 @@ import { build_expression } from './shared/utils.js';
|
|
|
11
11
|
export function HtmlTag(node, context) {
|
|
12
12
|
context.state.template.push_comment();
|
|
13
13
|
|
|
14
|
-
const
|
|
14
|
+
const has_await = node.metadata.expression.has_await;
|
|
15
|
+
const has_blockers = node.metadata.expression.has_blockers();
|
|
15
16
|
|
|
16
17
|
const expression = build_expression(context, node.expression, node.metadata.expression);
|
|
17
|
-
const html =
|
|
18
|
+
const html = has_await ? b.call('$.get', b.id('$$html')) : expression;
|
|
18
19
|
|
|
19
20
|
const is_svg = context.state.metadata.namespace === 'svg';
|
|
20
21
|
const is_mathml = context.state.metadata.namespace === 'mathml';
|
|
@@ -31,15 +32,18 @@ export function HtmlTag(node, context) {
|
|
|
31
32
|
);
|
|
32
33
|
|
|
33
34
|
// push into init, so that bindings run afterwards, which might trigger another run and override hydration
|
|
34
|
-
if (
|
|
35
|
+
if (has_await || has_blockers) {
|
|
35
36
|
context.state.init.push(
|
|
36
37
|
b.stmt(
|
|
37
38
|
b.call(
|
|
38
39
|
'$.async',
|
|
39
40
|
context.state.node,
|
|
40
41
|
node.metadata.expression.blockers(),
|
|
41
|
-
b.array([b.thunk(expression,
|
|
42
|
-
b.arrow(
|
|
42
|
+
has_await ? b.array([b.thunk(expression, true)]) : b.void0,
|
|
43
|
+
b.arrow(
|
|
44
|
+
has_await ? [context.state.node, b.id('$$html')] : [context.state.node],
|
|
45
|
+
b.block([statement])
|
|
46
|
+
)
|
|
43
47
|
)
|
|
44
48
|
)
|
|
45
49
|
);
|
|
@@ -25,10 +25,11 @@ export function IfBlock(node, context) {
|
|
|
25
25
|
statements.push(b.var(alternate_id, b.arrow([b.id('$$anchor')], alternate)));
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const
|
|
28
|
+
const has_await = node.metadata.expression.has_await;
|
|
29
|
+
const has_blockers = node.metadata.expression.has_blockers();
|
|
29
30
|
|
|
30
31
|
const expression = build_expression(context, node.test, node.metadata.expression);
|
|
31
|
-
const test =
|
|
32
|
+
const test = has_await ? b.call('$.get', b.id('$$condition')) : expression;
|
|
32
33
|
|
|
33
34
|
/** @type {Expression[]} */
|
|
34
35
|
const args = [
|
|
@@ -72,15 +73,18 @@ export function IfBlock(node, context) {
|
|
|
72
73
|
|
|
73
74
|
statements.push(add_svelte_meta(b.call('$.if', ...args), node, 'if'));
|
|
74
75
|
|
|
75
|
-
if (
|
|
76
|
+
if (has_await || has_blockers) {
|
|
76
77
|
context.state.init.push(
|
|
77
78
|
b.stmt(
|
|
78
79
|
b.call(
|
|
79
80
|
'$.async',
|
|
80
81
|
context.state.node,
|
|
81
82
|
node.metadata.expression.blockers(),
|
|
82
|
-
b.array([b.thunk(expression,
|
|
83
|
-
b.arrow(
|
|
83
|
+
has_await ? b.array([b.thunk(expression, true)]) : b.void0,
|
|
84
|
+
b.arrow(
|
|
85
|
+
has_await ? [context.state.node, b.id('$$condition')] : [context.state.node],
|
|
86
|
+
b.block(statements)
|
|
87
|
+
)
|
|
84
88
|
)
|
|
85
89
|
)
|
|
86
90
|
);
|
|
@@ -11,29 +11,35 @@ import { build_expression, add_svelte_meta } from './shared/utils.js';
|
|
|
11
11
|
export function KeyBlock(node, context) {
|
|
12
12
|
context.state.template.push_comment();
|
|
13
13
|
|
|
14
|
-
const
|
|
14
|
+
const has_await = node.metadata.expression.has_await;
|
|
15
|
+
const has_blockers = node.metadata.expression.has_blockers();
|
|
15
16
|
|
|
16
17
|
const expression = build_expression(context, node.expression, node.metadata.expression);
|
|
17
|
-
const key = b.thunk(
|
|
18
|
+
const key = b.thunk(has_await ? b.call('$.get', b.id('$$key')) : expression);
|
|
18
19
|
const body = /** @type {Expression} */ (context.visit(node.fragment));
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
const statement = add_svelte_meta(
|
|
21
22
|
b.call('$.key', context.state.node, key, b.arrow([b.id('$$anchor')], body)),
|
|
22
23
|
node,
|
|
23
24
|
'key'
|
|
24
25
|
);
|
|
25
26
|
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
b.
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
if (has_await || has_blockers) {
|
|
28
|
+
context.state.init.push(
|
|
29
|
+
b.stmt(
|
|
30
|
+
b.call(
|
|
31
|
+
'$.async',
|
|
32
|
+
context.state.node,
|
|
33
|
+
node.metadata.expression.blockers(),
|
|
34
|
+
has_await ? b.array([b.thunk(expression, true)]) : b.void0,
|
|
35
|
+
b.arrow(
|
|
36
|
+
has_await ? [context.state.node, b.id('$$key')] : [context.state.node],
|
|
37
|
+
b.block([statement])
|
|
38
|
+
)
|
|
39
|
+
)
|
|
34
40
|
)
|
|
35
41
|
);
|
|
42
|
+
} else {
|
|
43
|
+
context.state.init.push(statement);
|
|
36
44
|
}
|
|
37
|
-
|
|
38
|
-
context.state.init.push(statement);
|
|
39
45
|
}
|
|
@@ -93,10 +93,11 @@ export function SvelteElement(node, context) {
|
|
|
93
93
|
);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
const
|
|
96
|
+
const has_await = node.metadata.expression.has_await;
|
|
97
|
+
const has_blockers = node.metadata.expression.has_blockers();
|
|
97
98
|
|
|
98
99
|
const expression = /** @type {Expression} */ (context.visit(node.tag));
|
|
99
|
-
const get_tag = b.thunk(
|
|
100
|
+
const get_tag = b.thunk(has_await ? b.call('$.get', b.id('$$tag')) : expression);
|
|
100
101
|
|
|
101
102
|
/** @type {Statement[]} */
|
|
102
103
|
const inner = inner_context.state.init;
|
|
@@ -139,15 +140,18 @@ export function SvelteElement(node, context) {
|
|
|
139
140
|
)
|
|
140
141
|
);
|
|
141
142
|
|
|
142
|
-
if (
|
|
143
|
+
if (has_await || has_blockers) {
|
|
143
144
|
context.state.init.push(
|
|
144
145
|
b.stmt(
|
|
145
146
|
b.call(
|
|
146
147
|
'$.async',
|
|
147
148
|
context.state.node,
|
|
148
149
|
node.metadata.expression.blockers(),
|
|
149
|
-
b.array([b.thunk(expression,
|
|
150
|
-
b.arrow(
|
|
150
|
+
has_await ? b.array([b.thunk(expression, true)]) : b.void0,
|
|
151
|
+
b.arrow(
|
|
152
|
+
has_await ? [context.state.node, b.id('$$tag')] : [context.state.node],
|
|
153
|
+
b.block(statements)
|
|
154
|
+
)
|
|
151
155
|
)
|
|
152
156
|
)
|
|
153
157
|
);
|
|
@@ -200,17 +200,17 @@ export class BranchManager {
|
|
|
200
200
|
if (defer) {
|
|
201
201
|
for (const [k, effect] of this.#onscreen) {
|
|
202
202
|
if (k === key) {
|
|
203
|
-
batch.
|
|
203
|
+
batch.unskip_effect(effect);
|
|
204
204
|
} else {
|
|
205
|
-
batch.
|
|
205
|
+
batch.skip_effect(effect);
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
for (const [k, branch] of this.#offscreen) {
|
|
210
210
|
if (k === key) {
|
|
211
|
-
batch.
|
|
211
|
+
batch.unskip_effect(branch.effect);
|
|
212
212
|
} else {
|
|
213
|
-
batch.
|
|
213
|
+
batch.skip_effect(branch.effect);
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
|
|
@@ -257,7 +257,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
|
|
|
257
257
|
if (item.i) internal_set(item.i, index);
|
|
258
258
|
|
|
259
259
|
if (defer) {
|
|
260
|
-
batch.
|
|
260
|
+
batch.unskip_effect(item.e);
|
|
261
261
|
}
|
|
262
262
|
} else {
|
|
263
263
|
item = create_item(
|
|
@@ -299,7 +299,7 @@ export function each(node, flags, get_collection, get_key, render_fn, fallback_f
|
|
|
299
299
|
if (defer) {
|
|
300
300
|
for (const [key, item] of items) {
|
|
301
301
|
if (!keys.has(key)) {
|
|
302
|
-
batch.
|
|
302
|
+
batch.skip_effect(item.e);
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
|
|
@@ -130,11 +130,13 @@ export class Batch {
|
|
|
130
130
|
#maybe_dirty_effects = new Set();
|
|
131
131
|
|
|
132
132
|
/**
|
|
133
|
-
* A
|
|
134
|
-
* is committed — we skip over these during `process
|
|
135
|
-
*
|
|
133
|
+
* A map of branches that still exist, but will be destroyed when this batch
|
|
134
|
+
* is committed — we skip over these during `process`.
|
|
135
|
+
* The value contains child effects that were dirty/maybe_dirty before being reset,
|
|
136
|
+
* so they can be rescheduled if the branch survives.
|
|
137
|
+
* @type {Map<Effect, { d: Effect[], m: Effect[] }>}
|
|
136
138
|
*/
|
|
137
|
-
|
|
139
|
+
#skipped_branches = new Map();
|
|
138
140
|
|
|
139
141
|
is_fork = false;
|
|
140
142
|
|
|
@@ -144,6 +146,38 @@ export class Batch {
|
|
|
144
146
|
return this.is_fork || this.#blocking_pending > 0;
|
|
145
147
|
}
|
|
146
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Add an effect to the #skipped_branches map and reset its children
|
|
151
|
+
* @param {Effect} effect
|
|
152
|
+
*/
|
|
153
|
+
skip_effect(effect) {
|
|
154
|
+
if (!this.#skipped_branches.has(effect)) {
|
|
155
|
+
this.#skipped_branches.set(effect, { d: [], m: [] });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Remove an effect from the #skipped_branches map and reschedule
|
|
161
|
+
* any tracked dirty/maybe_dirty child effects
|
|
162
|
+
* @param {Effect} effect
|
|
163
|
+
*/
|
|
164
|
+
unskip_effect(effect) {
|
|
165
|
+
var tracked = this.#skipped_branches.get(effect);
|
|
166
|
+
if (tracked) {
|
|
167
|
+
this.#skipped_branches.delete(effect);
|
|
168
|
+
|
|
169
|
+
for (var e of tracked.d) {
|
|
170
|
+
set_signal_status(e, DIRTY);
|
|
171
|
+
schedule_effect(e);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
for (e of tracked.m) {
|
|
175
|
+
set_signal_status(e, MAYBE_DIRTY);
|
|
176
|
+
schedule_effect(e);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
147
181
|
/**
|
|
148
182
|
*
|
|
149
183
|
* @param {Effect[]} root_effects
|
|
@@ -172,8 +206,8 @@ export class Batch {
|
|
|
172
206
|
this.#defer_effects(render_effects);
|
|
173
207
|
this.#defer_effects(effects);
|
|
174
208
|
|
|
175
|
-
for (const e of this
|
|
176
|
-
reset_branch(e);
|
|
209
|
+
for (const [e, t] of this.#skipped_branches) {
|
|
210
|
+
reset_branch(e, t);
|
|
177
211
|
}
|
|
178
212
|
} else {
|
|
179
213
|
// append/remove branches
|
|
@@ -220,7 +254,7 @@ export class Batch {
|
|
|
220
254
|
var is_branch = (flags & (BRANCH_EFFECT | ROOT_EFFECT)) !== 0;
|
|
221
255
|
var is_skippable_branch = is_branch && (flags & CLEAN) !== 0;
|
|
222
256
|
|
|
223
|
-
var skip = is_skippable_branch || (flags & INERT) !== 0 || this.
|
|
257
|
+
var skip = is_skippable_branch || (flags & INERT) !== 0 || this.#skipped_branches.has(effect);
|
|
224
258
|
|
|
225
259
|
// Inside a `<svelte:boundary>` with a pending snippet,
|
|
226
260
|
// all effects are deferred until the boundary resolves
|
|
@@ -807,7 +841,8 @@ export function schedule_effect(signal) {
|
|
|
807
841
|
var flags = effect.f;
|
|
808
842
|
|
|
809
843
|
// if the effect is being scheduled because a parent (each/await/etc) block
|
|
810
|
-
// updated an internal source,
|
|
844
|
+
// updated an internal source, or because a branch is being unskipped,
|
|
845
|
+
// bail out or we'll cause a second flush
|
|
811
846
|
if (
|
|
812
847
|
is_flushing &&
|
|
813
848
|
effect === active_effect &&
|
|
@@ -887,20 +922,28 @@ export function eager(fn) {
|
|
|
887
922
|
|
|
888
923
|
/**
|
|
889
924
|
* Mark all the effects inside a skipped branch CLEAN, so that
|
|
890
|
-
* they can be correctly rescheduled later
|
|
925
|
+
* they can be correctly rescheduled later. Tracks dirty and maybe_dirty
|
|
926
|
+
* effects so they can be rescheduled if the branch survives.
|
|
891
927
|
* @param {Effect} effect
|
|
928
|
+
* @param {{ d: Effect[], m: Effect[] }} tracked
|
|
892
929
|
*/
|
|
893
|
-
function reset_branch(effect) {
|
|
930
|
+
function reset_branch(effect, tracked) {
|
|
894
931
|
// clean branch = nothing dirty inside, no need to traverse further
|
|
895
932
|
if ((effect.f & BRANCH_EFFECT) !== 0 && (effect.f & CLEAN) !== 0) {
|
|
896
933
|
return;
|
|
897
934
|
}
|
|
898
935
|
|
|
936
|
+
if ((effect.f & DIRTY) !== 0) {
|
|
937
|
+
tracked.d.push(effect);
|
|
938
|
+
} else if ((effect.f & MAYBE_DIRTY) !== 0) {
|
|
939
|
+
tracked.m.push(effect);
|
|
940
|
+
}
|
|
941
|
+
|
|
899
942
|
set_signal_status(effect, CLEAN);
|
|
900
943
|
|
|
901
944
|
var e = effect.first;
|
|
902
945
|
while (e !== null) {
|
|
903
|
-
reset_branch(e);
|
|
946
|
+
reset_branch(e, tracked);
|
|
904
947
|
e = e.next;
|
|
905
948
|
}
|
|
906
949
|
}
|
|
@@ -12,7 +12,8 @@ export async function sha256(data) {
|
|
|
12
12
|
crypto ??= globalThis.crypto?.subtle?.digest
|
|
13
13
|
? globalThis.crypto
|
|
14
14
|
: // @ts-ignore - we don't install node types in the prod build
|
|
15
|
-
|
|
15
|
+
// don't use 'node:crypto' because static analysers will think we rely on node when we don't
|
|
16
|
+
(await import('node:' + 'crypto')).webcrypto;
|
|
16
17
|
|
|
17
18
|
const hash_buffer = await crypto.subtle.digest('SHA-256', text_encoder.encode(data));
|
|
18
19
|
|
package/src/version.js
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -275,6 +275,6 @@
|
|
|
275
275
|
null,
|
|
276
276
|
null
|
|
277
277
|
],
|
|
278
|
-
"mappings": ";;;;;;;;;kBAUiBA,2BAA2BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAkC/BC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwEhBC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;kBAwBbC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCbC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;aAwBrBC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCfC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BdC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;kBAuBRC,OAAOA;;;;;;;;;;;;;;;;kBAgBPC,eAAeA;;;;;;;;;;;;;;;;aAgBpBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0CPC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCnSLC,cAAcA;;;;;;;;;;;;iBAsBdC,OAAOA;;;;;;;;iBAwBPC,SAASA;;;;;;;;;;;;;;;;;;;;;;iBA0CTC,qBAAqBA;;;;;;;;;;iBA2CrBC,YAAYA;;;;;;;;;;iBAuBZC,WAAWA;iBClNXC,UAAUA;;;;iBC4DVC,gBAAgBA;;;;;MCvEpBC,WAAWA;;;;;
|
|
278
|
+
"mappings": "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",
|
|
279
279
|
"ignoreList": []
|
|
280
280
|
}
|