@mkbabb/value.js 0.5.1 → 0.10.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.
Files changed (42) hide show
  1. package/README.md +38 -56
  2. package/dist/easing.d.ts +49 -0
  3. package/dist/index.d.ts +19 -8
  4. package/dist/math.d.ts +1 -1
  5. package/dist/parsing/animation-shorthand.d.ts +19 -0
  6. package/dist/parsing/color.d.ts +10 -3
  7. package/dist/parsing/extract.d.ts +48 -0
  8. package/dist/parsing/index.d.ts +5 -20
  9. package/dist/parsing/serialize.d.ts +24 -0
  10. package/dist/parsing/stylesheet.d.ts +44 -0
  11. package/dist/parsing/units.d.ts +24 -6
  12. package/dist/parsing/utils.d.ts +5 -0
  13. package/dist/postcss-CRluLK2m.js +6400 -0
  14. package/dist/quantize/cluster.d.ts +45 -0
  15. package/dist/quantize/index.d.ts +14 -0
  16. package/dist/quantize/types.d.ts +39 -0
  17. package/dist/standalone-Ck3UyY5I.js +3458 -0
  18. package/dist/units/color/constants.d.ts +21 -0
  19. package/dist/units/color/contrast.d.ts +35 -0
  20. package/dist/units/color/conversions/cylindrical.d.ts +13 -0
  21. package/dist/units/color/conversions/direct.d.ts +41 -0
  22. package/dist/units/color/conversions/hex.d.ts +3 -0
  23. package/dist/units/color/conversions/index.d.ts +17 -0
  24. package/dist/units/color/conversions/kelvin.d.ts +5 -0
  25. package/dist/units/color/conversions/lab.d.ts +8 -0
  26. package/dist/units/color/conversions/oklab.d.ts +11 -0
  27. package/dist/units/color/conversions/transfer.d.ts +22 -0
  28. package/dist/units/color/conversions/xyz-extended.d.ts +13 -0
  29. package/dist/units/color/dispatch.d.ts +26 -0
  30. package/dist/units/color/gamut.d.ts +6 -0
  31. package/dist/units/color/index.d.ts +220 -116
  32. package/dist/units/color/mix.d.ts +16 -0
  33. package/dist/units/color/normalize.d.ts +3 -3
  34. package/dist/units/index.d.ts +39 -1
  35. package/dist/units/interpolate.d.ts +47 -0
  36. package/dist/units/normalize.d.ts +47 -7
  37. package/dist/units/utils.d.ts +1 -1
  38. package/dist/utils.d.ts +3 -2
  39. package/dist/value.js +4213 -4407
  40. package/package.json +63 -29
  41. package/scripts/migrate-keyframes-js-lerp.mjs +257 -0
  42. package/dist/units/color/utils.d.ts +0 -77
