svelte 5.55.6 → 5.55.8
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/package.json +2 -2
- package/src/compiler/print/index.js +6 -1
- package/src/constants.js +1 -1
- package/src/internal/client/constants.js +5 -0
- package/src/internal/client/dom/elements/attributes.js +16 -7
- package/src/internal/client/dom/elements/bindings/shared.js +4 -6
- package/src/internal/client/dom/elements/class.js +3 -4
- package/src/internal/client/dom/elements/misc.js +2 -2
- package/src/internal/client/dom/elements/style.js +3 -4
- package/src/internal/client/dom/operations.js +12 -11
- package/src/internal/client/reactivity/async.js +15 -8
- package/src/internal/client/reactivity/deriveds.js +9 -4
- package/src/internal/client/reactivity/store.js +1 -1
- package/src/internal/client/render.js +4 -5
- package/src/internal/server/hydratable.js +7 -2
- package/src/internal/server/index.js +1 -1
- package/src/reactivity/url-search-params.js +1 -1
- package/src/utils.js +1 -1
- package/src/version.js +1 -1
- package/types/index.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "svelte",
|
|
3
3
|
"description": "Cybernetically enhanced web apps",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "5.55.
|
|
5
|
+
"version": "5.55.8",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
8
8
|
"engines": {
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"aria-query": "5.3.1",
|
|
165
165
|
"axobject-query": "^4.1.0",
|
|
166
166
|
"clsx": "^2.1.1",
|
|
167
|
-
"devalue": "^5.
|
|
167
|
+
"devalue": "^5.8.1",
|
|
168
168
|
"esm-env": "^1.2.1",
|
|
169
169
|
"esrap": "^2.2.4",
|
|
170
170
|
"is-reference": "^3.0.3",
|
|
@@ -247,7 +247,7 @@ const css_visitors = {
|
|
|
247
247
|
},
|
|
248
248
|
|
|
249
249
|
Percentage(node, context) {
|
|
250
|
-
context.write(
|
|
250
|
+
context.write(node.value);
|
|
251
251
|
},
|
|
252
252
|
|
|
253
253
|
PseudoClassSelector(node, context) {
|
|
@@ -417,6 +417,7 @@ const svelte_visitors = (comments) => ({
|
|
|
417
417
|
const is_block_element =
|
|
418
418
|
child_node.type === 'RegularElement' ||
|
|
419
419
|
child_node.type === 'Component' ||
|
|
420
|
+
child_node.type === 'SvelteBody' ||
|
|
420
421
|
child_node.type === 'SvelteHead' ||
|
|
421
422
|
child_node.type === 'SvelteFragment' ||
|
|
422
423
|
child_node.type === 'SvelteBoundary' ||
|
|
@@ -821,6 +822,10 @@ const svelte_visitors = (comments) => ({
|
|
|
821
822
|
context.write('</style>');
|
|
822
823
|
},
|
|
823
824
|
|
|
825
|
+
SvelteBody(node, context) {
|
|
826
|
+
base_element(node, context, comments);
|
|
827
|
+
},
|
|
828
|
+
|
|
824
829
|
SvelteBoundary(node, context) {
|
|
825
830
|
base_element(node, context, comments);
|
|
826
831
|
},
|
package/src/constants.js
CHANGED
|
@@ -32,7 +32,7 @@ export const ELEMENT_IS_NAMESPACED = 1;
|
|
|
32
32
|
export const ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
|
|
33
33
|
export const ELEMENT_IS_INPUT = 1 << 2;
|
|
34
34
|
|
|
35
|
-
export const UNINITIALIZED = Symbol();
|
|
35
|
+
export const UNINITIALIZED = Symbol('uninitialized');
|
|
36
36
|
|
|
37
37
|
// Dev-time component properties
|
|
38
38
|
export const FILENAME = Symbol('filename');
|
|
@@ -63,6 +63,11 @@ export const STATE_SYMBOL = Symbol('$state');
|
|
|
63
63
|
export const LEGACY_PROPS = Symbol('legacy props');
|
|
64
64
|
export const LOADING_ATTR_SYMBOL = Symbol('');
|
|
65
65
|
export const PROXY_PATH_SYMBOL = Symbol('proxy path');
|
|
66
|
+
export const ATTRIBUTES_CACHE = Symbol('attributes');
|
|
67
|
+
export const CLASS_CACHE = Symbol('class');
|
|
68
|
+
export const STYLE_CACHE = Symbol('style');
|
|
69
|
+
export const TEXT_CACHE = Symbol('text');
|
|
70
|
+
export const FORM_RESET_HANDLER = Symbol('form reset');
|
|
66
71
|
/** An anchor might change, via this symbol on the original anchor we can tell HMR about the updated anchor */
|
|
67
72
|
export const HMR_ANCHOR = Symbol('hmr anchor');
|
|
68
73
|
|
|
@@ -5,7 +5,12 @@ import { get_descriptors, get_prototype_of } from '../../../shared/utils.js';
|
|
|
5
5
|
import { create_event, delegate, delegated, event, event_symbol } from './events.js';
|
|
6
6
|
import { add_form_reset_listener, autofocus } from './misc.js';
|
|
7
7
|
import * as w from '../../warnings.js';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
ATTRIBUTES_CACHE,
|
|
10
|
+
FORM_RESET_HANDLER,
|
|
11
|
+
IS_XHTML,
|
|
12
|
+
LOADING_ATTR_SYMBOL
|
|
13
|
+
} from '#client/constants';
|
|
9
14
|
import { queue_micro_task } from '../task.js';
|
|
10
15
|
import { is_capture_event, can_delegate_event, normalize_attribute } from '../../../../utils.js';
|
|
11
16
|
import {
|
|
@@ -69,8 +74,7 @@ export function remove_input_defaults(input) {
|
|
|
69
74
|
}
|
|
70
75
|
};
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
input.__on_r = remove_defaults;
|
|
77
|
+
/** @type {any} */ (input)[FORM_RESET_HANDLER] = remove_defaults;
|
|
74
78
|
queue_micro_task(remove_defaults);
|
|
75
79
|
add_form_reset_listener();
|
|
76
80
|
}
|
|
@@ -561,8 +565,7 @@ export function attribute_effect(
|
|
|
561
565
|
*/
|
|
562
566
|
function get_attributes(element) {
|
|
563
567
|
return /** @type {Record<string | symbol, unknown>} **/ (
|
|
564
|
-
|
|
565
|
-
element.__attributes ??= {
|
|
568
|
+
/** @type {any} */ (element)[ATTRIBUTES_CACHE] ??= {
|
|
566
569
|
[IS_CUSTOM_ELEMENT]: element.nodeName.includes('-'),
|
|
567
570
|
[IS_HTML]: element.namespaceURI === NAMESPACE_HTML
|
|
568
571
|
}
|
|
@@ -583,13 +586,19 @@ function get_setters(element) {
|
|
|
583
586
|
var proto = element; // In the case of custom elements there might be setters on the instance
|
|
584
587
|
var element_proto = Element.prototype;
|
|
585
588
|
|
|
586
|
-
// Stop at Element, from there on there's only unnecessary setters we're not interested in
|
|
589
|
+
// Stop at Element, from there on there's only unnecessary (and dangerous, like innerHTML) setters we're not interested in
|
|
587
590
|
// Do not use constructor.name here as that's unreliable in some browser environments
|
|
588
591
|
while (element_proto !== proto) {
|
|
589
592
|
descriptors = get_descriptors(proto);
|
|
590
593
|
|
|
591
594
|
for (var key in descriptors) {
|
|
592
|
-
if (
|
|
595
|
+
if (
|
|
596
|
+
descriptors[key].set &&
|
|
597
|
+
// better safe than sorry, we don't want spread attributes to mess with HTML content
|
|
598
|
+
key !== 'innerHTML' &&
|
|
599
|
+
key !== 'textContent' &&
|
|
600
|
+
key !== 'innerText'
|
|
601
|
+
) {
|
|
593
602
|
setters.push(key);
|
|
594
603
|
}
|
|
595
604
|
}
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
set_active_effect,
|
|
6
6
|
set_active_reaction
|
|
7
7
|
} from '../../../runtime.js';
|
|
8
|
+
import { FORM_RESET_HANDLER } from '../../../constants.js';
|
|
8
9
|
import { add_form_reset_listener } from '../misc.js';
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -58,18 +59,15 @@ export function without_reactive_context(fn) {
|
|
|
58
59
|
*/
|
|
59
60
|
export function listen_to_event_and_reset_event(element, event, handler, on_reset = handler) {
|
|
60
61
|
element.addEventListener(event, () => without_reactive_context(handler));
|
|
61
|
-
|
|
62
|
-
const prev = element.__on_r;
|
|
62
|
+
const prev = /** @type {any} */ (element)[FORM_RESET_HANDLER];
|
|
63
63
|
if (prev) {
|
|
64
64
|
// special case for checkbox that can have multiple binds (group & checked)
|
|
65
|
-
|
|
66
|
-
element.__on_r = () => {
|
|
65
|
+
/** @type {any} */ (element)[FORM_RESET_HANDLER] = () => {
|
|
67
66
|
prev();
|
|
68
67
|
on_reset(true);
|
|
69
68
|
};
|
|
70
69
|
} else {
|
|
71
|
-
|
|
72
|
-
element.__on_r = () => on_reset(true);
|
|
70
|
+
/** @type {any} */ (element)[FORM_RESET_HANDLER] = () => on_reset(true);
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
add_form_reset_listener();
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { to_class } from '../../../shared/attributes.js';
|
|
2
|
+
import { CLASS_CACHE } from '../../constants.js';
|
|
2
3
|
import { hydrating } from '../hydration.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -11,8 +12,7 @@ import { hydrating } from '../hydration.js';
|
|
|
11
12
|
* @returns {Record<string, boolean> | undefined}
|
|
12
13
|
*/
|
|
13
14
|
export function set_class(dom, is_html, value, hash, prev_classes, next_classes) {
|
|
14
|
-
|
|
15
|
-
var prev = dom.__className;
|
|
15
|
+
var prev = /** @type {any} */ (dom)[CLASS_CACHE];
|
|
16
16
|
|
|
17
17
|
if (
|
|
18
18
|
hydrating ||
|
|
@@ -35,8 +35,7 @@ export function set_class(dom, is_html, value, hash, prev_classes, next_classes)
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
dom.__className = value;
|
|
38
|
+
/** @type {any} */ (dom)[CLASS_CACHE] = value;
|
|
40
39
|
} else if (next_classes && prev_classes !== next_classes) {
|
|
41
40
|
for (var key in next_classes) {
|
|
42
41
|
var is_present = !!next_classes[key];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { hydrating } from '../hydration.js';
|
|
2
2
|
import { clear_text_content, get_first_child } from '../operations.js';
|
|
3
3
|
import { queue_micro_task } from '../task.js';
|
|
4
|
+
import { FORM_RESET_HANDLER } from '../../constants.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* @param {HTMLElement} dom
|
|
@@ -45,8 +46,7 @@ export function add_form_reset_listener() {
|
|
|
45
46
|
Promise.resolve().then(() => {
|
|
46
47
|
if (!evt.defaultPrevented) {
|
|
47
48
|
for (const e of /**@type {HTMLFormElement} */ (evt.target).elements) {
|
|
48
|
-
|
|
49
|
-
e.__on_r?.();
|
|
49
|
+
/** @type {any} */ (e)[FORM_RESET_HANDLER]?.();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { to_style } from '../../../shared/attributes.js';
|
|
2
|
+
import { STYLE_CACHE } from '../../constants.js';
|
|
2
3
|
import { hydrating } from '../hydration.js';
|
|
3
4
|
|
|
4
5
|
/**
|
|
@@ -28,8 +29,7 @@ function update_styles(dom, prev = {}, next, priority) {
|
|
|
28
29
|
* @param {Record<string, any> | [Record<string, any>, Record<string, any>]} [next_styles]
|
|
29
30
|
*/
|
|
30
31
|
export function set_style(dom, value, prev_styles, next_styles) {
|
|
31
|
-
|
|
32
|
-
var prev = dom.__style;
|
|
32
|
+
var prev = /** @type {any} */ (dom)[STYLE_CACHE];
|
|
33
33
|
|
|
34
34
|
if (hydrating || prev !== value) {
|
|
35
35
|
var next_style_attr = to_style(value, next_styles);
|
|
@@ -42,8 +42,7 @@ export function set_style(dom, value, prev_styles, next_styles) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
dom.__style = value;
|
|
45
|
+
/** @type {any} */ (dom)[STYLE_CACHE] = value;
|
|
47
46
|
} else if (next_styles) {
|
|
48
47
|
if (Array.isArray(next_styles)) {
|
|
49
48
|
update_styles(dom, prev_styles?.[0], next_styles[0]);
|
|
@@ -5,7 +5,14 @@ import { init_array_prototype_warnings } from '../dev/equality.js';
|
|
|
5
5
|
import { get_descriptor, is_extensible } from '../../shared/utils.js';
|
|
6
6
|
import { active_effect } from '../runtime.js';
|
|
7
7
|
import { async_mode_flag } from '../../flags/index.js';
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
ATTRIBUTES_CACHE,
|
|
10
|
+
CLASS_CACHE,
|
|
11
|
+
REACTION_RAN,
|
|
12
|
+
STYLE_CACHE,
|
|
13
|
+
TEXT_CACHE,
|
|
14
|
+
TEXT_NODE
|
|
15
|
+
} from '#client/constants';
|
|
9
16
|
import { eager_block_effects } from '../reactivity/batch.js';
|
|
10
17
|
import { NAMESPACE_HTML } from '../../../constants.js';
|
|
11
18
|
|
|
@@ -48,21 +55,15 @@ export function init_operations() {
|
|
|
48
55
|
|
|
49
56
|
if (is_extensible(element_prototype)) {
|
|
50
57
|
// the following assignments improve perf of lookups on DOM nodes
|
|
51
|
-
|
|
52
|
-
element_prototype
|
|
53
|
-
|
|
54
|
-
element_prototype.__className = undefined;
|
|
55
|
-
// @ts-expect-error
|
|
56
|
-
element_prototype.__attributes = null;
|
|
57
|
-
// @ts-expect-error
|
|
58
|
-
element_prototype.__style = undefined;
|
|
58
|
+
/** @type {any} */ (element_prototype)[CLASS_CACHE] = undefined;
|
|
59
|
+
/** @type {any} */ (element_prototype)[ATTRIBUTES_CACHE] = null;
|
|
60
|
+
/** @type {any} */ (element_prototype)[STYLE_CACHE] = undefined;
|
|
59
61
|
// @ts-expect-error
|
|
60
62
|
element_prototype.__e = undefined;
|
|
61
63
|
}
|
|
62
64
|
|
|
63
65
|
if (is_extensible(text_prototype)) {
|
|
64
|
-
|
|
65
|
-
text_prototype.__t = undefined;
|
|
66
|
+
/** @type {any} */ (text_prototype)[TEXT_CACHE] = undefined;
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
if (DEV) {
|
|
@@ -303,15 +303,21 @@ export function run(thunks) {
|
|
|
303
303
|
.then(() => {
|
|
304
304
|
restore();
|
|
305
305
|
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
try {
|
|
307
|
+
if (errored) {
|
|
308
|
+
throw errored.error;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (aborted(active)) {
|
|
312
|
+
throw STALE_REACTION;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return fn();
|
|
316
|
+
} finally {
|
|
317
|
+
// We gotta unset context directly in case the function returns a promise, in which case
|
|
318
|
+
// unset_context in .finally() would be too late ...
|
|
319
|
+
unset_context();
|
|
308
320
|
}
|
|
309
|
-
|
|
310
|
-
if (aborted(active)) {
|
|
311
|
-
throw STALE_REACTION;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
return fn();
|
|
315
321
|
})
|
|
316
322
|
.catch(handle_error);
|
|
317
323
|
|
|
@@ -320,6 +326,7 @@ export function run(thunks) {
|
|
|
320
326
|
|
|
321
327
|
promise.finally(() => {
|
|
322
328
|
blocker.settled = true;
|
|
329
|
+
// ... but we also need it after such a promise has resolved in case it restores our context
|
|
323
330
|
unset_context();
|
|
324
331
|
});
|
|
325
332
|
}
|
|
@@ -338,7 +338,12 @@ export function execute_derived(derived) {
|
|
|
338
338
|
var prev_active_effect = active_effect;
|
|
339
339
|
var parent = derived.parent;
|
|
340
340
|
|
|
341
|
-
if (
|
|
341
|
+
if (
|
|
342
|
+
!is_destroying_effect &&
|
|
343
|
+
parent !== null &&
|
|
344
|
+
derived.v !== UNINITIALIZED && // if it was never evaluated before, it's guaranteed to fail downstream, so we try to execute instead
|
|
345
|
+
(parent.f & (DESTROYED | INERT)) !== 0
|
|
346
|
+
) {
|
|
342
347
|
w.derived_inert();
|
|
343
348
|
|
|
344
349
|
return derived.v;
|
|
@@ -447,8 +452,8 @@ export function freeze_derived_effects(derived) {
|
|
|
447
452
|
// make it a noop so it doesn't get called again if the derived
|
|
448
453
|
// is unfrozen. we don't set it to `null`, because the existence
|
|
449
454
|
// of a teardown function is what determines whether the
|
|
450
|
-
// effect runs again during unfreezing
|
|
451
|
-
e.teardown = noop;
|
|
455
|
+
// effect runs again during unfreezing (but not for teardown-only effects)
|
|
456
|
+
if (e.fn !== null) e.teardown = noop;
|
|
452
457
|
e.ac = null;
|
|
453
458
|
|
|
454
459
|
remove_reactions(e, 0);
|
|
@@ -466,7 +471,7 @@ export function unfreeze_derived_effects(derived) {
|
|
|
466
471
|
for (const e of derived.effects) {
|
|
467
472
|
// if the effect was previously frozen — indicated by the presence
|
|
468
473
|
// of a teardown function — unfreeze it
|
|
469
|
-
if (e.teardown) {
|
|
474
|
+
if (e.teardown && e.fn !== null) {
|
|
470
475
|
update_effect(e);
|
|
471
476
|
}
|
|
472
477
|
}
|
|
@@ -21,7 +21,7 @@ export let legacy_is_updating_store = false;
|
|
|
21
21
|
*/
|
|
22
22
|
let is_store_binding = false;
|
|
23
23
|
|
|
24
|
-
let IS_UNMOUNTED = Symbol();
|
|
24
|
+
let IS_UNMOUNTED = Symbol('unmounted');
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* Gets the current value of a store. If the store isn't subscribed to yet, it will create a proxy
|
|
@@ -23,7 +23,7 @@ import * as w from './warnings.js';
|
|
|
23
23
|
import * as e from './errors.js';
|
|
24
24
|
import { assign_nodes } from './dom/template.js';
|
|
25
25
|
import { is_passive_event } from '../../utils.js';
|
|
26
|
-
import { COMMENT_NODE, STATE_SYMBOL } from './constants.js';
|
|
26
|
+
import { COMMENT_NODE, STATE_SYMBOL, TEXT_CACHE } from './constants.js';
|
|
27
27
|
import { boundary } from './dom/blocks/boundary.js';
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -46,10 +46,9 @@ export function set_should_intro(value) {
|
|
|
46
46
|
export function set_text(text, value) {
|
|
47
47
|
// For objects, we apply string coercion (which might make things like $state array references in the template reactive) before diffing
|
|
48
48
|
var str = value == null ? '' : typeof value === 'object' ? `${value}` : value;
|
|
49
|
-
//
|
|
50
|
-
if (str !== (text
|
|
51
|
-
|
|
52
|
-
text.__t = str;
|
|
49
|
+
// prettier-ignore
|
|
50
|
+
if (str !== (/** @type {any} */ (text)[TEXT_CACHE] ??= text.nodeValue)) {
|
|
51
|
+
/** @type {any} */ (text)[TEXT_CACHE] = str;
|
|
53
52
|
text.nodeValue = `${str}`;
|
|
54
53
|
}
|
|
55
54
|
}
|
|
@@ -3,7 +3,6 @@ import { async_mode_flag } from '../flags/index.js';
|
|
|
3
3
|
import { get_render_context } from './render-context.js';
|
|
4
4
|
import * as e from './errors.js';
|
|
5
5
|
import * as devalue from 'devalue';
|
|
6
|
-
import { get_stack } from '../shared/dev.js';
|
|
7
6
|
import { DEV } from 'esm-env';
|
|
8
7
|
import { get_user_code_location } from './dev.js';
|
|
9
8
|
|
|
@@ -65,7 +64,13 @@ function encode(key, value, unresolved) {
|
|
|
65
64
|
const placeholder = `"${uid++}"`;
|
|
66
65
|
const p = value
|
|
67
66
|
.then((v) => {
|
|
68
|
-
entry.serialized = entry.serialized.replace(
|
|
67
|
+
entry.serialized = entry.serialized.replace(
|
|
68
|
+
placeholder,
|
|
69
|
+
// use the function form here to prevent any string replacement characters from being interpreted
|
|
70
|
+
// in `v`, as it's potentially user-controlled and therefore potentially malicious.
|
|
71
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_the_replacement
|
|
72
|
+
() => `r(${uneval(v)})`
|
|
73
|
+
);
|
|
69
74
|
})
|
|
70
75
|
.catch((devalue_error) =>
|
|
71
76
|
e.hydratable_serialization_failed(
|
|
@@ -151,7 +151,7 @@ export function attributes(attrs, css_hash, classes, styles, flags = 0) {
|
|
|
151
151
|
// omit functions, internal svelte properties and invalid attribute names
|
|
152
152
|
if (typeof attrs[name] === 'function') continue;
|
|
153
153
|
if (name[0] === '$' && name[1] === '$') continue; // faster than name.startsWith('$$')
|
|
154
|
-
if (INVALID_ATTR_NAME_CHAR_REGEX.test(name)) continue;
|
|
154
|
+
if (name === '' || INVALID_ATTR_NAME_CHAR_REGEX.test(name)) continue;
|
|
155
155
|
|
|
156
156
|
var value = attrs[name];
|
|
157
157
|
var lower = name.toLowerCase();
|
|
@@ -4,7 +4,7 @@ import { tag } from '../internal/client/dev/tracing.js';
|
|
|
4
4
|
import { get } from '../internal/client/runtime.js';
|
|
5
5
|
import { get_current_url } from './url.js';
|
|
6
6
|
|
|
7
|
-
export const REPLACE = Symbol();
|
|
7
|
+
export const REPLACE = Symbol('replace');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* A reactive version of the built-in [`URLSearchParams`](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) object.
|
package/src/utils.js
CHANGED
|
@@ -491,7 +491,7 @@ export function is_raw_text_element(name) {
|
|
|
491
491
|
// Rejects strings containing whitespace, quotes, angle brackets, slashes, equals,
|
|
492
492
|
// or other characters that could break out of a tag-name token and enable markup injection.
|
|
493
493
|
export const REGEX_VALID_TAG_NAME =
|
|
494
|
-
/^[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9.\-_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}]
|
|
494
|
+
/^[a-zA-Z][a-zA-Z0-9]*(-[a-zA-Z0-9.\-_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}]*)?$/u;
|
|
495
495
|
|
|
496
496
|
/**
|
|
497
497
|
* Prevent devtools trying to make `location` a clickable link by inserting a zero-width space
|
package/src/version.js
CHANGED
package/types/index.d.ts.map
CHANGED
|
@@ -273,6 +273,6 @@
|
|
|
273
273
|
null,
|
|
274
274
|
null
|
|
275
275
|
],
|
|
276
|
-
"mappings": ";;;;;;;;;kBAUiBA,2BAA2BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmC/BC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAwEhBC,kBAAkBA;;;;;;;;;;;;;;;;;;;;;;;;kBAwBbC,SAASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCbC,oBAAoBA;;;;;;;;;;;;;;;;;;;;;;;;aAwBrBC,eAAeA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiCfC,cAAcA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6BdC,aAAaA;;;;;;;;;;;;;;;;;;;;;;;kBAuBRC,OAAOA;;;;;;;;;;;;;;;;kBAgBPC,eAAeA;;;;;;;;;;;;;;;;aAgBpBC,YAAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+CPC,IAAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCzSLC,cAAcA;;;;;;;;;;;;iBAsBdC,OAAOA;;;;;;;;iBAwBPC,SAASA;;;;;;;;;;;;;;;;;;;;;;iBA0CTC,qBAAqBA;;;;;;;;;;iBA2CrBC,YAAYA;;;;;;;;;;iBAuBZC,WAAWA;iBClNXC,UAAUA;;;;iBC4DVC,gBAAgBA;;;;;MCvEpBC,WAAWA;;;;;iBCi+BPC,SAASA;;;;;;;;;;;;;;;;;;iBA2WTC,IAAIA;;;;;;;;iBC7vCJC,aAAaA;;;;;;;;iBAyBbC,UAAUA;;;;;;;;;;;iBAoBVC,UAAUA;;;;;;iBA2BVC,UAAUA;;;;;;;iBAaVC,cAAcA;;;;;;
|
|
276
|
+
"mappings": "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",
|
|
277
277
|
"ignoreList": []
|
|
278
278
|
}
|