@crowdin/app-project-module 2.9.1 → 2.11.0
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 +3 -0
- package/out/index.js +22 -10
- package/out/modules/integration/util/context.d.ts +11 -0
- package/out/modules/integration/util/context.js +17 -0
- package/out/modules/integration/util/cron.js +70 -63
- package/out/modules/integration/util/job.js +88 -80
- package/out/modules/integration/util/webhooks.d.ts +11 -0
- package/out/modules/integration/util/webhooks.js +35 -56
- package/out/static/css/styles.css +2 -2
- package/out/static/ui/about.bundle.js.map +1 -1
- package/out/static/ui/error.bundle.js.map +1 -1
- package/out/static/ui/form.bundle.js +1028 -232
- package/out/static/ui/form.bundle.js.map +1 -1
- package/out/static/ui/install.bundle.js.map +1 -1
- package/out/static/ui/login.bundle.js.map +1 -1
- package/out/static/ui/main.bundle.js.map +1 -1
- package/out/static/ui/oauth.bundle.js.map +1 -1
- package/out/static/ui/subscription.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/cron.d.ts +0 -2
- package/out/util/cron.js +18 -56
- package/out/util/crowdin-storage.d.ts +7 -0
- package/out/util/crowdin-storage.js +78 -0
- package/out/util/logger.d.ts +23 -1
- package/out/util/logger.js +36 -38
- package/package.json +12 -6
|
@@ -2078,7 +2078,10 @@
|
|
|
2078
2078
|
* not enumerable and symbol properties.
|
|
2079
2079
|
*/
|
|
2080
2080
|
function getStrictProperties(object) {
|
|
2081
|
-
|
|
2081
|
+
const symbols = getOwnPropertySymbols(object);
|
|
2082
|
+
return symbols.length
|
|
2083
|
+
? getOwnPropertyNames(object).concat(symbols)
|
|
2084
|
+
: getOwnPropertyNames(object);
|
|
2082
2085
|
}
|
|
2083
2086
|
/**
|
|
2084
2087
|
* Whether the object contains the property passed as an own property.
|
|
@@ -2168,7 +2171,7 @@
|
|
|
2168
2171
|
if (!size) {
|
|
2169
2172
|
return true;
|
|
2170
2173
|
}
|
|
2171
|
-
const matchedIndices = new
|
|
2174
|
+
const matchedIndices = new Uint8Array(size);
|
|
2172
2175
|
const aIterable = a.entries();
|
|
2173
2176
|
let aResult;
|
|
2174
2177
|
let bResult;
|
|
@@ -2179,7 +2182,7 @@
|
|
|
2179
2182
|
break;
|
|
2180
2183
|
}
|
|
2181
2184
|
const bIterable = b.entries();
|
|
2182
|
-
let hasMatch =
|
|
2185
|
+
let hasMatch = 0;
|
|
2183
2186
|
let matchIndex = 0;
|
|
2184
2187
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
2185
2188
|
while ((bResult = bIterable.next())) {
|
|
@@ -2194,7 +2197,7 @@
|
|
|
2194
2197
|
const bEntry = bResult.value;
|
|
2195
2198
|
if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state)
|
|
2196
2199
|
&& state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {
|
|
2197
|
-
hasMatch = matchedIndices[matchIndex] =
|
|
2200
|
+
hasMatch = matchedIndices[matchIndex] = 1;
|
|
2198
2201
|
break;
|
|
2199
2202
|
}
|
|
2200
2203
|
matchIndex++;
|
|
@@ -2283,7 +2286,7 @@
|
|
|
2283
2286
|
if (!size) {
|
|
2284
2287
|
return true;
|
|
2285
2288
|
}
|
|
2286
|
-
const matchedIndices = new
|
|
2289
|
+
const matchedIndices = new Uint8Array(size);
|
|
2287
2290
|
const aIterable = a.values();
|
|
2288
2291
|
let aResult;
|
|
2289
2292
|
let bResult;
|
|
@@ -2293,7 +2296,7 @@
|
|
|
2293
2296
|
break;
|
|
2294
2297
|
}
|
|
2295
2298
|
const bIterable = b.values();
|
|
2296
|
-
let hasMatch =
|
|
2299
|
+
let hasMatch = 0;
|
|
2297
2300
|
let matchIndex = 0;
|
|
2298
2301
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
2299
2302
|
while ((bResult = bIterable.next())) {
|
|
@@ -2302,7 +2305,7 @@
|
|
|
2302
2305
|
}
|
|
2303
2306
|
if (!matchedIndices[matchIndex]
|
|
2304
2307
|
&& state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {
|
|
2305
|
-
hasMatch = matchedIndices[matchIndex] =
|
|
2308
|
+
hasMatch = matchedIndices[matchIndex] = 1;
|
|
2306
2309
|
break;
|
|
2307
2310
|
}
|
|
2308
2311
|
matchIndex++;
|
|
@@ -2317,8 +2320,8 @@
|
|
|
2317
2320
|
* Whether the TypedArray instances are equal in value.
|
|
2318
2321
|
*/
|
|
2319
2322
|
function areTypedArraysEqual(a, b) {
|
|
2320
|
-
let index = a.
|
|
2321
|
-
if (b.
|
|
2323
|
+
let index = a.length;
|
|
2324
|
+
if (b.length !== index || a.byteOffset !== b.byteOffset) {
|
|
2322
2325
|
return false;
|
|
2323
2326
|
}
|
|
2324
2327
|
while (index-- > 0) {
|
|
@@ -2688,10 +2691,13 @@
|
|
|
2688
2691
|
const isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
2689
2692
|
|
|
2690
2693
|
/** @type {(value: string) => boolean} */
|
|
2691
|
-
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);
|
|
2692
2698
|
|
|
2693
2699
|
/** @type {(value: string) => boolean} */
|
|
2694
|
-
const
|
|
2700
|
+
const isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
|
|
2695
2701
|
|
|
2696
2702
|
/**
|
|
2697
2703
|
* @param {Array<string>} input
|
|
@@ -2724,12 +2730,14 @@
|
|
|
2724
2730
|
return acc
|
|
2725
2731
|
}
|
|
2726
2732
|
|
|
2727
|
-
/**
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
|
|
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\-._~]$/);
|
|
2733
2741
|
|
|
2734
2742
|
/**
|
|
2735
2743
|
* @param {string} value
|
|
@@ -2737,89 +2745,129 @@
|
|
|
2737
2745
|
*/
|
|
2738
2746
|
const nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
2739
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
|
+
|
|
2740
2754
|
/**
|
|
2741
|
-
*
|
|
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
|
|
2742
2766
|
* @returns {boolean}
|
|
2743
2767
|
*/
|
|
2744
|
-
function
|
|
2745
|
-
|
|
2746
|
-
return true
|
|
2768
|
+
function nonSimpleMailtoDomain (domain) {
|
|
2769
|
+
return nonSimpleDomainChars(domain) || numericLastLabel(domain)
|
|
2747
2770
|
}
|
|
2748
2771
|
|
|
2749
2772
|
/**
|
|
2750
|
-
* @param {
|
|
2751
|
-
* @param {Array<string>} address
|
|
2752
|
-
* @param {GetIPV6Result} output
|
|
2773
|
+
* @param {string} zone
|
|
2753
2774
|
* @returns {boolean}
|
|
2754
2775
|
*/
|
|
2755
|
-
function
|
|
2756
|
-
if (
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
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
|
|
2763
2784
|
}
|
|
2764
|
-
|
|
2785
|
+
return false
|
|
2765
2786
|
}
|
|
2787
|
+
|
|
2766
2788
|
return true
|
|
2767
2789
|
}
|
|
2768
2790
|
|
|
2769
2791
|
/**
|
|
2770
|
-
*
|
|
2771
|
-
*
|
|
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}
|
|
2772
2797
|
*/
|
|
2773
|
-
function
|
|
2774
|
-
let
|
|
2775
|
-
|
|
2776
|
-
|
|
2777
|
-
|
|
2778
|
-
|
|
2779
|
-
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
for (let i = 0; i < input.length; i++) {
|
|
2786
|
-
const cursor = input[i];
|
|
2787
|
-
if (cursor === '[' || cursor === ']') { continue }
|
|
2788
|
-
if (cursor === ':') {
|
|
2789
|
-
if (endipv6Encountered === true) {
|
|
2790
|
-
endIpv6 = true;
|
|
2791
|
-
}
|
|
2792
|
-
if (!consume(buffer, address, output)) { break }
|
|
2793
|
-
if (++tokenCount > 7) {
|
|
2794
|
-
// not valid
|
|
2795
|
-
output.error = true;
|
|
2796
|
-
break
|
|
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;
|
|
2797
2810
|
}
|
|
2798
|
-
if (i > 0 && input[i - 1] === ':') {
|
|
2799
|
-
endipv6Encountered = true;
|
|
2800
|
-
}
|
|
2801
|
-
address.push(':');
|
|
2802
|
-
continue
|
|
2803
|
-
} else if (cursor === '%') {
|
|
2804
|
-
if (!consume(buffer, address, output)) { break }
|
|
2805
|
-
// switch to zone detection
|
|
2806
|
-
consume = consumeIsZone;
|
|
2807
2811
|
} else {
|
|
2808
|
-
|
|
2809
|
-
|
|
2812
|
+
runStart = -1;
|
|
2813
|
+
runLength = 0;
|
|
2810
2814
|
}
|
|
2811
2815
|
}
|
|
2812
|
-
|
|
2813
|
-
|
|
2814
|
-
|
|
2815
|
-
|
|
2816
|
-
|
|
2817
|
-
|
|
2818
|
-
|
|
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
|
|
2819
2853
|
}
|
|
2854
|
+
|
|
2855
|
+
if (!isHextet(part)) return undefined
|
|
2856
|
+
parts[i] = parseInt(part, 16).toString(16);
|
|
2857
|
+
hextetCount++;
|
|
2820
2858
|
}
|
|
2821
|
-
|
|
2822
|
-
|
|
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)
|
|
2823
2871
|
}
|
|
2824
2872
|
|
|
2825
2873
|
/**
|
|
@@ -2827,26 +2875,49 @@
|
|
|
2827
2875
|
* @property {string} host - The normalized host.
|
|
2828
2876
|
* @property {string} [escapedHost] - The escaped host.
|
|
2829
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.
|
|
2830
2880
|
*/
|
|
2831
2881
|
|
|
2832
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
|
+
*
|
|
2833
2887
|
* @param {string} host
|
|
2834
2888
|
* @returns {NormalizeIPv6Result}
|
|
2835
2889
|
*/
|
|
2836
2890
|
function normalizeIPv6 (host) {
|
|
2837
|
-
|
|
2838
|
-
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 }
|
|
2839
2894
|
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2843
|
-
|
|
2844
|
-
|
|
2845
|
-
|
|
2846
|
-
|
|
2847
|
-
return { host
|
|
2848
|
-
}
|
|
2849
|
-
|
|
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
|
|
2850
2921
|
}
|
|
2851
2922
|
}
|
|
2852
2923
|
|
|
@@ -2972,7 +3043,7 @@
|
|
|
2972
3043
|
|
|
2973
3044
|
/**
|
|
2974
3045
|
* Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.
|
|
2975
|
-
* Reserved delimiters such as `%2F`
|
|
3046
|
+
* Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.
|
|
2976
3047
|
*
|
|
2977
3048
|
* @param {string} input
|
|
2978
3049
|
* @param {boolean} [decodeUnreserved=false]
|
|
@@ -3113,6 +3184,60 @@
|
|
|
3113
3184
|
return output
|
|
3114
3185
|
}
|
|
3115
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
|
+
|
|
3116
3241
|
/**
|
|
3117
3242
|
* Normalizes the percent-encoding of a query or fragment component.
|
|
3118
3243
|
*
|
|
@@ -3170,6 +3295,85 @@
|
|
|
3170
3295
|
return output
|
|
3171
3296
|
}
|
|
3172
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
|
+
|
|
3173
3377
|
/**
|
|
3174
3378
|
* Escapes a component while preserving existing valid percent escapes.
|
|
3175
3379
|
*
|
|
@@ -3219,15 +3423,21 @@
|
|
|
3219
3423
|
const uriTokens = [];
|
|
3220
3424
|
|
|
3221
3425
|
if (component.userinfo !== undefined) {
|
|
3222
|
-
uriTokens.push(component.userinfo);
|
|
3426
|
+
uriTokens.push(encodeUserinfo(component.userinfo));
|
|
3223
3427
|
uriTokens.push('@');
|
|
3224
3428
|
}
|
|
3225
3429
|
|
|
3226
3430
|
if (component.host !== undefined) {
|
|
3227
|
-
let host =
|
|
3431
|
+
let host = component.host;
|
|
3228
3432
|
if (!isIPv4(host)) {
|
|
3229
|
-
|
|
3230
|
-
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) {
|
|
3231
3441
|
host = `[${ipV6res.escapedHost}]`;
|
|
3232
3442
|
} else {
|
|
3233
3443
|
host = reescapeHostDelimiters(host, false);
|
|
@@ -3244,12 +3454,19 @@
|
|
|
3244
3454
|
return uriTokens.length ? uriTokens.join('') : undefined
|
|
3245
3455
|
}
|
|
3246
3456
|
utils$1 = {
|
|
3457
|
+
BYTE_HEX,
|
|
3458
|
+
percentEncodeNonAscii,
|
|
3247
3459
|
nonSimpleDomain,
|
|
3460
|
+
nonSimpleMailtoDomain,
|
|
3248
3461
|
recomposeAuthority,
|
|
3249
3462
|
reescapeHostDelimiters,
|
|
3250
3463
|
normalizePercentEncoding,
|
|
3251
3464
|
normalizePathEncoding,
|
|
3465
|
+
serializePathEncoding,
|
|
3252
3466
|
normalizeQueryFragmentEncoding,
|
|
3467
|
+
encodeUserinfo,
|
|
3468
|
+
encodeQuery,
|
|
3469
|
+
encodeFragment,
|
|
3253
3470
|
escapePreservingEscapes,
|
|
3254
3471
|
removeDotSegments,
|
|
3255
3472
|
isIPv4,
|
|
@@ -3267,11 +3484,11 @@
|
|
|
3267
3484
|
if (hasRequiredSchemes$1) return schemes$1;
|
|
3268
3485
|
hasRequiredSchemes$1 = 1;
|
|
3269
3486
|
|
|
3270
|
-
const { isUUID } = requireUtils$1();
|
|
3271
|
-
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;
|
|
3272
3489
|
|
|
3273
3490
|
const supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',
|
|
3274
|
-
'wss', 'urn', 'urn:uuid']);
|
|
3491
|
+
'wss', 'urn', 'urn:uuid', 'mailto']);
|
|
3275
3492
|
|
|
3276
3493
|
/** @typedef {supportedSchemeNames[number]} SchemeName */
|
|
3277
3494
|
|
|
@@ -3380,9 +3597,14 @@
|
|
|
3380
3597
|
|
|
3381
3598
|
// reconstruct path from resource name
|
|
3382
3599
|
if (wsComponent.resourceName) {
|
|
3383
|
-
const
|
|
3600
|
+
const queryIndex = wsComponent.resourceName.indexOf('?');
|
|
3601
|
+
const path = queryIndex === -1
|
|
3602
|
+
? wsComponent.resourceName
|
|
3603
|
+
: wsComponent.resourceName.slice(0, queryIndex);
|
|
3384
3604
|
wsComponent.path = (path && path !== '/' ? path : undefined);
|
|
3385
|
-
wsComponent.query =
|
|
3605
|
+
wsComponent.query = queryIndex === -1
|
|
3606
|
+
? undefined
|
|
3607
|
+
: wsComponent.resourceName.slice(queryIndex + 1);
|
|
3386
3608
|
wsComponent.resourceName = undefined;
|
|
3387
3609
|
}
|
|
3388
3610
|
|
|
@@ -3399,7 +3621,7 @@
|
|
|
3399
3621
|
return urnComponent
|
|
3400
3622
|
}
|
|
3401
3623
|
const matches = urnComponent.path.match(URN_REG);
|
|
3402
|
-
if (matches) {
|
|
3624
|
+
if (matches && matches[0] === urnComponent.path) {
|
|
3403
3625
|
const scheme = options.scheme || urnComponent.scheme || 'urn';
|
|
3404
3626
|
urnComponent.nid = matches[1].toLowerCase();
|
|
3405
3627
|
urnComponent.nss = matches[2];
|
|
@@ -3502,13 +3724,385 @@
|
|
|
3502
3724
|
skipNormalize: true
|
|
3503
3725
|
});
|
|
3504
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
|
+
|
|
3505
4098
|
const SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({
|
|
3506
4099
|
http,
|
|
3507
4100
|
https,
|
|
3508
4101
|
ws,
|
|
3509
4102
|
wss,
|
|
3510
4103
|
urn,
|
|
3511
|
-
'urn:uuid': urnuuid
|
|
4104
|
+
'urn:uuid': urnuuid,
|
|
4105
|
+
mailto
|
|
3512
4106
|
});
|
|
3513
4107
|
|
|
3514
4108
|
Object.setPrototypeOf(SCHEMES, null);
|
|
@@ -3541,9 +4135,24 @@
|
|
|
3541
4135
|
if (hasRequiredFastUri$1) return fastUri$1.exports;
|
|
3542
4136
|
hasRequiredFastUri$1 = 1;
|
|
3543
4137
|
|
|
3544
|
-
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, normalizeQueryFragmentEncoding,
|
|
4138
|
+
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = requireUtils$1();
|
|
3545
4139
|
const { SCHEMES, getSchemeHandler } = requireSchemes$1();
|
|
3546
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
|
+
|
|
3547
4156
|
/**
|
|
3548
4157
|
* @template {import('./types/index').URIComponent|string} T
|
|
3549
4158
|
* @param {T} uri
|
|
@@ -3567,12 +4176,50 @@
|
|
|
3567
4176
|
*/
|
|
3568
4177
|
function resolve (baseURI, relativeURI, options) {
|
|
3569
4178
|
const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' };
|
|
3570
|
-
const {
|
|
3571
|
-
|
|
3572
|
-
|
|
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
|
+
) {
|
|
3573
4207
|
throw new Error(baseParsed.error || relativeParsed.error || 'URI is malformed.')
|
|
3574
4208
|
}
|
|
3575
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
|
+
}
|
|
3576
4223
|
schemelessOptions.skipEscape = true;
|
|
3577
4224
|
return serialize(resolved, schemelessOptions)
|
|
3578
4225
|
}
|
|
@@ -3655,7 +4302,7 @@
|
|
|
3655
4302
|
const normalizedA = normalizeComparableURI(uriA, options);
|
|
3656
4303
|
const normalizedB = normalizeComparableURI(uriB, options);
|
|
3657
4304
|
|
|
3658
|
-
return normalizedA !== undefined && normalizedB !== undefined && normalizedA
|
|
4305
|
+
return normalizedA !== undefined && normalizedB !== undefined && normalizedA === normalizedB
|
|
3659
4306
|
}
|
|
3660
4307
|
|
|
3661
4308
|
/**
|
|
@@ -3678,30 +4325,39 @@
|
|
|
3678
4325
|
reference: cmpts.reference,
|
|
3679
4326
|
resourceName: cmpts.resourceName,
|
|
3680
4327
|
secure: cmpts.secure,
|
|
4328
|
+
to: cmpts.to,
|
|
4329
|
+
subject: cmpts.subject,
|
|
4330
|
+
body: cmpts.body,
|
|
4331
|
+
headers: cmpts.headers,
|
|
3681
4332
|
error: ''
|
|
3682
4333
|
};
|
|
3683
4334
|
const options = Object.assign({}, opts);
|
|
3684
4335
|
const uriTokens = [];
|
|
3685
4336
|
|
|
4337
|
+
if (component.scheme) {
|
|
4338
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
4339
|
+
}
|
|
4340
|
+
|
|
3686
4341
|
// find scheme handler
|
|
3687
4342
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
3688
4343
|
|
|
3689
4344
|
// perform scheme specific serialization
|
|
3690
4345
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
3691
4346
|
|
|
4347
|
+
const hasAuthority = component.userinfo !== undefined || component.host !== undefined || component.port !== undefined;
|
|
4348
|
+
const pathNoScheme = !options.skipEscape && component.scheme === undefined && !hasAuthority;
|
|
4349
|
+
|
|
3692
4350
|
if (component.path !== undefined) {
|
|
3693
4351
|
if (!options.skipEscape) {
|
|
3694
|
-
component.path =
|
|
3695
|
-
|
|
3696
|
-
if (component.scheme !== undefined) {
|
|
3697
|
-
component.path = component.path.split('%3A').join(':');
|
|
3698
|
-
}
|
|
4352
|
+
component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
3699
4353
|
} else {
|
|
3700
4354
|
component.path = normalizePercentEncoding(component.path);
|
|
3701
4355
|
}
|
|
3702
4356
|
}
|
|
3703
4357
|
|
|
3704
4358
|
if (options.reference !== 'suffix' && component.scheme) {
|
|
4359
|
+
// Scheme handlers may replace the scheme during serialization.
|
|
4360
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
3705
4361
|
uriTokens.push(component.scheme, ':');
|
|
3706
4362
|
}
|
|
3707
4363
|
|
|
@@ -3724,6 +4380,13 @@
|
|
|
3724
4380
|
s = removeDotSegments(s);
|
|
3725
4381
|
}
|
|
3726
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
|
+
|
|
3727
4390
|
if (
|
|
3728
4391
|
authority === undefined &&
|
|
3729
4392
|
s[0] === '/' &&
|
|
@@ -3737,11 +4400,11 @@
|
|
|
3737
4400
|
}
|
|
3738
4401
|
|
|
3739
4402
|
if (component.query !== undefined) {
|
|
3740
|
-
uriTokens.push('?', component.query);
|
|
4403
|
+
uriTokens.push('?', encodeQuery(component.query));
|
|
3741
4404
|
}
|
|
3742
4405
|
|
|
3743
4406
|
if (component.fragment !== undefined) {
|
|
3744
|
-
uriTokens.push('#', component.fragment);
|
|
4407
|
+
uriTokens.push('#', encodeFragment(component.fragment));
|
|
3745
4408
|
}
|
|
3746
4409
|
return uriTokens.join('')
|
|
3747
4410
|
}
|
|
@@ -3778,10 +4441,74 @@
|
|
|
3778
4441
|
return undefined
|
|
3779
4442
|
}
|
|
3780
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
|
+
|
|
3781
4508
|
/**
|
|
3782
4509
|
* @param {string} uri
|
|
3783
4510
|
* @param {import('./types/index').Options} [opts]
|
|
3784
|
-
* @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 }}
|
|
3785
4512
|
*/
|
|
3786
4513
|
function parseWithStatus (uri, opts) {
|
|
3787
4514
|
const options = Object.assign({}, opts);
|
|
@@ -3797,6 +4524,11 @@
|
|
|
3797
4524
|
};
|
|
3798
4525
|
|
|
3799
4526
|
let malformedAuthorityOrPort = false;
|
|
4527
|
+
let malformedPercentEncoding = false;
|
|
4528
|
+
let malformedSchemeSpecific = false;
|
|
4529
|
+
let malformedHost = false;
|
|
4530
|
+
let malformedIPLiteral = false;
|
|
4531
|
+
let malformedScheme = false;
|
|
3800
4532
|
|
|
3801
4533
|
let isIP = false;
|
|
3802
4534
|
if (options.reference === 'suffix') {
|
|
@@ -3846,7 +4578,7 @@
|
|
|
3846
4578
|
|
|
3847
4579
|
if (matches) {
|
|
3848
4580
|
// store each component
|
|
3849
|
-
parsed.scheme = matches[1]
|
|
4581
|
+
parsed.scheme = matches[1];
|
|
3850
4582
|
parsed.userinfo = matches[3];
|
|
3851
4583
|
parsed.host = matches[4];
|
|
3852
4584
|
parsed.port = parseInt(matches[5], 10);
|
|
@@ -3854,6 +4586,21 @@
|
|
|
3854
4586
|
parsed.query = matches[7];
|
|
3855
4587
|
parsed.fragment = matches[8];
|
|
3856
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
|
+
|
|
3857
4604
|
// fix port number
|
|
3858
4605
|
if (isNaN(parsed.port)) {
|
|
3859
4606
|
parsed.port = matches[5];
|
|
@@ -3868,9 +4615,16 @@
|
|
|
3868
4615
|
if (parsed.host) {
|
|
3869
4616
|
const ipv4result = isIPv4(parsed.host);
|
|
3870
4617
|
if (ipv4result === false) {
|
|
4618
|
+
const bracketedIPLiteral = parsed.host[0] === '[' && parsed.host[parsed.host.length - 1] === ']';
|
|
3871
4619
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
3872
|
-
|
|
3873
|
-
|
|
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
|
+
}
|
|
3874
4628
|
} else {
|
|
3875
4629
|
isIP = true;
|
|
3876
4630
|
}
|
|
@@ -3893,27 +4647,14 @@
|
|
|
3893
4647
|
// find scheme handler
|
|
3894
4648
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
3895
4649
|
|
|
3896
|
-
//
|
|
3897
|
-
|
|
3898
|
-
// if host component is a domain name
|
|
3899
|
-
if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {
|
|
3900
|
-
// convert Unicode IDN -> ASCII IDN
|
|
3901
|
-
try {
|
|
3902
|
-
parsed.host = new URL('http://' + parsed.host).hostname;
|
|
3903
|
-
} catch (e) {
|
|
3904
|
-
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
3905
|
-
}
|
|
3906
|
-
}
|
|
3907
|
-
// convert IRI -> URI
|
|
3908
|
-
}
|
|
4650
|
+
// convert Unicode IDN -> ASCII IDN when the effective scheme uses domain hosts
|
|
4651
|
+
malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
3909
4652
|
|
|
3910
4653
|
if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {
|
|
3911
4654
|
if (uri.indexOf('%') !== -1) {
|
|
3912
|
-
if (parsed.
|
|
3913
|
-
parsed.
|
|
3914
|
-
|
|
3915
|
-
if (parsed.host !== undefined) {
|
|
3916
|
-
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);
|
|
3917
4658
|
}
|
|
3918
4659
|
}
|
|
3919
4660
|
if (parsed.path) {
|
|
@@ -3930,11 +4671,14 @@
|
|
|
3930
4671
|
// perform scheme specific parsing
|
|
3931
4672
|
if (schemeHandler && schemeHandler.parse) {
|
|
3932
4673
|
schemeHandler.parse(parsed, options);
|
|
4674
|
+
if (schemeHandler === SCHEMES.urn && parsed.nid === undefined) {
|
|
4675
|
+
malformedSchemeSpecific = true;
|
|
4676
|
+
}
|
|
3933
4677
|
}
|
|
3934
4678
|
} else {
|
|
3935
4679
|
parsed.error = parsed.error || 'URI can not be parsed.';
|
|
3936
4680
|
}
|
|
3937
|
-
return { parsed, malformedAuthorityOrPort }
|
|
4681
|
+
return { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme }
|
|
3938
4682
|
}
|
|
3939
4683
|
|
|
3940
4684
|
/**
|
|
@@ -3958,13 +4702,17 @@
|
|
|
3958
4702
|
/**
|
|
3959
4703
|
* @param {string} uri
|
|
3960
4704
|
* @param {import('./types/index').Options} [opts]
|
|
3961
|
-
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}
|
|
4705
|
+
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
3962
4706
|
*/
|
|
3963
4707
|
function normalizeStringWithStatus (uri, opts) {
|
|
3964
|
-
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
4708
|
+
const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
|
|
3965
4709
|
return {
|
|
3966
|
-
normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
|
|
3967
|
-
malformedAuthorityOrPort
|
|
4710
|
+
normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
|
|
4711
|
+
malformedAuthorityOrPort,
|
|
4712
|
+
malformedPercentEncoding,
|
|
4713
|
+
malformedSchemeSpecific,
|
|
4714
|
+
malformedHost,
|
|
4715
|
+
malformedScheme
|
|
3968
4716
|
}
|
|
3969
4717
|
}
|
|
3970
4718
|
|
|
@@ -3974,14 +4722,18 @@
|
|
|
3974
4722
|
* @returns {string|undefined}
|
|
3975
4723
|
*/
|
|
3976
4724
|
function normalizeComparableURI (uri, opts) {
|
|
3977
|
-
if (typeof uri
|
|
3978
|
-
|
|
3979
|
-
return malformedAuthorityOrPort ? undefined : normalized
|
|
4725
|
+
if (typeof uri !== 'string' && typeof uri !== 'object') {
|
|
4726
|
+
return undefined
|
|
3980
4727
|
}
|
|
3981
4728
|
|
|
3982
|
-
|
|
3983
|
-
|
|
4729
|
+
let value;
|
|
4730
|
+
try {
|
|
4731
|
+
value = typeof uri === 'string' ? uri : serialize(uri, opts);
|
|
4732
|
+
} catch {
|
|
4733
|
+
return undefined
|
|
3984
4734
|
}
|
|
4735
|
+
const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
|
|
4736
|
+
return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? undefined : normalized
|
|
3985
4737
|
}
|
|
3986
4738
|
|
|
3987
4739
|
const fastUri = {
|
|
@@ -8689,7 +9441,7 @@
|
|
|
8689
9441
|
const lcm = (a, b) => Math.abs(a * b) / gcd(a, b);
|
|
8690
9442
|
|
|
8691
9443
|
function simplePatternsMerger(a, b) {
|
|
8692
|
-
return a === b ? a :
|
|
9444
|
+
return a === b ? a : `(?=.*(?:${a}))(?=.*(?:${b}))`;
|
|
8693
9445
|
}
|
|
8694
9446
|
|
|
8695
9447
|
function createPairCombinations(l, r, action) {
|
|
@@ -9083,7 +9835,7 @@
|
|
|
9083
9835
|
let target = { ...left };
|
|
9084
9836
|
const assigners = new Set();
|
|
9085
9837
|
const checks = new Set();
|
|
9086
|
-
const rKeys =
|
|
9838
|
+
const rKeys = Reflect.ownKeys(right);
|
|
9087
9839
|
const l = rKeys.length;
|
|
9088
9840
|
for (let i = 0; i < l; i++) {
|
|
9089
9841
|
const rKey = rKeys[i];
|
|
@@ -13329,19 +14081,28 @@
|
|
|
13329
14081
|
}
|
|
13330
14082
|
return hash.toString(16);
|
|
13331
14083
|
}
|
|
13332
|
-
/**
|
|
14084
|
+
/** Recursively serializes a value to JSON with object keys sorted alphabetically to produce
|
|
14085
|
+
* a stable string representation.
|
|
13333
14086
|
*
|
|
13334
14087
|
* @param object - The object for which the sorted stringify is desired
|
|
13335
14088
|
* @returns - The stringified object with keys sorted in a consistent order
|
|
13336
14089
|
*/
|
|
13337
14090
|
function sortedJSONStringify(object) {
|
|
13338
|
-
|
|
13339
|
-
|
|
13340
|
-
|
|
13341
|
-
|
|
13342
|
-
return
|
|
13343
|
-
}
|
|
13344
|
-
|
|
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(',')}}`;
|
|
13345
14106
|
}
|
|
13346
14107
|
/** Stringifies an `object` and returns the hash of the resulting string. Sorts object fields
|
|
13347
14108
|
* in consistent order before stringify to prevent different hash ids for the same object.
|
|
@@ -16580,57 +17341,57 @@
|
|
|
16580
17341
|
return jsxRuntimeExports.jsx(StringField, { ...props, formData: displayValue, onChange: handleChange });
|
|
16581
17342
|
}
|
|
16582
17343
|
|
|
16583
|
-
var j;function B$
|
|
16584
|
-
|
|
16585
|
-
var I=32,w=9,
|
|
16586
|
-
`)return null;
|
|
16587
|
-
`&&$[
|
|
16588
|
-
`&&
|
|
16589
|
-
`),Y=
|
|
16590
|
-
`||$[
|
|
16591
|
-
|
|
16592
|
-
`}function
|
|
16593
|
-
`,
|
|
16594
|
-
`,
|
|
16595
|
-
`,
|
|
16596
|
-
`,
|
|
16597
|
-
`,
|
|
16598
|
-
`,
|
|
16599
|
-
`,
|
|
16600
|
-
`,
|
|
16601
|
-
`,Y=
|
|
16602
|
-
`;var
|
|
16603
|
-
`,U=true,
|
|
16604
|
-
`;}else U=`${$.slice(
|
|
16605
|
-
`;}for(
|
|
16606
|
-
`,
|
|
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)}
|
|
16607
17368
|
`;}else U+=`
|
|
16608
|
-
`;
|
|
16609
|
-
`;}else U+=`${$.slice(
|
|
16610
|
-
`;
|
|
16611
|
-
`,
|
|
16612
|
-
`,M0);if(
|
|
16613
|
-
`)!==-1||
|
|
16614
|
-
`)!==-1,o5=false;if(
|
|
16615
|
-
|
|
16616
|
-
`)!==-1,
|
|
16617
|
-
|
|
16618
|
-
`)!==-1||
|
|
16619
|
-
|
|
16620
|
-
`)!==-1,
|
|
16621
|
-
`,Y);
|
|
16622
|
-
${$.slice(U,W)}`,U=
|
|
16623
|
-
`,U=
|
|
16624
|
-
`)!==-1&&(K=K.replace(/\n/g," ")),K.length>0&&K[0]===" "&&K.at(-1)===" "&&K.trim().length>0&&(K=K.slice(1,-1)),{node:{type:_$1.codeInline,text:K},end:G+V}}Y=G+V;}return null}function j$($,X,Z){if($.charCodeAt(X)!==$0)return X;let Q=c5($,X,Z,96),Y=X+Q;for(;Y<Z;){let G=$.indexOf("`",Y);if(G<0||G>=Z)return X;let V=c5($,G,Z,96);if(V===Q)return G+V;Y=G+V;}return X}function u6($,X,Z){if($.charCodeAt(X)!==Y0)return X;if(X+1<Z&&$.charCodeAt(X+1)===A0){let U=X+2;for(;U<Z&&$.charCodeAt(U)!==d;)U++;return U<Z?U+1:X}if(X+3<Z&&$.charCodeAt(X+1)===c0&&$.charCodeAt(X+2)===u$1&&$.charCodeAt(X+3)===u$1){let U=$.indexOf("-->",X+4);return U>=0?U+3:X}let Q=X+1,Y=Q;for(;Q<Z;){let U=$.charCodeAt(Q);if(U>=h$1&&U<=m$1||U>=G0&&U<=q0||U>=c&&U<=l$1||U===u$1)Q++;else break}if(Q===Y)return X;let G=$.slice(Y,Q).toLowerCase(),V=false;for(;Q<Z;){let U=$.charCodeAt(Q);if(U===d){Q++;break}if(U===A0&&Q+1<Z&&$.charCodeAt(Q+1)===d){Q+=2,V=true;break}if(U===L5||U===g5){var K=U;for(Q++;Q<Z&&$.charCodeAt(Q)!==K;)Q++;Q<Z&&Q++;continue}if(U===C)return X;Q++;}if(V||Z9(G))return Q;let J=1;for(;Q<Z&&J>0;)if($.charCodeAt(Q)===Y0)if(Q+1<Z&&$.charCodeAt(Q+1)===A0){let U=Q+2,W=U;for(;W<Z&&($.charCodeAt(W)>=h$1&&$.charCodeAt(W)<=m$1||$.charCodeAt(W)>=G0&&$.charCodeAt(W)<=q0);)W++;if($.slice(U,W).toLowerCase()===G){for(;W<Z&&$.charCodeAt(W)!==d;)W++;if(W<Z&&W++,J--,J===0)return W}Q=W;}else {let U=Q+1,W=U;for(;W<Z&&($.charCodeAt(W)>=h$1&&$.charCodeAt(W)<=m$1||$.charCodeAt(W)>=G0&&$.charCodeAt(W)<=q0);)W++;$.slice(U,W).toLowerCase()===G&&J++,Q++;}else Q++;return Q}function p6($,X,Z,Q,Y){if($.charCodeAt(X)!==b0||X+1>=Z||$.charCodeAt(X+1)!==b0)return null;let G=X+2;for(;G+1<Z;){let V=$.charCodeAt(G);if(V===$0){let K=j$($,G,Z);if(K>G){G=K;continue}}if(V===b0&&$.charCodeAt(G+1)===b0){let K=$.slice(X+2,G),J=w5(K,0,K.length,Q,Y);return {node:{type:_$1.textFormatted,tag:"del",children:J},end:G+2}}V===T0&&G+1<Z&&G++,G++;}return null}function d6($,X,Z,Q,Y){if($.charCodeAt(X)!==V5||X+1>=Z||$.charCodeAt(X+1)!==V5)return null;let G=X+2;for(;G+1<Z;){let V=$.charCodeAt(G);if(V===$0){let K=j$($,G,Z);if(K>G){G=K;continue}}if(V===V5&&$.charCodeAt(G+1)===V5&&G>X+2){let K=$.slice(X+2,G),J=w5(K,0,K.length,Q,Y);return {node:{type:_$1.textFormatted,tag:"mark",children:J},end:G+2}}V===T0&&G+1<Z&&G++,G++;}return null}function I4($,X,Z){return $<K9?!!(A$($)&e5):s$.test(X[Z])}function P4($,X,Z){return $<K9?!!(A$($)&f5):t$.test(X[Z])}function c6($,X,Z){var Q=$.charCodeAt(X);if(Q!==v0&&Q!==H0)return null;var Y=c5($,X,Z,Q);if(Y===0)return null;var G=X>0?$.charCodeAt(X-1):32,V=X+Y<Z?$.charCodeAt(X+Y):32,K=P4(G,$,X-1),J=P4(V,$,X+Y),U=X>0?I4(G,$,X-1):false,W=X+Y<Z?I4(V,$,X+Y):false,F=!J&&(!W||K||U),M=!K&&(!U||J||W),z,H;return Q===v0?(z=F,H=M):(z=F&&(!M||U),H=M&&(!F||W)),{len:Y,canOpen:z,canClose:H}}function l6($,X,Z,Q){if(X.length!==0){for(var Y=$.length,G=Array(Y),V=null,K=null,J=0;J<Y;J++){var U={node:$[J],prev:K,next:null};K?K.next=U:V=U,G[J]=U,K=U;}for(var W=Array(X.length),F=0;F<X.length;F++)W[F]=G[X[F].idx];for(var M=[],z=0;z<12;z++)M[z]=-1;for(var H=0;H<X.length;){var B=X[H];if(!(B.active&&B.canClose)){H++;continue}for(var j=B.ch===v0?0:1,q=j*6+B.len%3*2+(B.canOpen?1:0),O=M[q]===void 0?-1:M[q],A=-1,v=H-1;v>O;v--){var N=X[v];if(!(!N.active||N.ch!==B.ch||!N.canOpen)&&!((B.canOpen||N.canClose)&&(N.len+B.len)%3===0&&N.len%3!==0)){A=v;break}}if(A<0){M[q]=H-1,!B.canOpen&&(B.active=false),H++;continue}var D=X[A],T=D.len>=2&&B.len>=2,P=T?2:1;D.len-=P,B.len-=P;var R=W[A],k=W[H],E=R.node,y=k.node;E.text=E.text.slice(0,E.text.length-P),y.text=y.text.slice(P);for(var f=[],S=R.next;S&&S!==k;)f.push(S.node),S=S.next;var g={type:_$1.textFormatted,tag:T?"strong":"em",children:f},x={node:g,prev:R,next:k};R.next=x,k.prev=x;for(var b=A+1;b<H;b++)X[b].active=false;if(D.len===0&&(D.active=false,E.text==="")){var i=R.prev;x.prev=i,i?i.next=x:V=x;}if(B.len===0){if(B.active=false,y.text===""){var X0=k.next;x.next=X0,X0&&(X0.prev=x);}}else continue;H++;}for(var P0=0,Q0=V;Q0;){var u0=Q0.node;if(u0.type===_$1.text){var z0=u0;if(z0.text===""){Q0=Q0.next;continue}if(P0>0&&$[P0-1].type===_$1.text){$[P0-1].text+=z0.text,Q0=Q0.next;continue}}$[P0++]=u0,Q0=Q0.next;}$.length=P0;}}function h9($,X,Z,Q){return X($,Z,Q)===null?null:$}function w4($,X,Z,Q,Y){let G=$.charCodeAt(X)===c0,V=G?X+1:X;if($.charCodeAt(V)!==D0)return null;var K=$.indexOf("]",V+1);if(K<0||K>=Z)return null;for(var J=V+1,U=-1,W=1;J<Z&&W>0;){var F=$.charCodeAt(J);if(F===T0&&J+1<Z){J+=2;continue}if(F===$0){var M=j$($,J,Z);if(M>J){J=M;continue}}if(F===Y0){var z=C4($,J,Z);if(z){J=z.end;continue}var H=u6($,J,Z);if(H>J){J=H;continue}}F===D0?W++:F===K5&&W--,J++;}if(W!==0)return null;var B=J-1,j=$.slice(V+1,B),q=J<Z?$.charCodeAt(J):0,O=false;if(q===F5){var A=true;for(J++;J<Z&&($.charCodeAt(J)===I||$.charCodeAt(J)===C);)J++;var v="",N=J;if(J<Z&&$.charCodeAt(J)===Y0){for(J++,N=J;N<Z&&$.charCodeAt(N)!==d;){if($.charCodeAt(N)===T0&&N+1<Z){N+=2;continue}if($.charCodeAt(N)===C){A=false;break}N++;}A&&(N>=Z||$.charCodeAt(N)!==d)&&(A=false),A&&(v=$.slice(J,N),N++);}else if(A)if(Q.m!==void 0&&J>=Q.m)A=false;else {for(var D=0,T=false;N<Z;){var P=$.charCodeAt(N);if(P===T0&&N+1<Z){N+=2;continue}if(P===F5)D++;else if(P===z5){if(T=true,D===0)break;D--;}else if(P===I||P===C)break;N++;}N>=Z&&!T&&(Q.m===void 0||J<Q.m)&&(Q.m=J),v=$.slice(J,N);}if(A){for(J=N;J<Z&&($.charCodeAt(J)===I||$.charCodeAt(J)===C);)J++;var R;if(J<Z){var k=$.charCodeAt(J);if(k===L5||k===g5||k===F5){var E=k===F5?41:k;J++;for(var y=J;J<Z&&$.charCodeAt(J)!==E;)$.charCodeAt(J)===T0&&J+1<Z&&J++,J++;J>=Z?A=false:(R=$.slice(y,J),J++);}}if(A){for(;J<Z&&($.charCodeAt(J)===I||$.charCodeAt(J)===C);)J++;(J>=Z||$.charCodeAt(J)!==z5)&&(A=false);}}if(A){if(J++,v=v5(U9(v)),R!==void 0&&(R=v5(U9(R))),G){var f=w5(j,0,j.length,Q,Y),S=c9(f);return {node:{type:_$1.image,target:h9(v,Y?.sanitizer||M5,"img","src"),alt:S,title:R},end:J}}var g=Q.inAnchor;Q.inAnchor=true;var z0=g?[{type:_$1.text,text:j}]:w5(j,0,j.length,Q,Y);return Q.inAnchor=g,!Q.inAnchor&&O$(z0)?null:{node:{type:_$1.link,target:h9(v,Y?.sanitizer||M5,"a","href"),title:R,children:z0},end:J}}J=B+1,O=true;}var x="",b=J;if(!O&&q===D0){var i=J+1;b=i;for(var X0=false;b<Z&&$.charCodeAt(b)!==K5;){if($.charCodeAt(b)===T0&&b+1<Z){b+=2;continue}if($.charCodeAt(b)===D0){X0=true;break}b++;}if(X0||b>=Z)return null;var P0=$.slice(i,b);if(P0.trim())x=m9(P0);else {if(M4(j))return null;x=m9(j);}b+=1;}else {if(M4(j))return null;x=m9(j);}var Q0=Q.refs?.[x];if(!Q0)return null;if(G)return {node:{type:_$1.image,target:h9(Q0.target,Y?.sanitizer||M5,"img","src"),alt:c9(w5(j,0,j.length,Q,Y)),title:Q0.title},end:b};var u0=Q.inAnchor;Q.inAnchor=true;var z0=u0?[{type:_$1.text,text:j}]:w5(j,0,j.length,Q,Y);return Q.inAnchor=u0,!Q.inAnchor&&O$(z0)?null:{node:{type:_$1.link,target:h9(Q0.target,Y?.sanitizer||M5,"a","href"),title:Q0.title,children:z0},end:b}}function C4($,X,Z){if($.charCodeAt(X)!==Y0)return null;for(var Q=X+1;Q<Z;){var Y=$.charCodeAt(Q);if(Y===d)break;if(Y===I||Y===C||Y===_5||Y===Y0)return null;Q++;}if(Q>=Z||$.charCodeAt(Q)!==d)return null;var G=$.slice(X+1,Q),V=G.match(/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^\x00-\x20]*)$/);return V?{node:{type:_$1.link,target:G,title:void 0,children:[{type:_$1.text,text:G}]},end:Q+1}:G.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(G)?{node:{type:_$1.link,target:`mailto:${G}`,title:void 0,children:[{type:_$1.text,text:G}]},end:Q+1}:null}function o6($,X,Z,Q){if($.charCodeAt(X)!==D0||X+1>=Z||$.charCodeAt(X+1)!==W5)return null;let Y=X+2;for(;Y<Z&&$.charCodeAt(Y)!==K5&&$.charCodeAt(Y)!==C;)Y++;if(Y>=Z||$.charCodeAt(Y)!==K5)return null;let G=$.slice(X+2,Y);return G?{node:{type:_$1.footnoteReference,target:`#${N5(G)}`,text:G},end:Y+1}:null}function r6($,X,Z,Q){if(Q.disableBareUrls)return null;var Y="",G=false,V=$.charCodeAt(X);if(V===D9||V===72?X+8<=Z&&$.charCodeAt(X+1)===n5&&$.charCodeAt(X+2)===n5&&$.charCodeAt(X+3)===k9&&($.charCodeAt(X+4)===Z$&&$.charCodeAt(X+5)===m0&&$.charCodeAt(X+6)===A0&&$.charCodeAt(X+7)===A0?Y="https://":$.charCodeAt(X+4)===m0&&$.charCodeAt(X+5)===A0&&$.charCodeAt(X+6)===A0&&(Y="http://")):V===b5||V===70?X+6<=Z&&$.charCodeAt(X+1)===n5&&$.charCodeAt(X+2)===k9&&$.charCodeAt(X+3)===m0&&$.charCodeAt(X+4)===A0&&$.charCodeAt(X+5)===A0&&(Y="ftp://"):(V===C5||V===87)&&X+4<=Z&&$.charCodeAt(X+1)===C5&&$.charCodeAt(X+2)===C5&&$.charCodeAt(X+3)===X5&&(Y="www.",G=true),!Y)return null;let K=X+Y.length;for(;K<Z;){let D=$.charCodeAt(K);if(D===I||D===C||D===w||D===_5||D===Y0||D===d)break;K++;}for(var J=0,U=0,W=X;W<K;W++){var F=$.charCodeAt(W);F===F5?J++:F===z5&&U++;}let M=K;for(;M>X+Y.length;){let D=$.charCodeAt(M-1);if(D===X5||D===g$||D===m0||D===c0||D===s5||D===z5||D===v0||D===H0||D===b0){if(D===z5){if(J>=U)break;U--;}M--;}else if(D===A9){for(var z=M-2;z>X&&($.charCodeAt(z)>=h$1&&$.charCodeAt(z)<=m$1||$.charCodeAt(z)>=G0&&$.charCodeAt(z)<=q0||$.charCodeAt(z)>=c&&$.charCodeAt(z)<=l$1);)z--;z>=X&&$.charCodeAt(z)===H9?M=z:M--;}else break}if(M<=X+Y.length)return null;var H=X+(G?4:Y.length),B=$.indexOf("/",H);if((B<0||B>M)&&(B=M),G&&$.indexOf(".",H)===-1)return null;for(var j=-1,q=-1,O=B-1;O>=H;O--)if($.charCodeAt(O)===X5)if(j<0)j=O;else {q=O;break}for(var A=q>=0?q+1:H,O=A;O<B;O++)if($.charCodeAt(O)===H0)return null;var v=$.slice(X,M),N=G?`http://${v}`:v;return {node:{type:_$1.link,target:N,title:void 0,children:[{type:_$1.text,text:v}]},end:M}}function i6($,X,Z,Q){if(Q.disableBareUrls)return null;for(var Y=X,G=Y;Y<Z;){var V=$.charCodeAt(Y);if(V>=h$1&&V<=m$1||V>=G0&&V<=q0||V>=c&&V<=l$1||V===X5||V===c0||V===G5||V===36||V===M9||V===H9||V===g5||V===v0||V===T5||V===A0||V===V5||V===s5||V===W5||V===H0||V===$0||V===y5||V===E0||V===x9||V===b0||V===u$1)Y++;else break}if(Y===G||Y>=Z||$.charCodeAt(Y)!==S9)return null;Y++;for(var K=Y,J=-1,U=Y;Y<Z;){var V=$.charCodeAt(Y);if(V>=h$1&&V<=m$1||V>=G0&&V<=q0||V>=c&&V<=l$1)Y++;else if((V===u$1||V===H0)&&Y>K)Y++;else if(V===X5){if(Y===K)break;var W=$.charCodeAt(Y-1);if(W===u$1||W===H0||Y-U>63)break;if(Y+1<Z){var F=$.charCodeAt(Y+1);if(F>=h$1&&F<=m$1||F>=G0&&F<=q0||F>=c&&F<=l$1)J=Y,U=Y+1,Y++;else break}else break}else break}if(Y-U>63||J<0)return null;var M=$.charCodeAt(Y-1);if(!(M>=h$1&&M<=m$1||M>=G0&&M<=q0||M>=c&&M<=l$1)||Y<=J+1)return null;for(var z=-1,H=J-1;H>=K;H--)if($.charCodeAt(H)===X5){z=H;break}for(var B=z>=0?z+1:K,H=B;H<Y;H++)if($.charCodeAt(H)===H0)return null;var j=$.slice(X,Y);return {node:{type:_$1.link,target:`mailto:${j}`,title:void 0,children:[{type:_$1.text,text:j}]},end:Y}}function O$($){for(var X=0;X<$.length;X++)if($[X].type===_$1.link||"children"in $[X]&&Array.isArray($[X].children)&&O$($[X].children))return true;return false}function c9($,X){for(var Z="",Q=0;Q<$.length;Q++){var Y=$[Q];Y.type===_$1.text?Z+=Y.text:Y.type===_$1.breakLine?Z+=" ":Y.type===_$1.codeInline||Y.type===_$1.footnoteReference?Z+=Y.text:"children"in Y&&Array.isArray(Y.children)?Z+=c9(Y.children,X):!X&&Y.type===_$1.image&&(Z+=Y.alt||"");}return Z}function D$($,X,Z){for(var Q=0;Q<$.length;Q++){var Y=$[Q];if(Y.type===_$1.heading){var G=Y;G.id=L6(Z(c9(G.children,true)),X);}if("children"in Y){var V=Y.children;Array.isArray(V)&&D$(V,X,Z);}if((Y.type===_$1.orderedList||Y.type===_$1.unorderedList)&&Array.isArray(Y.items))for(var K=Y.items,J=0;J<K.length;J++)D$(K[J],X,Z);}}function X9($){return {type:_$1.text,text:$}}function a6($,X,Z){var Q=X+1;if(Q>=Z)return -1;if($.charCodeAt(Q)===G5){Q++;var Y=Q<Z&&($.charCodeAt(Q)===X$||$.charCodeAt(Q)===Q$);Y&&Q++;for(var G=Q,V=Y?6:7;Q<Z&&Q-G<=V;){var K=$.charCodeAt(Q),J=K>=c&&K<=l$1||Y&&(K>=h$1&&K<=O9||K>=G0&&K<=b5);if(!J)break;Q++;}return Q===G||Q-G>V?-1:Q<Z&&$.charCodeAt(Q)===A9?Q+1:-1}for(var U=Q;Q<Z&&Q-U<48;){var W=$.charCodeAt(Q);if(W>=h$1&&W<=m$1||W>=G0&&W<=q0||W>=c&&W<=l$1){Q++;continue}break}return Q===U?-1:Q<Z&&$.charCodeAt(Q)===A9?Q+1:-1}function n6($,X,Z,Q,Y){if($.charCodeAt(X)!==Y0)return null;var G=X+1;if(G>=Z)return null;var V=$.charCodeAt(G);if(V===c0&&G+1<Z&&$.charCodeAt(G+1)===u$1&&G+2<Z&&$.charCodeAt(G+2)===u$1){var K=G+3;if(K<Z&&$.charCodeAt(K)===d)return {node:{type:_$1.htmlComment,text:"",t:true},end:K+1};if(K+1<Z&&$.charCodeAt(K)===u$1&&$.charCodeAt(K+1)===d)return {node:{type:_$1.htmlComment,text:"-",t:true},end:K+2};var J=$.indexOf("-->",K);return J!==-1&&J<=Z-3?{node:{type:_$1.htmlComment,text:$.slice(X+4,J),t:false},end:J+3}:null}if(V===s5){var U=$.indexOf("?>",G+1);return U!==-1&&U<Z?{node:{type:_$1.htmlSelfClosing,tag:"?",attrs:{},n:$.slice(X,U+2),a:false},end:U+2}:null}if(V===c0&&G+1<Z){var W=$.charCodeAt(G+1);if(W===D0&&$.slice(G+1,G+8)==="[CDATA["){var F=$.indexOf("]]>",G+8);return F!==-1&&F<Z?{node:{type:_$1.htmlSelfClosing,tag:"![CDATA[",attrs:{},n:$.slice(X,F+3),a:false},end:F+3}:null}if(W>=h$1&&W<=m$1){var M=$.indexOf(">",G+2);return M!==-1&&M<Z?{node:{type:_$1.htmlSelfClosing,tag:`!${$.slice(G+1,M)}`,attrs:{},n:$.slice(X,M+1),a:false},end:M+1}:null}}if(V===A0){var z=G+1;if(z>=Z)return null;var H=$.charCodeAt(z);if(!(H>=h$1&&H<=m$1||H>=G0&&H<=q0))return null;for(z++;z<Z;){var B=$.charCodeAt(z);if(B>=h$1&&B<=m$1||B>=G0&&B<=q0||B>=c&&B<=l$1||B===u$1)z++;else break}for(;z<Z&&($.charCodeAt(z)===I||$.charCodeAt(z)===w||$.charCodeAt(z)===C);)z++;if(z<Z&&$.charCodeAt(z)===d){var j=$.slice(G+1,z).trim();return {node:{type:_$1.htmlSelfClosing,tag:j,attrs:{},h:$.slice(X,z+1),a:true},end:z+1}}return null}if(!(V>=h$1&&V<=m$1||V>=G0&&V<=q0))return null;var q=P5($,X);if(!q)return null;var O=q.tag,A=O.toLowerCase(),v=q.o;if(v||Z9(O))return {node:{type:_$1.htmlSelfClosing,tag:O,attrs:I5(q.attrs,O,Y),n:q.r?F$(q):$.slice(X,q.end),a:false},end:q.end};var N=N9.has(A),D=H$($.slice(0,Z),q.end,O);if(D===-1)return {node:{type:_$1.htmlSelfClosing,tag:O,attrs:I5(q.attrs,O,Y),n:q.r?F$(q):$.slice(X,q.end),a:false},end:q.end};var T=E6($,`</${A}`,D),P=$.slice(q.end,T);if(N){var R=U5(P);return {node:{type:_$1.htmlBlock,tag:O,attrs:I5(q.attrs,O,Y),b:q.g+q.b,children:[],e:R||void 0,h:$.slice(T,D),text:R,c:true,a:false},end:D}}var k=[],E=P.trim();if(E){var{inAnchor:y,inline:f,k:S}=Q;A==="a"&&(Q.inAnchor=true),Q.k=false;var g=E.indexOf(`
|
|
16625
|
-
|
|
16626
|
-
`)!==-1||/^#{1,6}\s/.test(
|
|
16627
|
-
`,
|
|
16628
|
-
`),S0=y0===-1?0:y0+1,
|
|
16629
|
-
`,n),x0=
|
|
16630
|
-
`,n),x0=
|
|
16631
|
-
`,n);n=q5<0?
|
|
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(`
|
|
16632
17393
|
`)||Y.b.includes(`
|
|
16633
|
-
`),endPos:Y.end}:null}function
|
|
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])};
|
|
16634
17395
|
|
|
16635
17396
|
/** Internal only symbol used by `Form` & `ObjectField` to mark an additional property element to be removed */
|
|
16636
17397
|
const ADDITIONAL_PROPERTY_KEY_REMOVE = Symbol('remove-this-key');
|
|
@@ -16868,7 +17629,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
16868
17629
|
orderedProperties = orderProperties([...definedPropertyOrder, ...currentAdditionalProperties], uiOptions.order);
|
|
16869
17630
|
}
|
|
16870
17631
|
catch (err) {
|
|
16871
|
-
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) })] }));
|
|
16872
17633
|
}
|
|
16873
17634
|
}
|
|
16874
17635
|
const Template = getTemplate('ObjectFieldTemplate', registry, uiOptions);
|
|
@@ -17412,7 +18173,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
17412
18173
|
const { globalUiOptions } = registry;
|
|
17413
18174
|
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
|
|
17414
18175
|
if (uiOptions.enableMarkdownInDescription && typeof description === 'string') {
|
|
17415
|
-
return (jsxRuntimeExports.jsx(
|
|
18176
|
+
return (jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, "data-testid": TEST_IDS$1.markdown, children: description }));
|
|
17416
18177
|
}
|
|
17417
18178
|
return description;
|
|
17418
18179
|
}
|
|
@@ -17474,7 +18235,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
17474
18235
|
const { globalUiOptions } = registry;
|
|
17475
18236
|
const uiOptions = getUiOptions(uiSchema, globalUiOptions);
|
|
17476
18237
|
if (uiOptions.enableMarkdownInHelp && typeof help === 'string') {
|
|
17477
|
-
return (jsxRuntimeExports.jsx(
|
|
18238
|
+
return (jsxRuntimeExports.jsx(AZ, { options: { disableParsingRawHTML: true }, "data-testid": TEST_IDS.markdown, children: help }));
|
|
17478
18239
|
}
|
|
17479
18240
|
return help;
|
|
17480
18241
|
}
|
|
@@ -17614,7 +18375,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
17614
18375
|
: TranslatableString.UnsupportedFieldWithIdAndReason;
|
|
17615
18376
|
translateParams.push(reason);
|
|
17616
18377
|
}
|
|
17617
|
-
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) })] }));
|
|
17618
18379
|
}
|
|
17619
18380
|
|
|
17620
18381
|
/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
|
|
@@ -17806,7 +18567,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
17806
18567
|
return (jsxRuntimeExports.jsx("ul", { className: 'file-info', children: filesInfo.map((fileInfo, key) => {
|
|
17807
18568
|
const { name, size, type } = fileInfo;
|
|
17808
18569
|
const handleRemove = () => onRemove(key);
|
|
17809
|
-
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));
|
|
17810
18571
|
}) }));
|
|
17811
18572
|
}
|
|
17812
18573
|
/**
|
|
@@ -18006,10 +18767,22 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
18006
18767
|
* @param props - The `WidgetProps` for this component
|
|
18007
18768
|
*/
|
|
18008
18769
|
function TimeWidget(props) {
|
|
18009
|
-
const { onChange, options, registry } = props;
|
|
18770
|
+
const { onChange, options, registry, schema, value } = props;
|
|
18010
18771
|
const BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
|
|
18011
|
-
const
|
|
18012
|
-
|
|
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 });
|
|
18013
18786
|
}
|
|
18014
18787
|
|
|
18015
18788
|
/** The `UpDownWidget` component uses the `BaseInputTemplate` changing the type to `number`.
|
|
@@ -27016,6 +27789,17 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27016
27789
|
}
|
|
27017
27790
|
catch (err) {
|
|
27018
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
|
+
}
|
|
27019
27803
|
}
|
|
27020
27804
|
let errors;
|
|
27021
27805
|
if (compiledValidator) {
|
|
@@ -27122,13 +27906,17 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27122
27906
|
*/
|
|
27123
27907
|
isValid(schema, formData, rootSchema) {
|
|
27124
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;
|
|
27125
27913
|
try {
|
|
27126
27914
|
this.handleSchemaUpdate(rootSchema);
|
|
27127
27915
|
// then rewrite the schema ref's to point to the rootSchema
|
|
27128
27916
|
// this accounts for the case where schema have references to models
|
|
27129
27917
|
// that lives in the rootSchema but not in the schema in question.
|
|
27130
27918
|
const schemaWithIdRefPrefix = withIdRefPrefix(schema);
|
|
27131
|
-
|
|
27919
|
+
schemaId = (_a = schemaWithIdRefPrefix[ID_KEY]) !== null && _a !== void 0 ? _a : hashForSchema(schemaWithIdRefPrefix);
|
|
27132
27920
|
let compiledValidator;
|
|
27133
27921
|
compiledValidator = this.ajv.getSchema(schemaId);
|
|
27134
27922
|
if (compiledValidator === undefined) {
|
|
@@ -27139,12 +27927,20 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27139
27927
|
this.ajv.addSchema(schemaWithIdRefPrefix, schemaId).getSchema(schemaId) ||
|
|
27140
27928
|
this.ajv.compile(schemaWithIdRefPrefix);
|
|
27141
27929
|
}
|
|
27930
|
+
compiled = true;
|
|
27142
27931
|
const result = compiledValidator(formData);
|
|
27143
27932
|
return result;
|
|
27144
27933
|
}
|
|
27145
27934
|
catch (e) {
|
|
27146
27935
|
// oxlint-disable-next-line no-console
|
|
27147
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
|
+
}
|
|
27148
27944
|
return false;
|
|
27149
27945
|
}
|
|
27150
27946
|
}
|
|
@@ -27183,7 +27979,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27183
27979
|
}
|
|
27184
27980
|
|
|
27185
27981
|
/**
|
|
27186
|
-
* @license lucide-react v1.
|
|
27982
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27187
27983
|
*
|
|
27188
27984
|
* This source code is licensed under the ISC license.
|
|
27189
27985
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27194,7 +27990,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27194
27990
|
}).join(" ").trim();
|
|
27195
27991
|
|
|
27196
27992
|
/**
|
|
27197
|
-
* @license lucide-react v1.
|
|
27993
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27198
27994
|
*
|
|
27199
27995
|
* This source code is licensed under the ISC license.
|
|
27200
27996
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27203,7 +27999,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27203
27999
|
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
|
|
27204
28000
|
|
|
27205
28001
|
/**
|
|
27206
|
-
* @license lucide-react v1.
|
|
28002
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27207
28003
|
*
|
|
27208
28004
|
* This source code is licensed under the ISC license.
|
|
27209
28005
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27215,7 +28011,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27215
28011
|
);
|
|
27216
28012
|
|
|
27217
28013
|
/**
|
|
27218
|
-
* @license lucide-react v1.
|
|
28014
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27219
28015
|
*
|
|
27220
28016
|
* This source code is licensed under the ISC license.
|
|
27221
28017
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27228,7 +28024,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27228
28024
|
};
|
|
27229
28025
|
|
|
27230
28026
|
/**
|
|
27231
|
-
* @license lucide-react v1.
|
|
28027
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27232
28028
|
*
|
|
27233
28029
|
* This source code is licensed under the ISC license.
|
|
27234
28030
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27247,7 +28043,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27247
28043
|
};
|
|
27248
28044
|
|
|
27249
28045
|
/**
|
|
27250
|
-
* @license lucide-react v1.
|
|
28046
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27251
28047
|
*
|
|
27252
28048
|
* This source code is licensed under the ISC license.
|
|
27253
28049
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27297,7 +28093,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27297
28093
|
);
|
|
27298
28094
|
|
|
27299
28095
|
/**
|
|
27300
|
-
* @license lucide-react v1.
|
|
28096
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27301
28097
|
*
|
|
27302
28098
|
* This source code is licensed under the ISC license.
|
|
27303
28099
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27322,7 +28118,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27322
28118
|
};
|
|
27323
28119
|
|
|
27324
28120
|
/**
|
|
27325
|
-
* @license lucide-react v1.
|
|
28121
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27326
28122
|
*
|
|
27327
28123
|
* This source code is licensed under the ISC license.
|
|
27328
28124
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27333,7 +28129,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27333
28129
|
const Check = createLucideIcon("check", __iconNode$9);
|
|
27334
28130
|
|
|
27335
28131
|
/**
|
|
27336
|
-
* @license lucide-react v1.
|
|
28132
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27337
28133
|
*
|
|
27338
28134
|
* This source code is licensed under the ISC license.
|
|
27339
28135
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27344,7 +28140,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27344
28140
|
const ChevronDown = createLucideIcon("chevron-down", __iconNode$8);
|
|
27345
28141
|
|
|
27346
28142
|
/**
|
|
27347
|
-
* @license lucide-react v1.
|
|
28143
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27348
28144
|
*
|
|
27349
28145
|
* This source code is licensed under the ISC license.
|
|
27350
28146
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27355,7 +28151,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27355
28151
|
const ChevronUp = createLucideIcon("chevron-up", __iconNode$7);
|
|
27356
28152
|
|
|
27357
28153
|
/**
|
|
27358
|
-
* @license lucide-react v1.
|
|
28154
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27359
28155
|
*
|
|
27360
28156
|
* This source code is licensed under the ISC license.
|
|
27361
28157
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27370,7 +28166,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27370
28166
|
const CircleAlert = createLucideIcon("circle-alert", __iconNode$6);
|
|
27371
28167
|
|
|
27372
28168
|
/**
|
|
27373
|
-
* @license lucide-react v1.
|
|
28169
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27374
28170
|
*
|
|
27375
28171
|
* This source code is licensed under the ISC license.
|
|
27376
28172
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27385,7 +28181,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27385
28181
|
const CirclePlus = createLucideIcon("circle-plus", __iconNode$5);
|
|
27386
28182
|
|
|
27387
28183
|
/**
|
|
27388
|
-
* @license lucide-react v1.
|
|
28184
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27389
28185
|
*
|
|
27390
28186
|
* This source code is licensed under the ISC license.
|
|
27391
28187
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27396,7 +28192,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27396
28192
|
const Circle = createLucideIcon("circle", __iconNode$4);
|
|
27397
28193
|
|
|
27398
28194
|
/**
|
|
27399
|
-
* @license lucide-react v1.
|
|
28195
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27400
28196
|
*
|
|
27401
28197
|
* This source code is licensed under the ISC license.
|
|
27402
28198
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27410,7 +28206,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27410
28206
|
const Copy = createLucideIcon("copy", __iconNode$3);
|
|
27411
28207
|
|
|
27412
28208
|
/**
|
|
27413
|
-
* @license lucide-react v1.
|
|
28209
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27414
28210
|
*
|
|
27415
28211
|
* This source code is licensed under the ISC license.
|
|
27416
28212
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27424,7 +28220,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27424
28220
|
const Search = createLucideIcon("search", __iconNode$2);
|
|
27425
28221
|
|
|
27426
28222
|
/**
|
|
27427
|
-
* @license lucide-react v1.
|
|
28223
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27428
28224
|
*
|
|
27429
28225
|
* This source code is licensed under the ISC license.
|
|
27430
28226
|
* See the LICENSE file in the root directory of this source tree.
|
|
@@ -27441,7 +28237,7 @@ ${$.slice(U,W)}`,U=t($,W);else if(e0($,U,W)){var F=t($,W);if(F<Q){var M=U0($,F);
|
|
|
27441
28237
|
const Trash2 = createLucideIcon("trash-2", __iconNode$1);
|
|
27442
28238
|
|
|
27443
28239
|
/**
|
|
27444
|
-
* @license lucide-react v1.
|
|
28240
|
+
* @license lucide-react v1.38.0 - ISC
|
|
27445
28241
|
*
|
|
27446
28242
|
* This source code is licensed under the ISC license.
|
|
27447
28243
|
* See the LICENSE file in the root directory of this source tree.
|