@@ -0,0 +1,3458 @@
1
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || e((t = { exports: {} }).exports, t), t.exports), s = (e, n) => {
2
+ for (var r in n) t(e, r, {
3
+ get: n[r],
4
+ enumerable: !0
5
+ });
6
+ }, c = (e, i, o, s) => {
7
+ if (i && typeof i == "object" || typeof i == "function") for (let c of r(i)) !a.call(e, c) && c !== o && t(e, c, {
8
+ get: () => i[c],
9
+ enumerable: !(s = n(i, c)) || s.enumerable
10
+ });
11
+ return e;
12
+ }, l = (n, r, a) => (a = n == null ? {} : e(i(n)), c(r || !n || !n.__esModule ? t(a, "default", {
13
+ value: n,
14
+ enumerable: !0
15
+ }) : a, n)), u = o((e, t) => {
16
+ var n, r, i, a, o, s, c, l, u, d, f, p, m = /\/(?![*\/])(?:\[(?:[^\]\\\n\r\u2028\u2029]+|\\.)*\]|[^\/\\\n\r\u2028\u2029]+|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/uy, h, g, _, v, y, ee;
17
+ p = /--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y, n = /(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]+|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/uy, g = /(['"])(?:[^'"\\\n\r]+|(?!\1)['"]|\\(?:\r\n|[^]))*(\1)?/y, f = /(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y, _ = /[`}](?:[^`\\$]+|\\[^]|\$(?!\{))*(`|\$\{)?/y, ee = /[\t\v\f\ufeff\p{Zs}]+/uy, l = /\r?\n|[\r\u2028\u2029]/y, u = /\/\*(?:[^*]+|\*(?!\/))*(\*\/)?/y, h = /\/\/.*/y, i = /[<>.:={}]|\/(?![\/*])/y, r = /[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/uy, a = /(['"])(?:[^'"]+|(?!\1)['"])*(\1)?/y, o = /[^<>{}]+/y, y = /^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/, v = /^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/, s = /^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/, c = /^(?:return|throw|yield)$/, d = RegExp(l.source), t.exports = function* (e, { jsx: t = !1 } = {}) {
18
+ var b, x, te, S, C, ne, w, T, re, E, ie, D, O, k;
19
+ for ({length: ne} = e, S = 0, C = "", k = [{ tag: "JS" }], b = [], ie = 0, D = !1; S < ne;) {
20
+ switch (T = k[k.length - 1], T.tag) {
21
+ case "JS":
22
+ case "JSNonExpressionParen":
23
+ case "InterpolationInTemplate":
24
+ case "InterpolationInJSX":
25
+ if (e[S] === "/" && (y.test(C) || s.test(C)) && (m.lastIndex = S, w = m.exec(e))) {
26
+ S = m.lastIndex, C = w[0], D = !0, yield {
27
+ type: "RegularExpressionLiteral",
28
+ value: w[0],
29
+ closed: w[1] !== void 0 && w[1] !== "\\"
30
+ };
31
+ continue;
32
+ }
33
+ if (p.lastIndex = S, w = p.exec(e)) {
34
+ switch (O = w[0], re = p.lastIndex, E = O, O) {
35
+ case "(":
36
+ C === "?NonExpressionParenKeyword" && k.push({
37
+ tag: "JSNonExpressionParen",
38
+ nesting: ie
39
+ }), ie++, D = !1;
40
+ break;
41
+ case ")":
42
+ ie--, D = !0, T.tag === "JSNonExpressionParen" && ie === T.nesting && (k.pop(), E = "?NonExpressionParenEnd", D = !1);
43
+ break;
44
+ case "{":
45
+ p.lastIndex = 0, te = !v.test(C) && (y.test(C) || s.test(C)), b.push(te), D = !1;
46
+ break;
47
+ case "}":
48
+ switch (T.tag) {
49
+ case "InterpolationInTemplate":
50
+ if (b.length === T.nesting) {
51
+ _.lastIndex = S, w = _.exec(e), S = _.lastIndex, C = w[0], w[1] === "${" ? (C = "?InterpolationInTemplate", D = !1, yield {
52
+ type: "TemplateMiddle",
53
+ value: w[0]
54
+ }) : (k.pop(), D = !0, yield {
55
+ type: "TemplateTail",
56
+ value: w[0],
57
+ closed: w[1] === "`"
58
+ });
59
+ continue;
60
+ }
61
+ break;
62
+ case "InterpolationInJSX": if (b.length === T.nesting) {
63
+ k.pop(), S += 1, C = "}", yield {
64
+ type: "JSXPunctuator",
65
+ value: "}"
66
+ };
67
+ continue;
68
+ }
69
+ }
70
+ D = b.pop(), E = D ? "?ExpressionBraceEnd" : "}";
71
+ break;
72
+ case "]":
73
+ D = !0;
74
+ break;
75
+ case "++":
76
+ case "--":
77
+ E = D ? "?PostfixIncDec" : "?UnaryIncDec";
78
+ break;
79
+ case "<":
80
+ if (t && (y.test(C) || s.test(C))) {
81
+ k.push({ tag: "JSXTag" }), S += 1, C = "<", yield {
82
+ type: "JSXPunctuator",
83
+ value: O
84
+ };
85
+ continue;
86
+ }
87
+ D = !1;
88
+ break;
89
+ default: D = !1;
90
+ }
91
+ S = re, C = E, yield {
92
+ type: "Punctuator",
93
+ value: O
94
+ };
95
+ continue;
96
+ }
97
+ if (n.lastIndex = S, w = n.exec(e)) {
98
+ switch (S = n.lastIndex, E = w[0], w[0]) {
99
+ case "for":
100
+ case "if":
101
+ case "while":
102
+ case "with": C !== "." && C !== "?." && (E = "?NonExpressionParenKeyword");
103
+ }
104
+ C = E, D = !s.test(w[0]), yield {
105
+ type: w[1] === "#" ? "PrivateIdentifier" : "IdentifierName",
106
+ value: w[0]
107
+ };
108
+ continue;
109
+ }
110
+ if (g.lastIndex = S, w = g.exec(e)) {
111
+ S = g.lastIndex, C = w[0], D = !0, yield {
112
+ type: "StringLiteral",
113
+ value: w[0],
114
+ closed: w[2] !== void 0
115
+ };
116
+ continue;
117
+ }
118
+ if (f.lastIndex = S, w = f.exec(e)) {
119
+ S = f.lastIndex, C = w[0], D = !0, yield {
120
+ type: "NumericLiteral",
121
+ value: w[0]
122
+ };
123
+ continue;
124
+ }
125
+ if (_.lastIndex = S, w = _.exec(e)) {
126
+ S = _.lastIndex, C = w[0], w[1] === "${" ? (C = "?InterpolationInTemplate", k.push({
127
+ tag: "InterpolationInTemplate",
128
+ nesting: b.length
129
+ }), D = !1, yield {
130
+ type: "TemplateHead",
131
+ value: w[0]
132
+ }) : (D = !0, yield {
133
+ type: "NoSubstitutionTemplate",
134
+ value: w[0],
135
+ closed: w[1] === "`"
136
+ });
137
+ continue;
138
+ }
139
+ break;
140
+ case "JSXTag":
141
+ case "JSXTagEnd":
142
+ if (i.lastIndex = S, w = i.exec(e)) {
143
+ switch (S = i.lastIndex, E = w[0], w[0]) {
144
+ case "<":
145
+ k.push({ tag: "JSXTag" });
146
+ break;
147
+ case ">":
148
+ k.pop(), C === "/" || T.tag === "JSXTagEnd" ? (E = "?JSX", D = !0) : k.push({ tag: "JSXChildren" });
149
+ break;
150
+ case "{":
151
+ k.push({
152
+ tag: "InterpolationInJSX",
153
+ nesting: b.length
154
+ }), E = "?InterpolationInJSX", D = !1;
155
+ break;
156
+ case "/": C === "<" && (k.pop(), k[k.length - 1].tag === "JSXChildren" && k.pop(), k.push({ tag: "JSXTagEnd" }));
157
+ }
158
+ C = E, yield {
159
+ type: "JSXPunctuator",
160
+ value: w[0]
161
+ };
162
+ continue;
163
+ }
164
+ if (r.lastIndex = S, w = r.exec(e)) {
165
+ S = r.lastIndex, C = w[0], yield {
166
+ type: "JSXIdentifier",
167
+ value: w[0]
168
+ };
169
+ continue;
170
+ }
171
+ if (a.lastIndex = S, w = a.exec(e)) {
172
+ S = a.lastIndex, C = w[0], yield {
173
+ type: "JSXString",
174
+ value: w[0],
175
+ closed: w[2] !== void 0
176
+ };
177
+ continue;
178
+ }
179
+ break;
180
+ case "JSXChildren":
181
+ if (o.lastIndex = S, w = o.exec(e)) {
182
+ S = o.lastIndex, C = w[0], yield {
183
+ type: "JSXText",
184
+ value: w[0]
185
+ };
186
+ continue;
187
+ }
188
+ switch (e[S]) {
189
+ case "<":
190
+ k.push({ tag: "JSXTag" }), S++, C = "<", yield {
191
+ type: "JSXPunctuator",
192
+ value: "<"
193
+ };
194
+ continue;
195
+ case "{":
196
+ k.push({
197
+ tag: "InterpolationInJSX",
198
+ nesting: b.length
199
+ }), S++, C = "?InterpolationInJSX", D = !1, yield {
200
+ type: "JSXPunctuator",
201
+ value: "{"
202
+ };
203
+ continue;
204
+ }
205
+ }
206
+ if (ee.lastIndex = S, w = ee.exec(e)) {
207
+ S = ee.lastIndex, yield {
208
+ type: "WhiteSpace",
209
+ value: w[0]
210
+ };
211
+ continue;
212
+ }
213
+ if (l.lastIndex = S, w = l.exec(e)) {
214
+ S = l.lastIndex, D = !1, c.test(C) && (C = "?NoLineTerminatorHere"), yield {
215
+ type: "LineTerminatorSequence",
216
+ value: w[0]
217
+ };
218
+ continue;
219
+ }
220
+ if (u.lastIndex = S, w = u.exec(e)) {
221
+ S = u.lastIndex, d.test(w[0]) && (D = !1, c.test(C) && (C = "?NoLineTerminatorHere")), yield {
222
+ type: "MultiLineComment",
223
+ value: w[0],
224
+ closed: w[1] !== void 0
225
+ };
226
+ continue;
227
+ }
228
+ if (h.lastIndex = S, w = h.exec(e)) {
229
+ S = h.lastIndex, D = !1, yield {
230
+ type: "SingleLineComment",
231
+ value: w[0]
232
+ };
233
+ continue;
234
+ }
235
+ x = String.fromCodePoint(e.codePointAt(S)), S += x.length, C = x, D = !1, yield {
236
+ type: T.tag.startsWith("JSX") ? "JSXInvalid" : "Invalid",
237
+ value: x
238
+ };
239
+ }
240
+ };
241
+ }), d = {};
242
+ s(d, {
243
+ __debug: () => Ya,
244
+ check: () => qa,
245
+ doc: () => oa,
246
+ format: () => Ka,
247
+ formatWithCursor: () => Ga,
248
+ getSupportInfo: () => Ja,
249
+ util: () => da,
250
+ version: () => ua
251
+ });
252
+ var f = (e, t) => (n, r, ...i) => n | 1 && r == null ? void 0 : (t.call(r) ?? r[e]).apply(r, i), p = String.prototype.replaceAll ?? function(e, t) {
253
+ return e.global ? this.replace(e, t) : this.split(e).join(t);
254
+ }, m = f("replaceAll", function() {
255
+ if (typeof this == "string") return p;
256
+ }), h = class {
257
+ diff(e, t, n = {}) {
258
+ let r;
259
+ typeof n == "function" ? (r = n, n = {}) : "callback" in n && (r = n.callback);
260
+ let i = this.castInput(e, n), a = this.castInput(t, n), o = this.removeEmpty(this.tokenize(i, n)), s = this.removeEmpty(this.tokenize(a, n));
261
+ return this.diffWithOptionsObj(o, s, n, r);
262
+ }
263
+ diffWithOptionsObj(e, t, n, r) {
264
+ let i = (e) => {
265
+ if (e = this.postProcess(e, n), r) {
266
+ setTimeout(function() {
267
+ r(e);
268
+ }, 0);
269
+ return;
270
+ } else return e;
271
+ }, a = t.length, o = e.length, s = 1, c = a + o;
272
+ n.maxEditLength != null && (c = Math.min(c, n.maxEditLength));
273
+ let l = n.timeout ?? Infinity, u = Date.now() + l, d = [{
274
+ oldPos: -1,
275
+ lastComponent: void 0
276
+ }], f = this.extractCommon(d[0], t, e, 0, n);
277
+ if (d[0].oldPos + 1 >= o && f + 1 >= a) return i(this.buildValues(d[0].lastComponent, t, e));
278
+ let p = -Infinity, m = Infinity, h = () => {
279
+ for (let r = Math.max(p, -s); r <= Math.min(m, s); r += 2) {
280
+ let s, c = d[r - 1], l = d[r + 1];
281
+ c && (d[r - 1] = void 0);
282
+ let u = !1;
283
+ if (l) {
284
+ let e = l.oldPos - r;
285
+ u = l && 0 <= e && e < a;
286
+ }
287
+ let h = c && c.oldPos + 1 < o;
288
+ if (!u && !h) {
289
+ d[r] = void 0;
290
+ continue;
291
+ }
292
+ if (s = !h || u && c.oldPos < l.oldPos ? this.addToPath(l, !0, !1, 0, n) : this.addToPath(c, !1, !0, 1, n), f = this.extractCommon(s, t, e, r, n), s.oldPos + 1 >= o && f + 1 >= a) return i(this.buildValues(s.lastComponent, t, e)) || !0;
293
+ d[r] = s, s.oldPos + 1 >= o && (m = Math.min(m, r - 1)), f + 1 >= a && (p = Math.max(p, r + 1));
294
+ }
295
+ s++;
296
+ };
297
+ if (r) (function e() {
298
+ setTimeout(function() {
299
+ if (s > c || Date.now() > u) return r(void 0);
300
+ h() || e();
301
+ }, 0);
302
+ })();
303
+ else for (; s <= c && Date.now() <= u;) {
304
+ let e = h();
305
+ if (e) return e;
306
+ }
307
+ }
308
+ addToPath(e, t, n, r, i) {
309
+ let a = e.lastComponent;
310
+ return a && !i.oneChangePerToken && a.added === t && a.removed === n ? {
311
+ oldPos: e.oldPos + r,
312
+ lastComponent: {
313
+ count: a.count + 1,
314
+ added: t,
315
+ removed: n,
316
+ previousComponent: a.previousComponent
317
+ }
318
+ } : {
319
+ oldPos: e.oldPos + r,
320
+ lastComponent: {
321
+ count: 1,
322
+ added: t,
323
+ removed: n,
324
+ previousComponent: a
325
+ }
326
+ };
327
+ }
328
+ extractCommon(e, t, n, r, i) {
329
+ let a = t.length, o = n.length, s = e.oldPos, c = s - r, l = 0;
330
+ for (; c + 1 < a && s + 1 < o && this.equals(n[s + 1], t[c + 1], i);) c++, s++, l++, i.oneChangePerToken && (e.lastComponent = {
331
+ count: 1,
332
+ previousComponent: e.lastComponent,
333
+ added: !1,
334
+ removed: !1
335
+ });
336
+ return l && !i.oneChangePerToken && (e.lastComponent = {
337
+ count: l,
338
+ previousComponent: e.lastComponent,
339
+ added: !1,
340
+ removed: !1
341
+ }), e.oldPos = s, c;
342
+ }
343
+ equals(e, t, n) {
344
+ return n.comparator ? n.comparator(e, t) : e === t || !!n.ignoreCase && e.toLowerCase() === t.toLowerCase();
345
+ }
346
+ removeEmpty(e) {
347
+ let t = [];
348
+ for (let n = 0; n < e.length; n++) e[n] && t.push(e[n]);
349
+ return t;
350
+ }
351
+ castInput(e, t) {
352
+ return e;
353
+ }
354
+ tokenize(e, t) {
355
+ return Array.from(e);
356
+ }
357
+ join(e) {
358
+ return e.join("");
359
+ }
360
+ postProcess(e, t) {
361
+ return e;
362
+ }
363
+ get useLongestToken() {
364
+ return !1;
365
+ }
366
+ buildValues(e, t, n) {
367
+ let r = [], i;
368
+ for (; e;) r.push(e), i = e.previousComponent, delete e.previousComponent, e = i;
369
+ r.reverse();
370
+ let a = r.length, o = 0, s = 0, c = 0;
371
+ for (; o < a; o++) {
372
+ let e = r[o];
373
+ if (e.removed) e.value = this.join(n.slice(c, c + e.count)), c += e.count;
374
+ else {
375
+ if (!e.added && this.useLongestToken) {
376
+ let r = t.slice(s, s + e.count);
377
+ r = r.map(function(e, t) {
378
+ let r = n[c + t];
379
+ return r.length > e.length ? r : e;
380
+ }), e.value = this.join(r);
381
+ } else e.value = this.join(t.slice(s, s + e.count));
382
+ s += e.count, e.added || (c += e.count);
383
+ }
384
+ }
385
+ return r;
386
+ }
387
+ }, g = new class extends h {
388
+ tokenize(e) {
389
+ return e.slice();
390
+ }
391
+ join(e) {
392
+ return e;
393
+ }
394
+ removeEmpty(e) {
395
+ return e;
396
+ }
397
+ }();
398
+ function _(e, t, n) {
399
+ return g.diff(e, t, n);
400
+ }
401
+ var v = () => {}, y = "cr", ee = "crlf", b = "lf", x = "\r", te = "\r\n", S = "\n", C = S;
402
+ function ne(e) {
403
+ let t = e.indexOf(x);
404
+ return t === -1 ? b : e.charAt(t + 1) === S ? ee : y;
405
+ }
406
+ function w(e) {
407
+ return e === y ? x : e === ee ? te : C;
408
+ }
409
+ var T = new Map([
410
+ [S, /\n/gu],
411
+ [x, /\r/gu],
412
+ [te, /\r\n/gu]
413
+ ]);
414
+ function re(e, t) {
415
+ let n = T.get(t);
416
+ return e.match(n)?.length ?? 0;
417
+ }
418
+ var E = /\r\n?/gu;
419
+ function ie(e) {
420
+ return m(0, e, E, S);
421
+ }
422
+ function D(e) {
423
+ return this[e < 0 ? this.length + e : e];
424
+ }
425
+ var O = f("at", function() {
426
+ if (Array.isArray(this) || typeof this == "string") return D;
427
+ }), k = "string", A = "array", j = "cursor", M = "indent", N = "align", P = "trim", F = "group", I = "fill", L = "if-break", R = "indent-if-break", z = "line-suffix", B = "line-suffix-boundary", V = "line", H = "label", U = "break-parent", ae = new Set([
428
+ j,
429
+ M,
430
+ N,
431
+ P,
432
+ F,
433
+ I,
434
+ L,
435
+ R,
436
+ z,
437
+ B,
438
+ V,
439
+ H,
440
+ U
441
+ ]);
442
+ function oe(e) {
443
+ let t = e.length;
444
+ for (; t > 0 && (e[t - 1] === "\r" || e[t - 1] === "\n");) t--;
445
+ return t < e.length ? e.slice(0, t) : e;
446
+ }
447
+ function se(e) {
448
+ if (typeof e == "string") return k;
449
+ if (Array.isArray(e)) return A;
450
+ if (!e) return;
451
+ let { type: t } = e;
452
+ if (ae.has(t)) return t;
453
+ }
454
+ var ce = se, le = (e) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e);
455
+ function ue(e) {
456
+ let t = e === null ? "null" : typeof e;
457
+ if (t !== "string" && t !== "object") return `Unexpected doc '${t}',
458
+ Expected it to be 'string' or 'object'.`;
459
+ if (ce(e)) throw Error("doc is valid.");
460
+ let n = Object.prototype.toString.call(e);
461
+ if (n !== "[object Object]") return `Unexpected doc '${n}'.`;
462
+ let r = le([...ae].map((e) => `'${e}'`));
463
+ return `Unexpected doc.type '${e.type}'.
464
+ Expected it to be ${r}.`;
465
+ }
466
+ var de = class extends Error {
467
+ name = "InvalidDocError";
468
+ constructor(e) {
469
+ super(ue(e)), this.doc = e;
470
+ }
471
+ }, fe = {};
472
+ function pe(e, t, n, r) {
473
+ let i = [e];
474
+ for (; i.length > 0;) {
475
+ let e = i.pop();
476
+ if (e === fe) {
477
+ n(i.pop());
478
+ continue;
479
+ }
480
+ n && i.push(e, fe);
481
+ let a = ce(e);
482
+ if (!a) throw new de(e);
483
+ if (t?.(e) !== !1) switch (a) {
484
+ case A:
485
+ case I: {
486
+ let t = a === A ? e : e.parts;
487
+ for (let e = t.length - 1; e >= 0; --e) i.push(t[e]);
488
+ break;
489
+ }
490
+ case L:
491
+ i.push(e.flatContents, e.breakContents);
492
+ break;
493
+ case F:
494
+ if (r && e.expandedStates) for (let t = e.expandedStates.length, n = t - 1; n >= 0; --n) i.push(e.expandedStates[n]);
495
+ else i.push(e.contents);
496
+ break;
497
+ case N:
498
+ case M:
499
+ case R:
500
+ case H:
501
+ case z:
502
+ i.push(e.contents);
503
+ break;
504
+ case k:
505
+ case j:
506
+ case P:
507
+ case B:
508
+ case V:
509
+ case U: break;
510
+ default: throw new de(e);
511
+ }
512
+ }
513
+ }
514
+ var me = pe;
515
+ function he(e, t) {
516
+ if (typeof e == "string") return t(e);
517
+ let n = /* @__PURE__ */ new Map();
518
+ return r(e);
519
+ function r(e) {
520
+ if (n.has(e)) return n.get(e);
521
+ let t = i(e);
522
+ return n.set(e, t), t;
523
+ }
524
+ function i(e) {
525
+ switch (ce(e)) {
526
+ case A: return t(e.map(r));
527
+ case I: return t({
528
+ ...e,
529
+ parts: e.parts.map(r)
530
+ });
531
+ case L: return t({
532
+ ...e,
533
+ breakContents: r(e.breakContents),
534
+ flatContents: r(e.flatContents)
535
+ });
536
+ case F: {
537
+ let { expandedStates: n, contents: i } = e;
538
+ return n ? (n = n.map(r), i = n[0]) : i = r(i), t({
539
+ ...e,
540
+ contents: i,
541
+ expandedStates: n
542
+ });
543
+ }
544
+ case N:
545
+ case M:
546
+ case R:
547
+ case H:
548
+ case z: return t({
549
+ ...e,
550
+ contents: r(e.contents)
551
+ });
552
+ case k:
553
+ case j:
554
+ case P:
555
+ case B:
556
+ case V:
557
+ case U: return t(e);
558
+ default: throw new de(e);
559
+ }
560
+ }
561
+ }
562
+ function ge(e, t, n) {
563
+ let r = n, i = !1;
564
+ function a(e) {
565
+ if (i) return !1;
566
+ let n = t(e);
567
+ n !== void 0 && (i = !0, r = n);
568
+ }
569
+ return me(e, a), r;
570
+ }
571
+ function _e(e) {
572
+ if (e.type === F && e.break || e.type === V && e.hard || e.type === U) return !0;
573
+ }
574
+ function ve(e) {
575
+ return ge(e, _e, !1);
576
+ }
577
+ function ye(e) {
578
+ if (e.length > 0) {
579
+ let t = O(0, e, -1);
580
+ !t.expandedStates && !t.break && (t.break = "propagated");
581
+ }
582
+ return null;
583
+ }
584
+ function be(e) {
585
+ let t = /* @__PURE__ */ new Set(), n = [];
586
+ function r(e) {
587
+ if (e.type === U && ye(n), e.type === F) {
588
+ if (n.push(e), t.has(e)) return !1;
589
+ t.add(e);
590
+ }
591
+ }
592
+ function i(e) {
593
+ e.type === F && n.pop().break && ye(n);
594
+ }
595
+ me(e, r, i, !0);
596
+ }
597
+ function xe(e) {
598
+ return e.type === V && !e.hard ? e.soft ? "" : " " : e.type === L ? e.flatContents : e;
599
+ }
600
+ function Se(e) {
601
+ return he(e, xe);
602
+ }
603
+ function Ce(e) {
604
+ for (e = [...e]; e.length >= 2 && O(0, e, -2).type === V && O(0, e, -1).type === U;) e.length -= 2;
605
+ if (e.length > 0) {
606
+ let t = we(O(0, e, -1));
607
+ e[e.length - 1] = t;
608
+ }
609
+ return e;
610
+ }
611
+ function we(e) {
612
+ switch (ce(e)) {
613
+ case M:
614
+ case R:
615
+ case F:
616
+ case z:
617
+ case H: {
618
+ let t = we(e.contents);
619
+ return {
620
+ ...e,
621
+ contents: t
622
+ };
623
+ }
624
+ case L: return {
625
+ ...e,
626
+ breakContents: we(e.breakContents),
627
+ flatContents: we(e.flatContents)
628
+ };
629
+ case I: return {
630
+ ...e,
631
+ parts: Ce(e.parts)
632
+ };
633
+ case A: return Ce(e);
634
+ case k: return oe(e);
635
+ case N:
636
+ case j:
637
+ case P:
638
+ case B:
639
+ case V:
640
+ case U: break;
641
+ default: throw new de(e);
642
+ }
643
+ return e;
644
+ }
645
+ function Te(e) {
646
+ return we(De(e));
647
+ }
648
+ function Ee(e) {
649
+ switch (ce(e)) {
650
+ case I:
651
+ if (e.parts.every((e) => e === "")) return "";
652
+ break;
653
+ case F:
654
+ if (!e.contents && !e.id && !e.break && !e.expandedStates) return "";
655
+ if (e.contents.type === F && e.contents.id === e.id && e.contents.break === e.break && e.contents.expandedStates === e.expandedStates) return e.contents;
656
+ break;
657
+ case N:
658
+ case M:
659
+ case R:
660
+ case z:
661
+ if (!e.contents) return "";
662
+ break;
663
+ case L:
664
+ if (!e.flatContents && !e.breakContents) return "";
665
+ break;
666
+ case A: {
667
+ let t = [];
668
+ for (let n of e) {
669
+ if (!n) continue;
670
+ let [e, ...r] = Array.isArray(n) ? n : [n];
671
+ typeof e == "string" && typeof O(0, t, -1) == "string" ? t[t.length - 1] += e : t.push(e), t.push(...r);
672
+ }
673
+ return t.length === 0 ? "" : t.length === 1 ? t[0] : t;
674
+ }
675
+ case k:
676
+ case j:
677
+ case P:
678
+ case B:
679
+ case V:
680
+ case H:
681
+ case U: break;
682
+ default: throw new de(e);
683
+ }
684
+ return e;
685
+ }
686
+ function De(e) {
687
+ return he(e, (e) => Ee(e));
688
+ }
689
+ function Oe(e, t = $e) {
690
+ return he(e, (e) => typeof e == "string" ? qe(t, e.split("\n")) : e);
691
+ }
692
+ function ke(e) {
693
+ if (e.type === V) return !0;
694
+ }
695
+ function Ae(e) {
696
+ return ge(e, ke, !1);
697
+ }
698
+ function je(e, t) {
699
+ return e.type === H ? {
700
+ ...e,
701
+ contents: t(e.contents)
702
+ } : t(e);
703
+ }
704
+ var W = v, Me = v, Ne = v, Pe = v;
705
+ function Fe(e) {
706
+ return W(e), {
707
+ type: M,
708
+ contents: e
709
+ };
710
+ }
711
+ function Ie(e, t) {
712
+ return Pe(e), W(t), {
713
+ type: N,
714
+ contents: t,
715
+ n: e
716
+ };
717
+ }
718
+ function Le(e) {
719
+ return Ie(-Infinity, e);
720
+ }
721
+ function Re(e) {
722
+ return Ie({ type: "root" }, e);
723
+ }
724
+ function ze(e) {
725
+ return Ie(-1, e);
726
+ }
727
+ function Be(e, t, n) {
728
+ W(e);
729
+ let r = e;
730
+ if (t > 0) {
731
+ for (let e = 0; e < Math.floor(t / n); ++e) r = Fe(r);
732
+ r = Ie(t % n, r), r = Ie(-Infinity, r);
733
+ }
734
+ return r;
735
+ }
736
+ var Ve = { type: U }, G = { type: j };
737
+ function He(e) {
738
+ return Ne(e), {
739
+ type: I,
740
+ parts: e
741
+ };
742
+ }
743
+ function Ue(e, t = {}) {
744
+ return W(e), Me(t.expandedStates, !0), {
745
+ type: F,
746
+ id: t.id,
747
+ contents: e,
748
+ break: !!t.shouldBreak,
749
+ expandedStates: t.expandedStates
750
+ };
751
+ }
752
+ function We(e, t) {
753
+ return Ue(e[0], {
754
+ ...t,
755
+ expandedStates: e
756
+ });
757
+ }
758
+ function Ge(e, t = "", n = {}) {
759
+ return W(e), t !== "" && W(t), {
760
+ type: L,
761
+ breakContents: e,
762
+ flatContents: t,
763
+ groupId: n.groupId
764
+ };
765
+ }
766
+ function Ke(e, t) {
767
+ return W(e), {
768
+ type: R,
769
+ contents: e,
770
+ groupId: t.groupId,
771
+ negate: t.negate
772
+ };
773
+ }
774
+ function qe(e, t) {
775
+ W(e), Me(t);
776
+ let n = [];
777
+ for (let r = 0; r < t.length; r++) r !== 0 && n.push(e), n.push(t[r]);
778
+ return n;
779
+ }
780
+ function Je(e, t) {
781
+ return W(t), e ? {
782
+ type: H,
783
+ label: e,
784
+ contents: t
785
+ } : t;
786
+ }
787
+ var Ye = { type: V }, Xe = {
788
+ type: V,
789
+ soft: !0
790
+ }, Ze = {
791
+ type: V,
792
+ hard: !0
793
+ }, K = [Ze, Ve], Qe = {
794
+ type: V,
795
+ hard: !0,
796
+ literal: !0
797
+ }, $e = [Qe, Ve];
798
+ function et(e) {
799
+ return W(e), {
800
+ type: z,
801
+ contents: e
802
+ };
803
+ }
804
+ var tt = { type: B }, nt = { type: P };
805
+ function q(e) {
806
+ if (!e) return "";
807
+ if (Array.isArray(e)) {
808
+ let t = [];
809
+ for (let n of e) if (Array.isArray(n)) t.push(...q(n));
810
+ else {
811
+ let e = q(n);
812
+ e !== "" && t.push(e);
813
+ }
814
+ return t;
815
+ }
816
+ return e.type === L ? {
817
+ ...e,
818
+ breakContents: q(e.breakContents),
819
+ flatContents: q(e.flatContents)
820
+ } : e.type === F ? {
821
+ ...e,
822
+ contents: q(e.contents),
823
+ expandedStates: e.expandedStates?.map(q)
824
+ } : e.type === I ? {
825
+ type: "fill",
826
+ parts: e.parts.map(q)
827
+ } : e.contents ? {
828
+ ...e,
829
+ contents: q(e.contents)
830
+ } : e;
831
+ }
832
+ function rt(e) {
833
+ let t = Object.create(null), n = /* @__PURE__ */ new Set();
834
+ return r(q(e));
835
+ function r(e, t, n) {
836
+ if (typeof e == "string") return JSON.stringify(e);
837
+ if (Array.isArray(e)) {
838
+ let t = e.map(r).filter(Boolean);
839
+ return t.length === 1 ? t[0] : `[${t.join(", ")}]`;
840
+ }
841
+ if (e.type === V) {
842
+ let r = n?.[t + 1]?.type === U;
843
+ return e.literal ? r ? "literalline" : "literallineWithoutBreakParent" : e.hard ? r ? "hardline" : "hardlineWithoutBreakParent" : e.soft ? "softline" : "line";
844
+ }
845
+ if (e.type === U) return n?.[t - 1]?.type === V && n[t - 1].hard ? void 0 : "breakParent";
846
+ if (e.type === P) return "trim";
847
+ if (e.type === M) return "indent(" + r(e.contents) + ")";
848
+ if (e.type === N) return e.n === -Infinity ? "dedentToRoot(" + r(e.contents) + ")" : e.n < 0 ? "dedent(" + r(e.contents) + ")" : e.n.type === "root" ? "markAsRoot(" + r(e.contents) + ")" : "align(" + JSON.stringify(e.n) + ", " + r(e.contents) + ")";
849
+ if (e.type === L) return "ifBreak(" + r(e.breakContents) + (e.flatContents ? ", " + r(e.flatContents) : "") + (e.groupId ? (e.flatContents ? "" : ", \"\"") + `, { groupId: ${i(e.groupId)} }` : "") + ")";
850
+ if (e.type === R) {
851
+ let t = [];
852
+ e.negate && t.push("negate: true"), e.groupId && t.push(`groupId: ${i(e.groupId)}`);
853
+ let n = t.length > 0 ? `, { ${t.join(", ")} }` : "";
854
+ return `indentIfBreak(${r(e.contents)}${n})`;
855
+ }
856
+ if (e.type === F) {
857
+ let t = [];
858
+ e.break && e.break !== "propagated" && t.push("shouldBreak: true"), e.id && t.push(`id: ${i(e.id)}`);
859
+ let n = t.length > 0 ? `, { ${t.join(", ")} }` : "";
860
+ return e.expandedStates ? `conditionalGroup([${e.expandedStates.map((e) => r(e)).join(",")}]${n})` : `group(${r(e.contents)}${n})`;
861
+ }
862
+ if (e.type === I) return `fill([${e.parts.map((e) => r(e)).join(", ")}])`;
863
+ if (e.type === z) return "lineSuffix(" + r(e.contents) + ")";
864
+ if (e.type === B) return "lineSuffixBoundary";
865
+ if (e.type === H) return `label(${JSON.stringify(e.label)}, ${r(e.contents)})`;
866
+ if (e.type === j) return "cursor";
867
+ throw Error("Unknown doc type " + e.type);
868
+ }
869
+ function i(e) {
870
+ if (typeof e != "symbol") return JSON.stringify(String(e));
871
+ if (e in t) return t[e];
872
+ let r = e.description || "symbol";
873
+ for (let i = 0;; i++) {
874
+ let a = r + (i > 0 ? ` #${i}` : "");
875
+ if (!n.has(a)) return n.add(a), t[e] = `Symbol.for(${JSON.stringify(a)})`;
876
+ }
877
+ }
878
+ }
879
+ var it = () => /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
880
+ function at(e) {
881
+ return e === 12288 || e >= 65281 && e <= 65376 || e >= 65504 && e <= 65510;
882
+ }
883
+ function ot(e) {
884
+ return e >= 4352 && e <= 4447 || e === 8986 || e === 8987 || e === 9001 || e === 9002 || e >= 9193 && e <= 9196 || e === 9200 || e === 9203 || e === 9725 || e === 9726 || e === 9748 || e === 9749 || e >= 9776 && e <= 9783 || e >= 9800 && e <= 9811 || e === 9855 || e >= 9866 && e <= 9871 || e === 9875 || e === 9889 || e === 9898 || e === 9899 || e === 9917 || e === 9918 || e === 9924 || e === 9925 || e === 9934 || e === 9940 || e === 9962 || e === 9970 || e === 9971 || e === 9973 || e === 9978 || e === 9981 || e === 9989 || e === 9994 || e === 9995 || e === 10024 || e === 10060 || e === 10062 || e >= 10067 && e <= 10069 || e === 10071 || e >= 10133 && e <= 10135 || e === 10160 || e === 10175 || e === 11035 || e === 11036 || e === 11088 || e === 11093 || e >= 11904 && e <= 11929 || e >= 11931 && e <= 12019 || e >= 12032 && e <= 12245 || e >= 12272 && e <= 12287 || e >= 12289 && e <= 12350 || e >= 12353 && e <= 12438 || e >= 12441 && e <= 12543 || e >= 12549 && e <= 12591 || e >= 12593 && e <= 12686 || e >= 12688 && e <= 12773 || e >= 12783 && e <= 12830 || e >= 12832 && e <= 12871 || e >= 12880 && e <= 42124 || e >= 42128 && e <= 42182 || e >= 43360 && e <= 43388 || e >= 44032 && e <= 55203 || e >= 63744 && e <= 64255 || e >= 65040 && e <= 65049 || e >= 65072 && e <= 65106 || e >= 65108 && e <= 65126 || e >= 65128 && e <= 65131 || e >= 94176 && e <= 94180 || e >= 94192 && e <= 94198 || e >= 94208 && e <= 101589 || e >= 101631 && e <= 101662 || e >= 101760 && e <= 101874 || e >= 110576 && e <= 110579 || e >= 110581 && e <= 110587 || e === 110589 || e === 110590 || e >= 110592 && e <= 110882 || e === 110898 || e >= 110928 && e <= 110930 || e === 110933 || e >= 110948 && e <= 110951 || e >= 110960 && e <= 111355 || e >= 119552 && e <= 119638 || e >= 119648 && e <= 119670 || e === 126980 || e === 127183 || e === 127374 || e >= 127377 && e <= 127386 || e >= 127488 && e <= 127490 || e >= 127504 && e <= 127547 || e >= 127552 && e <= 127560 || e === 127568 || e === 127569 || e >= 127584 && e <= 127589 || e >= 127744 && e <= 127776 || e >= 127789 && e <= 127797 || e >= 127799 && e <= 127868 || e >= 127870 && e <= 127891 || e >= 127904 && e <= 127946 || e >= 127951 && e <= 127955 || e >= 127968 && e <= 127984 || e === 127988 || e >= 127992 && e <= 128062 || e === 128064 || e >= 128066 && e <= 128252 || e >= 128255 && e <= 128317 || e >= 128331 && e <= 128334 || e >= 128336 && e <= 128359 || e === 128378 || e === 128405 || e === 128406 || e === 128420 || e >= 128507 && e <= 128591 || e >= 128640 && e <= 128709 || e === 128716 || e >= 128720 && e <= 128722 || e >= 128725 && e <= 128728 || e >= 128732 && e <= 128735 || e === 128747 || e === 128748 || e >= 128756 && e <= 128764 || e >= 128992 && e <= 129003 || e === 129008 || e >= 129292 && e <= 129338 || e >= 129340 && e <= 129349 || e >= 129351 && e <= 129535 || e >= 129648 && e <= 129660 || e >= 129664 && e <= 129674 || e >= 129678 && e <= 129734 || e === 129736 || e >= 129741 && e <= 129756 || e >= 129759 && e <= 129770 || e >= 129775 && e <= 129784 || e >= 131072 && e <= 196605 || e >= 196608 && e <= 262141;
885
+ }
886
+ var st = "©®‼⁉™ℹ↔↕↖↗↘↙↩↪⌨⏏⏱⏲⏸⏹⏺▪▫▶◀◻◼☀☁☂☃☄☎☑☘☝☠☢☣☦☪☮☯☸☹☺♀♂♟♠♣♥♦♨♻♾⚒⚔⚕⚖⚗⚙⚛⚜⚠⚧⚰⚱⛈⛏⛑⛓⛩⛱⛷⛸⛹✂✈✉✌✍✏✒✔✖✝✡✳✴❄❇❣❤➡⤴⤵⬅⬆⬇", ct = /[^\x20-\x7F]/u, lt = new Set(st);
887
+ function ut(e) {
888
+ if (!e) return 0;
889
+ if (!ct.test(e)) return e.length;
890
+ e = e.replace(it(), (e) => lt.has(e) ? " " : " ");
891
+ let t = 0;
892
+ for (let n of e) {
893
+ let e = n.codePointAt(0);
894
+ e <= 31 || e >= 127 && e <= 159 || e >= 768 && e <= 879 || e >= 65024 && e <= 65039 || (t += at(e) || ot(e) ? 2 : 1);
895
+ }
896
+ return t;
897
+ }
898
+ var dt = ut, ft = { type: 0 }, pt = { type: 1 }, mt = {
899
+ value: "",
900
+ length: 0,
901
+ queue: [],
902
+ get root() {
903
+ return mt;
904
+ }
905
+ };
906
+ function ht(e, t, n) {
907
+ let r = t.type === 1 ? e.queue.slice(0, -1) : [...e.queue, t], i = "", a = 0, o = 0, s = 0;
908
+ for (let e of r) switch (e.type) {
909
+ case 0:
910
+ u(), n.useTabs ? c(1) : l(n.tabWidth);
911
+ break;
912
+ case 3: {
913
+ let { string: t } = e;
914
+ u(), i += t, a += t.length;
915
+ break;
916
+ }
917
+ case 2: {
918
+ let { width: t } = e;
919
+ o += 1, s += t;
920
+ break;
921
+ }
922
+ default: throw Error(`Unexpected indent comment '${e.type}'.`);
923
+ }
924
+ return f(), {
925
+ ...e,
926
+ value: i,
927
+ length: a,
928
+ queue: r
929
+ };
930
+ function c(e) {
931
+ i += " ".repeat(e), a += n.tabWidth * e;
932
+ }
933
+ function l(e) {
934
+ i += " ".repeat(e), a += e;
935
+ }
936
+ function u() {
937
+ n.useTabs ? d() : f();
938
+ }
939
+ function d() {
940
+ o > 0 && c(o), p();
941
+ }
942
+ function f() {
943
+ s > 0 && l(s), p();
944
+ }
945
+ function p() {
946
+ o = 0, s = 0;
947
+ }
948
+ }
949
+ function gt(e, t, n) {
950
+ if (!t) return e;
951
+ if (t.type === "root") return {
952
+ ...e,
953
+ root: e
954
+ };
955
+ if (t === -Infinity) return e.root;
956
+ let r;
957
+ return r = typeof t == "number" ? t < 0 ? pt : {
958
+ type: 2,
959
+ width: t
960
+ } : {
961
+ type: 3,
962
+ string: t
963
+ }, ht(e, r, n);
964
+ }
965
+ function _t(e, t) {
966
+ return ht(e, ft, t);
967
+ }
968
+ function vt(e) {
969
+ let t = 0;
970
+ for (let n = e.length - 1; n >= 0; n--) {
971
+ let r = e[n];
972
+ if (r === " " || r === " ") t++;
973
+ else break;
974
+ }
975
+ return t;
976
+ }
977
+ function yt(e) {
978
+ let t = vt(e);
979
+ return {
980
+ text: t === 0 ? e : e.slice(0, e.length - t),
981
+ count: t
982
+ };
983
+ }
984
+ var J = Symbol("MODE_BREAK"), Y = Symbol("MODE_FLAT"), bt = Symbol("DOC_FILL_PRINTED_LENGTH");
985
+ function xt(e, t, n, r, i, a) {
986
+ if (n === Infinity) return !0;
987
+ let o = t.length, s = !1, c = [e], l = "";
988
+ for (; n >= 0;) {
989
+ if (c.length === 0) {
990
+ if (o === 0) return !0;
991
+ c.push(t[--o]);
992
+ continue;
993
+ }
994
+ let { mode: e, doc: u } = c.pop(), d = ce(u);
995
+ switch (d) {
996
+ case k:
997
+ u && (s &&= (l += " ", --n, !1), l += u, n -= dt(u));
998
+ break;
999
+ case A:
1000
+ case I: {
1001
+ let t = d === A ? u : u.parts, n = u[bt] ?? 0;
1002
+ for (let r = t.length - 1; r >= n; r--) c.push({
1003
+ mode: e,
1004
+ doc: t[r]
1005
+ });
1006
+ break;
1007
+ }
1008
+ case M:
1009
+ case N:
1010
+ case R:
1011
+ case H:
1012
+ c.push({
1013
+ mode: e,
1014
+ doc: u.contents
1015
+ });
1016
+ break;
1017
+ case P: {
1018
+ let { text: e, count: t } = yt(l);
1019
+ l = e, n += t;
1020
+ break;
1021
+ }
1022
+ case F: {
1023
+ if (a && u.break) return !1;
1024
+ let t = u.break ? J : e, n = u.expandedStates && t === J ? O(0, u.expandedStates, -1) : u.contents;
1025
+ c.push({
1026
+ mode: t,
1027
+ doc: n
1028
+ });
1029
+ break;
1030
+ }
1031
+ case L: {
1032
+ let t = (u.groupId ? i[u.groupId] || Y : e) === J ? u.breakContents : u.flatContents;
1033
+ t && c.push({
1034
+ mode: e,
1035
+ doc: t
1036
+ });
1037
+ break;
1038
+ }
1039
+ case V:
1040
+ if (e === J || u.hard) return !0;
1041
+ u.soft || (s = !0);
1042
+ break;
1043
+ case z:
1044
+ r = !0;
1045
+ break;
1046
+ case B:
1047
+ if (r) return !1;
1048
+ break;
1049
+ }
1050
+ }
1051
+ return !1;
1052
+ }
1053
+ function St(e, t) {
1054
+ let n = Object.create(null), r = t.printWidth, i = w(t.endOfLine), a = 0, o = [{
1055
+ indent: mt,
1056
+ mode: J,
1057
+ doc: e
1058
+ }], s = "", c = !1, l = [], u = [], d = [], f = [], p = 0;
1059
+ for (be(e); o.length > 0;) {
1060
+ let { indent: e, mode: d, doc: f } = o.pop();
1061
+ switch (ce(f)) {
1062
+ case k: {
1063
+ let e = i === "\n" ? f : m(0, f, "\n", i);
1064
+ e && (s += e, o.length > 0 && (a += dt(e)));
1065
+ break;
1066
+ }
1067
+ case A:
1068
+ for (let t = f.length - 1; t >= 0; t--) o.push({
1069
+ indent: e,
1070
+ mode: d,
1071
+ doc: f[t]
1072
+ });
1073
+ break;
1074
+ case j:
1075
+ if (u.length >= 2) throw Error("There are too many 'cursor' in doc.");
1076
+ u.push(p + s.length);
1077
+ break;
1078
+ case M:
1079
+ o.push({
1080
+ indent: _t(e, t),
1081
+ mode: d,
1082
+ doc: f.contents
1083
+ });
1084
+ break;
1085
+ case N:
1086
+ o.push({
1087
+ indent: gt(e, f.n, t),
1088
+ mode: d,
1089
+ doc: f.contents
1090
+ });
1091
+ break;
1092
+ case P:
1093
+ v();
1094
+ break;
1095
+ case F:
1096
+ switch (d) {
1097
+ case Y: if (!c) {
1098
+ o.push({
1099
+ indent: e,
1100
+ mode: f.break ? J : Y,
1101
+ doc: f.contents
1102
+ });
1103
+ break;
1104
+ }
1105
+ case J: {
1106
+ c = !1;
1107
+ let t = {
1108
+ indent: e,
1109
+ mode: Y,
1110
+ doc: f.contents
1111
+ }, i = r - a, s = l.length > 0;
1112
+ if (!f.break && xt(t, o, i, s, n)) o.push(t);
1113
+ else if (f.expandedStates) {
1114
+ let t = O(0, f.expandedStates, -1);
1115
+ if (f.break) {
1116
+ o.push({
1117
+ indent: e,
1118
+ mode: J,
1119
+ doc: t
1120
+ });
1121
+ break;
1122
+ } else for (let r = 1; r < f.expandedStates.length + 1; r++) if (r >= f.expandedStates.length) {
1123
+ o.push({
1124
+ indent: e,
1125
+ mode: J,
1126
+ doc: t
1127
+ });
1128
+ break;
1129
+ } else {
1130
+ let t = {
1131
+ indent: e,
1132
+ mode: Y,
1133
+ doc: f.expandedStates[r]
1134
+ };
1135
+ if (xt(t, o, i, s, n)) {
1136
+ o.push(t);
1137
+ break;
1138
+ }
1139
+ }
1140
+ } else o.push({
1141
+ indent: e,
1142
+ mode: J,
1143
+ doc: f.contents
1144
+ });
1145
+ break;
1146
+ }
1147
+ }
1148
+ f.id && (n[f.id] = O(0, o, -1).mode);
1149
+ break;
1150
+ case I: {
1151
+ let t = r - a, i = f[bt] ?? 0, { parts: s } = f, c = s.length - i;
1152
+ if (c === 0) break;
1153
+ let u = s[i + 0], p = s[i + 1], m = {
1154
+ indent: e,
1155
+ mode: Y,
1156
+ doc: u
1157
+ }, h = {
1158
+ indent: e,
1159
+ mode: J,
1160
+ doc: u
1161
+ }, g = xt(m, [], t, l.length > 0, n, !0);
1162
+ if (c === 1) {
1163
+ g ? o.push(m) : o.push(h);
1164
+ break;
1165
+ }
1166
+ let _ = {
1167
+ indent: e,
1168
+ mode: Y,
1169
+ doc: p
1170
+ }, v = {
1171
+ indent: e,
1172
+ mode: J,
1173
+ doc: p
1174
+ };
1175
+ if (c === 2) {
1176
+ g ? o.push(_, m) : o.push(v, h);
1177
+ break;
1178
+ }
1179
+ let y = s[i + 2], ee = {
1180
+ indent: e,
1181
+ mode: d,
1182
+ doc: {
1183
+ ...f,
1184
+ [bt]: i + 2
1185
+ }
1186
+ }, b = xt({
1187
+ indent: e,
1188
+ mode: Y,
1189
+ doc: [
1190
+ u,
1191
+ p,
1192
+ y
1193
+ ]
1194
+ }, [], t, l.length > 0, n, !0);
1195
+ o.push(ee), b ? o.push(_, m) : g ? o.push(v, m) : o.push(v, h);
1196
+ break;
1197
+ }
1198
+ case L:
1199
+ case R: {
1200
+ let t = f.groupId ? n[f.groupId] : d;
1201
+ if (t === J) {
1202
+ let t = f.type === L ? f.breakContents : f.negate ? f.contents : Fe(f.contents);
1203
+ t && o.push({
1204
+ indent: e,
1205
+ mode: d,
1206
+ doc: t
1207
+ });
1208
+ }
1209
+ if (t === Y) {
1210
+ let t = f.type === L ? f.flatContents : f.negate ? Fe(f.contents) : f.contents;
1211
+ t && o.push({
1212
+ indent: e,
1213
+ mode: d,
1214
+ doc: t
1215
+ });
1216
+ }
1217
+ break;
1218
+ }
1219
+ case z:
1220
+ l.push({
1221
+ indent: e,
1222
+ mode: d,
1223
+ doc: f.contents
1224
+ });
1225
+ break;
1226
+ case B:
1227
+ l.length > 0 && o.push({
1228
+ indent: e,
1229
+ mode: d,
1230
+ doc: Ze
1231
+ });
1232
+ break;
1233
+ case V:
1234
+ switch (d) {
1235
+ case Y: if (f.hard) c = !0;
1236
+ else {
1237
+ f.soft || (s += " ", a += 1);
1238
+ break;
1239
+ }
1240
+ case J:
1241
+ if (l.length > 0) {
1242
+ o.push({
1243
+ indent: e,
1244
+ mode: d,
1245
+ doc: f
1246
+ }, ...l.reverse()), l.length = 0;
1247
+ break;
1248
+ }
1249
+ f.literal ? (s += i, a = 0, e.root && (e.root.value && (s += e.root.value), a = e.root.length)) : (v(), s += i + e.value, a = e.length);
1250
+ break;
1251
+ }
1252
+ break;
1253
+ case H:
1254
+ o.push({
1255
+ indent: e,
1256
+ mode: d,
1257
+ doc: f.contents
1258
+ });
1259
+ break;
1260
+ case U: break;
1261
+ default: throw new de(f);
1262
+ }
1263
+ o.length === 0 && l.length > 0 && (o.push(...l.reverse()), l.length = 0);
1264
+ }
1265
+ let h = d.join("") + s, g = [...f, ...u];
1266
+ if (g.length !== 2) return { formatted: h };
1267
+ let _ = g[0];
1268
+ return {
1269
+ formatted: h,
1270
+ cursorNodeStart: _,
1271
+ cursorNodeText: h.slice(_, O(0, g, -1))
1272
+ };
1273
+ function v() {
1274
+ let { text: e, count: t } = yt(s);
1275
+ e && (d.push(e), p += e.length), s = "", a -= t, u.length > 0 && (f.push(...u.map((e) => Math.min(e, p))), u.length = 0);
1276
+ }
1277
+ }
1278
+ function Ct(e, t, n = 0) {
1279
+ let r = 0;
1280
+ for (let i = n; i < e.length; ++i) e[i] === " " ? r = r + t - r % t : r++;
1281
+ return r;
1282
+ }
1283
+ var wt = Ct, Tt = class {
1284
+ constructor(e) {
1285
+ this.stack = [e];
1286
+ }
1287
+ get key() {
1288
+ let { stack: e, siblings: t } = this;
1289
+ return O(0, e, t === null ? -2 : -4) ?? null;
1290
+ }
1291
+ get index() {
1292
+ return this.siblings === null ? null : O(0, this.stack, -2);
1293
+ }
1294
+ get node() {
1295
+ return O(0, this.stack, -1);
1296
+ }
1297
+ get parent() {
1298
+ return this.getNode(1);
1299
+ }
1300
+ get grandparent() {
1301
+ return this.getNode(2);
1302
+ }
1303
+ get isInArray() {
1304
+ return this.siblings !== null;
1305
+ }
1306
+ get siblings() {
1307
+ let { stack: e } = this, t = O(0, e, -3);
1308
+ return Array.isArray(t) ? t : null;
1309
+ }
1310
+ get next() {
1311
+ let { siblings: e } = this;
1312
+ return e === null ? null : e[this.index + 1];
1313
+ }
1314
+ get previous() {
1315
+ let { siblings: e } = this;
1316
+ return e === null ? null : e[this.index - 1];
1317
+ }
1318
+ get isFirst() {
1319
+ return this.index === 0;
1320
+ }
1321
+ get isLast() {
1322
+ let { siblings: e, index: t } = this;
1323
+ return e !== null && t === e.length - 1;
1324
+ }
1325
+ get isRoot() {
1326
+ return this.stack.length === 1;
1327
+ }
1328
+ get root() {
1329
+ return this.stack[0];
1330
+ }
1331
+ get ancestors() {
1332
+ return [...this.#t()];
1333
+ }
1334
+ getName() {
1335
+ let { stack: e } = this, { length: t } = e;
1336
+ return t > 1 ? O(0, e, -2) : null;
1337
+ }
1338
+ getValue() {
1339
+ return O(0, this.stack, -1);
1340
+ }
1341
+ getNode(e = 0) {
1342
+ let t = this.#e(e);
1343
+ return t === -1 ? null : this.stack[t];
1344
+ }
1345
+ getParentNode(e = 0) {
1346
+ return this.getNode(e + 1);
1347
+ }
1348
+ #e(e) {
1349
+ let { stack: t } = this;
1350
+ for (let n = t.length - 1; n >= 0; n -= 2) if (!Array.isArray(t[n]) && --e < 0) return n;
1351
+ return -1;
1352
+ }
1353
+ call(e, ...t) {
1354
+ let { stack: n } = this, { length: r } = n, i = O(0, n, -1);
1355
+ for (let e of t) i = i?.[e], n.push(e, i);
1356
+ try {
1357
+ return e(this);
1358
+ } finally {
1359
+ n.length = r;
1360
+ }
1361
+ }
1362
+ callParent(e, t = 0) {
1363
+ let n = this.#e(t + 1), r = this.stack.splice(n + 1);
1364
+ try {
1365
+ return e(this);
1366
+ } finally {
1367
+ this.stack.push(...r);
1368
+ }
1369
+ }
1370
+ each(e, ...t) {
1371
+ let { stack: n } = this, { length: r } = n, i = O(0, n, -1);
1372
+ for (let e of t) i = i[e], n.push(e, i);
1373
+ try {
1374
+ for (let t = 0; t < i.length; ++t) n.push(t, i[t]), e(this, t, i), n.length -= 2;
1375
+ } finally {
1376
+ n.length = r;
1377
+ }
1378
+ }
1379
+ map(e, ...t) {
1380
+ let n = [];
1381
+ return this.each((t, r, i) => {
1382
+ n[r] = e(t, r, i);
1383
+ }, ...t), n;
1384
+ }
1385
+ match(...e) {
1386
+ let t = this.stack.length - 1, n = null, r = this.stack[t--];
1387
+ for (let i of e) {
1388
+ if (r === void 0) return !1;
1389
+ let e = null;
1390
+ if (typeof n == "number" && (e = n, n = this.stack[t--], r = this.stack[t--]), i && !i(r, n, e)) return !1;
1391
+ n = this.stack[t--], r = this.stack[t--];
1392
+ }
1393
+ return !0;
1394
+ }
1395
+ findAncestor(e) {
1396
+ for (let t of this.#t()) if (e(t)) return t;
1397
+ }
1398
+ hasAncestor(e) {
1399
+ for (let t of this.#t()) if (e(t)) return !0;
1400
+ return !1;
1401
+ }
1402
+ *#t() {
1403
+ let { stack: e } = this;
1404
+ for (let t = e.length - 3; t >= 0; t -= 2) {
1405
+ let n = e[t];
1406
+ Array.isArray(n) || (yield n);
1407
+ }
1408
+ }
1409
+ };
1410
+ function Et(e) {
1411
+ return typeof e == "object" && !!e;
1412
+ }
1413
+ var Dt = Et;
1414
+ function Ot(e) {
1415
+ return (t, n, r) => {
1416
+ let i = !!r?.backwards;
1417
+ if (n === !1) return !1;
1418
+ let { length: a } = t, o = n;
1419
+ for (; o >= 0 && o < a;) {
1420
+ let n = t.charAt(o);
1421
+ if (e instanceof RegExp) {
1422
+ if (!e.test(n)) return o;
1423
+ } else if (!e.includes(n)) return o;
1424
+ i ? o-- : o++;
1425
+ }
1426
+ return o === -1 || o === a ? o : !1;
1427
+ };
1428
+ }
1429
+ var kt = Ot(/\s/u), X = Ot(" "), At = Ot(",; "), jt = Ot(/[^\n\r]/u), Mt = (e) => e === "\n" || e === "\r" || e === "\u2028" || e === "\u2029";
1430
+ function Nt(e, t, n) {
1431
+ let r = !!n?.backwards;
1432
+ if (t === !1) return !1;
1433
+ let i = e.charAt(t);
1434
+ if (r) {
1435
+ if (e.charAt(t - 1) === "\r" && i === "\n") return t - 2;
1436
+ if (Mt(i)) return t - 1;
1437
+ } else {
1438
+ if (i === "\r" && e.charAt(t + 1) === "\n") return t + 2;
1439
+ if (Mt(i)) return t + 1;
1440
+ }
1441
+ return t;
1442
+ }
1443
+ var Pt = Nt;
1444
+ function Ft(e, t, n = {}) {
1445
+ let r = X(e, n.backwards ? t - 1 : t, n);
1446
+ return r !== Pt(e, r, n);
1447
+ }
1448
+ var Z = Ft;
1449
+ function It(e) {
1450
+ return Array.isArray(e) && e.length > 0;
1451
+ }
1452
+ var Lt = It;
1453
+ function* Rt(e, t) {
1454
+ let { getVisitorKeys: n, filter: r = () => !0 } = t, i = (e) => Dt(e) && r(e);
1455
+ for (let t of n(e)) {
1456
+ let n = e[t];
1457
+ if (Array.isArray(n)) for (let e of n) i(e) && (yield e);
1458
+ else i(n) && (yield n);
1459
+ }
1460
+ }
1461
+ function* zt(e, t) {
1462
+ let n = [e];
1463
+ for (let e = 0; e < n.length; e++) {
1464
+ let r = n[e];
1465
+ for (let e of Rt(r, t)) yield e, n.push(e);
1466
+ }
1467
+ }
1468
+ function Bt(e, t) {
1469
+ return Rt(e, t).next().done;
1470
+ }
1471
+ function Vt(e, t, n) {
1472
+ let { cache: r } = n;
1473
+ if (r.has(e)) return r.get(e);
1474
+ let { filter: i } = n;
1475
+ if (!i) return [];
1476
+ let a, o = (n.getChildren?.(e, n) ?? [...Rt(e, { getVisitorKeys: n.getVisitorKeys })]).flatMap((r) => (a ??= [e, ...t], i(r, a) ? [r] : Vt(r, a, n))), { locStart: s, locEnd: c } = n;
1477
+ return o.sort((e, t) => s(e) - s(t) || c(e) - c(t)), r.set(e, o), o;
1478
+ }
1479
+ var Ht = Vt;
1480
+ function Ut(e) {
1481
+ let t = e.type || e.kind || "(unknown type)", n = String(e.name || e.id && (typeof e.id == "object" ? e.id.name : e.id) || e.key && (typeof e.key == "object" ? e.key.name : e.key) || e.value && (typeof e.value == "object" ? "" : String(e.value)) || e.operator || "");
1482
+ return n.length > 20 && (n = n.slice(0, 19) + "…"), t + (n ? " " + n : "");
1483
+ }
1484
+ function Wt(e, t) {
1485
+ (e.comments ??= []).push(t), t.printed = !1, t.nodeDescription = Ut(e);
1486
+ }
1487
+ function Gt(e, t) {
1488
+ t.leading = !0, t.trailing = !1, Wt(e, t);
1489
+ }
1490
+ function Kt(e, t, n) {
1491
+ t.leading = !1, t.trailing = !1, n && (t.marker = n), Wt(e, t);
1492
+ }
1493
+ function qt(e, t) {
1494
+ t.leading = !1, t.trailing = !0, Wt(e, t);
1495
+ }
1496
+ var Jt = /* @__PURE__ */ new WeakMap();
1497
+ function Yt(e, t, n, r, i = []) {
1498
+ let { locStart: a, locEnd: o } = n, s = a(t), c = o(t), l = Ht(e, i, {
1499
+ cache: Jt,
1500
+ locStart: a,
1501
+ locEnd: o,
1502
+ getVisitorKeys: n.getVisitorKeys,
1503
+ filter: n.printer.canAttachComment,
1504
+ getChildren: n.printer.getCommentChildNodes
1505
+ }), u, d, f = 0, p = l.length;
1506
+ for (; f < p;) {
1507
+ let e = f + p >> 1, r = l[e], m = a(r), h = o(r);
1508
+ if (m <= s && c <= h) return Yt(r, t, n, r, [r, ...i]);
1509
+ if (h <= s) {
1510
+ u = r, f = e + 1;
1511
+ continue;
1512
+ }
1513
+ if (c <= m) {
1514
+ d = r, p = e;
1515
+ continue;
1516
+ }
1517
+ throw Error("Comment location overlaps with node location");
1518
+ }
1519
+ if (r?.type === "TemplateLiteral") {
1520
+ let { quasis: e } = r, i = nn(e, t, n);
1521
+ u && nn(e, u, n) !== i && (u = null), d && nn(e, d, n) !== i && (d = null);
1522
+ }
1523
+ return {
1524
+ enclosingNode: r,
1525
+ precedingNode: u,
1526
+ followingNode: d
1527
+ };
1528
+ }
1529
+ var Xt = () => !1;
1530
+ function Zt(e, t) {
1531
+ let { comments: n } = e;
1532
+ if (delete e.comments, !Lt(n) || !t.printer.canAttachComment) return;
1533
+ let r = [], { printer: { features: { experimental_avoidAstMutation: i }, handleComments: a = {} }, originalText: o } = t, { ownLine: s = Xt, endOfLine: c = Xt, remaining: l = Xt } = a, u = n.map((r, i) => ({
1534
+ ...Yt(e, r, t),
1535
+ comment: r,
1536
+ text: o,
1537
+ options: t,
1538
+ ast: e,
1539
+ isLastComment: n.length - 1 === i
1540
+ }));
1541
+ for (let [e, t] of u.entries()) {
1542
+ let { comment: n, precedingNode: a, enclosingNode: o, followingNode: d, text: f, options: p, ast: m, isLastComment: h } = t, g;
1543
+ if (i ? g = [t] : (n.enclosingNode = o, n.precedingNode = a, n.followingNode = d, g = [
1544
+ n,
1545
+ f,
1546
+ p,
1547
+ m,
1548
+ h
1549
+ ]), $t(f, p, u, e)) n.placement = "ownLine", s(...g) || (d ? Gt(d, n) : a ? qt(a, n) : Kt(o || m, n));
1550
+ else if (en(f, p, u, e)) n.placement = "endOfLine", c(...g) || (a ? qt(a, n) : d ? Gt(d, n) : Kt(o || m, n));
1551
+ else if (n.placement = "remaining", !l(...g)) if (a && d) {
1552
+ let e = r.length;
1553
+ e > 0 && r[e - 1].followingNode !== d && tn(r, p), r.push(t);
1554
+ } else a ? qt(a, n) : d ? Gt(d, n) : Kt(o || m, n);
1555
+ }
1556
+ if (tn(r, t), !i) for (let e of n) delete e.precedingNode, delete e.enclosingNode, delete e.followingNode;
1557
+ }
1558
+ var Qt = (e) => !/[\S\n\u2028\u2029]/u.test(e);
1559
+ function $t(e, t, n, r) {
1560
+ let { comment: i, precedingNode: a } = n[r], { locStart: o, locEnd: s } = t, c = o(i);
1561
+ if (a) for (let t = r - 1; t >= 0; t--) {
1562
+ let { comment: r, precedingNode: i } = n[t];
1563
+ if (i !== a || !Qt(e.slice(s(r), c))) break;
1564
+ c = o(r);
1565
+ }
1566
+ return Z(e, c, { backwards: !0 });
1567
+ }
1568
+ function en(e, t, n, r) {
1569
+ let { comment: i, followingNode: a } = n[r], { locStart: o, locEnd: s } = t, c = s(i);
1570
+ if (a) for (let t = r + 1; t < n.length; t++) {
1571
+ let { comment: r, followingNode: i } = n[t];
1572
+ if (i !== a || !Qt(e.slice(c, o(r)))) break;
1573
+ c = s(r);
1574
+ }
1575
+ return Z(e, c);
1576
+ }
1577
+ function tn(e, t) {
1578
+ let n = e.length;
1579
+ if (n === 0) return;
1580
+ let { precedingNode: r, followingNode: i } = e[0], a = t.locStart(i), o;
1581
+ for (o = n; o > 0; --o) {
1582
+ let { comment: n, precedingNode: r, followingNode: i } = e[o - 1], s = t.originalText.slice(t.locEnd(n), a);
1583
+ if (t.printer.isGap?.(s, t) ?? /^[\s(]*$/u.test(s)) a = t.locStart(n);
1584
+ else break;
1585
+ }
1586
+ for (let [t, { comment: n }] of e.entries()) t < o ? qt(r, n) : Gt(i, n);
1587
+ for (let e of [r, i]) e.comments && e.comments.length > 1 && e.comments.sort((e, n) => t.locStart(e) - t.locStart(n));
1588
+ e.length = 0;
1589
+ }
1590
+ function nn(e, t, n) {
1591
+ let r = n.locStart(t) - 1;
1592
+ for (let t = 1; t < e.length; ++t) if (r < n.locStart(e[t])) return t - 1;
1593
+ return 0;
1594
+ }
1595
+ function rn(e, t) {
1596
+ let n = t - 1;
1597
+ n = X(e, n, { backwards: !0 }), n = Pt(e, n, { backwards: !0 }), n = X(e, n, { backwards: !0 });
1598
+ let r = Pt(e, n, { backwards: !0 });
1599
+ return n !== r;
1600
+ }
1601
+ var an = rn;
1602
+ function on(e, t) {
1603
+ let n = e.node;
1604
+ return n.printed = !0, t.printer.printComment(e, t);
1605
+ }
1606
+ function sn(e, t) {
1607
+ let n = e.node, r = [on(e, t)], { printer: i, originalText: a, locStart: o, locEnd: s } = t;
1608
+ if (i.isBlockComment?.(n)) {
1609
+ let e = Z(a, s(n)) ? Z(a, o(n), { backwards: !0 }) ? K : Ye : " ";
1610
+ r.push(e);
1611
+ } else r.push(K);
1612
+ let c = Pt(a, X(a, s(n)));
1613
+ return c !== !1 && Z(a, c) && r.push(K), r;
1614
+ }
1615
+ function cn(e, t, n) {
1616
+ let r = e.node, i = on(e, t), { printer: a, originalText: o, locStart: s } = t, c = a.isBlockComment?.(r);
1617
+ return n?.hasLineSuffix && !n?.isBlock || Z(o, s(r), { backwards: !0 }) ? {
1618
+ doc: et([
1619
+ K,
1620
+ an(o, s(r)) ? K : "",
1621
+ i
1622
+ ]),
1623
+ isBlock: c,
1624
+ hasLineSuffix: !0
1625
+ } : !c || n?.hasLineSuffix ? {
1626
+ doc: [et([" ", i]), Ve],
1627
+ isBlock: c,
1628
+ hasLineSuffix: !0
1629
+ } : {
1630
+ doc: [" ", i],
1631
+ isBlock: c,
1632
+ hasLineSuffix: !1
1633
+ };
1634
+ }
1635
+ function ln(e, t) {
1636
+ let n = e.node;
1637
+ if (!n) return {};
1638
+ let r = t[Symbol.for("printedComments")];
1639
+ if ((n.comments || []).filter((e) => !r.has(e)).length === 0) return {
1640
+ leading: "",
1641
+ trailing: ""
1642
+ };
1643
+ let i = [], a = [], o;
1644
+ return e.each(() => {
1645
+ let n = e.node;
1646
+ if (r?.has(n)) return;
1647
+ let { leading: s, trailing: c } = n;
1648
+ s ? i.push(sn(e, t)) : c && (o = cn(e, t, o), a.push(o.doc));
1649
+ }, "comments"), {
1650
+ leading: i,
1651
+ trailing: a
1652
+ };
1653
+ }
1654
+ function un(e, t, n) {
1655
+ let { leading: r, trailing: i } = ln(e, n);
1656
+ return !r && !i ? t : je(t, (e) => [
1657
+ r,
1658
+ e,
1659
+ i
1660
+ ]);
1661
+ }
1662
+ function dn(e) {
1663
+ let { [Symbol.for("comments")]: t, [Symbol.for("printedComments")]: n } = e;
1664
+ for (let e of t) {
1665
+ if (!e.printed && !n.has(e)) throw Error("Comment \"" + e.value.trim() + "\" was not printed. Please report this error!");
1666
+ delete e.printed;
1667
+ }
1668
+ }
1669
+ var fn = () => v, pn = class extends Error {
1670
+ name = "ConfigError";
1671
+ }, mn = class extends Error {
1672
+ name = "UndefinedParserError";
1673
+ }, hn = {
1674
+ checkIgnorePragma: {
1675
+ category: "Special",
1676
+ type: "boolean",
1677
+ default: !1,
1678
+ description: "Check whether the file's first docblock comment contains '@noprettier' or '@noformat' to determine if it should be formatted.",
1679
+ cliCategory: "Other"
1680
+ },
1681
+ cursorOffset: {
1682
+ category: "Special",
1683
+ type: "int",
1684
+ default: -1,
1685
+ range: {
1686
+ start: -1,
1687
+ end: Infinity,
1688
+ step: 1
1689
+ },
1690
+ description: "Print (to stderr) where a cursor at the given position would move to after formatting.",
1691
+ cliCategory: "Editor"
1692
+ },
1693
+ endOfLine: {
1694
+ category: "Global",
1695
+ type: "choice",
1696
+ default: "lf",
1697
+ description: "Which end of line characters to apply.",
1698
+ choices: [
1699
+ {
1700
+ value: "lf",
1701
+ description: "Line Feed only (\\n), common on Linux and macOS as well as inside git repos"
1702
+ },
1703
+ {
1704
+ value: "crlf",
1705
+ description: "Carriage Return + Line Feed characters (\\r\\n), common on Windows"
1706
+ },
1707
+ {
1708
+ value: "cr",
1709
+ description: "Carriage Return character only (\\r), used very rarely"
1710
+ },
1711
+ {
1712
+ value: "auto",
1713
+ description: "Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)"
1714
+ }
1715
+ ]
1716
+ },
1717
+ filepath: {
1718
+ category: "Special",
1719
+ type: "path",
1720
+ description: "Specify the input filepath. This will be used to do parser inference.",
1721
+ cliName: "stdin-filepath",
1722
+ cliCategory: "Other",
1723
+ cliDescription: "Path to the file to pretend that stdin comes from."
1724
+ },
1725
+ insertPragma: {
1726
+ category: "Special",
1727
+ type: "boolean",
1728
+ default: !1,
1729
+ description: "Insert @format pragma into file's first docblock comment.",
1730
+ cliCategory: "Other"
1731
+ },
1732
+ parser: {
1733
+ category: "Global",
1734
+ type: "choice",
1735
+ default: void 0,
1736
+ description: "Which parser to use.",
1737
+ exception: (e) => typeof e == "string" || typeof e == "function",
1738
+ choices: [
1739
+ {
1740
+ value: "flow",
1741
+ description: "Flow"
1742
+ },
1743
+ {
1744
+ value: "babel",
1745
+ description: "JavaScript"
1746
+ },
1747
+ {
1748
+ value: "babel-flow",
1749
+ description: "Flow"
1750
+ },
1751
+ {
1752
+ value: "babel-ts",
1753
+ description: "TypeScript"
1754
+ },
1755
+ {
1756
+ value: "typescript",
1757
+ description: "TypeScript"
1758
+ },
1759
+ {
1760
+ value: "acorn",
1761
+ description: "JavaScript"
1762
+ },
1763
+ {
1764
+ value: "espree",
1765
+ description: "JavaScript"
1766
+ },
1767
+ {
1768
+ value: "meriyah",
1769
+ description: "JavaScript"
1770
+ },
1771
+ {
1772
+ value: "css",
1773
+ description: "CSS"
1774
+ },
1775
+ {
1776
+ value: "less",
1777
+ description: "Less"
1778
+ },
1779
+ {
1780
+ value: "scss",
1781
+ description: "SCSS"
1782
+ },
1783
+ {
1784
+ value: "json",
1785
+ description: "JSON"
1786
+ },
1787
+ {
1788
+ value: "json5",
1789
+ description: "JSON5"
1790
+ },
1791
+ {
1792
+ value: "jsonc",
1793
+ description: "JSON with Comments"
1794
+ },
1795
+ {
1796
+ value: "json-stringify",
1797
+ description: "JSON.stringify"
1798
+ },
1799
+ {
1800
+ value: "graphql",
1801
+ description: "GraphQL"
1802
+ },
1803
+ {
1804
+ value: "markdown",
1805
+ description: "Markdown"
1806
+ },
1807
+ {
1808
+ value: "mdx",
1809
+ description: "MDX"
1810
+ },
1811
+ {
1812
+ value: "vue",
1813
+ description: "Vue"
1814
+ },
1815
+ {
1816
+ value: "yaml",
1817
+ description: "YAML"
1818
+ },
1819
+ {
1820
+ value: "glimmer",
1821
+ description: "Ember / Handlebars"
1822
+ },
1823
+ {
1824
+ value: "html",
1825
+ description: "HTML"
1826
+ },
1827
+ {
1828
+ value: "angular",
1829
+ description: "Angular"
1830
+ },
1831
+ {
1832
+ value: "lwc",
1833
+ description: "Lightning Web Components"
1834
+ },
1835
+ {
1836
+ value: "mjml",
1837
+ description: "MJML"
1838
+ }
1839
+ ]
1840
+ },
1841
+ plugins: {
1842
+ type: "path",
1843
+ array: !0,
1844
+ default: [{ value: [] }],
1845
+ category: "Global",
1846
+ description: "Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",
1847
+ exception: (e) => typeof e == "string" || typeof e == "object",
1848
+ cliName: "plugin",
1849
+ cliCategory: "Config"
1850
+ },
1851
+ printWidth: {
1852
+ category: "Global",
1853
+ type: "int",
1854
+ default: 80,
1855
+ description: "The line length where Prettier will try wrap.",
1856
+ range: {
1857
+ start: 0,
1858
+ end: Infinity,
1859
+ step: 1
1860
+ }
1861
+ },
1862
+ rangeEnd: {
1863
+ category: "Special",
1864
+ type: "int",
1865
+ default: Infinity,
1866
+ range: {
1867
+ start: 0,
1868
+ end: Infinity,
1869
+ step: 1
1870
+ },
1871
+ description: "Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.",
1872
+ cliCategory: "Editor"
1873
+ },
1874
+ rangeStart: {
1875
+ category: "Special",
1876
+ type: "int",
1877
+ default: 0,
1878
+ range: {
1879
+ start: 0,
1880
+ end: Infinity,
1881
+ step: 1
1882
+ },
1883
+ description: "Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.",
1884
+ cliCategory: "Editor"
1885
+ },
1886
+ requirePragma: {
1887
+ category: "Special",
1888
+ type: "boolean",
1889
+ default: !1,
1890
+ description: "Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted.",
1891
+ cliCategory: "Other"
1892
+ },
1893
+ tabWidth: {
1894
+ type: "int",
1895
+ category: "Global",
1896
+ default: 2,
1897
+ description: "Number of spaces per indentation level.",
1898
+ range: {
1899
+ start: 0,
1900
+ end: Infinity,
1901
+ step: 1
1902
+ }
1903
+ },
1904
+ useTabs: {
1905
+ category: "Global",
1906
+ type: "boolean",
1907
+ default: !1,
1908
+ description: "Indent with tabs instead of spaces."
1909
+ },
1910
+ embeddedLanguageFormatting: {
1911
+ category: "Global",
1912
+ type: "choice",
1913
+ default: "auto",
1914
+ description: "Control how Prettier formats quoted code embedded in the file.",
1915
+ choices: [{
1916
+ value: "auto",
1917
+ description: "Format embedded code if Prettier can automatically identify it."
1918
+ }, {
1919
+ value: "off",
1920
+ description: "Never automatically format embedded code."
1921
+ }]
1922
+ }
1923
+ };
1924
+ function gn({ plugins: e = [], showDeprecated: t = !1 } = {}) {
1925
+ let n = e.flatMap((e) => e.languages ?? []), r = [];
1926
+ for (let i of vn(Object.assign({}, ...e.map(({ options: e }) => e), hn))) !t && i.deprecated || (Array.isArray(i.choices) && (t || (i.choices = i.choices.filter((e) => !e.deprecated)), i.name === "parser" && (i.choices = [...i.choices, ..._n(i.choices, n, e)])), i.pluginDefaults = Object.fromEntries(e.filter((e) => e.defaultOptions?.[i.name] !== void 0).map((e) => [e.name, e.defaultOptions[i.name]])), r.push(i));
1927
+ return {
1928
+ languages: n,
1929
+ options: r
1930
+ };
1931
+ }
1932
+ function* _n(e, t, n) {
1933
+ let r = new Set(e.map((e) => e.value));
1934
+ for (let e of t) if (e.parsers) {
1935
+ for (let t of e.parsers) if (!r.has(t)) {
1936
+ r.add(t);
1937
+ let i = n.find((e) => e.parsers && Object.prototype.hasOwnProperty.call(e.parsers, t)), a = e.name;
1938
+ i?.name && (a += ` (plugin: ${i.name})`), yield {
1939
+ value: t,
1940
+ description: a
1941
+ };
1942
+ }
1943
+ }
1944
+ }
1945
+ function vn(e) {
1946
+ let t = [];
1947
+ for (let [n, r] of Object.entries(e)) {
1948
+ let e = {
1949
+ name: n,
1950
+ ...r
1951
+ };
1952
+ Array.isArray(e.default) && (e.default = O(0, e.default, -1).value), t.push(e);
1953
+ }
1954
+ return t;
1955
+ }
1956
+ var yn = Array.prototype.toReversed ?? function() {
1957
+ return [...this].reverse();
1958
+ }, bn = f("toReversed", function() {
1959
+ if (Array.isArray(this)) return yn;
1960
+ });
1961
+ function xn() {
1962
+ let e = globalThis, t = e.Deno?.build?.os;
1963
+ return typeof t == "string" ? t === "windows" : e.navigator?.platform?.startsWith("Win") ?? e.process?.platform?.startsWith("win") ?? !1;
1964
+ }
1965
+ var Sn = xn();
1966
+ function Cn(e) {
1967
+ if (e = e instanceof URL ? e : new URL(e), e.protocol !== "file:") throw TypeError(`URL must be a file URL: received "${e.protocol}"`);
1968
+ return e;
1969
+ }
1970
+ function wn(e) {
1971
+ return e = Cn(e), decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"));
1972
+ }
1973
+ function Tn(e) {
1974
+ e = Cn(e);
1975
+ let t = decodeURIComponent(e.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25")).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\");
1976
+ return e.hostname !== "" && (t = `\\\\${e.hostname}${t}`), t;
1977
+ }
1978
+ function En(e) {
1979
+ return Sn ? Tn(e) : wn(e);
1980
+ }
1981
+ var Dn = (e) => String(e).split(/[/\\]/u).pop(), On = (e) => String(e).startsWith("file:");
1982
+ function kn(e, t) {
1983
+ if (!t) return;
1984
+ let n = Dn(t).toLowerCase();
1985
+ return e.find(({ filenames: e }) => e?.some((e) => e.toLowerCase() === n)) ?? e.find(({ extensions: e }) => e?.some((e) => n.endsWith(e)));
1986
+ }
1987
+ function An(e, t) {
1988
+ if (t) return e.find(({ name: e }) => e.toLowerCase() === t) ?? e.find(({ aliases: e }) => e?.includes(t)) ?? e.find(({ extensions: e }) => e?.includes(`.${t}`));
1989
+ }
1990
+ var jn = void 0;
1991
+ function Mn(e, t) {
1992
+ if (t) {
1993
+ if (On(t)) try {
1994
+ t = En(t);
1995
+ } catch {
1996
+ return;
1997
+ }
1998
+ if (typeof t == "string") return e.find(({ isSupported: e }) => e?.({ filepath: t }));
1999
+ }
2000
+ }
2001
+ function Nn(e, t) {
2002
+ let n = bn(0, e.plugins).flatMap((e) => e.languages ?? []);
2003
+ return (An(n, t.language) ?? kn(n, t.physicalFile) ?? kn(n, t.file) ?? Mn(n, t.physicalFile) ?? Mn(n, t.file) ?? jn?.(n, t.physicalFile))?.parsers[0];
2004
+ }
2005
+ var Pn = Nn, Fn = {
2006
+ key: (e) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e) ? e : JSON.stringify(e),
2007
+ value(e) {
2008
+ if (typeof e != "object" || !e) return JSON.stringify(e);
2009
+ if (Array.isArray(e)) return `[${e.map((e) => Fn.value(e)).join(", ")}]`;
2010
+ let t = Object.keys(e);
2011
+ return t.length === 0 ? "{}" : `{ ${t.map((t) => `${Fn.key(t)}: ${Fn.value(e[t])}`).join(", ")} }`;
2012
+ },
2013
+ pair: ({ key: e, value: t }) => Fn.value({ [e]: t })
2014
+ }, In = new Proxy(String, { get: () => In }), Q = In, Ln = () => In, Rn = (e, t, { descriptor: n }) => {
2015
+ let r = [`${Q.yellow(typeof e == "string" ? n.key(e) : n.pair(e))} is deprecated`];
2016
+ return t && r.push(`we now treat it as ${Q.blue(typeof t == "string" ? n.key(t) : n.pair(t))}`), r.join("; ") + ".";
2017
+ }, zn = Symbol.for("vnopts.VALUE_NOT_EXIST"), Bn = Symbol.for("vnopts.VALUE_UNCHANGED"), Vn = " ".repeat(2), Hn = (e, t, n) => {
2018
+ let { text: r, list: i } = n.normalizeExpectedResult(n.schemas[e].expected(n)), a = [];
2019
+ return r && a.push(Un(e, t, r, n.descriptor)), i && a.push([Un(e, t, i.title, n.descriptor)].concat(i.values.map((e) => Wn(e, n.loggerPrintWidth))).join("\n")), Gn(a, n.loggerPrintWidth);
2020
+ };
2021
+ function Un(e, t, n, r) {
2022
+ return [
2023
+ `Invalid ${Q.red(r.key(e))} value.`,
2024
+ `Expected ${Q.blue(n)},`,
2025
+ `but received ${t === zn ? Q.gray("nothing") : Q.red(r.value(t))}.`
2026
+ ].join(" ");
2027
+ }
2028
+ function Wn({ text: e, list: t }, n) {
2029
+ let r = [];
2030
+ return e && r.push(`- ${Q.blue(e)}`), t && r.push([`- ${Q.blue(t.title)}:`].concat(t.values.map((e) => Wn(e, n - Vn.length).replace(/^|\n/g, `$&${Vn}`))).join("\n")), Gn(r, n);
2031
+ }
2032
+ function Gn(e, t) {
2033
+ if (e.length === 1) return e[0];
2034
+ let [n, r] = e, [i, a] = e.map((e) => e.split("\n", 1)[0].length);
2035
+ return i > t && i > a ? r : n;
2036
+ }
2037
+ var Kn = [], qn = [];
2038
+ function Jn(e, t, n) {
2039
+ if (e === t) return 0;
2040
+ let r = n?.maxDistance, i = e;
2041
+ e.length > t.length && (e = t, t = i);
2042
+ let a = e.length, o = t.length;
2043
+ for (; a > 0 && e.charCodeAt(~-a) === t.charCodeAt(~-o);) a--, o--;
2044
+ let s = 0;
2045
+ for (; s < a && e.charCodeAt(s) === t.charCodeAt(s);) s++;
2046
+ if (a -= s, o -= s, r !== void 0 && o - a > r) return r;
2047
+ if (a === 0) return r !== void 0 && o > r ? r : o;
2048
+ let c, l, u, d, f = 0, p = 0;
2049
+ for (; f < a;) qn[f] = e.charCodeAt(s + f), Kn[f] = ++f;
2050
+ for (; p < o;) {
2051
+ for (c = t.charCodeAt(s + p), u = p++, l = p, f = 0; f < a; f++) d = c === qn[f] ? u : u + 1, u = Kn[f], l = Kn[f] = u > l ? d > l ? l + 1 : d : d > u ? u + 1 : d;
2052
+ if (r !== void 0) {
2053
+ let e = l;
2054
+ for (f = 0; f < a; f++) Kn[f] < e && (e = Kn[f]);
2055
+ if (e > r) return r;
2056
+ }
2057
+ }
2058
+ return Kn.length = a, qn.length = a, r !== void 0 && l > r ? r : l;
2059
+ }
2060
+ function Yn(e, t, n) {
2061
+ if (!Array.isArray(t) || t.length === 0) return;
2062
+ let r = n?.maxDistance, i = e.length;
2063
+ for (let n of t) if (n === e) return n;
2064
+ if (r === 0) return;
2065
+ let a, o = Infinity, s = /* @__PURE__ */ new Set();
2066
+ for (let n of t) {
2067
+ if (s.has(n)) continue;
2068
+ s.add(n);
2069
+ let t = Math.abs(n.length - i);
2070
+ if (t >= o || r !== void 0 && t > r) continue;
2071
+ let c = Number.isFinite(o) ? r === void 0 ? o : Math.min(o, r) : r, l = c === void 0 ? Jn(e, n) : Jn(e, n, { maxDistance: c });
2072
+ if (r !== void 0 && l > r) continue;
2073
+ let u = l;
2074
+ if (c !== void 0 && l === c && c === r && (u = Jn(e, n)), u < o && (o = u, a = n, o === 0)) break;
2075
+ }
2076
+ if (!(r !== void 0 && o > r)) return a;
2077
+ }
2078
+ var Xn = (e, t, { descriptor: n, logger: r, schemas: i }) => {
2079
+ let a = [`Ignored unknown option ${Q.yellow(n.pair({
2080
+ key: e,
2081
+ value: t
2082
+ }))}.`], o = Yn(e, Object.keys(i), { maxDistance: 3 });
2083
+ o && a.push(`Did you mean ${Q.blue(n.key(o))}?`), r.warn(a.join(" "));
2084
+ }, Zn = [
2085
+ "default",
2086
+ "expected",
2087
+ "validate",
2088
+ "deprecated",
2089
+ "forward",
2090
+ "redirect",
2091
+ "overlap",
2092
+ "preprocess",
2093
+ "postprocess"
2094
+ ];
2095
+ function Qn(e, t) {
2096
+ let n = new e(t), r = Object.create(n);
2097
+ for (let e of Zn) e in t && (r[e] = $n(t[e], n, $.prototype[e].length));
2098
+ return r;
2099
+ }
2100
+ var $ = class {
2101
+ static create(e) {
2102
+ return Qn(this, e);
2103
+ }
2104
+ constructor(e) {
2105
+ this.name = e.name;
2106
+ }
2107
+ default(e) {}
2108
+ expected(e) {
2109
+ return "nothing";
2110
+ }
2111
+ validate(e, t) {
2112
+ return !1;
2113
+ }
2114
+ deprecated(e, t) {
2115
+ return !1;
2116
+ }
2117
+ forward(e, t) {}
2118
+ redirect(e, t) {}
2119
+ overlap(e, t, n) {
2120
+ return e;
2121
+ }
2122
+ preprocess(e, t) {
2123
+ return e;
2124
+ }
2125
+ postprocess(e, t) {
2126
+ return Bn;
2127
+ }
2128
+ };
2129
+ function $n(e, t, n) {
2130
+ return typeof e == "function" ? (...r) => e(...r.slice(0, n - 1), t, ...r.slice(n - 1)) : () => e;
2131
+ }
2132
+ var er = class extends $ {
2133
+ constructor(e) {
2134
+ super(e), this._sourceName = e.sourceName;
2135
+ }
2136
+ expected(e) {
2137
+ return e.schemas[this._sourceName].expected(e);
2138
+ }
2139
+ validate(e, t) {
2140
+ return t.schemas[this._sourceName].validate(e, t);
2141
+ }
2142
+ redirect(e, t) {
2143
+ return this._sourceName;
2144
+ }
2145
+ }, tr = class extends $ {
2146
+ expected() {
2147
+ return "anything";
2148
+ }
2149
+ validate() {
2150
+ return !0;
2151
+ }
2152
+ }, nr = class extends $ {
2153
+ constructor({ valueSchema: e, name: t = e.name, ...n }) {
2154
+ super({
2155
+ ...n,
2156
+ name: t
2157
+ }), this._valueSchema = e;
2158
+ }
2159
+ expected(e) {
2160
+ let { text: t, list: n } = e.normalizeExpectedResult(this._valueSchema.expected(e));
2161
+ return {
2162
+ text: t && `an array of ${t}`,
2163
+ list: n && {
2164
+ title: "an array of the following values",
2165
+ values: [{ list: n }]
2166
+ }
2167
+ };
2168
+ }
2169
+ validate(e, t) {
2170
+ if (!Array.isArray(e)) return !1;
2171
+ let n = [];
2172
+ for (let r of e) {
2173
+ let e = t.normalizeValidateResult(this._valueSchema.validate(r, t), r);
2174
+ e !== !0 && n.push(e.value);
2175
+ }
2176
+ return n.length === 0 ? !0 : { value: n };
2177
+ }
2178
+ deprecated(e, t) {
2179
+ let n = [];
2180
+ for (let r of e) {
2181
+ let e = t.normalizeDeprecatedResult(this._valueSchema.deprecated(r, t), r);
2182
+ e !== !1 && n.push(...e.map(({ value: e }) => ({ value: [e] })));
2183
+ }
2184
+ return n;
2185
+ }
2186
+ forward(e, t) {
2187
+ let n = [];
2188
+ for (let r of e) {
2189
+ let e = t.normalizeForwardResult(this._valueSchema.forward(r, t), r);
2190
+ n.push(...e.map(rr));
2191
+ }
2192
+ return n;
2193
+ }
2194
+ redirect(e, t) {
2195
+ let n = [], r = [];
2196
+ for (let i of e) {
2197
+ let e = t.normalizeRedirectResult(this._valueSchema.redirect(i, t), i);
2198
+ "remain" in e && n.push(e.remain), r.push(...e.redirect.map(rr));
2199
+ }
2200
+ return n.length === 0 ? { redirect: r } : {
2201
+ redirect: r,
2202
+ remain: n
2203
+ };
2204
+ }
2205
+ overlap(e, t) {
2206
+ return e.concat(t);
2207
+ }
2208
+ };
2209
+ function rr({ from: e, to: t }) {
2210
+ return {
2211
+ from: [e],
2212
+ to: t
2213
+ };
2214
+ }
2215
+ var ir = class extends $ {
2216
+ expected() {
2217
+ return "true or false";
2218
+ }
2219
+ validate(e) {
2220
+ return typeof e == "boolean";
2221
+ }
2222
+ };
2223
+ function ar(e, t) {
2224
+ let n = Object.create(null);
2225
+ for (let r of e) {
2226
+ let e = r[t];
2227
+ if (n[e]) throw Error(`Duplicate ${t} ${JSON.stringify(e)}`);
2228
+ n[e] = r;
2229
+ }
2230
+ return n;
2231
+ }
2232
+ function or(e, t) {
2233
+ let n = /* @__PURE__ */ new Map();
2234
+ for (let r of e) {
2235
+ let e = r[t];
2236
+ if (n.has(e)) throw Error(`Duplicate ${t} ${JSON.stringify(e)}`);
2237
+ n.set(e, r);
2238
+ }
2239
+ return n;
2240
+ }
2241
+ function sr() {
2242
+ let e = Object.create(null);
2243
+ return (t) => {
2244
+ let n = JSON.stringify(t);
2245
+ return e[n] ? !0 : (e[n] = !0, !1);
2246
+ };
2247
+ }
2248
+ function cr(e, t) {
2249
+ let n = [], r = [];
2250
+ for (let i of e) t(i) ? n.push(i) : r.push(i);
2251
+ return [n, r];
2252
+ }
2253
+ function lr(e) {
2254
+ return e === Math.floor(e);
2255
+ }
2256
+ function ur(e, t) {
2257
+ if (e === t) return 0;
2258
+ let n = typeof e, r = typeof t, i = [
2259
+ "undefined",
2260
+ "object",
2261
+ "boolean",
2262
+ "number",
2263
+ "string"
2264
+ ];
2265
+ return n === r ? n === "string" ? e.localeCompare(t) : Number(e) - Number(t) : i.indexOf(n) - i.indexOf(r);
2266
+ }
2267
+ function dr(e) {
2268
+ return (...t) => {
2269
+ let n = e(...t);
2270
+ return typeof n == "string" ? Error(n) : n;
2271
+ };
2272
+ }
2273
+ function fr(e) {
2274
+ return e === void 0 ? {} : e;
2275
+ }
2276
+ function pr(e) {
2277
+ if (typeof e == "string") return { text: e };
2278
+ let { text: t, list: n } = e;
2279
+ return yr((t || n) !== void 0, "Unexpected `expected` result, there should be at least one field."), n ? {
2280
+ text: t,
2281
+ list: {
2282
+ title: n.title,
2283
+ values: n.values.map(pr)
2284
+ }
2285
+ } : { text: t };
2286
+ }
2287
+ function mr(e, t) {
2288
+ return e === !0 ? !0 : e === !1 ? { value: t } : e;
2289
+ }
2290
+ function hr(e, t, n = !1) {
2291
+ return e === !1 ? !1 : e === !0 ? n ? !0 : [{ value: t }] : "value" in e ? [e] : e.length === 0 ? !1 : e;
2292
+ }
2293
+ function gr(e, t) {
2294
+ return typeof e == "string" || "key" in e ? {
2295
+ from: t,
2296
+ to: e
2297
+ } : "from" in e ? {
2298
+ from: e.from,
2299
+ to: e.to
2300
+ } : {
2301
+ from: t,
2302
+ to: e.to
2303
+ };
2304
+ }
2305
+ function _r(e, t) {
2306
+ return e === void 0 ? [] : Array.isArray(e) ? e.map((e) => gr(e, t)) : [gr(e, t)];
2307
+ }
2308
+ function vr(e, t) {
2309
+ let n = _r(typeof e == "object" && "redirect" in e ? e.redirect : e, t);
2310
+ return n.length === 0 ? {
2311
+ remain: t,
2312
+ redirect: n
2313
+ } : typeof e == "object" && "remain" in e ? {
2314
+ remain: e.remain,
2315
+ redirect: n
2316
+ } : { redirect: n };
2317
+ }
2318
+ function yr(e, t) {
2319
+ if (!e) throw Error(t);
2320
+ }
2321
+ var br = class extends $ {
2322
+ constructor(e) {
2323
+ super(e), this._choices = or(e.choices.map((e) => e && typeof e == "object" ? e : { value: e }), "value");
2324
+ }
2325
+ expected({ descriptor: e }) {
2326
+ let t = Array.from(this._choices.keys()).map((e) => this._choices.get(e)).filter(({ hidden: e }) => !e).map((e) => e.value).sort(ur).map(e.value), n = t.slice(0, -2), r = t.slice(-2);
2327
+ return {
2328
+ text: n.concat(r.join(" or ")).join(", "),
2329
+ list: {
2330
+ title: "one of the following values",
2331
+ values: t
2332
+ }
2333
+ };
2334
+ }
2335
+ validate(e) {
2336
+ return this._choices.has(e);
2337
+ }
2338
+ deprecated(e) {
2339
+ let t = this._choices.get(e);
2340
+ return t && t.deprecated ? { value: e } : !1;
2341
+ }
2342
+ forward(e) {
2343
+ let t = this._choices.get(e);
2344
+ return t ? t.forward : void 0;
2345
+ }
2346
+ redirect(e) {
2347
+ let t = this._choices.get(e);
2348
+ return t ? t.redirect : void 0;
2349
+ }
2350
+ }, xr = class extends $ {
2351
+ expected() {
2352
+ return "a number";
2353
+ }
2354
+ validate(e, t) {
2355
+ return typeof e == "number";
2356
+ }
2357
+ }, Sr = class extends xr {
2358
+ expected() {
2359
+ return "an integer";
2360
+ }
2361
+ validate(e, t) {
2362
+ return t.normalizeValidateResult(super.validate(e, t), e) === !0 && lr(e);
2363
+ }
2364
+ }, Cr = class extends $ {
2365
+ expected() {
2366
+ return "a string";
2367
+ }
2368
+ validate(e) {
2369
+ return typeof e == "string";
2370
+ }
2371
+ }, wr = Fn, Tr = Xn, Er = Hn, Dr = Rn, Or = class {
2372
+ constructor(e, t) {
2373
+ let { logger: n = console, loggerPrintWidth: r = 80, descriptor: i = wr, unknown: a = Tr, invalid: o = Er, deprecated: s = Dr, missing: c = () => !1, required: l = () => !1, preprocess: u = (e) => e, postprocess: d = () => Bn } = t || {};
2374
+ this._utils = {
2375
+ descriptor: i,
2376
+ logger: n || { warn: () => {} },
2377
+ loggerPrintWidth: r,
2378
+ schemas: ar(e, "name"),
2379
+ normalizeDefaultResult: fr,
2380
+ normalizeExpectedResult: pr,
2381
+ normalizeDeprecatedResult: hr,
2382
+ normalizeForwardResult: _r,
2383
+ normalizeRedirectResult: vr,
2384
+ normalizeValidateResult: mr
2385
+ }, this._unknownHandler = a, this._invalidHandler = dr(o), this._deprecatedHandler = s, this._identifyMissing = (e, t) => !(e in t) || c(e, t), this._identifyRequired = l, this._preprocess = u, this._postprocess = d, this.cleanHistory();
2386
+ }
2387
+ cleanHistory() {
2388
+ this._hasDeprecationWarned = sr();
2389
+ }
2390
+ normalize(e) {
2391
+ let t = {}, n = [this._preprocess(e, this._utils)], r = () => {
2392
+ for (; n.length !== 0;) {
2393
+ let e = n.shift(), r = this._applyNormalization(e, t);
2394
+ n.push(...r);
2395
+ }
2396
+ };
2397
+ r();
2398
+ for (let e of Object.keys(this._utils.schemas)) {
2399
+ let r = this._utils.schemas[e];
2400
+ if (!(e in t)) {
2401
+ let t = fr(r.default(this._utils));
2402
+ "value" in t && n.push({ [e]: t.value });
2403
+ }
2404
+ }
2405
+ r();
2406
+ for (let e of Object.keys(this._utils.schemas)) {
2407
+ if (!(e in t)) continue;
2408
+ let n = this._utils.schemas[e], r = t[e], i = n.postprocess(r, this._utils);
2409
+ i !== Bn && (this._applyValidation(i, e, n), t[e] = i);
2410
+ }
2411
+ return this._applyPostprocess(t), this._applyRequiredCheck(t), t;
2412
+ }
2413
+ _applyNormalization(e, t) {
2414
+ let n = [], { knownKeys: r, unknownKeys: i } = this._partitionOptionKeys(e);
2415
+ for (let i of r) {
2416
+ let r = this._utils.schemas[i], a = r.preprocess(e[i], this._utils);
2417
+ this._applyValidation(a, i, r);
2418
+ let o = ({ from: e, to: t }) => {
2419
+ n.push(typeof t == "string" ? { [t]: e } : { [t.key]: t.value });
2420
+ }, s = ({ value: e, redirectTo: t }) => {
2421
+ let n = hr(r.deprecated(e, this._utils), a, !0);
2422
+ if (n !== !1) if (n === !0) this._hasDeprecationWarned(i) || this._utils.logger.warn(this._deprecatedHandler(i, t, this._utils));
2423
+ else for (let { value: e } of n) {
2424
+ let n = {
2425
+ key: i,
2426
+ value: e
2427
+ };
2428
+ if (!this._hasDeprecationWarned(n)) {
2429
+ let r = typeof t == "string" ? {
2430
+ key: t,
2431
+ value: e
2432
+ } : t;
2433
+ this._utils.logger.warn(this._deprecatedHandler(n, r, this._utils));
2434
+ }
2435
+ }
2436
+ };
2437
+ _r(r.forward(a, this._utils), a).forEach(o);
2438
+ let c = vr(r.redirect(a, this._utils), a);
2439
+ if (c.redirect.forEach(o), "remain" in c) {
2440
+ let e = c.remain;
2441
+ t[i] = i in t ? r.overlap(t[i], e, this._utils) : e, s({ value: e });
2442
+ }
2443
+ for (let { from: e, to: t } of c.redirect) s({
2444
+ value: e,
2445
+ redirectTo: t
2446
+ });
2447
+ }
2448
+ for (let r of i) {
2449
+ let i = e[r];
2450
+ this._applyUnknownHandler(r, i, t, (e, t) => {
2451
+ n.push({ [e]: t });
2452
+ });
2453
+ }
2454
+ return n;
2455
+ }
2456
+ _applyRequiredCheck(e) {
2457
+ for (let t of Object.keys(this._utils.schemas)) if (this._identifyMissing(t, e) && this._identifyRequired(t)) throw this._invalidHandler(t, zn, this._utils);
2458
+ }
2459
+ _partitionOptionKeys(e) {
2460
+ let [t, n] = cr(Object.keys(e).filter((t) => !this._identifyMissing(t, e)), (e) => e in this._utils.schemas);
2461
+ return {
2462
+ knownKeys: t,
2463
+ unknownKeys: n
2464
+ };
2465
+ }
2466
+ _applyValidation(e, t, n) {
2467
+ let r = mr(n.validate(e, this._utils), e);
2468
+ if (r !== !0) throw this._invalidHandler(t, r.value, this._utils);
2469
+ }
2470
+ _applyUnknownHandler(e, t, n, r) {
2471
+ let i = this._unknownHandler(e, t, this._utils);
2472
+ if (i) for (let e of Object.keys(i)) {
2473
+ if (this._identifyMissing(e, i)) continue;
2474
+ let t = i[e];
2475
+ e in this._utils.schemas ? r(e, t) : n[e] = t;
2476
+ }
2477
+ }
2478
+ _applyPostprocess(e) {
2479
+ let t = this._postprocess(e, this._utils);
2480
+ if (t !== Bn) {
2481
+ if (t.delete) for (let n of t.delete) delete e[n];
2482
+ if (t.override) {
2483
+ let { knownKeys: n, unknownKeys: r } = this._partitionOptionKeys(t.override);
2484
+ for (let r of n) {
2485
+ let n = t.override[r];
2486
+ this._applyValidation(n, r, this._utils.schemas[r]), e[r] = n;
2487
+ }
2488
+ for (let n of r) {
2489
+ let r = t.override[n];
2490
+ this._applyUnknownHandler(n, r, e, (t, n) => {
2491
+ let r = this._utils.schemas[t];
2492
+ this._applyValidation(n, t, r), e[t] = n;
2493
+ });
2494
+ }
2495
+ }
2496
+ }
2497
+ }
2498
+ }, kr;
2499
+ function Ar(e, t, { logger: n = !1, isCLI: r = !1, passThrough: i = !1, FlagSchema: a, descriptor: o } = {}) {
2500
+ if (r) {
2501
+ if (!a) throw Error("'FlagSchema' option is required.");
2502
+ if (!o) throw Error("'descriptor' option is required.");
2503
+ } else o = Fn;
2504
+ let s = i ? Array.isArray(i) ? (e, t) => i.includes(e) ? { [e]: t } : void 0 : (e, t) => ({ [e]: t }) : (e, t, n) => {
2505
+ let { _: r, ...i } = n.schemas;
2506
+ return Xn(e, t, {
2507
+ ...n,
2508
+ schemas: i
2509
+ });
2510
+ }, c = new Or(jr(t, {
2511
+ isCLI: r,
2512
+ FlagSchema: a
2513
+ }), {
2514
+ logger: n,
2515
+ unknown: s,
2516
+ descriptor: o
2517
+ }), l = n !== !1;
2518
+ l && kr && (c._hasDeprecationWarned = kr);
2519
+ let u = c.normalize(e);
2520
+ return l && (kr = c._hasDeprecationWarned), u;
2521
+ }
2522
+ function jr(e, { isCLI: t, FlagSchema: n }) {
2523
+ let r = [];
2524
+ t && r.push(tr.create({ name: "_" }));
2525
+ for (let i of e) r.push(Mr(i, {
2526
+ isCLI: t,
2527
+ optionInfos: e,
2528
+ FlagSchema: n
2529
+ })), i.alias && t && r.push(er.create({
2530
+ name: i.alias,
2531
+ sourceName: i.name
2532
+ }));
2533
+ return r;
2534
+ }
2535
+ function Mr(e, { isCLI: t, optionInfos: n, FlagSchema: r }) {
2536
+ let { name: i } = e, a = { name: i }, o, s = {};
2537
+ switch (e.type) {
2538
+ case "int":
2539
+ o = Sr, t && (a.preprocess = Number);
2540
+ break;
2541
+ case "string":
2542
+ o = Cr;
2543
+ break;
2544
+ case "choice":
2545
+ o = br, a.choices = e.choices.map((t) => t?.redirect ? {
2546
+ ...t,
2547
+ redirect: { to: {
2548
+ key: e.name,
2549
+ value: t.redirect
2550
+ } }
2551
+ } : t);
2552
+ break;
2553
+ case "boolean":
2554
+ o = ir;
2555
+ break;
2556
+ case "flag":
2557
+ o = r, a.flags = n.flatMap((e) => [
2558
+ e.alias,
2559
+ e.description && e.name,
2560
+ e.oppositeDescription && `no-${e.name}`
2561
+ ].filter(Boolean));
2562
+ break;
2563
+ case "path":
2564
+ o = Cr;
2565
+ break;
2566
+ default: throw Error(`Unexpected type ${e.type}`);
2567
+ }
2568
+ if (e.exception ? a.validate = (t, n, r) => e.exception(t) || n.validate(t, r) : a.validate = (e, t, n) => e === void 0 || t.validate(e, n), e.redirect && (s.redirect = (t) => t ? { to: typeof e.redirect == "string" ? e.redirect : {
2569
+ key: e.redirect.option,
2570
+ value: e.redirect.value
2571
+ } } : void 0), e.deprecated && (s.deprecated = !0), t && !e.array) {
2572
+ let e = a.preprocess || ((e) => e);
2573
+ a.preprocess = (t, n, r) => n.preprocess(e(Array.isArray(t) ? O(0, t, -1) : t), r);
2574
+ }
2575
+ return e.array ? nr.create({
2576
+ ...t ? { preprocess: (e) => Array.isArray(e) ? e : [e] } : {},
2577
+ ...s,
2578
+ valueSchema: o.create(a)
2579
+ }) : o.create({
2580
+ ...a,
2581
+ ...s
2582
+ });
2583
+ }
2584
+ var Nr = Ar, Pr = Array.prototype.findLast ?? function(e) {
2585
+ for (let t = this.length - 1; t >= 0; t--) {
2586
+ let n = this[t];
2587
+ if (e(n, t, this)) return n;
2588
+ }
2589
+ }, Fr = f("findLast", function() {
2590
+ if (Array.isArray(this)) return Pr;
2591
+ }), Ir = Symbol.for("PRETTIER_IS_FRONT_MATTER"), Lr = [];
2592
+ function Rr(e) {
2593
+ return !!e?.[Ir];
2594
+ }
2595
+ var zr = Rr, Br = new Set(["yaml", "toml"]), Vr = ({ node: e }) => zr(e) && Br.has(e.language);
2596
+ async function Hr(e, t, n, r) {
2597
+ let { node: i } = n, { language: a } = i;
2598
+ if (!Br.has(a)) return;
2599
+ let o = i.value.trim(), s;
2600
+ if (o) {
2601
+ let t = a === "yaml" ? a : Pn(r, { language: a });
2602
+ if (!t) return;
2603
+ s = o ? await e(o, { parser: t }) : "";
2604
+ } else s = o;
2605
+ return Re([
2606
+ i.startDelimiter,
2607
+ i.explicitLanguage ?? "",
2608
+ K,
2609
+ s,
2610
+ s ? K : "",
2611
+ i.endDelimiter
2612
+ ]);
2613
+ }
2614
+ function Ur(e, t) {
2615
+ return Vr({ node: e }) && (delete t.end, delete t.raw, delete t.value), t;
2616
+ }
2617
+ var Wr = Ur;
2618
+ function Gr({ node: e }) {
2619
+ return e.raw;
2620
+ }
2621
+ var Kr = Gr, qr = new Set([
2622
+ "tokens",
2623
+ "comments",
2624
+ "parent",
2625
+ "enclosingNode",
2626
+ "precedingNode",
2627
+ "followingNode"
2628
+ ]), Jr = (e) => Object.keys(e).filter((e) => !qr.has(e));
2629
+ function Yr(e, t) {
2630
+ let n = e ? (t) => e(t, qr) : Jr;
2631
+ return t ? new Proxy(n, { apply: (e, t, n) => zr(n[0]) ? Lr : Reflect.apply(e, t, n) }) : n;
2632
+ }
2633
+ var Xr = Yr;
2634
+ function Zr(e, t) {
2635
+ if (!t) throw Error("parserName is required.");
2636
+ let n = Fr(0, e, (e) => e.parsers && Object.prototype.hasOwnProperty.call(e.parsers, t));
2637
+ if (n) return n;
2638
+ let r = `Couldn't resolve parser "${t}".`;
2639
+ throw r += " Plugins must be explicitly added to the standalone bundle.", new pn(r);
2640
+ }
2641
+ function Qr(e, t) {
2642
+ if (!t) throw Error("astFormat is required.");
2643
+ let n = Fr(0, e, (e) => e.printers && Object.prototype.hasOwnProperty.call(e.printers, t));
2644
+ if (n) return n;
2645
+ let r = `Couldn't find plugin for AST format "${t}".`;
2646
+ throw r += " Plugins must be explicitly added to the standalone bundle.", new pn(r);
2647
+ }
2648
+ function $r({ plugins: e, parser: t }) {
2649
+ return ei(Zr(e, t), t);
2650
+ }
2651
+ function ei(e, t) {
2652
+ let n = e.parsers[t];
2653
+ return typeof n == "function" ? n() : n;
2654
+ }
2655
+ async function ti(e, t) {
2656
+ let n = e.printers[t];
2657
+ return ri(typeof n == "function" ? await n() : n);
2658
+ }
2659
+ var ni = /* @__PURE__ */ new WeakMap();
2660
+ function ri(e) {
2661
+ if (ni.has(e)) return ni.get(e);
2662
+ let { features: t, getVisitorKeys: n, embed: r, massageAstNode: i, print: a, ...o } = e;
2663
+ t = oi(t);
2664
+ let s = t.experimental_frontMatterSupport;
2665
+ n = Xr(n, s.massageAstNode || s.embed || s.print);
2666
+ let c = i;
2667
+ i && s.massageAstNode && (c = new Proxy(i, { apply(e, t, n) {
2668
+ return Wr(...n), Reflect.apply(e, t, n);
2669
+ } }));
2670
+ let l = r;
2671
+ if (r) {
2672
+ let e;
2673
+ l = new Proxy(r, {
2674
+ get(t, i, a) {
2675
+ return i === "getVisitorKeys" ? (e ??= r.getVisitorKeys ? Xr(r.getVisitorKeys, s.massageAstNode || s.embed) : n, e) : Reflect.get(t, i, a);
2676
+ },
2677
+ apply: (e, t, n) => s.embed && Vr(...n) ? Hr : Reflect.apply(e, t, n)
2678
+ });
2679
+ }
2680
+ let u = a;
2681
+ s.print && (u = new Proxy(a, { apply(e, t, n) {
2682
+ let [r] = n;
2683
+ return zr(r.node) ? Kr(r) : Reflect.apply(e, t, n);
2684
+ } }));
2685
+ let d = {
2686
+ features: t,
2687
+ getVisitorKeys: n,
2688
+ embed: l,
2689
+ massageAstNode: c,
2690
+ print: u,
2691
+ ...o
2692
+ };
2693
+ return ni.set(e, d), d;
2694
+ }
2695
+ var ii = Object.fromEntries([
2696
+ "clean",
2697
+ "embed",
2698
+ "print"
2699
+ ].map((e) => [e, !1]));
2700
+ function ai(e) {
2701
+ return {
2702
+ ...ii,
2703
+ ...e
2704
+ };
2705
+ }
2706
+ function oi(e) {
2707
+ return {
2708
+ experimental_avoidAstMutation: !1,
2709
+ ...e,
2710
+ experimental_frontMatterSupport: ai(e?.experimental_frontMatterSupport)
2711
+ };
2712
+ }
2713
+ var si = {
2714
+ astFormat: "estree",
2715
+ printer: {},
2716
+ originalText: void 0,
2717
+ locStart: null,
2718
+ locEnd: null,
2719
+ getVisitorKeys: null
2720
+ };
2721
+ async function ci(e, t = {}) {
2722
+ let n = { ...e };
2723
+ if (!n.parser) if (n.filepath) {
2724
+ if (n.parser = Pn(n, { physicalFile: n.filepath }), !n.parser) throw new mn(`No parser could be inferred for file "${n.filepath}".`);
2725
+ } else throw new mn("No parser and no file path given, couldn't infer a parser.");
2726
+ let r = gn({
2727
+ plugins: e.plugins,
2728
+ showDeprecated: !0
2729
+ }).options, i = {
2730
+ ...si,
2731
+ ...Object.fromEntries(r.filter((e) => e.default !== void 0).map((e) => [e.name, e.default]))
2732
+ }, a = Zr(n.plugins, n.parser), o = await ei(a, n.parser);
2733
+ n.astFormat = o.astFormat, n.locEnd = o.locEnd, n.locStart = o.locStart;
2734
+ let s = a.printers?.[o.astFormat] ? a : Qr(n.plugins, o.astFormat), c = await ti(s, o.astFormat);
2735
+ n.printer = c, n.getVisitorKeys = c.getVisitorKeys;
2736
+ let l = s.defaultOptions ? Object.fromEntries(Object.entries(s.defaultOptions).filter(([, e]) => e !== void 0)) : {}, u = {
2737
+ ...i,
2738
+ ...l
2739
+ };
2740
+ for (let [e, t] of Object.entries(u)) (n[e] === null || n[e] === void 0) && (n[e] = t);
2741
+ return n.parser === "json" && (n.trailingComma = "none"), Nr(n, r, {
2742
+ passThrough: Object.keys(si),
2743
+ ...t
2744
+ });
2745
+ }
2746
+ var li = ci;
2747
+ l(u(), 1);
2748
+ var ui = "ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-࢏ࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚ౜ౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ೜-ೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-Ƛ꟱-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ", di = "·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-᫝᫠-᫫ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・";
2749
+ RegExp("[" + ui + "]"), RegExp("[" + ui + di + "]"), ui = di = null;
2750
+ var fi = {
2751
+ keyword: /* @__PURE__ */ "break.case.catch.continue.debugger.default.do.else.finally.for.function.if.return.switch.throw.try.var.const.while.with.new.this.super.class.extends.export.import.null.true.false.in.instanceof.typeof.void.delete".split("."),
2752
+ strict: [
2753
+ "implements",
2754
+ "interface",
2755
+ "let",
2756
+ "package",
2757
+ "private",
2758
+ "protected",
2759
+ "public",
2760
+ "static",
2761
+ "yield"
2762
+ ],
2763
+ strictBind: ["eval", "arguments"]
2764
+ };
2765
+ new Set(fi.keyword), new Set(fi.strict), new Set(fi.strictBind);
2766
+ var pi = (e, t) => (n) => e(t(n));
2767
+ function mi(e) {
2768
+ return {
2769
+ keyword: e.cyan,
2770
+ capitalized: e.yellow,
2771
+ jsxIdentifier: e.yellow,
2772
+ punctuator: e.yellow,
2773
+ number: e.magenta,
2774
+ string: e.green,
2775
+ regex: e.magenta,
2776
+ comment: e.gray,
2777
+ invalid: pi(pi(e.white, e.bgRed), e.bold),
2778
+ gutter: e.gray,
2779
+ marker: pi(e.red, e.bold),
2780
+ message: pi(e.red, e.bold),
2781
+ reset: e.reset
2782
+ };
2783
+ }
2784
+ mi(Ln(!0)), mi(Ln(!1));
2785
+ function hi() {
2786
+ return new Proxy({}, { get: () => (e) => e });
2787
+ }
2788
+ var gi = /\r\n|[\n\r\u2028\u2029]/;
2789
+ function _i(e, t, n) {
2790
+ let r = Object.assign({
2791
+ column: 0,
2792
+ line: -1
2793
+ }, e.start), i = Object.assign({}, r, e.end), { linesAbove: a = 2, linesBelow: o = 3 } = n || {}, s = r.line, c = r.column, l = i.line, u = i.column, d = Math.max(s - (a + 1), 0), f = Math.min(t.length, l + o);
2794
+ s === -1 && (d = 0), l === -1 && (f = t.length);
2795
+ let p = l - s, m = {};
2796
+ if (p) for (let e = 0; e <= p; e++) {
2797
+ let n = e + s;
2798
+ c ? e === 0 ? m[n] = [c, t[n - 1].length - c + 1] : e === p ? m[n] = [0, u] : m[n] = [0, t[n - e].length] : m[n] = !0;
2799
+ }
2800
+ else c === u ? c ? m[s] = [c, 0] : m[s] = !0 : m[s] = [c, u - c];
2801
+ return {
2802
+ start: d,
2803
+ end: f,
2804
+ markerLines: m
2805
+ };
2806
+ }
2807
+ function vi(e, t, n = {}) {
2808
+ let r = hi(!1), { start: i, end: a, markerLines: o } = _i(t, e.split(gi), n), s = t.start && typeof t.start.column == "number", c = String(a).length, l = e.split(gi, a).slice(i, a).map((e, t) => {
2809
+ let a = i + 1 + t, s = ` ${` ${a}`.slice(-c)} |`, l = o[a], u = !o[a + 1];
2810
+ if (l) {
2811
+ let t = "";
2812
+ if (Array.isArray(l)) {
2813
+ let i = e.slice(0, Math.max(l[0] - 1, 0)).replace(/[^\t]/g, " "), a = l[1] || 1;
2814
+ t = [
2815
+ "\n ",
2816
+ r.gutter(s.replace(/\d/g, " ")),
2817
+ " ",
2818
+ i,
2819
+ r.marker("^").repeat(a)
2820
+ ].join(""), u && n.message && (t += " " + r.message(n.message));
2821
+ }
2822
+ return [
2823
+ r.marker(">"),
2824
+ r.gutter(s),
2825
+ e.length > 0 ? ` ${e}` : "",
2826
+ t
2827
+ ].join("");
2828
+ } else return ` ${r.gutter(s)}${e.length > 0 ? ` ${e}` : ""}`;
2829
+ }).join("\n");
2830
+ return n.message && !s && (l = `${" ".repeat(c + 1)}${n.message}
2831
+ ${l}`), l;
2832
+ }
2833
+ async function yi(e, t) {
2834
+ let n = await $r(t), r = n.preprocess ? await n.preprocess(e, t) : e;
2835
+ t.originalText = r;
2836
+ let i;
2837
+ try {
2838
+ i = await n.parse(r, t, t);
2839
+ } catch (t) {
2840
+ bi(t, e);
2841
+ }
2842
+ return {
2843
+ text: r,
2844
+ ast: i
2845
+ };
2846
+ }
2847
+ function bi(e, t) {
2848
+ let { loc: n } = e;
2849
+ if (n) {
2850
+ let r = vi(t, n, { highlightCode: !0 });
2851
+ throw e.message += "\n" + r, e.codeFrame = r, e;
2852
+ }
2853
+ throw e;
2854
+ }
2855
+ var xi = yi;
2856
+ async function Si(e, t, n, r, i) {
2857
+ if (n.embeddedLanguageFormatting !== "auto") return;
2858
+ let { printer: a } = n, { embed: o } = a;
2859
+ if (!o) return;
2860
+ if (o.length > 2) throw Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/plugins#optional-embed");
2861
+ let { hasPrettierIgnore: s } = a, { getVisitorKeys: c } = o, l = [];
2862
+ f();
2863
+ let u = e.stack;
2864
+ for (let { print: r, node: a, pathStack: o } of l) try {
2865
+ e.stack = o;
2866
+ let s = await r(d, t, e, n);
2867
+ s && i.set(a, s);
2868
+ } catch (e) {
2869
+ if (globalThis.PRETTIER_DEBUG) throw e;
2870
+ }
2871
+ e.stack = u;
2872
+ function d(e, t) {
2873
+ return Ci(e, t, n, r);
2874
+ }
2875
+ function f() {
2876
+ let { node: t } = e;
2877
+ if (typeof t != "object" || !t || s?.(e)) return;
2878
+ for (let n of c(t)) Array.isArray(t[n]) ? e.each(f, n) : e.call(f, n);
2879
+ let r = o(e, n);
2880
+ if (r) {
2881
+ if (typeof r == "function") {
2882
+ l.push({
2883
+ print: r,
2884
+ node: t,
2885
+ pathStack: [...e.stack]
2886
+ });
2887
+ return;
2888
+ }
2889
+ i.set(t, r);
2890
+ }
2891
+ }
2892
+ }
2893
+ async function Ci(e, t, n, r) {
2894
+ let i = await li({
2895
+ ...n,
2896
+ ...t,
2897
+ parentParser: n.parser,
2898
+ originalText: e,
2899
+ cursorOffset: void 0,
2900
+ rangeStart: void 0,
2901
+ rangeEnd: void 0
2902
+ }, { passThrough: !0 }), { ast: a } = await xi(e, i);
2903
+ return Te(await r(a, i));
2904
+ }
2905
+ function wi(e, t, n, r) {
2906
+ let { originalText: i, [Symbol.for("comments")]: a, locStart: o, locEnd: s, [Symbol.for("printedComments")]: c } = t, { node: l } = e, u = o(l), d = s(l);
2907
+ for (let e of a) o(e) >= u && s(e) <= d && c.add(e);
2908
+ let { printPrettierIgnored: f } = t.printer;
2909
+ return f ? f(e, t, n, r) : i.slice(u, d);
2910
+ }
2911
+ var Ti = wi;
2912
+ async function Ei(e, t) {
2913
+ ({ast: e} = await Oi(e, t));
2914
+ let n = /* @__PURE__ */ new Map(), r = new Tt(e), i = fn(t), a = /* @__PURE__ */ new Map();
2915
+ await Si(r, s, t, Ei, a);
2916
+ let o = await Di(r, t, s, void 0, a);
2917
+ if (dn(t), t.cursorOffset >= 0) {
2918
+ if (t.nodeAfterCursor && !t.nodeBeforeCursor) return [G, o];
2919
+ if (t.nodeBeforeCursor && !t.nodeAfterCursor) return [o, G];
2920
+ }
2921
+ return o;
2922
+ function s(e, t) {
2923
+ return e === void 0 || e === r ? c(t) : Array.isArray(e) ? r.call(() => c(t), ...e) : r.call(() => c(t), e);
2924
+ }
2925
+ function c(e) {
2926
+ i(r);
2927
+ let o = r.node;
2928
+ if (o == null) return "";
2929
+ let c = Dt(o) && e === void 0;
2930
+ if (c && n.has(o)) return n.get(o);
2931
+ let l = Di(r, t, s, e, a);
2932
+ return c && n.set(o, l), l;
2933
+ }
2934
+ }
2935
+ function Di(e, t, n, r, i) {
2936
+ let { node: a } = e, { printer: o } = t, s;
2937
+ switch (s = o.hasPrettierIgnore?.(e) ? Ti(e, t, n, r) : i.has(a) ? i.get(a) : o.print(e, t, n, r), a) {
2938
+ case t.cursorNode:
2939
+ s = je(s, (e) => [
2940
+ G,
2941
+ e,
2942
+ G
2943
+ ]);
2944
+ break;
2945
+ case t.nodeBeforeCursor:
2946
+ s = je(s, (e) => [e, G]);
2947
+ break;
2948
+ case t.nodeAfterCursor:
2949
+ s = je(s, (e) => [G, e]);
2950
+ break;
2951
+ }
2952
+ return o.printComment && !o.willPrintOwnComments?.(e, t) && (s = un(e, s, t)), s;
2953
+ }
2954
+ async function Oi(e, t) {
2955
+ let n = e.comments ?? [];
2956
+ t[Symbol.for("comments")] = n, t[Symbol.for("printedComments")] = /* @__PURE__ */ new Set(), Zt(e, t);
2957
+ let { printer: { preprocess: r } } = t;
2958
+ return e = r ? await r(e, t) : e, {
2959
+ ast: e,
2960
+ comments: n
2961
+ };
2962
+ }
2963
+ function ki(e, t) {
2964
+ let { cursorOffset: n, locStart: r, locEnd: i, getVisitorKeys: a } = t, o = (e) => r(e) <= n && i(e) >= n, s = e, c = [e];
2965
+ for (let t of zt(e, {
2966
+ getVisitorKeys: a,
2967
+ filter: o
2968
+ })) c.push(t), s = t;
2969
+ if (Bt(s, { getVisitorKeys: a })) return { cursorNode: s };
2970
+ let l, u, d = -1, f = Infinity;
2971
+ for (; c.length > 0 && (l === void 0 || u === void 0);) {
2972
+ s = c.pop();
2973
+ let e = l !== void 0, t = u !== void 0;
2974
+ for (let o of Rt(s, { getVisitorKeys: a })) {
2975
+ if (!e) {
2976
+ let e = i(o);
2977
+ e <= n && e > d && (l = o, d = e);
2978
+ }
2979
+ if (!t) {
2980
+ let e = r(o);
2981
+ e >= n && e < f && (u = o, f = e);
2982
+ }
2983
+ }
2984
+ }
2985
+ return {
2986
+ nodeBeforeCursor: l,
2987
+ nodeAfterCursor: u
2988
+ };
2989
+ }
2990
+ var Ai = ki;
2991
+ function ji(e, t) {
2992
+ let { printer: n } = t, r = n.massageAstNode;
2993
+ if (!r) return e;
2994
+ let { getVisitorKeys: i } = n, { ignoredProperties: a } = r;
2995
+ return o(e);
2996
+ function o(e, t) {
2997
+ if (!Dt(e)) return e;
2998
+ if (Array.isArray(e)) return e.map((e) => o(e, t)).filter(Boolean);
2999
+ let n = {}, s = new Set(i(e));
3000
+ for (let t in e) !Object.prototype.hasOwnProperty.call(e, t) || a?.has(t) || (s.has(t) ? n[t] = o(e[t], e) : n[t] = e[t]);
3001
+ let c = r(e, n, t);
3002
+ if (c !== null) return c ?? n;
3003
+ }
3004
+ }
3005
+ var Mi = ji, Ni = Array.prototype.findLastIndex ?? function(e) {
3006
+ for (let t = this.length - 1; t >= 0; t--) {
3007
+ let n = this[t];
3008
+ if (e(n, t, this)) return t;
3009
+ }
3010
+ return -1;
3011
+ }, Pi = f("findLastIndex", function() {
3012
+ if (Array.isArray(this)) return Ni;
3013
+ }), Fi = ({ parser: e }) => e === "json" || e === "json5" || e === "jsonc" || e === "json-stringify";
3014
+ function Ii(e, t) {
3015
+ return t = new Set(t), e.find((e) => Vi.has(e.type) && t.has(e));
3016
+ }
3017
+ function Li(e) {
3018
+ let t = Pi(0, e, (e) => e.type !== "Program" && e.type !== "File");
3019
+ return t === -1 ? e : e.slice(0, t + 1);
3020
+ }
3021
+ function Ri(e, t, { locStart: n, locEnd: r }) {
3022
+ let [i, ...a] = e, [o, ...s] = t;
3023
+ if (i === o) return [i, o];
3024
+ let c = n(i);
3025
+ for (let e of Li(s)) if (n(e) >= c) o = e;
3026
+ else break;
3027
+ let l = r(o);
3028
+ for (let e of Li(a)) {
3029
+ if (r(e) <= l) i = e;
3030
+ else break;
3031
+ if (i === o) break;
3032
+ }
3033
+ return [i, o];
3034
+ }
3035
+ function zi(e, t, n, r, i = [], a) {
3036
+ let { locStart: o, locEnd: s } = n, c = o(e), l = s(e);
3037
+ if (t > l || t < c || a === "rangeEnd" && t === c || a === "rangeStart" && t === l) return;
3038
+ let u = [e, ...i], d = Ht(e, u, {
3039
+ cache: Jt,
3040
+ locStart: o,
3041
+ locEnd: s,
3042
+ getVisitorKeys: n.getVisitorKeys,
3043
+ filter: n.printer.canAttachComment,
3044
+ getChildren: n.printer.getCommentChildNodes
3045
+ });
3046
+ for (let e of d) {
3047
+ let i = zi(e, t, n, r, u, a);
3048
+ if (i) return i;
3049
+ }
3050
+ if (r(e, i[0])) return u;
3051
+ }
3052
+ function Bi(e, t) {
3053
+ return t !== "DeclareExportDeclaration" && e !== "TypeParameterDeclaration" && (e === "Directive" || e === "TypeAlias" || e === "TSExportAssignment" || e.startsWith("Declare") || e.startsWith("TSDeclare") || e.endsWith("Statement") || e.endsWith("Declaration"));
3054
+ }
3055
+ var Vi = new Set([
3056
+ "JsonRoot",
3057
+ "ObjectExpression",
3058
+ "ArrayExpression",
3059
+ "StringLiteral",
3060
+ "NumericLiteral",
3061
+ "BooleanLiteral",
3062
+ "NullLiteral",
3063
+ "UnaryExpression",
3064
+ "TemplateLiteral"
3065
+ ]), Hi = new Set([
3066
+ "OperationDefinition",
3067
+ "FragmentDefinition",
3068
+ "VariableDefinition",
3069
+ "TypeExtensionDefinition",
3070
+ "ObjectTypeDefinition",
3071
+ "FieldDefinition",
3072
+ "DirectiveDefinition",
3073
+ "EnumTypeDefinition",
3074
+ "EnumValueDefinition",
3075
+ "InputValueDefinition",
3076
+ "InputObjectTypeDefinition",
3077
+ "SchemaDefinition",
3078
+ "OperationTypeDefinition",
3079
+ "InterfaceTypeDefinition",
3080
+ "UnionTypeDefinition",
3081
+ "ScalarTypeDefinition"
3082
+ ]);
3083
+ function Ui(e, t, n) {
3084
+ if (!t) return !1;
3085
+ switch (e.parser) {
3086
+ case "flow":
3087
+ case "hermes":
3088
+ case "babel":
3089
+ case "babel-flow":
3090
+ case "babel-ts":
3091
+ case "typescript":
3092
+ case "acorn":
3093
+ case "espree":
3094
+ case "meriyah":
3095
+ case "oxc":
3096
+ case "oxc-ts":
3097
+ case "__babel_estree": return Bi(t.type, n?.type);
3098
+ case "json":
3099
+ case "json5":
3100
+ case "jsonc":
3101
+ case "json-stringify": return Vi.has(t.type);
3102
+ case "graphql": return Hi.has(t.kind);
3103
+ case "vue": return t.tag !== "root";
3104
+ }
3105
+ return !1;
3106
+ }
3107
+ function Wi(e, t, n) {
3108
+ let { rangeStart: r, rangeEnd: i, locStart: a, locEnd: o } = t, s = e.slice(r, i).search(/\S/u), c = s === -1;
3109
+ if (!c) for (r += s; i > r && !/\S/u.test(e[i - 1]); --i);
3110
+ let l = zi(n, r, t, (e, n) => Ui(t, e, n), [], "rangeStart");
3111
+ if (!l) return;
3112
+ let u = c ? l : zi(n, i, t, (e) => Ui(t, e), [], "rangeEnd");
3113
+ if (!u) return;
3114
+ let d, f;
3115
+ if (Fi(t)) {
3116
+ let e = Ii(l, u);
3117
+ d = e, f = e;
3118
+ } else [d, f] = Ri(l, u, t);
3119
+ return [Math.min(a(d), a(f)), Math.max(o(d), o(f))];
3120
+ }
3121
+ var Gi = "", Ki = Symbol("cursor");
3122
+ async function qi(e, t, n = 0) {
3123
+ if (!e || e.trim().length === 0) return {
3124
+ formatted: "",
3125
+ cursorOffset: -1,
3126
+ comments: []
3127
+ };
3128
+ let { ast: r, text: i } = await xi(e, t);
3129
+ t.cursorOffset >= 0 && (t = {
3130
+ ...t,
3131
+ ...Ai(r, t)
3132
+ });
3133
+ let a = await Ei(r, t, n);
3134
+ n > 0 && (a = Be([K, a], n, t.tabWidth));
3135
+ let o = St(a, t);
3136
+ if (n > 0) {
3137
+ let e = o.formatted.trim();
3138
+ o.cursorNodeStart !== void 0 && (o.cursorNodeStart -= o.formatted.indexOf(e), o.cursorNodeStart < 0 && (o.cursorNodeStart = 0, o.cursorNodeText = o.cursorNodeText.trimStart()), o.cursorNodeStart + o.cursorNodeText.length > e.length && (o.cursorNodeText = o.cursorNodeText.trimEnd())), o.formatted = e + w(t.endOfLine);
3139
+ }
3140
+ let s = t[Symbol.for("comments")];
3141
+ if (t.cursorOffset >= 0) {
3142
+ let e, n, r, a;
3143
+ if ((t.cursorNode || t.nodeBeforeCursor || t.nodeAfterCursor) && o.cursorNodeText) if (r = o.cursorNodeStart, a = o.cursorNodeText, t.cursorNode) e = t.locStart(t.cursorNode), n = i.slice(e, t.locEnd(t.cursorNode));
3144
+ else {
3145
+ if (!t.nodeBeforeCursor && !t.nodeAfterCursor) throw Error("Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor");
3146
+ e = t.nodeBeforeCursor ? t.locEnd(t.nodeBeforeCursor) : 0;
3147
+ let r = t.nodeAfterCursor ? t.locStart(t.nodeAfterCursor) : i.length;
3148
+ n = i.slice(e, r);
3149
+ }
3150
+ else e = 0, n = i, r = 0, a = o.formatted;
3151
+ let c = t.cursorOffset - e;
3152
+ if (n === a) return {
3153
+ formatted: o.formatted,
3154
+ cursorOffset: r + c,
3155
+ comments: s
3156
+ };
3157
+ let l = n.split("");
3158
+ l.splice(c, 0, Ki);
3159
+ let u = _(l, a.split("")), d = r;
3160
+ for (let e of u) if (e.removed) {
3161
+ if (e.value.includes(Ki)) break;
3162
+ } else d += e.count;
3163
+ return {
3164
+ formatted: o.formatted,
3165
+ cursorOffset: d,
3166
+ comments: s
3167
+ };
3168
+ }
3169
+ return {
3170
+ formatted: o.formatted,
3171
+ cursorOffset: -1,
3172
+ comments: s
3173
+ };
3174
+ }
3175
+ async function Ji(e, t) {
3176
+ let { ast: n, text: r } = await xi(e, t), [i, a] = Wi(r, t, n) ?? [0, 0], o = r.slice(i, a), s = Math.min(i, r.lastIndexOf("\n", i) + 1), c = r.slice(s, i).match(/^\s*/u)[0], l = wt(c, t.tabWidth), u = await qi(o, {
3177
+ ...t,
3178
+ rangeStart: 0,
3179
+ rangeEnd: Infinity,
3180
+ cursorOffset: t.cursorOffset > i && t.cursorOffset <= a ? t.cursorOffset - i : -1,
3181
+ endOfLine: "lf"
3182
+ }, l), d = u.formatted.trimEnd(), { cursorOffset: f } = t;
3183
+ f > a ? f += d.length - o.length : u.cursorOffset >= 0 && (f = u.cursorOffset + i);
3184
+ let p = r.slice(0, i) + d + r.slice(a);
3185
+ if (t.endOfLine !== "lf") {
3186
+ let e = w(t.endOfLine);
3187
+ f >= 0 && e === "\r\n" && (f += re(p.slice(0, f), "\n")), p = m(0, p, "\n", e);
3188
+ }
3189
+ return {
3190
+ formatted: p,
3191
+ cursorOffset: f,
3192
+ comments: u.comments
3193
+ };
3194
+ }
3195
+ function Yi(e, t, n) {
3196
+ return typeof t != "number" || Number.isNaN(t) || t < 0 || t > e.length ? n : t;
3197
+ }
3198
+ function Xi(e, t) {
3199
+ let { cursorOffset: n, rangeStart: r, rangeEnd: i } = t;
3200
+ return n = Yi(e, n, -1), r = Yi(e, r, 0), i = Yi(e, i, e.length), {
3201
+ ...t,
3202
+ cursorOffset: n,
3203
+ rangeStart: r,
3204
+ rangeEnd: i
3205
+ };
3206
+ }
3207
+ function Zi(e, t) {
3208
+ let { cursorOffset: n, rangeStart: r, rangeEnd: i, endOfLine: a } = Xi(e, t), o = e.charAt(0) === Gi;
3209
+ if (o && (e = e.slice(1), n--, r--, i--), a === "auto" && (a = ne(e)), e.includes("\r")) {
3210
+ let t = (t) => re(e.slice(0, Math.max(t, 0)), "\r\n");
3211
+ n -= t(n), r -= t(r), i -= t(i), e = ie(e);
3212
+ }
3213
+ return {
3214
+ hasBOM: o,
3215
+ text: e,
3216
+ options: Xi(e, {
3217
+ ...t,
3218
+ cursorOffset: n,
3219
+ rangeStart: r,
3220
+ rangeEnd: i,
3221
+ endOfLine: a
3222
+ })
3223
+ };
3224
+ }
3225
+ async function Qi(e, t) {
3226
+ let n = await $r(t);
3227
+ return !n.hasPragma || n.hasPragma(e);
3228
+ }
3229
+ async function $i(e, t) {
3230
+ return (await $r(t)).hasIgnorePragma?.(e);
3231
+ }
3232
+ async function ea(e, t) {
3233
+ let { hasBOM: n, text: r, options: i } = Zi(e, await li(t));
3234
+ if (i.rangeStart >= i.rangeEnd && r !== "" || i.requirePragma && !await Qi(r, i) || i.checkIgnorePragma && await $i(r, i)) return {
3235
+ formatted: e,
3236
+ cursorOffset: t.cursorOffset,
3237
+ comments: []
3238
+ };
3239
+ let a;
3240
+ return i.rangeStart > 0 || i.rangeEnd < r.length ? a = await Ji(r, i) : (!i.requirePragma && i.insertPragma && i.printer.insertPragma && !await Qi(r, i) && (r = i.printer.insertPragma(r)), a = await qi(r, i)), n && (a.formatted = Gi + a.formatted, a.cursorOffset >= 0 && a.cursorOffset++), a;
3241
+ }
3242
+ async function ta(e, t, n) {
3243
+ let { text: r, options: i } = Zi(e, await li(t)), a = await xi(r, i);
3244
+ return n && (n.preprocessForPrint && (a.ast = await Oi(a.ast, i)), n.massage && (a.ast = Mi(a.ast, i))), a;
3245
+ }
3246
+ async function na(e, t) {
3247
+ return t = await li(t), St(await Ei(e, t), t);
3248
+ }
3249
+ async function ra(e, t) {
3250
+ let { formatted: n } = await ea(rt(e), {
3251
+ ...t,
3252
+ parser: "__js_expression"
3253
+ });
3254
+ return n;
3255
+ }
3256
+ async function ia(e, t) {
3257
+ t = await li(t);
3258
+ let { ast: n } = await xi(e, t);
3259
+ return t.cursorOffset >= 0 && (t = {
3260
+ ...t,
3261
+ ...Ai(n, t)
3262
+ }), Ei(n, t);
3263
+ }
3264
+ async function aa(e, t) {
3265
+ return St(e, await li(t));
3266
+ }
3267
+ var oa = {};
3268
+ s(oa, {
3269
+ builders: () => sa,
3270
+ printer: () => ca,
3271
+ utils: () => la
3272
+ });
3273
+ var sa = {
3274
+ join: qe,
3275
+ line: Ye,
3276
+ softline: Xe,
3277
+ hardline: K,
3278
+ literalline: $e,
3279
+ group: Ue,
3280
+ conditionalGroup: We,
3281
+ fill: He,
3282
+ lineSuffix: et,
3283
+ lineSuffixBoundary: tt,
3284
+ cursor: G,
3285
+ breakParent: Ve,
3286
+ ifBreak: Ge,
3287
+ trim: nt,
3288
+ indent: Fe,
3289
+ indentIfBreak: Ke,
3290
+ align: Ie,
3291
+ addAlignmentToDoc: Be,
3292
+ markAsRoot: Re,
3293
+ dedentToRoot: Le,
3294
+ dedent: ze,
3295
+ hardlineWithoutBreakParent: Ze,
3296
+ literallineWithoutBreakParent: Qe,
3297
+ label: Je,
3298
+ concat: (e) => e
3299
+ }, ca = { printDocToString: St }, la = {
3300
+ willBreak: ve,
3301
+ traverseDoc: me,
3302
+ findInDoc: ge,
3303
+ mapDoc: he,
3304
+ removeLines: Se,
3305
+ stripTrailingHardline: Te,
3306
+ replaceEndOfLine: Oe,
3307
+ canBreak: Ae
3308
+ }, ua = "3.8.3", da = {};
3309
+ s(da, {
3310
+ addDanglingComment: () => Kt,
3311
+ addLeadingComment: () => Gt,
3312
+ addTrailingComment: () => qt,
3313
+ getAlignmentSize: () => wt,
3314
+ getIndentSize: () => xa,
3315
+ getMaxContinuousCount: () => wa,
3316
+ getNextNonSpaceNonCommentCharacter: () => Ea,
3317
+ getNextNonSpaceNonCommentCharacterIndex: () => Ra,
3318
+ getPreferredQuote: () => Ma,
3319
+ getStringWidth: () => dt,
3320
+ hasNewline: () => Z,
3321
+ hasNewlineInRange: () => Pa,
3322
+ hasSpaces: () => Ia,
3323
+ isNextLineEmpty: () => Ua,
3324
+ isNextLineEmptyAfterIndex: () => ya,
3325
+ isPreviousLineEmpty: () => Ba,
3326
+ makeString: () => Ha,
3327
+ skip: () => Ot,
3328
+ skipEverythingButNewLine: () => jt,
3329
+ skipInlineComment: () => pa,
3330
+ skipNewline: () => Pt,
3331
+ skipSpaces: () => X,
3332
+ skipToLineEnd: () => At,
3333
+ skipTrailingComment: () => ha,
3334
+ skipWhitespace: () => kt
3335
+ });
3336
+ function fa(e, t) {
3337
+ if (t === !1) return !1;
3338
+ if (e.charAt(t) === "/" && e.charAt(t + 1) === "*") {
3339
+ for (let n = t + 2; n < e.length; ++n) if (e.charAt(n) === "*" && e.charAt(n + 1) === "/") return n + 2;
3340
+ }
3341
+ return t;
3342
+ }
3343
+ var pa = fa;
3344
+ function ma(e, t) {
3345
+ return t === !1 ? !1 : e.charAt(t) === "/" && e.charAt(t + 1) === "/" ? jt(e, t) : t;
3346
+ }
3347
+ var ha = ma;
3348
+ function ga(e, t) {
3349
+ let n = null, r = t;
3350
+ for (; r !== n;) n = r, r = X(e, r), r = pa(e, r), r = ha(e, r), r = Pt(e, r);
3351
+ return r;
3352
+ }
3353
+ var _a = ga;
3354
+ function va(e, t) {
3355
+ let n = null, r = t;
3356
+ for (; r !== n;) n = r, r = At(e, r), r = pa(e, r), r = X(e, r);
3357
+ return r = ha(e, r), r = Pt(e, r), r !== !1 && Z(e, r);
3358
+ }
3359
+ var ya = va;
3360
+ function ba(e, t) {
3361
+ let n = e.lastIndexOf("\n");
3362
+ return n === -1 ? 0 : wt(e.slice(n + 1).match(/^[\t ]*/u)[0], t);
3363
+ }
3364
+ var xa = ba;
3365
+ function Sa(e) {
3366
+ if (typeof e != "string") throw TypeError("Expected a string");
3367
+ return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
3368
+ }
3369
+ function Ca(e, t) {
3370
+ let n = e.matchAll(RegExp(`(?:${Sa(t)})+`, "gu"));
3371
+ return n.reduce || (n = [...n]), n.reduce((e, [t]) => Math.max(e, t.length), 0) / t.length;
3372
+ }
3373
+ var wa = Ca;
3374
+ function Ta(e, t) {
3375
+ let n = _a(e, t);
3376
+ return n === !1 ? "" : e.charAt(n);
3377
+ }
3378
+ var Ea = Ta, Da = Object.freeze({
3379
+ character: "'",
3380
+ codePoint: 39
3381
+ }), Oa = Object.freeze({
3382
+ character: "\"",
3383
+ codePoint: 34
3384
+ }), ka = Object.freeze({
3385
+ preferred: Da,
3386
+ alternate: Oa
3387
+ }), Aa = Object.freeze({
3388
+ preferred: Oa,
3389
+ alternate: Da
3390
+ });
3391
+ function ja(e, t) {
3392
+ let { preferred: n, alternate: r } = t === !0 || t === "'" ? ka : Aa, { length: i } = e, a = 0, o = 0;
3393
+ for (let t = 0; t < i; t++) {
3394
+ let i = e.charCodeAt(t);
3395
+ i === n.codePoint ? a++ : i === r.codePoint && o++;
3396
+ }
3397
+ return (a > o ? r : n).character;
3398
+ }
3399
+ var Ma = ja;
3400
+ function Na(e, t, n) {
3401
+ for (let r = t; r < n; ++r) if (e.charAt(r) === "\n") return !0;
3402
+ return !1;
3403
+ }
3404
+ var Pa = Na;
3405
+ function Fa(e, t, n = {}) {
3406
+ return X(e, n.backwards ? t - 1 : t, n) !== t;
3407
+ }
3408
+ var Ia = Fa;
3409
+ function La(e, t, n) {
3410
+ return _a(e, n(t));
3411
+ }
3412
+ function Ra(e, t) {
3413
+ return arguments.length === 2 || typeof t == "number" ? _a(e, t) : La(...arguments);
3414
+ }
3415
+ function za(e, t, n) {
3416
+ return an(e, n(t));
3417
+ }
3418
+ function Ba(e, t) {
3419
+ return arguments.length === 2 || typeof t == "number" ? an(e, t) : za(...arguments);
3420
+ }
3421
+ function Va(e, t, n) {
3422
+ return ya(e, n(t));
3423
+ }
3424
+ function Ha(e, t, n) {
3425
+ let r = t === "\"" ? "'" : "\"";
3426
+ return t + m(0, e, /\\(.)|(["'])/gsu, (e, i, a) => i === r ? i : a === t ? "\\" + a : a || (n && /^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/u.test(i) ? i : "\\" + i)) + t;
3427
+ }
3428
+ function Ua(e, t) {
3429
+ return arguments.length === 2 || typeof t == "number" ? ya(e, t) : Va(...arguments);
3430
+ }
3431
+ function Wa(e, t = 1) {
3432
+ return async (...n) => {
3433
+ let r = n[t] ?? {}, i = r.plugins ?? [];
3434
+ return n[t] = {
3435
+ ...r,
3436
+ plugins: Array.isArray(i) ? i : Object.values(i)
3437
+ }, e(...n);
3438
+ };
3439
+ }
3440
+ var Ga = Wa(ea);
3441
+ async function Ka(e, t) {
3442
+ let { formatted: n } = await Ga(e, {
3443
+ ...t,
3444
+ cursorOffset: -1
3445
+ });
3446
+ return n;
3447
+ }
3448
+ async function qa(e, t) {
3449
+ return await Ka(e, t) === e;
3450
+ }
3451
+ var Ja = Wa(gn, 0), Ya = {
3452
+ parse: Wa(ta),
3453
+ formatAST: Wa(na),
3454
+ formatDoc: Wa(ra),
3455
+ printToDoc: Wa(ia),
3456
+ printDocToString: Wa(aa)
3457
+ };
3458
+ export { Ya as __debug, qa as check, d as default, oa as doc, Ka as format, Ga as formatWithCursor, Ja as getSupportInfo, da as util, ua as version };