@crowdin/app-project-module 2.10.0 → 2.11.1
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/out/index.d.ts +1 -0
- package/out/index.js +12 -7
- package/out/static/ui/form.bundle.js +1049 -220
- package/out/static/ui/form.bundle.js.map +1 -1
- package/out/storage/drizzle/index.d.ts +1 -0
- package/out/storage/drizzle/index.js +32 -0
- package/out/storage/types.d.ts +1 -0
- package/out/types.d.ts +15 -1
- package/out/types.js +1 -0
- package/out/util/connection.js +1 -4
- package/out/util/crowdin-storage.d.ts +7 -0
- package/out/util/crowdin-storage.js +78 -0
- package/package.json +3 -2
|
@@ -2691,10 +2691,13 @@
|
|
|
2691
2691
|
const isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
2692
2692
|
|
|
2693
2693
|
/** @type {(value: string) => boolean} */
|
|
2694
|
-
const isPathCharacter = RegExp.prototype.test.bind(/^[
|
|
2694
|
+
const isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
|
|
2695
|
+
|
|
2696
|
+
/** @type {(value: string) => boolean} */
|
|
2697
|
+
const isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
|
|
2695
2698
|
|
|
2696
2699
|
/** @type {(value: string) => boolean} */
|
|
2697
|
-
const
|
|
2700
|
+
const isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
|
|
2698
2701
|
|
|
2699
2702
|
/**
|
|
2700
2703
|
* @param {Array<string>} input
|
|
@@ -2727,12 +2730,14 @@
|
|
|
2727
2730
|
return acc
|
|
2728
2731
|
}
|
|
2729
2732
|
|
|
2730
|
-
/**
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2733
|
+
/** @type {(value: string) => boolean} */
|
|
2734
|
+
const isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
|
|
2735
|
+
|
|
2736
|
+
/** @type {(value: string) => boolean} */
|
|
2737
|
+
const isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
|
|
2738
|
+
|
|
2739
|
+
/** @type {(value: string) => boolean} */
|
|
2740
|
+
const isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
|
|
2736
2741
|
|
|
2737
2742
|
/**
|
|
2738
2743
|
* @param {string} value
|
|
@@ -2740,89 +2745,129 @@
|
|
|
2740
2745
|
*/
|
|
2741
2746
|
const nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
2742
2747
|
|
|
2748
|
+
/** @type {(value: string) => boolean} */
|
|
2749
|
+
const nonSimpleDomainChars = RegExp.prototype.test.bind(/[^\d!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
2750
|
+
|
|
2751
|
+
/** @type {(value: string) => boolean} */
|
|
2752
|
+
const numericLastLabel = RegExp.prototype.test.bind(/(?:^|\.)\d+$/u);
|
|
2753
|
+
|
|
2743
2754
|
/**
|
|
2744
|
-
*
|
|
2755
|
+
* True when `new URL('http://' + domain).hostname` may differ from `domain`,
|
|
2756
|
+
* i.e. when the caller must fall back to the WHATWG parser.
|
|
2757
|
+
*
|
|
2758
|
+
* Same purpose as `nonSimpleDomain`, but digits are allowed: for this character
|
|
2759
|
+
* set `hostname` is the identity, *except* that an all-numeric final label is
|
|
2760
|
+
* read as IPv4 shorthand ("1.2.3" -> "1.2.0.3", "127.1" -> "127.0.0.1",
|
|
2761
|
+
* "a.b.1" throws), which is why `nonSimpleDomain` excludes digits outright.
|
|
2762
|
+
* Rejecting that one shape lets the common `mail2.example.org` case stay on the
|
|
2763
|
+
* fast path.
|
|
2764
|
+
*
|
|
2765
|
+
* @param {string} domain - must already be lowercased
|
|
2745
2766
|
* @returns {boolean}
|
|
2746
2767
|
*/
|
|
2747
|
-
function
|
|
2748
|
-
|
|
2749
|
-
return true
|
|
2768
|
+
function nonSimpleMailtoDomain (domain) {
|
|
2769
|
+
return nonSimpleDomainChars(domain) || numericLastLabel(domain)
|
|
2750
2770
|
}
|
|
2751
2771
|
|
|
2752
2772
|
/**
|
|
2753
|
-
* @param {
|
|
2754
|
-
* @param {Array<string>} address
|
|
2755
|
-
* @param {GetIPV6Result} output
|
|
2773
|
+
* @param {string} zone
|
|
2756
2774
|
* @returns {boolean}
|
|
2757
2775
|
*/
|
|
2758
|
-
function
|
|
2759
|
-
if (
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2776
|
+
function isZoneIdentifier (zone) {
|
|
2777
|
+
if (zone.length === 0) return false
|
|
2778
|
+
|
|
2779
|
+
for (let i = 0; i < zone.length; i++) {
|
|
2780
|
+
if (isZoneCharacter(zone[i])) continue
|
|
2781
|
+
if (zone[i] === '%' && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {
|
|
2782
|
+
i += 2;
|
|
2783
|
+
continue
|
|
2766
2784
|
}
|
|
2767
|
-
|
|
2785
|
+
return false
|
|
2768
2786
|
}
|
|
2787
|
+
|
|
2769
2788
|
return true
|
|
2770
2789
|
}
|
|
2771
2790
|
|
|
2772
2791
|
/**
|
|
2773
|
-
*
|
|
2774
|
-
*
|
|
2792
|
+
* Compresses the longest run of zero hextets to "::" per RFC 5952. A run of a
|
|
2793
|
+
* single zero hextet is left uncompressed. On ties the leftmost run wins.
|
|
2794
|
+
*
|
|
2795
|
+
* @param {string[]} hextets
|
|
2796
|
+
* @returns {string}
|
|
2775
2797
|
*/
|
|
2776
|
-
function
|
|
2777
|
-
let
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
for (let i = 0; i < input.length; i++) {
|
|
2789
|
-
const cursor = input[i];
|
|
2790
|
-
if (cursor === '[' || cursor === ']') { continue }
|
|
2791
|
-
if (cursor === ':') {
|
|
2792
|
-
if (endipv6Encountered === true) {
|
|
2793
|
-
endIpv6 = true;
|
|
2798
|
+
function compressIPv6ZeroRun (hextets) {
|
|
2799
|
+
let bestStart = -1;
|
|
2800
|
+
let bestLength = 0;
|
|
2801
|
+
let runStart = -1;
|
|
2802
|
+
let runLength = 0;
|
|
2803
|
+
for (let i = 0; i < hextets.length; i++) {
|
|
2804
|
+
if (hextets[i] === '0') {
|
|
2805
|
+
if (runStart === -1) runStart = i;
|
|
2806
|
+
runLength++;
|
|
2807
|
+
if (runLength > bestLength) {
|
|
2808
|
+
bestLength = runLength;
|
|
2809
|
+
bestStart = runStart;
|
|
2794
2810
|
}
|
|
2795
|
-
if (!consume(buffer, address, output)) { break }
|
|
2796
|
-
if (++tokenCount > 7) {
|
|
2797
|
-
// not valid
|
|
2798
|
-
output.error = true;
|
|
2799
|
-
break
|
|
2800
|
-
}
|
|
2801
|
-
if (i > 0 && input[i - 1] === ':') {
|
|
2802
|
-
endipv6Encountered = true;
|
|
2803
|
-
}
|
|
2804
|
-
address.push(':');
|
|
2805
|
-
continue
|
|
2806
|
-
} else if (cursor === '%') {
|
|
2807
|
-
if (!consume(buffer, address, output)) { break }
|
|
2808
|
-
// switch to zone detection
|
|
2809
|
-
consume = consumeIsZone;
|
|
2810
2811
|
} else {
|
|
2811
|
-
|
|
2812
|
-
|
|
2812
|
+
runStart = -1;
|
|
2813
|
+
runLength = 0;
|
|
2813
2814
|
}
|
|
2814
2815
|
}
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2816
|
+
|
|
2817
|
+
if (bestLength < 2) return hextets.join(':')
|
|
2818
|
+
|
|
2819
|
+
const head = hextets.slice(0, bestStart).join(':');
|
|
2820
|
+
const tail = hextets.slice(bestStart + bestLength).join(':');
|
|
2821
|
+
return head + '::' + tail
|
|
2822
|
+
}
|
|
2823
|
+
|
|
2824
|
+
/**
|
|
2825
|
+
* Validates an IPv6 address against the alternatives in RFC 3986 section
|
|
2826
|
+
* 3.2.2 and returns the same address with leading hextet zeroes removed.
|
|
2827
|
+
* An embedded IPv4 address counts as two hextets and is only valid at the end.
|
|
2828
|
+
*
|
|
2829
|
+
* @param {string} input
|
|
2830
|
+
* @returns {string|undefined}
|
|
2831
|
+
*/
|
|
2832
|
+
function normalizeIPv6Address (input) {
|
|
2833
|
+
const compression = input.indexOf('::');
|
|
2834
|
+
if (compression !== -1 && input.indexOf('::', compression + 1) !== -1) return undefined
|
|
2835
|
+
|
|
2836
|
+
const left = compression === -1 ? input.split(':') : input.slice(0, compression).split(':');
|
|
2837
|
+
const right = compression === -1 ? [] : input.slice(compression + 2).split(':');
|
|
2838
|
+
if (compression !== -1) {
|
|
2839
|
+
if (left.length === 1 && left[0] === '') left.length = 0;
|
|
2840
|
+
if (right.length === 1 && right[0] === '') right.length = 0;
|
|
2841
|
+
}
|
|
2842
|
+
|
|
2843
|
+
const parts = left.concat(right);
|
|
2844
|
+
let hextetCount = 0;
|
|
2845
|
+
for (let i = 0; i < parts.length; i++) {
|
|
2846
|
+
const part = parts[i];
|
|
2847
|
+
if (part === '') return undefined
|
|
2848
|
+
|
|
2849
|
+
if (part.indexOf('.') !== -1) {
|
|
2850
|
+
if (i !== parts.length - 1 || (compression !== -1 && right.length === 0) || !isIPv4(part)) return undefined
|
|
2851
|
+
hextetCount += 2;
|
|
2852
|
+
continue
|
|
2822
2853
|
}
|
|
2854
|
+
|
|
2855
|
+
if (!isHextet(part)) return undefined
|
|
2856
|
+
parts[i] = parseInt(part, 16).toString(16);
|
|
2857
|
+
hextetCount++;
|
|
2823
2858
|
}
|
|
2824
|
-
|
|
2825
|
-
|
|
2859
|
+
|
|
2860
|
+
if (compression === -1) {
|
|
2861
|
+
if (hextetCount !== 8) return undefined
|
|
2862
|
+
return compressIPv6ZeroRun(parts)
|
|
2863
|
+
}
|
|
2864
|
+
if (hextetCount >= 8) return undefined
|
|
2865
|
+
|
|
2866
|
+
// expand "::" then re-compress the longest run for a canonical result
|
|
2867
|
+
const expanded = parts.slice(0, left.length);
|
|
2868
|
+
for (let i = hextetCount; i < 8; i++) expanded.push('0');
|
|
2869
|
+
for (let i = left.length; i < parts.length; i++) expanded.push(parts[i]);
|
|
2870
|
+
return compressIPv6ZeroRun(expanded)
|
|
2826
2871
|
}
|
|
2827
2872
|
|
|
2828
2873
|
/**
|
|
@@ -2830,26 +2875,49 @@
|
|
|
2830
2875
|
* @property {string} host - The normalized host.
|
|
2831
2876
|
* @property {string} [escapedHost] - The escaped host.
|
|
2832
2877
|
* @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.
|
|
2878
|
+
* @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.
|
|
2879
|
+
* @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.
|
|
2833
2880
|
*/
|
|
2834
2881
|
|
|
2835
2882
|
/**
|
|
2883
|
+
* Validates and normalizes a bracketed IP literal. Raw zone separators remain
|
|
2884
|
+
* accepted for backwards compatibility, while encoded separators and zone
|
|
2885
|
+
* contents follow RFC 6874.
|
|
2886
|
+
*
|
|
2836
2887
|
* @param {string} host
|
|
2837
2888
|
* @returns {NormalizeIPv6Result}
|
|
2838
2889
|
*/
|
|
2839
2890
|
function normalizeIPv6 (host) {
|
|
2840
|
-
|
|
2841
|
-
const
|
|
2891
|
+
const bracketed = host[0] === '[' && host[host.length - 1] === ']';
|
|
2892
|
+
const hasBracket = host[0] === '[' || host[host.length - 1] === ']';
|
|
2893
|
+
if (hasBracket && !bracketed) return { host, isIPV6: false, error: true }
|
|
2842
2894
|
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
|
|
2850
|
-
return { host
|
|
2851
|
-
}
|
|
2852
|
-
|
|
2895
|
+
let input = bracketed ? host.slice(1, -1) : host;
|
|
2896
|
+
if (bracketed && isIPvFuture(input)) {
|
|
2897
|
+
input = input.toLowerCase();
|
|
2898
|
+
return { host: `[${input}]`, escapedHost: input, isIPV6: false, isIPVFuture: true }
|
|
2899
|
+
}
|
|
2900
|
+
|
|
2901
|
+
if (findToken(input, ':') < 2) {
|
|
2902
|
+
return { host, isIPV6: false, error: bracketed }
|
|
2903
|
+
}
|
|
2904
|
+
|
|
2905
|
+
let zoneIdentifier = '';
|
|
2906
|
+
const zoneSeparator = input.indexOf('%');
|
|
2907
|
+
if (zoneSeparator !== -1) {
|
|
2908
|
+
const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === '%25' ? 3 : 1;
|
|
2909
|
+
zoneIdentifier = input.slice(zoneSeparator + separatorLength);
|
|
2910
|
+
if (!isZoneIdentifier(zoneIdentifier)) return { host, isIPV6: false, error: true }
|
|
2911
|
+
input = input.slice(0, zoneSeparator);
|
|
2912
|
+
}
|
|
2913
|
+
|
|
2914
|
+
const address = normalizeIPv6Address(input);
|
|
2915
|
+
if (address === undefined) return { host, isIPV6: false, error: true }
|
|
2916
|
+
|
|
2917
|
+
return {
|
|
2918
|
+
host: address + (zoneIdentifier ? '%' + zoneIdentifier : ''),
|
|
2919
|
+
escapedHost: address + (zoneIdentifier ? '%25' + zoneIdentifier : ''),
|
|
2920
|
+
isIPV6: true
|
|
2853
2921
|
}
|
|
2854
2922
|
}
|
|
2855
2923
|
|
|
@@ -2975,7 +3043,7 @@
|
|
|
2975
3043
|
|
|
2976
3044
|
/**
|
|
2977
3045
|
* Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.
|
|
2978
|
-
* Reserved delimiters such as `%2F`
|
|
3046
|
+
* Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.
|
|
2979
3047
|
*
|
|
2980
3048
|
* @param {string} input
|
|
2981
3049
|
* @param {boolean} [decodeUnreserved=false]
|
|
@@ -3116,6 +3184,60 @@
|
|
|
3116
3184
|
return output
|
|
3117
3185
|
}
|
|
3118
3186
|
|
|
3187
|
+
/**
|
|
3188
|
+
* Serializes a path without rewriting reserved data. Raw RFC 3986 path
|
|
3189
|
+
* characters remain literal, valid escapes are preserved and uppercased, and
|
|
3190
|
+
* everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the
|
|
3191
|
+
* first segment must be escaped so the result cannot be parsed as a scheme.
|
|
3192
|
+
*
|
|
3193
|
+
* @param {string} input
|
|
3194
|
+
* @param {boolean} [pathNoScheme=false]
|
|
3195
|
+
* @returns {string}
|
|
3196
|
+
*/
|
|
3197
|
+
function serializePathEncoding (input, pathNoScheme = false) {
|
|
3198
|
+
let output = '';
|
|
3199
|
+
let firstSegment = pathNoScheme && input[0] !== '/';
|
|
3200
|
+
|
|
3201
|
+
for (let i = 0; i < input.length; i++) {
|
|
3202
|
+
const ch = input[i];
|
|
3203
|
+
if (ch === '%' && i + 2 < input.length) {
|
|
3204
|
+
const hex = input.slice(i + 1, i + 3);
|
|
3205
|
+
if (isHexPair(hex)) {
|
|
3206
|
+
output += '%' + hex.toUpperCase();
|
|
3207
|
+
i += 2;
|
|
3208
|
+
continue
|
|
3209
|
+
}
|
|
3210
|
+
}
|
|
3211
|
+
|
|
3212
|
+
if (ch === '/') {
|
|
3213
|
+
firstSegment = false;
|
|
3214
|
+
}
|
|
3215
|
+
|
|
3216
|
+
if (isPathCharacter(ch) && (ch !== ':' || !firstSegment)) {
|
|
3217
|
+
output += ch;
|
|
3218
|
+
} else {
|
|
3219
|
+
const code = input.charCodeAt(i);
|
|
3220
|
+
if (code < 0x80) {
|
|
3221
|
+
output += BYTE_HEX[code];
|
|
3222
|
+
} else if (code < 0xD800 || code > 0xDFFF) {
|
|
3223
|
+
output += percentEncodeNonAscii(code);
|
|
3224
|
+
} else if (code <= 0xDBFF && i + 1 < input.length) {
|
|
3225
|
+
const low = input.charCodeAt(i + 1);
|
|
3226
|
+
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
3227
|
+
output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00));
|
|
3228
|
+
i++;
|
|
3229
|
+
} else {
|
|
3230
|
+
output += percentEncodeNonAscii(0xFFFD);
|
|
3231
|
+
}
|
|
3232
|
+
} else {
|
|
3233
|
+
output += percentEncodeNonAscii(0xFFFD);
|
|
3234
|
+
}
|
|
3235
|
+
}
|
|
3236
|
+
}
|
|
3237
|
+
|
|
3238
|
+
return output
|
|
3239
|
+
}
|
|
3240
|
+
|
|
3119
3241
|
/**
|
|
3120
3242
|
* Normalizes the percent-encoding of a query or fragment component.
|
|
3121
3243
|
*
|
|
@@ -3173,6 +3295,85 @@
|
|
|
3173
3295
|
return output
|
|
3174
3296
|
}
|
|
3175
3297
|
|
|
3298
|
+
/**
|
|
3299
|
+
* Percent-encodes a URI component using its RFC 3986 literal character set.
|
|
3300
|
+
* Existing valid escapes are preserved and normalized to uppercase hex.
|
|
3301
|
+
*
|
|
3302
|
+
* @param {string} input
|
|
3303
|
+
* @param {(value: string) => boolean} isAllowed
|
|
3304
|
+
* @returns {string}
|
|
3305
|
+
*/
|
|
3306
|
+
function encodeComponent (input, isAllowed) {
|
|
3307
|
+
let output = '';
|
|
3308
|
+
|
|
3309
|
+
for (let i = 0; i < input.length; i++) {
|
|
3310
|
+
const ch = input[i];
|
|
3311
|
+
if (ch === '%' && i + 2 < input.length) {
|
|
3312
|
+
const hex = input.slice(i + 1, i + 3);
|
|
3313
|
+
if (isHexPair(hex)) {
|
|
3314
|
+
output += '%' + hex.toUpperCase();
|
|
3315
|
+
i += 2;
|
|
3316
|
+
continue
|
|
3317
|
+
}
|
|
3318
|
+
}
|
|
3319
|
+
|
|
3320
|
+
if (isAllowed(ch)) {
|
|
3321
|
+
output += ch;
|
|
3322
|
+
} else {
|
|
3323
|
+
const code = input.charCodeAt(i);
|
|
3324
|
+
if (code < 0x80) {
|
|
3325
|
+
output += BYTE_HEX[code];
|
|
3326
|
+
} else if (code < 0xD800 || code > 0xDFFF) {
|
|
3327
|
+
output += percentEncodeNonAscii(code);
|
|
3328
|
+
} else if (code <= 0xDBFF && i + 1 < input.length) {
|
|
3329
|
+
const low = input.charCodeAt(i + 1);
|
|
3330
|
+
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
3331
|
+
output += percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00));
|
|
3332
|
+
i++;
|
|
3333
|
+
} else {
|
|
3334
|
+
output += percentEncodeNonAscii(0xFFFD);
|
|
3335
|
+
}
|
|
3336
|
+
} else {
|
|
3337
|
+
output += percentEncodeNonAscii(0xFFFD);
|
|
3338
|
+
}
|
|
3339
|
+
}
|
|
3340
|
+
}
|
|
3341
|
+
|
|
3342
|
+
return output
|
|
3343
|
+
}
|
|
3344
|
+
|
|
3345
|
+
/**
|
|
3346
|
+
* Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.
|
|
3347
|
+
* In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.
|
|
3348
|
+
*
|
|
3349
|
+
* @param {string} input
|
|
3350
|
+
* @returns {string}
|
|
3351
|
+
*/
|
|
3352
|
+
function encodeUserinfo (input) {
|
|
3353
|
+
return encodeComponent(input, isUserinfoCharacter)
|
|
3354
|
+
}
|
|
3355
|
+
|
|
3356
|
+
/**
|
|
3357
|
+
* Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be
|
|
3358
|
+
* escaped because it would otherwise begin the fragment component.
|
|
3359
|
+
*
|
|
3360
|
+
* @param {string} input
|
|
3361
|
+
* @returns {string}
|
|
3362
|
+
*/
|
|
3363
|
+
function encodeQuery (input) {
|
|
3364
|
+
return encodeComponent(input, isQueryFragmentCharacter)
|
|
3365
|
+
}
|
|
3366
|
+
|
|
3367
|
+
/**
|
|
3368
|
+
* Encodes fragment data using the RFC 3986 §3.5 grammar.
|
|
3369
|
+
*
|
|
3370
|
+
* @param {string} input
|
|
3371
|
+
* @returns {string}
|
|
3372
|
+
*/
|
|
3373
|
+
function encodeFragment (input) {
|
|
3374
|
+
return encodeComponent(input, isQueryFragmentCharacter)
|
|
3375
|
+
}
|
|
3376
|
+
|
|
3176
3377
|
/**
|
|
3177
3378
|
* Escapes a component while preserving existing valid percent escapes.
|
|
3178
3379
|
*
|
|
@@ -3222,15 +3423,21 @@
|
|
|
3222
3423
|
const uriTokens = [];
|
|
3223
3424
|
|
|
3224
3425
|
if (component.userinfo !== undefined) {
|
|
3225
|
-
uriTokens.push(component.userinfo);
|
|
3426
|
+
uriTokens.push(encodeUserinfo(component.userinfo));
|
|
3226
3427
|
uriTokens.push('@');
|
|
3227
3428
|
}
|
|
3228
3429
|
|
|
3229
3430
|
if (component.host !== undefined) {
|
|
3230
|
-
let host =
|
|
3431
|
+
let host = component.host;
|
|
3231
3432
|
if (!isIPv4(host)) {
|
|
3232
|
-
|
|
3233
|
-
if (ipV6res.isIPV6
|
|
3433
|
+
let ipV6res = normalizeIPv6(host);
|
|
3434
|
+
if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
|
|
3435
|
+
// Decode only unreserved bytes, once. In particular, keep %25 encoded
|
|
3436
|
+
// so it cannot introduce a second escape during recomposition.
|
|
3437
|
+
host = normalizePercentEncoding(host, true);
|
|
3438
|
+
ipV6res = normalizeIPv6(host);
|
|
3439
|
+
}
|
|
3440
|
+
if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) {
|
|
3234
3441
|
host = `[${ipV6res.escapedHost}]`;
|
|
3235
3442
|
} else {
|
|
3236
3443
|
host = reescapeHostDelimiters(host, false);
|
|
@@ -3247,12 +3454,19 @@
|
|
|
3247
3454
|
return uriTokens.length ? uriTokens.join('') : undefined
|
|
3248
3455
|
}
|
|
3249
3456
|
utils$1 = {
|
|
3457
|
+
BYTE_HEX,
|
|
3458
|
+
percentEncodeNonAscii,
|
|
3250
3459
|
nonSimpleDomain,
|
|
3460
|
+
nonSimpleMailtoDomain,
|
|
3251
3461
|
recomposeAuthority,
|
|
3252
3462
|
reescapeHostDelimiters,
|
|
3253
3463
|
normalizePercentEncoding,
|
|
3254
3464
|
normalizePathEncoding,
|
|
3465
|
+
serializePathEncoding,
|
|
3255
3466
|
normalizeQueryFragmentEncoding,
|
|
3467
|
+
encodeUserinfo,
|
|
3468
|
+
encodeQuery,
|
|
3469
|
+
encodeFragment,
|
|
3256
3470
|
escapePreservingEscapes,
|
|
3257
3471
|
removeDotSegments,
|
|
3258
3472
|
isIPv4,
|
|
@@ -3270,11 +3484,11 @@
|
|
|
3270
3484
|
if (hasRequiredSchemes$1) return schemes$1;
|
|
3271
3485
|
hasRequiredSchemes$1 = 1;
|
|
3272
3486
|
|
|
3273
|
-
const { isUUID } = requireUtils$1();
|
|
3274
|
-
const URN_REG =
|
|
3487
|
+
const { isUUID, BYTE_HEX, percentEncodeNonAscii, nonSimpleMailtoDomain } = requireUtils$1();
|
|
3488
|
+
const URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
3275
3489
|
|
|
3276
3490
|
const supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',
|
|
3277
|
-
'wss', 'urn', 'urn:uuid']);
|
|
3491
|
+
'wss', 'urn', 'urn:uuid', 'mailto']);
|
|
3278
3492
|
|
|
3279
3493
|
/** @typedef {supportedSchemeNames[number]} SchemeName */
|
|
3280
3494
|
|
|
@@ -3383,9 +3597,14 @@
|
|
|
3383
3597
|
|
|
3384
3598
|
// reconstruct path from resource name
|
|
3385
3599
|
if (wsComponent.resourceName) {
|
|
3386
|
-
const
|
|
3600
|
+
const queryIndex = wsComponent.resourceName.indexOf('?');
|
|
3601
|
+
const path = queryIndex === -1
|
|
3602
|
+
? wsComponent.resourceName
|
|
3603
|
+
: wsComponent.resourceName.slice(0, queryIndex);
|
|
3387
3604
|
wsComponent.path = (path && path !== '/' ? path : undefined);
|
|
3388
|
-
wsComponent.query =
|
|
3605
|
+
wsComponent.query = queryIndex === -1
|
|
3606
|
+
? undefined
|
|
3607
|
+
: wsComponent.resourceName.slice(queryIndex + 1);
|
|
3389
3608
|
wsComponent.resourceName = undefined;
|
|
3390
3609
|
}
|
|
3391
3610
|
|
|
@@ -3402,7 +3621,7 @@
|
|
|
3402
3621
|
return urnComponent
|
|
3403
3622
|
}
|
|
3404
3623
|
const matches = urnComponent.path.match(URN_REG);
|
|
3405
|
-
if (matches) {
|
|
3624
|
+
if (matches && matches[0] === urnComponent.path) {
|
|
3406
3625
|
const scheme = options.scheme || urnComponent.scheme || 'urn';
|
|
3407
3626
|
urnComponent.nid = matches[1].toLowerCase();
|
|
3408
3627
|
urnComponent.nss = matches[2];
|
|
@@ -3505,13 +3724,385 @@
|
|
|
3505
3724
|
skipNormalize: true
|
|
3506
3725
|
});
|
|
3507
3726
|
|
|
3727
|
+
/**
|
|
3728
|
+
* Allow-sets for `encodeWithAllow`, each a `{ all, table, allowNonAscii }`
|
|
3729
|
+
* descriptor built by `allowSet`:
|
|
3730
|
+
*
|
|
3731
|
+
* - `LOCAL_PART` is the intersection of upstream uri-js's VCHAR and
|
|
3732
|
+
* NOT_PATH_NOSCHEME, minus ",": the serializer joins recipients with "," and
|
|
3733
|
+
* `mailtoParse` splits the path on it, so a comma left literal inside a local
|
|
3734
|
+
* part would silently become a recipient delimiter.
|
|
3735
|
+
* - `HFNAME` is the qchar allow-set used for header names/values.
|
|
3736
|
+
* - `DTEXT` is RFC 6068 dtext-no-obs restricted to characters that are also
|
|
3737
|
+
* safe in a URI path; `DTEXT_IRI` additionally permits non-ASCII for
|
|
3738
|
+
* `unicodeSupport`.
|
|
3739
|
+
*/
|
|
3740
|
+
const LOCAL_PART_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+=";
|
|
3741
|
+
const HFNAME_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@";
|
|
3742
|
+
const DTEXT_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:";
|
|
3743
|
+
|
|
3744
|
+
/**
|
|
3745
|
+
* @typedef {Object} AllowSet
|
|
3746
|
+
* @property {RegExp} all - matches a whole string needing no encoding at all.
|
|
3747
|
+
* @property {Uint8Array} table - per-ASCII-code allow lookup for the slow path.
|
|
3748
|
+
* @property {boolean} allowNonAscii - pass non-ASCII code points through (IRI).
|
|
3749
|
+
*/
|
|
3750
|
+
|
|
3751
|
+
/**
|
|
3752
|
+
* `all` deliberately excludes "%" and (for the IRI variant) surrogates, so any
|
|
3753
|
+
* input needing escape normalization or surrogate repair falls to the slow path.
|
|
3754
|
+
*
|
|
3755
|
+
* @param {string} chars
|
|
3756
|
+
* @param {boolean} [allowNonAscii=false]
|
|
3757
|
+
* @returns {AllowSet}
|
|
3758
|
+
*/
|
|
3759
|
+
function allowSet (chars, allowNonAscii = false) {
|
|
3760
|
+
const table = new Uint8Array(128);
|
|
3761
|
+
for (let i = 0; i < chars.length; i++) {
|
|
3762
|
+
table[chars.charCodeAt(i)] = 1;
|
|
3763
|
+
}
|
|
3764
|
+
const escaped = chars.replace(/[\\\]^-]/gu, '\\$&');
|
|
3765
|
+
const cls = allowNonAscii ? `[${escaped}]|[^\\0-\\x7F\\uD800-\\uDFFF]` : `[${escaped}]`;
|
|
3766
|
+
return { all: new RegExp(`^(?:${cls})*$`, 'u'), table, allowNonAscii }
|
|
3767
|
+
}
|
|
3768
|
+
|
|
3769
|
+
const LOCAL_PART = allowSet(LOCAL_PART_ALLOWED);
|
|
3770
|
+
const HFNAME = allowSet(HFNAME_ALLOWED);
|
|
3771
|
+
const DTEXT = allowSet(DTEXT_ALLOWED);
|
|
3772
|
+
const DTEXT_IRI = allowSet(DTEXT_ALLOWED, true);
|
|
3773
|
+
|
|
3774
|
+
const HEX_PAIR = /^[\da-f]{2}$/iu;
|
|
3775
|
+
const MAILTO_DOMAIN_LITERAL = /^\[[\x21-\x5A\x5E-\x7E]*\]$/u;
|
|
3776
|
+
const MAILTO_DOMAIN_ERROR = 'URI mailto has an invalid recipient domain.';
|
|
3777
|
+
const HAS_SURROGATE = /[\uD800-\uDFFF]/u;
|
|
3778
|
+
|
|
3779
|
+
/**
|
|
3780
|
+
* @param {string} str
|
|
3781
|
+
* @returns {string}
|
|
3782
|
+
*/
|
|
3783
|
+
function decodeHex (str) {
|
|
3784
|
+
if (typeof str !== 'string' || str.indexOf('%') === -1) {
|
|
3785
|
+
return str
|
|
3786
|
+
}
|
|
3787
|
+
try {
|
|
3788
|
+
return decodeURIComponent(str)
|
|
3789
|
+
} catch {
|
|
3790
|
+
return str
|
|
3791
|
+
}
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
/**
|
|
3795
|
+
* Replaces lone surrogates with U+FFFD, leaving valid pairs intact. Only called
|
|
3796
|
+
* when `HAS_SURROGATE` matched, so the scan cost is not on the common path.
|
|
3797
|
+
* (`String.prototype.toWellFormed` would do this natively but is Node 20+.)
|
|
3798
|
+
*
|
|
3799
|
+
* @param {string} input
|
|
3800
|
+
* @returns {string}
|
|
3801
|
+
*/
|
|
3802
|
+
function replaceLoneSurrogates (input) {
|
|
3803
|
+
let result = '';
|
|
3804
|
+
for (let i = 0; i < input.length; i++) {
|
|
3805
|
+
const code = input.charCodeAt(i);
|
|
3806
|
+
if (code >= 0xD800 && code <= 0xDBFF && i + 1 < input.length) {
|
|
3807
|
+
const low = input.charCodeAt(i + 1);
|
|
3808
|
+
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
3809
|
+
result += input[i] + input[i + 1];
|
|
3810
|
+
i++;
|
|
3811
|
+
continue
|
|
3812
|
+
}
|
|
3813
|
+
}
|
|
3814
|
+
result += (code >= 0xD800 && code <= 0xDFFF) ? '\uFFFD' : input[i];
|
|
3815
|
+
}
|
|
3816
|
+
return result
|
|
3817
|
+
}
|
|
3818
|
+
|
|
3819
|
+
/**
|
|
3820
|
+
* Percent-encodes everything outside `set`, preserving existing valid escapes
|
|
3821
|
+
* (uppercased) and repairing lone surrogates.
|
|
3822
|
+
*
|
|
3823
|
+
* ASCII uses `BYTE_HEX` rather than `encodeURIComponent`. That is equivalent
|
|
3824
|
+
* only because every character `encodeURIComponent` leaves unescaped
|
|
3825
|
+
* (`A-Za-z0-9-_.!~*'()`) is present in all of the allow-sets above, so no such
|
|
3826
|
+
* character ever reaches the encode branch. Re-check if a set is narrowed.
|
|
3827
|
+
*
|
|
3828
|
+
* @param {string} input
|
|
3829
|
+
* @param {AllowSet} set
|
|
3830
|
+
* @returns {string}
|
|
3831
|
+
*/
|
|
3832
|
+
function encodeWithAllow (input, set) {
|
|
3833
|
+
if (set.all.test(input)) {
|
|
3834
|
+
return input
|
|
3835
|
+
}
|
|
3836
|
+
|
|
3837
|
+
const table = set.table;
|
|
3838
|
+
let result = '';
|
|
3839
|
+
for (let i = 0; i < input.length; i++) {
|
|
3840
|
+
const code = input.charCodeAt(i);
|
|
3841
|
+
|
|
3842
|
+
if (code < 0x80) {
|
|
3843
|
+
if (table[code] === 1) {
|
|
3844
|
+
result += input[i];
|
|
3845
|
+
} else if (code === 0x25 && i + 2 < input.length && HEX_PAIR.test(input.slice(i + 1, i + 3))) {
|
|
3846
|
+
result += '%' + input.slice(i + 1, i + 3).toUpperCase();
|
|
3847
|
+
i += 2;
|
|
3848
|
+
} else {
|
|
3849
|
+
result += BYTE_HEX[code];
|
|
3850
|
+
}
|
|
3851
|
+
continue
|
|
3852
|
+
}
|
|
3853
|
+
|
|
3854
|
+
if (code < 0xD800 || code > 0xDFFF) {
|
|
3855
|
+
result += set.allowNonAscii ? input[i] : percentEncodeNonAscii(code);
|
|
3856
|
+
continue
|
|
3857
|
+
}
|
|
3858
|
+
|
|
3859
|
+
if (code <= 0xDBFF && i + 1 < input.length) {
|
|
3860
|
+
const low = input.charCodeAt(i + 1);
|
|
3861
|
+
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
3862
|
+
result += set.allowNonAscii
|
|
3863
|
+
? input[i] + input[i + 1]
|
|
3864
|
+
: percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00));
|
|
3865
|
+
i++;
|
|
3866
|
+
continue
|
|
3867
|
+
}
|
|
3868
|
+
}
|
|
3869
|
+
|
|
3870
|
+
result += set.allowNonAscii ? '\uFFFD' : percentEncodeNonAscii(0xFFFD);
|
|
3871
|
+
}
|
|
3872
|
+
return result
|
|
3873
|
+
}
|
|
3874
|
+
|
|
3875
|
+
/**
|
|
3876
|
+
* @param {string} domain
|
|
3877
|
+
* @param {import('../types/index').Options} [options]
|
|
3878
|
+
* @param {{error?:string}} [component]
|
|
3879
|
+
* @returns {string}
|
|
3880
|
+
*/
|
|
3881
|
+
function mailtoNormalizeDomain (domain, options, component) {
|
|
3882
|
+
const normalizedDomain = String(domain).toLowerCase();
|
|
3883
|
+
|
|
3884
|
+
if (MAILTO_DOMAIN_LITERAL.test(normalizedDomain)) {
|
|
3885
|
+
return normalizedDomain
|
|
3886
|
+
}
|
|
3887
|
+
|
|
3888
|
+
// `hostname` is the identity for these, so skip constructing a WHATWG URL.
|
|
3889
|
+
if (normalizedDomain !== '' && !nonSimpleMailtoDomain(normalizedDomain)) {
|
|
3890
|
+
return normalizedDomain
|
|
3891
|
+
}
|
|
3892
|
+
|
|
3893
|
+
try {
|
|
3894
|
+
const parsedDomain = new URL('http://' + normalizedDomain);
|
|
3895
|
+
if (
|
|
3896
|
+
parsedDomain.username ||
|
|
3897
|
+
parsedDomain.password ||
|
|
3898
|
+
parsedDomain.port ||
|
|
3899
|
+
parsedDomain.pathname !== '/' ||
|
|
3900
|
+
parsedDomain.search ||
|
|
3901
|
+
parsedDomain.hash ||
|
|
3902
|
+
!parsedDomain.hostname
|
|
3903
|
+
) {
|
|
3904
|
+
throw new Error(MAILTO_DOMAIN_ERROR)
|
|
3905
|
+
}
|
|
3906
|
+
|
|
3907
|
+
return options && options.unicodeSupport
|
|
3908
|
+
? normalizedDomain
|
|
3909
|
+
: parsedDomain.hostname
|
|
3910
|
+
} catch {
|
|
3911
|
+
if (component) {
|
|
3912
|
+
component.error = component.error || MAILTO_DOMAIN_ERROR;
|
|
3913
|
+
}
|
|
3914
|
+
return normalizedDomain
|
|
3915
|
+
}
|
|
3916
|
+
}
|
|
3917
|
+
|
|
3918
|
+
/**
|
|
3919
|
+
* Percent-encodes everything in a recipient domain that is not `dtext-no-obs`
|
|
3920
|
+
* (RFC 6068). Serialize-only: `mailtoNormalizeDomain` returns the domain
|
|
3921
|
+
* verbatim when validation fails, and `MAILTO_DOMAIN_LITERAL` accepts the full
|
|
3922
|
+
* RFC 5321 dcontent range (which includes "?", "#", "&" and "/"), so without
|
|
3923
|
+
* this an attacker-supplied recipient could inject header fields or a fragment
|
|
3924
|
+
* into the serialized URI. `mailtoParse` deliberately reports the raw domain
|
|
3925
|
+
* instead, so it must not use this.
|
|
3926
|
+
* @param {string} domain
|
|
3927
|
+
* @param {import('../types/index').Options} [options]
|
|
3928
|
+
* @returns {string}
|
|
3929
|
+
*/
|
|
3930
|
+
function mailtoEncodeDomain (domain, options) {
|
|
3931
|
+
const set = options && options.unicodeSupport ? DTEXT_IRI : DTEXT;
|
|
3932
|
+
|
|
3933
|
+
// Keep the delimiters of a domain literal, encode its contents.
|
|
3934
|
+
if (domain.length > 1 && domain[0] === '[' && domain[domain.length - 1] === ']') {
|
|
3935
|
+
return '[' + encodeWithAllow(domain.slice(1, -1), set) + ']'
|
|
3936
|
+
}
|
|
3937
|
+
|
|
3938
|
+
return encodeWithAllow(domain, set)
|
|
3939
|
+
}
|
|
3940
|
+
|
|
3941
|
+
/**
|
|
3942
|
+
* @param {import('../types/index').URIComponent} component
|
|
3943
|
+
* @param {import('../types/index').Options} options
|
|
3944
|
+
* @returns {import('../types/index').URIComponent}
|
|
3945
|
+
*/
|
|
3946
|
+
function mailtoParse (component, options) {
|
|
3947
|
+
const mailtoComponent = component;
|
|
3948
|
+
|
|
3949
|
+
// The handler sets `skipNormalize`, so path and query arrive raw. Everything
|
|
3950
|
+
// here goes through `decodeHex`, which subsumes the generic normalizers --
|
|
3951
|
+
// except that they also fold lone surrogates to U+FFFD, so do that here.
|
|
3952
|
+
let rawPath = mailtoComponent.path;
|
|
3953
|
+
let rawQuery = mailtoComponent.query;
|
|
3954
|
+
if (rawPath && HAS_SURROGATE.test(rawPath)) rawPath = replaceLoneSurrogates(rawPath);
|
|
3955
|
+
if (rawQuery && HAS_SURROGATE.test(rawQuery)) rawQuery = replaceLoneSurrogates(rawQuery);
|
|
3956
|
+
|
|
3957
|
+
const to = rawPath
|
|
3958
|
+
? (rawPath.indexOf(',') === -1 ? [rawPath] : rawPath.split(','))
|
|
3959
|
+
: [];
|
|
3960
|
+
mailtoComponent.path = undefined;
|
|
3961
|
+
|
|
3962
|
+
if (rawQuery) {
|
|
3963
|
+
// Null prototype: header names come from untrusted input, so `headers[name]`
|
|
3964
|
+
// must not resolve to inherited members ("constructor", "toString", ...),
|
|
3965
|
+
// and "__proto__" has to land as a plain own property instead of hitting
|
|
3966
|
+
// Object.prototype's setter and being silently dropped. Allocated lazily so
|
|
3967
|
+
// the common subject/body-only URI does not pay for it.
|
|
3968
|
+
/** @type {Record<string,string>|null} */
|
|
3969
|
+
let headers = null;
|
|
3970
|
+
let start = 0;
|
|
3971
|
+
while (start <= rawQuery.length) {
|
|
3972
|
+
let end = rawQuery.indexOf('&', start);
|
|
3973
|
+
if (end === -1) end = rawQuery.length;
|
|
3974
|
+
const token = rawQuery.slice(start, end);
|
|
3975
|
+
start = end + 1;
|
|
3976
|
+
|
|
3977
|
+
const eqIdx = token.indexOf('=');
|
|
3978
|
+
if (eqIdx !== token.lastIndexOf('=')) {
|
|
3979
|
+
mailtoComponent.error = mailtoComponent.error || 'URI mailto has malformed header fields.';
|
|
3980
|
+
continue
|
|
3981
|
+
}
|
|
3982
|
+
const name = eqIdx === -1 ? token : token.slice(0, eqIdx);
|
|
3983
|
+
const value = eqIdx === -1 ? '' : token.slice(eqIdx + 1);
|
|
3984
|
+
if (name === 'to') {
|
|
3985
|
+
const addrs = value.split(',');
|
|
3986
|
+
for (let j = 0; j < addrs.length; j++) to.push(addrs[j]);
|
|
3987
|
+
continue
|
|
3988
|
+
}
|
|
3989
|
+
if (name === 'subject') {
|
|
3990
|
+
mailtoComponent.subject = decodeHex(value);
|
|
3991
|
+
continue
|
|
3992
|
+
}
|
|
3993
|
+
if (name === 'body') {
|
|
3994
|
+
mailtoComponent.body = decodeHex(value);
|
|
3995
|
+
continue
|
|
3996
|
+
}
|
|
3997
|
+
if (headers === null) headers = /** @type {Record<string,string>} */ (Object.create(null));
|
|
3998
|
+
headers[decodeHex(name)] = decodeHex(value);
|
|
3999
|
+
}
|
|
4000
|
+
if (headers !== null) mailtoComponent.headers = headers;
|
|
4001
|
+
}
|
|
4002
|
+
|
|
4003
|
+
mailtoComponent.query = undefined;
|
|
4004
|
+
|
|
4005
|
+
for (let i = 0; i < to.length; i++) {
|
|
4006
|
+
const rawAddr = to[i];
|
|
4007
|
+
const atIdx = rawAddr.lastIndexOf('@');
|
|
4008
|
+
if (atIdx < 0) {
|
|
4009
|
+
mailtoComponent.error = mailtoComponent.error || MAILTO_DOMAIN_ERROR;
|
|
4010
|
+
to[i] = decodeHex(rawAddr);
|
|
4011
|
+
continue
|
|
4012
|
+
}
|
|
4013
|
+
const local = decodeHex(rawAddr.slice(0, atIdx));
|
|
4014
|
+
const domain = mailtoNormalizeDomain(decodeHex(rawAddr.slice(atIdx + 1)), options, mailtoComponent);
|
|
4015
|
+
to[i] = local + '@' + domain;
|
|
4016
|
+
}
|
|
4017
|
+
|
|
4018
|
+
if (to.length) mailtoComponent.to = to;
|
|
4019
|
+
|
|
4020
|
+
return mailtoComponent
|
|
4021
|
+
}
|
|
4022
|
+
|
|
4023
|
+
/**
|
|
4024
|
+
* @param {import('../types/index').URIComponent} component
|
|
4025
|
+
* @param {import('../types/index').Options} options
|
|
4026
|
+
* @returns {import('../types/index').URIComponent}
|
|
4027
|
+
*/
|
|
4028
|
+
function mailtoSerialize (component, options) {
|
|
4029
|
+
const mailtoComponent = component;
|
|
4030
|
+
const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : [];
|
|
4031
|
+
if (to.length) {
|
|
4032
|
+
for (let i = 0; i < to.length; i++) {
|
|
4033
|
+
const addr = String(to[i]);
|
|
4034
|
+
const atIdx = addr.lastIndexOf('@');
|
|
4035
|
+
const rawLocal = atIdx >= 0 ? addr.slice(0, atIdx) : addr;
|
|
4036
|
+
const rawDomain = atIdx >= 0 ? addr.slice(atIdx + 1) : '';
|
|
4037
|
+
const local = encodeWithAllow(rawLocal, LOCAL_PART);
|
|
4038
|
+
const decodedDomain = decodeHex(rawDomain);
|
|
4039
|
+
// `component` is intentionally not passed: index.js's `serialize` writes
|
|
4040
|
+
// the error onto a private copy and returns only a string, so an error
|
|
4041
|
+
// recorded here would be unreachable. Safety comes from encoding instead.
|
|
4042
|
+
const normalizedDomain = mailtoNormalizeDomain(decodedDomain, options);
|
|
4043
|
+
to[i] = local + '@' + mailtoEncodeDomain(normalizedDomain, options);
|
|
4044
|
+
}
|
|
4045
|
+
// Every recipient is now fully encoded and only the joining commas are
|
|
4046
|
+
// literal, so bypass index.js's generic encoder, whose allow-set is
|
|
4047
|
+
// narrower than upstream's and would over-encode.
|
|
4048
|
+
mailtoComponent.path = to.join(',');
|
|
4049
|
+
options.skipEscape = true;
|
|
4050
|
+
} else {
|
|
4051
|
+
// No recipients: drop any caller-supplied path, matching upstream uri-js.
|
|
4052
|
+
// `to` is the only recipient source, and `mailtoParse` always moves the
|
|
4053
|
+
// path into it, so a mailto component never legitimately carries one.
|
|
4054
|
+
mailtoComponent.path = undefined;
|
|
4055
|
+
}
|
|
4056
|
+
|
|
4057
|
+
const headers = mailtoComponent.headers && typeof mailtoComponent.headers === 'object'
|
|
4058
|
+
? Object.assign(Object.create(null), mailtoComponent.headers)
|
|
4059
|
+
: Object.create(null);
|
|
4060
|
+
|
|
4061
|
+
if (mailtoComponent.subject) headers.subject = mailtoComponent.subject;
|
|
4062
|
+
if (mailtoComponent.body) headers.body = mailtoComponent.body;
|
|
4063
|
+
mailtoComponent.headers = headers;
|
|
4064
|
+
|
|
4065
|
+
// `headers` has a null prototype and was filled via Object.assign, so every
|
|
4066
|
+
// enumerable key is an own property and no hasOwnProperty guard is needed.
|
|
4067
|
+
let query = '';
|
|
4068
|
+
let count = 0;
|
|
4069
|
+
for (const name in headers) {
|
|
4070
|
+
if (count++ !== 0) query += '&';
|
|
4071
|
+
query += encodeWithAllow(name, HFNAME) + '=' + encodeWithAllow(String(headers[name]), HFNAME);
|
|
4072
|
+
}
|
|
4073
|
+
|
|
4074
|
+
if (count !== 0) {
|
|
4075
|
+
mailtoComponent.query = query;
|
|
4076
|
+
} else {
|
|
4077
|
+
mailtoComponent.headers = undefined;
|
|
4078
|
+
}
|
|
4079
|
+
|
|
4080
|
+
return mailtoComponent
|
|
4081
|
+
}
|
|
4082
|
+
|
|
4083
|
+
const mailto = /** @type {SchemeHandler} */ ({
|
|
4084
|
+
scheme: 'mailto',
|
|
4085
|
+
parse: mailtoParse,
|
|
4086
|
+
serialize: mailtoSerialize,
|
|
4087
|
+
domainHost: false,
|
|
4088
|
+
unicodeSupport: true,
|
|
4089
|
+
// `mailtoParse` re-derives every component from the raw path/query via
|
|
4090
|
+
// `decodeHex`, which subsumes the generic normalizers, so running them first
|
|
4091
|
+
// is wasted work (~28% of parsing a URI with header fields).
|
|
4092
|
+
skipNormalize: true,
|
|
4093
|
+
// A recipient list has no dot segments to remove, and `removeDotSegments`
|
|
4094
|
+
// would rewrite a "./"-prefixed local part.
|
|
4095
|
+
absolutePath: true
|
|
4096
|
+
});
|
|
4097
|
+
|
|
3508
4098
|
const SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({
|
|
3509
4099
|
http,
|
|
3510
4100
|
https,
|
|
3511
4101
|
ws,
|
|
3512
4102
|
wss,
|
|
3513
4103
|
urn,
|
|
3514
|
-
'urn:uuid': urnuuid
|
|
4104
|
+
'urn:uuid': urnuuid,
|
|
4105
|
+
mailto
|
|
3515
4106
|
});
|
|
3516
4107
|
|
|
3517
4108
|
Object.setPrototypeOf(SCHEMES, null);
|
|
@@ -3544,9 +4135,24 @@
|
|
|
3544
4135
|
if (hasRequiredFastUri$1) return fastUri$1.exports;
|
|
3545
4136
|
hasRequiredFastUri$1 = 1;
|
|
3546
4137
|
|
|
3547
|
-
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, normalizeQueryFragmentEncoding,
|
|
4138
|
+
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = requireUtils$1();
|
|
3548
4139
|
const { SCHEMES, getSchemeHandler } = requireSchemes$1();
|
|
3549
4140
|
|
|
4141
|
+
const VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
|
|
4142
|
+
const MALFORMED_SCHEME_ERROR = 'URI scheme is malformed.';
|
|
4143
|
+
|
|
4144
|
+
/**
|
|
4145
|
+
* @param {string} scheme
|
|
4146
|
+
* @returns {string}
|
|
4147
|
+
*/
|
|
4148
|
+
function decodeValidScheme (scheme) {
|
|
4149
|
+
const decodedScheme = unescape(String(scheme));
|
|
4150
|
+
if (!VALID_SCHEME.test(decodedScheme)) {
|
|
4151
|
+
throw new TypeError(MALFORMED_SCHEME_ERROR)
|
|
4152
|
+
}
|
|
4153
|
+
return decodedScheme
|
|
4154
|
+
}
|
|
4155
|
+
|
|
3550
4156
|
/**
|
|
3551
4157
|
* @template {import('./types/index').URIComponent|string} T
|
|
3552
4158
|
* @param {T} uri
|
|
@@ -3570,7 +4176,50 @@
|
|
|
3570
4176
|
*/
|
|
3571
4177
|
function resolve (baseURI, relativeURI, options) {
|
|
3572
4178
|
const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' };
|
|
3573
|
-
const
|
|
4179
|
+
const {
|
|
4180
|
+
parsed: baseParsed,
|
|
4181
|
+
malformedAuthorityOrPort: baseMalformed,
|
|
4182
|
+
malformedPercentEncoding: baseMalformedPercentEncoding,
|
|
4183
|
+
malformedSchemeSpecific: baseMalformedSchemeSpecific,
|
|
4184
|
+
malformedHost: baseMalformedHost,
|
|
4185
|
+
malformedScheme: baseMalformedScheme
|
|
4186
|
+
} = parseWithStatus(baseURI, schemelessOptions);
|
|
4187
|
+
const {
|
|
4188
|
+
parsed: relativeParsed,
|
|
4189
|
+
malformedAuthorityOrPort: relativeMalformed,
|
|
4190
|
+
malformedPercentEncoding: relativeMalformedPercentEncoding,
|
|
4191
|
+
malformedSchemeSpecific: relativeMalformedSchemeSpecific,
|
|
4192
|
+
malformedHost: relativeMalformedHost,
|
|
4193
|
+
malformedScheme: relativeMalformedScheme
|
|
4194
|
+
} = parseWithStatus(relativeURI, schemelessOptions);
|
|
4195
|
+
if (
|
|
4196
|
+
baseMalformed ||
|
|
4197
|
+
relativeMalformed ||
|
|
4198
|
+
baseMalformedPercentEncoding ||
|
|
4199
|
+
relativeMalformedPercentEncoding ||
|
|
4200
|
+
baseMalformedSchemeSpecific ||
|
|
4201
|
+
relativeMalformedSchemeSpecific ||
|
|
4202
|
+
baseMalformedHost ||
|
|
4203
|
+
relativeMalformedHost ||
|
|
4204
|
+
baseMalformedScheme ||
|
|
4205
|
+
relativeMalformedScheme
|
|
4206
|
+
) {
|
|
4207
|
+
throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')
|
|
4208
|
+
}
|
|
4209
|
+
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
4210
|
+
const resolvedSchemeHandler = getSchemeHandler((options && options.scheme) || resolved.scheme);
|
|
4211
|
+
const resolvedHost = resolved.host;
|
|
4212
|
+
const resolvedHostIsIP = resolvedHost !== undefined && resolvedHost !== '' &&
|
|
4213
|
+
(isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
|
|
4214
|
+
canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
|
|
4215
|
+
// Percent escapes in an ASCII reg-name are encoded data. The WHATWG hostname
|
|
4216
|
+
// parser can reject them even though fast-uri preserves them safely as RFC
|
|
4217
|
+
// 3986 data. A raw non-ASCII host must still fail closed if conversion fails.
|
|
4218
|
+
const encodedASCIIHost = resolvedHost && resolvedHost.indexOf('%') !== -1 &&
|
|
4219
|
+
!/\P{ASCII}/u.test(resolvedHost);
|
|
4220
|
+
if (resolved.error && !encodedASCIIHost) {
|
|
4221
|
+
throw new Error(resolved.error)
|
|
4222
|
+
}
|
|
3574
4223
|
schemelessOptions.skipEscape = true;
|
|
3575
4224
|
return serialize(resolved, schemelessOptions)
|
|
3576
4225
|
}
|
|
@@ -3653,7 +4302,7 @@
|
|
|
3653
4302
|
const normalizedA = normalizeComparableURI(uriA, options);
|
|
3654
4303
|
const normalizedB = normalizeComparableURI(uriB, options);
|
|
3655
4304
|
|
|
3656
|
-
return normalizedA !== undefined && normalizedB !== undefined && normalizedA
|
|
4305
|
+
return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB
|
|
3657
4306
|
}
|
|
3658
4307
|
|
|
3659
4308
|
/**
|
|
@@ -3676,30 +4325,39 @@
|
|
|
3676
4325
|
reference: cmpts.reference,
|
|
3677
4326
|
resourceName: cmpts.resourceName,
|
|
3678
4327
|
secure: cmpts.secure,
|
|
4328
|
+
to: cmpts.to,
|
|
4329
|
+
subject: cmpts.subject,
|
|
4330
|
+
body: cmpts.body,
|
|
4331
|
+
headers: cmpts.headers,
|
|
3679
4332
|
error: ''
|
|
3680
4333
|
};
|
|
3681
4334
|
const options = Object.assign({}, opts);
|
|
3682
4335
|
const uriTokens = [];
|
|
3683
4336
|
|
|
4337
|
+
if (component.scheme) {
|
|
4338
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
4339
|
+
}
|
|
4340
|
+
|
|
3684
4341
|
// find scheme handler
|
|
3685
4342
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
3686
4343
|
|
|
3687
4344
|
// perform scheme specific serialization
|
|
3688
4345
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
3689
4346
|
|
|
4347
|
+
const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined;
|
|
4348
|
+
const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority;
|
|
4349
|
+
|
|
3690
4350
|
if (component.path !== undefined) {
|
|
3691
4351
|
if (!options.skipEscape) {
|
|
3692
|
-
component.path =
|
|
3693
|
-
|
|
3694
|
-
if (component.scheme !== undefined) {
|
|
3695
|
-
component.path = component.path.split('%3A').join(':');
|
|
3696
|
-
}
|
|
4352
|
+
component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
3697
4353
|
} else {
|
|
3698
4354
|
component.path = normalizePercentEncoding(component.path);
|
|
3699
4355
|
}
|
|
3700
4356
|
}
|
|
3701
4357
|
|
|
3702
4358
|
if (options.reference !== 'suffix' && component.scheme) {
|
|
4359
|
+
// Scheme handlers may replace the scheme during serialization.
|
|
4360
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
3703
4361
|
uriTokens.push(component.scheme, ':');
|
|
3704
4362
|
}
|
|
3705
4363
|
|
|
@@ -3722,6 +4380,13 @@
|
|
|
3722
4380
|
s = removeDotSegments(s);
|
|
3723
4381
|
}
|
|
3724
4382
|
|
|
4383
|
+
// Dot-segment removal can expose a colon that was not originally in the
|
|
4384
|
+
// first segment (for example, "./a:b"). Reapply path-noscheme encoding so
|
|
4385
|
+
// the serialized relative reference cannot be reparsed as a URI scheme.
|
|
4386
|
+
if (pathNoScheme) {
|
|
4387
|
+
s = serializePathEncoding(s, true);
|
|
4388
|
+
}
|
|
4389
|
+
|
|
3725
4390
|
if (
|
|
3726
4391
|
authority === undefined &&
|
|
3727
4392
|
s[0] === '/' &&
|
|
@@ -3735,11 +4400,11 @@
|
|
|
3735
4400
|
}
|
|
3736
4401
|
|
|
3737
4402
|
if (component.query !== undefined) {
|
|
3738
|
-
uriTokens.push('?', component.query);
|
|
4403
|
+
uriTokens.push('?', encodeQuery(component.query));
|
|
3739
4404
|
}
|
|
3740
4405
|
|
|
3741
4406
|
if (component.fragment !== undefined) {
|
|
3742
|
-
uriTokens.push('#', component.fragment);
|
|
4407
|
+
uriTokens.push('#', encodeFragment(component.fragment));
|
|
3743
4408
|
}
|
|
3744
4409
|
return uriTokens.join('')
|
|
3745
4410
|
}
|
|
@@ -3750,6 +4415,15 @@
|
|
|
3750
4415
|
// with or without a scheme prefix, for the literal-backslash rejection below.
|
|
3751
4416
|
const AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
|
|
3752
4417
|
|
|
4418
|
+
// Captures the leading authority-introducer region after an optional scheme: a
|
|
4419
|
+
// run of forward slashes, backslashes, and the characters the WHATWG URL parser
|
|
4420
|
+
// removes before parsing (TAB U+0009, LF U+000A, CR U+000D). A valid introducer
|
|
4421
|
+
// is exactly "//". Node treats "\" as "/" on special schemes and strips those
|
|
4422
|
+
// characters first, so forms like "\\", "/\", "\/", "/<TAB>/", or a leading
|
|
4423
|
+
// "<TAB>//" reach an authority in Node while fast-uri's URI_PARSE folds them into
|
|
4424
|
+
// the path group (host confusion / SSRF / redirect bypass).
|
|
4425
|
+
const AUTHORITY_INTRODUCER_REGION = /^(?:[^#/:?]+:)?([/\\\t\n\r]*)/;
|
|
4426
|
+
|
|
3753
4427
|
/**
|
|
3754
4428
|
* @param {import('./types/index').URIComponent} parsed
|
|
3755
4429
|
* @param {RegExpMatchArray} matches
|
|
@@ -3767,10 +4441,74 @@
|
|
|
3767
4441
|
return undefined
|
|
3768
4442
|
}
|
|
3769
4443
|
|
|
4444
|
+
/**
|
|
4445
|
+
* Checks percent syntax without decoding the represented octets. RFC 3986
|
|
4446
|
+
* percent-encoding is byte-oriented, so sequences such as `%FF` are valid even
|
|
4447
|
+
* though they are not independently valid UTF-8.
|
|
4448
|
+
*
|
|
4449
|
+
* @param {string|undefined} component
|
|
4450
|
+
* @returns {boolean}
|
|
4451
|
+
*/
|
|
4452
|
+
function hasMalformedPercentEncoding (component) {
|
|
4453
|
+
if (component === undefined) return false
|
|
4454
|
+
|
|
4455
|
+
let percent = component.indexOf('%');
|
|
4456
|
+
while (percent !== -1) {
|
|
4457
|
+
if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) {
|
|
4458
|
+
return true
|
|
4459
|
+
}
|
|
4460
|
+
percent = component.indexOf('%', percent + 3);
|
|
4461
|
+
}
|
|
4462
|
+
|
|
4463
|
+
return false
|
|
4464
|
+
}
|
|
4465
|
+
|
|
4466
|
+
/**
|
|
4467
|
+
* @param {RegExpMatchArray} matches
|
|
4468
|
+
* @returns {boolean}
|
|
4469
|
+
*/
|
|
4470
|
+
function hasMalformedComponentPercentEncoding (matches) {
|
|
4471
|
+
// Bracketed IP literals use a raw "%" as the zone separator for historical
|
|
4472
|
+
// compatibility. Their parsing is intentionally left to normalizeIPv6.
|
|
4473
|
+
const host = matches[4];
|
|
4474
|
+
return hasMalformedPercentEncoding(matches[3]) ||
|
|
4475
|
+
(host !== undefined && !(host[0] === '[' && host[host.length - 1] === ']') && hasMalformedPercentEncoding(host)) ||
|
|
4476
|
+
hasMalformedPercentEncoding(matches[6]) ||
|
|
4477
|
+
hasMalformedPercentEncoding(matches[7]) ||
|
|
4478
|
+
hasMalformedPercentEncoding(matches[8])
|
|
4479
|
+
}
|
|
4480
|
+
|
|
4481
|
+
/**
|
|
4482
|
+
* @param {import('./types/index').URIComponent} parsed
|
|
4483
|
+
* @param {import('./types/index').Options} options
|
|
4484
|
+
* @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler
|
|
4485
|
+
* @param {boolean} isIP
|
|
4486
|
+
* @returns {boolean} whether host conversion failed
|
|
4487
|
+
*/
|
|
4488
|
+
function canonicalizeHost (parsed, options, schemeHandler, isIP) {
|
|
4489
|
+
if (
|
|
4490
|
+
!options.unicodeSupport &&
|
|
4491
|
+
(!schemeHandler || !schemeHandler.unicodeSupport) &&
|
|
4492
|
+
parsed.host &&
|
|
4493
|
+
parsed.host[0] !== '[' &&
|
|
4494
|
+
(options.domainHost || (schemeHandler && schemeHandler.domainHost)) &&
|
|
4495
|
+
isIP === false &&
|
|
4496
|
+
nonSimpleDomain(parsed.host)
|
|
4497
|
+
) {
|
|
4498
|
+
try {
|
|
4499
|
+
parsed.host = new URL('http://' + parsed.host).hostname;
|
|
4500
|
+
} catch (e) {
|
|
4501
|
+
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4502
|
+
return true
|
|
4503
|
+
}
|
|
4504
|
+
}
|
|
4505
|
+
return false
|
|
4506
|
+
}
|
|
4507
|
+
|
|
3770
4508
|
/**
|
|
3771
4509
|
* @param {string} uri
|
|
3772
4510
|
* @param {import('./types/index').Options} [opts]
|
|
3773
|
-
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean }}
|
|
4511
|
+
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
3774
4512
|
*/
|
|
3775
4513
|
function parseWithStatus (uri, opts) {
|
|
3776
4514
|
const options = Object.assign({}, opts);
|
|
@@ -3786,6 +4524,11 @@
|
|
|
3786
4524
|
};
|
|
3787
4525
|
|
|
3788
4526
|
let malformedAuthorityOrPort = false;
|
|
4527
|
+
let malformedPercentEncoding = false;
|
|
4528
|
+
let malformedSchemeSpecific = false;
|
|
4529
|
+
let malformedHost = false;
|
|
4530
|
+
let malformedIPLiteral = false;
|
|
4531
|
+
let malformedScheme = false;
|
|
3789
4532
|
|
|
3790
4533
|
let isIP = false;
|
|
3791
4534
|
if (options.reference === 'suffix') {
|
|
@@ -3809,11 +4552,33 @@
|
|
|
3809
4552
|
malformedAuthorityOrPort = true;
|
|
3810
4553
|
}
|
|
3811
4554
|
|
|
4555
|
+
// Reject a malformed or whitespace-smuggled authority introducer. fast-uri
|
|
4556
|
+
// only recognizes a literal "//"; anything else in the leading separator run
|
|
4557
|
+
// (a backslash, or a "//" that appears only after removing the TAB/LF/CR that
|
|
4558
|
+
// Node strips) means the authority fast-uri parses differs from the one Node's
|
|
4559
|
+
// URL resolves. Reject rather than rewrite, mirroring the literal-backslash
|
|
4560
|
+
// guard above. Percent-encoded forms (%5C, %09) are untouched, valid data.
|
|
4561
|
+
const introducerMatch = uri.match(AUTHORITY_INTRODUCER_REGION);
|
|
4562
|
+
if (introducerMatch !== null) {
|
|
4563
|
+
const region = introducerMatch[1];
|
|
4564
|
+
const normalizedRegion = region.replace(/[\t\n\r]/g, '');
|
|
4565
|
+
// Two or more leading separators introduce an authority.
|
|
4566
|
+
if (normalizedRegion.length >= 2) {
|
|
4567
|
+
if (normalizedRegion.slice(0, 2) !== '//') {
|
|
4568
|
+
parsed.error = parsed.error || 'URI authority must not contain a literal backslash.';
|
|
4569
|
+
malformedAuthorityOrPort = true;
|
|
4570
|
+
} else if (region.length !== normalizedRegion.length) {
|
|
4571
|
+
parsed.error = parsed.error || 'URI authority introducer must not contain whitespace.';
|
|
4572
|
+
malformedAuthorityOrPort = true;
|
|
4573
|
+
}
|
|
4574
|
+
}
|
|
4575
|
+
}
|
|
4576
|
+
|
|
3812
4577
|
const matches = uri.match(URI_PARSE);
|
|
3813
4578
|
|
|
3814
4579
|
if (matches) {
|
|
3815
4580
|
// store each component
|
|
3816
|
-
parsed.scheme = matches[1]
|
|
4581
|
+
parsed.scheme = matches[1];
|
|
3817
4582
|
parsed.userinfo = matches[3];
|
|
3818
4583
|
parsed.host = matches[4];
|
|
3819
4584
|
parsed.port = parseInt(matches[5], 10);
|
|
@@ -3821,6 +4586,21 @@
|
|
|
3821
4586
|
parsed.query = matches[7];
|
|
3822
4587
|
parsed.fragment = matches[8];
|
|
3823
4588
|
|
|
4589
|
+
if (parsed.scheme !== undefined) {
|
|
4590
|
+
const decodedScheme = unescape(parsed.scheme);
|
|
4591
|
+
if (VALID_SCHEME.test(decodedScheme)) {
|
|
4592
|
+
parsed.scheme = decodedScheme.toLowerCase();
|
|
4593
|
+
} else {
|
|
4594
|
+
parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
|
|
4595
|
+
malformedScheme = true;
|
|
4596
|
+
}
|
|
4597
|
+
}
|
|
4598
|
+
|
|
4599
|
+
malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
|
|
4600
|
+
if (malformedPercentEncoding) {
|
|
4601
|
+
parsed.error = parsed.error || 'URI contains malformed percent-encoding.';
|
|
4602
|
+
}
|
|
4603
|
+
|
|
3824
4604
|
// fix port number
|
|
3825
4605
|
if (isNaN(parsed.port)) {
|
|
3826
4606
|
parsed.port = matches[5];
|
|
@@ -3835,9 +4615,16 @@
|
|
|
3835
4615
|
if (parsed.host) {
|
|
3836
4616
|
const ipv4result = isIPv4(parsed.host);
|
|
3837
4617
|
if (ipv4result === false) {
|
|
4618
|
+
const bracketedIPLiteral = parsed.host[0] === '[' && parsed.host[parsed.host.length - 1] === ']';
|
|
3838
4619
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
3839
|
-
|
|
3840
|
-
|
|
4620
|
+
isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
|
|
4621
|
+
malformedIPLiteral = bracketedIPLiteral && ipv6result.error === true;
|
|
4622
|
+
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
4623
|
+
|
|
4624
|
+
if (malformedIPLiteral) {
|
|
4625
|
+
parsed.error = parsed.error || 'URI host is malformed.';
|
|
4626
|
+
malformedAuthorityOrPort = true;
|
|
4627
|
+
}
|
|
3841
4628
|
} else {
|
|
3842
4629
|
isIP = true;
|
|
3843
4630
|
}
|
|
@@ -3860,27 +4647,14 @@
|
|
|
3860
4647
|
// find scheme handler
|
|
3861
4648
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
3862
4649
|
|
|
3863
|
-
//
|
|
3864
|
-
|
|
3865
|
-
// if host component is a domain name
|
|
3866
|
-
if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
3867
|
-
// convert Unicode IDN -> ASCII IDN
|
|
3868
|
-
try {
|
|
3869
|
-
parsed.host = new URL('http://' + parsed.host).hostname;
|
|
3870
|
-
} catch (e) {
|
|
3871
|
-
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
3872
|
-
}
|
|
3873
|
-
}
|
|
3874
|
-
// convert IRI -> URI
|
|
3875
|
-
}
|
|
4650
|
+
// convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts
|
|
4651
|
+
malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
3876
4652
|
|
|
3877
4653
|
if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {
|
|
3878
4654
|
if (uri.indexOf('%') !== -1) {
|
|
3879
|
-
if (parsed.
|
|
3880
|
-
parsed.
|
|
3881
|
-
|
|
3882
|
-
if (parsed.host !== undefined) {
|
|
3883
|
-
parsed.host = reescapeHostDelimiters(unescape(parsed.host), isIP);
|
|
4655
|
+
if (parsed.host !== undefined && !malformedIPLiteral) {
|
|
4656
|
+
const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
|
|
4657
|
+
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
3884
4658
|
}
|
|
3885
4659
|
}
|
|
3886
4660
|
if (parsed.path) {
|
|
@@ -3897,11 +4671,14 @@
|
|
|
3897
4671
|
// perform scheme specific parsing
|
|
3898
4672
|
if (schemeHandler && schemeHandler.parse) {
|
|
3899
4673
|
schemeHandler.parse(parsed, options);
|
|
4674
|
+
if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {
|
|
4675
|
+
malformedSchemeSpecific = true;
|
|
4676
|
+
}
|
|
3900
4677
|
}
|
|
3901
4678
|
} else {
|
|
3902
4679
|
parsed.error = parsed.error || 'URI can not be parsed.';
|
|
3903
4680
|
}
|
|
3904
|
-
return { parsed, malformedAuthorityOrPort }
|
|
4681
|
+
return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }
|
|
3905
4682
|
}
|
|
3906
4683
|
|
|
3907
4684
|
/**
|
|
@@ -3925,13 +4702,17 @@
|
|
|
3925
4702
|
/**
|
|
3926
4703
|
* @param {string} uri
|
|
3927
4704
|
* @param {import('./types/index').Options} [opts]
|
|
3928
|
-
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}
|
|
4705
|
+
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
3929
4706
|
*/
|
|
3930
4707
|
function normalizeStringWithStatus (uri, opts) {
|
|
3931
|
-
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
4708
|
+
const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
|
|
3932
4709
|
return {
|
|
3933
|
-
normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
|
|
3934
|
-
malformedAuthorityOrPort
|
|
4710
|
+
normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
|
|
4711
|
+
malformedAuthorityOrPort,
|
|
4712
|
+
malformedPercentEncoding,
|
|
4713
|
+
malformedSchemeSpecific,
|
|
4714
|
+
malformedHost,
|
|
4715
|
+
malformedScheme
|
|
3935
4716
|
}
|
|
3936
4717
|
}
|
|
3937
4718
|
|
|
@@ -3941,14 +4722,18 @@
|
|
|
3941
4722
|
* @returns {string|undefined}
|
|
3942
4723
|
*/
|
|
3943
4724
|
function normalizeComparableURI (uri, opts) {
|
|
3944
|
-
if (typeof uri
|
|
3945
|
-
|
|
3946
|
-
return malformedAuthorityOrPort ? undefined : normalized
|
|
4725
|
+
if (typeof uri !== 'string' && typeof uri !== 'object') {
|
|
4726
|
+
return undefined
|
|
3947
4727
|
}
|
|
3948
4728
|
|
|
3949
|
-
|
|
3950
|
-
|
|
4729
|
+
let value;
|
|
4730
|
+
try {
|
|
4731
|
+
value = typeof uri === 'string' ? uri : serialize(uri, opts);
|
|
4732
|
+
} catch {
|
|
4733
|
+
return undefined
|
|
3951
4734
|
}
|
|
4735
|
+
const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
|
|
4736
|
+
return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized
|
|
3952
4737
|
}
|
|
3953
4738
|
|
|
3954
4739
|
const fastUri = {
|
|
@@ -13296,19 +14081,28 @@
|
|
|
13296
14081
|
}
|
|
13297
14082
|
return hash.toString(16);
|
|
13298
14083
|
}
|
|
13299
|
-
/**
|
|
14084
|
+
/** Recursively serializes a value to JSON with object keys sorted alphabetically to produce
|
|
14085
|
+
* a stable string representation.
|
|
13300
14086
|
*
|
|
13301
14087
|
* @param object - The object for which the sorted stringify is desired
|
|
13302
14088
|
* @returns - The stringified object with keys sorted in a consistent order
|
|
13303
14089
|
*/
|
|
13304
14090
|
function sortedJSONStringify(object) {
|
|
13305
|
-
|
|
13306
|
-
|
|
13307
|
-
|
|
13308
|
-
|
|
13309
|
-
return
|
|
13310
|
-
}
|
|
13311
|
-
|
|
14091
|
+
function shouldIncludeValue(value) {
|
|
14092
|
+
return value !== undefined && typeof value !== 'function' && typeof value !== 'symbol';
|
|
14093
|
+
}
|
|
14094
|
+
if (Array.isArray(object)) {
|
|
14095
|
+
return `[${object.map((x) => (x === undefined ? 'undefined' : sortedJSONStringify(x))).join(',')}]`;
|
|
14096
|
+
}
|
|
14097
|
+
if (object === null || typeof object !== 'object') {
|
|
14098
|
+
return JSON.stringify(typeof object === 'function' ? null : object); // Normalise functions
|
|
14099
|
+
}
|
|
14100
|
+
const record = object;
|
|
14101
|
+
const sortedValues = Object.keys(record)
|
|
14102
|
+
.sort()
|
|
14103
|
+
.filter((key) => shouldIncludeValue(record[key]))
|
|
14104
|
+
.map((key) => `${JSON.stringify(key)}:${sortedJSONStringify(record[key])}`);
|
|
14105
|
+
return `{${sortedValues.join(',')}}`;
|
|
13312
14106
|
}
|
|
13313
14107
|
/** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields
|
|
13314
14108
|
* in consistent order before stringify to prevent different hash ids for the same object.
|
|
@@ -16547,57 +17341,57 @@
|
|
|
16547
17341
|
return jsxRuntimeExports.jsx(StringField, { ...props, formData: displayValue, onChange: handleChange });
|
|
16548
17342
|
}
|
|
16549
17343
|
|
|
16550
|
-
var j;function B$
|
|
16551
|
-
|
|
16552
|
-
var
|
|
16553
|
-
`)return null;Q++;let Z=false;for(;Q<$.length;){let
|
|
16554
|
-
`&&$[Q]!=="\r";)Q++;if(Q>=$.length)break;let
|
|
16555
|
-
`&&Q++,
|
|
16556
|
-
`),
|
|
16557
|
-
`||$[Q-1]==="\r");)Q--;return $.slice(0,Q).replace(
|
|
16558
|
-
|
|
16559
|
-
`}function
|
|
16560
|
-
`,
|
|
16561
|
-
`,V),
|
|
16562
|
-
`,V),
|
|
16563
|
-
`,V),
|
|
16564
|
-
`,Q),
|
|
16565
|
-
`,
|
|
16566
|
-
`,K=
|
|
16567
|
-
`,K=
|
|
16568
|
-
`,
|
|
16569
|
-
`;var
|
|
16570
|
-
`,U=true,
|
|
16571
|
-
`;}else U
|
|
16572
|
-
`;}for(
|
|
16573
|
-
`,
|
|
17344
|
+
var j;function B$3(z){if(!j){if(typeof document>"u")return;j=document.createElement("textarea");}var q=`&${z};`;j.innerHTML=q;var v=j.value;return v===q?void 0:v}
|
|
17345
|
+
|
|
17346
|
+
var I=32,w=9,v5=13,g=10,Z0=96,b0=126,A0=91,W5=94,l$1=62,V5=35,M9=37,p$1=45,K5=61,T0=92,P0=42,O0=95,Y0=60,k9=64,J5=93,c0=33,O9=38,m0=58,D9=70,L5=102,A9=104,C5=119,s5=116,x9=112,Y$=115,c$=160,l$=12,r$=44,j9=59,t5=63,Q5=46,j0=47,f5=39,T5=34,y5=43,E0=124,S5=123,E9=125,z5=40,F5=41,o$=78,i$=110,a$=79,n$=111,V$=120,K$=88,g9=30,r$1=48,o=57,h$1=65,u$1=90,V0=97,q0=122,U9=128,U5=32,I6={blockQuote:0,breakLine:1,breakThematic:2,codeBlock:3,codeInline:4,footnote:5,footnoteReference:6,frontmatter:7,gfmTask:8,heading:9,htmlBlock:10,htmlComment:11,htmlSelfClosing:12,image:13,link:14,orderedList:15,paragraph:16,ref:17,refCollection:18,table:19,text:20,textFormatted:21,unorderedList:22},B$2=I6;function X4($){if(!t$($,"---"))return null;let Q=3;for(;Q<$.length&&($[Q]===" "||$[Q]===" ");)Q++;if(Q<$.length&&$[Q]==="\r"&&Q++,Q>=$.length||$[Q]!==`
|
|
17347
|
+
`)return null;Q++;let Z=false;for(;Q<$.length;){let X=Q;for(;Q<$.length&&$[Q]!==`
|
|
17348
|
+
`&&$[Q]!=="\r";)Q++;if(Q>=$.length)break;let Y=Q;if($[Q]==="\r"&&Q++,Q<$.length&&$[Q]===`
|
|
17349
|
+
`&&Q++,t$($,"---",X))return {endPos:Q,hasValidYaml:Z};if(!Z){let V=L6($,X,Y);if(V<Y){let K=$.charCodeAt(V);if(K>=V0&&K<=q0||K>=h$1&&K<=u$1||K>=r$1&&K<=o||K===O0){for(V++;V<Y&&(K=$.charCodeAt(V),K>=V0&&K<=q0||K>=h$1&&K<=u$1||K>=r$1&&K<=o||K===O0||K===p$1||K===Q5);)V++;V<Y&&$.charCodeAt(V)===m0&&(V++,V>=Y?Z=true:(K=$.charCodeAt(V),(K===I||K===w)&&(Z=true)));}}}}return null}var P6=/&([a-zA-Z0-9]+|#[0-9]{1,7}|#x[0-9a-fA-F]{1,6});/gi,w6={class:"className",for:"htmlFor",allowfullscreen:"allowFullScreen",allowtransparency:"allowTransparency",autocomplete:"autoComplete",autofocus:"autoFocus",autoplay:"autoPlay",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",classid:"classId",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",crossorigin:"crossOrigin",enctype:"encType",formaction:"formAction",formenctype:"formEncType",formmethod:"formMethod",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",inputmode:"inputMode",keyparams:"keyParams",keytype:"keyType",marginheight:"marginHeight",marginwidth:"marginWidth",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",novalidate:"noValidate",radiogroup:"radioGroup",readonly:"readOnly",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",usemap:"useMap",viewbox:"viewBox"},R6={};function U$($){if(!$)return R6;var Q={};for(var Z in $){var X=Z.toLowerCase(),Y=w6[X];if(Y)Q[Y]=$[Z];else {var V=Z.indexOf(":");V===-1?Q[Z]=$[Z]:Q[Z.slice(0,V)+Z[V+1].toUpperCase()+Z.slice(V+2)]=$[Z];}}return Q}var Y4=/(\n|^[-*]\s|^#|^ {2,}|^-{2,}|^>\s|^<(div|p|h[1-6]|ul|ol|li|blockquote|pre|table|thead|tbody|tr|td|th|dl|dt|dd|hr|address|article|aside|details|dialog|figure|figcaption|footer|form|header|main|menu|nav|section|summary|textarea|fieldset|legend|center|dir|hgroup|marquee|search|output|template)\b)/i;function I5($){return $.indexOf("&")===-1?$:$.replace(P6,(Q,Z)=>{var X=B$3(Z);if(X)return X;if(Z[0]==="#"){var Y=Z[1]==="x"||Z[1]==="X"?Number.parseInt(Z.slice(2),16):Number.parseInt(Z.slice(1),10);return Y===0||Y>=55296&&Y<=57343||Y>1114111?"\uFFFD":Y<=65535?String.fromCharCode(Y):String.fromCharCode(55296+(Y-65536>>10),56320+(Y-65536&1023))}return Q})}var s$=/(javascript|vbscript|data(?!:image)):/i;function H5($){if(s$.test($))return null;if($.indexOf("%")===-1)return $;try{let Q=decodeURIComponent($).replace(/[^A-Za-z0-9/:]/g,"");if(s$.test(Q))return null}catch{return null}return $}var o0={},t0,g0;for(t0=[192,193,194,195,196,197,224,225,226,227,228,229,230,198],g0=0;g0<t0.length;g0++)o0[t0[g0]]="a";for(o0[231]=o0[199]="c",o0[240]=o0[208]="d",t0=[200,201,202,203,233,232,234,235],g0=0;g0<t0.length;g0++)o0[t0[g0]]="e";for(t0=[207,239,206,238,205,237,204,236],g0=0;g0<t0.length;g0++)o0[t0[g0]]="i";for(o0[209]=o0[241]="n",t0=[248,216,339,338,213,245,212,244,211,243,210,242],g0=0;g0<t0.length;g0++)o0[t0[g0]]="o";for(t0=[220,252,219,251,218,250,217,249],g0=0;g0<t0.length;g0++)o0[t0[g0]]="u";o0[376]=o0[255]=o0[221]=o0[253]="y";function N5($){for(var Q="",Z=-1,X=$.length,Y=0;Y<X;Y++){var V=$.charCodeAt(Y);if(V>=V0&&V<=q0||V>=r$1&&V<=o){Z<0&&(Z=Y);continue}if(V>=h$1&&V<=u$1){Z>=0&&(Q+=$.slice(Z,Y),Z=-1),Q+=String.fromCharCode(V+U5);continue}if(V===I||V===p$1){Z>=0&&(Q+=$.slice(Z,Y),Z=-1),Q+="-";continue}Z>=0&&(Q+=$.slice(Z,Y),Z=-1);var K=o0[V];K&&(Q+=K);}return Z>=0&&(Q+=$.slice(Z)),Q}function t$($,Q,Z){return $.startsWith(Q,Z)}var e$=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr","circle","ellipse","line","path","polygon","polyline","rect","use","stop","animate","set"]);function Q9($){let Q=$.toLowerCase();if(e$.has(Q))return true;let Z=Q.indexOf(":");return Z!==-1?(Q=Q.slice(Z+1),e$.has(Q)):false}var h5=1,$4=2,$9=4,Z4=8,b6=16,M5=32,k5=64,V4=(()=>{var $=new Uint8Array(128),Q;for($[w]=h5,$[g]=h5|$4,$[l$]=h5,$[v5]=h5|$4,$[I]=h5,Q=c0;Q<=j0;Q++)$[Q]=$9;for(Q=m0;Q<=k9;Q++)$[Q]=$9;for(Q=A0;Q<=Z0;Q++)$[Q]=$9;for(Q=S5;Q<=b0;Q++)$[Q]=$9;for(Q=r$1;Q<=o;Q++)$[Q]=b6;for(Q=h$1;Q<=u$1;Q++)$[Q]=Z4;for(Q=V0;Q<=q0;Q++)$[Q]=Z4;return $})(),K4=/[\p{P}\p{S}]/u,J4=/\p{Zs}/u,e5=[];function U4($){var Q=$.indexOf("\r"),Z=$.indexOf("\0");if(Q===-1&&Z===-1)return $;var X=$.length;e5.length=0;var Y=0,V=0;for(Q===-1?V=Z:Z===-1?V=Q:V=Q<Z?Q:Z;V<X;V++){var K=$.charCodeAt(V);K===v5?(Y<V&&e5.push($.slice(Y,V)),V+1<X&&$.charCodeAt(V+1)===g&&V++,e5.push(`
|
|
17350
|
+
`),Y=V+1):K===0&&(Y<V&&e5.push($.slice(Y,V)),e5.push("\uFFFD"),Y=V+1);}return Y<X&&e5.push($.slice(Y)),e5.join("")}function G4($){return $.replace(/>\s+</g,"><").replace(/\n+/g," ").trim()}function L6($,Q,Z){let X=Z??$.length;for(;Q<X&&($[Q]===" "||$[Q]===" ");)Q++;return Q}function f9($){if(!$)return false;for(var Q in $)return true;return false}function q4($){return {attrs:{},children:[{type:B$2.text,text:$}],c:true,type:B$2.htmlBlock,tag:"header"}}var T6=/^\n+/;function W4($){for(var Q=$.length;Q>0&&($[Q-1]===`
|
|
17351
|
+
`||$[Q-1]==="\r");)Q--;return `${$.slice(0,Q).replace(T6,"")}
|
|
17352
|
+
|
|
17353
|
+
`}function Z9($){if(($.type===B$2.htmlSelfClosing||$.type===B$2.htmlBlock)&&$.a)return [];if($.type===B$2.paragraph){var Q=$.children;return Q?Q.flatMap(Z9):[]}return $.type===B$2.text?$.text?.trim()?[$]:[]:$.type===B$2.htmlBlock&&$.children?[{...$,children:$.children?.flatMap(Z9)}]:[$]}function G$($){for(var Q=0;Q<$.length;Q++){if($[Q].type===B$2.htmlBlock){var Z=$[Q],X=false;if(Z.c&&Q===$.length-1){var Y=Z.j===void 0?Z.a?Z.e||"":(Z.e||"")+(Z.h||""):Z.j,V=`</${String(Z.tag).toLowerCase()}>`,K=Y.toLowerCase().indexOf(V);if(K!==-1){var J=Y.slice(K+V.length).replace(/<\/[a-z][a-z0-9-]*\s*>/gi,"");J.trim()&&(X=true);}}X||(Z.c=false);}"children"in $[Q]&&$[Q].children&&G$($[Q].children);}}function z4($,Q){for(var Z=0;Z<$.length;Z++){var X=$[Z];if(X.type===B$2.paragraph&&X.children)for(var Y=X.children,V=0;V<Y.length;V++){var K=Y[V];if(K.type===B$2.htmlSelfClosing&&K.a&&K.tag.toLowerCase()===Q){var J=$.slice(0,Z);V>0&&J.push({type:B$2.paragraph,children:Y.slice(0,V)});var G=[];if(V+1<Y.length){var U=Y.slice(V+1).filter(W=>!(W.type===B$2.htmlSelfClosing&&W.a));U.length>0&&(G=U);}return G=G.concat($.slice(Z+1)),{found:true,beforeClose:J,afterClose:G}}}if((X.type===B$2.htmlSelfClosing||X.type===B$2.htmlBlock)&&X.a&&X.tag.toLowerCase()===Q)return {found:true,beforeClose:$.slice(0,Z),afterClose:$.slice(Z+1)}}return {found:false,beforeClose:$,afterClose:[]}}function y6($){var Q="";for(var Z in $){var X=$[Z];X===true?Q+=` ${Z}`:X!==void 0&&X!=null&&X!==false&&(Q+=` ${Z}="${String(X)}"`);}return Q}function Q4($,Q,Z,X){var Y;return Q===void 0?Y=y6(Z):Y=Q.length>0&&Q.charCodeAt(0)>I?` ${Q}`:Q,`<${$}${Y}${X}`}function q$($){var Q=$.tag,Z=$.type===B$2.htmlSelfClosing,X=$,Y=X.b,V=`</${Q}>`;if(!Z&&X.a)return {kind:"literal",literal:(X.h||V)+(X.e||"")};if(Z){var K=$;return K.a?{kind:"literal",literal:K.h||V}:K.m?{kind:"literal",literal:K.m}:{kind:"literal",literal:Q4(Q,Y,$.attrs," />")}}var J=Q4(Q,Y,$.attrs,">"),G=X.children,U=G!=null&&G.length>0;if(X.c&&X.j!==void 0)return U?{kind:"sandwich",open:J,close:V}:{kind:"literal",literal:X.j};if(X.c&&!U)return {kind:"literal",literal:J+(X.e||"")+(X.h||V)};if(G!=null&&G.length>0){for(var W="",z=0;z<G.length;z++){var H=G[z];if(H.type!==B$2.text)return {kind:"sandwich",open:J,close:V};W+=H.text;}return {kind:"literal",literal:J+W+V}}var F=X.e||"";return F&&F.indexOf(V)!==-1?{kind:"literal",literal:J+F}:{kind:"literal",literal:J+F+V}}function F4($,Q,Z){var X=[],Y=$,V=Z;if(Y&&X.push(Y),Array.isArray(Q))for(var K=0;K<Q.length;K++)X.push(Q[K]);else Q!=null&&X.push(Q);V&&X.push(V);for(var J=[],G=0;G<X.length;G++){var U=X[G];typeof U=="string"&&J.length>0&&typeof J.at(-1)=="string"?J[J.length-1]=J.at(-1)+U:J.push(U);}return J}function m5($){return $==null||$.tagfilter!==false}function H4($,Q,Z,X){var Y=Q($,Z,X);return Y===null?null:S6(Y)}function M4($){var Q=[];if(!$)return Q;for(var Z in $)Z.charCodeAt(0)===94&&Q.push({identifier:Z,footnote:$[Z].target});return Q}function h9($,Q,Z){if(Q.indexOf(".")===-1)return $?.[Q]||Z;for(var X=$,Y=Q.split("."),V=0;V<Y.length&&(X=X?.[Y[V]],X!==void 0);)V++;return X||Z}function S6($){for(var Q=false,Z=0;Z<$.length;Z++){var X=$.charCodeAt(Z);if(X<=I||X===T5||X===M9||X===Y0||X===l$1||X===A0||X===T0||X===J5||X===W5||X===Z0||X>=123){Q=true;break}}if(!Q)return $;for(var Y="",Z=0;Z<$.length;Z++){var X=$.charCodeAt(Z);if(X===M9&&Z+2<$.length){var V=$.charCodeAt(Z+1),K=$.charCodeAt(Z+2);if((V>=r$1&&V<=o||V>=h$1&&V<=D9||V>=V0&&V<=L5)&&(K>=r$1&&K<=o||K>=h$1&&K<=D9||K>=V0&&K<=L5)){Y+=$[Z]+$[Z+1]+$[Z+2],Z+=2;continue}}if(X>=55296&&X<=57343){if(X<=56319&&Z+1<$.length){var J=$.charCodeAt(Z+1);if(J>=56320&&J<=57343){Y+=encodeURI($[Z]+$[Z+1]),Z++;continue}}Y+=$[Z];continue}Y+=encodeURI($[Z]);}return Y}function O4(...$){return $.filter(Boolean).join(" ")}var k6=new Set(["title","textarea","style","xmp","iframe","noembed","noframes","script","plaintext"]),C9=/<(\/?)(title|textarea|style|xmp|iframe|noembed|noframes|script|plaintext)(\s|>|\/)/gi;function W$($){return k6.has($.toLowerCase())}function D4($){return C9.lastIndex=0,C9.test($)}function z$($){return C9.lastIndex=0,$.replace(C9,(Q,Z,X,Y)=>`<${Z}${X}${Y}`)}function I9($,Q){var Z=$||{},X=Z.slugify,Y;if(X){var V=X;Y=K=>V(K,N5);}else Y=N5;return {disableAutoLink:Z.disableAutoLink,disableFrontmatter:Z.disableFrontmatter,disableParsingRawHTML:Z.disableParsingRawHTML,enforceAtxHeadings:Z.enforceAtxHeadings,evalUnserializableExpressions:Z.evalUnserializableExpressions,forceBlock:Z.forceBlock,forceInline:Q===void 0?Z.forceInline:Q,ignoreHTMLBlocks:Z.ignoreHTMLBlocks,optimizeForStreaming:Z.optimizeForStreaming,preserveFrontmatter:Z.preserveFrontmatter,sanitizer:Z.sanitizer||H5,slugify:Y,tagfilter:m5(Z)}}var h4=/^<([a-zA-Z][a-zA-Z0-9-]*)\s[^>]*>/,m4=/^<[A-Z]/,D$=["script","pre","style","textarea"],N9=new Set(D$),x6=/<(?:pre|script|style|textarea)\b/i,j4=/<(?:pre|script|style|textarea)\b/iy,F$=/^(\s{0,3}#[#\s]|\s{0,3}[-*+]\s|\s{0,3}\d+\.\s|\s{0,3}>\s|\s{0,3}```)/m,B4=/^<([a-z][^ >/\n\r]*) ?([^>]*?)>/im,u4=new Uint8Array(128);(()=>{for(var $=[Z0,P0,O0,b0,K5,A0,c0,Y0,T0,O9,g,A9,C5,L5],Q=0;Q<$.length;Q++)u4[$[Q]]=1;})();var _4=/([a-zA-Z_][a-zA-Z0-9_-]*)=(?:"([^"]*)"|'([^']*)')/g;function p4($){return N9.has($)}function d4($){return x6.test($)}function c4($,Q,Z){for(var X=Q,Y=Z;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X>=Y)return false;$.charCodeAt(X)===E0&&X++;for(var V=0;X<Y;){for(;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X>=Y)break;if($.charCodeAt(X)===E0&&V>0){for(var K=X+1;K<Y&&($.charCodeAt(K)===I||$.charCodeAt(K)===w);)K++;if(K>=Y)return true}if($.charCodeAt(X)===m0&&X++,X>=Y||$.charCodeAt(X)!==p$1)return false;for(;X<Y&&$.charCodeAt(X)===p$1;)X++;for(X<Y&&$.charCodeAt(X)===m0&&X++,V++;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;if(X<Y)if($.charCodeAt(X)===E0)X++;else return false}return V>0}var E6=/[\u0000-\u001F\u007F]/g,g6={action:1,background:1,cite:1,data:1,formaction:1,href:1,longdesc:1,poster:1,src:1,"xlink:href":1},C6=/&#(x[0-9a-f]+|[0-9]+);?/gi;function f6($){return $.indexOf("&#")===-1?$:$.replace(C6,(Q,Z)=>{var X=Z.charCodeAt(0)===V$||Z.charCodeAt(0)===K$?Number.parseInt(Z.slice(1),16):Number.parseInt(Z,10);return X>0&&X<=1114111?String.fromCodePoint(X):Q})}function h6($,Q,Z){if(Z&&Q.charCodeAt(0)===S5)return false;var X=$.charCodeAt(0),Y=$.charCodeAt(1);if((X===n$||X===a$)&&(Y===i$||Y===o$))return !(Z&&Q==="");var V=$.toLowerCase();if(V==="srcdoc")return true;if(V==="style")return /url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(Q);if(g6[V]===1){var K=f6(I5(Q));if(H5(K)===null)return true;var J=K.replace(E6,"");return J!==K&&H5(J)===null}return false}function A$($){return "<"+($.f?"/":"")+$.tag+$.g+$.b+($.n?$.r?" />":"/>":">")}function v4($,Q,Z,X){for(var Y=[],V=Q,K=0;K<X.length;K+=2){var J=X[K];if(J>V){var G=$.slice(V,J).trim();G&&Y.push(G);}V=X[K+1];}if(V<Z){var U=$.slice(V,Z).trim();U&&Y.push(U);}return Y.join(" ")}function w5($,Q){if($.charCodeAt(Q)!==Y0)return null;let Z=Q+1,X=$.length,Y=false;$.charCodeAt(Z)===j0&&(Z++,Y=true);let V=Z,K=$.charCodeAt(Z);if(!(K>=V0&&K<=q0||K>=h$1&&K<=u$1))return null;for(;Z<X&&($.charCodeAt(Z)>=V0&&$.charCodeAt(Z)<=q0||$.charCodeAt(Z)>=h$1&&$.charCodeAt(Z)<=u$1||$.charCodeAt(Z)>=r$1&&$.charCodeAt(Z)<=o||$.charCodeAt(Z)===p$1);)Z++;let J=$.slice(V,Z);if(!J)return null;let G=J.charCodeAt(0),U=G>=h$1&&G<=u$1||J.indexOf("-")!==-1,W=Z;for(;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w||$.charCodeAt(Z)===g);)Z++;let z=$.slice(W,Z);if(Z===W&&Z<X){var H=$.charCodeAt(Z);if(H!==l$1&&H!==j0)return null}let F=Z,M={},j=false;for(var _=null;Z<X;){let f=$.charCodeAt(Z);if(f===l$1){let y=_?v4($,F,Z,_):$.slice(F,Z);return {r:j,u:U,f:Y,b:y,q:_!=null,n:false,g:z,attrs:M,end:Z+1,tag:J}}if(f===I||f===w||f===g){Z++;continue}if(f===j0&&Z+1<X&&$.charCodeAt(Z+1)===l$1){j=Z>F&&$.charCodeAt(Z-1)===I;let y=_?v4($,F,Z,_):$.slice(F,Z);return {r:j,u:U,f:Y,b:y,q:_!=null,n:true,g:z,attrs:M,end:Z+2,tag:J}}var q=Z,D=$.charCodeAt(Z);if(!(D>=V0&&D<=q0||D>=h$1&&D<=u$1||D===O0||D===m0))return null;for(Z++;Z<X;){var A=$.charCodeAt(Z);if(A>=V0&&A<=q0||A>=h$1&&A<=u$1||A>=r$1&&A<=o||A===O0||A===Q5||A===m0||A===p$1)Z++;else break}for(var N=$.slice(q,Z),L=Z;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w);)Z++;var O,P;if($.charCodeAt(Z)===K5){for(Z++;Z<X&&($.charCodeAt(Z)===I||$.charCodeAt(Z)===w);)Z++;var v=$.charCodeAt(Z);if(v===T5||v===f5){Z++;for(var b=Z;Z<X&&$.charCodeAt(Z)!==v;)Z++;if(Z>=X)return null;if(O=$.slice(b,Z),Z++,Z<X){var k=$.charCodeAt(Z);if(k!==I&&k!==w&&k!==g&&k!==l$1&&k!==j0)return null}P=Z;}else if(v===S5){var x=1,b=Z;for(Z++;Z<X&&x>0;){var A=$.charCodeAt(Z);A===S5?x++:A===E9&&x--,Z++;}O=$.slice(b,Z),P=Z;}else {for(var b=Z;Z<X;){var T=$.charCodeAt(Z);if(T===I||T===w||T===l$1||T===g||T===T5||T===f5||T===K5||T===Y0||T===Z0)break;Z++;}if(Z===b)return null;O=$.slice(b,Z),P=Z;}}else O="",P=L;h6(N,O,U)?(_===null&&(_=[]),_.push(q,P)):M[N]=O;}return null}function G5($){var Q=$.indexOf("<");if(Q===-1)return $;for(var Z="",X=0,Y=false;Q!==-1;){var V=w5($,Q);V?(V.q&&(Z+=$.slice(X,Q)+A$(V),X=V.end,Y=true),Q=$.indexOf("<",V.end)):Q=$.indexOf("<",Q+1);}return Y?Z+$.slice(X):$}function m6($,Q,Z){if(!Z.optimizeForStreaming&&$.indexOf("[")===-1)return false;for(var X=0,Y=$.length,V=false,K=false;X<Y;){for(var J=$.indexOf(`
|
|
17354
|
+
`,X),G=J<0?Y:J,U=X,W=0;U<G&&W<4;)if($.charCodeAt(U)===I)W++,U++;else if($.charCodeAt(U)===w)W+=4,U++;else break;if(U>=G){V=false,X=J<0?Y:J+1;continue}if(W<4){var z=$.charCodeAt(U);if(z===Z0||z===b0){for(var H=z,F=0,M=U;M<G&&$.charCodeAt(M)===H;)F++,M++;if(F>=3){var j=true;if(H===Z0){for(var _=M;_<G;_++)if($.charCodeAt(_)===Z0){j=false;break}}if(j){V=false;for(var q=J<0?Y:J+1;q<Y;){for(var D=q,A=0;D<Y&&A<4;){var N=$.charCodeAt(D);if(N===I)A++,D++;else if(N===w)A+=4,D++;else break}if(A<4&&D<Y&&$.charCodeAt(D)===H){for(var L=0;D<Y&&$.charCodeAt(D)===H;)L++,D++;if(L>=F){for(;D<Y&&($.charCodeAt(D)===I||$.charCodeAt(D)===w);)D++;if(D>=Y||$.charCodeAt(D)===g){X=D>=Y?Y:D+1;break}}}for(;q<Y&&$.charCodeAt(q)!==g;)q++;q<Y&&q++;}q>=Y&&(X=Y,K=true);continue}}}}for(var O=U;O<G&&$.charCodeAt(O)===l$1;){O++,O<G&&$.charCodeAt(O)===I&&O++;for(var P=0;O<G&&P<4;)if($.charCodeAt(O)===I)P++,O++;else if($.charCodeAt(O)===w)P+=4,O++;else break;if(P>=4)break;V=false;}if(!V&&W<4&&O<G&&$.charCodeAt(O)===A0&&!(O+1<Y&&$.charCodeAt(O+1)===W5)){var v=l4($,O,Q);if(v){X=v,V=false;continue}}var b=$.charCodeAt(U);if(b===V5&&W<4)V=false;else if(W<4&&(b===p$1||b===P0||b===O0)){for(var k=U,x=0;k<G;){var T=$.charCodeAt(k);if(T===b)x++;else if(T!==I&&T!==w)break;k++;}V=!(x>=3&&k>=G);}else V=true;X=J<0?Y:J+1;}return K}function l4($,Q,Z){let X=$.length;if($.charCodeAt(Q)!==A0)return null;let Y=Q+1<X&&$.charCodeAt(Q+1)===W5,V=Q+1;for(;V<X;){var K=$.charCodeAt(V);if(K===J5){V++;break}if(K===A0)return null;K===T0&&V+1<X&&V++,V++;}if(V>X||$.charCodeAt(V-1)!==J5)return null;let J=$.slice(Q+1,V-1);if(J.length>999)return null;let G=p9(J);if(!G||V>=X||$.charCodeAt(V)!==m0)return null;V++;let U=false;for(;V<X;){let f=$.charCodeAt(V);if(f===I||f===w)V++;else if(f===g&&!U)U=true,V++;else break}if(Y){let f=$.indexOf(`
|
|
17355
|
+
`,V),y=f<0?X:f,C=$.slice(V,y).trim();return Z[G]={target:C,title:void 0},f<0?X:f+1}var W;if(V<X&&$.charCodeAt(V)===Y0){V++;for(var z=V;V<X&&$.charCodeAt(V)!==l$1&&$.charCodeAt(V)!==g;)$.charCodeAt(V)===T0&&V+1<X&&V++,V++;if(V>=X||$.charCodeAt(V)!==l$1)return null;W=$.slice(z,V),V++;for(var H=$.indexOf(`
|
|
17356
|
+
`,V),F=H<0?X:H,M=V;M<F&&($.charCodeAt(M)===I||$.charCodeAt(M)===w);)M++;if(M<F){if(M===V)return null;var j=$.charCodeAt(M);if(j!==T5&&j!==f5&&j!==z5)return null}}else {for(var z=V,_=0;V<X;){var K=$.charCodeAt(V);if(K===z5)_++;else if(K===F5){if(_===0)break;_--;}else {if(K===I||K===w||K===g)break;K===T0&&V+1<X&&V++;}V++;}if(W=$.slice(z,V),!W)return null}for(;V<X&&($.charCodeAt(V)===I||$.charCodeAt(V)===w);)V++;var q=$.indexOf(`
|
|
17357
|
+
`,V),D=q<0?X:q,A,N=false,L=V,O=V;if(V===D&&V<X)for(O=V+1;O<X&&($.charCodeAt(O)===I||$.charCodeAt(O)===w);)O++;if(O<X){var P=$.charCodeAt(O);if(P===T5||P===f5||P===z5){for(var v=P===z5?41:P,b=O+1,k=b;b<X;){var x=$.charCodeAt(b);if(x===v){for(var T=b+1;T<X&&($.charCodeAt(T)===I||$.charCodeAt(T)===w);)T++;(T>=X||$.charCodeAt(T)===g)&&(A=$.slice(k,b),N=true,L=T<X?T+1:X);break}if(x===T0&&b+1<X){b+=2;continue}if(x===g&&b+1<X&&$.charCodeAt(b+1)===g)break;b++;}if(!N&&O===V)return null}}if(N)return Z[G]||(Z[G]={target:I5(q9(W)),title:A===void 0?A:I5(q9(A))}),L;for(;V<D&&($.charCodeAt(V)===I||$.charCodeAt(V)===w);)V++;return V<D?null:(Z[G]||(Z[G]={target:I5(q9(W)),title:A}),q<0?X:q+1)}var X5=new Uint8Array(V4);for(X5[V5]|=M5,X5[l$1]|=M5,X5[p$1]|=M5|k5,X5[y5]|=M5,X5[P0]|=M5|k5,X5[O0]|=M5|k5,X5[Z0]|=M5|k5,X5[b0]|=M5|k5,X5[Y0]|=M5|k5,X5[A0]|=k5,X5[c0]|=k5,X5[E0]|=M5,B9=r$1;B9<=o;B9++)X5[B9]|=M5;var B9;function I4($){if($.indexOf("[")<0&&$.indexOf("]")<0)return false;for(var Q=0;Q<$.length;Q++){if($.charCodeAt(Q)===T0){Q++;continue}if($.charCodeAt(Q)===A0||$.charCodeAt(Q)===J5)return true}return false}function p9($){for(var Q=$.length,Z=true,X=Q>0,Y=0;Y<Q;Y++){var V=$.charCodeAt(Y);if(V===I){if(Z){X=false;break}Z=true;}else if(V<33||V>126||V>=h$1&&V<=u$1){X=false;break}else Z=false;}if(X&&!Z)return $;var K=$.replace(/\s+/g," ").trim();return K.indexOf("\u1E9E")!==-1?K.replace(/\u1E9E/g,"ss").toLowerCase():K.toLowerCase()}function R$($){return $<U9?X5[$]:$===c$?h5:0}function q9($){return $.indexOf("\\")===-1?$:$.replace(/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,"$1")}var j$=null,B$=-1,d9=-1;function G0($,Q){if(Q>=B$&&Q<=d9&&$===j$)return d9;var Z=$.indexOf(`
|
|
17358
|
+
`,Q),X=Z<0?$.length:Z;return j$=$,B$=Q,d9=X,X}function e($,Q){let Z=G0($,Q);return Z<$.length?Z+1:Z}function v9($,Q,Z){for(;Q<Z;){let X=$.charCodeAt(Q);if(X!==I&&X!==w)break;Q++;}return Q}function N4($,Q){let Z=e($,Q);for(;Z<$.length;){let X=G0($,Z);if(e0($,Z,X))return Z;Z=e($,Z);}return $.length}function l5($,Q,Z,X){let Y=0;for(;Q+Y<Z&&$.charCodeAt(Q+Y)===X;)Y++;return Y}var U0=0,Q0=0;function L0($,Q,Z){for(U0=0,Q0=0;Q+Q0<Z;){let X=$.charCodeAt(Q+Q0);if(X===w)U0+=4-U0%4;else if(X===I)U0++;else break;Q0++;}}function e0($,Q,Z){return v9($,Q,Z)>=Z}function u6($,Q){if(!$)return $;var Z=Q.v||(Q.v=Object.create(null)),X=Z[$];if(X===void 0)return Z[$]=0,$;for(var Y=X+1,V=`${$}-${Y}`;Z[V]!==void 0;)Y++,V=`${$}-${Y}`;return Z[$]=Y,Z[V]=0,V}function p6($,Q,Z,X){let Y=G0($,Q);if(L0($,Q,Y),U0>3)return null;let V=Q+Q0;if($.charCodeAt(V)!==V5)return null;let K=l5($,V,Y,35);if(K<1||K>6||(V+=K,V<Y&&$.charCodeAt(V)!==I&&$.charCodeAt(V)!==w))return null;V=v9($,V,Y);for(var J=Y;J>V&&$.charCodeAt(J-1)===I;)J--;for(var G=J;J>V&&$.charCodeAt(J-1)===V5;)J--;if(J<G)if(J===V||$.charCodeAt(J-1)===I)for(;J>V&&$.charCodeAt(J-1)===I;)J--;else J=G;let U=$.slice(V,J),W=W9(U,false,Z,X);return {node:{type:B$2.heading,level:K,children:W,id:""},end:e($,Y)}}function d6($,Q,Z){var X=$.charCodeAt(Q);if(X!==K5&&X!==p$1)return false;for(var Y=Q;Y<Z&&$.charCodeAt(Y)===X;)Y++;for(;Y<Z&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;return Y>=Z}function d5($,Q){let Z=G0($,Q);if(L0($,Q,Z),U0>3)return null;let X=Q+Q0,Y=$.charCodeAt(X);if(Y!==p$1&&Y!==P0&&Y!==O0)return null;let V=0;for(;X<Z;){let K=$.charCodeAt(X);if(K===Y)V++;else if(K!==I&&K!==w)return null;X++;}return V<3?null:{node:{type:B$2.breakThematic},end:e($,Z)}}var P4=0,w4=0,R4="";function c6($,Q,Z){let X=G0($,Q);if(L0($,Q,X),U0>3)return null;let Y=U0,K=Q+Q0,J=$.charCodeAt(K);if(J!==Z0&&J!==b0)return null;let G=l5($,K,X,J);if(G<3)return null;K+=G;let U=v9($,K,X),W=X;if(J===Z0){for(let C=U;C<X;C++)if($.charCodeAt(C)===Z0)return null}for(;W>U&&($.charCodeAt(W-1)===I||$.charCodeAt(W-1)===w);)W--;let z=$.slice(U,W),H="",F="",M=z.indexOf(" ");M===-1?H=z:(H=z.slice(0,M),F=z.slice(M+1).trim()),H=q9(H);var j;if(F){_4.lastIndex=0;for(var _;(_=_4.exec(F))!=null;)j||(j={}),j[_[1]]=_[2]===void 0?_[3]:_[2];}let q=e($,X),D=$.length,A=$.length;var N;J===P4&&G===w4?N=R4:(N=String.fromCharCode(J).repeat(G),P4=J,w4=G,R4=N);for(var L=q;L<$.length;){var O=$.indexOf(N,L);if(O===-1)break;for(var P=O,v=0;P>0&&v<4&&$.charCodeAt(P-1)===I;)P--,v++;if(v<=3&&(P===0||$.charCodeAt(P-1)===g)){for(var b=O+G;b<$.length&&$.charCodeAt(b)===J;)b++;var k=G0($,b);if(e0($,b,k)){D=P,A=e($,k);break}}L=O+1;}var x;if(Y===0)x=D>q&&$.charCodeAt(D-1)===g?$.slice(q,D-1):$.slice(q,D);else {x="";for(var T=q;T<D;){var f=G0($,T);L0($,T,f);var y=Math.min(Q0,Y);x+=`${$.slice(T+y,f)}
|
|
17359
|
+
`,T=e($,f);}x.length>0&&x.charCodeAt(x.length-1)===g&&(x=x.slice(0,-1));}return {node:{type:B$2.codeBlock,lang:H||void 0,text:x,infoString:F||void 0,attrs:j},end:A}}function b4($,Q,Z){for(var X=0,Y=Q;Y<Z&&X<4;)$.charCodeAt(Y)===w?X+=4-X%4:X++,Y++;if(X<4)return "";for(var V="",K=4;K<X;K++)V+=" ";return V+$.slice(Y,Z)}function l6($,Q){let Z=G0($,Q);if(L0($,Q,Z),U0<4)return null;let X="",Y=Q;for(;Y<$.length;){let H=G0($,Y);if(L0($,Y,H),e0($,Y,H)){for(var V=`${b4($,Y,H)}
|
|
17360
|
+
`,K=e($,H);K<$.length;){var J=G0($,K);if(e0($,K,J)){V+=`${b4($,K,J)}
|
|
17361
|
+
`,K=e($,J);continue}L0($,K,J),U0>=4&&(X+=V,Y=K);break}if(Y!==K)break;continue}if(U0<4)break;let F=0,M=0;var G=0;for(let j=Y;j<H&&M<4;j++){if($.charCodeAt(j)===w){var U=4-M%4;M+U>4&&(G=M+U-4),M+=U;}else M++;F++;}var W="";if(G>0)for(var z=0;z<G;z++)W+=" ";W+=$.slice(Y+F,H),X+=`${W}
|
|
17362
|
+
`,Y=e($,H);}for(;X.length>0&&X.charCodeAt(X.length-1)===g;)X=X.slice(0,-1);return X?{node:{type:B$2.codeBlock,lang:void 0,text:X,infoString:void 0,attrs:void 0},end:Y}:null}function r6($,Q,Z,X){let Y=G0($,Q);if(L0($,Q,Y),U0>3)return null;let V=Q+Q0;if($.charCodeAt(V)!==l$1)return null;let K="",J=Q,G,U=false,W=false,z=false;for(;J<$.length;){let S=G0($,J);L0($,J,S);let s=J+Q0;if($.charCodeAt(s)===l$1){let X0=s+1;var H=U0+1,F=false;if(X0<S){var M=$.charCodeAt(X0);M===I?(X0++,H++,F=true):M===w&&(F=true);}for(var j="",_=false,q=X0;q<S;q++)if($.charCodeAt(q)===w){_=true;break}if(_){var D=H;if(F&&X0<S&&$.charCodeAt(X0)===w){for(var A=4-D%4,N=0;N<A-1;N++)j+=" ";D+=A,X0++;}for(var L=X0;L<S;L++)if($.charCodeAt(L)===w){for(var O=4-D%4,P=0;P<O;P++)j+=" ";D+=O;}else j+=$[L],D++;}else j=$.slice(X0,S);if(!(K||G)){let I0=j.match(/^\[!([A-Za-z]+)\]\s*$/);if(I0){G=I0[1].toUpperCase(),J=e($,S);continue}}K+=`${j}
|
|
17363
|
+
`;var v=j.trimStart();v.startsWith("```")||v.startsWith("~~~")?z=!z:(j.startsWith(" ")||j.startsWith(" "))&&(z=true),W=v.length>0,J=e($,S);}else if(K&&!e0($,J,S)&&W){if(U0<4){var b=J+Q0,k=b<S?$.charCodeAt(b):0;if(k===V5||k===l$1||k===Z0||k===b0||k===Y0||(k===p$1||k===P0||k===O0)&&d5($,J)||(k===p$1||k===P0||k===y5)&&b+1<S&&($.charCodeAt(b+1)===I||$.charCodeAt(b+1)===w))break;if(k>=r$1&&k<=o){for(var x=b;x<S&&$.charCodeAt(x)>=r$1&&$.charCodeAt(x)<=o;)x++;if(x<S&&($.charCodeAt(x)===Q5||$.charCodeAt(x)===F5))break}}if(z)break;K+=`${$.slice(J,S)}
|
|
17364
|
+
`,U=true,J=e($,S);}else break}if(!(K||G))return null;var{inBlockQuote:T,l:f}=Z;Z.inBlockQuote=true,U&&(Z.l=true);var y=Z.i;Z.i=y||!e0($,J,$.length);let C=c5(K||"",Z,X);return Z.i=y,Z.inBlockQuote=T,Z.l=f,{node:{type:B$2.blockQuote,children:C,alert:G||void 0},end:J}}function r4($,Q,Z){for(var X=0,Y=Q;Y<Z;Y++)$.charCodeAt(Y)===w?X+=4-X%4:X++;return X}function u5($,Q,Z){if(L0($,Q,Z),U0>3)return null;var X=Q+Q0;if(X>=Z)return null;var Y=$.charCodeAt(X),V=U0,K=X,J=X;if(Y===p$1||Y===P0||Y===y5){if(K=X+1,K<Z&&$.charCodeAt(K)!==I&&$.charCodeAt(K)!==w&&$.charCodeAt(K)!==g)return null}else if(Y>=r$1&&Y<=o){for(;J<Z&&J-X<9;){var G=$.charCodeAt(J);if(G<r$1||G>o)break;J++;}if(J>X&&J<Z){var U=$.charCodeAt(J);if(U===Q5||U===F5){if(K=J+1,K<Z&&$.charCodeAt(K)!==I&&$.charCodeAt(K)!==w&&$.charCodeAt(K)!==g)return null}else return null}else return null}else return null;var W=K,z=r4($,Q,K),H=0,F=W,M=z;if(W>=Z)return {ordered:Y>=r$1&&Y<=o,marker:Y>=r$1&&Y<=o?$[J]:$[X],start:Y>=r$1&&Y<=o?Number.parseInt($.slice(X,J),10):void 0,contentStart:W,contentCol:z+1,markerCol:V,isEmpty:true};for(;F<Z&&($.charCodeAt(F)===I||$.charCodeAt(F)===w);){if($.charCodeAt(F)===w){var j=4-M%4;M+=j;}else M++;F++,H++;}var _=F>=Z,q=M-z;return _||q>4?(M=z+1,F=W+1,H=1):H===0&&(M=z+1,F=W,H=1),{ordered:Y>=r$1&&Y<=o,marker:Y>=r$1&&Y<=o?$[J]:$[X],start:Y>=r$1&&Y<=o?Number.parseInt($.slice(X,J),10):void 0,contentStart:F,contentCol:M,markerCol:V,isEmpty:_}}var G9=0;function L4($,Q,Z,X){var Y=0,V=Q;for(G9=0;V<Z&&Y<X;){var K=$.charCodeAt(V);if(K===w){var J=4-Y%4;if(Y+J>X){G9=Y+J-X,V++,Y=X;break}Y+=J;}else if(K===I)Y++;else break;V++;}return V}function T4($,Q,Z,X){var Y=G0($,Q),V=u5($,Q,Y);if(!V)return null;var K=[],J=Q,G=V.contentCol,U="",W=V.isEmpty,z=false,H=false;if(!V.isEmpty){for(var F=false,M=V.contentStart;M<Y;M++)if($.charCodeAt(M)===w){F=true;break}if(F){var j="",_=r4($,Q,V.contentStart),q=_-V.contentCol;if(q>0)for(var D=0;D<q;D++)j+=" ";for(var A=V.contentStart;A<Y;A++)if($.charCodeAt(A)===w){for(var N=4-_%4,L=0;L<N;L++)j+=" ";_+=N;}else j+=$[A],_++;U=`${j}
|
|
17365
|
+
`;}else U=`${$.slice(V.contentStart,Y)}
|
|
17366
|
+
`;}for(J=e($,Y);J<$.length;){var O=G0($,J);L0($,J,O);var P=$.charCodeAt(J+Q0);if(U0<G&&(P===p$1||P===P0||P===O0)&&U0<=3&&d5($,J))break;var v=u5($,J,O);if(v&&v.ordered===V.ordered&&v.marker===V.marker&&v.markerCol<G){K.push({contentCol:G,raw:U,hasBlankAfter:z,isEmpty:W}),z&&(H=true),G=v.contentCol,W=v.isEmpty,z=false,U=v.isEmpty?"":`${$.slice(v.contentStart,O)}
|
|
17367
|
+
`,J=e($,O);continue}if(e0($,J,O)){var b=L4($,J,O,G);if(G9>0||b<O){for(var k="",x=0;x<G9;x++)k+=" ";U+=`${k+$.slice(b,O)}
|
|
16574
17368
|
`;}else U+=`
|
|
16575
|
-
`;
|
|
16576
|
-
`;}else U
|
|
16577
|
-
`;
|
|
16578
|
-
`,
|
|
16579
|
-
`,
|
|
16580
|
-
`)!==-1||g.
|
|
16581
|
-
`)!==-1,
|
|
16582
|
-
|
|
16583
|
-
`)!==-1,
|
|
16584
|
-
|
|
16585
|
-
`)!==-1||
|
|
16586
|
-
|
|
16587
|
-
`)!==-1,
|
|
16588
|
-
`,
|
|
16589
|
-
|
|
16590
|
-
`,U=
|
|
16591
|
-
`)!==-1&&(X=X.replace(/\n/g," ")),X.length>0&&X[0]===" "&&X[X.length-1]===" "&&X.trim().length>0&&(X=X.slice(1,-1)),{node:{type:_$1.codeInline,text:X},end:V+K}}G=V+K;}return null}function X$($,Q,Z){if($.charCodeAt(Q)!==e)return Q;let Y=h5($,Q,Z,96),G=Q+Y;for(;G<Z;){let V=$.indexOf("`",G);if(V<0||V>=Z)return Q;let K=h5($,V,Z,96);if(K===Y)return V+K;G=V+K;}return Q}function j6($,Q,Z){if($.charCodeAt(Q)!==Q0)return Q;if(Q+1<Z&&$.charCodeAt(Q+1)===H0){let U=Q+2;for(;U<Z&&$.charCodeAt(U)!==o;)U++;return U<Z?U+1:Q}if(Q+3<Z&&$.charCodeAt(Q+1)===p0&&$.charCodeAt(Q+2)===d&&$.charCodeAt(Q+3)===d){let U=$.indexOf("-->",Q+4);return U>=0?U+3:Q}let Y=Q+1,G=Y;for(;Y<Z;){let U=$.charCodeAt(Y);if(U>=p$1&&U<=c||U>=G0&&U<=F0||U>=r$1&&U<=i||U===d)Y++;else break}if(Y===G)return Q;let V=$.slice(G,Y).toLowerCase(),K=false;for(;Y<Z;){let U=$.charCodeAt(Y);if(U===o){Y++;break}if(U===H0&&Y+1<Z&&$.charCodeAt(Y+1)===o){Y+=2,K=true;break}if(U===P5||U===E5){var X=U;for(Y++;Y<Z&&$.charCodeAt(Y)!==X;)Y++;Y<Z&&Y++;continue}if(U===f)return Q;Y++;}if(K||r5(V))return Y;let J=1;for(;Y<Z&&J>0;)if($.charCodeAt(Y)===Q0)if(Y+1<Z&&$.charCodeAt(Y+1)===H0){let U=Y+2,F=U;for(;F<Z&&($.charCodeAt(F)>=p$1&&$.charCodeAt(F)<=c||$.charCodeAt(F)>=G0&&$.charCodeAt(F)<=F0);)F++;if($.slice(U,F).toLowerCase()===V){for(;F<Z&&$.charCodeAt(F)!==o;)F++;if(F<Z&&F++,J--,J===0)return F}Y=F;}else {let U=Y+1,F=U;for(;F<Z&&($.charCodeAt(F)>=p$1&&$.charCodeAt(F)<=c||$.charCodeAt(F)>=G0&&$.charCodeAt(F)<=F0);)F++;$.slice(U,F).toLowerCase()===V&&J++,Y++;}else Y++;return Y}function M6($,Q,Z,Y,G){if($.charCodeAt(Q)!==N0||Q+1>=Z||$.charCodeAt(Q+1)!==N0)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===e){let X=X$($,V,Z);if(X>V){V=X;continue}}if(K===N0&&$.charCodeAt(V+1)===N0){let X=$.slice(Q+2,V),J=M5(X,0,X.length,Y,G);return {node:{type:_$1.textFormatted,tag:"del",children:J},end:V+2}}K===b0&&V+1<Z&&V++,V++;}return null}function _6($,Q,Z,Y,G){if($.charCodeAt(Q)!==V5||Q+1>=Z||$.charCodeAt(Q+1)!==V5)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===e){let X=X$($,V,Z);if(X>V){V=X;continue}}if(K===V5&&$.charCodeAt(V+1)===V5&&V>Q+2){let X=$.slice(Q+2,V),J=M5(X,0,X.length,Y,G);return {node:{type:_$1.textFormatted,tag:"mark",children:J},end:V+2}}K===b0&&V+1<Z&&V++,V++;}return null}function F4($,Q,Z){return $<t5?!!(K$($)&c5):C$.test(Q[Z])}function q4($,Q,Z){return $<t5?!!(K$($)&T5):m$.test(Q[Z])}function I6($,Q,Z){var Y=$.charCodeAt(Q);if(Y!==A0&&Y!==q0)return null;var G=h5($,Q,Z,Y);if(G===0)return null;var V=Q>0?$.charCodeAt(Q-1):32,K=Q+G<Z?$.charCodeAt(Q+G):32,X=q4(V,$,Q-1),J=q4(K,$,Q+G),U=Q>0?F4(V,$,Q-1):false,F=Q+G<Z?F4(K,$,Q+G):false,W=!J&&(!F||X||U),O=!X&&(!U||J||F),z,B;return Y===A0?(z=W,B=O):(z=W&&(!O||U),B=O&&(!W||F)),{len:G,canOpen:z,canClose:B}}function v6($,Q,Z,Y){if(Q.length!==0){for(var G=$.length,V=Array(G),K=null,X=null,J=0;J<G;J++){var U={node:$[J],prev:X,next:null};X?X.next=U:K=U,V[J]=U,X=U;}for(var F=Array(Q.length),W=0;W<Q.length;W++)F[W]=V[Q[W].idx];for(var O=[],z=0;z<12;z++)O[z]=-1;for(var B=0;B<Q.length;){var A=Q[B];if(!A.active||!A.canClose){B++;continue}for(var q=A.ch===A0?0:1,H=q*6+A.len%3*2+(A.canOpen?1:0),j=O[H]!==void 0?O[H]:-1,M=-1,y=B-1;y>j;y--){var v=Q[y];if(!(!v.active||v.ch!==A.ch||!v.canOpen)&&!((A.canOpen||v.canClose)&&(v.len+A.len)%3===0&&v.len%3!==0)){M=y;break}}if(M<0){O[H]=B-1,!A.canOpen&&(A.active=false),B++;continue}var D=Q[M],w=D.len>=2&&A.len>=2,L=w?2:1;D.len-=L,A.len-=L;var R=F[M],I=F[B],x=R.node,k=I.node;x.text=x.text.slice(0,x.text.length-L),k.text=k.text.slice(L);for(var u=[],E=R.next;E&&E!==I;)u.push(E.node),E=E.next;var m={type:_$1.textFormatted,tag:w?"strong":"em",children:u},T={node:m,prev:R,next:I};R.next=T,I.prev=T;for(var S=M+1;S<B;S++)Q[S].active=false;if(D.len===0&&(D.active=false,x.text==="")){var a=R.prev;T.prev=a,a?a.next=T:K=T;}if(A.len===0){if(A.active=false,k.text===""){var g=I.next;T.next=g,g&&(g.prev=T);}}else continue;B++;}for(var X0=0,n=K;n;){var y0=n.node;if(y0.type===_$1.text){var f0=y0;if(f0.text===""){n=n.next;continue}if(X0>0&&$[X0-1].type===_$1.text){$[X0-1].text+=f0.text,n=n.next;continue}}$[X0++]=y0,n=n.next;}$.length=X0;}}function W4($,Q,Z,Y,G){let V=$.charCodeAt(Q)===p0,K=V?Q+1:Q;if($.charCodeAt(K)!==z0)return null;var X=$.indexOf("]",K+1);if(X<0||X>=Z)return null;for(var J=K+1,U=-1,F=1;J<Z&&F>0;){var W=$.charCodeAt(J);if(W===b0&&J+1<Z){J+=2;continue}if(W===e){var O=X$($,J,Z);if(O>J){J=O;continue}}if(W===Q0){var z=I4($,J,Z);if(z){J=z.end;continue}var B=j6($,J,Z);if(B>J){J=B;continue}}W===z0?F++:W===K5&&F--,J++;}if(F!==0)return null;var A=J-1,q=$.slice(K+1,A),H=J<Z?$.charCodeAt(J):0,j=false;if(H===F5){var M=true;for(J++;J<Z&&($.charCodeAt(J)===N$1||$.charCodeAt(J)===f);)J++;var y="",v=J;if(J<Z&&$.charCodeAt(J)===Q0){for(J++,v=J;v<Z&&$.charCodeAt(v)!==o;){if($.charCodeAt(v)===b0&&v+1<Z){v+=2;continue}if($.charCodeAt(v)===f){M=false;break}v++;}M&&(v>=Z||$.charCodeAt(v)!==o)&&(M=false),M&&(y=$.slice(J,v),v++);}else if(M)if(Y.h!==void 0&&J>=Y.h)M=false;else {for(var D=0,w=false;v<Z;){var L=$.charCodeAt(v);if(L===b0&&v+1<Z){v+=2;continue}if(L===F5)D++;else if(L===q5){if(w=true,D===0)break;D--;}else if(L===N$1||L===f)break;v++;}v>=Z&&!w&&(Y.h===void 0||J<Y.h)&&(Y.h=J),y=$.slice(J,v);}if(M){for(J=v;J<Z&&($.charCodeAt(J)===N$1||$.charCodeAt(J)===f);)J++;var R;if(J<Z){var I=$.charCodeAt(J);if(I===P5||I===E5||I===F5){var x=I===F5?41:I;J++;for(var k=J;J<Z&&$.charCodeAt(J)!==x;)$.charCodeAt(J)===b0&&J+1<Z&&J++,J++;J>=Z?M=false:(R=$.slice(k,J),J++);}}if(M){for(;J<Z&&($.charCodeAt(J)===N$1||$.charCodeAt(J)===f);)J++;(J>=Z||$.charCodeAt(J)!==q5)&&(M=false);}}if(M){J++,y=Z9(y),R!==void 0&&(R=o5(Z9(R)));var u=G?.sanitizer||y5,E=u(y,V?"img":"a",V?"src":"href"),m=E===null?null:y;if(V){var T=M5(q,0,q.length,Y,G),S=V$(T);return {node:{type:_$1.image,target:m,alt:S,title:R},end:J}}else {var a=Y.inAnchor;Y.inAnchor=true;var g=a?[{type:_$1.text,text:q}]:M5(q,0,q.length,Y,G);return Y.inAnchor=a,!Y.inAnchor&&G$(g)?null:{node:{type:_$1.link,target:m,title:R,children:g},end:J}}}else J=A+1,j=true;}var X0="",n=J;if(!j&&H===z0){var y0=J+1;n=y0;for(var f0=false;n<Z&&$.charCodeAt(n)!==K5;){if($.charCodeAt(n)===b0&&n+1<Z){n+=2;continue}if($.charCodeAt(n)===z0){f0=true;break}n++;}if(f0||n>=Z)return null;var m0=$.slice(y0,n);if(m0.trim())X0=S9(m0);else {if($4(q))return null;X0=S9(q);}n=n+1;}else {if($4(q))return null;X0=S9(q);}var t=Y.refs&&Y.refs[X0];if(!t)return null;if(V)return {node:{type:_$1.image,target:t.target,alt:V$(M5(q,0,q.length,Y,G)),title:t.title},end:n};var l=Y.inAnchor;Y.inAnchor=true;var g=l?[{type:_$1.text,text:q}]:M5(q,0,q.length,Y,G);return Y.inAnchor=l,!Y.inAnchor&&G$(g)?null:{node:{type:_$1.link,target:t.target,title:t.title,children:g},end:n}}function I4($,Q,Z){if($.charCodeAt(Q)!==Q0)return null;for(var Y=Q+1;Y<Z;){var G=$.charCodeAt(Y);if(G===o)break;if(G===N$1||G===f||G===v5||G===Q0)return null;Y++;}if(Y>=Z||$.charCodeAt(Y)!==o)return null;var V=$.slice(Q+1,Y),K=V.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\x00-\x20]*)$/);return K?{node:{type:_$1.link,target:V,title:void 0,children:[{type:_$1.text,text:V}]},end:Y+1}:V.indexOf("@")!==-1&&/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(V)?{node:{type:_$1.link,target:"mailto:"+V,title:void 0,children:[{type:_$1.text,text:V}]},end:Y+1}:null}function N6($,Q,Z,Y){if($.charCodeAt(Q)!==z0||Q+1>=Z||$.charCodeAt(Q+1)!==U5)return null;let G=Q+2;for(;G<Z&&$.charCodeAt(G)!==K5&&$.charCodeAt(G)!==f;)G++;if(G>=Z||$.charCodeAt(G)!==K5)return null;let V=$.slice(Q+2,G);return V?{node:{type:_$1.footnoteReference,target:"#"+C0(V),text:V},end:G+1}:null}function P6($,Q,Z,Y){if(Y.disableBareUrls)return null;var G="",V=false,K=$.charCodeAt(Q);if(K===q9||K===72?Q+8<=Z&&$.charCodeAt(Q+1)===p5&&$.charCodeAt(Q+2)===p5&&$.charCodeAt(Q+3)===b9&&($.charCodeAt(Q+4)===d9&&$.charCodeAt(Q+5)===g0&&$.charCodeAt(Q+6)===H0&&$.charCodeAt(Q+7)===H0?G="https://":$.charCodeAt(Q+4)===g0&&$.charCodeAt(Q+5)===H0&&$.charCodeAt(Q+6)===H0&&(G="http://")):K===N5||K===70?Q+6<=Z&&$.charCodeAt(Q+1)===p5&&$.charCodeAt(Q+2)===b9&&$.charCodeAt(Q+3)===g0&&$.charCodeAt(Q+4)===H0&&$.charCodeAt(Q+5)===H0&&(G="ftp://"):(K===S5||K===87)&&Q+4<=Z&&$.charCodeAt(Q+1)===S5&&$.charCodeAt(Q+2)===S5&&$.charCodeAt(Q+3)===s0&&(G="www.",V=true),!G)return null;let X=Q+G.length;for(;X<Z;){let D=$.charCodeAt(X);if(D===N$1||D===f||D===b||D===v5||D===Q0||D===o)break;X++;}for(var J=0,U=0,F=Q;F<X;F++){var W=$.charCodeAt(F);W===F5?J++:W===q5&&U++;}let O=X;for(;O>Q+G.length;){let D=$.charCodeAt(O-1);if(D===s0||D===P$||D===g0||D===p0||D===s5||D===q5||D===A0||D===q0||D===N0){if(D===q5){if(J>=U)break;U--;}O--;}else if(D===W9){for(var z=O-2;z>Q&&($.charCodeAt(z)>=p$1&&$.charCodeAt(z)<=c||$.charCodeAt(z)>=G0&&$.charCodeAt(z)<=F0||$.charCodeAt(z)>=r$1&&$.charCodeAt(z)<=i);)z--;z>=Q&&$.charCodeAt(z)===U9?O=z:O--;}else break}if(O<=Q+G.length)return null;var B=Q+(V?4:G.length),A=$.indexOf("/",B);if((A<0||A>O)&&(A=O),V&&$.indexOf(".",B)===-1)return null;for(var q=-1,H=-1,j=A-1;j>=B;j--)if($.charCodeAt(j)===s0)if(q<0)q=j;else {H=j;break}for(var M=H>=0?H+1:B,j=M;j<A;j++)if($.charCodeAt(j)===q0)return null;var y=$.slice(Q,O),v=V?"http://"+y:y;return {node:{type:_$1.link,target:v,title:void 0,children:[{type:_$1.text,text:y}]},end:O}}function w6($,Q,Z,Y){if(Y.disableBareUrls)return null;for(var G=Q,V=G;G<Z;){var K=$.charCodeAt(G);if(K>=p$1&&K<=c||K>=G0&&K<=F0||K>=r$1&&K<=i||K===s0||K===p0||K===G5||K===36||K===J9||K===U9||K===E5||K===A0||K===w5||K===H0||K===V5||K===s5||K===U5||K===q0||K===e||K===b5||K===S0||K===y9||K===N0||K===d)G++;else break}if(G===V||G>=Z||$.charCodeAt(G)!==w9)return null;G++;for(var X=G,J=-1,U=G;G<Z;){var K=$.charCodeAt(G);if(K>=p$1&&K<=c||K>=G0&&K<=F0||K>=r$1&&K<=i)G++;else if((K===d||K===q0)&&G>X)G++;else if(K===s0){if(G===X)break;var F=$.charCodeAt(G-1);if(F===d||F===q0||G-U>63)break;if(G+1<Z){var W=$.charCodeAt(G+1);if(W>=p$1&&W<=c||W>=G0&&W<=F0||W>=r$1&&W<=i)J=G,U=G+1,G++;else break}else break}else break}if(G-U>63||J<0)return null;var O=$.charCodeAt(G-1);if(!(O>=p$1&&O<=c||O>=G0&&O<=F0||O>=r$1&&O<=i)||G<=J+1)return null;for(var z=-1,B=J-1;B>=X;B--)if($.charCodeAt(B)===s0){z=B;break}for(var A=z>=0?z+1:X,B=A;B<G;B++)if($.charCodeAt(B)===q0)return null;var q=$.slice(Q,G);return {node:{type:_$1.link,target:"mailto:"+q,title:void 0,children:[{type:_$1.text,text:q}]},end:G}}function G$($){for(var Q=0;Q<$.length;Q++)if($[Q].type===_$1.link||"children"in $[Q]&&Array.isArray($[Q].children)&&G$($[Q].children))return true;return false}function V$($){for(var Q="",Z=0;Z<$.length;Z++){var Y=$[Z];Y.type===_$1.text?Q+=Y.text:Y.type===_$1.breakLine?Q+=" ":Y.type===_$1.codeInline?Q+=Y.text:"children"in Y&&Array.isArray(Y.children)?Q+=V$(Y.children):Y.type===_$1.image&&(Q+=Y.alt||"");}return Q}function i5($){return {type:_$1.text,text:$}}function b6($,Q,Z){var Y=Q+1;if(Y>=Z)return -1;if($.charCodeAt(Y)===G5){Y++;var G=Y<Z&&($.charCodeAt(Y)===c9||$.charCodeAt(Y)===l9);G&&Y++;for(var V=Y,K=G?6:7;Y<Z&&Y-V<=K;){var X=$.charCodeAt(Y),J=X>=r$1&&X<=i||G&&(X>=p$1&&X<=F9||X>=G0&&X<=N5);if(!J)break;Y++;}return Y===V||Y-V>K?-1:Y<Z&&$.charCodeAt(Y)===W9?Y+1:-1}for(var U=Y;Y<Z&&Y-U<48;){var F=$.charCodeAt(Y);if(F>=p$1&&F<=c||F>=G0&&F<=F0||F>=r$1&&F<=i){Y++;continue}break}return Y===U?-1:Y<Z&&$.charCodeAt(Y)===W9?Y+1:-1}function y6($,Q,Z,Y,G){if($.charCodeAt(Q)!==Q0)return null;var V=Q+1;if(V>=Z)return null;var K=$.charCodeAt(V);if(K===p0&&V+1<Z&&$.charCodeAt(V+1)===d&&V+2<Z&&$.charCodeAt(V+2)===d){var X=V+3;if(X<Z&&$.charCodeAt(X)===o)return {node:{type:_$1.htmlComment,text:"",l:true},end:X+1};if(X+1<Z&&$.charCodeAt(X)===d&&$.charCodeAt(X+1)===o)return {node:{type:_$1.htmlComment,text:"-",l:true},end:X+2};var J=$.indexOf("-->",X);return J!==-1&&J<=Z-3?{node:{type:_$1.htmlComment,text:$.slice(Q+4,J),l:false},end:J+3}:null}if(K===s5){var U=$.indexOf("?>",V+1);return U!==-1&&U<Z?{node:{type:_$1.htmlSelfClosing,tag:"?",attrs:{},a:$.slice(Q,U+2),b:false},end:U+2}:null}if(K===p0&&V+1<Z){var F=$.charCodeAt(V+1);if(F===z0&&$.slice(V+1,V+8)==="[CDATA["){var W=$.indexOf("]]>",V+8);return W!==-1&&W<Z?{node:{type:_$1.htmlSelfClosing,tag:"![CDATA[",attrs:{},a:$.slice(Q,W+3),b:false},end:W+3}:null}if(F>=p$1&&F<=c){var O=$.indexOf(">",V+2);return O!==-1&&O<Z?{node:{type:_$1.htmlSelfClosing,tag:"!"+$.slice(V+1,O),attrs:{},a:$.slice(Q,O+1),b:false},end:O+1}:null}}if(K===H0){var z=V+1;if(z>=Z)return null;var B=$.charCodeAt(z);if(!(B>=p$1&&B<=c||B>=G0&&B<=F0))return null;for(z++;z<Z;){var A=$.charCodeAt(z);if(A>=p$1&&A<=c||A>=G0&&A<=F0||A>=r$1&&A<=i||A===d)z++;else break}for(;z<Z&&($.charCodeAt(z)===N$1||$.charCodeAt(z)===b||$.charCodeAt(z)===f);)z++;if(z<Z&&$.charCodeAt(z)===o){var q=$.slice(V+1,z).trim();return {node:{type:_$1.htmlSelfClosing,tag:q,attrs:{},a:$.slice(Q,z+1),b:true},end:z+1}}return null}if(!(K>=p$1&&K<=c||K>=G0&&K<=F0))return null;var H=j5($,Q);if(!H)return null;var j=H.tag,M=j.toLowerCase(),y=H.selfClosing;if(y||r5(j))return {node:{type:_$1.htmlSelfClosing,tag:j,attrs:L5(H.attrs,j,G),a:H.sanitized?$$(H):$.slice(Q,H.end),b:false},end:H.end};var v=B9.has(M),D=Y$($.slice(0,Z),H.end,j);if(D===-1)return {node:{type:_$1.htmlSelfClosing,tag:j,attrs:L5(H.attrs,j,G),a:H.sanitized?$$(H):$.slice(Q,H.end),b:false},end:H.end};var w=z6($,"</"+M,D),L=$.slice(H.end,w),R=[];if(v)L.trim()&&(R=[{type:_$1.text,text:L}]);else {var I=L.trim();if(I){var{inAnchor:x,inline:k,f:u}=Y;M==="a"&&(Y.inAnchor=true),Y.f=false;var E=I.indexOf(`
|
|
16592
|
-
|
|
16593
|
-
`)!==-1||/^#{1,6}\s/.test(
|
|
16594
|
-
`,Q++;Q<Z&&$.charCodeAt(Q)===
|
|
16595
|
-
`),
|
|
16596
|
-
`,
|
|
16597
|
-
`,
|
|
16598
|
-
`,
|
|
16599
|
-
`)||
|
|
16600
|
-
`),endPos:
|
|
17369
|
+
`;J=e($,O);for(var T=false,f=0;f<U.length;f++){var y=U.charCodeAt(f);if(y!==g&&y!==v5&&y!==I&&y!==w){T=true;break}}if(W&&!T)if(J<$.length){var C=G0($,J),E=u5($,J,C);if(!E||E.ordered!==V.ordered||E.marker!==V.marker)break;z=true;}else break;if(J<$.length){var S=G0($,J);L0($,J,S);var s=$.charCodeAt(J+Q0);if((s===p$1||s===P0||s===O0)&&U0<=3&&d5($,J))break;var X0=u5($,J,S);if(X0&&X0.ordered===V.ordered&&X0.marker===V.marker&&X0.markerCol<G){z=true;continue}if(!e0($,J,S)&&U0<G)break}continue}if(U0>=G){var I0=L4($,J,O,G);if(G9>0){for(var d="",u0=G,B0=0;B0<G9;B0++)d+=" ",u0++;for(var W0=I0;W0<O;W0++)if($.charCodeAt(W0)===w){for(var H0=4-u0%4,D0=0;D0<H0;D0++)d+=" ";u0+=H0;}else d+=$[W0],u0++;U+=`${d}
|
|
17370
|
+
`;}else U+=`${$.slice(I0,O)}
|
|
17371
|
+
`;J=e($,O);continue}for(var m=false,c=0;c<U.length;c++){var K0=U.charCodeAt(c);if(K0!==g&&K0!==v5&&K0!==I&&K0!==w){m=true;break}}if(!z&&m&&!W){var y0=J+Q0,S0=$.charCodeAt(y0),_0=S0===V5||S0===l$1||S0===Y0||S0===Z0||S0===b0||(S0===p$1||S0===P0||S0===O0||S0===y5)&&(d5($,J)!=null||u5($,J,O)!=null)||S0>=r$1&&S0<=o&&u5($,J,O)!=null;if(!_0){U+=`${$.slice(y0,O)}
|
|
17372
|
+
`,J=e($,O);continue}}break}if(K.push({contentCol:G,raw:U,hasBlankAfter:z,isEmpty:W}),K.length===0)return null;var a=H;if(!a)for(var w0=0;w0<K.length;w0++){if(K[w0].hasBlankAfter&&w0<K.length-1){a=true;break}if(!K[w0].isEmpty){for(var z0=K[w0].raw,F0=z0.length,M0=0,f0=false,v0=false,k0=false,h0=false,p0=0,n=0,N0=-1;M0<F0;){var i=z0.indexOf(`
|
|
17373
|
+
`,M0);if(i<0&&(i=F0),h0){L0(z0,M0,i);for(var x0=z0.slice(M0+Q0,i),R=0;R<x0.length&&x0.charCodeAt(R)===p0;)R++;R>=n&&x0.slice(R).trim()===""&&(h0=false),M0=i<F0?i+1:F0;continue}if(e0(z0,M0,i)){N0>=0?k0=true:f0&&(v0=true),M0=i<F0?i+1:F0;continue}if(L0(z0,M0,i),N0>=0){if(U0>=N0){M0=i<F0?i+1:F0;continue}var J0=u5(z0,M0,i);if(J0&&J0.markerCol<N0&&J0.contentCol<=N0){M0=i<F0?i+1:F0;continue}if(J0){M0=i<F0?i+1:F0;continue}N0=-1,k0&&(v0=true,k0=false);}var a0=z0.slice(M0+Q0,i),q5=a0.charCodeAt(0);if((q5===Z0||q5===b0)&&U0<=3){for(var $0=0;$0<a0.length&&a0.charCodeAt($0)===q5;)$0++;if($0>=3){if(v0&&f0){a=true;break}h0=true,p0=q5,n=$0,f0=true,M0=i<F0?i+1:F0;continue}}var C0=U0<=3?u5(z0,M0,i):null;if(C0&&f0){if(v0){a=true;break}N0=C0.contentCol,k0=false,M0=i<F0?i+1:F0,f0=true;continue}if(v0){a=true;break}f0=true,M0=i<F0?i+1:F0;}if(a)break}}for(var t=[],d0=0;d0<K.length;d0++){for(var n0=K[d0],$5=n0.raw,l0=$5.length;l0>0&&$5.charCodeAt(l0-1)===g;)l0--;var s0=l0<$5.length?$5.slice(0,l0):$5,r5=null;if(s0.length>=3&&s0.charCodeAt(0)===A0){var x5=s0[1];(x5===" "||x5==="x"||x5==="X")&&s0.charCodeAt(2)===J5&&(r5={type:B$2.gfmTask,completed:x5==="x"||x5==="X"},s0=s0.slice(3));}var R0;if(n0.isEmpty&&s0.trim()==="")R0=[];else if(a){var o5=Z.inList;Z.inList=true;var w9=Z.i;Z.i=w9||d0!==K.length-1,R0=c5(s0,Z,X),Z.i=w9,Z.inList=o5;}else {var b5=Z.inList;Z.inList=true;var i5=Z.i;if(Z.i=i5||d0!==K.length-1,R0=c5(s0,Z,X),Z.i=i5,Z.inList=b5,R0.length===1&&R0[0].type===B$2.paragraph)R0=R0[0].children;else if(Z.p){var E5=[];Z.p.push({src:R0,dest:E5,unwrap:true}),R0=E5;}else {for(var j5=[],Z5=0;Z5<R0.length;Z5++)if(R0[Z5].type===B$2.paragraph)for(var B5=R0[Z5].children,V9=0;V9<B5.length;V9++)j5.push(B5[V9]);else j5.push(R0[Z5]);R0=j5;}}if(r5){var a5=[r5,{type:B$2.text,text:" "}];if(Z.p)Z.p.push({src:R0,dest:a5,unwrap:false});else for(var A5=0;A5<R0.length;A5++)a5.push(R0[A5]);t.push(a5);}else t.push(R0);}return {node:{type:V.ordered?B$2.orderedList:B$2.unorderedList,start:V.ordered?V.start:void 0,items:t},end:J}}var l9=new Set(["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]);function P5($,Q,Z){let X={};for(let[K,J]of Object.entries($)){let G=K.toLowerCase();if(G==="style"&&typeof J=="string"){let U={},W=[],z=0,H=0;for(let M=0;M<J.length;M++){let j=J.charCodeAt(M);j===z5?z++:j===F5?z--:j===j9&&z===0&&(W.push(J.slice(H,M)),H=M+1);}H<J.length&&W.push(J.slice(H));let F=false;W.forEach(M=>{let j=M.indexOf(":");if(j===-1)return;let _=M.slice(0,j).trim(),q=M.slice(j+1).trim();if(_&&q){if(/url\s*\(\s*(javascript|vbscript|data:(?!image\/))/i.test(q)){F=true;return}let D=_.indexOf("-")===-1?_:_.replace(/-([a-z])/g,(A,N)=>N.toUpperCase());U[D]=q;}}),!F&&Object.keys(U).length>0&&(X[K]=U);}else if((G==="href"||G==="src")&&Z?.sanitizer){let U=Z.sanitizer(J,Q,G);U!=null&&(X[K]=U);}else if(J==="")X[K]=true;else if(J.length>=2&&J.charCodeAt(0)===S5&&J.charCodeAt(J.length-1)===E9){var Y=J.slice(1,-1);if(Y.length>0){var V=Y.charCodeAt(0);if(V===A0||V===S5)try{X[K]=JSON.parse(Y);continue}catch{}}if(Y==="true"){X[K]=true;continue}if(Y==="false"){X[K]=false;continue}if(Z?.evalUnserializableExpressions)try{X[K]=(0,eval)(`(${Y})`);continue}catch{}X[K]=Y;}else X[K]=J;}return X}function p5($,Q,Z){let X=Q.length;if(X===0)return Z;var Y=Q.charCodeAt(0),V=Y>=h$1&&Y<=u$1||Y>=V0&&Y<=q0;if(!V){for(var K=String.fromCharCode(Y),J=$.length-X,G=Z;G<=J;){var U=$.indexOf(K,G);if(U===-1||U>J)return -1;for(var W=true,z=1;z<X;z++){var H=$.charCodeAt(U+z),F=Q.charCodeAt(z);if(H>=h$1&&H<=u$1&&(H+=U5),F>=h$1&&F<=u$1&&(F+=U5),H!==F){W=false;break}}if(W)return U;G=U+1;}return -1}Y>=h$1&&Y<=u$1&&(Y+=U5);for(let j=Z;j<=$.length-X;j++){var M=$.charCodeAt(j);if(M>=h$1&&M<=u$1&&(M+=U5),M!==Y)continue;let _=true;for(let q=1;q<X;q++){let D=$.charCodeAt(j+q),A=Q.charCodeAt(q);if(D>=h$1&&D<=u$1&&(D+=U5),A>=h$1&&A<=u$1&&(A+=U5),D!==A){_=false;break}}if(_)return j}return -1}function o6($,Q,Z){let X=Q.length;var Y=Q.charCodeAt(0);Y>=h$1&&Y<=u$1&&(Y+=U5);for(let K=Math.min(Z,$.length-X);K>=0;K--){var V=$.charCodeAt(K);if(V>=h$1&&V<=u$1&&(V+=U5),V!==Y)continue;let J=true;for(let G=1;G<X;G++){let U=$.charCodeAt(K+G),W=Q.charCodeAt(G);if(U>=h$1&&U<=u$1&&(U+=U5),W>=h$1&&W<=u$1&&(W+=U5),U!==W){J=false;break}}if(J)return K}return -1}var r9=-1;function _$($,Q,Z){let X=Z.toLowerCase(),Y=`<${X}`,V=`</${X}`,K=1,J=Q,G=$.length;for(r9=-1;J<G&&K>0;){let z=p5($,Y,J),H=p5($,V,J);if(H===-1)return -1;if(z!==-1&&z<H){let F=w5($,z);F?(F.tag.toLowerCase()===X&&!F.f&&!F.n&&!Q9(F.tag)&&K++,J=F.end):J=z+1;}else {var U=H+V.length,W=U<G?$.charCodeAt(U):62;if((W===l$1||W===I||W===w||W===g)&&(K--,K===0)){r9=H;let F=H+V.length;for(;F<G&&$.charCodeAt(F)!==l$1;)F++;return F+1}J=H+1;}}return -1}function o4($,Q,Z,X){if(X.ignoreHTMLBlocks||X.disableParsingRawHTML)return null;var Y=G0($,Q);if(L0($,Q,Y),U0>3&&!Z.inHTML)return null;var V=Q+Q0;if($.charCodeAt(V)!==Y0)return null;var K=$.indexOf(">",V+1);if(K!==-1&&K<Y){var J=$.slice(V+1,K);if(/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(J)||/^[^\s@]+@[^\s@]+$/.test(J))return null}var G=i6($,V);if(G>=1&&G<=5){var U=$.length;if(G===1){for(var W=$.length,z=0;z<D$.length;z++){var H=p5($,`</${D$[z]}>`,V);H>=0&&H<W&&(W=H);}if(W<$.length){var F=$.indexOf(">",W);U=F>=0?e($,F+1):$.length;}}else {var M=G===2?"-->":G===3?"?>":G===4?">":"]]>",j=$.indexOf(M,V);j>=0&&(U=e($,j+M.length));}var _=$.slice(V,U);if(G>=2)return {node:{type:B$2.htmlComment,text:_,s:false,raw:true},end:U};var q="div",D=_.match(/^<\/?([a-zA-Z][a-zA-Z0-9-]*)/);D&&(q=D[1]);var A=w5($,V),N={},L;A&&!A.f&&(N=P5(A.attrs,q,X),L=A.g+A.b);var O=[],P=q.toLowerCase(),v=`</${P}`,b=p5(_,v,0),k="",x,T,f;if(A?.f){f=_.slice(0,A.end-V);for(var y=_.slice(A.end-V);y.length>0&&y.charCodeAt(y.length-1)===g;)y=y.slice(0,-1);y&&(T=G5(y));}else if(A&&!A.f){var C=A.end-V;if(b===-1){for(var E=_;E.length>0&&E.charCodeAt(E.length-1)===g;)E=E.slice(0,-1);x=G5(E);}else {var S=C;_.charCodeAt(S)===g&&S++;for(var s=b;s>S;){var X0=_.charCodeAt(s-1);if(X0!==I&&X0!==w&&X0!==g&&X0!==v5)break;s--;}var I0=_.slice(S,s);I0&&(T=G5(I0));for(var d=_.slice(b);d.length>0&&d.charCodeAt(d.length-1)===g;)d=d.slice(0,-1);f=G5(d),k=_.slice(C,b).trim();}}var u0=A?A.f:false;return {node:{type:B$2.htmlBlock,tag:q,attrs:N,b:L,children:O,e:T,h:f,j:x,text:k,c:true,a:u0},end:U}}if(G===6||G===7){var B0=N4($,Q),W0=B0<$.length?B0:$.length,H0=$.slice(V,W0),D0=B0<$.length?e($,B0):$.length,m=w5($,V);if(m){var c=m.tag,K0=c.toLowerCase(),y0=m.f;if(y0){var S0=$.slice(m.end,W0);return {node:{type:B$2.htmlBlock,tag:c,attrs:{},children:[],h:$.slice(V,m.end),e:S0?G5(S0):void 0,text:S0,c:true,a:true},end:D0}}if(m.n||Q9(c))return {node:{type:B$2.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:[],text:"",c:false,a:false},end:m.end<$.length&&$.charCodeAt(m.end)===g?m.end+1:m.end};var _0=Z.d||0,a=$.slice(V,W0),w0=-1,z0=-1,F0=false;if(_0<10){for(var M0=`</${K0}`,f0=m.end-V,v0=1,k0=f0;k0<a.length&&v0>0;){var h0=p5(a,`<${K0}`,k0),p0=p5(a,M0,k0);if(p0===-1)break;if(h0!==-1&&h0<p0){var n=h0+K0.length+1;if(n<a.length){var N0=a.charCodeAt(n);(N0===I||N0===w||N0===g||N0===l$1||N0===j0)&&v0++;}k0=h0+1;}else {var i=p0+M0.length;if(i<a.length){var x0=a.charCodeAt(i);if((x0===l$1||x0===I||x0===w||x0===g)&&(v0--,v0===0)){w0=p0;for(var R=i;R<a.length&&a.charCodeAt(R)!==l$1;)R++;z0=R+1;break}}else if(v0--,v0===0){w0=p0,z0=a.length;break}k0=p0+1;}}if(w0===-1&&!m.f&&(G===6||m.u)){var J0=_$($,m.end,K0);if(J0!==-1){for(var a0=r9,q5=m.end,$0=false,C0=false,t=false,d0=0,n0=false,$5=false,l0=q5;l0<a0;){var s0=$.charCodeAt(l0);if(s0===g)$5&&($0=true),n0||d0++,$5=true,l0++;else if(s0===I||s0===w)l0++;else {if(!n0&&(n0=true,d0>=2&&s0===Y0)){t=true;break}if($5=false,s0===Y0){var r5=$.charCodeAt(l0+1)|32;if((r5===x9||r5===Y$||r5===s5)&&(j4.lastIndex=l0,j4.test($))){C0=true;break}}l0++;}}if($0&&!t&&!C0){var x5=G0($,J0);W0=x5,D0=e($,x5),a=$.slice(V,W0),H0=$.slice(V,W0),w0=a0-V,z0=J0-V,F0=true;}}}}var R0=m.b.indexOf(`
|
|
17374
|
+
`)!==-1||m.g.indexOf(`
|
|
17375
|
+
`)!==-1,o5=false;if(w0!==-1){var w9=a.slice(z0).trim();o5=w9.length===0;}var b5=false,i5=W0,E5=D0;if(w0!==-1){var j5=V+z0,Z5=G0($,j5-1);if(j5<Z5){for(var B5=j5;B5<Z5&&($.charCodeAt(B5)===I||$.charCodeAt(B5)===w);)B5++;if(B5<Z5&&$.charCodeAt(B5)===Y0){var V9=w5($,B5);V9&&!V9.f&&(b5=true,i5=j5,E5=j5,o5=true);}}if(!b5){var a5=e($,Z5);if(a5<W0){for(var A5=a5;A5<W0&&($.charCodeAt(A5)===I||$.charCodeAt(A5)===w);)A5++;if(A5<W0&&$.charCodeAt(A5)===Y0){var s4=w5($,A5);s4&&(b5=true,i5=Z5,E5=a5,o5=true);}}}if(!b5&&Z.inHTML){b5=true,i5=Z5,E5=e($,Z5);var t4=$.slice(j5,Z5).trim();o5=t4.length===0;}}var K9=[],Y5="";if(w0!==-1){Y5=a.slice(m.end-V,w0);var J9=Y5.trim();if(J9){var{inline:e4,inHTML:$6,d:Z6}=Z;Z.inHTML=true,Z.d=_0+1;var Q6=K0==="p";if(Q6)Z.inline=true,K9=W9(J9,false,Z,X);else {var S$=Y5.indexOf(`
|
|
17376
|
+
|
|
17377
|
+
`)!==-1,k$=F$.test(J9),a9=B4.test(J9),X6=S$||k$||Z.inHTML&&a9,Y6=Y5.length>=2&&Y5.charCodeAt(0)===g&&Y5.charCodeAt(Y5.length-1)===g&&!S$;Y6&&!k$&&!a9?K9=[{type:B$2.text,text:J9}]:X6||a9?(Z.inline=false,K9=c5(Y5,Z,X)):(Z.inline=true,K9=W9(J9,false,Z,X));}Z.inline=e4,Z.inHTML=$6,Z.d=Z6;}}var x$=false;if(G===6&&w0!==-1&&!Z.inHTML&&!R0){var V6=/<[a-zA-Z][^>]*>/.test(Y5),K6=Y5.indexOf(`
|
|
17378
|
+
|
|
17379
|
+
`)!==-1||F$.test(Y5);V6&&!K6&&(x$=true);}var J6=!F0&&(Z.inHTML||G===7||R0||!o5||x$);if(J6){var z9,_5,E$=false;if(w0!==-1&&b5){var g$=false;if(Z.inHTML&&z0<a.length){for(var R9=z0;R9<a.length&&a.charCodeAt(R9)!==g;)R9++;var n9=a.slice(z0,R9).trim();g$=n9.length>1&&n9.charCodeAt(0)===Y0&&n9.charCodeAt(1)!==j0;}_5=g$?a.slice(m.end-V):Y5,E$=true;}else (G===7||Z.inHTML)&&w0!==-1?(_5=a.slice(m.end-V),_5.charCodeAt(0)===g&&(_5=_5.slice(1))):b5?z9=$.slice(V,i5):R0?z9=H0:(_5=a.slice(m.end-V),_5.charCodeAt(0)===g&&(_5=_5.slice(1)));var C$=z9!==void 0,s9=G5(z9===void 0?_5||"":z9),f$={type:B$2.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:K9,e:C$?void 0:s9,j:C$?s9:void 0,text:s9,c:true,a:false};return E$&&(f$.x=true),{node:f$,end:E5}}var h$=G5(Y5);return {node:{type:B$2.htmlBlock,tag:c,attrs:P5(m.attrs,c,X),b:m.g+m.b,children:K9,e:F0?void 0:h$,text:h$,c:false,a:false},end:E5}}var b9=H0.match(/^<(\/?)([a-zA-Z][a-zA-Z0-9-]*)/),U6=b9?b9[2]:"div",t9=b9?b9[1]==="/":false,e9,m$,u$,L9="";if(t9){var $$=H0.indexOf(">");$$===-1?e9=H0:(e9=H0.slice(0,$$+1),L9=H0.slice($$+1),L9&&(m$=G5(L9)));}else u$=G5(H0);return {node:{type:B$2.htmlBlock,tag:U6,attrs:{},children:[],e:m$,h:e9,j:u$,text:t9?L9:H0,c:true,a:t9},end:D0}}var r0=w5($,V);if(!r0)return null;var g5=r0.tag,Z$=g5.toLowerCase(),p$=g5.charCodeAt(0),T9=p$>=h$1&&p$<=u$1;if(!(T9||l9.has(Z$)||N9.has(Z$)||Z$.includes("-")))return null;if(r0.f)return {node:{type:B$2.htmlSelfClosing,tag:g5,attrs:{},h:$.slice(V,r0.end),a:true},end:r0.end};var n5=_$($,r0.end,g5),F9=[];if(n5!==-1){var G6=r9,y9=$.slice(r0.end,G6),S9=y9.trim();if(S9){var q6=y9.indexOf(`
|
|
17380
|
+
|
|
17381
|
+
`)!==-1,W6=F$.test(S9),z6=B4.test(S9),F6=Z.inline,H6=Z.inHTML,M6=Z.d;Z.inHTML=true,Z.d=(Z.d||0)+1,q6||W6||z6?(Z.inline=false,F9=c5(y9,Z,X)):(Z.inline=true,F9=W9(S9,false,Z,X)),Z.inline=F6,Z.inHTML=H6,Z.d=M6;}var O6=G0($,n5),D6=$.slice(n5,O6).trim(),Q$=D6?n5:e($,n5),d$=T9?$.slice(V,n5):$.slice(V,Q$);return {node:{type:B$2.htmlBlock,tag:g5,attrs:P5(r0.attrs,g5,X),b:r0.g+r0.b,children:F9,j:G5(d$),text:T9?y9:d$,c:true,a:false},end:Q$}}var H9=N4($,r0.end),A6=H9<$.length?e($,H9):H9,X$=$.slice(r0.end,H9);if(X$.trim()){var{inline:j6,inHTML:B6,d:_6}=Z;Z.inline=false,Z.inHTML=true,Z.d=(Z.d||0)+1,F9=c5(X$,Z,X),Z.inline=j6,Z.inHTML=B6,Z.d=_6;}var v6=$.slice(r0.end,H9);return {node:{type:B$2.htmlBlock,tag:g5,attrs:P5(r0.attrs,g5,X),b:r0.g+r0.b,children:F9,e:G5(v6),text:X$,c:true,a:false},end:A6}}function i6($,Q){if($.charCodeAt(Q)!==Y0)return 0;var Z=Q+1,X=$.length;if($.charCodeAt(Z)===c0&&$.charCodeAt(Z+1)===p$1&&$.charCodeAt(Z+2)===p$1)return 2;if($.charCodeAt(Z)===t5)return 3;if($.charCodeAt(Z)===c0){var Y=$.charCodeAt(Z+1);if(Y>=h$1&&Y<=u$1)return 4;if($.slice(Z+1,Z+8)==="[CDATA[")return 5}for(var V=$.charCodeAt(Z)===j0,K=V?Z+1:Z,J=K;J<X;){var G=$.charCodeAt(J);if(G>=h$1&&G<=u$1||G>=V0&&G<=q0||G>=r$1&&G<=o||G===p$1)J++;else break}if(J===K)return 0;var U=$.slice(K,J);if(N9.has(U.toLowerCase())){if(V)return 0;var W=$.charCodeAt(J);return W===I||W===w||W===l$1||W===g||J>=X?1:0}if(l9.has(U.toLowerCase())){if(V){for(var z=J;z<X&&($.charCodeAt(z)===I||$.charCodeAt(z)===w);)z++;return z<X&&$.charCodeAt(z)===l$1?6:0}var H=J<X?$.charCodeAt(J):-1;return H===I||H===w||H===l$1||H===g||H===j0||H===-1?6:0}if(V){for(var F=J;F<X&&($.charCodeAt(F)===I||$.charCodeAt(F)===w);)F++;if(F<X&&$.charCodeAt(F)===l$1){var M=G0($,Q),j=$.slice(F+1,M).trim();if(j==="")return 7}}else {var _=G0($,Q),q=w5($,Q);if(q&&q.end<=_){var D=$.slice(q.end,_).trim();if(D==="")return 7}}return 0}function y4($,Q,Z){for(var X=0,Y=$.length;X<Y&&($.charCodeAt(X)===I||$.charCodeAt(X)===w);)X++;for(;Y>X&&($.charCodeAt(Y-1)===I||$.charCodeAt(Y-1)===w);)Y--;X<Y&&$.charCodeAt(X)===E0&&X++,Y>X&&$.charCodeAt(Y-1)===E0&&(Y-2<X||$.charCodeAt(Y-2)!==T0)&&Y--;for(var V=[],K=X,J=false,G=[],U=X;U<Y;){var W=$.charCodeAt(U);if(W===T0&&U+1<Y){$.charCodeAt(U+1)===E0?(J||(J=true,G=[]),G.push($.slice(K,U)),G.push("|"),U+=2,K=U):U+=2;continue}if(W===Z0){for(var z=0;U<Y&&$.charCodeAt(U)===Z0;)z++,U++;for(var H=false;U<Y&&!H;){for(var F=0;U<Y&&$.charCodeAt(U)===Z0;)F++,U++;F===z?H=true:F===0&&U++;}continue}if(W===E0){var M=J?(G.push($.slice(K,U)),G.join("")):$.slice(K,U);V.push(M.trim()),U++,K=U,J=false,G=[];continue}U++;}var j=J?(G.push($.slice(K,Y)),G.join("")):$.slice(K,Y);return V.push(j.trim()),V.map(_=>{var q=_.indexOf("\\|")===-1?_:_.replace(/\\\|/g,"|");return q?W9(q,false,Q,Z):[]})}function S4($,Q,Z,X){let Y=G0($,Q);var V=$.indexOf("|",Q);if(V<0||V>=Y)return null;let K=e($,Y);if(K>=$.length)return null;let J=G0($,K);if(!c4($,K,J))return null;let G=$.slice(Q,Y),U=$.slice(K,J);for(var W=[],z=0,H=U.length;z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;for(z<H&&U.charCodeAt(z)===E0&&z++;z<H;){for(;z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;if(z>=H||U.charCodeAt(z)===E0)break;var F=U.charCodeAt(z)===m0;for(F&&z++;z<H&&U.charCodeAt(z)===p$1;)z++;var M=z<H&&U.charCodeAt(z)===m0;for(M&&z++,W.push(F&&M?"center":M?"right":F?"left":null);z<H&&(U.charCodeAt(z)===I||U.charCodeAt(z)===w);)z++;z<H&&U.charCodeAt(z)===E0&&z++;}let j=y4(G,Z,X);if(W.length!==j.length)return null;let _=[],q=e($,J);for(;q<$.length;){let P=G0($,q),v=$.slice(q,P);if(e0($,q,P))break;if(L0($,q,P),U0<4){var D=$.charCodeAt(q+Q0);if(D===l$1||D===V5||(D===p$1||D===P0||D===O0)&&d5($,q))break;if(D===Z0||D===b0){for(var A=q+Q0,N=0;A<P&&$.charCodeAt(A)===D;)N++,A++;if(N>=3)break}}_.push(y4(v,Z,X)),q=e($,P);}if(X.optimizeForStreaming&&_.length===0)return null;for(var L=j.length,O=0;O<_.length;O++)if(_[O].length<L)for(;_[O].length<L;)_[O].push([]);else _[O].length>L&&(_[O].length=L);return {node:{type:B$2.table,header:j,cells:_,align:W},end:q}}function a6($,Q,Z){var X=G0($,Q);if(L0($,Q,X),U0>3)return null;var Y=Q+Q0;if($.charCodeAt(Y)!==A0)return null;if(Y+1<$.length&&$.charCodeAt(Y+1)===W5){var V=n6($,Y,Z);return V||null}Z.refs||(Z.refs={});var K=l4($,Y,Z.refs);return K===null?null:{node:{type:B$2.refCollection},end:K}}function n6($,Q,Z){var X=$.length;if($.charCodeAt(Q)!==A0||Q+1>=X||$.charCodeAt(Q+1)!==W5)return null;for(var Y=Q+2,V=Y;Y<X&&$.charCodeAt(Y)!==J5;){if($.charCodeAt(Y)===g)return null;Y++;}if(Y>=X)return null;var K=`^${$.slice(V,Y)}`.toLowerCase();if(Y++,Y>=X||$.charCodeAt(Y)!==m0)return null;for(Y++;Y<X&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;if(Y<X&&$.charCodeAt(Y)===g)for(Y++;Y<X&&($.charCodeAt(Y)===I||$.charCodeAt(Y)===w);)Y++;var J=$.indexOf(`
|
|
17382
|
+
`,Y);J<0&&(J=X);for(var G=$.slice(Y,J).trim(),U=J<X?J+1:X;U<X;){var W=G0($,U);if(L0($,U,W),U0>=2&&!e0($,U,W))G+=`
|
|
17383
|
+
${$.slice(U,W)}`,U=e($,W);else if(e0($,U,W)){var z=e($,W);if(z<X){var H=G0($,z);if(L0($,z,H),U0>=2){G+=`
|
|
17384
|
+
`,U=e($,W);continue}}break}else break}var F=Z.refs;return F&&!F[K]&&(F[K]={target:G,title:void 0}),{node:{type:B$2.footnote},end:U}}function s6($,Q,Z,X){let Y=Q,V=0,K=0,J=-1;for(;Y<$.length;){let f=J>=0?J:G0($,Y);if(J=-1,e0($,Y,f))break;if(L0($,Y,f),U0<4&&K>0&&!Z.l){let C=$.charCodeAt(Y+Q0);if(C===K5||C===p$1){let E=Y+Q0;for(;E<f&&$.charCodeAt(E)===C;)E++;for(;E<f&&($.charCodeAt(E)===I||$.charCodeAt(E)===w);)E++;if(E>=f){V=C===K5?1:2,Y=e($,f);break}}}K=f;let y=e($,f);if(y<$.length){if($.charCodeAt(y)===g9){var G=G0($,y);Y=e($,G),K=G;continue}let C=G0($,y);if(J=C,L0($,y,C),U0<4){let E=$.charCodeAt(y+Q0);if(E===l$1){Y=y;break}if(E===V5){for(var U=y+Q0,W=0;U<C&&$.charCodeAt(U)===V5&&W<=6;)W++,U++;if(W>=1&&W<=6&&(U>=C||$.charCodeAt(U)===I||$.charCodeAt(U)===w)){Y=y;break}}if(E===Z0||E===b0){for(var z=y+Q0,H=0;z<C&&$.charCodeAt(z)===E;)H++,z++;if(H>=3){Y=y;break}}if(E===Y0){var F=y+Q0+1,M=F<C?$.charCodeAt(F):0,j=M===c0||M===t5;if(!j&&M===j0){for(var _=F+1,q=_;q<C&&($.charCodeAt(q)>=h$1&&$.charCodeAt(q)<=u$1||$.charCodeAt(q)>=V0&&$.charCodeAt(q)<=q0||$.charCodeAt(q)>=r$1&&$.charCodeAt(q)<=o||$.charCodeAt(q)===p$1);)q++;q>_&&(j=l9.has($.slice(_,q).toLowerCase()));}else if(!j){for(var D=F;D<C&&($.charCodeAt(D)>=h$1&&$.charCodeAt(D)<=u$1||$.charCodeAt(D)>=V0&&$.charCodeAt(D)<=q0||$.charCodeAt(D)>=r$1&&$.charCodeAt(D)<=o||$.charCodeAt(D)===p$1);)D++;if(D>F){var A=$.slice(F,D).toLowerCase();j=l9.has(A)||N9.has(A);}}if(j&&o4($,y,Z,X)){Y=y;break}}if(E===p$1||E===P0||E===y5){let S=y+Q0+1;if(S<C&&($.charCodeAt(S)===I||$.charCodeAt(S)===w)){var N=v9($,S,C);if(N<C&&!d5($,y)){Y=y;break}}}if(E>=r$1&&E<=o){let S=y+Q0;for(;S<C&&$.charCodeAt(S)>=r$1&&$.charCodeAt(S)<=o;)S++;if(S<C&&($.charCodeAt(S)===Q5||$.charCodeAt(S)===F5)&&S-(y+Q0)===1&&$.charCodeAt(y+Q0)===49){var L=S+1;if(L<C&&($.charCodeAt(L)===I||$.charCodeAt(L)===w)){var O=v9($,L,C);if(O<C){Y=y;break}}}}if(E===E0){let S=e($,C);if(S<$.length){let s=G0($,S);if(c4($,S,s)){Y=y;break}}}if((E===p$1||E===P0||E===O0)&&d5($,y)){if(E!==p$1){Y=y;break}let s=y+Q0;for(;s<C&&$.charCodeAt(s)===p$1;)s++;for(;s<C&&($.charCodeAt(s)===I||$.charCodeAt(s)===w);)s++;if(s<C){Y=y;break}}}}Y=e($,f);}for(var P=V?K:Y;P>Q&&($.charCodeAt(P-1)===g||$.charCodeAt(P-1)===v5||$.charCodeAt(P-1)===I||$.charCodeAt(P-1)===w);)P--;for(var v=Q;v<P&&($.charCodeAt(v)===I||$.charCodeAt(v)===w);)v++;if(v>=P)return null;for(var b=false,k=v;k<P;k++)if($.charCodeAt(k)===g9){b=true;break}var x=b?$.slice(v,P).replace(/\u001E/g,""):$.slice(v,P);if(!x)return null;let T=W9(x,true,Z,X);return V?{node:{type:B$2.heading,level:V,children:T,id:""},end:Y}:{node:{type:B$2.paragraph,children:T},end:Y}}function W9($,Q,Z,X){var Y=Z.t;if(!Y){var V=Z.k;Z.k=Q;var K=R5($,0,$.length,Z,X);return Z.k=V,K}var J=[];return Y.push({dest:J,text:$,breaks:Q,inline:Z.inline,inAnchor:Z.inAnchor,inHTML:Z.inHTML,htmlDepth:Z.d,inList:Z.inList,inBlockQuote:Z.inBlockQuote,noSetext:Z.l,depth:Z.o}),J}function t6($,Q,Z){if($.charCodeAt(Q)!==Z0)return null;let X=l5($,Q,Z,96),Y=Q+X;for(;Y<Z;){let V=$.indexOf("`",Y);if(V<0||V>=Z)return null;let K=l5($,V,Z,96);if(K===X){let J=$.slice(Q+X,V);return J.indexOf(`
|
|
17385
|
+
`)!==-1&&(J=J.replace(/\n/g," ")),J.length>0&&J[0]===" "&&J.at(-1)===" "&&J.trim().length>0&&(J=J.slice(1,-1)),{node:{type:B$2.codeInline,text:J},end:V+K}}Y=V+K;}return null}function b$($,Q,Z){if($.charCodeAt(Q)!==Z0)return Q;let X=l5($,Q,Z,96),Y=Q+X;for(;Y<Z;){let V=$.indexOf("`",Y);if(V<0||V>=Z)return Q;let K=l5($,V,Z,96);if(K===X)return V+K;Y=V+K;}return Q}function e6($,Q,Z){if($.charCodeAt(Q)!==Y0)return Q;if(Q+1<Z&&$.charCodeAt(Q+1)===j0){let U=Q+2;for(;U<Z&&$.charCodeAt(U)!==l$1;)U++;return U<Z?U+1:Q}if(Q+3<Z&&$.charCodeAt(Q+1)===c0&&$.charCodeAt(Q+2)===p$1&&$.charCodeAt(Q+3)===p$1){let U=$.indexOf("-->",Q+4);return U>=0?U+3:Q}let X=Q+1,Y=X;for(;X<Z;){let U=$.charCodeAt(X);if(U>=h$1&&U<=u$1||U>=V0&&U<=q0||U>=r$1&&U<=o||U===p$1)X++;else break}if(X===Y)return Q;let V=$.slice(Y,X).toLowerCase(),K=false;for(;X<Z;){let U=$.charCodeAt(X);if(U===l$1){X++;break}if(U===j0&&X+1<Z&&$.charCodeAt(X+1)===l$1){X+=2,K=true;break}if(U===T5||U===f5){var J=U;for(X++;X<Z&&$.charCodeAt(X)!==J;)X++;X<Z&&X++;continue}if(U===g)return Q;X++;}if(K||Q9(V))return X;let G=1;for(;X<Z&&G>0;)if($.charCodeAt(X)===Y0)if(X+1<Z&&$.charCodeAt(X+1)===j0){let U=X+2,W=U;for(;W<Z&&($.charCodeAt(W)>=h$1&&$.charCodeAt(W)<=u$1||$.charCodeAt(W)>=V0&&$.charCodeAt(W)<=q0);)W++;if($.slice(U,W).toLowerCase()===V){for(;W<Z&&$.charCodeAt(W)!==l$1;)W++;if(W<Z&&W++,G--,G===0)return W}X=W;}else {let U=X+1,W=U;for(;W<Z&&($.charCodeAt(W)>=h$1&&$.charCodeAt(W)<=u$1||$.charCodeAt(W)>=V0&&$.charCodeAt(W)<=q0);)W++;$.slice(U,W).toLowerCase()===V&&G++,X++;}else X++;return X}function $Z($,Q,Z,X,Y){if($.charCodeAt(Q)!==b0||Q+1>=Z||$.charCodeAt(Q+1)!==b0)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===Z0){let J=b$($,V,Z);if(J>V){V=J;continue}}if(K===b0&&$.charCodeAt(V+1)===b0){let J=$.slice(Q+2,V),G=R5(J,0,J.length,X,Y);return {node:{type:B$2.textFormatted,tag:"del",children:G},end:V+2}}K===T0&&V+1<Z&&V++,V++;}return null}function ZZ($,Q,Z,X,Y){if($.charCodeAt(Q)!==K5||Q+1>=Z||$.charCodeAt(Q+1)!==K5)return null;let V=Q+2;for(;V+1<Z;){let K=$.charCodeAt(V);if(K===Z0){let J=b$($,V,Z);if(J>V){V=J;continue}}if(K===K5&&$.charCodeAt(V+1)===K5&&V>Q+2){let J=$.slice(Q+2,V),G=R5(J,0,J.length,X,Y);return {node:{type:B$2.textFormatted,tag:"mark",children:G},end:V+2}}K===T0&&V+1<Z&&V++,V++;}return null}function k4($,Q,Z){return $<U9?!!(R$($)&$9):K4.test(Q[Z])}function x4($,Q,Z){return $<U9?!!(R$($)&h5):J4.test(Q[Z])}function QZ($,Q,Z){var X=$.charCodeAt(Q);if(X!==P0&&X!==O0)return null;var Y=l5($,Q,Z,X);if(Y===0)return null;var V=Q>0?$.charCodeAt(Q-1):32,K=Q+Y<Z?$.charCodeAt(Q+Y):32,J=x4(V,$,Q-1),G=x4(K,$,Q+Y),U=Q>0?k4(V,$,Q-1):false,W=Q+Y<Z?k4(K,$,Q+Y):false,z=!G&&(!W||J||U),H=!J&&(!U||G||W),F,M;return X===P0?(F=z,M=H):(F=z&&(!H||U),M=H&&(!z||W)),{len:Y,canOpen:F,canClose:M}}function XZ($,Q,Z,X){if(Q.length!==0){for(var Y=$.length,V=Array(Y),K=null,J=null,G=0;G<Y;G++){var U={node:$[G],prev:J,next:null};J?J.next=U:K=U,V[G]=U,J=U;}for(var W=Array(Q.length),z=0;z<Q.length;z++)W[z]=V[Q[z].idx];for(var H=[],F=0;F<12;F++)H[F]=-1;for(var M=0;M<Q.length;){var j=Q[M];if(!(j.active&&j.canClose)){M++;continue}for(var _=j.ch===P0?0:1,q=_*6+j.len%3*2+(j.canOpen?1:0),D=H[q]===void 0?-1:H[q],A=-1,N=M-1;N>D;N--){var L=Q[N];if(!(!L.active||L.ch!==j.ch||!L.canOpen)&&!((j.canOpen||L.canClose)&&(L.len+j.len)%3===0&&L.len%3!==0)){A=N;break}}if(A<0){H[q]=M-1,!j.canOpen&&(j.active=false),M++;continue}var O=Q[A],P=O.len>=2&&j.len>=2,v=P?2:1;O.len-=v,j.len-=v;var b=W[A],k=W[M],x=b.node,T=k.node;x.text=x.text.slice(0,x.text.length-v),T.text=T.text.slice(v);for(var f=[],y=b.next;y&&y!==k;)f.push(y.node),y=y.next;var C={type:B$2.textFormatted,tag:P?"strong":"em",children:f},E={node:C,prev:b,next:k};b.next=E,k.prev=E;for(var S=A+1;S<M;S++)Q[S].active=false;if(O.len===0&&(O.active=false,x.text==="")){var s=b.prev;E.prev=s,s?s.next=E:K=E;}if(j.len===0){if(j.active=false,T.text===""){var X0=k.next;E.next=X0,X0&&(X0.prev=E);}}else continue;M++;}for(var I0=0,d=K;d;){var u0=d.node;if(u0.type===B$2.text){var B0=u0;if(B0.text===""){d=d.next;continue}if(I0>0&&$[I0-1].type===B$2.text){$[I0-1].text+=B0.text,d=d.next;continue}}$[I0++]=u0,d=d.next;}$.length=I0;}}function m9($,Q,Z,X){return Q($,Z,X)===null?null:$}var E4=0,v$=0,g4=0,I$=0,C4=0,N$=0,H$=0,O5=0;function YZ(){return H$===2147483647&&(v$=0,I$=0,N$=0,c9=0,H$=0),++H$}var M$=null,c9=0,u9=[],O$=256;function f4($,Q,Z,X,Y){let V=$.charCodeAt(Q)===c0,K=V?Q+1:Q;if($.charCodeAt(K)!==A0||I$===O5&&K>=g4)return null;var J=c9===O5?M$:null,G=J===null?0:J[K];if(G<0)return null;var U=G;if(G===0){var W=$.indexOf("]",K+1);if(W<0||W>=Z)return g4=K,I$=O5,null;U=K+1;var z=0;u9[z++]=K;for(var H=Z-K>=O$;U<Z&&z>0;){var F=$.charCodeAt(U);if(F===T0&&U+1<Z){U+=2;continue}if(F===Z0){var M=b$($,U,Z);if(M>U){U=M;continue}}if(F===Y0){var j=i4($,U,Z);if(j){U=j.end;continue}var _=e6($,U,Z);if(_>U){U=_;continue}}if(F===A0)u9[z++]=U;else if(F===J5){var q=u9[--z];J===null&&H&&U-K>=O$&&(J=M$=new Int32Array(Z),c9=O5),J!==null&&(J[q]=U+1);}U++;}if(z>0){if(J===null&&H&&U-K>=O$&&(J=M$=new Int32Array(Z),c9=O5),J!==null)for(;z>0;)J[u9[--z]]=-1;return null}}var D=U-1,A=$.slice(K+1,D),N=U<Z?$.charCodeAt(U):0,L=false;if(N===z5){var O=true;for(U++;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;var P="",v=U;if(U<Z&&$.charCodeAt(U)===Y0){for(U++,v=U;v<Z&&$.charCodeAt(v)!==l$1;){if($.charCodeAt(v)===T0&&v+1<Z){v+=2;continue}if($.charCodeAt(v)===g){O=false;break}v++;}O&&(v>=Z||$.charCodeAt(v)!==l$1)&&(O=false),O&&(P=$.slice(U,v),v++);}else if(O){var b=v$===O5?E4:-1;if(b>=0&&U>=b)O=false;else {for(var k=0,x=false;v<Z;){var T=$.charCodeAt(v);if(T===T0&&v+1<Z){v+=2;continue}if(T===z5)k++;else if(T===F5){if(x=true,k===0)break;k--;}else if(T===I||T===g)break;v++;}v>=Z&&!x&&(b<0||U<b)&&(E4=U,v$=O5),P=$.slice(U,v);}}if(O){for(U=v;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;var f;if(U<Z){var y=$.charCodeAt(U);if(y===T5||y===f5||y===z5){var C=y===z5?41:y;U++;for(var E=U;U<Z&&$.charCodeAt(U)!==C;)$.charCodeAt(U)===T0&&U+1<Z&&U++,U++;U>=Z?O=false:(f=$.slice(E,U),U++);}}if(O){for(;U<Z&&($.charCodeAt(U)===I||$.charCodeAt(U)===g);)U++;(U>=Z||$.charCodeAt(U)!==F5)&&(O=false);}}if(O){if(U++,P=I5(q9(P)),f!==void 0&&(f=I5(q9(f))),V){var S=R5(A,0,A.length,X,Y),s=o9(S);return {node:{type:B$2.image,target:m9(P,Y?.sanitizer||H5,"img","src"),alt:s,title:f},end:U}}var X0=X.inAnchor;X.inAnchor=true;var m=X0?[{type:B$2.text,text:A}]:R5(A,0,A.length,X,Y);return X.inAnchor=X0,!X.inAnchor&&P$(m)?null:{node:{type:B$2.link,target:m9(P,Y?.sanitizer||H5,"a","href"),title:f,children:m},end:U}}U=D+1,L=true;}var I0="",d=U;if(!L&&N===A0){var u0=U+1;d=u0;for(var B0=false;d<Z&&$.charCodeAt(d)!==J5;){if($.charCodeAt(d)===T0&&d+1<Z){d+=2;continue}if($.charCodeAt(d)===A0){B0=true;break}d++;}if(B0||d>=Z)return null;var W0=$.slice(u0,d);if(W0.trim())I0=p9(W0);else {if(I4(A))return null;I0=p9(A);}d+=1;}else {if(I4(A))return null;I0=p9(A);}var H0=X.refs?.[I0];if(!H0)return null;if(V)return {node:{type:B$2.image,target:m9(H0.target,Y?.sanitizer||H5,"img","src"),alt:o9(R5(A,0,A.length,X,Y)),title:H0.title},end:d};var D0=X.inAnchor;X.inAnchor=true;var m=D0?[{type:B$2.text,text:A}]:R5(A,0,A.length,X,Y);return X.inAnchor=D0,!X.inAnchor&&P$(m)?null:{node:{type:B$2.link,target:m9(H0.target,Y?.sanitizer||H5,"a","href"),title:H0.title,children:m},end:d}}function i4($,Q,Z){if($.charCodeAt(Q)!==Y0)return null;for(var X=Q+1;X<Z;){var Y=$.charCodeAt(X);if(Y===l$1)break;if(Y===I||Y===g||Y===v5||Y===Y0)return null;X++;}if(X>=Z||$.charCodeAt(X)!==l$1)return null;var V=$.slice(Q+1,X),K=V.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\x00-\x20]*)$/);return K?{node:{type:B$2.link,target:V,title:void 0,children:[{type:B$2.text,text:V}]},end:X+1}:V.indexOf("@")!==-1&&/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(V)?{node:{type:B$2.link,target:`mailto:${V}`,title:void 0,children:[{type:B$2.text,text:V}]},end:X+1}:null}function VZ($,Q,Z,X){if($.charCodeAt(Q)!==A0||Q+1>=Z||$.charCodeAt(Q+1)!==W5||N$===O5&&Q>=C4)return null;let Y=Q+2;for(;Y<Z&&$.charCodeAt(Y)!==J5&&$.charCodeAt(Y)!==g;)Y++;if(Y>=Z)return C4=Q,N$=O5,null;if($.charCodeAt(Y)!==J5)return null;let V=$.slice(Q+2,Y);return V?{node:{type:B$2.footnoteReference,target:`#${N5(V)}`,text:V},end:Y+1}:null}function KZ($,Q,Z,X){if(X.disableBareUrls)return null;var Y="",V=false,K=$.charCodeAt(Q);if(K===A9||K===72?Q+8<=Z&&$.charCodeAt(Q+1)===s5&&$.charCodeAt(Q+2)===s5&&$.charCodeAt(Q+3)===x9&&($.charCodeAt(Q+4)===Y$&&$.charCodeAt(Q+5)===m0&&$.charCodeAt(Q+6)===j0&&$.charCodeAt(Q+7)===j0?Y="https://":$.charCodeAt(Q+4)===m0&&$.charCodeAt(Q+5)===j0&&$.charCodeAt(Q+6)===j0&&(Y="http://")):K===L5||K===70?Q+6<=Z&&$.charCodeAt(Q+1)===s5&&$.charCodeAt(Q+2)===x9&&$.charCodeAt(Q+3)===m0&&$.charCodeAt(Q+4)===j0&&$.charCodeAt(Q+5)===j0&&(Y="ftp://"):(K===C5||K===87)&&Q+4<=Z&&$.charCodeAt(Q+1)===C5&&$.charCodeAt(Q+2)===C5&&$.charCodeAt(Q+3)===Q5&&(Y="www.",V=true),!Y)return null;let J=Q+Y.length;for(;J<Z;){let O=$.charCodeAt(J);if(O===I||O===g||O===w||O===v5||O===Y0||O===l$1)break;J++;}for(var G=0,U=0,W=Q;W<J;W++){var z=$.charCodeAt(W);z===z5?G++:z===F5&&U++;}let H=J;for(;H>Q+Y.length;){let O=$.charCodeAt(H-1);if(O===Q5||O===r$||O===m0||O===c0||O===t5||O===F5||O===P0||O===O0||O===b0){if(O===F5){if(G>=U)break;U--;}H--;}else if(O===j9){for(var F=H-2;F>Q&&($.charCodeAt(F)>=h$1&&$.charCodeAt(F)<=u$1||$.charCodeAt(F)>=V0&&$.charCodeAt(F)<=q0||$.charCodeAt(F)>=r$1&&$.charCodeAt(F)<=o);)F--;F>=Q&&$.charCodeAt(F)===O9?H=F:H--;}else break}if(H<=Q+Y.length)return null;var M=Q+(V?4:Y.length),j=$.indexOf("/",M);if((j<0||j>H)&&(j=H),V&&$.indexOf(".",M)===-1)return null;for(var _=-1,q=-1,D=j-1;D>=M;D--)if($.charCodeAt(D)===Q5)if(_<0)_=D;else {q=D;break}for(var A=q>=0?q+1:M,D=A;D<j;D++)if($.charCodeAt(D)===O0)return null;var N=$.slice(Q,H),L=V?`http://${N}`:N;return {node:{type:B$2.link,target:L,title:void 0,children:[{type:B$2.text,text:N}]},end:H}}function JZ($,Q,Z,X){if(X.disableBareUrls)return null;for(var Y=Q,V=Y;Y<Z;){var K=$.charCodeAt(Y);if(K>=h$1&&K<=u$1||K>=V0&&K<=q0||K>=r$1&&K<=o||K===Q5||K===c0||K===V5||K===36||K===M9||K===O9||K===f5||K===P0||K===y5||K===j0||K===K5||K===t5||K===W5||K===O0||K===Z0||K===S5||K===E0||K===E9||K===b0||K===p$1)Y++;else break}if(Y===V||Y>=Z||$.charCodeAt(Y)!==k9)return null;Y++;for(var J=Y,G=-1,U=Y;Y<Z;){var K=$.charCodeAt(Y);if(K>=h$1&&K<=u$1||K>=V0&&K<=q0||K>=r$1&&K<=o)Y++;else if((K===p$1||K===O0)&&Y>J)Y++;else if(K===Q5){if(Y===J)break;var W=$.charCodeAt(Y-1);if(W===p$1||W===O0||Y-U>63)break;if(Y+1<Z){var z=$.charCodeAt(Y+1);if(z>=h$1&&z<=u$1||z>=V0&&z<=q0||z>=r$1&&z<=o)G=Y,U=Y+1,Y++;else break}else break}else break}if(Y-U>63||G<0)return null;var H=$.charCodeAt(Y-1);if(!(H>=h$1&&H<=u$1||H>=V0&&H<=q0||H>=r$1&&H<=o)||Y<=G+1)return null;for(var F=-1,M=G-1;M>=J;M--)if($.charCodeAt(M)===Q5){F=M;break}for(var j=F>=0?F+1:J,M=j;M<Y;M++)if($.charCodeAt(M)===O0)return null;var _=$.slice(Q,Y);return {node:{type:B$2.link,target:`mailto:${_}`,title:void 0,children:[{type:B$2.text,text:_}]},end:Y}}function P$($){for(var Q=0;Q<$.length;Q++)if($[Q].type===B$2.link||"children"in $[Q]&&Array.isArray($[Q].children)&&P$($[Q].children))return true;return false}function o9($,Q){for(var Z="",X=0;X<$.length;X++){var Y=$[X];Y.type===B$2.text?Z+=Y.text:Y.type===B$2.breakLine?Z+=" ":Y.type===B$2.codeInline||Y.type===B$2.footnoteReference?Z+=Y.text:"children"in Y&&Array.isArray(Y.children)?Z+=o9(Y.children,Q):!Q&&Y.type===B$2.image&&(Z+=Y.alt||"");}return Z}function w$($,Q,Z){for(var X=0;X<$.length;X++){var Y=$[X];if(Y.type===B$2.heading){var V=Y;V.id=u6(Z(o9(V.children,true)),Q);}if("children"in Y){var K=Y.children;Array.isArray(K)&&w$(K,Q,Z);}if((Y.type===B$2.orderedList||Y.type===B$2.unorderedList)&&Array.isArray(Y.items))for(var J=Y.items,G=0;G<J.length;G++)w$(J[G],Q,Z);}}function X9($){return {type:B$2.text,text:$}}function UZ($,Q,Z){var X=Q+1;if(X>=Z)return -1;if($.charCodeAt(X)===V5){X++;var Y=X<Z&&($.charCodeAt(X)===V$||$.charCodeAt(X)===K$);Y&&X++;for(var V=X,K=Y?6:7;X<Z&&X-V<=K;){var J=$.charCodeAt(X),G=J>=r$1&&J<=o||Y&&(J>=h$1&&J<=D9||J>=V0&&J<=L5);if(!G)break;X++;}return X===V||X-V>K?-1:X<Z&&$.charCodeAt(X)===j9?X+1:-1}for(var U=X;X<Z&&X-U<48;){var W=$.charCodeAt(X);if(W>=h$1&&W<=u$1||W>=V0&&W<=q0||W>=r$1&&W<=o){X++;continue}break}return X===U?-1:X<Z&&$.charCodeAt(X)===j9?X+1:-1}function GZ($,Q,Z,X,Y){if($.charCodeAt(Q)!==Y0)return null;var V=Q+1;if(V>=Z)return null;var K=$.charCodeAt(V);if(K===c0&&V+1<Z&&$.charCodeAt(V+1)===p$1&&V+2<Z&&$.charCodeAt(V+2)===p$1){var J=V+3;if(J<Z&&$.charCodeAt(J)===l$1)return {node:{type:B$2.htmlComment,text:"",s:true},end:J+1};if(J+1<Z&&$.charCodeAt(J)===p$1&&$.charCodeAt(J+1)===l$1)return {node:{type:B$2.htmlComment,text:"-",s:true},end:J+2};var G=$.indexOf("-->",J);return G!==-1&&G<=Z-3?{node:{type:B$2.htmlComment,text:$.slice(Q+4,G),s:false},end:G+3}:null}if(K===t5){var U=$.indexOf("?>",V+1);return U!==-1&&U<Z?{node:{type:B$2.htmlSelfClosing,tag:"?",attrs:{},m:$.slice(Q,U+2),a:false},end:U+2}:null}if(K===c0&&V+1<Z){var W=$.charCodeAt(V+1);if(W===A0&&$.slice(V+1,V+8)==="[CDATA["){var z=$.indexOf("]]>",V+8);return z!==-1&&z<Z?{node:{type:B$2.htmlSelfClosing,tag:"![CDATA[",attrs:{},m:$.slice(Q,z+3),a:false},end:z+3}:null}if(W>=h$1&&W<=u$1){var H=$.indexOf(">",V+2);return H!==-1&&H<Z?{node:{type:B$2.htmlSelfClosing,tag:`!${$.slice(V+1,H)}`,attrs:{},m:$.slice(Q,H+1),a:false},end:H+1}:null}}if(K===j0){var F=V+1;if(F>=Z)return null;var M=$.charCodeAt(F);if(!(M>=h$1&&M<=u$1||M>=V0&&M<=q0))return null;for(F++;F<Z;){var j=$.charCodeAt(F);if(j>=h$1&&j<=u$1||j>=V0&&j<=q0||j>=r$1&&j<=o||j===p$1)F++;else break}for(;F<Z&&($.charCodeAt(F)===I||$.charCodeAt(F)===w||$.charCodeAt(F)===g);)F++;if(F<Z&&$.charCodeAt(F)===l$1){var _=$.slice(V+1,F).trim();return {node:{type:B$2.htmlSelfClosing,tag:_,attrs:{},h:$.slice(Q,F+1),a:true},end:F+1}}return null}if(!(K>=h$1&&K<=u$1||K>=V0&&K<=q0))return null;var q=w5($,Q);if(!q)return null;var D=q.tag,A=D.toLowerCase(),N=q.n;if(N||Q9(D))return {node:{type:B$2.htmlSelfClosing,tag:D,attrs:P5(q.attrs,D,Y),m:q.q?A$(q):$.slice(Q,q.end),a:false},end:q.end};var L=N9.has(A),O=_$($.slice(0,Z),q.end,D);if(O===-1)return {node:{type:B$2.htmlSelfClosing,tag:D,attrs:P5(q.attrs,D,Y),m:q.q?A$(q):$.slice(Q,q.end),a:false},end:q.end};var P=o6($,`</${A}`,O),v=$.slice(q.end,P);if(L){var b=G5(v);return {node:{type:B$2.htmlBlock,tag:D,attrs:P5(q.attrs,D,Y),b:q.g+q.b,children:[],e:b||void 0,h:$.slice(P,O),text:b,c:true,a:false},end:O}}var k=[],x=v.trim();if(x){var{inAnchor:T,inline:f,k:y}=X;A==="a"&&(X.inAnchor=true),X.k=false;var C=x.indexOf(`
|
|
17386
|
+
|
|
17387
|
+
`)!==-1||/^#{1,6}\s/.test(x);C?(X.inline=false,k=c5(x,X,Y)):k=R5(x,0,x.length,X,Y),X.inAnchor=T,X.inline=f,X.k=y;}return {node:{type:B$2.htmlBlock,tag:D,attrs:P5(q.attrs,D,Y),b:q.b,children:k,text:G5(v),c:false,a:false},end:O}}var qZ=200,_9=0;function R5($,Q,Z,X,Y){if(_9++,_9>qZ)return _9--,[{type:B$2.text,text:$.slice(Q,Z)}];var V=O5;O5=YZ();let K=X;if(Y.optimizeForStreaming){let $0=function(t,d0){for(var n0=1,$5=d0+1;$5<t.length;$5++){var l0=t.charCodeAt($5);if(l0===A0)n0++;else if(l0===J5&&(n0--,n0===0))return $5}return -1},R=$.slice(Q,Z),J0=R;for(var J=0,G=0,U=0,W=0,z=0,H=-1,F=-1,M=-1,j=-1,_=-1,q=0;q<R.length;q++){var D=R.charCodeAt(q);D===P0?q+1<R.length&&R.charCodeAt(q+1)===P0?(J++,H=q,q++):(G++,F=q):D===O0?q+1<R.length&&R.charCodeAt(q+1)===O0?(U++,M=q,q++):(W++,j=q):D===b0&&q+1<R.length&&R.charCodeAt(q+1)===b0&&(z++,_=q,q++);}var A=[];z%2===1&&_>=0&&A.push([_,2]),U%2===1&&M>=0&&A.push([M,2]),W%2===1&&j>=0&&A.push([j,1]),J%2===1&&H>=0&&A.push([H,2]),G%2===1&&F>=0&&A.push([F,1]),A.sort((t,d0)=>d0[0]-t[0]);for(var N=0;N<A.length;N++){var L=A[N][0],O=A[N][1];R=R.slice(0,L)+R.slice(L+O);}let a0=0,q5=-1;for(let t=0;t<R.length;t++)R.charCodeAt(t)===Z0&&(a0++,q5=t);if(a0%2===1&&q5!==-1){let t=false,d0=-1,n0=0;for(;n0<R.length;)R.charCodeAt(n0)===Z0&&(t?(t=false,d0=-1):(d0=n0,t=true)),n0++;t&&d0!==-1&&(R=R.slice(0,d0));}for(var P=true;P;){P=false;for(var v=-1,b=-1,k=-1,x=false,T=0;T<R.length;T++){var f=R.charCodeAt(T);if(f===A0&&(T===0||R.charCodeAt(T-1)!==T0)){var y=T>0&&R.charCodeAt(T-1)===c0,C=y?T-1:T,E=$0(R,T);if(E===-1)v=C,x=y,b=T+1,k=R.length;else {var S=E+1;if(S>=R.length)v=C,x=y,b=T+1,k=E;else if(R.charCodeAt(S)===z5){var s=R.indexOf(")",S+1);s===-1?(v=C,x=y,b=T+1,k=E,T=R.length):T=s;}else if(R.charCodeAt(S)===A0){var X0=R.indexOf("]",S+1);X0===-1?(v=C,x=y,b=T+1,k=E,T=R.length):T=X0;}else T=E;}}}if(v>=0){var I0=x?"":R.slice(b,k);R=R.slice(0,v)+I0,P=true;}}let C0=R.match(/<([A-Z][A-Za-z0-9]*)(?:\s[^>]*)?>([^<]*)$/);if(C0&&C0.index!==void 0){var d=C0[0].length-C0[2].length,u0=d>=2&&C0[0].charCodeAt(d-2)===j0;if(!u0){for(var B0=false,W0=0,H0=0;H0<C0.index;H0++)R.charCodeAt(H0)===Z0&&W0++;if(B0=W0%2===1,!B0){let t=C0[1];p5(R,`</${t}`,0)===-1&&(R=R.slice(0,C0.index)+C0[2]);}}}R!==J0&&($=$.slice(0,Q)+R,Z=Q+R.length);}let D0=[];var m=[];let c=Q;var K0="",y0=Y.disableAutoLink||Y.disableBareUrls||K.inAnchor?-1:$.indexOf("@",Q);for(y0>=Z&&(y0=-1);Q<Z;){let R=$.charCodeAt(Q),J0=null;if(R===Z0){if(J0=t6($,Q,Z),!J0){var S0=l5($,Q,Z,Z0);Q+=S0-1;}}else if(R===P0||R===O0){var _0=QZ($,Q,Z);if(_0){if(_0.canOpen||_0.canClose){(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0="");var a=$.slice(Q,Q+_0.len),w0=X9(a);m.push({idx:D0.length,ch:R,len:_0.len,canOpen:_0.canOpen,canClose:_0.canClose,active:true}),D0.push(w0),Q+=_0.len,c=Q;continue}Q+=_0.len-1;}}else if(R===b0)J0=$Z($,Q,Z,K,Y);else if(R===K5)J0=ZZ($,Q,Z,K,Y);else if(R===A0)Q+1<Z&&$.charCodeAt(Q+1)===W5&&(J0=VZ($,Q,Z)),J0||(J0=f4($,Q,Z,K,Y));else if(R===c0&&Q+1<Z&&$.charCodeAt(Q+1)===A0)J0=f4($,Q,Z,K,Y);else if(R===Y0)J0=i4($,Q,Z),!(J0||Y.disableParsingRawHTML||Y.ignoreHTMLBlocks)&&(J0=GZ($,Q,Z,K,Y));else if(R===O9){var z0=UZ($,Q,Z);if(z0!==-1){var F0=$.slice(Q,z0),M0=I5(F0);if(M0!==F0){K0=K0+$.slice(c,Q)+M0,Q=z0,c=z0;continue}}}else if((R===A9||R===C5||R===L5)&&!K.inAnchor&&!Y.disableAutoLink&&(Q===0||$.charCodeAt(Q-1)!==Y0)){var f0=Q+1<Z?$.charCodeAt(Q+1):0;(R===A9&&f0===s5||R===L5&&f0===s5||R===C5&&f0===C5)&&(J0=KZ($,Q,Z,Y));}if(!J0&&y0>=0&&y0-Q<=64&&!K.inAnchor&&!Y.disableAutoLink&&!Y.disableBareUrls&&(R>=h$1&&R<=u$1||R>=V0&&R<=q0||R>=r$1&&R<=o)&&(J0=JZ($,Q,Z,Y),!J0&&Q>=y0&&(y0=$.indexOf("@",Q+1),y0>=Z&&(y0=-1))),R===g&&K.k){var v0=false,k0=0;if(Q>c&&$.charCodeAt(Q-1)===T0)v0=true,k0=1;else {for(var h0=0,p0=Q-1;p0>=c&&$.charCodeAt(p0)===I;)h0++,p0--;h0>=2&&(v0=true,k0=h0);}if(v0){for((K0||Q-k0>c)&&(D0.push(X9(K0+$.slice(c,Q-k0))),K0=""),D0.push({type:B$2.breakLine}),Q++;Q<Z&&$.charCodeAt(Q)===I;)Q++;c=Q;continue}var n=Q>c&&$.charCodeAt(Q-1)===I,N0=Q+1<Z&&$.charCodeAt(Q+1)===I;if(n||N0){for(var i=Q;i>c&&$.charCodeAt(i-1)===I;)i--;for(K0+=`${$.slice(c,i)}
|
|
17388
|
+
`,Q++;Q<Z&&$.charCodeAt(Q)===I;)Q++;c=Q;continue}}if(J0)(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0=""),D0.push(J0.node),Q=J0.end,c=Q;else {if(R===T0&&Q+1<Z){let a0=$.charCodeAt(Q+1);if(R$(a0)&$9){(K0||Q>c)&&(D0.push(X9(K0+$.slice(c,Q))),K0=""),D0.push(X9($[Q+1])),Q+=2,c=Q;continue}}if(Q++,y0<0||y0-Q>64)for(;Q<Z&&!(y0>=0&&y0-Q<=64);){var x0=$.charCodeAt(Q);if(x0<U9&&!u4[x0])Q++;else break}}}return (K0||Z>c)&&(D0.push(X9(K0+$.slice(c,Z))),K0=""),m.length>0&&XZ(D0,m),O5=V,_9--,D0}var WZ=500;function c5($,Q,Z){var X=Q.o||0;if(X>WZ)return [{type:B$2.text,text:$}];Q.o=X+1;if(Z.optimizeForStreaming&&!(Q.i||Q.w)){for(var V=$.length;V>0&&$.charCodeAt(V-1)===g;)V--;for(var K=V;K>0&&$.charCodeAt(K-1)!==g;)K--;if(V>K&&$.charCodeAt(K)===E0){for(var J=false,G=K+1;G<V;G++){var U=$.charCodeAt(G);if(U!==I&&U!==w&&U!==E0&&U!==m0&&U!==p$1){J=true;break}}for(var W=false,z=false,H=0,F=K,M=K-1;M>0;){for(var j=M;j>0&&$.charCodeAt(j-1)!==g;)j--;if($.charCodeAt(j)!==E0)break;F=j;for(var _=true,q=false,D=j;D<M;D++){var A=$.charCodeAt(D);if(A===p$1)q=true;else if(A!==I&&A!==w&&A!==m0&&A!==E0){_=false;break}}_&&q?(W=true,z=true):z||H++,M=j-1;}J?W||($=$.slice(0,K).trimEnd()):$=W&&H>0?$.slice(0,K).trimEnd():$.slice(0,F).trimEnd();}for(var N=-1,L=-1,O=-1,P=false,v=$.length-1;v>=0;v--)if($.charCodeAt(v)===Y0){for(var b=v+1<$.length?$.charCodeAt(v+1):0,k=b>=h$1&&b<=u$1||b>=V0&&b<=q0,x=b===j0&&v+2<$.length&&($.charCodeAt(v+2)>=h$1&&$.charCodeAt(v+2)<=u$1||$.charCodeAt(v+2)>=V0&&$.charCodeAt(v+2)<=q0),T=b===c0||b===t5,f=$.length;f>v+1&&$.charCodeAt(f-1)===g;)f--;var y=v+1>=f;if(k||x||T||y){var C=v+1;if((x||k)&&(C=v+2),k||x)for(;C<$.length;){var E=$.charCodeAt(C);if(E>=h$1&&E<=u$1||E>=V0&&E<=q0||E>=r$1&&E<=o)C++;else break}for(var S=k||x?C:v+2;S<$.length&&$.charCodeAt(S)!==l$1;)S++;if(S>=$.length)N=v,P=true;else if((k||x)&&$.charCodeAt(S-1)!==j0){for(var s=false,X0=S+1;X0<$.length;X0++)if($.charCodeAt(X0)===Y0){s=true;break}s||(N=v,L=C,O=S+1);}}break}if(N>=0){for(var I0=0,d=0;d<N;d++)$.charCodeAt(d)===Z0&&I0++;if(I0%2===0)if(P)$=$.slice(0,N);else {var u0=$.slice(N+1,L);p5($,`</${u0}`,0)===-1&&($=$.slice(0,N)+$.slice(O));}}for(var B0=$.length;B0>0&&$.charCodeAt(B0-1)===g;)B0--;if(B0>0){for(var W0=B0;W0>0&&$.charCodeAt(W0-1)!==g;)W0--;for(var H0=W0,D0=0;H0<B0&&$.charCodeAt(H0)===I&&D0<3;)H0++,D0++;if(W0>0&&H0<B0&&d6($,H0,B0)){for(var m=W0-1,c=m;c>0&&$.charCodeAt(c-1)!==g;)c--;e0($,c,m)||($=$.slice(0,W0).trimEnd());}}var K0=$.length;if(K0>0){for(var y0=$.lastIndexOf(`
|
|
17389
|
+
`),S0=y0===-1?0:y0+1,_0=K0,a=S0,w0=0;a<_0&&$.charCodeAt(a)===I&&w0<3;)a++,w0++;if(a<_0){var z0=$.charCodeAt(a),F0=false;if(z0===P0||z0===p$1||z0===y5){var M0=a+1;if(M0>=_0||$.charCodeAt(M0)===I||$.charCodeAt(M0)===w){for(var f0=M0;f0<_0&&($.charCodeAt(f0)===I||$.charCodeAt(f0)===w);)f0++;f0>=_0&&(F0=true);}}else if(z0>=r$1&&z0<=o){for(var v0=a;v0<_0&&$.charCodeAt(v0)>=r$1&&$.charCodeAt(v0)<=o;)v0++;if(v0<_0&&($.charCodeAt(v0)===Q5||$.charCodeAt(v0)===F5)){var k0=v0+1;if(k0>=_0||$.charCodeAt(k0)===I||$.charCodeAt(k0)===w){for(var h0=k0;h0<_0&&($.charCodeAt(h0)===I||$.charCodeAt(h0)===w);)h0++;h0>=_0&&(F0=true);}}}F0&&($=$.slice(0,S0).trimEnd());}}}if(Q.inline)return R5($,0,$.length,Q,Z);let p0=[],n=0,N0=$.length;if(n===0&&!Z.disableFrontmatter&&$.startsWith("---")){let $0=X4($);if($0?.hasValidYaml){if(Z.preserveFrontmatter!==false){let C0=$.slice(0,$0.endPos).trimEnd();p0.push({type:B$2.frontmatter,text:C0});}n=$0.endPos;}}for(;n<N0;){for(var i=$.indexOf(`
|
|
17390
|
+
`,n),x0=i<0?N0:i;n<N0&&e0($,n,x0);)n=x0<N0?x0+1:x0,n<N0&&(i=$.indexOf(`
|
|
17391
|
+
`,n),x0=i<0?N0:i);if(n>=N0)break;var R=$.charCodeAt(n)===g9;L0($,n,x0);let $0=null;if(j$=$,B$=n,d9=x0,!R&&U0>=4&&!Q.inHTML)$0=l6($,n);else if(!R){let C0=n+Q0,t=$.charCodeAt(C0);t===V5?$0=p6($,n,Q,Z):t===l$1?$0=r6($,n,Q,Z):t===Z0||t===b0?$0=c6($,n):t===p$1||t===P0||t===O0?($0=d5($,n),!$0&&($0=T4($,n,Q,Z))):t===y5||t>=r$1&&t<=o?$0=T4($,n,Q,Z):t===Y0?$0=o4($,n,Q,Z):t===E0?$0=S4($,n,Q,Z):t===A0&&($0=a6($,n,Q));}if(!$0){for(var J0=false,a0=n;a0<x0;a0++)if($.charCodeAt(a0)===E0){J0=true;break}J0&&($0=S4($,n,Q,Z));}if($0||($0=s6($,n,Q,Z)),$0)$0.node.type!==B$2.refCollection&&p0.push($0.node),n=$0.end;else {var q5=$.indexOf(`
|
|
17392
|
+
`,n);n=q5<0?N0:q5+1;}}return Q.o=X,p0}function a4($,Q,Z,X){var Y=w5($,Q);return Y?{tagName:Y.tag,tagLower:Y.tag.toLowerCase(),attrs:Y.b,whitespaceBeforeAttrs:Y.g,isSelfClosing:Y.n,hasSpaceBeforeSlash:Y.r,isClosing:Y.f,hasNewline:Y.g.includes(`
|
|
17393
|
+
`)||Y.b.includes(`
|
|
17394
|
+
`),endPos:Y.end}:null}function P9($,Q,Z){_9=0,$=U4($),!Q.refs&&(Q.refs={}),(Z.optimizeForStreaming||Q.inline)&&(Q.w=m6($,Q.refs,Z));var X,Y;Q.t||(Q.t=X=[],Q.p=Y=[]);let V=c5($,Q,Z);if(X&&Y){for(var K=X,J={inline:Q.inline,inAnchor:Q.inAnchor,inHTML:Q.inHTML,htmlDepth:Q.d,inList:Q.inList,inBlockQuote:Q.inBlockQuote,noSetext:Q.l,depth:Q.o},G=0;G<K.length;G++){var U=K[G];Q.inline=U.inline,Q.inAnchor=U.inAnchor,Q.inHTML=U.inHTML,Q.d=U.htmlDepth,Q.inList=U.inList,Q.inBlockQuote=U.inBlockQuote,Q.l=U.noSetext,Q.o=U.depth,Q.k=U.breaks;var W=R5(U.text,0,U.text.length,Q,Z);Q.k=false;for(var z=0;z<W.length;z++)U.dest.push(W[z]);}Q.inline=J.inline,Q.inAnchor=J.inAnchor,Q.inHTML=J.inHTML,Q.d=J.htmlDepth,Q.inList=J.inList,Q.inBlockQuote=J.inBlockQuote,Q.l=J.noSetext,Q.o=J.depth;for(var H=Y,F=0;F<H.length;F++)for(var M=H[F],j=0;j<M.src.length;j++){var _=M.src[j];if(M.unwrap&&_.type===B$2.paragraph)for(var q=_.children,D=0;D<q.length;D++)M.dest.push(q[D]);else M.dest.push(_);}Q.t=void 0,Q.p=void 0,w$(V,Q,Z.slugify);}return f9(Q.refs)?[{type:B$2.refCollection,refs:Q.refs},...V]:V}var L$;try{Y9=reactExports.createElement("div"),L$=Y9!=null&&typeof Y9=="object"&&"$$typeof"in Y9&&typeof Y9.$$typeof=="symbol"?Y9.$$typeof:Symbol.for("react.transitional.element");}catch{L$=Symbol.for("react.transitional.element");}var Y9;function T$($,Q,Z){return {$$typeof:L$,type:$,key:Z==null?null:String(Z),ref:null,props:Q,_owner:null,_store:{},_debugStack:null,_debugTask:null}}function D5($,Q){var Z={key:$};if(Q){var X=U$(Q);for(var Y in X)Z[Y]=X[Y];}return Z}var i9=typeof reactExports.createContext>"u"?void 0:reactExports.createContext(void 0);function n4($,Q,Z,X,Y,V,K,J,G){switch($.type){case B$2.blockQuote:{let q={key:Z.key};return $.alert&&(q.className=`markdown-alert-${V($.alert.toLowerCase(),N5)}`,$.children.unshift(q4($.alert))),X("blockquote",q,Q($.children,Z))}case B$2.breakLine:return X("br",{key:Z.key});case B$2.breakThematic:return X("hr",{key:Z.key});case B$2.frontmatter:return J.preserveFrontmatter?X("pre",{key:Z.key},$.text):null;case B$2.codeBlock:{let q=$.lang?I5($.lang):"";var U=$.attrs?U$($.attrs):{};return U.className=q?`language-${q} lang-${q}`:"",X("pre",{key:Z.key},X("code",U,$.text))}case B$2.codeInline:return X("code",{key:Z.key},$.text);case B$2.footnoteReference:return X("a",{key:Z.key,href:Y($.target,"a","href")||void 0},X("sup",null,$.text));case B$2.gfmTask:return X("input",{checked:$.completed,key:Z.key,readOnly:true,type:"checkbox"});case B$2.heading:return X(`h${$.level}`,{id:$.id,key:Z.key},Q($.children,Z));case B$2.htmlBlock:{let q=$;if(m5(J)&&W$(q.tag)){var W=q$(q);return W.kind==="literal"?X("span",{key:Z.key},W.literal):X("span",{key:Z.key},...F4(W.open,q.children?Q(q.children,Z):null,W.close))}let D=q.j,A=D!==void 0,N=A?D:q.a?q.e||"":(q.e||"")+(q.h||"");if(N&&q.c){let L=q.tag.toLowerCase(),O=p4(L),P=q.children,v=P!=null&&P.length>0;if(O){let S=A?D:q.e||"",s=m5(J)?z$(S):S;if(/<[a-z][^>]{0,100}>/i.test(N)){var z=D5(Z.key,$.attrs);return z.dangerouslySetInnerHTML={__html:s},G($.tag,z)}return G($.tag,D5(Z.key,$.attrs),s)}let b=new RegExp(`^<${q.tag}(\\s|>)`,"i");if(v&&!b.test(N)&&m5(J)&&D4(N))return G($.tag,D5(Z.key,$.attrs),Q(P,Z));if(d4(N)){let S=m5(J)?z$(N):N;var H=D5(Z.key,$.attrs);return H.dangerouslySetInnerHTML={__html:S},G($.tag,H)}let x=I9({slugify:J.slugify,sanitizer:Y,tagfilter:true}),T=G4(N);if(new RegExp(`^<${q.tag}(\\s[^>]*)?>(\\s*</${q.tag}>)?$`,"i").test(T))return q.children&&q.children.length>0?G($.tag,D5(Z.key,$.attrs),Q(q.children,Z)):G($.tag,D5(Z.key,$.attrs));let y=P9(T,{inline:false,refs:K,inHTML:false},x);G$(y);let C=q.tag.toLowerCase(),E=A;if(E&&v)return G($.tag,D5(Z.key,$.attrs),Q(P,Z));if(E)return Q(y.flatMap(Z9),Z);var F=z4(y,C);if(F.found&&F.afterClose.length>0){var M=F.beforeClose.flatMap(Z9),j=F.afterClose.flatMap(Z9);return T$(reactExports.Fragment,{children:[G($.tag,D5(Z.key,$.attrs),Q(M,Z)),Q(j,Z)]},Z.key)}return G($.tag,D5(Z.key,$.attrs),Q(y.flatMap(Z9),Z))}return Q9($.tag)?G($.tag,D5(Z.key,$.attrs)):G($.tag,D5(Z.key,$.attrs),$.children?Q($.children,Z):"")}case B$2.htmlSelfClosing:{let q=$;if(m5(J)&&W$(q.tag)){var _=q$(q);return X("span",{key:Z.key},_.kind==="literal"?_.literal:_.open+(_.close||""))}return G($.tag,D5(Z.key,$.attrs))}case B$2.image:{let q=$.target===null?null:Y($.target,"img","src");return X("img",{key:Z.key,alt:$.alt&&$.alt.length>0?$.alt:void 0,title:$.title||void 0,src:q||void 0})}case B$2.link:{let q={key:Z.key};if($.target!=null){let D=H4($.target,Y,"a","href");D!=null&&(q.href=D);}return $.title&&(q.title=$.title),X("a",q,Q($.children,Z))}case B$2.table:{let q=$;return X("table",{key:Z.key},X("thead",{key:"thead"},X("tr",null,q.header.map(function(A,N){return X("th",{key:N,style:q.align[N]===null?{}:{textAlign:q.align[N]}},Q(A,Z))}))),q.cells.length>0&&X("tbody",{key:"tbody"},q.cells.map(function(A,N){return X("tr",{key:N},A.map(function(O,P){return X("td",{key:P,style:q.align[P]===null?{}:{textAlign:q.align[P]}},Q(O,Z))}))})))}case B$2.text:return $.text;case B$2.textFormatted:return X($.tag,{key:Z.key},Q($.children,Z));case B$2.orderedList:case B$2.unorderedList:{let q=$.type===B$2.orderedList?"ol":"ul";return X(q,{key:Z.key,start:$.type===B$2.orderedList?$.start:void 0},$.items.map(function(A,N){return X("li",{key:N},Q(A,Z))}))}case B$2.paragraph:return X("p",{key:Z.key},Q($.children,Z));case B$2.ref:return null;default:return null}}var HZ=($,Q,Z,X,Y,V,K)=>{var J=U=>U.map(W=>"text"in W?W.text:""),G=(U,W={})=>{var z=Array.isArray(U)?U:[U],H=(W.renderDepth||0)+1;if(H>2500)return J(z);W.renderDepth=H;for(var F=W.key,M=[],j=false,_=0;_<z.length;_++){W.key=_;var q;if($){var D=n4.bind(null,z[_],G,W,Q,Z,X,Y,V,K);q=$(D,z[_],G,W);}else q=n4(z[_],G,W,Q,Z,X,Y,V,K);var A=typeof q=="string";if(j&&typeof q=="string"){var N=M.at(-1);M[M.length-1]=(typeof N=="string"?N:"")+q;}else if(q!=null)if(Array.isArray(q))for(var L=0;L<q.length;L++)M.push(q[L]);else M.push(q);j=A;}return W.key=F,W.renderDepth=H-1,M};return G},MZ=($,Q)=>{let Z=h9(Q,$,void 0);return Z?typeof Z=="function"||typeof Z=="object"&&"render"in Z?Z:h9(Q,`${$}.component`,$):$};function OZ($,Q){let Z={...Q||{}};Z.overrides=Z.overrides||{};let X=Z.slugify||N5,Y=Z.sanitizer||H5,V=Z.createElement,K=f9(Z.overrides),J=A=>y$(A,{...Z,wrapper:null});function G(A){for(var N in A){var L=A[N];if(typeof L=="string"&&L.length>0&&L.charCodeAt(0)===Y0&&(h4.test(L)||m4.test(L)||a4(L,0))){var O=J(L.trim());A[N]=N==="innerHTML"&&Array.isArray(O)?O[0]:O;}}}function U(A,N,...L){var O=N||{},P=A;if(K){var v=h9(Z.overrides,`${A}.props`,{});P=MZ(A,Z.overrides),O={...O,...v,className:O4(O.className,v.className)||void 0};}if(!V){var b=O.key;return b!=null&&delete O.key,L.length===1?O.children=L[0]:L.length>1&&(O.children=L),T$(P,O,b)}return V(P,O,...L)}function W(A,N,...L){return N&&G(N),U(A,N,...L)}let z=I9(Z,Z.forceInline),H=$[0]&&$[0].type===B$2.refCollection?$[0].refs:{},F=HZ(Z.renderRule,U,Y,X,H,Z,W),M=F($,{inline:Z.forceInline,refs:H}),j=M4(H);if(j.length>0&&M.push(U("footer",{key:"footer"},j.map(function(N){let L=N.identifier.charCodeAt(0)===W5?N.identifier.slice(1):N.identifier,O=P9(N.footnote,{inline:true,refs:H},z);return U("div",{id:X(L,N5),key:N.identifier},`${L}: `,F(O,{inline:true,refs:H}))}))),Z.wrapper===null)return M;let _=Z.wrapper||(Z.forceInline?"span":"div"),q;if(M.length>1||Z.forceWrapper)q=M;else return M.length===1?M[0]:null;var D=Z.wrapperProps?{...Z.wrapperProps}:{};return D.children=q,T$(_,D,"outer")}function y$($="",Q={}){let Z={...Q||{}};Z.overrides=Z.overrides||{};Z.slugify||N5;Z.sanitizer||H5;function V(J){let G=Z.forceInline||!(Z.forceBlock||Y4.test(J)),U=I9(Z,G),W=G?J:W4(J),z=P9(W,{inline:G,refs:K},U);return OZ(z,{...Z,forceInline:G})}let K={};return V($)}function DZ($){let Q=reactExports.useRef($),Z=Q.current;if(Z!==$){var X=true,Y=0;for(var V in $)if(Y++,!Object.is(Z[V],$[V])){X=false;break}if(X){var K=0;for(var J in Z)K++;X=K===Y;}X||(Q.current=$);}return Q.current}var AZ=({children:$,options:Q,...Z})=>{if(!(typeof reactExports.useContext<"u")){let U={...Q,overrides:{...Q?.overrides},wrapperProps:{...Q?.wrapperProps,...Z}};return y$($??"",U)}let Y=i9?reactExports.useContext(i9):void 0,V=DZ(Z),K=reactExports.useMemo(()=>({...Y,...Q,overrides:{...Y?.overrides,...Q?.overrides},wrapperProps:{...Y?.wrapperProps,...Q?.wrapperProps,...V}}),[Y,Q,V]),J=$??"";return reactExports.useMemo(()=>y$(J,K),[J,K])};
|
|
16601
17395
|
|
|
16602
17396
|
/** Internal only symbol used by `Form` & `ObjectField` to mark an additional property element to be removed */
|
|
16603
17397
|
const ADDITIONAL_PROPERTY_KEY_REMOVE = Symbol('remove-this-key');
|
|
@@ -16835,7 +17629,7 @@
|
|
|
16835
17629
|
orderedProperties = orderProperties([...definedPropertyOrder, ...currentAdditionalProperties], uiOptions.order);
|
|
16836
17630
|
}
|
|
16837
17631
|
catch (err) {
|
|
16838
|
-
return (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: 'rjsf-config-error', style: { color: 'red' }, children: jsxRuntimeExports.jsx(
|
|
17632
|
+
return (jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsx("p", { className: 'rjsf-config-error', style: { color: 'red' }, children: jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, children: translateString(TranslatableString.InvalidObjectField, [name || 'root', err.message]) }) }), jsxRuntimeExports.jsx("pre", { children: JSON.stringify(schema) })] }));
|
|
16839
17633
|
}
|
|
16840
17634
|
}
|
|
16841
17635
|
const Template = getTemplate('ObjectFieldTemplate', registry, uiOptions);
|
|
@@ -17379,7 +18173,7 @@
|
|
|
17379
18173
|
const { globalUiOptions } = registry;
|
|
17380
18174
|
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
|
|
17381
18175
|
if (uiOptions.enableMarkdownInDescription && typeof description === 'string') {
|
|
17382
|
-
return (jsxRuntimeExports.jsx(
|
|
18176
|
+
return (jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, "data-testid": TEST_IDS$1.markdown, children: description }));
|
|
17383
18177
|
}
|
|
17384
18178
|
return description;
|
|
17385
18179
|
}
|
|
@@ -17441,7 +18235,7 @@
|
|
|
17441
18235
|
const { globalUiOptions } = registry;
|
|
17442
18236
|
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
|
|
17443
18237
|
if (uiOptions.enableMarkdownInHelp && typeof help === 'string') {
|
|
17444
|
-
return (jsxRuntimeExports.jsx(
|
|
18238
|
+
return (jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, "data-testid": TEST_IDS.markdown, children: help }));
|
|
17445
18239
|
}
|
|
17446
18240
|
return help;
|
|
17447
18241
|
}
|
|
@@ -17581,7 +18375,7 @@
|
|
|
17581
18375
|
: TranslatableString.UnsupportedFieldWithIdAndReason;
|
|
17582
18376
|
translateParams.push(reason);
|
|
17583
18377
|
}
|
|
17584
|
-
return (jsxRuntimeExports.jsxs("div", { className: 'unsupported-field', children: [jsxRuntimeExports.jsx("p", { children: jsxRuntimeExports.jsx(
|
|
18378
|
+
return (jsxRuntimeExports.jsxs("div", { className: 'unsupported-field', children: [jsxRuntimeExports.jsx("p", { children: jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, children: translateString(translateEnum, translateParams) }) }), schema && jsxRuntimeExports.jsx("pre", { children: JSON.stringify(schema, null, 2) })] }));
|
|
17585
18379
|
}
|
|
17586
18380
|
|
|
17587
18381
|
/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
|
|
@@ -17773,7 +18567,7 @@
|
|
|
17773
18567
|
return (jsxRuntimeExports.jsx("ul", { className: 'file-info', children: filesInfo.map((fileInfo, key) => {
|
|
17774
18568
|
const { name, size, type } = fileInfo;
|
|
17775
18569
|
const handleRemove = () => onRemove(key);
|
|
17776
|
-
return (jsxRuntimeExports.jsxs("li", { children: [jsxRuntimeExports.jsx(
|
|
18570
|
+
return (jsxRuntimeExports.jsxs("li", { children: [jsxRuntimeExports.jsx(AZ, { children: translateString(TranslatableString.FilesInfo, [name, type, String(size)]) }), preview && jsxRuntimeExports.jsx(FileInfoPreview, { fileInfo: fileInfo, registry: registry }), jsxRuntimeExports.jsx(RemoveButton, { onClick: handleRemove, registry: registry })] }, key));
|
|
17777
18571
|
}) }));
|
|
17778
18572
|
}
|
|
17779
18573
|
/**
|
|
@@ -17973,10 +18767,22 @@
|
|
|
17973
18767
|
* @param props - The `WidgetProps` for this component
|
|
17974
18768
|
*/
|
|
17975
18769
|
function TimeWidget(props) {
|
|
17976
|
-
const { onChange, options, registry } = props;
|
|
18770
|
+
const { onChange, options, registry, schema, value } = props;
|
|
17977
18771
|
const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
|
|
17978
|
-
const
|
|
17979
|
-
|
|
18772
|
+
const hasSecondPrecision = typeof schema.multipleOf === 'number' && Number.isFinite(schema.multipleOf) && schema.multipleOf < 60;
|
|
18773
|
+
const handleChange = reactExports.useCallback((newValue) => {
|
|
18774
|
+
if (!newValue) {
|
|
18775
|
+
onChange(undefined);
|
|
18776
|
+
}
|
|
18777
|
+
else if (hasSecondPrecision) {
|
|
18778
|
+
onChange(newValue);
|
|
18779
|
+
}
|
|
18780
|
+
else {
|
|
18781
|
+
onChange(`${newValue}:00`);
|
|
18782
|
+
}
|
|
18783
|
+
}, [hasSecondPrecision, onChange]);
|
|
18784
|
+
const displayValue = typeof value === 'string' && !hasSecondPrecision && /^\d{2}:\d{2}:00$/.test(value) ? value.slice(0, -3) : value;
|
|
18785
|
+
return jsxRuntimeExports.jsx(BaseInputTemplate, { type: 'time', ...props, value: displayValue, onChange: handleChange });
|
|
17980
18786
|
}
|
|
17981
18787
|
|
|
17982
18788
|
/** The `UpDownWidget` component uses the `BaseInputTemplate` changing the type to `number`.
|
|
@@ -26983,6 +27789,17 @@
|
|
|
26983
27789
|
}
|
|
26984
27790
|
catch (err) {
|
|
26985
27791
|
compilationError = err;
|
|
27792
|
+
// AJV registers a schema in its internal cache before running meta-schema
|
|
27793
|
+
// validation. When that check throws, the broken schema stays cached so
|
|
27794
|
+
// subsequent compile() calls skip revalidation and return silently. Remove
|
|
27795
|
+
// the entry so every call with an invalid schema consistently produces a
|
|
27796
|
+
// compilation error. For schemas with $id the cache key is the id string;
|
|
27797
|
+
// for anonymous schemas AJV uses the object reference as the key.
|
|
27798
|
+
// Guard with compiledValidator === undefined so that a runtime error thrown
|
|
27799
|
+
// by compiledValidator(formData) does not evict a correctly-compiled schema.
|
|
27800
|
+
if (compiledValidator === undefined) {
|
|
27801
|
+
this.ajv.removeSchema(schema[ID_KEY] !== undefined ? schema[ID_KEY] : schema);
|
|
27802
|
+
}
|
|
26986
27803
|
}
|
|
26987
27804
|
let errors;
|
|
26988
27805
|
if (compiledValidator) {
|
|
@@ -27089,13 +27906,17 @@
|
|
|
27089
27906
|
*/
|
|
27090
27907
|
isValid(schema, formData, rootSchema) {
|
|
27091
27908
|
var _a;
|
|
27909
|
+
// schemaId and compiled are declared outside the try so the catch block can
|
|
27910
|
+
// conditionally remove the broken schema from AJV's registry.
|
|
27911
|
+
let schemaId;
|
|
27912
|
+
let compiled = false;
|
|
27092
27913
|
try {
|
|
27093
27914
|
this.handleSchemaUpdate(rootSchema);
|
|
27094
27915
|
// then rewrite the schema ref's to point to the rootSchema
|
|
27095
27916
|
// this accounts for the case where schema have references to models
|
|
27096
27917
|
// that lives in the rootSchema but not in the schema in question.
|
|
27097
27918
|
const schemaWithIdRefPrefix = withIdRefPrefix(schema);
|
|
27098
|
-
|
|
27919
|
+
schemaId = (_a = schemaWithIdRefPrefix[ID_KEY]) !== null && _a !== void 0 ? _a : hashForSchema(schemaWithIdRefPrefix);
|
|
27099
27920
|
let compiledValidator;
|
|
27100
27921
|
compiledValidator = this.ajv.getSchema(schemaId);
|
|
27101
27922
|
if (compiledValidator === undefined) {
|
|
@@ -27106,12 +27927,20 @@
|
|
|
27106
27927
|
this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||
|
|
27107
27928
|
this.ajv.compile(schemaWithIdRefPrefix);
|
|
27108
27929
|
}
|
|
27930
|
+
compiled = true;
|
|
27109
27931
|
const result = compiledValidator(formData);
|
|
27110
27932
|
return result;
|
|
27111
27933
|
}
|
|
27112
27934
|
catch (e) {
|
|
27113
27935
|
// oxlint-disable-next-line no-console
|
|
27114
27936
|
console.warn('Error encountered compiling schema:', e);
|
|
27937
|
+
// Remove the broken schema from AJV's registry so a subsequent rawValidation
|
|
27938
|
+
// or isValid call does not silently reuse a cached entry that bypassed
|
|
27939
|
+
// meta-schema validation. Guard with !compiled so that a runtime error thrown
|
|
27940
|
+
// by compiledValidator(formData) does not evict a correctly-compiled schema.
|
|
27941
|
+
if (!compiled && schemaId !== undefined) {
|
|
27942
|
+
this.ajv.removeSchema(schemaId);
|
|
27943
|
+
}
|
|
27115
27944
|
return false;
|
|
27116
27945
|
}
|
|
27117
27946
|
}
|
|
@@ -27150,7 +27979,7 @@
|
|
|
27150
27979
|
}
|
|
27151
27980
|
|
|
27152
27981
|
/**
|
|
27153
|
-
* @license lucide-react v1.
|
|
27982
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27154
27983
|
*
|
|
27155
27984
|
* This source code is licensed under the ISC license.
|
|
27156
27985
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27161,7 +27990,7 @@
|
|
|
27161
27990
|
}).join(" ").trim();
|
|
27162
27991
|
|
|
27163
27992
|
/**
|
|
27164
|
-
* @license lucide-react v1.
|
|
27993
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27165
27994
|
*
|
|
27166
27995
|
* This source code is licensed under the ISC license.
|
|
27167
27996
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27170,7 +27999,7 @@
|
|
|
27170
27999
|
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
27171
28000
|
|
|
27172
28001
|
/**
|
|
27173
|
-
* @license lucide-react v1.
|
|
28002
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27174
28003
|
*
|
|
27175
28004
|
* This source code is licensed under the ISC license.
|
|
27176
28005
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27182,7 +28011,7 @@
|
|
|
27182
28011
|
);
|
|
27183
28012
|
|
|
27184
28013
|
/**
|
|
27185
|
-
* @license lucide-react v1.
|
|
28014
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27186
28015
|
*
|
|
27187
28016
|
* This source code is licensed under the ISC license.
|
|
27188
28017
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27195,7 +28024,7 @@
|
|
|
27195
28024
|
};
|
|
27196
28025
|
|
|
27197
28026
|
/**
|
|
27198
|
-
* @license lucide-react v1.
|
|
28027
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27199
28028
|
*
|
|
27200
28029
|
* This source code is licensed under the ISC license.
|
|
27201
28030
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27214,7 +28043,7 @@
|
|
|
27214
28043
|
};
|
|
27215
28044
|
|
|
27216
28045
|
/**
|
|
27217
|
-
* @license lucide-react v1.
|
|
28046
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27218
28047
|
*
|
|
27219
28048
|
* This source code is licensed under the ISC license.
|
|
27220
28049
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27264,7 +28093,7 @@
|
|
|
27264
28093
|
);
|
|
27265
28094
|
|
|
27266
28095
|
/**
|
|
27267
|
-
* @license lucide-react v1.
|
|
28096
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27268
28097
|
*
|
|
27269
28098
|
* This source code is licensed under the ISC license.
|
|
27270
28099
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27289,7 +28118,7 @@
|
|
|
27289
28118
|
};
|
|
27290
28119
|
|
|
27291
28120
|
/**
|
|
27292
|
-
* @license lucide-react v1.
|
|
28121
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27293
28122
|
*
|
|
27294
28123
|
* This source code is licensed under the ISC license.
|
|
27295
28124
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27300,7 +28129,7 @@
|
|
|
27300
28129
|
const Check = createLucideIcon("check", __iconNode$9);
|
|
27301
28130
|
|
|
27302
28131
|
/**
|
|
27303
|
-
* @license lucide-react v1.
|
|
28132
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27304
28133
|
*
|
|
27305
28134
|
* This source code is licensed under the ISC license.
|
|
27306
28135
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27311,7 +28140,7 @@
|
|
|
27311
28140
|
const ChevronDown = createLucideIcon("chevron-down", __iconNode$8);
|
|
27312
28141
|
|
|
27313
28142
|
/**
|
|
27314
|
-
* @license lucide-react v1.
|
|
28143
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27315
28144
|
*
|
|
27316
28145
|
* This source code is licensed under the ISC license.
|
|
27317
28146
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27322,7 +28151,7 @@
|
|
|
27322
28151
|
const ChevronUp = createLucideIcon("chevron-up", __iconNode$7);
|
|
27323
28152
|
|
|
27324
28153
|
/**
|
|
27325
|
-
* @license lucide-react v1.
|
|
28154
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27326
28155
|
*
|
|
27327
28156
|
* This source code is licensed under the ISC license.
|
|
27328
28157
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27337,7 +28166,7 @@
|
|
|
27337
28166
|
const CircleAlert = createLucideIcon("circle-alert", __iconNode$6);
|
|
27338
28167
|
|
|
27339
28168
|
/**
|
|
27340
|
-
* @license lucide-react v1.
|
|
28169
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27341
28170
|
*
|
|
27342
28171
|
* This source code is licensed under the ISC license.
|
|
27343
28172
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27352,7 +28181,7 @@
|
|
|
27352
28181
|
const CirclePlus = createLucideIcon("circle-plus", __iconNode$5);
|
|
27353
28182
|
|
|
27354
28183
|
/**
|
|
27355
|
-
* @license lucide-react v1.
|
|
28184
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27356
28185
|
*
|
|
27357
28186
|
* This source code is licensed under the ISC license.
|
|
27358
28187
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27363,7 +28192,7 @@
|
|
|
27363
28192
|
const Circle = createLucideIcon("circle", __iconNode$4);
|
|
27364
28193
|
|
|
27365
28194
|
/**
|
|
27366
|
-
* @license lucide-react v1.
|
|
28195
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27367
28196
|
*
|
|
27368
28197
|
* This source code is licensed under the ISC license.
|
|
27369
28198
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27377,7 +28206,7 @@
|
|
|
27377
28206
|
const Copy = createLucideIcon("copy", __iconNode$3);
|
|
27378
28207
|
|
|
27379
28208
|
/**
|
|
27380
|
-
* @license lucide-react v1.
|
|
28209
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27381
28210
|
*
|
|
27382
28211
|
* This source code is licensed under the ISC license.
|
|
27383
28212
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27391,7 +28220,7 @@
|
|
|
27391
28220
|
const Search = createLucideIcon("search", __iconNode$2);
|
|
27392
28221
|
|
|
27393
28222
|
/**
|
|
27394
|
-
* @license lucide-react v1.
|
|
28223
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27395
28224
|
*
|
|
27396
28225
|
* This source code is licensed under the ISC license.
|
|
27397
28226
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27408,7 +28237,7 @@
|
|
|
27408
28237
|
const Trash2 = createLucideIcon("trash-2", __iconNode$1);
|
|
27409
28238
|
|
|
27410
28239
|
/**
|
|
27411
|
-
* @license lucide-react v1.
|
|
28240
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27412
28241
|
*
|
|
27413
28242
|
* This source code is licensed under the ISC license.
|
|
27414
28243
|
* See the LICENSE file in the root directory of this source tree.
|