@typespec/html-program-viewer 0.58.0-dev.4 → 0.59.0-dev.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.
@@ -17950,6 +17950,7 @@ const diagnostics = {
17950
17950
  severity: "error",
17951
17951
  messages: {
17952
17952
  default: paramMessage `Model has an inherited property named ${"propName"} of type ${"propType"} which cannot override type ${"parentType"}`,
17953
+ disallowedOptionalOverride: paramMessage `Model has a required inherited property named ${"propName"} which cannot be overridden as optional`,
17953
17954
  },
17954
17955
  },
17955
17956
  "extend-scalar": {
@@ -28224,7 +28225,7 @@ let manifest;
28224
28225
  try {
28225
28226
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
28226
28227
  // @ts-ignore
28227
- manifest = (await import('../manifest-DR4jWHsG.js')).default;
28228
+ manifest = (await import('../manifest-Bx5EZvxu.js')).default;
28228
28229
  }
28229
28230
  catch {
28230
28231
  const name = "../dist/manifest.js";
@@ -29588,1735 +29589,1747 @@ function isTemplateInstance(type) {
29588
29589
  maybeTemplateType.isFinished);
29589
29590
  }
29590
29591
 
29591
- var __defProp = Object.defineProperty;
29592
- var __export = (target, all) => {
29593
- for (var name in all)
29594
- __defProp(target, name, { get: all[name], enumerable: true });
29595
- };
29596
-
29597
- // src/document/public.js
29598
- var public_exports = {};
29599
- __export(public_exports, {
29600
- builders: () => builders,
29601
- printer: () => printer,
29602
- utils: () => utils
29603
- });
29604
-
29605
- // src/document/constants.js
29606
- var DOC_TYPE_STRING = "string";
29607
- var DOC_TYPE_ARRAY = "array";
29608
- var DOC_TYPE_CURSOR = "cursor";
29609
- var DOC_TYPE_INDENT = "indent";
29610
- var DOC_TYPE_ALIGN = "align";
29611
- var DOC_TYPE_TRIM = "trim";
29612
- var DOC_TYPE_GROUP = "group";
29613
- var DOC_TYPE_FILL = "fill";
29614
- var DOC_TYPE_IF_BREAK = "if-break";
29615
- var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break";
29616
- var DOC_TYPE_LINE_SUFFIX = "line-suffix";
29617
- var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary";
29618
- var DOC_TYPE_LINE = "line";
29619
- var DOC_TYPE_LABEL = "label";
29620
- var DOC_TYPE_BREAK_PARENT = "break-parent";
29621
- var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
29622
- DOC_TYPE_CURSOR,
29623
- DOC_TYPE_INDENT,
29624
- DOC_TYPE_ALIGN,
29625
- DOC_TYPE_TRIM,
29626
- DOC_TYPE_GROUP,
29627
- DOC_TYPE_FILL,
29628
- DOC_TYPE_IF_BREAK,
29629
- DOC_TYPE_INDENT_IF_BREAK,
29630
- DOC_TYPE_LINE_SUFFIX,
29631
- DOC_TYPE_LINE_SUFFIX_BOUNDARY,
29632
- DOC_TYPE_LINE,
29633
- DOC_TYPE_LABEL,
29634
- DOC_TYPE_BREAK_PARENT
29635
- ]);
29636
-
29637
- // src/document/utils/get-doc-type.js
29638
- function getDocType(doc) {
29639
- if (typeof doc === "string") {
29640
- return DOC_TYPE_STRING;
29641
- }
29642
- if (Array.isArray(doc)) {
29643
- return DOC_TYPE_ARRAY;
29644
- }
29645
- if (!doc) {
29646
- return;
29647
- }
29648
- const { type } = doc;
29649
- if (VALID_OBJECT_DOC_TYPES.has(type)) {
29650
- return type;
29651
- }
29592
+ /**
29593
+ * Print a string as a TypeSpec identifier. If the string is a valid identifier, return it as is otherwise wrap it into backticks.
29594
+ * @param sv Identifier string value.
29595
+ * @returns Identifier string as it would be represented in a TypeSpec file.
29596
+ *
29597
+ * @example
29598
+ * ```ts
29599
+ * printIdentifier("foo") // foo
29600
+ * printIdentifier("foo bar") // `foo bar`
29601
+ * ```
29602
+ */
29603
+ function printIdentifier(sv) {
29604
+ if (needBacktick(sv)) {
29605
+ const escapedString = sv
29606
+ .replace(/\\/g, "\\\\")
29607
+ .replace(/\n/g, "\\n")
29608
+ .replace(/\r/g, "\\r")
29609
+ .replace(/\t/g, "\\t")
29610
+ .replace(/`/g, "\\`");
29611
+ return `\`${escapedString}\``;
29612
+ }
29613
+ else {
29614
+ return sv;
29615
+ }
29652
29616
  }
29653
- var get_doc_type_default = getDocType;
29654
-
29655
- // src/document/invalid-doc-error.js
29656
- var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
29657
- function getDocErrorMessage(doc) {
29658
- const type = doc === null ? "null" : typeof doc;
29659
- if (type !== "string" && type !== "object") {
29660
- return `Unexpected doc '${type}',
29661
- Expected it to be 'string' or 'object'.`;
29662
- }
29663
- if (get_doc_type_default(doc)) {
29664
- throw new Error("doc is valid.");
29665
- }
29666
- const objectType = Object.prototype.toString.call(doc);
29667
- if (objectType !== "[object Object]") {
29668
- return `Unexpected doc '${objectType}'.`;
29669
- }
29670
- const EXPECTED_TYPE_VALUES = disjunctionListFormat(
29671
- [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)
29672
- );
29673
- return `Unexpected doc.type '${doc.type}'.
29674
- Expected it to be ${EXPECTED_TYPE_VALUES}.`;
29617
+ function needBacktick(sv) {
29618
+ if (sv.length === 0) {
29619
+ return false;
29620
+ }
29621
+ if (Keywords.has(sv)) {
29622
+ return true;
29623
+ }
29624
+ let cp = sv.codePointAt(0);
29625
+ if (!isIdentifierStart(cp)) {
29626
+ return true;
29627
+ }
29628
+ let pos = 0;
29629
+ do {
29630
+ pos += utf16CodeUnits(cp);
29631
+ } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));
29632
+ return pos < sv.length;
29675
29633
  }
29676
- var InvalidDocError = class extends Error {
29677
- name = "InvalidDocError";
29678
- constructor(doc) {
29679
- super(getDocErrorMessage(doc));
29680
- this.doc = doc;
29681
- }
29682
- };
29683
- var invalid_doc_error_default = InvalidDocError;
29684
29634
 
29685
- // src/document/utils/traverse-doc.js
29686
- var traverseDocOnExitStackMarker = {};
29687
- function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
29688
- const docsStack = [doc];
29689
- while (docsStack.length > 0) {
29690
- const doc2 = docsStack.pop();
29691
- if (doc2 === traverseDocOnExitStackMarker) {
29692
- onExit(docsStack.pop());
29693
- continue;
29635
+ function getTypeName(type, options) {
29636
+ switch (type.kind) {
29637
+ case "Namespace":
29638
+ return getNamespaceFullName(type, options);
29639
+ case "TemplateParameter":
29640
+ return getIdentifierName(type.node.id.sv, options);
29641
+ case "Scalar":
29642
+ return getScalarName(type, options);
29643
+ case "Model":
29644
+ return getModelName(type, options);
29645
+ case "ModelProperty":
29646
+ return getModelPropertyName(type, options);
29647
+ case "Interface":
29648
+ return getInterfaceName(type, options);
29649
+ case "Operation":
29650
+ return getOperationName(type, options);
29651
+ case "Enum":
29652
+ return getEnumName(type, options);
29653
+ case "EnumMember":
29654
+ return `${getEnumName(type.enum, options)}.${getIdentifierName(type.name, options)}`;
29655
+ case "Union":
29656
+ return getUnionName(type, options);
29657
+ case "UnionVariant":
29658
+ return getTypeName(type.type, options);
29659
+ case "Tuple":
29660
+ return "[" + type.values.map((x) => getTypeName(x, options)).join(", ") + "]";
29661
+ case "StringTemplate":
29662
+ return getStringTemplateName(type);
29663
+ case "String":
29664
+ return `"${type.value}"`;
29665
+ case "Number":
29666
+ return type.valueAsString;
29667
+ case "Boolean":
29668
+ return type.value.toString();
29669
+ case "Intrinsic":
29670
+ return type.name;
29671
+ default:
29672
+ return `(unnamed type)`;
29694
29673
  }
29695
- if (onExit) {
29696
- docsStack.push(doc2, traverseDocOnExitStackMarker);
29674
+ }
29675
+ function getValuePreview(value, options) {
29676
+ switch (value.valueKind) {
29677
+ case "ObjectValue":
29678
+ return `#{${[...value.properties.entries()].map(([name, value]) => `${name}: ${getValuePreview(value.value, options)}`).join(", ")}}`;
29679
+ case "ArrayValue":
29680
+ return `#[${value.values.map((x) => getValuePreview(x, options)).join(", ")}]`;
29681
+ case "StringValue":
29682
+ return `"${value.value}"`;
29683
+ case "BooleanValue":
29684
+ return `${value.value}`;
29685
+ case "NumericValue":
29686
+ return `${value.value.toString()}`;
29687
+ case "EnumValue":
29688
+ return getTypeName(value.value);
29689
+ case "NullValue":
29690
+ return "null";
29691
+ case "ScalarValue":
29692
+ return `${getTypeName(value.type, options)}.${value.value.name}(${value.value.args.map((x) => getValuePreview(x, options)).join(", ")}})`;
29697
29693
  }
29698
- const docType = get_doc_type_default(doc2);
29699
- if (!docType) {
29700
- throw new invalid_doc_error_default(doc2);
29694
+ }
29695
+ function getEntityName(entity, options) {
29696
+ if (isValue(entity)) {
29697
+ return getValuePreview(entity, options);
29701
29698
  }
29702
- if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
29703
- continue;
29699
+ else if (isType(entity)) {
29700
+ return getTypeName(entity, options);
29704
29701
  }
29705
- switch (docType) {
29706
- case DOC_TYPE_ARRAY:
29707
- case DOC_TYPE_FILL: {
29708
- const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
29709
- for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
29710
- docsStack.push(parts[i]);
29711
- }
29712
- break;
29713
- }
29714
- case DOC_TYPE_IF_BREAK:
29715
- docsStack.push(doc2.flatContents, doc2.breakContents);
29716
- break;
29717
- case DOC_TYPE_GROUP:
29718
- if (shouldTraverseConditionalGroups && doc2.expandedStates) {
29719
- for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
29720
- docsStack.push(doc2.expandedStates[i]);
29721
- }
29722
- } else {
29723
- docsStack.push(doc2.contents);
29702
+ else {
29703
+ switch (entity.entityKind) {
29704
+ case "MixedParameterConstraint":
29705
+ return [
29706
+ entity.type && getEntityName(entity.type),
29707
+ entity.valueType && `valueof ${getEntityName(entity.valueType)}`,
29708
+ ]
29709
+ .filter(isDefined)
29710
+ .join(" | ");
29711
+ case "Indeterminate":
29712
+ return getTypeName(entity.type, options);
29724
29713
  }
29725
- break;
29726
- case DOC_TYPE_ALIGN:
29727
- case DOC_TYPE_INDENT:
29728
- case DOC_TYPE_INDENT_IF_BREAK:
29729
- case DOC_TYPE_LABEL:
29730
- case DOC_TYPE_LINE_SUFFIX:
29731
- docsStack.push(doc2.contents);
29732
- break;
29733
- case DOC_TYPE_STRING:
29734
- case DOC_TYPE_CURSOR:
29735
- case DOC_TYPE_TRIM:
29736
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
29737
- case DOC_TYPE_LINE:
29738
- case DOC_TYPE_BREAK_PARENT:
29739
- break;
29740
- default:
29741
- throw new invalid_doc_error_default(doc2);
29742
29714
  }
29743
- }
29744
29715
  }
29745
- var traverse_doc_default = traverseDoc;
29746
-
29747
- // src/document/utils/assert-doc.js
29748
- var noop = () => {
29749
- };
29750
- var assertDocArray = noop ;
29751
-
29752
- // src/document/builders.js
29753
- function indent(contents) {
29754
- return { type: DOC_TYPE_INDENT, contents };
29755
- }
29756
- function align(widthOrString, contents) {
29757
- return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
29716
+ function isStdNamespace(namespace) {
29717
+ return ((namespace.name === "TypeSpec" && namespace.namespace?.name === "") ||
29718
+ (namespace.name === "Reflection" &&
29719
+ namespace.namespace?.name === "TypeSpec" &&
29720
+ namespace.namespace?.namespace?.name === ""));
29758
29721
  }
29759
- function group(contents, opts = {}) {
29760
- assertDocArray(
29761
- opts.expandedStates);
29762
- return {
29763
- type: DOC_TYPE_GROUP,
29764
- id: opts.id,
29765
- contents,
29766
- break: Boolean(opts.shouldBreak),
29767
- expandedStates: opts.expandedStates
29768
- };
29722
+ /**
29723
+ * Return the full name of the namespace(e.g. "Foo.Bar")
29724
+ * @param type namespace type
29725
+ * @param options
29726
+ * @returns
29727
+ */
29728
+ function getNamespaceFullName(type, options) {
29729
+ const segments = [];
29730
+ let current = type;
29731
+ while (current && current.name !== "") {
29732
+ segments.unshift(getIdentifierName(current.name, options));
29733
+ current = current.namespace;
29734
+ }
29735
+ return segments.join(".");
29769
29736
  }
29770
- function dedentToRoot(contents) {
29771
- return align(Number.NEGATIVE_INFINITY, contents);
29737
+ function getNamespacePrefix(type, options) {
29738
+ if (type === undefined || isStdNamespace(type)) {
29739
+ return "";
29740
+ }
29741
+ const namespaceFullName = getNamespaceFullName(type, options);
29742
+ return namespaceFullName !== "" ? namespaceFullName + "." : "";
29772
29743
  }
29773
- function markAsRoot(contents) {
29774
- return align({ type: "root" }, contents);
29744
+ function getEnumName(e, options) {
29745
+ return `${getNamespacePrefix(e.namespace, options)}${getIdentifierName(e.name, options)}`;
29775
29746
  }
29776
- function dedent(contents) {
29777
- return align(-1, contents);
29747
+ function getScalarName(scalar, options) {
29748
+ return `${getNamespacePrefix(scalar.namespace, options)}${getIdentifierName(scalar.name, options)}`;
29778
29749
  }
29779
- function conditionalGroup(states, opts) {
29780
- return group(states[0], { ...opts, expandedStates: states });
29750
+ function getModelName(model, options) {
29751
+ const nsPrefix = getNamespacePrefix(model.namespace, options);
29752
+ if (model.name === "" && model.properties.size === 0) {
29753
+ return "{}";
29754
+ }
29755
+ if (model.indexer && model.indexer.key.kind === "Scalar") {
29756
+ if (model.name === "Array" && isInTypeSpecNamespace(model)) {
29757
+ return `${getTypeName(model.indexer.value, options)}[]`;
29758
+ }
29759
+ }
29760
+ if (model.name === "") {
29761
+ return (nsPrefix +
29762
+ `{ ${[...model.properties.values()].map((prop) => `${prop.name}: ${getTypeName(prop.type, options)}`).join(", ")} }`);
29763
+ }
29764
+ const modelName = nsPrefix + getIdentifierName(model.name, options);
29765
+ if (isTemplateInstance(model)) {
29766
+ // template instantiation
29767
+ const args = model.templateMapper.args.map((x) => getEntityName(x, options));
29768
+ return `${modelName}<${args.join(", ")}>`;
29769
+ }
29770
+ else if (model.node?.templateParameters?.length > 0) {
29771
+ // template
29772
+ const params = model.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
29773
+ return `${modelName}<${params.join(", ")}>`;
29774
+ }
29775
+ else {
29776
+ // regular old model.
29777
+ return modelName;
29778
+ }
29781
29779
  }
29782
- function fill(parts) {
29783
- return { type: DOC_TYPE_FILL, parts };
29780
+ function getUnionName(type, options) {
29781
+ const nsPrefix = getNamespacePrefix(type.namespace, options);
29782
+ const typeName = type.name
29783
+ ? getIdentifierName(type.name, options)
29784
+ : [...type.variants.values()].map((x) => getTypeName(x.type, options)).join(" | ");
29785
+ return nsPrefix + typeName;
29784
29786
  }
29785
- function ifBreak(breakContents, flatContents = "", opts = {}) {
29786
- return {
29787
- type: DOC_TYPE_IF_BREAK,
29788
- breakContents,
29789
- flatContents,
29790
- groupId: opts.groupId
29791
- };
29787
+ /**
29788
+ * Check if the given namespace is the standard library `TypeSpec` namespace.
29789
+ */
29790
+ function isTypeSpecNamespace(namespace) {
29791
+ return namespace.name === "TypeSpec" && namespace.namespace?.name === "";
29792
29792
  }
29793
- function indentIfBreak(contents, opts) {
29794
- return {
29795
- type: DOC_TYPE_INDENT_IF_BREAK,
29796
- contents,
29797
- groupId: opts.groupId,
29798
- negate: opts.negate
29799
- };
29793
+ /**
29794
+ * Check if the given type is defined right in the TypeSpec namespace.
29795
+ */
29796
+ function isInTypeSpecNamespace(type) {
29797
+ return Boolean(type.namespace && isTypeSpecNamespace(type.namespace));
29800
29798
  }
29801
- function lineSuffix(contents) {
29802
- return { type: DOC_TYPE_LINE_SUFFIX, contents };
29799
+ function getModelPropertyName(prop, options) {
29800
+ const modelName = prop.model ? getModelName(prop.model, options) : undefined;
29801
+ return `${modelName ?? "(anonymous model)"}.${prop.name}`;
29803
29802
  }
29804
- var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
29805
- var breakParent = { type: DOC_TYPE_BREAK_PARENT };
29806
- var trim = { type: DOC_TYPE_TRIM };
29807
- var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
29808
- var literallineWithoutBreakParent = {
29809
- type: DOC_TYPE_LINE,
29810
- hard: true,
29811
- literal: true
29812
- };
29813
- var line = { type: DOC_TYPE_LINE };
29814
- var softline = { type: DOC_TYPE_LINE, soft: true };
29815
- var hardline = [hardlineWithoutBreakParent, breakParent];
29816
- var literalline = [literallineWithoutBreakParent, breakParent];
29817
- var cursor = { type: DOC_TYPE_CURSOR };
29818
- function join(separator, docs) {
29819
- const parts = [];
29820
- for (let i = 0; i < docs.length; i++) {
29821
- if (i !== 0) {
29822
- parts.push(separator);
29803
+ function getInterfaceName(iface, options) {
29804
+ let interfaceName = getIdentifierName(iface.name, options);
29805
+ if (isTemplateInstance(iface)) {
29806
+ interfaceName += `<${iface.templateMapper.args
29807
+ .map((x) => getEntityName(x, options))
29808
+ .join(", ")}>`;
29823
29809
  }
29824
- parts.push(docs[i]);
29825
- }
29826
- return parts;
29810
+ return `${getNamespacePrefix(iface.namespace, options)}${interfaceName}`;
29827
29811
  }
29828
- function addAlignmentToDoc(doc, size, tabWidth) {
29829
- let aligned = doc;
29830
- if (size > 0) {
29831
- for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
29832
- aligned = indent(aligned);
29812
+ function getOperationName(op, options) {
29813
+ let opName = getIdentifierName(op.name, options);
29814
+ if (op.node.templateParameters.length > 0) {
29815
+ // template
29816
+ const params = op.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
29817
+ opName += `<${params.join(", ")}>`;
29833
29818
  }
29834
- aligned = align(size % tabWidth, aligned);
29835
- aligned = align(Number.NEGATIVE_INFINITY, aligned);
29836
- }
29837
- return aligned;
29819
+ const prefix = op.interface
29820
+ ? getInterfaceName(op.interface, options) + "."
29821
+ : getNamespacePrefix(op.namespace, options);
29822
+ return `${prefix}${opName}`;
29838
29823
  }
29839
- function label(label2, contents) {
29840
- return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
29824
+ function getIdentifierName(name, options) {
29825
+ return options?.printable ? printIdentifier(name) : name;
29841
29826
  }
29842
-
29843
- // scripts/build/shims/at.js
29844
- var at$1 = (isOptionalObject, object, index) => {
29845
- if (isOptionalObject && (object === void 0 || object === null)) {
29846
- return;
29847
- }
29848
- if (Array.isArray(object) || typeof object === "string") {
29849
- return object[index < 0 ? object.length + index : index];
29850
- }
29851
- return object.at(index);
29852
- };
29853
- var at_default = at$1;
29854
-
29855
- // scripts/build/shims/string-replace-all.js
29856
- var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
29857
- if (isOptionalObject && (original === void 0 || original === null)) {
29858
- return;
29859
- }
29860
- if (original.replaceAll) {
29861
- return original.replaceAll(pattern, replacement);
29862
- }
29863
- if (pattern.global) {
29864
- return original.replace(pattern, replacement);
29865
- }
29866
- return original.split(pattern).join(replacement);
29867
- };
29868
- var string_replace_all_default = stringReplaceAll;
29869
-
29870
- // src/common/end-of-line.js
29871
- function convertEndOfLineToChars(value) {
29872
- switch (value) {
29873
- case "cr":
29874
- return "\r";
29875
- case "crlf":
29876
- return "\r\n";
29877
- default:
29878
- return "\n";
29879
- }
29827
+ function getStringTemplateName(type) {
29828
+ if (type.stringValue) {
29829
+ return `"${type.stringValue}"`;
29830
+ }
29831
+ return "string";
29880
29832
  }
29881
29833
 
29882
- // node_modules/emoji-regex/index.mjs
29883
- var emoji_regex_default = () => {
29884
- return /[#*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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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-\uDED7\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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\uDD3D\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\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]|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\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;
29885
- };
29886
-
29887
- // node_modules/get-east-asian-width/lookup.js
29888
- function isFullWidth(x) {
29889
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
29890
- }
29891
- function isWide(x) {
29892
- return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 19968 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101632 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129672 || x >= 129680 && x <= 129725 || x >= 129727 && x <= 129733 || x >= 129742 && x <= 129755 || x >= 129760 && x <= 129768 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
29834
+ class InvalidNumericError extends Error {
29835
+ code = "InvalidNumeric";
29893
29836
  }
29894
-
29895
- // node_modules/get-east-asian-width/index.js
29896
- var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
29897
-
29898
- // src/utils/get-string-width.js
29899
- var notAsciiRegex = /[^\x20-\x7F]/;
29900
- function getStringWidth(text) {
29901
- if (!text) {
29902
- return 0;
29903
- }
29904
- if (!notAsciiRegex.test(text)) {
29905
- return text.length;
29906
- }
29907
- text = text.replace(emoji_regex_default(), " ");
29908
- let width = 0;
29909
- for (const character of text) {
29910
- const codePoint = character.codePointAt(0);
29911
- if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
29912
- continue;
29913
- }
29914
- if (codePoint >= 768 && codePoint <= 879) {
29915
- continue;
29837
+ /** @internal */
29838
+ const InternalDataSym = Symbol.for("NumericInternalData");
29839
+ /**
29840
+ * Represent any possible numeric value
29841
+ */
29842
+ function Numeric(stringValue) {
29843
+ if (new.target) {
29844
+ throw new Error("Numeric is not a constructor");
29916
29845
  }
29917
- width += _isNarrowWidth(codePoint) ? 1 : 2;
29918
- }
29919
- return width;
29846
+ const data = parse$1(stringValue);
29847
+ const isInteger = data.d === 0;
29848
+ const obj = {
29849
+ [InternalDataSym]: data,
29850
+ isInteger,
29851
+ };
29852
+ // We are explicitly not using a class here due to version mismatch between the compiler and the runtime that could happen and break instanceof checks.
29853
+ const numeric = setTypedProptotype(obj, NumericPrototype);
29854
+ return Object.freeze(numeric);
29920
29855
  }
29921
- var get_string_width_default = getStringWidth;
29922
-
29923
- // src/document/utils.js
29924
- function mapDoc(doc, cb) {
29925
- if (typeof doc === "string") {
29926
- return cb(doc);
29927
- }
29928
- const mapped = /* @__PURE__ */ new Map();
29929
- return rec(doc);
29930
- function rec(doc2) {
29931
- if (mapped.has(doc2)) {
29932
- return mapped.get(doc2);
29856
+ function setTypedProptotype(obj, prototype) {
29857
+ Object.setPrototypeOf(obj, prototype);
29858
+ return obj;
29859
+ }
29860
+ function parse$1(original) {
29861
+ let stringValue = original;
29862
+ let start = 0;
29863
+ let sign = 1;
29864
+ let n;
29865
+ let exp;
29866
+ let decimal;
29867
+ if (stringValue[0] === "-") {
29868
+ start = 1;
29869
+ sign = -1;
29933
29870
  }
29934
- const result = process2(doc2);
29935
- mapped.set(doc2, result);
29936
- return result;
29937
- }
29938
- function process2(doc2) {
29939
- switch (get_doc_type_default(doc2)) {
29940
- case DOC_TYPE_ARRAY:
29941
- return cb(doc2.map(rec));
29942
- case DOC_TYPE_FILL:
29943
- return cb({
29944
- ...doc2,
29945
- parts: doc2.parts.map(rec)
29946
- });
29947
- case DOC_TYPE_IF_BREAK:
29948
- return cb({
29949
- ...doc2,
29950
- breakContents: rec(doc2.breakContents),
29951
- flatContents: rec(doc2.flatContents)
29952
- });
29953
- case DOC_TYPE_GROUP: {
29954
- let {
29955
- expandedStates,
29956
- contents
29957
- } = doc2;
29958
- if (expandedStates) {
29959
- expandedStates = expandedStates.map(rec);
29960
- contents = expandedStates[0];
29961
- } else {
29962
- contents = rec(contents);
29871
+ const second = stringValue[start + 1]?.toLowerCase();
29872
+ if (stringValue[start] === "0" && (second === "b" || second === "x" || second === "o")) {
29873
+ try {
29874
+ n = BigInt(stringValue.slice(start));
29875
+ exp = n.toString().length;
29876
+ decimal = 0;
29877
+ }
29878
+ catch {
29879
+ throw new InvalidNumericError(`Invalid numeric value: ${original}`);
29963
29880
  }
29964
- return cb({
29965
- ...doc2,
29966
- contents,
29967
- expandedStates
29968
- });
29969
- }
29970
- case DOC_TYPE_ALIGN:
29971
- case DOC_TYPE_INDENT:
29972
- case DOC_TYPE_INDENT_IF_BREAK:
29973
- case DOC_TYPE_LABEL:
29974
- case DOC_TYPE_LINE_SUFFIX:
29975
- return cb({
29976
- ...doc2,
29977
- contents: rec(doc2.contents)
29978
- });
29979
- case DOC_TYPE_STRING:
29980
- case DOC_TYPE_CURSOR:
29981
- case DOC_TYPE_TRIM:
29982
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
29983
- case DOC_TYPE_LINE:
29984
- case DOC_TYPE_BREAK_PARENT:
29985
- return cb(doc2);
29986
- default:
29987
- throw new invalid_doc_error_default(doc2);
29988
- }
29989
- }
29990
- }
29991
- function findInDoc(doc, fn, defaultValue) {
29992
- let result = defaultValue;
29993
- let shouldSkipFurtherProcessing = false;
29994
- function findInDocOnEnterFn(doc2) {
29995
- if (shouldSkipFurtherProcessing) {
29996
- return false;
29997
29881
  }
29998
- const maybeResult = fn(doc2);
29999
- if (maybeResult !== void 0) {
30000
- shouldSkipFurtherProcessing = true;
30001
- result = maybeResult;
29882
+ else {
29883
+ // Skip leading 0.
29884
+ while (stringValue[start] === "0") {
29885
+ start++;
29886
+ }
29887
+ const decimalPointIndex = stringValue.indexOf(".");
29888
+ const adjustedPointIndex = decimalPointIndex - start;
29889
+ // Decimal point?
29890
+ if (decimalPointIndex !== -1) {
29891
+ exp = adjustedPointIndex;
29892
+ stringValue = stringValue.replace(".", "");
29893
+ }
29894
+ let i;
29895
+ if ((i = stringValue.search(/e/i)) > 0) {
29896
+ // Determine exponent.
29897
+ if (exp === undefined) {
29898
+ exp = i - start;
29899
+ }
29900
+ exp += Number(stringValue.slice(i + 1));
29901
+ stringValue = stringValue.slice(start, i);
29902
+ }
29903
+ else if (exp === undefined) {
29904
+ // Integer.
29905
+ exp = stringValue.length - start;
29906
+ stringValue = stringValue.slice(start);
29907
+ }
29908
+ else {
29909
+ stringValue = stringValue.slice(start);
29910
+ }
29911
+ let end = stringValue.length;
29912
+ while (stringValue[end - 1] === "0" && end > adjustedPointIndex) {
29913
+ end--;
29914
+ }
29915
+ try {
29916
+ stringValue = stringValue.slice(0, end);
29917
+ stringValue = stringValue + "0".repeat(Math.max(exp - stringValue.length, 0)); // add remaining zeros for cases like 3e30
29918
+ n = BigInt(stringValue);
29919
+ decimal = n === 0n ? 0 : Math.max(stringValue.length - exp, 0);
29920
+ }
29921
+ catch {
29922
+ throw new InvalidNumericError(`Invalid numeric value: ${original}`);
29923
+ }
30002
29924
  }
30003
- }
30004
- traverse_doc_default(doc, findInDocOnEnterFn);
30005
- return result;
30006
- }
30007
- function willBreakFn(doc) {
30008
- if (doc.type === DOC_TYPE_GROUP && doc.break) {
30009
- return true;
30010
- }
30011
- if (doc.type === DOC_TYPE_LINE && doc.hard) {
30012
- return true;
30013
- }
30014
- if (doc.type === DOC_TYPE_BREAK_PARENT) {
30015
- return true;
30016
- }
29925
+ return { n, e: exp, s: sign, d: decimal };
30017
29926
  }
30018
- function willBreak(doc) {
30019
- return findInDoc(doc, willBreakFn, false);
29927
+ function stringify(value) {
29928
+ const n = value.n.toString();
29929
+ const sign = value.s === -1 ? "-" : "";
29930
+ const decimal = value.e < n.length ? "." + n.slice(value.e) : "";
29931
+ return sign + n.slice(0, value.e) + decimal;
30020
29932
  }
30021
- function breakParentGroup(groupStack) {
30022
- if (groupStack.length > 0) {
30023
- const parentGroup = at_default(
30024
- /* isOptionalObject */
30025
- false,
30026
- groupStack,
30027
- -1
30028
- );
30029
- if (!parentGroup.expandedStates && !parentGroup.break) {
30030
- parentGroup.break = "propagated";
29933
+ const equals = (a, b) => a.n === b.n && a.e === b.e;
29934
+ const compare = (a, b) => {
29935
+ if (a.s < b.s) {
29936
+ return -1;
30031
29937
  }
30032
- }
30033
- return null;
30034
- }
30035
- function propagateBreaks(doc) {
30036
- const alreadyVisitedSet = /* @__PURE__ */ new Set();
30037
- const groupStack = [];
30038
- function propagateBreaksOnEnterFn(doc2) {
30039
- if (doc2.type === DOC_TYPE_BREAK_PARENT) {
30040
- breakParentGroup(groupStack);
29938
+ else if (a.s > b.s) {
29939
+ return 1;
30041
29940
  }
30042
- if (doc2.type === DOC_TYPE_GROUP) {
30043
- groupStack.push(doc2);
30044
- if (alreadyVisitedSet.has(doc2)) {
30045
- return false;
30046
- }
30047
- alreadyVisitedSet.add(doc2);
29941
+ const neg = a.s;
29942
+ if (a.e < b.e) {
29943
+ return (-1 * neg);
30048
29944
  }
30049
- }
30050
- function propagateBreaksOnExitFn(doc2) {
30051
- if (doc2.type === DOC_TYPE_GROUP) {
30052
- const group2 = groupStack.pop();
30053
- if (group2.break) {
30054
- breakParentGroup(groupStack);
30055
- }
29945
+ else if (a.e > b.e) {
29946
+ return (1 * neg);
30056
29947
  }
30057
- }
30058
- traverse_doc_default(
30059
- doc,
30060
- propagateBreaksOnEnterFn,
30061
- propagateBreaksOnExitFn,
30062
- /* shouldTraverseConditionalGroups */
30063
- true
30064
- );
30065
- }
30066
- function removeLinesFn(doc) {
30067
- if (doc.type === DOC_TYPE_LINE && !doc.hard) {
30068
- return doc.soft ? "" : " ";
30069
- }
30070
- if (doc.type === DOC_TYPE_IF_BREAK) {
30071
- return doc.flatContents;
30072
- }
30073
- return doc;
30074
- }
30075
- function removeLines(doc) {
30076
- return mapDoc(doc, removeLinesFn);
30077
- }
30078
- function stripTrailingHardlineFromParts(parts) {
30079
- parts = [...parts];
30080
- while (parts.length >= 2 && at_default(
30081
- /* isOptionalObject */
30082
- false,
30083
- parts,
30084
- -2
30085
- ).type === DOC_TYPE_LINE && at_default(
30086
- /* isOptionalObject */
30087
- false,
30088
- parts,
30089
- -1
30090
- ).type === DOC_TYPE_BREAK_PARENT) {
30091
- parts.length -= 2;
30092
- }
30093
- if (parts.length > 0) {
30094
- const lastPart = stripTrailingHardlineFromDoc(at_default(
30095
- /* isOptionalObject */
30096
- false,
30097
- parts,
30098
- -1
30099
- ));
30100
- parts[parts.length - 1] = lastPart;
30101
- }
30102
- return parts;
30103
- }
30104
- function stripTrailingHardlineFromDoc(doc) {
30105
- switch (get_doc_type_default(doc)) {
30106
- case DOC_TYPE_INDENT:
30107
- case DOC_TYPE_INDENT_IF_BREAK:
30108
- case DOC_TYPE_GROUP:
30109
- case DOC_TYPE_LINE_SUFFIX:
30110
- case DOC_TYPE_LABEL: {
30111
- const contents = stripTrailingHardlineFromDoc(doc.contents);
30112
- return {
30113
- ...doc,
30114
- contents
30115
- };
29948
+ let aN = a.n;
29949
+ let bN = b.n;
29950
+ if (a.d < b.d) {
29951
+ aN *= 10n ** BigInt(b.d - a.d);
30116
29952
  }
30117
- case DOC_TYPE_IF_BREAK:
30118
- return {
30119
- ...doc,
30120
- breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
30121
- flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
30122
- };
30123
- case DOC_TYPE_FILL:
30124
- return {
30125
- ...doc,
30126
- parts: stripTrailingHardlineFromParts(doc.parts)
30127
- };
30128
- case DOC_TYPE_ARRAY:
30129
- return stripTrailingHardlineFromParts(doc);
30130
- case DOC_TYPE_STRING:
30131
- return doc.replace(/[\n\r]*$/, "");
30132
- case DOC_TYPE_ALIGN:
30133
- case DOC_TYPE_CURSOR:
30134
- case DOC_TYPE_TRIM:
30135
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30136
- case DOC_TYPE_LINE:
30137
- case DOC_TYPE_BREAK_PARENT:
30138
- break;
30139
- default:
30140
- throw new invalid_doc_error_default(doc);
29953
+ else {
29954
+ bN *= 10n ** BigInt(a.d - b.d);
29955
+ }
29956
+ if (aN < bN)
29957
+ return (-1 * neg);
29958
+ if (aN > bN)
29959
+ return (1 * neg);
29960
+ return 0;
29961
+ };
29962
+ const NumericPrototype = {
29963
+ toString: function () {
29964
+ return stringify(this[InternalDataSym]);
29965
+ },
29966
+ asNumber: function () {
29967
+ const num = Number(stringify(this[InternalDataSym]));
29968
+ return equals(this[InternalDataSym], Numeric(num.toString())[InternalDataSym]) ? num : null;
29969
+ },
29970
+ asBigInt: function () {
29971
+ return this.isInteger ? this[InternalDataSym].n : null;
29972
+ },
29973
+ equals: function (other) {
29974
+ return equals(this[InternalDataSym], other[InternalDataSym]);
29975
+ },
29976
+ lt: function (other) {
29977
+ return compare(this[InternalDataSym], other[InternalDataSym]) === -1;
29978
+ },
29979
+ lte: function (other) {
29980
+ return compare(this[InternalDataSym], other[InternalDataSym]) <= 0;
29981
+ },
29982
+ gt: function (other) {
29983
+ return compare(this[InternalDataSym], other[InternalDataSym]) === 1;
29984
+ },
29985
+ gte: function (other) {
29986
+ return compare(this[InternalDataSym], other[InternalDataSym]) >= 0;
29987
+ },
29988
+ };
29989
+ NumericPrototype.toString = function () {
29990
+ return stringify(this[InternalDataSym]);
29991
+ };
29992
+
29993
+ /**
29994
+ * Set of known numeric ranges
29995
+ */
29996
+ ({
29997
+ int64: [
29998
+ Numeric("-9223372036854775808"),
29999
+ Numeric("9223372036854775807"),
30000
+ { int: true, isJsNumber: false },
30001
+ ],
30002
+ int32: [Numeric("-2147483648"), Numeric("2147483647"), { int: true, isJsNumber: true }],
30003
+ int16: [Numeric("-32768"), Numeric("32767"), { int: true, isJsNumber: true }],
30004
+ int8: [Numeric("-128"), Numeric("127"), { int: true, isJsNumber: true }],
30005
+ uint64: [Numeric("0"), Numeric("18446744073709551615"), { int: true, isJsNumber: false }],
30006
+ uint32: [Numeric("0"), Numeric("4294967295"), { int: true, isJsNumber: true }],
30007
+ uint16: [Numeric("0"), Numeric("65535"), { int: true, isJsNumber: true }],
30008
+ uint8: [Numeric("0"), Numeric("255"), { int: true, isJsNumber: true }],
30009
+ safeint: [
30010
+ Numeric(Number.MIN_SAFE_INTEGER.toString()),
30011
+ Numeric(Number.MAX_SAFE_INTEGER.toString()),
30012
+ { int: true, isJsNumber: true },
30013
+ ],
30014
+ float32: [Numeric("-3.4e38"), Numeric("3.4e38"), { int: false, isJsNumber: true }],
30015
+ float64: [
30016
+ Numeric(`${-Number.MAX_VALUE}`),
30017
+ Numeric(Number.MAX_VALUE.toString()),
30018
+ { int: false, isJsNumber: true },
30019
+ ],
30020
+ });
30021
+
30022
+ var ResolutionKind;
30023
+ (function (ResolutionKind) {
30024
+ ResolutionKind[ResolutionKind["Value"] = 0] = "Value";
30025
+ ResolutionKind[ResolutionKind["Type"] = 1] = "Type";
30026
+ ResolutionKind[ResolutionKind["BaseType"] = 2] = "BaseType";
30027
+ ResolutionKind[ResolutionKind["Constraint"] = 3] = "Constraint";
30028
+ })(ResolutionKind || (ResolutionKind = {}));
30029
+ var Related;
30030
+ (function (Related) {
30031
+ Related[Related["false"] = 0] = "false";
30032
+ Related[Related["true"] = 1] = "true";
30033
+ Related[Related["maybe"] = 2] = "maybe";
30034
+ })(Related || (Related = {}));
30035
+
30036
+ var Eu=Object.create;var $e=Object.defineProperty;var Cu=Object.getOwnPropertyDescriptor;var hu=Object.getOwnPropertyNames;var gu=Object.getPrototypeOf,yu=Object.prototype.hasOwnProperty;var or=e=>{throw TypeError(e)};var Au=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),We=(e,t)=>{for(var r in t)$e(e,r,{get:t[r],enumerable:!0});},ir=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hu(t))!yu.call(e,o)&&o!==r&&$e(e,o,{get:()=>t[o],enumerable:!(n=Cu(t,o))||n.enumerable});return e};var Ae=(e,t,r)=>(r=e!=null?Eu(gu(e)):{},ir($e(r,"default",{value:e,enumerable:!0}),e)),Bu=e=>ir($e({},"__esModule",{value:!0}),e);var _u=(e,t,r)=>t.has(e)||or("Cannot "+r);var sr=(e,t,r)=>t.has(e)?or("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r);var fe=(e,t,r)=>(_u(e,t,"access private method"),r);var ar=ye(yt=>{Object.defineProperty(yt,"__esModule",{value:!0});yt.default=Dr;function Dr(){}Dr.prototype={diff:function(t,r){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u=o.callback;typeof o=="function"&&(u=o,o={}),this.options=o;var i=this;function s(C){return u?(setTimeout(function(){u(void 0,C);},0),!0):C}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var D=r.length,a=t.length,c=1,p=D+a;o.maxEditLength&&(p=Math.min(p,o.maxEditLength));var f=(n=o.timeout)!==null&&n!==void 0?n:1/0,F=Date.now()+f,l=[{oldPos:-1,lastComponent:void 0}],d=this.extractCommon(l[0],r,t,0);if(l[0].oldPos+1>=a&&d+1>=D)return s([{value:this.join(r),count:r.length}]);var m=-1/0,E=1/0;function A(){for(var C=Math.max(m,-c);C<=Math.min(E,c);C+=2){var h=void 0,v=l[C-1],k=l[C+1];v&&(l[C-1]=void 0);var W=!1;if(k){var ge=k.oldPos-C;W=k&&0<=ge&&ge<D;}var gt=v&&v.oldPos+1<a;if(!W&&!gt){l[C]=void 0;continue}if(!gt||W&&v.oldPos+1<k.oldPos?h=i.addToPath(k,!0,void 0,0):h=i.addToPath(v,void 0,!0,1),d=i.extractCommon(h,r,t,C),h.oldPos+1>=a&&d+1>=D)return s(xu(i,h.lastComponent,r,t,i.useLongestToken));l[C]=h,h.oldPos+1>=a&&(E=Math.min(E,C-1)),d+1>=D&&(m=Math.max(m,C+1));}c++;}if(u)(function C(){setTimeout(function(){if(c>p||Date.now()>F)return u();A()||C();},0);})();else for(;c<=p&&Date.now()<=F;){var _=A();if(_)return _}},addToPath:function(t,r,n,o){var u=t.lastComponent;return u&&u.added===r&&u.removed===n?{oldPos:t.oldPos+o,lastComponent:{count:u.count+1,added:r,removed:n,previousComponent:u.previousComponent}}:{oldPos:t.oldPos+o,lastComponent:{count:1,added:r,removed:n,previousComponent:u}}},extractCommon:function(t,r,n,o){for(var u=r.length,i=n.length,s=t.oldPos,D=s-o,a=0;D+1<u&&s+1<i&&this.equals(r[D+1],n[s+1]);)D++,s++,a++;return a&&(t.lastComponent={count:a,previousComponent:t.lastComponent}),t.oldPos=s,D},equals:function(t,r){return this.options.comparator?this.options.comparator(t,r):t===r||this.options.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return t.split("")},join:function(t){return t.join("")}};function xu(e,t,r,n,o){for(var u=[],i;t;)u.push(t),i=t.previousComponent,delete t.previousComponent,t=i;u.reverse();for(var s=0,D=u.length,a=0,c=0;s<D;s++){var p=u[s];if(p.removed){if(p.value=e.join(n.slice(c,c+p.count)),c+=p.count,s&&u[s-1].added){var F=u[s-1];u[s-1]=u[s],u[s]=F;}}else {if(!p.added&&o){var f=r.slice(a,a+p.count);f=f.map(function(d,m){var E=n[c+m];return E.length>d.length?E:d}),p.value=e.join(f);}else p.value=e.join(r.slice(a,a+p.count));a+=p.count,p.added||(c+=p.count);}}var l=u[D-1];return D>1&&typeof l.value=="string"&&(l.added||l.removed)&&e.equals("",l.value)&&(u[D-2].value+=l.value,u.pop()),u}});var cr=ye(_e=>{Object.defineProperty(_e,"__esModule",{value:!0});_e.diffArrays=Ou;_e.arrayDiff=void 0;var ku=wu(ar());function wu(e){return e&&e.__esModule?e:{default:e}}var Be=new ku.default;_e.arrayDiff=Be;Be.tokenize=function(e){return e.slice()};Be.join=Be.removeEmpty=function(e){return e};function Ou(e,t,r){return Be.diff(e,t,r)}});var ot=ye((tD,rn)=>{var tn=new Proxy(String,{get:()=>tn});rn.exports=tn;});var wn={};We(wn,{default:()=>Ao,shouldHighlight:()=>yo});var yo,Ao,On=Au(()=>{yo=()=>!1,Ao=String;});var Tn=ye((Ba,qt)=>{var g=String,Nn=function(){return {isColorSupported:!1,reset:g,bold:g,dim:g,italic:g,underline:g,inverse:g,hidden:g,strikethrough:g,black:g,red:g,green:g,yellow:g,blue:g,magenta:g,cyan:g,white:g,gray:g,bgBlack:g,bgRed:g,bgGreen:g,bgYellow:g,bgBlue:g,bgMagenta:g,bgCyan:g,bgWhite:g}};qt.exports=Nn();qt.exports.createColors=Nn;});var jn=ye(Ct=>{Object.defineProperty(Ct,"__esModule",{value:!0});Ct.codeFrameColumns=Yn;Ct.default=wo;var Sn=(On(),Bu(wn)),In=Bo(Tn(),!0);function Rn(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return (Rn=function(n){return n?r:t})(e)}function Bo(e,t){if(e===null||typeof e!="object"&&typeof e!="function")return {default:e};var r=Rn(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(u!=="default"&&{}.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,r&&r.set(e,n),n}var _o=In.default,vn=(e,t)=>r=>e(t(r)),Jt;function bo(e){if(e){return (Jt)!=null||(Jt=(0, In.createColors)(!0)),Jt}return _o}var Pn=!1;function xo(e){return {gutter:e.gray,marker:vn(e.red,e.bold),message:vn(e.red,e.bold)}}var Ln=/\r\n|[\n\r\u2028\u2029]/;function ko(e,t,r){let n=Object.assign({column:0,line:-1},e.start),o=Object.assign({},n,e.end),{linesAbove:u=2,linesBelow:i=3}=r||{},s=n.line,D=n.column,a=o.line,c=o.column,p=Math.max(s-(u+1),0),f=Math.min(t.length,a+i);s===-1&&(p=0),a===-1&&(f=t.length);let F=a-s,l={};if(F)for(let d=0;d<=F;d++){let m=d+s;if(!D)l[m]=!0;else if(d===0){let E=t[m-1].length;l[m]=[D,E-D+1];}else if(d===F)l[m]=[0,c];else {let E=t[m-d].length;l[m]=[0,E];}}else D===c?D?l[s]=[D,0]:l[s]=!0:l[s]=[D,c-D];return {start:p,end:f,markerLines:l}}function Yn(e,t,r={}){let n=(r.highlightCode||r.forceColor)&&(0, Sn.shouldHighlight)(r),o=bo(r.forceColor),u=xo(o),i=(d,m)=>n?d(m):m,s=e.split(Ln),{start:D,end:a,markerLines:c}=ko(t,s,r),p=t.start&&typeof t.start.column=="number",f=String(a).length,l=(n?(0, Sn.default)(e,r):e).split(Ln,a).slice(D,a).map((d,m)=>{let E=D+1+m,_=` ${` ${E}`.slice(-f)} |`,C=c[E],h=!c[E+1];if(C){let v="";if(Array.isArray(C)){let k=d.slice(0,Math.max(C[0]-1,0)).replace(/[^\t]/g," "),W=C[1]||1;v=[`
30037
+ `,i(u.gutter,_.replace(/\d/g," "))," ",k,i(u.marker,"^").repeat(W)].join(""),h&&r.message&&(v+=" "+i(u.message,r.message));}return [i(u.marker,">"),i(u.gutter,_),d.length>0?` ${d}`:"",v].join("")}else return ` ${i(u.gutter,_)}${d.length>0?` ${d}`:""}`}).join(`
30038
+ `);return r.message&&!p&&(l=`${" ".repeat(f+1)}${r.message}
30039
+ ${l}`),n?o.reset(l):l}function wo(e,t,r,n={}){if(!Pn){Pn=!0;let u="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";{let i=new Error(u);i.name="DeprecationWarning",console.warn(new Error(u));}}return r=Math.max(r,0),Yn(e,{start:{column:r,line:t}},n)}});var ur={};We(ur,{__debug:()=>ai,check:()=>si,doc:()=>tr,format:()=>mu,formatWithCursor:()=>du,getSupportInfo:()=>Di,util:()=>nr,version:()=>Du});var bu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},re=bu;var Qn=Ae(cr());function lr(e){let t=e.indexOf("\r");return t>=0?e.charAt(t+1)===`
30040
+ `?"crlf":"cr":"lf"}function be(e){switch(e){case"cr":return "\r";case"crlf":return `\r
30041
+ `;default:return `
30042
+ `}}function At(e,t){let r;switch(t){case`
30043
+ `:r=/\n/g;break;case"\r":r=/\r/g;break;case`\r
30044
+ `:r=/\r\n/g;break;default:throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function fr(e){return re(!1,e,/\r\n?/g,`
30045
+ `)}var G="string",V="array",z="cursor",P="indent",L="align",I="trim",b="group",N="fill",x="if-break",R="indent-if-break",Y="line-suffix",j="line-suffix-boundary",B="line",T="label",w="break-parent",Ue=new Set([z,P,L,I,b,N,x,R,Y,j,B,T,w]);function Nu(e){if(typeof e=="string")return G;if(Array.isArray(e))return V;if(!e)return;let{type:t}=e;if(Ue.has(t))return t}var K=Nu;var Tu=e=>new Intl.ListFormat("en-US",{type:"disjunction"}).format(e);function Su(e){let t=e===null?"null":typeof e;if(t!=="string"&&t!=="object")return `Unexpected doc '${t}',
30046
+ Expected it to be 'string' or 'object'.`;if(K(e))throw new Error("doc is valid.");let r=Object.prototype.toString.call(e);if(r!=="[object Object]")return `Unexpected doc '${r}'.`;let n=Tu([...Ue].map(o=>`'${o}'`));return `Unexpected doc.type '${e.type}'.
30047
+ Expected it to be ${n}.`}var Bt=class extends Error{name="InvalidDocError";constructor(t){super(Su(t)),this.doc=t;}},Z=Bt;var Fr={};function vu(e,t,r,n){let o=[e];for(;o.length>0;){let u=o.pop();if(u===Fr){r(o.pop());continue}r&&o.push(u,Fr);let i=K(u);if(!i)throw new Z(u);if((t==null?void 0:t(u))!==!1)switch(i){case V:case N:{let s=i===V?u:u.parts;for(let D=s.length,a=D-1;a>=0;--a)o.push(s[a]);break}case x:o.push(u.flatContents,u.breakContents);break;case b:if(n&&u.expandedStates)for(let s=u.expandedStates.length,D=s-1;D>=0;--D)o.push(u.expandedStates[D]);else o.push(u.contents);break;case L:case P:case R:case T:case Y:o.push(u.contents);break;case G:case z:case I:case j:case B:case w:break;default:throw new Z(u)}}}var xe=vu;var pr=()=>{},Ge=pr;function De(e){return {type:P,contents:e}}function se(e,t){return {type:L,contents:t,n:e}}function _t(e,t={}){return Ge(t.expandedStates),{type:b,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function dr(e){return se(Number.NEGATIVE_INFINITY,e)}function mr(e){return se({type:"root"},e)}function Er(e){return se(-1,e)}function Cr(e,t){return _t(e[0],{...t,expandedStates:e})}function ze(e){return {type:N,parts:e}}function hr(e,t="",r={}){return {type:x,breakContents:e,flatContents:t,groupId:r.groupId}}function gr(e,t){return {type:R,contents:e,groupId:t.groupId,negate:t.negate}}function ke(e){return {type:Y,contents:e}}var yr={type:j},Fe={type:w},Ar={type:I},we={type:B,hard:!0},bt={type:B,hard:!0,literal:!0},Ke={type:B},Br={type:B,soft:!0},q=[we,Fe],He=[bt,Fe],Oe={type:z};function Ne(e,t){let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function qe(e,t,r){let n=e;if(t>0){for(let o=0;o<Math.floor(t/r);++o)n=De(n);n=se(t%r,n),n=se(Number.NEGATIVE_INFINITY,n);}return n}function _r(e,t){return e?{type:T,label:e,contents:t}:t}function Q(e){var t;if(!e)return "";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...Q(n));else {let o=Q(n);o!==""&&r.push(o);}return r}return e.type===x?{...e,breakContents:Q(e.breakContents),flatContents:Q(e.flatContents)}:e.type===b?{...e,contents:Q(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(Q)}:e.type===N?{type:"fill",parts:e.parts.map(Q)}:e.contents?{...e,contents:Q(e.contents)}:e}function br(e){let t=Object.create(null),r=new Set;return n(Q(e));function n(u,i,s){var D,a;if(typeof u=="string")return JSON.stringify(u);if(Array.isArray(u)){let c=u.map(n).filter(Boolean);return c.length===1?c[0]:`[${c.join(", ")}]`}if(u.type===B){let c=((D=s==null?void 0:s[i+1])==null?void 0:D.type)===w;return u.literal?c?"literalline":"literallineWithoutBreakParent":u.hard?c?"hardline":"hardlineWithoutBreakParent":u.soft?"softline":"line"}if(u.type===w)return ((a=s==null?void 0:s[i-1])==null?void 0:a.type)===B&&s[i-1].hard?void 0:"breakParent";if(u.type===I)return "trim";if(u.type===P)return "indent("+n(u.contents)+")";if(u.type===L)return u.n===Number.NEGATIVE_INFINITY?"dedentToRoot("+n(u.contents)+")":u.n<0?"dedent("+n(u.contents)+")":u.n.type==="root"?"markAsRoot("+n(u.contents)+")":"align("+JSON.stringify(u.n)+", "+n(u.contents)+")";if(u.type===x)return "ifBreak("+n(u.breakContents)+(u.flatContents?", "+n(u.flatContents):"")+(u.groupId?(u.flatContents?"":', ""')+`, { groupId: ${o(u.groupId)} }`:"")+")";if(u.type===R){let c=[];u.negate&&c.push("negate: true"),u.groupId&&c.push(`groupId: ${o(u.groupId)}`);let p=c.length>0?`, { ${c.join(", ")} }`:"";return `indentIfBreak(${n(u.contents)}${p})`}if(u.type===b){let c=[];u.break&&u.break!=="propagated"&&c.push("shouldBreak: true"),u.id&&c.push(`id: ${o(u.id)}`);let p=c.length>0?`, { ${c.join(", ")} }`:"";return u.expandedStates?`conditionalGroup([${u.expandedStates.map(f=>n(f)).join(",")}]${p})`:`group(${n(u.contents)}${p})`}if(u.type===N)return `fill([${u.parts.map(c=>n(c)).join(", ")}])`;if(u.type===Y)return "lineSuffix("+n(u.contents)+")";if(u.type===j)return "lineSuffixBoundary";if(u.type===T)return `label(${JSON.stringify(u.label)}, ${n(u.contents)})`;throw new Error("Unknown doc type "+u.type)}function o(u){if(typeof u!="symbol")return JSON.stringify(String(u));if(u in t)return t[u];let i=u.description||"symbol";for(let s=0;;s++){let D=i+(s>0?` #${s}`:"");if(!r.has(D))return r.add(D),t[u]=`Symbol.for(${JSON.stringify(D)})`}}}var Pu=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},y=Pu;var xr=()=>/[#*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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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-\uDED7\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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\uDD3D\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\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]|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\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;function kr(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function wr(e){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>=9800&&e<=9811||e===9855||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<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&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===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||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===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<=128727||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<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var Or=e=>!(kr(e)||wr(e));var Lu=/[^\x20-\x7F]/;function Iu(e){if(!e)return 0;if(!Lu.test(e))return e.length;e=e.replace(xr()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=Or(n)?1:2);}return t}var Te=Iu;function ve(e,t){if(typeof e=="string")return t(e);let r=new Map;return n(e);function n(u){if(r.has(u))return r.get(u);let i=o(u);return r.set(u,i),i}function o(u){switch(K(u)){case V:return t(u.map(n));case N:return t({...u,parts:u.parts.map(n)});case x:return t({...u,breakContents:n(u.breakContents),flatContents:n(u.flatContents)});case b:{let{expandedStates:i,contents:s}=u;return i?(i=i.map(n),s=i[0]):s=n(s),t({...u,contents:s,expandedStates:i})}case L:case P:case R:case T:case Y:return t({...u,contents:n(u.contents)});case G:case z:case I:case j:case B:case w:return t(u);default:throw new Z(u)}}}function Je(e,t,r){let n=r,o=!1;function u(i){if(o)return !1;let s=t(i);s!==void 0&&(o=!0,n=s);}return xe(e,u),n}function Ru(e){if(e.type===b&&e.break||e.type===B&&e.hard||e.type===w)return !0}function Sr(e){return Je(e,Ru,!1)}function Nr(e){if(e.length>0){let t=y(!1,e,-1);!t.expandedStates&&!t.break&&(t.break="propagated");}return null}function vr(e){let t=new Set,r=[];function n(u){if(u.type===w&&Nr(r),u.type===b){if(r.push(u),t.has(u))return !1;t.add(u);}}function o(u){u.type===b&&r.pop().break&&Nr(r);}xe(e,n,o,!0);}function Yu(e){return e.type===B&&!e.hard?e.soft?"":" ":e.type===x?e.flatContents:e}function Pr(e){return ve(e,Yu)}function Tr(e){for(e=[...e];e.length>=2&&y(!1,e,-2).type===B&&y(!1,e,-1).type===w;)e.length-=2;if(e.length>0){let t=Se(y(!1,e,-1));e[e.length-1]=t;}return e}function Se(e){switch(K(e)){case P:case R:case b:case Y:case T:{let t=Se(e.contents);return {...e,contents:t}}case x:return {...e,breakContents:Se(e.breakContents),flatContents:Se(e.flatContents)};case N:return {...e,parts:Tr(e.parts)};case V:return Tr(e);case G:return e.replace(/[\n\r]*$/,"");case L:case z:case I:case j:case B:case w:break;default:throw new Z(e)}return e}function Xe(e){return Se(Mu(e))}function ju(e){switch(K(e)){case N:if(e.parts.every(t=>t===""))return "";break;case b:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return "";if(e.contents.type===b&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case L:case P:case R:case Y:if(!e.contents)return "";break;case x:if(!e.flatContents&&!e.breakContents)return "";break;case V:{let t=[];for(let r of e){if(!r)continue;let[n,...o]=Array.isArray(r)?r:[r];typeof n=="string"&&typeof y(!1,t,-1)=="string"?t[t.length-1]+=n:t.push(n),t.push(...o);}return t.length===0?"":t.length===1?t[0]:t}case G:case z:case I:case j:case B:case T:case w:break;default:throw new Z(e)}return e}function Mu(e){return ve(e,t=>ju(t))}function Lr(e,t=He){return ve(e,r=>typeof r=="string"?Ne(t,r.split(`
30048
+ `)):r)}function Vu(e){if(e.type===B)return !0}function Ir(e){return Je(e,Vu,!1)}function Ze(e,t){return e.type===T?{...e,contents:t(e.contents)}:t(e)}var M=Symbol("MODE_BREAK"),J=Symbol("MODE_FLAT"),Pe=Symbol("cursor");function Rr(){return {value:"",length:0,queue:[]}}function $u(e,t){return xt(e,{type:"indent"},t)}function Wu(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Rr():t<0?xt(e,{type:"dedent"},r):t?t.type==="root"?{...e,root:e}:xt(e,{type:typeof t=="string"?"stringAlign":"numberAlign",n:t},r):e}function xt(e,t,r){let n=t.type==="dedent"?e.queue.slice(0,-1):[...e.queue,t],o="",u=0,i=0,s=0;for(let l of n)switch(l.type){case"indent":c(),r.useTabs?D(1):a(r.tabWidth);break;case"stringAlign":c(),o+=l.n,u+=l.n.length;break;case"numberAlign":i+=1,s+=l.n;break;default:throw new Error(`Unexpected type '${l.type}'`)}return f(),{...e,value:o,length:u,queue:n};function D(l){o+=" ".repeat(l),u+=r.tabWidth*l;}function a(l){o+=" ".repeat(l),u+=l;}function c(){r.useTabs?p():f();}function p(){i>0&&D(i),F();}function f(){s>0&&a(s),F();}function F(){i=0,s=0;}}function kt(e){let t=0,r=0,n=e.length;e:for(;n--;){let o=e[n];if(o===Pe){r++;continue}for(let u=o.length-1;u>=0;u--){let i=o[u];if(i===" "||i===" ")t++;else {e[n]=o.slice(0,u+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(Pe);return t}function Qe(e,t,r,n,o,u){if(r===Number.POSITIVE_INFINITY)return !0;let i=t.length,s=[e],D=[];for(;r>=0;){if(s.length===0){if(i===0)return !0;s.push(t[--i]);continue}let{mode:a,doc:c}=s.pop(),p=K(c);switch(p){case G:D.push(c),r-=Te(c);break;case V:case N:{let f=p===V?c:c.parts;for(let F=f.length-1;F>=0;F--)s.push({mode:a,doc:f[F]});break}case P:case L:case R:case T:s.push({mode:a,doc:c.contents});break;case I:r+=kt(D);break;case b:{if(u&&c.break)return !1;let f=c.break?M:a,F=c.expandedStates&&f===M?y(!1,c.expandedStates,-1):c.contents;s.push({mode:f,doc:F});break}case x:{let F=(c.groupId?o[c.groupId]||J:a)===M?c.breakContents:c.flatContents;F&&s.push({mode:a,doc:F});break}case B:if(a===M||c.hard)return !0;c.soft||(D.push(" "),r--);break;case Y:n=!0;break;case j:if(n)return !1;break}}return !1}function pe(e,t){let r={},n=t.printWidth,o=be(t.endOfLine),u=0,i=[{ind:Rr(),mode:M,doc:e}],s=[],D=!1,a=[],c=0;for(vr(e);i.length>0;){let{ind:f,mode:F,doc:l}=i.pop();switch(K(l)){case G:{let d=o!==`
30049
+ `?re(!1,l,`
30050
+ `,o):l;s.push(d),i.length>0&&(u+=Te(d));break}case V:for(let d=l.length-1;d>=0;d--)i.push({ind:f,mode:F,doc:l[d]});break;case z:if(c>=2)throw new Error("There are too many 'cursor' in doc.");s.push(Pe),c++;break;case P:i.push({ind:$u(f,t),mode:F,doc:l.contents});break;case L:i.push({ind:Wu(f,l.n,t),mode:F,doc:l.contents});break;case I:u-=kt(s);break;case b:switch(F){case J:if(!D){i.push({ind:f,mode:l.break?M:J,doc:l.contents});break}case M:{D=!1;let d={ind:f,mode:J,doc:l.contents},m=n-u,E=a.length>0;if(!l.break&&Qe(d,i,m,E,r))i.push(d);else if(l.expandedStates){let A=y(!1,l.expandedStates,-1);if(l.break){i.push({ind:f,mode:M,doc:A});break}else for(let _=1;_<l.expandedStates.length+1;_++)if(_>=l.expandedStates.length){i.push({ind:f,mode:M,doc:A});break}else {let C=l.expandedStates[_],h={ind:f,mode:J,doc:C};if(Qe(h,i,m,E,r)){i.push(h);break}}}else i.push({ind:f,mode:M,doc:l.contents});break}}l.id&&(r[l.id]=y(!1,i,-1).mode);break;case N:{let d=n-u,{parts:m}=l;if(m.length===0)break;let[E,A]=m,_={ind:f,mode:J,doc:E},C={ind:f,mode:M,doc:E},h=Qe(_,[],d,a.length>0,r,!0);if(m.length===1){h?i.push(_):i.push(C);break}let v={ind:f,mode:J,doc:A},k={ind:f,mode:M,doc:A};if(m.length===2){h?i.push(v,_):i.push(k,C);break}m.splice(0,2);let W={ind:f,mode:F,doc:ze(m)},ge=m[0];Qe({ind:f,mode:J,doc:[E,A,ge]},[],d,a.length>0,r,!0)?i.push(W,v,_):h?i.push(W,k,_):i.push(W,k,C);break}case x:case R:{let d=l.groupId?r[l.groupId]:F;if(d===M){let m=l.type===x?l.breakContents:l.negate?l.contents:De(l.contents);m&&i.push({ind:f,mode:F,doc:m});}if(d===J){let m=l.type===x?l.flatContents:l.negate?De(l.contents):l.contents;m&&i.push({ind:f,mode:F,doc:m});}break}case Y:a.push({ind:f,mode:F,doc:l.contents});break;case j:a.length>0&&i.push({ind:f,mode:F,doc:we});break;case B:switch(F){case J:if(l.hard)D=!0;else {l.soft||(s.push(" "),u+=1);break}case M:if(a.length>0){i.push({ind:f,mode:F,doc:l},...a.reverse()),a.length=0;break}l.literal?f.root?(s.push(o,f.root.value),u=f.root.length):(s.push(o),u=0):(u-=kt(s),s.push(o+f.value),u=f.length);break}break;case T:i.push({ind:f,mode:F,doc:l.contents});break;case w:break;default:throw new Z(l)}i.length===0&&a.length>0&&(i.push(...a.reverse()),a.length=0);}let p=s.indexOf(Pe);if(p!==-1){let f=s.indexOf(Pe,p+1),F=s.slice(0,p).join(""),l=s.slice(p+1,f).join(""),d=s.slice(f+1).join("");return {formatted:F+l+d,cursorNodeStart:F.length,cursorNodeText:l}}return {formatted:s.join("")}}function Uu(e,t,r=0){let n=0;for(let o=r;o<e.length;++o)e[o]===" "?n=n+t-n%t:n++;return n}var de=Uu;var ee,Ot,et,wt=class{constructor(t){sr(this,ee);this.stack=[t];}get key(){let{stack:t,siblings:r}=this;return y(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=y(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return [...fe(this,ee,et).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?y(!1,t,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(t=0){let r=fe(this,ee,Ot).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{return t(this)}finally{n.length=o;}}callParent(t,r=0){let n=fe(this,ee,Ot).call(this,r+1),o=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...o);}}each(t,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{for(let i=0;i<u.length;++i)n.push(i,u[i]),t(this,i,u),n.length-=2;}finally{n.length=o;}}map(t,...r){let n=[];return this.each((o,u,i)=>{n[u]=t(o,u,i);},...r),n}match(...t){let r=this.stack.length-1,n=null,o=this.stack[r--];for(let u of t){if(o===void 0)return !1;let i=null;if(typeof n=="number"&&(i=n,n=this.stack[r--],o=this.stack[r--]),u&&!u(o,n,i))return !1;n=this.stack[r--],o=this.stack[r--];}return !0}findAncestor(t){for(let r of fe(this,ee,et).call(this))if(t(r))return r}hasAncestor(t){for(let r of fe(this,ee,et).call(this))if(t(r))return !0;return !1}};ee=new WeakSet,Ot=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return -1},et=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n);}};var Yr=wt;var jr=new Proxy(()=>{},{get:()=>jr}),Le=jr;function Gu(e){return e!==null&&typeof e=="object"}var Mr=Gu;function*Nt(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,o=u=>Mr(u)&&n(u);for(let u of r(e)){let i=e[u];if(Array.isArray(i))for(let s of i)o(s)&&(yield s);else o(i)&&(yield i);}}function*Vr(e,t){let r=[e];for(let n=0;n<r.length;n++){let o=r[n];for(let u of Nt(o,t))yield u,r.push(u);}}function me(e){return (t,r,n)=>{let o=!!(n!=null&&n.backwards);if(r===!1)return !1;let{length:u}=t,i=r;for(;i>=0&&i<u;){let s=t.charAt(i);if(e instanceof RegExp){if(!e.test(s))return i}else if(!e.includes(s))return i;o?i--:i++;}return i===-1||i===u?i:!1}}var $r=me(/\s/),S=me(" "),tt=me(",; "),rt=me(/[^\n\r]/);function zu(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return !1;let o=e.charAt(t);if(n){if(e.charAt(t-1)==="\r"&&o===`
30051
+ `)return t-2;if(o===`
30052
+ `||o==="\r"||o==="\u2028"||o==="\u2029")return t-1}else {if(o==="\r"&&e.charAt(t+1)===`
30053
+ `)return t+2;if(o===`
30054
+ `||o==="\r"||o==="\u2028"||o==="\u2029")return t+1}return t}var $=zu;function Ku(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),o=$(e,n,r);return n!==o}var U=Ku;function Hu(e){return Array.isArray(e)&&e.length>0}var Tt=Hu;var Wr=new Set(["tokens","comments","parent","enclosingNode","precedingNode","followingNode"]),qu=e=>Object.keys(e).filter(t=>!Wr.has(t));function Ju(e){return e?t=>e(t,Wr):qu}var X=Ju;function Xu(e){let t=e.type||e.kind||"(unknown type)",r=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||"");return r.length>20&&(r=r.slice(0,19)+"\u2026"),t+(r?" "+r:"")}function St(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=Xu(e);}function ne(e,t){t.leading=!0,t.trailing=!1,St(e,t);}function te(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),St(e,t);}function ue(e,t){t.leading=!1,t.trailing=!0,St(e,t);}var vt=new WeakMap;function nt(e,t){if(vt.has(e))return vt.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:o},locStart:u,locEnd:i}=t;if(!n)return [];let s=((r==null?void 0:r(e,t))??[...Nt(e,{getVisitorKeys:X(o)})]).flatMap(D=>n(D)?[D]:nt(D,t));return s.sort((D,a)=>u(D)-u(a)||i(D)-i(a)),vt.set(e,s),s}function Gr(e,t,r,n){let{locStart:o,locEnd:u}=r,i=o(t),s=u(t),D=nt(e,r),a,c,p=0,f=D.length;for(;p<f;){let F=p+f>>1,l=D[F],d=o(l),m=u(l);if(d<=i&&s<=m)return Gr(l,t,r,l);if(m<=i){a=l,p=F+1;continue}if(s<=d){c=l,f=F;continue}throw new Error("Comment location overlaps with node location")}if((n==null?void 0:n.type)==="TemplateLiteral"){let{quasis:F}=n,l=Lt(F,t,r);a&&Lt(F,a,r)!==l&&(a=null),c&&Lt(F,c,r)!==l&&(c=null);}return {enclosingNode:n,precedingNode:a,followingNode:c}}var Pt=()=>!1;function zr(e,t){let{comments:r}=e;if(delete e.comments,!Tt(r)||!t.printer.canAttachComment)return;let n=[],{locStart:o,locEnd:u,printer:{experimentalFeatures:{avoidAstMutation:i=!1}={},handleComments:s={}},originalText:D}=t,{ownLine:a=Pt,endOfLine:c=Pt,remaining:p=Pt}=s,f=r.map((F,l)=>({...Gr(e,F,t),comment:F,text:D,options:t,ast:e,isLastComment:r.length-1===l}));for(let[F,l]of f.entries()){let{comment:d,precedingNode:m,enclosingNode:E,followingNode:A,text:_,options:C,ast:h,isLastComment:v}=l;if(C.parser==="json"||C.parser==="json5"||C.parser==="jsonc"||C.parser==="__js_expression"||C.parser==="__ts_expression"||C.parser==="__vue_expression"||C.parser==="__vue_ts_expression"){if(o(d)-o(h)<=0){ne(h,d);continue}if(u(d)-u(h)>=0){ue(h,d);continue}}let k;if(i?k=[l]:(d.enclosingNode=E,d.precedingNode=m,d.followingNode=A,k=[d,_,C,h,v]),Zu(_,C,f,F))d.placement="ownLine",a(...k)||(A?ne(A,d):m?ue(m,d):E?te(E,d):te(h,d));else if(Qu(_,C,f,F))d.placement="endOfLine",c(...k)||(m?ue(m,d):A?ne(A,d):E?te(E,d):te(h,d));else if(d.placement="remaining",!p(...k))if(m&&A){let W=n.length;W>0&&n[W-1].followingNode!==A&&Ur(n,C),n.push(l);}else m?ue(m,d):A?ne(A,d):E?te(E,d):te(h,d);}if(Ur(n,t),!i)for(let F of r)delete F.precedingNode,delete F.enclosingNode,delete F.followingNode;}var Kr=e=>!/[\S\n\u2028\u2029]/.test(e);function Zu(e,t,r,n){let{comment:o,precedingNode:u}=r[n],{locStart:i,locEnd:s}=t,D=i(o);if(u)for(let a=n-1;a>=0;a--){let{comment:c,precedingNode:p}=r[a];if(p!==u||!Kr(e.slice(s(c),D)))break;D=i(c);}return U(e,D,{backwards:!0})}function Qu(e,t,r,n){let{comment:o,followingNode:u}=r[n],{locStart:i,locEnd:s}=t,D=s(o);if(u)for(let a=n+1;a<r.length;a++){let{comment:c,followingNode:p}=r[a];if(p!==u||!Kr(e.slice(D,i(c))))break;D=s(c);}return U(e,D)}function Ur(e,t){var s,D;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:o}=e[0],u=t.locStart(o),i;for(i=r;i>0;--i){let{comment:a,precedingNode:c,followingNode:p}=e[i-1];Le.strictEqual(c,n),Le.strictEqual(p,o);let f=t.originalText.slice(t.locEnd(a),u);if(((D=(s=t.printer).isGap)==null?void 0:D.call(s,f,t))??/^[\s(]*$/.test(f))u=t.locStart(a);else break}for(let[a,{comment:c}]of e.entries())a<i?ue(n,c):ne(o,c);for(let a of [n,o])a.comments&&a.comments.length>1&&a.comments.sort((c,p)=>t.locStart(c)-t.locStart(p));e.length=0;}function Lt(e,t,r){let n=r.locStart(t)-1;for(let o=1;o<e.length;++o)if(n<r.locStart(e[o]))return o-1;return 0}function eo(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=$(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=$(e,r,{backwards:!0});return r!==n}var Ie=eo;function Hr(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function to(e,t){var c;let r=e.node,n=[Hr(e,t)],{printer:o,originalText:u,locStart:i,locEnd:s}=t;if((c=o.isBlockComment)==null?void 0:c.call(o,r)){let p=U(u,s(r))?U(u,i(r),{backwards:!0})?q:Ke:" ";n.push(p);}else n.push(q);let a=$(u,S(u,s(r)));return a!==!1&&U(u,a)&&n.push(q),n}function ro(e,t,r){var a;let n=e.node,o=Hr(e,t),{printer:u,originalText:i,locStart:s}=t,D=(a=u.isBlockComment)==null?void 0:a.call(u,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||U(i,s(n),{backwards:!0})){let c=Ie(i,s(n));return {doc:ke([q,c?q:"",o]),isBlock:D,hasLineSuffix:!0}}return !D||r!=null&&r.hasLineSuffix?{doc:[ke([" ",o]),Fe],isBlock:D,hasLineSuffix:!0}:{doc:[" ",o],isBlock:D,hasLineSuffix:!1}}function no(e,t){let r=e.node;if(!r)return {};let n=t[Symbol.for("printedComments")];if((r.comments||[]).filter(D=>!n.has(D)).length===0)return {leading:"",trailing:""};let u=[],i=[],s;return e.each(()=>{let D=e.node;if(n!=null&&n.has(D))return;let{leading:a,trailing:c}=D;a?u.push(to(e,t)):c&&(s=ro(e,t,s),i.push(s.doc));},"comments"),{leading:u,trailing:i}}function qr(e,t,r){let{leading:n,trailing:o}=no(e,r);return !n&&!o?t:Ze(t,u=>[n,u,o])}function Jr(e){let{[Symbol.for("comments")]:t,[Symbol.for("printedComments")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment "'+n.value.trim()+'" was not printed. Please report this error!');delete n.printed;}}var Re=class extends Error{name="ConfigError"},Ye=class extends Error{name="UndefinedParserError"};var Zr={cursorOffset:{category:"Special",type:"int",default:-1,range:{start:-1,end:1/0,step:1},description:"Print (to stderr) where a cursor at the given position would move to after formatting.",cliCategory:"Editor"},endOfLine:{category:"Global",type:"choice",default:"lf",description:"Which end of line characters to apply.",choices:[{value:"lf",description:"Line Feed only (\\n), common on Linux and macOS as well as inside git repos"},{value:"crlf",description:"Carriage Return + Line Feed characters (\\r\\n), common on Windows"},{value:"cr",description:"Carriage Return character only (\\r), used very rarely"},{value:"auto",description:`Maintain existing
30055
+ (mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:"Special",type:"path",description:"Specify the input filepath. This will be used to do parser inference.",cliName:"stdin-filepath",cliCategory:"Other",cliDescription:"Path to the file to pretend that stdin comes from."},insertPragma:{category:"Special",type:"boolean",default:!1,description:"Insert @format pragma into file's first docblock comment.",cliCategory:"Other"},parser:{category:"Global",type:"choice",default:void 0,description:"Which parser to use.",exception:e=>typeof e=="string"||typeof e=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",description:"JavaScript"},{value:"babel-flow",description:"Flow"},{value:"babel-ts",description:"TypeScript"},{value:"typescript",description:"TypeScript"},{value:"acorn",description:"JavaScript"},{value:"espree",description:"JavaScript"},{value:"meriyah",description:"JavaScript"},{value:"css",description:"CSS"},{value:"less",description:"Less"},{value:"scss",description:"SCSS"},{value:"json",description:"JSON"},{value:"json5",description:"JSON5"},{value:"jsonc",description:"JSON with Comments"},{value:"json-stringify",description:"JSON.stringify"},{value:"graphql",description:"GraphQL"},{value:"markdown",description:"Markdown"},{value:"mdx",description:"MDX"},{value:"vue",description:"Vue"},{value:"yaml",description:"YAML"},{value:"glimmer",description:"Ember / Handlebars"},{value:"html",description:"HTML"},{value:"angular",description:"Angular"},{value:"lwc",description:"Lightning Web Components"}]},plugins:{type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>typeof e=="string"||typeof e=="object",cliName:"plugin",cliCategory:"Config"},printWidth:{category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:1/0,step:1}},rangeEnd:{category:"Special",type:"int",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).
30056
+ The range will extend forwards to the end of the selected statement.`,cliCategory:"Editor"},rangeStart:{category:"Special",type:"int",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.
30057
+ The range will extend backwards to the start of the first line containing the selected statement.`,cliCategory:"Editor"},requirePragma:{category:"Special",type:"boolean",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment
30058
+ in order for it to be formatted.`,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:1/0,step:1}},useTabs:{category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{category:"Global",type:"choice",default:"auto",description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};function ut({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(o=>o.languages??[]),n=[];for(let o of io(Object.assign({},...e.map(({options:u})=>u),Zr)))!t&&o.deprecated||(Array.isArray(o.choices)&&(t||(o.choices=o.choices.filter(u=>!u.deprecated)),o.name==="parser"&&(o.choices=[...o.choices,...oo(o.choices,r,e)])),o.pluginDefaults=Object.fromEntries(e.filter(u=>{var i;return ((i=u.defaultOptions)==null?void 0:i[o.name])!==void 0}).map(u=>[u.name,u.defaultOptions[o.name]])),n.push(o));return {languages:r,options:n}}function*oo(e,t,r){let n=new Set(e.map(o=>o.value));for(let o of t)if(o.parsers){for(let u of o.parsers)if(!n.has(u)){n.add(u);let i=r.find(D=>D.parsers&&Object.prototype.hasOwnProperty.call(D.parsers,u)),s=o.name;i!=null&&i.name&&(s+=` (plugin: ${i.name})`),yield {value:u,description:s};}}}function io(e){let t=[];for(let[r,n]of Object.entries(e)){let o={name:r,...n};Array.isArray(o.default)&&(o.default=y(!1,o.default,-1).value),t.push(o);}return t}var so=e=>String(e).split(/[/\\]/).pop();function Qr(e,t){if(!t)return;let r=so(t).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(o=>o.toLowerCase()===r))??e.find(({extensions:n})=>n==null?void 0:n.some(o=>r.endsWith(o)))}function Do(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function ao(e,t){let r=e.plugins.flatMap(o=>o.languages??[]),n=Do(r,t.language)??Qr(r,t.physicalFile)??Qr(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var en=ao;var oe={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(r=>oe.value(r)).join(", ")}]`;let t=Object.keys(e);return t.length===0?"{}":`{ ${t.map(r=>`${oe.key(r)}: ${oe.value(e[r])}`).join(", ")} }`},pair:({key:e,value:t})=>oe.value({[e]:t})};var It=Ae(ot()),nn=(e,t,{descriptor:r})=>{let n=[`${It.default.yellow(typeof e=="string"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${It.default.blue(typeof t=="string"?r.key(t):r.pair(t))}`),n.join("; ")+"."};var ae=Ae(ot());var it=Symbol.for("vnopts.VALUE_NOT_EXIST"),Ee=Symbol.for("vnopts.VALUE_UNCHANGED");var un=" ".repeat(2),sn=(e,t,r)=>{let{text:n,list:o}=r.normalizeExpectedResult(r.schemas[e].expected(r)),u=[];return n&&u.push(on(e,t,n,r.descriptor)),o&&u.push([on(e,t,o.title,r.descriptor)].concat(o.values.map(i=>Dn(i,r.loggerPrintWidth))).join(`
30059
+ `)),an(u,r.loggerPrintWidth)};function on(e,t,r,n){return [`Invalid ${ae.default.red(n.key(e))} value.`,`Expected ${ae.default.blue(r)},`,`but received ${t===it?ae.default.gray("nothing"):ae.default.red(n.value(t))}.`].join(" ")}function Dn({text:e,list:t},r){let n=[];return e&&n.push(`- ${ae.default.blue(e)}`),t&&n.push([`- ${ae.default.blue(t.title)}:`].concat(t.values.map(o=>Dn(o,r-un.length).replace(/^|\n/g,`$&${un}`))).join(`
30060
+ `)),an(n,r)}function an(e,t){if(e.length===1)return e[0];let[r,n]=e,[o,u]=e.map(i=>i.split(`
30061
+ `,1)[0].length);return o>t&&o>u?n:r}var jt=Ae(ot());var Rt=[],cn=[];function Yt(e,t){if(e===t)return 0;let r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let u=0;for(;u<n&&e.charCodeAt(u)===t.charCodeAt(u);)u++;if(n-=u,o-=u,n===0)return o;let i,s,D,a,c=0,p=0;for(;c<n;)cn[c]=e.charCodeAt(u+c),Rt[c]=++c;for(;p<o;)for(i=t.charCodeAt(u+p),D=p++,s=p,c=0;c<n;c++)a=i===cn[c]?D:D+1,D=Rt[c],s=Rt[c]=D>s?a>s?s+1:a:a>D?D+1:a;return s}var st=(e,t,{descriptor:r,logger:n,schemas:o})=>{let u=[`Ignored unknown option ${jt.default.yellow(r.pair({key:e,value:t}))}.`],i=Object.keys(o).sort().find(s=>Yt(e,s)<3);i&&u.push(`Did you mean ${jt.default.blue(r.key(i))}?`),n.warn(u.join(" "));};var co=["default","expected","validate","deprecated","forward","redirect","overlap","preprocess","postprocess"];function lo(e,t){let r=new e(t),n=Object.create(r);for(let o of co)o in t&&(n[o]=fo(t[o],r,O.prototype[o].length));return n}var O=class{static create(t){return lo(this,t)}constructor(t){this.name=t.name;}default(t){}expected(t){return "nothing"}validate(t,r){return !1}deprecated(t,r){return !1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return Ee}};function fo(e,t,r){return typeof e=="function"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}var Dt=class extends O{constructor(t){super(t),this._sourceName=t.sourceName;}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};var at$1=class at extends O{expected(){return "anything"}validate(){return !0}};var ct=class extends O{constructor({valueSchema:t,name:r=t.name,...n}){super({...n,name:r}),this._valueSchema=t;}expected(t){let{text:r,list:n}=t.normalizeExpectedResult(this._valueSchema.expected(t));return {text:r&&`an array of ${r}`,list:n&&{title:"an array of the following values",values:[{list:n}]}}}validate(t,r){if(!Array.isArray(t))return !1;let n=[];for(let o of t){let u=r.normalizeValidateResult(this._valueSchema.validate(o,r),o);u!==!0&&n.push(u.value);}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let o of t){let u=r.normalizeDeprecatedResult(this._valueSchema.deprecated(o,r),o);u!==!1&&n.push(...u.map(({value:i})=>({value:[i]})));}return n}forward(t,r){let n=[];for(let o of t){let u=r.normalizeForwardResult(this._valueSchema.forward(o,r),o);n.push(...u.map(ln));}return n}redirect(t,r){let n=[],o=[];for(let u of t){let i=r.normalizeRedirectResult(this._valueSchema.redirect(u,r),u);"remain"in i&&n.push(i.remain),o.push(...i.redirect.map(ln));}return n.length===0?{redirect:o}:{redirect:o,remain:n}}overlap(t,r){return t.concat(r)}};function ln({from:e,to:t}){return {from:[e],to:t}}var lt=class extends O{expected(){return "true or false"}validate(t){return typeof t=="boolean"}};function Fn(e,t){let r=Object.create(null);for(let n of e){let o=n[t];if(r[o])throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);r[o]=n;}return r}function pn(e,t){let r=new Map;for(let n of e){let o=n[t];if(r.has(o))throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);r.set(o,n);}return r}function dn(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}function mn(e,t){let r=[],n=[];for(let o of e)t(o)?r.push(o):n.push(o);return [r,n]}function En(e){return e===Math.floor(e)}function Cn(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,o=["undefined","object","boolean","number","string"];return r!==n?o.indexOf(r)-o.indexOf(n):r!=="string"?Number(e)-Number(t):e.localeCompare(t)}function hn(e){return (...t)=>{let r=e(...t);return typeof r=="string"?new Error(r):r}}function Mt(e){return e===void 0?{}:e}function Vt(e){if(typeof e=="string")return {text:e};let{text:t,list:r}=e;return Fo((t||r)!==void 0,"Unexpected `expected` result, there should be at least one field."),r?{text:t,list:{title:r.title,values:r.values.map(Vt)}}:{text:t}}function $t(e,t){return e===!0?!0:e===!1?{value:t}:e}function Wt(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:"value"in e?[e]:e.length===0?!1:e}function fn(e,t){return typeof e=="string"||"key"in e?{from:t,to:e}:"from"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}function ft(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>fn(r,t)):[fn(e,t)]}function Ut(e,t){let r=ft(typeof e=="object"&&"redirect"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e=="object"&&"remain"in e?{remain:e.remain,redirect:r}:{redirect:r}}function Fo(e,t){if(!e)throw new Error(t)}var Ft=class extends O{constructor(t){super(t),this._choices=pn(t.choices.map(r=>r&&typeof r=="object"?r:{value:r}),"value");}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(i=>this._choices.get(i)).filter(({hidden:i})=>!i).map(i=>i.value).sort(Cn).map(t.value),n=r.slice(0,-2),o=r.slice(-2);return {text:n.concat(o.join(" or ")).join(", "),list:{title:"one of the following values",values:r}}}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};var pt=class extends O{expected(){return "a number"}validate(t,r){return typeof t=="number"}};var dt=class extends pt{expected(){return "an integer"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&En(t)}};var je=class extends O{expected(){return "a string"}validate(t){return typeof t=="string"}};var gn=oe,yn=st,An=sn,Bn=nn;var mt=class{constructor(t,r){let{logger:n=console,loggerPrintWidth:o=80,descriptor:u=gn,unknown:i=yn,invalid:s=An,deprecated:D=Bn,missing:a=()=>!1,required:c=()=>!1,preprocess:p=F=>F,postprocess:f=()=>Ee}=r||{};this._utils={descriptor:u,logger:n||{warn:()=>{}},loggerPrintWidth:o,schemas:Fn(t,"name"),normalizeDefaultResult:Mt,normalizeExpectedResult:Vt,normalizeDeprecatedResult:Wt,normalizeForwardResult:ft,normalizeRedirectResult:Ut,normalizeValidateResult:$t},this._unknownHandler=i,this._invalidHandler=hn(s),this._deprecatedHandler=D,this._identifyMissing=(F,l)=>!(F in l)||a(F,l),this._identifyRequired=c,this._preprocess=p,this._postprocess=f,this.cleanHistory();}cleanHistory(){this._hasDeprecationWarned=dn();}normalize(t){let r={},o=[this._preprocess(t,this._utils)],u=()=>{for(;o.length!==0;){let i=o.shift(),s=this._applyNormalization(i,r);o.push(...s);}};u();for(let i of Object.keys(this._utils.schemas)){let s=this._utils.schemas[i];if(!(i in r)){let D=Mt(s.default(this._utils));"value"in D&&o.push({[i]:D.value});}}u();for(let i of Object.keys(this._utils.schemas)){if(!(i in r))continue;let s=this._utils.schemas[i],D=r[i],a=s.postprocess(D,this._utils);a!==Ee&&(this._applyValidation(a,i,s),r[i]=a);}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(t,r){let n=[],{knownKeys:o,unknownKeys:u}=this._partitionOptionKeys(t);for(let i of o){let s=this._utils.schemas[i],D=s.preprocess(t[i],this._utils);this._applyValidation(D,i,s);let a=({from:F,to:l})=>{n.push(typeof l=="string"?{[l]:F}:{[l.key]:l.value});},c=({value:F,redirectTo:l})=>{let d=Wt(s.deprecated(F,this._utils),D,!0);if(d!==!1)if(d===!0)this._hasDeprecationWarned(i)||this._utils.logger.warn(this._deprecatedHandler(i,l,this._utils));else for(let{value:m}of d){let E={key:i,value:m};if(!this._hasDeprecationWarned(E)){let A=typeof l=="string"?{key:l,value:m}:l;this._utils.logger.warn(this._deprecatedHandler(E,A,this._utils));}}};ft(s.forward(D,this._utils),D).forEach(a);let f=Ut(s.redirect(D,this._utils),D);if(f.redirect.forEach(a),"remain"in f){let F=f.remain;r[i]=i in r?s.overlap(r[i],F,this._utils):F,c({value:F});}for(let{from:F,to:l}of f.redirect)c({value:F,redirectTo:l});}for(let i of u){let s=t[i];this._applyUnknownHandler(i,s,r,(D,a)=>{n.push({[D]:a});});}return n}_applyRequiredCheck(t){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,t)&&this._identifyRequired(r))throw this._invalidHandler(r,it,this._utils)}_partitionOptionKeys(t){let[r,n]=mn(Object.keys(t).filter(o=>!this._identifyMissing(o,t)),o=>o in this._utils.schemas);return {knownKeys:r,unknownKeys:n}}_applyValidation(t,r,n){let o=$t(n.validate(t,this._utils),t);if(o!==!0)throw this._invalidHandler(r,o.value,this._utils)}_applyUnknownHandler(t,r,n,o){let u=this._unknownHandler(t,r,this._utils);if(u)for(let i of Object.keys(u)){if(this._identifyMissing(i,u))continue;let s=u[i];i in this._utils.schemas?o(i,s):n[i]=s;}}_applyPostprocess(t){let r=this._postprocess(t,this._utils);if(r!==Ee){if(r.delete)for(let n of r.delete)delete t[n];if(r.override){let{knownKeys:n,unknownKeys:o}=this._partitionOptionKeys(r.override);for(let u of n){let i=r.override[u];this._applyValidation(i,u,this._utils.schemas[u]),t[u]=i;}for(let u of o){let i=r.override[u];this._applyUnknownHandler(u,i,t,(s,D)=>{let a=this._utils.schemas[s];this._applyValidation(D,s,a),t[s]=D;});}}}}};var Gt;function mo(e,t,{logger:r=!1,isCLI:n=!1,passThrough:o=!1,FlagSchema:u,descriptor:i}={}){if(n){if(!u)throw new Error("'FlagSchema' option is required.");if(!i)throw new Error("'descriptor' option is required.")}else i=oe;let s=o?Array.isArray(o)?(f,F)=>o.includes(f)?{[f]:F}:void 0:(f,F)=>({[f]:F}):(f,F,l)=>{let{_:d,...m}=l.schemas;return st(f,F,{...l,schemas:m})},D=Eo(t,{isCLI:n,FlagSchema:u}),a=new mt(D,{logger:r,unknown:s,descriptor:i}),c=r!==!1;c&&Gt&&(a._hasDeprecationWarned=Gt);let p=a.normalize(e);return c&&(Gt=a._hasDeprecationWarned),p}function Eo(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(at$1.create({name:"_"}));for(let o of e)n.push(Co(o,{isCLI:t,optionInfos:e,FlagSchema:r})),o.alias&&t&&n.push(Dt.create({name:o.alias,sourceName:o.name}));return n}function Co(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:o}=e,u={name:o},i,s={};switch(e.type){case"int":i=dt,t&&(u.preprocess=Number);break;case"string":i=je;break;case"choice":i=Ft,u.choices=e.choices.map(D=>D!=null&&D.redirect?{...D,redirect:{to:{key:e.name,value:D.redirect}}}:D);break;case"boolean":i=lt;break;case"flag":i=n,u.flags=r.flatMap(D=>[D.alias,D.description&&D.name,D.oppositeDescription&&`no-${D.name}`].filter(Boolean));break;case"path":i=je;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?u.validate=(D,a,c)=>e.exception(D)||a.validate(D,c):u.validate=(D,a,c)=>D===void 0||a.validate(D,c),e.redirect&&(s.redirect=D=>D?{to:typeof e.redirect=="string"?e.redirect:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let D=u.preprocess||(a=>a);u.preprocess=(a,c,p)=>c.preprocess(D(Array.isArray(a)?y(!1,a,-1):a),p);}return e.array?ct.create({...t?{preprocess:D=>Array.isArray(D)?D:[D]}:{},...s,valueSchema:i.create(u)}):i.create({...u,...s})}var _n=mo;var ho=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let o=t[n];if(r(o,n,t))return o}}},zt=ho;function Kt(e,t){if(!t)throw new Error("parserName is required.");let r=zt(!1,e,o=>o.parsers&&Object.prototype.hasOwnProperty.call(o.parsers,t));if(r)return r;let n=`Couldn't resolve parser "${t}".`;throw n+=" Plugins must be explicitly added to the standalone bundle.",new Re(n)}function bn(e,t){if(!t)throw new Error("astFormat is required.");let r=zt(!1,e,o=>o.printers&&Object.prototype.hasOwnProperty.call(o.printers,t));if(r)return r;let n=`Couldn't find plugin for AST format "${t}".`;throw n+=" Plugins must be explicitly added to the standalone bundle.",new Re(n)}function Et({plugins:e,parser:t}){let r=Kt(e,t);return Ht(r,t)}function Ht(e,t){let r=e.parsers[t];return typeof r=="function"?r():r}function xn(e,t){let r=e.printers[t];return typeof r=="function"?r():r}var kn={astFormat:"estree",printer:{},originalText:void 0,locStart:null,locEnd:null};async function go(e,t={}){var p;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=en(r,{physicalFile:r.filepath}),!r.parser)throw new Ye(`No parser could be inferred for file "${r.filepath}".`)}else throw new Ye("No parser and no file path given, couldn't infer a parser.");let n=ut({plugins:e.plugins,showDeprecated:!0}).options,o={...kn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},u=Kt(r.plugins,r.parser),i=await Ht(u,r.parser);r.astFormat=i.astFormat,r.locEnd=i.locEnd,r.locStart=i.locStart;let s=(p=u.printers)!=null&&p[i.astFormat]?u:bn(r.plugins,i.astFormat),D=await xn(s,i.astFormat);r.printer=D;let a=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},c={...o,...a};for(let[f,F]of Object.entries(c))(r[f]===null||r[f]===void 0)&&(r[f]=F);return r.parser==="json"&&(r.trailingComma="none"),_n(r,n,{passThrough:Object.keys(kn),...t})}var ie=go;var Mn=Ae(jn());async function Oo(e,t){let r=await Et(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let o;try{o=await r.parse(n,t,t);}catch(u){No(u,e);}return {text:n,ast:o}}function No(e,t){let{loc:r}=e;if(r){let n=(0, Mn.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`
30062
+ `+n,e.codeFrame=n,e}throw e}var ce=Oo;async function Vn(e,t,r,n,o){let{embeddedLanguageFormatting:u,printer:{embed:i,hasPrettierIgnore:s=()=>!1,getVisitorKeys:D}}=r;if(!i||u!=="auto")return;if(i.length>2)throw new Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed");let a=X(i.getVisitorKeys??D),c=[];F();let p=e.stack;for(let{print:l,node:d,pathStack:m}of c)try{e.stack=m;let E=await l(f,t,e,r);E&&o.set(d,E);}catch(E){if(globalThis.PRETTIER_DEBUG)throw E}e.stack=p;function f(l,d){return To(l,d,r,n)}function F(){let{node:l}=e;if(l===null||typeof l!="object"||s(e))return;for(let m of a(l))Array.isArray(l[m])?e.each(F,m):e.call(F,m);let d=i(e,r);if(d){if(typeof d=="function"){c.push({print:d,node:l,pathStack:[...e.stack]});return}o.set(l,d);}}}async function To(e,t,r,n){let o=await ie({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:u}=await ce(e,o),i=await n(u,o);return Xe(i)}function So(e,t){let{originalText:r,[Symbol.for("comments")]:n,locStart:o,locEnd:u,[Symbol.for("printedComments")]:i}=t,{node:s}=e,D=o(s),a=u(s);for(let c of n)o(c)>=D&&u(c)<=a&&i.add(c);return r.slice(D,a)}var $n=So;async function Me(e,t){({ast:e}=await Xt(e,t));let r=new Map,n=new Yr(e),u=new Map;await Vn(n,s,t,Me,u);let i=await Wn(n,t,s,void 0,u);return Jr(t),i;function s(a,c){return a===void 0||a===n?D(c):Array.isArray(a)?n.call(()=>D(c),...a):n.call(()=>D(c),a)}function D(a){let c=n.node;if(c==null)return "";let p=c&&typeof c=="object"&&a===void 0;if(p&&r.has(c))return r.get(c);let f=Wn(n,t,s,a,u);return p&&r.set(c,f),f}}function Wn(e,t,r,n,o){var D;let{node:u}=e,{printer:i}=t,s;return (D=i.hasPrettierIgnore)!=null&&D.call(i,e)?s=$n(e,t):o.has(u)?s=o.get(u):s=i.print(e,t,r,n),u===t.cursorNode&&(s=Ze(s,a=>[Oe,a,Oe])),i.printComment&&(!i.willPrintOwnComments||!i.willPrintOwnComments(e,t))&&(s=qr(e,s,t)),s}async function Xt(e,t){let r=e.comments??[];t[Symbol.for("comments")]=r,t[Symbol.for("tokens")]=e.tokens??[],t[Symbol.for("printedComments")]=new Set,zr(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}function vo(e,t){let{cursorOffset:r,locStart:n,locEnd:o}=t,u=X(t.printer.getVisitorKeys),i=D=>n(D)<=r&&o(D)>=r,s=e;for(let D of Vr(e,{getVisitorKeys:u,filter:i}))s=D;return s}var Un=vo;function Po(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let o=X(n),u=r.ignoredProperties??new Set;return i(e);function i(s,D){if(!(s!==null&&typeof s=="object"))return s;if(Array.isArray(s))return s.map(f=>i(f,D)).filter(Boolean);let a={},c=new Set(o(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||u.has(f)||(c.has(f)?a[f]=i(s[f],s):a[f]=s[f]);let p=r(s,a,D);if(p!==null)return p??a}}var Gn=Po;var Lo=({parser:e})=>e==="json"||e==="json5"||e==="jsonc"||e==="json-stringify";function Io(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(o=>Hn.has(o.type)&&n.has(o))}function zn(e){let t=e.length-1;for(;;){let r=e[t];if((r==null?void 0:r.type)==="Program"||(r==null?void 0:r.type)==="File")t--;else break}return e.slice(0,t+1)}function Ro(e,t,{locStart:r,locEnd:n}){let o=e.node,u=t.node;if(o===u)return {startNode:o,endNode:u};let i=r(e.node);for(let D of zn(t.parentNodes))if(r(D)>=i)u=D;else break;let s=n(t.node);for(let D of zn(e.parentNodes)){if(n(D)<=s)o=D;else break;if(o===u)break}return {startNode:o,endNode:u}}function Zt(e,t,r,n,o=[],u){let{locStart:i,locEnd:s}=r,D=i(e),a=s(e);if(!(t>a||t<D||u==="rangeEnd"&&t===D||u==="rangeStart"&&t===a)){for(let c of nt(e,r)){let p=Zt(c,t,r,n,[e,...o],u);if(p)return p}if(!n||n(e,o[0]))return {node:e,parentNodes:o}}}function Yo(e,t){return t!=="DeclareExportDeclaration"&&e!=="TypeParameterDeclaration"&&(e==="Directive"||e==="TypeAlias"||e==="TSExportAssignment"||e.startsWith("Declare")||e.startsWith("TSDeclare")||e.endsWith("Statement")||e.endsWith("Declaration"))}var Hn=new Set(["JsonRoot","ObjectExpression","ArrayExpression","StringLiteral","NumericLiteral","BooleanLiteral","NullLiteral","UnaryExpression","TemplateLiteral"]),jo=new Set(["OperationDefinition","FragmentDefinition","VariableDefinition","TypeExtensionDefinition","ObjectTypeDefinition","FieldDefinition","DirectiveDefinition","EnumTypeDefinition","EnumValueDefinition","InputValueDefinition","InputObjectTypeDefinition","SchemaDefinition","OperationTypeDefinition","InterfaceTypeDefinition","UnionTypeDefinition","ScalarTypeDefinition"]);function Kn(e,t,r){if(!t)return !1;switch(e.parser){case"flow":case"babel":case"babel-flow":case"babel-ts":case"typescript":case"acorn":case"espree":case"meriyah":case"__babel_estree":return Yo(t.type,r==null?void 0:r.type);case"json":case"json5":case"jsonc":case"json-stringify":return Hn.has(t.type);case"graphql":return jo.has(t.kind);case"vue":return t.tag!=="root"}return !1}function qn(e,t,r){let{rangeStart:n,rangeEnd:o,locStart:u,locEnd:i}=t;Le.ok(o>n);let s=e.slice(n,o).search(/\S/),D=s===-1;if(!D)for(n+=s;o>n&&!/\S/.test(e[o-1]);--o);let a=Zt(r,n,t,(F,l)=>Kn(t,F,l),[],"rangeStart"),c=D?a:Zt(r,o,t,F=>Kn(t,F),[],"rangeEnd");if(!a||!c)return {rangeStart:0,rangeEnd:0};let p,f;if(Lo(t)){let F=Io(a,c);p=F,f=F;}else ({startNode:p,endNode:f}=Ro(a,c,t));return {rangeStart:Math.min(u(p),u(f)),rangeEnd:Math.max(i(p),i(f))}}var eu="\uFEFF",Jn=Symbol("cursor");async function tu(e,t,r=0){if(!e||e.trim().length===0)return {formatted:"",cursorOffset:-1,comments:[]};let{ast:n,text:o}=await ce(e,t);t.cursorOffset>=0&&(t.cursorNode=Un(n,t));let u=await Me(n,t);r>0&&(u=qe([q,u],r,t.tabWidth));let i=pe(u,t);if(r>0){let D=i.formatted.trim();i.cursorNodeStart!==void 0&&(i.cursorNodeStart-=i.formatted.indexOf(D)),i.formatted=D+be(t.endOfLine);}let s=t[Symbol.for("comments")];if(t.cursorOffset>=0){let D,a,c,p,f;if(t.cursorNode&&i.cursorNodeText?(D=t.locStart(t.cursorNode),a=o.slice(D,t.locEnd(t.cursorNode)),c=t.cursorOffset-D,p=i.cursorNodeStart,f=i.cursorNodeText):(D=0,a=o,c=t.cursorOffset,p=0,f=i.formatted),a===f)return {formatted:i.formatted,cursorOffset:p+c,comments:s};let F=a.split("");F.splice(c,0,Jn);let l=f.split(""),d=(0, Qn.diffArrays)(F,l),m=p;for(let E of d)if(E.removed){if(E.value.includes(Jn))break}else m+=E.count;return {formatted:i.formatted,cursorOffset:m,comments:s}}return {formatted:i.formatted,cursorOffset:-1,comments:s}}async function Mo(e,t){let{ast:r,text:n}=await ce(e,t),{rangeStart:o,rangeEnd:u}=qn(n,t,r),i=n.slice(o,u),s=Math.min(o,n.lastIndexOf(`
30063
+ `,o)+1),D=n.slice(s,o).match(/^\s*/)[0],a=de(D,t.tabWidth),c=await tu(i,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>o&&t.cursorOffset<=u?t.cursorOffset-o:-1,endOfLine:"lf"},a),p=c.formatted.trimEnd(),{cursorOffset:f}=t;f>u?f+=p.length-i.length:c.cursorOffset>=0&&(f=c.cursorOffset+o);let F=n.slice(0,o)+p+n.slice(u);if(t.endOfLine!=="lf"){let l=be(t.endOfLine);f>=0&&l===`\r
30064
+ `&&(f+=At(F.slice(0,f),`
30065
+ `)),F=re(!1,F,`
30066
+ `,l);}return {formatted:F,cursorOffset:f,comments:c.comments}}function Qt(e,t,r){return typeof t!="number"||Number.isNaN(t)||t<0||t>e.length?r:t}function Xn(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:o}=t;return r=Qt(e,r,-1),n=Qt(e,n,0),o=Qt(e,o,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:o}}function ru(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u}=Xn(e,t),i=e.charAt(0)===eu;if(i&&(e=e.slice(1),r--,n--,o--),u==="auto"&&(u=lr(e)),e.includes("\r")){let s=D=>At(e.slice(0,Math.max(D,0)),`\r
30067
+ `);r-=s(r),n-=s(n),o-=s(o),e=fr(e);}return {hasBOM:i,text:e,options:Xn(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u})}}async function Zn(e,t){let r=await Et(t);return !r.hasPragma||r.hasPragma(e)}async function er(e,t){let{hasBOM:r,text:n,options:o}=ru(e,await ie(t));if(o.rangeStart>=o.rangeEnd&&n!==""||o.requirePragma&&!await Zn(n,o))return {formatted:e,cursorOffset:t.cursorOffset,comments:[]};let u;return o.rangeStart>0||o.rangeEnd<n.length?u=await Mo(n,o):(!o.requirePragma&&o.insertPragma&&o.printer.insertPragma&&!await Zn(n,o)&&(n=o.printer.insertPragma(n)),u=await tu(n,o)),r&&(u.formatted=eu+u.formatted,u.cursorOffset>=0&&u.cursorOffset++),u}async function nu(e,t,r){let{text:n,options:o}=ru(e,await ie(t)),u=await ce(n,o);return r&&(r.preprocessForPrint&&(u.ast=await Xt(u.ast,o)),r.massage&&(u.ast=Gn(u.ast,o))),u}async function uu(e,t){t=await ie(t);let r=await Me(e,t);return pe(r,t)}async function ou(e,t){let r=br(e),{formatted:n}=await er(r,{...t,parser:"__js_expression"});return n}async function iu(e,t){t=await ie(t);let{ast:r}=await ce(e,t);return Me(r,t)}async function su(e,t){return pe(e,await ie(t))}var tr={};We(tr,{builders:()=>$o,printer:()=>Wo,utils:()=>Uo});var $o={join:Ne,line:Ke,softline:Br,hardline:q,literalline:He,group:_t,conditionalGroup:Cr,fill:ze,lineSuffix:ke,lineSuffixBoundary:yr,cursor:Oe,breakParent:Fe,ifBreak:hr,trim:Ar,indent:De,indentIfBreak:gr,align:se,addAlignmentToDoc:qe,markAsRoot:mr,dedentToRoot:dr,dedent:Er,hardlineWithoutBreakParent:we,literallineWithoutBreakParent:bt,label:_r,concat:e=>e},Wo={printDocToString:pe},Uo={willBreak:Sr,traverseDoc:xe,findInDoc:Je,mapDoc:ve,removeLines:Pr,stripTrailingHardline:Xe,replaceEndOfLine:Lr,canBreak:Ir};var Du="3.3.2";var nr={};We(nr,{addDanglingComment:()=>te,addLeadingComment:()=>ne,addTrailingComment:()=>ue,getAlignmentSize:()=>de,getIndentSize:()=>au,getMaxContinuousCount:()=>cu,getNextNonSpaceNonCommentCharacter:()=>lu,getNextNonSpaceNonCommentCharacterIndex:()=>ri,getStringWidth:()=>Te,hasNewline:()=>U,hasNewlineInRange:()=>fu,hasSpaces:()=>Fu,isNextLineEmpty:()=>ii,isNextLineEmptyAfterIndex:()=>ht,isPreviousLineEmpty:()=>ui,makeString:()=>pu,skip:()=>me,skipEverythingButNewLine:()=>rt,skipInlineComment:()=>Ce,skipNewline:()=>$,skipSpaces:()=>S,skipToLineEnd:()=>tt,skipTrailingComment:()=>he,skipWhitespace:()=>$r});function Go(e,t){if(t===!1)return !1;if(e.charAt(t)==="/"&&e.charAt(t+1)==="*"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)==="*"&&e.charAt(r+1)==="/")return r+2}return t}var Ce=Go;function zo(e,t){return t===!1?!1:e.charAt(t)==="/"&&e.charAt(t+1)==="/"?rt(e,t):t}var he=zo;function Ko(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=Ce(e,n),n=he(e,n),n=$(e,n);return n}var Ve=Ko;function Ho(e,t){let r=null,n=t;for(;n!==r;)r=n,n=tt(e,n),n=Ce(e,n),n=S(e,n);return n=he(e,n),n=$(e,n),n!==!1&&U(e,n)}var ht=Ho;function qo(e,t){let r=e.lastIndexOf(`
30068
+ `);return r===-1?0:de(e.slice(r+1).match(/^[\t ]*/)[0],t)}var au=qo;function rr(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Jo(e,t){let r=e.match(new RegExp(`(${rr(t)})+`,"g"));return r===null?0:r.reduce((n,o)=>Math.max(n,o.length/t.length),0)}var cu=Jo;function Xo(e,t){let r=Ve(e,t);return r===!1?"":e.charAt(r)}var lu=Xo;function Zo(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`
30069
+ `)return !0;return !1}var fu=Zo;function Qo(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var Fu=Qo;function ei(e,t,r){let n=t==='"'?"'":'"',u=re(!1,e,/\\(.)|(["'])/gs,(i,s,D)=>s===n?s:D===t?"\\"+D:D||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(s)?s:"\\"+s));return t+u+t}var pu=ei;function ti(e,t,r){return Ve(e,r(t))}function ri(e,t){return arguments.length===2||typeof t=="number"?Ve(e,t):ti(...arguments)}function ni(e,t,r){return Ie(e,r(t))}function ui(e,t){return arguments.length===2||typeof t=="number"?Ie(e,t):ni(...arguments)}function oi(e,t,r){return ht(e,r(t))}function ii(e,t){return arguments.length===2||typeof t=="number"?ht(e,t):oi(...arguments)}function le(e,t=1){return async(...r)=>{let n=r[t]??{},o=n.plugins??[];return r[t]={...n,plugins:Array.isArray(o)?o:Object.values(o)},e(...r)}}var du=le(er);async function mu(e,t){let{formatted:r}=await du(e,{...t,cursorOffset:-1});return r}async function si(e,t){return await mu(e,t)===e}var Di=le(ut,0),ai={parse:le(nu),formatAST:le(uu),formatDoc:le(ou),printToDoc:le(iu),printDocToString:le(su)};
30070
+
30071
+ var __defProp = Object.defineProperty;
30072
+ var __export = (target, all) => {
30073
+ for (var name in all)
30074
+ __defProp(target, name, { get: all[name], enumerable: true });
30075
+ };
30076
+
30077
+ // src/document/public.js
30078
+ var public_exports = {};
30079
+ __export(public_exports, {
30080
+ builders: () => builders,
30081
+ printer: () => printer,
30082
+ utils: () => utils
30083
+ });
30084
+
30085
+ // src/document/constants.js
30086
+ var DOC_TYPE_STRING = "string";
30087
+ var DOC_TYPE_ARRAY = "array";
30088
+ var DOC_TYPE_CURSOR = "cursor";
30089
+ var DOC_TYPE_INDENT = "indent";
30090
+ var DOC_TYPE_ALIGN = "align";
30091
+ var DOC_TYPE_TRIM = "trim";
30092
+ var DOC_TYPE_GROUP = "group";
30093
+ var DOC_TYPE_FILL = "fill";
30094
+ var DOC_TYPE_IF_BREAK = "if-break";
30095
+ var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break";
30096
+ var DOC_TYPE_LINE_SUFFIX = "line-suffix";
30097
+ var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary";
30098
+ var DOC_TYPE_LINE = "line";
30099
+ var DOC_TYPE_LABEL = "label";
30100
+ var DOC_TYPE_BREAK_PARENT = "break-parent";
30101
+ var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
30102
+ DOC_TYPE_CURSOR,
30103
+ DOC_TYPE_INDENT,
30104
+ DOC_TYPE_ALIGN,
30105
+ DOC_TYPE_TRIM,
30106
+ DOC_TYPE_GROUP,
30107
+ DOC_TYPE_FILL,
30108
+ DOC_TYPE_IF_BREAK,
30109
+ DOC_TYPE_INDENT_IF_BREAK,
30110
+ DOC_TYPE_LINE_SUFFIX,
30111
+ DOC_TYPE_LINE_SUFFIX_BOUNDARY,
30112
+ DOC_TYPE_LINE,
30113
+ DOC_TYPE_LABEL,
30114
+ DOC_TYPE_BREAK_PARENT
30115
+ ]);
30116
+
30117
+ // src/document/utils/get-doc-type.js
30118
+ function getDocType(doc) {
30119
+ if (typeof doc === "string") {
30120
+ return DOC_TYPE_STRING;
30121
+ }
30122
+ if (Array.isArray(doc)) {
30123
+ return DOC_TYPE_ARRAY;
30124
+ }
30125
+ if (!doc) {
30126
+ return;
30127
+ }
30128
+ const { type } = doc;
30129
+ if (VALID_OBJECT_DOC_TYPES.has(type)) {
30130
+ return type;
30141
30131
  }
30142
- return doc;
30143
30132
  }
30144
- function stripTrailingHardline(doc) {
30145
- return stripTrailingHardlineFromDoc(cleanDoc(doc));
30133
+ var get_doc_type_default = getDocType;
30134
+
30135
+ // src/document/invalid-doc-error.js
30136
+ var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
30137
+ function getDocErrorMessage(doc) {
30138
+ const type = doc === null ? "null" : typeof doc;
30139
+ if (type !== "string" && type !== "object") {
30140
+ return `Unexpected doc '${type}',
30141
+ Expected it to be 'string' or 'object'.`;
30142
+ }
30143
+ if (get_doc_type_default(doc)) {
30144
+ throw new Error("doc is valid.");
30145
+ }
30146
+ const objectType = Object.prototype.toString.call(doc);
30147
+ if (objectType !== "[object Object]") {
30148
+ return `Unexpected doc '${objectType}'.`;
30149
+ }
30150
+ const EXPECTED_TYPE_VALUES = disjunctionListFormat(
30151
+ [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)
30152
+ );
30153
+ return `Unexpected doc.type '${doc.type}'.
30154
+ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
30146
30155
  }
30147
- function cleanDocFn(doc) {
30148
- switch (get_doc_type_default(doc)) {
30149
- case DOC_TYPE_FILL:
30150
- if (doc.parts.every((part) => part === "")) {
30151
- return "";
30152
- }
30153
- break;
30154
- case DOC_TYPE_GROUP:
30155
- if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {
30156
- return "";
30157
- }
30158
- if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {
30159
- return doc.contents;
30160
- }
30161
- break;
30162
- case DOC_TYPE_ALIGN:
30163
- case DOC_TYPE_INDENT:
30164
- case DOC_TYPE_INDENT_IF_BREAK:
30165
- case DOC_TYPE_LINE_SUFFIX:
30166
- if (!doc.contents) {
30167
- return "";
30168
- }
30169
- break;
30170
- case DOC_TYPE_IF_BREAK:
30171
- if (!doc.flatContents && !doc.breakContents) {
30172
- return "";
30173
- }
30174
- break;
30175
- case DOC_TYPE_ARRAY: {
30176
- const parts = [];
30177
- for (const part of doc) {
30178
- if (!part) {
30179
- continue;
30156
+ var InvalidDocError = class extends Error {
30157
+ name = "InvalidDocError";
30158
+ constructor(doc) {
30159
+ super(getDocErrorMessage(doc));
30160
+ this.doc = doc;
30161
+ }
30162
+ };
30163
+ var invalid_doc_error_default = InvalidDocError;
30164
+
30165
+ // src/document/utils/traverse-doc.js
30166
+ var traverseDocOnExitStackMarker = {};
30167
+ function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
30168
+ const docsStack = [doc];
30169
+ while (docsStack.length > 0) {
30170
+ const doc2 = docsStack.pop();
30171
+ if (doc2 === traverseDocOnExitStackMarker) {
30172
+ onExit(docsStack.pop());
30173
+ continue;
30174
+ }
30175
+ if (onExit) {
30176
+ docsStack.push(doc2, traverseDocOnExitStackMarker);
30177
+ }
30178
+ const docType = get_doc_type_default(doc2);
30179
+ if (!docType) {
30180
+ throw new invalid_doc_error_default(doc2);
30181
+ }
30182
+ if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
30183
+ continue;
30184
+ }
30185
+ switch (docType) {
30186
+ case DOC_TYPE_ARRAY:
30187
+ case DOC_TYPE_FILL: {
30188
+ const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
30189
+ for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
30190
+ docsStack.push(parts[i]);
30180
30191
  }
30181
- const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
30182
- if (typeof currentPart === "string" && typeof at_default(
30183
- /* isOptionalObject */
30184
- false,
30185
- parts,
30186
- -1
30187
- ) === "string") {
30188
- parts[parts.length - 1] += currentPart;
30192
+ break;
30193
+ }
30194
+ case DOC_TYPE_IF_BREAK:
30195
+ docsStack.push(doc2.flatContents, doc2.breakContents);
30196
+ break;
30197
+ case DOC_TYPE_GROUP:
30198
+ if (shouldTraverseConditionalGroups && doc2.expandedStates) {
30199
+ for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
30200
+ docsStack.push(doc2.expandedStates[i]);
30201
+ }
30189
30202
  } else {
30190
- parts.push(currentPart);
30203
+ docsStack.push(doc2.contents);
30191
30204
  }
30192
- parts.push(...restParts);
30193
- }
30194
- if (parts.length === 0) {
30195
- return "";
30196
- }
30197
- if (parts.length === 1) {
30198
- return parts[0];
30199
- }
30200
- return parts;
30205
+ break;
30206
+ case DOC_TYPE_ALIGN:
30207
+ case DOC_TYPE_INDENT:
30208
+ case DOC_TYPE_INDENT_IF_BREAK:
30209
+ case DOC_TYPE_LABEL:
30210
+ case DOC_TYPE_LINE_SUFFIX:
30211
+ docsStack.push(doc2.contents);
30212
+ break;
30213
+ case DOC_TYPE_STRING:
30214
+ case DOC_TYPE_CURSOR:
30215
+ case DOC_TYPE_TRIM:
30216
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30217
+ case DOC_TYPE_LINE:
30218
+ case DOC_TYPE_BREAK_PARENT:
30219
+ break;
30220
+ default:
30221
+ throw new invalid_doc_error_default(doc2);
30201
30222
  }
30202
- case DOC_TYPE_STRING:
30203
- case DOC_TYPE_CURSOR:
30204
- case DOC_TYPE_TRIM:
30205
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30206
- case DOC_TYPE_LINE:
30207
- case DOC_TYPE_LABEL:
30208
- case DOC_TYPE_BREAK_PARENT:
30209
- break;
30210
- default:
30211
- throw new invalid_doc_error_default(doc);
30212
30223
  }
30213
- return doc;
30214
30224
  }
30215
- function cleanDoc(doc) {
30216
- return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
30225
+ var traverse_doc_default = traverseDoc;
30226
+
30227
+ // src/document/utils/assert-doc.js
30228
+ var noop = () => {
30229
+ };
30230
+ var assertDocArray = noop ;
30231
+
30232
+ // src/document/builders.js
30233
+ function indent(contents) {
30234
+ return { type: DOC_TYPE_INDENT, contents };
30217
30235
  }
30218
- function replaceEndOfLine(doc, replacement = literalline) {
30219
- return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
30236
+ function align(widthOrString, contents) {
30237
+ return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
30220
30238
  }
30221
- function canBreakFn(doc) {
30222
- if (doc.type === DOC_TYPE_LINE) {
30223
- return true;
30224
- }
30239
+ function group(contents, opts = {}) {
30240
+ assertDocArray(
30241
+ opts.expandedStates);
30242
+ return {
30243
+ type: DOC_TYPE_GROUP,
30244
+ id: opts.id,
30245
+ contents,
30246
+ break: Boolean(opts.shouldBreak),
30247
+ expandedStates: opts.expandedStates
30248
+ };
30225
30249
  }
30226
- function canBreak(doc) {
30227
- return findInDoc(doc, canBreakFn, false);
30250
+ function dedentToRoot(contents) {
30251
+ return align(Number.NEGATIVE_INFINITY, contents);
30228
30252
  }
30229
-
30230
- // src/document/printer.js
30231
- var MODE_BREAK = Symbol("MODE_BREAK");
30232
- var MODE_FLAT = Symbol("MODE_FLAT");
30233
- var CURSOR_PLACEHOLDER = Symbol("cursor");
30234
- function rootIndent() {
30253
+ function markAsRoot(contents) {
30254
+ return align({ type: "root" }, contents);
30255
+ }
30256
+ function dedent(contents) {
30257
+ return align(-1, contents);
30258
+ }
30259
+ function conditionalGroup(states, opts) {
30260
+ return group(states[0], { ...opts, expandedStates: states });
30261
+ }
30262
+ function fill(parts) {
30263
+ return { type: DOC_TYPE_FILL, parts };
30264
+ }
30265
+ function ifBreak(breakContents, flatContents = "", opts = {}) {
30235
30266
  return {
30236
- value: "",
30237
- length: 0,
30238
- queue: []
30267
+ type: DOC_TYPE_IF_BREAK,
30268
+ breakContents,
30269
+ flatContents,
30270
+ groupId: opts.groupId
30239
30271
  };
30240
30272
  }
30241
- function makeIndent(ind, options) {
30242
- return generateInd(ind, {
30243
- type: "indent"
30244
- }, options);
30273
+ function indentIfBreak(contents, opts) {
30274
+ return {
30275
+ type: DOC_TYPE_INDENT_IF_BREAK,
30276
+ contents,
30277
+ groupId: opts.groupId,
30278
+ negate: opts.negate
30279
+ };
30245
30280
  }
30246
- function makeAlign(indent2, widthOrDoc, options) {
30247
- if (widthOrDoc === Number.NEGATIVE_INFINITY) {
30248
- return indent2.root || rootIndent();
30281
+ function lineSuffix(contents) {
30282
+ return { type: DOC_TYPE_LINE_SUFFIX, contents };
30283
+ }
30284
+ var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
30285
+ var breakParent = { type: DOC_TYPE_BREAK_PARENT };
30286
+ var trim = { type: DOC_TYPE_TRIM };
30287
+ var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
30288
+ var literallineWithoutBreakParent = {
30289
+ type: DOC_TYPE_LINE,
30290
+ hard: true,
30291
+ literal: true
30292
+ };
30293
+ var line = { type: DOC_TYPE_LINE };
30294
+ var softline = { type: DOC_TYPE_LINE, soft: true };
30295
+ var hardline = [hardlineWithoutBreakParent, breakParent];
30296
+ var literalline = [literallineWithoutBreakParent, breakParent];
30297
+ var cursor = { type: DOC_TYPE_CURSOR };
30298
+ function join(separator, docs) {
30299
+ const parts = [];
30300
+ for (let i = 0; i < docs.length; i++) {
30301
+ if (i !== 0) {
30302
+ parts.push(separator);
30303
+ }
30304
+ parts.push(docs[i]);
30249
30305
  }
30250
- if (widthOrDoc < 0) {
30251
- return generateInd(indent2, {
30252
- type: "dedent"
30253
- }, options);
30306
+ return parts;
30307
+ }
30308
+ function addAlignmentToDoc(doc, size, tabWidth) {
30309
+ let aligned = doc;
30310
+ if (size > 0) {
30311
+ for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
30312
+ aligned = indent(aligned);
30313
+ }
30314
+ aligned = align(size % tabWidth, aligned);
30315
+ aligned = align(Number.NEGATIVE_INFINITY, aligned);
30254
30316
  }
30255
- if (!widthOrDoc) {
30256
- return indent2;
30317
+ return aligned;
30318
+ }
30319
+ function label(label2, contents) {
30320
+ return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
30321
+ }
30322
+
30323
+ // scripts/build/shims/at.js
30324
+ var at = (isOptionalObject, object, index) => {
30325
+ if (isOptionalObject && (object === void 0 || object === null)) {
30326
+ return;
30257
30327
  }
30258
- if (widthOrDoc.type === "root") {
30259
- return {
30260
- ...indent2,
30261
- root: indent2
30262
- };
30328
+ if (Array.isArray(object) || typeof object === "string") {
30329
+ return object[index < 0 ? object.length + index : index];
30263
30330
  }
30264
- const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
30265
- return generateInd(indent2, {
30266
- type: alignType,
30267
- n: widthOrDoc
30268
- }, options);
30269
- }
30270
- function generateInd(ind, newPart, options) {
30271
- const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
30272
- let value = "";
30273
- let length = 0;
30274
- let lastTabs = 0;
30275
- let lastSpaces = 0;
30276
- for (const part of queue) {
30277
- switch (part.type) {
30278
- case "indent":
30279
- flush();
30280
- if (options.useTabs) {
30281
- addTabs(1);
30282
- } else {
30283
- addSpaces(options.tabWidth);
30284
- }
30285
- break;
30286
- case "stringAlign":
30287
- flush();
30288
- value += part.n;
30289
- length += part.n.length;
30290
- break;
30291
- case "numberAlign":
30292
- lastTabs += 1;
30293
- lastSpaces += part.n;
30294
- break;
30295
- default:
30296
- throw new Error(`Unexpected type '${part.type}'`);
30297
- }
30298
- }
30299
- flushSpaces();
30300
- return {
30301
- ...ind,
30302
- value,
30303
- length,
30304
- queue
30305
- };
30306
- function addTabs(count) {
30307
- value += " ".repeat(count);
30308
- length += options.tabWidth * count;
30309
- }
30310
- function addSpaces(count) {
30311
- value += " ".repeat(count);
30312
- length += count;
30313
- }
30314
- function flush() {
30315
- if (options.useTabs) {
30316
- flushTabs();
30317
- } else {
30318
- flushSpaces();
30319
- }
30331
+ return object.at(index);
30332
+ };
30333
+ var at_default = at;
30334
+
30335
+ // scripts/build/shims/string-replace-all.js
30336
+ var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
30337
+ if (isOptionalObject && (original === void 0 || original === null)) {
30338
+ return;
30320
30339
  }
30321
- function flushTabs() {
30322
- if (lastTabs > 0) {
30323
- addTabs(lastTabs);
30324
- }
30325
- resetLast();
30340
+ if (original.replaceAll) {
30341
+ return original.replaceAll(pattern, replacement);
30326
30342
  }
30327
- function flushSpaces() {
30328
- if (lastSpaces > 0) {
30329
- addSpaces(lastSpaces);
30330
- }
30331
- resetLast();
30343
+ if (pattern.global) {
30344
+ return original.replace(pattern, replacement);
30332
30345
  }
30333
- function resetLast() {
30334
- lastTabs = 0;
30335
- lastSpaces = 0;
30346
+ return original.split(pattern).join(replacement);
30347
+ };
30348
+ var string_replace_all_default = stringReplaceAll;
30349
+
30350
+ // src/common/end-of-line.js
30351
+ function convertEndOfLineToChars(value) {
30352
+ switch (value) {
30353
+ case "cr":
30354
+ return "\r";
30355
+ case "crlf":
30356
+ return "\r\n";
30357
+ default:
30358
+ return "\n";
30336
30359
  }
30337
30360
  }
30338
- function trim2(out) {
30339
- let trimCount = 0;
30340
- let cursorCount = 0;
30341
- let outIndex = out.length;
30342
- outer: while (outIndex--) {
30343
- const last = out[outIndex];
30344
- if (last === CURSOR_PLACEHOLDER) {
30345
- cursorCount++;
30346
- continue;
30347
- }
30348
- for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {
30349
- const char = last[charIndex];
30350
- if (char === " " || char === " ") {
30351
- trimCount++;
30352
- } else {
30353
- out[outIndex] = last.slice(0, charIndex + 1);
30354
- break outer;
30355
- }
30356
- }
30357
- }
30358
- if (trimCount > 0 || cursorCount > 0) {
30359
- out.length = outIndex + 1;
30360
- while (cursorCount-- > 0) {
30361
- out.push(CURSOR_PLACEHOLDER);
30362
- }
30363
- }
30364
- return trimCount;
30361
+
30362
+ // node_modules/emoji-regex/index.mjs
30363
+ var emoji_regex_default = () => {
30364
+ return /[#*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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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-\uDED7\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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\uDD3D\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\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]|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\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;
30365
+ };
30366
+
30367
+ // node_modules/get-east-asian-width/lookup.js
30368
+ function isFullWidth(x) {
30369
+ return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
30365
30370
  }
30366
- function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {
30367
- if (width === Number.POSITIVE_INFINITY) {
30368
- return true;
30369
- }
30370
- let restIdx = restCommands.length;
30371
- const cmds = [next];
30372
- const out = [];
30373
- while (width >= 0) {
30374
- if (cmds.length === 0) {
30375
- if (restIdx === 0) {
30376
- return true;
30377
- }
30378
- cmds.push(restCommands[--restIdx]);
30379
- continue;
30380
- }
30381
- const {
30382
- mode,
30383
- doc
30384
- } = cmds.pop();
30385
- const docType = get_doc_type_default(doc);
30386
- switch (docType) {
30387
- case DOC_TYPE_STRING:
30388
- out.push(doc);
30389
- width -= get_string_width_default(doc);
30390
- break;
30391
- case DOC_TYPE_ARRAY:
30392
- case DOC_TYPE_FILL: {
30393
- const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
30394
- for (let i = parts.length - 1; i >= 0; i--) {
30395
- cmds.push({
30396
- mode,
30397
- doc: parts[i]
30398
- });
30399
- }
30400
- break;
30401
- }
30402
- case DOC_TYPE_INDENT:
30403
- case DOC_TYPE_ALIGN:
30404
- case DOC_TYPE_INDENT_IF_BREAK:
30405
- case DOC_TYPE_LABEL:
30406
- cmds.push({
30407
- mode,
30408
- doc: doc.contents
30409
- });
30410
- break;
30411
- case DOC_TYPE_TRIM:
30412
- width += trim2(out);
30413
- break;
30414
- case DOC_TYPE_GROUP: {
30415
- if (mustBeFlat && doc.break) {
30416
- return false;
30417
- }
30418
- const groupMode = doc.break ? MODE_BREAK : mode;
30419
- const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(
30420
- /* isOptionalObject */
30421
- false,
30422
- doc.expandedStates,
30423
- -1
30424
- ) : doc.contents;
30425
- cmds.push({
30426
- mode: groupMode,
30427
- doc: contents
30428
- });
30429
- break;
30430
- }
30431
- case DOC_TYPE_IF_BREAK: {
30432
- const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
30433
- const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
30434
- if (contents) {
30435
- cmds.push({
30436
- mode,
30437
- doc: contents
30438
- });
30439
- }
30440
- break;
30441
- }
30442
- case DOC_TYPE_LINE:
30443
- if (mode === MODE_BREAK || doc.hard) {
30444
- return true;
30445
- }
30446
- if (!doc.soft) {
30447
- out.push(" ");
30448
- width--;
30449
- }
30450
- break;
30451
- case DOC_TYPE_LINE_SUFFIX:
30452
- hasLineSuffix = true;
30453
- break;
30454
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30455
- if (hasLineSuffix) {
30456
- return false;
30457
- }
30458
- break;
30459
- }
30460
- }
30461
- return false;
30371
+ function isWide(x) {
30372
+ return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9800 && x <= 9811 || x === 9855 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12771 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 19903 || x >= 19968 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101632 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129672 || x >= 129680 && x <= 129725 || x >= 129727 && x <= 129733 || x >= 129742 && x <= 129755 || x >= 129760 && x <= 129768 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
30462
30373
  }
30463
- function printDocToString(doc, options) {
30464
- const groupModeMap = {};
30465
- const width = options.printWidth;
30466
- const newLine = convertEndOfLineToChars(options.endOfLine);
30467
- let pos = 0;
30468
- const cmds = [{
30469
- ind: rootIndent(),
30470
- mode: MODE_BREAK,
30471
- doc
30472
- }];
30473
- const out = [];
30474
- let shouldRemeasure = false;
30475
- const lineSuffix2 = [];
30476
- let printedCursorCount = 0;
30477
- propagateBreaks(doc);
30478
- while (cmds.length > 0) {
30479
- const {
30480
- ind,
30481
- mode,
30482
- doc: doc2
30483
- } = cmds.pop();
30484
- switch (get_doc_type_default(doc2)) {
30485
- case DOC_TYPE_STRING: {
30486
- const formatted = newLine !== "\n" ? string_replace_all_default(
30487
- /* isOptionalObject */
30488
- false,
30489
- doc2,
30490
- "\n",
30491
- newLine
30492
- ) : doc2;
30493
- out.push(formatted);
30494
- if (cmds.length > 0) {
30495
- pos += get_string_width_default(formatted);
30496
- }
30497
- break;
30498
- }
30499
- case DOC_TYPE_ARRAY:
30500
- for (let i = doc2.length - 1; i >= 0; i--) {
30501
- cmds.push({
30502
- ind,
30503
- mode,
30504
- doc: doc2[i]
30505
- });
30506
- }
30507
- break;
30508
- case DOC_TYPE_CURSOR:
30509
- if (printedCursorCount >= 2) {
30510
- throw new Error("There are too many 'cursor' in doc.");
30511
- }
30512
- out.push(CURSOR_PLACEHOLDER);
30513
- printedCursorCount++;
30514
- break;
30515
- case DOC_TYPE_INDENT:
30516
- cmds.push({
30517
- ind: makeIndent(ind, options),
30518
- mode,
30519
- doc: doc2.contents
30520
- });
30521
- break;
30522
- case DOC_TYPE_ALIGN:
30523
- cmds.push({
30524
- ind: makeAlign(ind, doc2.n, options),
30525
- mode,
30526
- doc: doc2.contents
30527
- });
30528
- break;
30529
- case DOC_TYPE_TRIM:
30530
- pos -= trim2(out);
30531
- break;
30532
- case DOC_TYPE_GROUP:
30533
- switch (mode) {
30534
- case MODE_FLAT:
30535
- if (!shouldRemeasure) {
30536
- cmds.push({
30537
- ind,
30538
- mode: doc2.break ? MODE_BREAK : MODE_FLAT,
30539
- doc: doc2.contents
30540
- });
30541
- break;
30542
- }
30543
- case MODE_BREAK: {
30544
- shouldRemeasure = false;
30545
- const next = {
30546
- ind,
30547
- mode: MODE_FLAT,
30548
- doc: doc2.contents
30549
- };
30550
- const rem = width - pos;
30551
- const hasLineSuffix = lineSuffix2.length > 0;
30552
- if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
30553
- cmds.push(next);
30554
- } else {
30555
- if (doc2.expandedStates) {
30556
- const mostExpanded = at_default(
30557
- /* isOptionalObject */
30558
- false,
30559
- doc2.expandedStates,
30560
- -1
30561
- );
30562
- if (doc2.break) {
30563
- cmds.push({
30564
- ind,
30565
- mode: MODE_BREAK,
30566
- doc: mostExpanded
30567
- });
30568
- break;
30569
- } else {
30570
- for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
30571
- if (i >= doc2.expandedStates.length) {
30572
- cmds.push({
30573
- ind,
30574
- mode: MODE_BREAK,
30575
- doc: mostExpanded
30576
- });
30577
- break;
30578
- } else {
30579
- const state = doc2.expandedStates[i];
30580
- const cmd = {
30581
- ind,
30582
- mode: MODE_FLAT,
30583
- doc: state
30584
- };
30585
- if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
30586
- cmds.push(cmd);
30587
- break;
30588
- }
30589
- }
30590
- }
30591
- }
30592
- } else {
30593
- cmds.push({
30594
- ind,
30595
- mode: MODE_BREAK,
30596
- doc: doc2.contents
30597
- });
30598
- }
30599
- }
30600
- break;
30601
- }
30602
- }
30603
- if (doc2.id) {
30604
- groupModeMap[doc2.id] = at_default(
30605
- /* isOptionalObject */
30606
- false,
30607
- cmds,
30608
- -1
30609
- ).mode;
30610
- }
30611
- break;
30612
- case DOC_TYPE_FILL: {
30613
- const rem = width - pos;
30614
- const {
30615
- parts
30374
+
30375
+ // node_modules/get-east-asian-width/index.js
30376
+ var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
30377
+
30378
+ // src/utils/get-string-width.js
30379
+ var notAsciiRegex = /[^\x20-\x7F]/;
30380
+ function getStringWidth(text) {
30381
+ if (!text) {
30382
+ return 0;
30383
+ }
30384
+ if (!notAsciiRegex.test(text)) {
30385
+ return text.length;
30386
+ }
30387
+ text = text.replace(emoji_regex_default(), " ");
30388
+ let width = 0;
30389
+ for (const character of text) {
30390
+ const codePoint = character.codePointAt(0);
30391
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
30392
+ continue;
30393
+ }
30394
+ if (codePoint >= 768 && codePoint <= 879) {
30395
+ continue;
30396
+ }
30397
+ width += _isNarrowWidth(codePoint) ? 1 : 2;
30398
+ }
30399
+ return width;
30400
+ }
30401
+ var get_string_width_default = getStringWidth;
30402
+
30403
+ // src/document/utils.js
30404
+ function mapDoc(doc, cb) {
30405
+ if (typeof doc === "string") {
30406
+ return cb(doc);
30407
+ }
30408
+ const mapped = /* @__PURE__ */ new Map();
30409
+ return rec(doc);
30410
+ function rec(doc2) {
30411
+ if (mapped.has(doc2)) {
30412
+ return mapped.get(doc2);
30413
+ }
30414
+ const result = process2(doc2);
30415
+ mapped.set(doc2, result);
30416
+ return result;
30417
+ }
30418
+ function process2(doc2) {
30419
+ switch (get_doc_type_default(doc2)) {
30420
+ case DOC_TYPE_ARRAY:
30421
+ return cb(doc2.map(rec));
30422
+ case DOC_TYPE_FILL:
30423
+ return cb({
30424
+ ...doc2,
30425
+ parts: doc2.parts.map(rec)
30426
+ });
30427
+ case DOC_TYPE_IF_BREAK:
30428
+ return cb({
30429
+ ...doc2,
30430
+ breakContents: rec(doc2.breakContents),
30431
+ flatContents: rec(doc2.flatContents)
30432
+ });
30433
+ case DOC_TYPE_GROUP: {
30434
+ let {
30435
+ expandedStates,
30436
+ contents
30616
30437
  } = doc2;
30617
- if (parts.length === 0) {
30618
- break;
30619
- }
30620
- const [content, whitespace] = parts;
30621
- const contentFlatCmd = {
30622
- ind,
30623
- mode: MODE_FLAT,
30624
- doc: content
30625
- };
30626
- const contentBreakCmd = {
30627
- ind,
30628
- mode: MODE_BREAK,
30629
- doc: content
30630
- };
30631
- const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
30632
- if (parts.length === 1) {
30633
- if (contentFits) {
30634
- cmds.push(contentFlatCmd);
30635
- } else {
30636
- cmds.push(contentBreakCmd);
30637
- }
30638
- break;
30639
- }
30640
- const whitespaceFlatCmd = {
30641
- ind,
30642
- mode: MODE_FLAT,
30643
- doc: whitespace
30644
- };
30645
- const whitespaceBreakCmd = {
30646
- ind,
30647
- mode: MODE_BREAK,
30648
- doc: whitespace
30649
- };
30650
- if (parts.length === 2) {
30651
- if (contentFits) {
30652
- cmds.push(whitespaceFlatCmd, contentFlatCmd);
30653
- } else {
30654
- cmds.push(whitespaceBreakCmd, contentBreakCmd);
30655
- }
30656
- break;
30657
- }
30658
- parts.splice(0, 2);
30659
- const remainingCmd = {
30660
- ind,
30661
- mode,
30662
- doc: fill(parts)
30663
- };
30664
- const secondContent = parts[0];
30665
- const firstAndSecondContentFlatCmd = {
30666
- ind,
30667
- mode: MODE_FLAT,
30668
- doc: [content, whitespace, secondContent]
30669
- };
30670
- const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
30671
- if (firstAndSecondContentFits) {
30672
- cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
30673
- } else if (contentFits) {
30674
- cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);
30438
+ if (expandedStates) {
30439
+ expandedStates = expandedStates.map(rec);
30440
+ contents = expandedStates[0];
30675
30441
  } else {
30676
- cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);
30677
- }
30678
- break;
30679
- }
30680
- case DOC_TYPE_IF_BREAK:
30681
- case DOC_TYPE_INDENT_IF_BREAK: {
30682
- const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;
30683
- if (groupMode === MODE_BREAK) {
30684
- const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
30685
- if (breakContents) {
30686
- cmds.push({
30687
- ind,
30688
- mode,
30689
- doc: breakContents
30690
- });
30691
- }
30692
- }
30693
- if (groupMode === MODE_FLAT) {
30694
- const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
30695
- if (flatContents) {
30696
- cmds.push({
30697
- ind,
30698
- mode,
30699
- doc: flatContents
30700
- });
30701
- }
30442
+ contents = rec(contents);
30702
30443
  }
30703
- break;
30444
+ return cb({
30445
+ ...doc2,
30446
+ contents,
30447
+ expandedStates
30448
+ });
30704
30449
  }
30450
+ case DOC_TYPE_ALIGN:
30451
+ case DOC_TYPE_INDENT:
30452
+ case DOC_TYPE_INDENT_IF_BREAK:
30453
+ case DOC_TYPE_LABEL:
30705
30454
  case DOC_TYPE_LINE_SUFFIX:
30706
- lineSuffix2.push({
30707
- ind,
30708
- mode,
30709
- doc: doc2.contents
30455
+ return cb({
30456
+ ...doc2,
30457
+ contents: rec(doc2.contents)
30710
30458
  });
30711
- break;
30459
+ case DOC_TYPE_STRING:
30460
+ case DOC_TYPE_CURSOR:
30461
+ case DOC_TYPE_TRIM:
30712
30462
  case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30713
- if (lineSuffix2.length > 0) {
30714
- cmds.push({
30715
- ind,
30716
- mode,
30717
- doc: hardlineWithoutBreakParent
30718
- });
30719
- }
30720
- break;
30721
30463
  case DOC_TYPE_LINE:
30722
- switch (mode) {
30723
- case MODE_FLAT:
30724
- if (!doc2.hard) {
30725
- if (!doc2.soft) {
30726
- out.push(" ");
30727
- pos += 1;
30728
- }
30729
- break;
30730
- } else {
30731
- shouldRemeasure = true;
30732
- }
30733
- case MODE_BREAK:
30734
- if (lineSuffix2.length > 0) {
30735
- cmds.push({
30736
- ind,
30737
- mode,
30738
- doc: doc2
30739
- }, ...lineSuffix2.reverse());
30740
- lineSuffix2.length = 0;
30741
- break;
30742
- }
30743
- if (doc2.literal) {
30744
- if (ind.root) {
30745
- out.push(newLine, ind.root.value);
30746
- pos = ind.root.length;
30747
- } else {
30748
- out.push(newLine);
30749
- pos = 0;
30750
- }
30751
- } else {
30752
- pos -= trim2(out);
30753
- out.push(newLine + ind.value);
30754
- pos = ind.length;
30755
- }
30756
- break;
30757
- }
30758
- break;
30759
- case DOC_TYPE_LABEL:
30760
- cmds.push({
30761
- ind,
30762
- mode,
30763
- doc: doc2.contents
30764
- });
30765
- break;
30766
30464
  case DOC_TYPE_BREAK_PARENT:
30767
- break;
30465
+ return cb(doc2);
30768
30466
  default:
30769
30467
  throw new invalid_doc_error_default(doc2);
30770
30468
  }
30771
- if (cmds.length === 0 && lineSuffix2.length > 0) {
30772
- cmds.push(...lineSuffix2.reverse());
30773
- lineSuffix2.length = 0;
30469
+ }
30470
+ }
30471
+ function findInDoc(doc, fn, defaultValue) {
30472
+ let result = defaultValue;
30473
+ let shouldSkipFurtherProcessing = false;
30474
+ function findInDocOnEnterFn(doc2) {
30475
+ if (shouldSkipFurtherProcessing) {
30476
+ return false;
30477
+ }
30478
+ const maybeResult = fn(doc2);
30479
+ if (maybeResult !== void 0) {
30480
+ shouldSkipFurtherProcessing = true;
30481
+ result = maybeResult;
30774
30482
  }
30775
30483
  }
30776
- const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
30777
- if (cursorPlaceholderIndex !== -1) {
30778
- const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);
30779
- const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
30780
- const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
30781
- const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
30782
- return {
30783
- formatted: beforeCursor + aroundCursor + afterCursor,
30784
- cursorNodeStart: beforeCursor.length,
30785
- cursorNodeText: aroundCursor
30786
- };
30484
+ traverse_doc_default(doc, findInDocOnEnterFn);
30485
+ return result;
30486
+ }
30487
+ function willBreakFn(doc) {
30488
+ if (doc.type === DOC_TYPE_GROUP && doc.break) {
30489
+ return true;
30490
+ }
30491
+ if (doc.type === DOC_TYPE_LINE && doc.hard) {
30492
+ return true;
30493
+ }
30494
+ if (doc.type === DOC_TYPE_BREAK_PARENT) {
30495
+ return true;
30787
30496
  }
30788
- return {
30789
- formatted: out.join("")
30790
- };
30791
30497
  }
30792
-
30793
- // src/document/public.js
30794
- var builders = {
30795
- join,
30796
- line,
30797
- softline,
30798
- hardline,
30799
- literalline,
30800
- group,
30801
- conditionalGroup,
30802
- fill,
30803
- lineSuffix,
30804
- lineSuffixBoundary,
30805
- cursor,
30806
- breakParent,
30807
- ifBreak,
30808
- trim,
30809
- indent,
30810
- indentIfBreak,
30811
- align,
30812
- addAlignmentToDoc,
30813
- markAsRoot,
30814
- dedentToRoot,
30815
- dedent,
30816
- hardlineWithoutBreakParent,
30817
- literallineWithoutBreakParent,
30818
- label,
30819
- // TODO: Remove this in v4
30820
- concat: (parts) => parts
30821
- };
30822
- var printer = { printDocToString };
30823
- var utils = {
30824
- willBreak,
30825
- traverseDoc: traverse_doc_default,
30826
- findInDoc,
30827
- mapDoc,
30828
- removeLines,
30829
- stripTrailingHardline,
30830
- replaceEndOfLine,
30831
- canBreak
30832
- };
30833
-
30834
- var Eu=Object.create;var $e=Object.defineProperty;var Cu=Object.getOwnPropertyDescriptor;var hu=Object.getOwnPropertyNames;var gu=Object.getPrototypeOf,yu=Object.prototype.hasOwnProperty;var or=e=>{throw TypeError(e)};var Au=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),We=(e,t)=>{for(var r in t)$e(e,r,{get:t[r],enumerable:!0});},ir=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hu(t))!yu.call(e,o)&&o!==r&&$e(e,o,{get:()=>t[o],enumerable:!(n=Cu(t,o))||n.enumerable});return e};var Ae=(e,t,r)=>(r=e!=null?Eu(gu(e)):{},ir($e(r,"default",{value:e,enumerable:!0}),e)),Bu=e=>ir($e({},"__esModule",{value:!0}),e);var _u=(e,t,r)=>t.has(e)||or("Cannot "+r);var sr=(e,t,r)=>t.has(e)?or("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r);var fe=(e,t,r)=>(_u(e,t,"access private method"),r);var ar=ye(yt=>{Object.defineProperty(yt,"__esModule",{value:!0});yt.default=Dr;function Dr(){}Dr.prototype={diff:function(t,r){var n,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u=o.callback;typeof o=="function"&&(u=o,o={}),this.options=o;var i=this;function s(C){return u?(setTimeout(function(){u(void 0,C);},0),!0):C}t=this.castInput(t),r=this.castInput(r),t=this.removeEmpty(this.tokenize(t)),r=this.removeEmpty(this.tokenize(r));var D=r.length,a=t.length,c=1,p=D+a;o.maxEditLength&&(p=Math.min(p,o.maxEditLength));var f=(n=o.timeout)!==null&&n!==void 0?n:1/0,F=Date.now()+f,l=[{oldPos:-1,lastComponent:void 0}],d=this.extractCommon(l[0],r,t,0);if(l[0].oldPos+1>=a&&d+1>=D)return s([{value:this.join(r),count:r.length}]);var m=-1/0,E=1/0;function A(){for(var C=Math.max(m,-c);C<=Math.min(E,c);C+=2){var h=void 0,v=l[C-1],k=l[C+1];v&&(l[C-1]=void 0);var W=!1;if(k){var ge=k.oldPos-C;W=k&&0<=ge&&ge<D;}var gt=v&&v.oldPos+1<a;if(!W&&!gt){l[C]=void 0;continue}if(!gt||W&&v.oldPos+1<k.oldPos?h=i.addToPath(k,!0,void 0,0):h=i.addToPath(v,void 0,!0,1),d=i.extractCommon(h,r,t,C),h.oldPos+1>=a&&d+1>=D)return s(xu(i,h.lastComponent,r,t,i.useLongestToken));l[C]=h,h.oldPos+1>=a&&(E=Math.min(E,C-1)),d+1>=D&&(m=Math.max(m,C+1));}c++;}if(u)(function C(){setTimeout(function(){if(c>p||Date.now()>F)return u();A()||C();},0);})();else for(;c<=p&&Date.now()<=F;){var _=A();if(_)return _}},addToPath:function(t,r,n,o){var u=t.lastComponent;return u&&u.added===r&&u.removed===n?{oldPos:t.oldPos+o,lastComponent:{count:u.count+1,added:r,removed:n,previousComponent:u.previousComponent}}:{oldPos:t.oldPos+o,lastComponent:{count:1,added:r,removed:n,previousComponent:u}}},extractCommon:function(t,r,n,o){for(var u=r.length,i=n.length,s=t.oldPos,D=s-o,a=0;D+1<u&&s+1<i&&this.equals(r[D+1],n[s+1]);)D++,s++,a++;return a&&(t.lastComponent={count:a,previousComponent:t.lastComponent}),t.oldPos=s,D},equals:function(t,r){return this.options.comparator?this.options.comparator(t,r):t===r||this.options.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return t.split("")},join:function(t){return t.join("")}};function xu(e,t,r,n,o){for(var u=[],i;t;)u.push(t),i=t.previousComponent,delete t.previousComponent,t=i;u.reverse();for(var s=0,D=u.length,a=0,c=0;s<D;s++){var p=u[s];if(p.removed){if(p.value=e.join(n.slice(c,c+p.count)),c+=p.count,s&&u[s-1].added){var F=u[s-1];u[s-1]=u[s],u[s]=F;}}else {if(!p.added&&o){var f=r.slice(a,a+p.count);f=f.map(function(d,m){var E=n[c+m];return E.length>d.length?E:d}),p.value=e.join(f);}else p.value=e.join(r.slice(a,a+p.count));a+=p.count,p.added||(c+=p.count);}}var l=u[D-1];return D>1&&typeof l.value=="string"&&(l.added||l.removed)&&e.equals("",l.value)&&(u[D-2].value+=l.value,u.pop()),u}});var cr=ye(_e=>{Object.defineProperty(_e,"__esModule",{value:!0});_e.diffArrays=Ou;_e.arrayDiff=void 0;var ku=wu(ar());function wu(e){return e&&e.__esModule?e:{default:e}}var Be=new ku.default;_e.arrayDiff=Be;Be.tokenize=function(e){return e.slice()};Be.join=Be.removeEmpty=function(e){return e};function Ou(e,t,r){return Be.diff(e,t,r)}});var ot=ye((tD,rn)=>{var tn=new Proxy(String,{get:()=>tn});rn.exports=tn;});var wn={};We(wn,{default:()=>Ao,shouldHighlight:()=>yo});var yo,Ao,On=Au(()=>{yo=()=>!1,Ao=String;});var Tn=ye((Ba,qt)=>{var g=String,Nn=function(){return {isColorSupported:!1,reset:g,bold:g,dim:g,italic:g,underline:g,inverse:g,hidden:g,strikethrough:g,black:g,red:g,green:g,yellow:g,blue:g,magenta:g,cyan:g,white:g,gray:g,bgBlack:g,bgRed:g,bgGreen:g,bgYellow:g,bgBlue:g,bgMagenta:g,bgCyan:g,bgWhite:g}};qt.exports=Nn();qt.exports.createColors=Nn;});var jn=ye(Ct=>{Object.defineProperty(Ct,"__esModule",{value:!0});Ct.codeFrameColumns=Yn;Ct.default=wo;var Sn=(On(),Bu(wn)),In=Bo(Tn(),!0);function Rn(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return (Rn=function(n){return n?r:t})(e)}function Bo(e,t){if(e===null||typeof e!="object"&&typeof e!="function")return {default:e};var r=Rn(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(u!=="default"&&{}.hasOwnProperty.call(e,u)){var i=o?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,r&&r.set(e,n),n}var _o=In.default,vn=(e,t)=>r=>e(t(r)),Jt;function bo(e){if(e){return (Jt)!=null||(Jt=(0, In.createColors)(!0)),Jt}return _o}var Pn=!1;function xo(e){return {gutter:e.gray,marker:vn(e.red,e.bold),message:vn(e.red,e.bold)}}var Ln=/\r\n|[\n\r\u2028\u2029]/;function ko(e,t,r){let n=Object.assign({column:0,line:-1},e.start),o=Object.assign({},n,e.end),{linesAbove:u=2,linesBelow:i=3}=r||{},s=n.line,D=n.column,a=o.line,c=o.column,p=Math.max(s-(u+1),0),f=Math.min(t.length,a+i);s===-1&&(p=0),a===-1&&(f=t.length);let F=a-s,l={};if(F)for(let d=0;d<=F;d++){let m=d+s;if(!D)l[m]=!0;else if(d===0){let E=t[m-1].length;l[m]=[D,E-D+1];}else if(d===F)l[m]=[0,c];else {let E=t[m-d].length;l[m]=[0,E];}}else D===c?D?l[s]=[D,0]:l[s]=!0:l[s]=[D,c-D];return {start:p,end:f,markerLines:l}}function Yn(e,t,r={}){let n=(r.highlightCode||r.forceColor)&&(0, Sn.shouldHighlight)(r),o=bo(r.forceColor),u=xo(o),i=(d,m)=>n?d(m):m,s=e.split(Ln),{start:D,end:a,markerLines:c}=ko(t,s,r),p=t.start&&typeof t.start.column=="number",f=String(a).length,l=(n?(0, Sn.default)(e,r):e).split(Ln,a).slice(D,a).map((d,m)=>{let E=D+1+m,_=` ${` ${E}`.slice(-f)} |`,C=c[E],h=!c[E+1];if(C){let v="";if(Array.isArray(C)){let k=d.slice(0,Math.max(C[0]-1,0)).replace(/[^\t]/g," "),W=C[1]||1;v=[`
30835
- `,i(u.gutter,_.replace(/\d/g," "))," ",k,i(u.marker,"^").repeat(W)].join(""),h&&r.message&&(v+=" "+i(u.message,r.message));}return [i(u.marker,">"),i(u.gutter,_),d.length>0?` ${d}`:"",v].join("")}else return ` ${i(u.gutter,_)}${d.length>0?` ${d}`:""}`}).join(`
30836
- `);return r.message&&!p&&(l=`${" ".repeat(f+1)}${r.message}
30837
- ${l}`),n?o.reset(l):l}function wo(e,t,r,n={}){if(!Pn){Pn=!0;let u="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";{let i=new Error(u);i.name="DeprecationWarning",console.warn(new Error(u));}}return r=Math.max(r,0),Yn(e,{start:{column:r,line:t}},n)}});var ur={};We(ur,{__debug:()=>ai,check:()=>si,doc:()=>tr,format:()=>mu,formatWithCursor:()=>du,getSupportInfo:()=>Di,util:()=>nr,version:()=>Du});var bu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},re=bu;var Qn=Ae(cr());function lr(e){let t=e.indexOf("\r");return t>=0?e.charAt(t+1)===`
30838
- `?"crlf":"cr":"lf"}function be(e){switch(e){case"cr":return "\r";case"crlf":return `\r
30839
- `;default:return `
30840
- `}}function At(e,t){let r;switch(t){case`
30841
- `:r=/\n/g;break;case"\r":r=/\r/g;break;case`\r
30842
- `:r=/\r\n/g;break;default:throw new Error(`Unexpected "eol" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function fr(e){return re(!1,e,/\r\n?/g,`
30843
- `)}var G="string",V="array",z="cursor",P="indent",L="align",I="trim",b="group",N="fill",x="if-break",R="indent-if-break",Y="line-suffix",j="line-suffix-boundary",B="line",T="label",w="break-parent",Ue=new Set([z,P,L,I,b,N,x,R,Y,j,B,T,w]);function Nu(e){if(typeof e=="string")return G;if(Array.isArray(e))return V;if(!e)return;let{type:t}=e;if(Ue.has(t))return t}var K=Nu;var Tu=e=>new Intl.ListFormat("en-US",{type:"disjunction"}).format(e);function Su(e){let t=e===null?"null":typeof e;if(t!=="string"&&t!=="object")return `Unexpected doc '${t}',
30844
- Expected it to be 'string' or 'object'.`;if(K(e))throw new Error("doc is valid.");let r=Object.prototype.toString.call(e);if(r!=="[object Object]")return `Unexpected doc '${r}'.`;let n=Tu([...Ue].map(o=>`'${o}'`));return `Unexpected doc.type '${e.type}'.
30845
- Expected it to be ${n}.`}var Bt=class extends Error{name="InvalidDocError";constructor(t){super(Su(t)),this.doc=t;}},Z=Bt;var Fr={};function vu(e,t,r,n){let o=[e];for(;o.length>0;){let u=o.pop();if(u===Fr){r(o.pop());continue}r&&o.push(u,Fr);let i=K(u);if(!i)throw new Z(u);if((t==null?void 0:t(u))!==!1)switch(i){case V:case N:{let s=i===V?u:u.parts;for(let D=s.length,a=D-1;a>=0;--a)o.push(s[a]);break}case x:o.push(u.flatContents,u.breakContents);break;case b:if(n&&u.expandedStates)for(let s=u.expandedStates.length,D=s-1;D>=0;--D)o.push(u.expandedStates[D]);else o.push(u.contents);break;case L:case P:case R:case T:case Y:o.push(u.contents);break;case G:case z:case I:case j:case B:case w:break;default:throw new Z(u)}}}var xe=vu;var pr=()=>{},Ge=pr;function De(e){return {type:P,contents:e}}function se(e,t){return {type:L,contents:t,n:e}}function _t(e,t={}){return Ge(t.expandedStates),{type:b,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function dr(e){return se(Number.NEGATIVE_INFINITY,e)}function mr(e){return se({type:"root"},e)}function Er(e){return se(-1,e)}function Cr(e,t){return _t(e[0],{...t,expandedStates:e})}function ze(e){return {type:N,parts:e}}function hr(e,t="",r={}){return {type:x,breakContents:e,flatContents:t,groupId:r.groupId}}function gr(e,t){return {type:R,contents:e,groupId:t.groupId,negate:t.negate}}function ke(e){return {type:Y,contents:e}}var yr={type:j},Fe={type:w},Ar={type:I},we={type:B,hard:!0},bt={type:B,hard:!0,literal:!0},Ke={type:B},Br={type:B,soft:!0},q=[we,Fe],He=[bt,Fe],Oe={type:z};function Ne(e,t){let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function qe(e,t,r){let n=e;if(t>0){for(let o=0;o<Math.floor(t/r);++o)n=De(n);n=se(t%r,n),n=se(Number.NEGATIVE_INFINITY,n);}return n}function _r(e,t){return e?{type:T,label:e,contents:t}:t}function Q(e){var t;if(!e)return "";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...Q(n));else {let o=Q(n);o!==""&&r.push(o);}return r}return e.type===x?{...e,breakContents:Q(e.breakContents),flatContents:Q(e.flatContents)}:e.type===b?{...e,contents:Q(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(Q)}:e.type===N?{type:"fill",parts:e.parts.map(Q)}:e.contents?{...e,contents:Q(e.contents)}:e}function br(e){let t=Object.create(null),r=new Set;return n(Q(e));function n(u,i,s){var D,a;if(typeof u=="string")return JSON.stringify(u);if(Array.isArray(u)){let c=u.map(n).filter(Boolean);return c.length===1?c[0]:`[${c.join(", ")}]`}if(u.type===B){let c=((D=s==null?void 0:s[i+1])==null?void 0:D.type)===w;return u.literal?c?"literalline":"literallineWithoutBreakParent":u.hard?c?"hardline":"hardlineWithoutBreakParent":u.soft?"softline":"line"}if(u.type===w)return ((a=s==null?void 0:s[i-1])==null?void 0:a.type)===B&&s[i-1].hard?void 0:"breakParent";if(u.type===I)return "trim";if(u.type===P)return "indent("+n(u.contents)+")";if(u.type===L)return u.n===Number.NEGATIVE_INFINITY?"dedentToRoot("+n(u.contents)+")":u.n<0?"dedent("+n(u.contents)+")":u.n.type==="root"?"markAsRoot("+n(u.contents)+")":"align("+JSON.stringify(u.n)+", "+n(u.contents)+")";if(u.type===x)return "ifBreak("+n(u.breakContents)+(u.flatContents?", "+n(u.flatContents):"")+(u.groupId?(u.flatContents?"":', ""')+`, { groupId: ${o(u.groupId)} }`:"")+")";if(u.type===R){let c=[];u.negate&&c.push("negate: true"),u.groupId&&c.push(`groupId: ${o(u.groupId)}`);let p=c.length>0?`, { ${c.join(", ")} }`:"";return `indentIfBreak(${n(u.contents)}${p})`}if(u.type===b){let c=[];u.break&&u.break!=="propagated"&&c.push("shouldBreak: true"),u.id&&c.push(`id: ${o(u.id)}`);let p=c.length>0?`, { ${c.join(", ")} }`:"";return u.expandedStates?`conditionalGroup([${u.expandedStates.map(f=>n(f)).join(",")}]${p})`:`group(${n(u.contents)}${p})`}if(u.type===N)return `fill([${u.parts.map(c=>n(c)).join(", ")}])`;if(u.type===Y)return "lineSuffix("+n(u.contents)+")";if(u.type===j)return "lineSuffixBoundary";if(u.type===T)return `label(${JSON.stringify(u.label)}, ${n(u.contents)})`;throw new Error("Unknown doc type "+u.type)}function o(u){if(typeof u!="symbol")return JSON.stringify(String(u));if(u in t)return t[u];let i=u.description||"symbol";for(let s=0;;s++){let D=i+(s>0?` #${s}`:"");if(!r.has(D))return r.add(D),t[u]=`Symbol.for(${JSON.stringify(D)})`}}}var Pu=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},y=Pu;var xr=()=>/[#*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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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-\uDDF5\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\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\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-\uDED7\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\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\uDD3D\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-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\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]|\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\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]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\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;function kr(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function wr(e){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>=9800&&e<=9811||e===9855||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<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=19968&&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===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101632&&e<=101640||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===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<=128727||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<=129672||e>=129680&&e<=129725||e>=129727&&e<=129733||e>=129742&&e<=129755||e>=129760&&e<=129768||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var Or=e=>!(kr(e)||wr(e));var Lu=/[^\x20-\x7F]/;function Iu(e){if(!e)return 0;if(!Lu.test(e))return e.length;e=e.replace(xr()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=Or(n)?1:2);}return t}var Te=Iu;function ve(e,t){if(typeof e=="string")return t(e);let r=new Map;return n(e);function n(u){if(r.has(u))return r.get(u);let i=o(u);return r.set(u,i),i}function o(u){switch(K(u)){case V:return t(u.map(n));case N:return t({...u,parts:u.parts.map(n)});case x:return t({...u,breakContents:n(u.breakContents),flatContents:n(u.flatContents)});case b:{let{expandedStates:i,contents:s}=u;return i?(i=i.map(n),s=i[0]):s=n(s),t({...u,contents:s,expandedStates:i})}case L:case P:case R:case T:case Y:return t({...u,contents:n(u.contents)});case G:case z:case I:case j:case B:case w:return t(u);default:throw new Z(u)}}}function Je(e,t,r){let n=r,o=!1;function u(i){if(o)return !1;let s=t(i);s!==void 0&&(o=!0,n=s);}return xe(e,u),n}function Ru(e){if(e.type===b&&e.break||e.type===B&&e.hard||e.type===w)return !0}function Sr(e){return Je(e,Ru,!1)}function Nr(e){if(e.length>0){let t=y(!1,e,-1);!t.expandedStates&&!t.break&&(t.break="propagated");}return null}function vr(e){let t=new Set,r=[];function n(u){if(u.type===w&&Nr(r),u.type===b){if(r.push(u),t.has(u))return !1;t.add(u);}}function o(u){u.type===b&&r.pop().break&&Nr(r);}xe(e,n,o,!0);}function Yu(e){return e.type===B&&!e.hard?e.soft?"":" ":e.type===x?e.flatContents:e}function Pr(e){return ve(e,Yu)}function Tr(e){for(e=[...e];e.length>=2&&y(!1,e,-2).type===B&&y(!1,e,-1).type===w;)e.length-=2;if(e.length>0){let t=Se(y(!1,e,-1));e[e.length-1]=t;}return e}function Se(e){switch(K(e)){case P:case R:case b:case Y:case T:{let t=Se(e.contents);return {...e,contents:t}}case x:return {...e,breakContents:Se(e.breakContents),flatContents:Se(e.flatContents)};case N:return {...e,parts:Tr(e.parts)};case V:return Tr(e);case G:return e.replace(/[\n\r]*$/,"");case L:case z:case I:case j:case B:case w:break;default:throw new Z(e)}return e}function Xe(e){return Se(Mu(e))}function ju(e){switch(K(e)){case N:if(e.parts.every(t=>t===""))return "";break;case b:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return "";if(e.contents.type===b&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case L:case P:case R:case Y:if(!e.contents)return "";break;case x:if(!e.flatContents&&!e.breakContents)return "";break;case V:{let t=[];for(let r of e){if(!r)continue;let[n,...o]=Array.isArray(r)?r:[r];typeof n=="string"&&typeof y(!1,t,-1)=="string"?t[t.length-1]+=n:t.push(n),t.push(...o);}return t.length===0?"":t.length===1?t[0]:t}case G:case z:case I:case j:case B:case T:case w:break;default:throw new Z(e)}return e}function Mu(e){return ve(e,t=>ju(t))}function Lr(e,t=He){return ve(e,r=>typeof r=="string"?Ne(t,r.split(`
30846
- `)):r)}function Vu(e){if(e.type===B)return !0}function Ir(e){return Je(e,Vu,!1)}function Ze(e,t){return e.type===T?{...e,contents:t(e.contents)}:t(e)}var M=Symbol("MODE_BREAK"),J=Symbol("MODE_FLAT"),Pe=Symbol("cursor");function Rr(){return {value:"",length:0,queue:[]}}function $u(e,t){return xt(e,{type:"indent"},t)}function Wu(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Rr():t<0?xt(e,{type:"dedent"},r):t?t.type==="root"?{...e,root:e}:xt(e,{type:typeof t=="string"?"stringAlign":"numberAlign",n:t},r):e}function xt(e,t,r){let n=t.type==="dedent"?e.queue.slice(0,-1):[...e.queue,t],o="",u=0,i=0,s=0;for(let l of n)switch(l.type){case"indent":c(),r.useTabs?D(1):a(r.tabWidth);break;case"stringAlign":c(),o+=l.n,u+=l.n.length;break;case"numberAlign":i+=1,s+=l.n;break;default:throw new Error(`Unexpected type '${l.type}'`)}return f(),{...e,value:o,length:u,queue:n};function D(l){o+=" ".repeat(l),u+=r.tabWidth*l;}function a(l){o+=" ".repeat(l),u+=l;}function c(){r.useTabs?p():f();}function p(){i>0&&D(i),F();}function f(){s>0&&a(s),F();}function F(){i=0,s=0;}}function kt(e){let t=0,r=0,n=e.length;e:for(;n--;){let o=e[n];if(o===Pe){r++;continue}for(let u=o.length-1;u>=0;u--){let i=o[u];if(i===" "||i===" ")t++;else {e[n]=o.slice(0,u+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(Pe);return t}function Qe(e,t,r,n,o,u){if(r===Number.POSITIVE_INFINITY)return !0;let i=t.length,s=[e],D=[];for(;r>=0;){if(s.length===0){if(i===0)return !0;s.push(t[--i]);continue}let{mode:a,doc:c}=s.pop(),p=K(c);switch(p){case G:D.push(c),r-=Te(c);break;case V:case N:{let f=p===V?c:c.parts;for(let F=f.length-1;F>=0;F--)s.push({mode:a,doc:f[F]});break}case P:case L:case R:case T:s.push({mode:a,doc:c.contents});break;case I:r+=kt(D);break;case b:{if(u&&c.break)return !1;let f=c.break?M:a,F=c.expandedStates&&f===M?y(!1,c.expandedStates,-1):c.contents;s.push({mode:f,doc:F});break}case x:{let F=(c.groupId?o[c.groupId]||J:a)===M?c.breakContents:c.flatContents;F&&s.push({mode:a,doc:F});break}case B:if(a===M||c.hard)return !0;c.soft||(D.push(" "),r--);break;case Y:n=!0;break;case j:if(n)return !1;break}}return !1}function pe(e,t){let r={},n=t.printWidth,o=be(t.endOfLine),u=0,i=[{ind:Rr(),mode:M,doc:e}],s=[],D=!1,a=[],c=0;for(vr(e);i.length>0;){let{ind:f,mode:F,doc:l}=i.pop();switch(K(l)){case G:{let d=o!==`
30847
- `?re(!1,l,`
30848
- `,o):l;s.push(d),i.length>0&&(u+=Te(d));break}case V:for(let d=l.length-1;d>=0;d--)i.push({ind:f,mode:F,doc:l[d]});break;case z:if(c>=2)throw new Error("There are too many 'cursor' in doc.");s.push(Pe),c++;break;case P:i.push({ind:$u(f,t),mode:F,doc:l.contents});break;case L:i.push({ind:Wu(f,l.n,t),mode:F,doc:l.contents});break;case I:u-=kt(s);break;case b:switch(F){case J:if(!D){i.push({ind:f,mode:l.break?M:J,doc:l.contents});break}case M:{D=!1;let d={ind:f,mode:J,doc:l.contents},m=n-u,E=a.length>0;if(!l.break&&Qe(d,i,m,E,r))i.push(d);else if(l.expandedStates){let A=y(!1,l.expandedStates,-1);if(l.break){i.push({ind:f,mode:M,doc:A});break}else for(let _=1;_<l.expandedStates.length+1;_++)if(_>=l.expandedStates.length){i.push({ind:f,mode:M,doc:A});break}else {let C=l.expandedStates[_],h={ind:f,mode:J,doc:C};if(Qe(h,i,m,E,r)){i.push(h);break}}}else i.push({ind:f,mode:M,doc:l.contents});break}}l.id&&(r[l.id]=y(!1,i,-1).mode);break;case N:{let d=n-u,{parts:m}=l;if(m.length===0)break;let[E,A]=m,_={ind:f,mode:J,doc:E},C={ind:f,mode:M,doc:E},h=Qe(_,[],d,a.length>0,r,!0);if(m.length===1){h?i.push(_):i.push(C);break}let v={ind:f,mode:J,doc:A},k={ind:f,mode:M,doc:A};if(m.length===2){h?i.push(v,_):i.push(k,C);break}m.splice(0,2);let W={ind:f,mode:F,doc:ze(m)},ge=m[0];Qe({ind:f,mode:J,doc:[E,A,ge]},[],d,a.length>0,r,!0)?i.push(W,v,_):h?i.push(W,k,_):i.push(W,k,C);break}case x:case R:{let d=l.groupId?r[l.groupId]:F;if(d===M){let m=l.type===x?l.breakContents:l.negate?l.contents:De(l.contents);m&&i.push({ind:f,mode:F,doc:m});}if(d===J){let m=l.type===x?l.flatContents:l.negate?De(l.contents):l.contents;m&&i.push({ind:f,mode:F,doc:m});}break}case Y:a.push({ind:f,mode:F,doc:l.contents});break;case j:a.length>0&&i.push({ind:f,mode:F,doc:we});break;case B:switch(F){case J:if(l.hard)D=!0;else {l.soft||(s.push(" "),u+=1);break}case M:if(a.length>0){i.push({ind:f,mode:F,doc:l},...a.reverse()),a.length=0;break}l.literal?f.root?(s.push(o,f.root.value),u=f.root.length):(s.push(o),u=0):(u-=kt(s),s.push(o+f.value),u=f.length);break}break;case T:i.push({ind:f,mode:F,doc:l.contents});break;case w:break;default:throw new Z(l)}i.length===0&&a.length>0&&(i.push(...a.reverse()),a.length=0);}let p=s.indexOf(Pe);if(p!==-1){let f=s.indexOf(Pe,p+1),F=s.slice(0,p).join(""),l=s.slice(p+1,f).join(""),d=s.slice(f+1).join("");return {formatted:F+l+d,cursorNodeStart:F.length,cursorNodeText:l}}return {formatted:s.join("")}}function Uu(e,t,r=0){let n=0;for(let o=r;o<e.length;++o)e[o]===" "?n=n+t-n%t:n++;return n}var de=Uu;var ee,Ot,et,wt=class{constructor(t){sr(this,ee);this.stack=[t];}get key(){let{stack:t,siblings:r}=this;return y(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=y(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return [...fe(this,ee,et).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?y(!1,t,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(t=0){let r=fe(this,ee,Ot).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{return t(this)}finally{n.length=o;}}callParent(t,r=0){let n=fe(this,ee,Ot).call(this,r+1),o=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...o);}}each(t,...r){let{stack:n}=this,{length:o}=n,u=y(!1,n,-1);for(let i of r)u=u[i],n.push(i,u);try{for(let i=0;i<u.length;++i)n.push(i,u[i]),t(this,i,u),n.length-=2;}finally{n.length=o;}}map(t,...r){let n=[];return this.each((o,u,i)=>{n[u]=t(o,u,i);},...r),n}match(...t){let r=this.stack.length-1,n=null,o=this.stack[r--];for(let u of t){if(o===void 0)return !1;let i=null;if(typeof n=="number"&&(i=n,n=this.stack[r--],o=this.stack[r--]),u&&!u(o,n,i))return !1;n=this.stack[r--],o=this.stack[r--];}return !0}findAncestor(t){for(let r of fe(this,ee,et).call(this))if(t(r))return r}hasAncestor(t){for(let r of fe(this,ee,et).call(this))if(t(r))return !0;return !1}};ee=new WeakSet,Ot=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return -1},et=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n);}};var Yr=wt;var jr=new Proxy(()=>{},{get:()=>jr}),Le=jr;function Gu(e){return e!==null&&typeof e=="object"}var Mr=Gu;function*Nt(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,o=u=>Mr(u)&&n(u);for(let u of r(e)){let i=e[u];if(Array.isArray(i))for(let s of i)o(s)&&(yield s);else o(i)&&(yield i);}}function*Vr(e,t){let r=[e];for(let n=0;n<r.length;n++){let o=r[n];for(let u of Nt(o,t))yield u,r.push(u);}}function me(e){return (t,r,n)=>{let o=!!(n!=null&&n.backwards);if(r===!1)return !1;let{length:u}=t,i=r;for(;i>=0&&i<u;){let s=t.charAt(i);if(e instanceof RegExp){if(!e.test(s))return i}else if(!e.includes(s))return i;o?i--:i++;}return i===-1||i===u?i:!1}}var $r=me(/\s/),S=me(" "),tt=me(",; "),rt=me(/[^\n\r]/);function zu(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return !1;let o=e.charAt(t);if(n){if(e.charAt(t-1)==="\r"&&o===`
30849
- `)return t-2;if(o===`
30850
- `||o==="\r"||o==="\u2028"||o==="\u2029")return t-1}else {if(o==="\r"&&e.charAt(t+1)===`
30851
- `)return t+2;if(o===`
30852
- `||o==="\r"||o==="\u2028"||o==="\u2029")return t+1}return t}var $=zu;function Ku(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),o=$(e,n,r);return n!==o}var U=Ku;function Hu(e){return Array.isArray(e)&&e.length>0}var Tt=Hu;var Wr=new Set(["tokens","comments","parent","enclosingNode","precedingNode","followingNode"]),qu=e=>Object.keys(e).filter(t=>!Wr.has(t));function Ju(e){return e?t=>e(t,Wr):qu}var X=Ju;function Xu(e){let t=e.type||e.kind||"(unknown type)",r=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||"");return r.length>20&&(r=r.slice(0,19)+"\u2026"),t+(r?" "+r:"")}function St(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=Xu(e);}function ne(e,t){t.leading=!0,t.trailing=!1,St(e,t);}function te(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),St(e,t);}function ue(e,t){t.leading=!1,t.trailing=!0,St(e,t);}var vt=new WeakMap;function nt(e,t){if(vt.has(e))return vt.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:o},locStart:u,locEnd:i}=t;if(!n)return [];let s=((r==null?void 0:r(e,t))??[...Nt(e,{getVisitorKeys:X(o)})]).flatMap(D=>n(D)?[D]:nt(D,t));return s.sort((D,a)=>u(D)-u(a)||i(D)-i(a)),vt.set(e,s),s}function Gr(e,t,r,n){let{locStart:o,locEnd:u}=r,i=o(t),s=u(t),D=nt(e,r),a,c,p=0,f=D.length;for(;p<f;){let F=p+f>>1,l=D[F],d=o(l),m=u(l);if(d<=i&&s<=m)return Gr(l,t,r,l);if(m<=i){a=l,p=F+1;continue}if(s<=d){c=l,f=F;continue}throw new Error("Comment location overlaps with node location")}if((n==null?void 0:n.type)==="TemplateLiteral"){let{quasis:F}=n,l=Lt(F,t,r);a&&Lt(F,a,r)!==l&&(a=null),c&&Lt(F,c,r)!==l&&(c=null);}return {enclosingNode:n,precedingNode:a,followingNode:c}}var Pt=()=>!1;function zr(e,t){let{comments:r}=e;if(delete e.comments,!Tt(r)||!t.printer.canAttachComment)return;let n=[],{locStart:o,locEnd:u,printer:{experimentalFeatures:{avoidAstMutation:i=!1}={},handleComments:s={}},originalText:D}=t,{ownLine:a=Pt,endOfLine:c=Pt,remaining:p=Pt}=s,f=r.map((F,l)=>({...Gr(e,F,t),comment:F,text:D,options:t,ast:e,isLastComment:r.length-1===l}));for(let[F,l]of f.entries()){let{comment:d,precedingNode:m,enclosingNode:E,followingNode:A,text:_,options:C,ast:h,isLastComment:v}=l;if(C.parser==="json"||C.parser==="json5"||C.parser==="jsonc"||C.parser==="__js_expression"||C.parser==="__ts_expression"||C.parser==="__vue_expression"||C.parser==="__vue_ts_expression"){if(o(d)-o(h)<=0){ne(h,d);continue}if(u(d)-u(h)>=0){ue(h,d);continue}}let k;if(i?k=[l]:(d.enclosingNode=E,d.precedingNode=m,d.followingNode=A,k=[d,_,C,h,v]),Zu(_,C,f,F))d.placement="ownLine",a(...k)||(A?ne(A,d):m?ue(m,d):E?te(E,d):te(h,d));else if(Qu(_,C,f,F))d.placement="endOfLine",c(...k)||(m?ue(m,d):A?ne(A,d):E?te(E,d):te(h,d));else if(d.placement="remaining",!p(...k))if(m&&A){let W=n.length;W>0&&n[W-1].followingNode!==A&&Ur(n,C),n.push(l);}else m?ue(m,d):A?ne(A,d):E?te(E,d):te(h,d);}if(Ur(n,t),!i)for(let F of r)delete F.precedingNode,delete F.enclosingNode,delete F.followingNode;}var Kr=e=>!/[\S\n\u2028\u2029]/.test(e);function Zu(e,t,r,n){let{comment:o,precedingNode:u}=r[n],{locStart:i,locEnd:s}=t,D=i(o);if(u)for(let a=n-1;a>=0;a--){let{comment:c,precedingNode:p}=r[a];if(p!==u||!Kr(e.slice(s(c),D)))break;D=i(c);}return U(e,D,{backwards:!0})}function Qu(e,t,r,n){let{comment:o,followingNode:u}=r[n],{locStart:i,locEnd:s}=t,D=s(o);if(u)for(let a=n+1;a<r.length;a++){let{comment:c,followingNode:p}=r[a];if(p!==u||!Kr(e.slice(D,i(c))))break;D=s(c);}return U(e,D)}function Ur(e,t){var s,D;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:o}=e[0],u=t.locStart(o),i;for(i=r;i>0;--i){let{comment:a,precedingNode:c,followingNode:p}=e[i-1];Le.strictEqual(c,n),Le.strictEqual(p,o);let f=t.originalText.slice(t.locEnd(a),u);if(((D=(s=t.printer).isGap)==null?void 0:D.call(s,f,t))??/^[\s(]*$/.test(f))u=t.locStart(a);else break}for(let[a,{comment:c}]of e.entries())a<i?ue(n,c):ne(o,c);for(let a of [n,o])a.comments&&a.comments.length>1&&a.comments.sort((c,p)=>t.locStart(c)-t.locStart(p));e.length=0;}function Lt(e,t,r){let n=r.locStart(t)-1;for(let o=1;o<e.length;++o)if(n<r.locStart(e[o]))return o-1;return 0}function eo(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=$(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=$(e,r,{backwards:!0});return r!==n}var Ie=eo;function Hr(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function to(e,t){var c;let r=e.node,n=[Hr(e,t)],{printer:o,originalText:u,locStart:i,locEnd:s}=t;if((c=o.isBlockComment)==null?void 0:c.call(o,r)){let p=U(u,s(r))?U(u,i(r),{backwards:!0})?q:Ke:" ";n.push(p);}else n.push(q);let a=$(u,S(u,s(r)));return a!==!1&&U(u,a)&&n.push(q),n}function ro(e,t,r){var a;let n=e.node,o=Hr(e,t),{printer:u,originalText:i,locStart:s}=t,D=(a=u.isBlockComment)==null?void 0:a.call(u,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||U(i,s(n),{backwards:!0})){let c=Ie(i,s(n));return {doc:ke([q,c?q:"",o]),isBlock:D,hasLineSuffix:!0}}return !D||r!=null&&r.hasLineSuffix?{doc:[ke([" ",o]),Fe],isBlock:D,hasLineSuffix:!0}:{doc:[" ",o],isBlock:D,hasLineSuffix:!1}}function no(e,t){let r=e.node;if(!r)return {};let n=t[Symbol.for("printedComments")];if((r.comments||[]).filter(D=>!n.has(D)).length===0)return {leading:"",trailing:""};let u=[],i=[],s;return e.each(()=>{let D=e.node;if(n!=null&&n.has(D))return;let{leading:a,trailing:c}=D;a?u.push(to(e,t)):c&&(s=ro(e,t,s),i.push(s.doc));},"comments"),{leading:u,trailing:i}}function qr(e,t,r){let{leading:n,trailing:o}=no(e,r);return !n&&!o?t:Ze(t,u=>[n,u,o])}function Jr(e){let{[Symbol.for("comments")]:t,[Symbol.for("printedComments")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment "'+n.value.trim()+'" was not printed. Please report this error!');delete n.printed;}}var Re=class extends Error{name="ConfigError"},Ye=class extends Error{name="UndefinedParserError"};var Zr={cursorOffset:{category:"Special",type:"int",default:-1,range:{start:-1,end:1/0,step:1},description:"Print (to stderr) where a cursor at the given position would move to after formatting.",cliCategory:"Editor"},endOfLine:{category:"Global",type:"choice",default:"lf",description:"Which end of line characters to apply.",choices:[{value:"lf",description:"Line Feed only (\\n), common on Linux and macOS as well as inside git repos"},{value:"crlf",description:"Carriage Return + Line Feed characters (\\r\\n), common on Windows"},{value:"cr",description:"Carriage Return character only (\\r), used very rarely"},{value:"auto",description:`Maintain existing
30853
- (mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:"Special",type:"path",description:"Specify the input filepath. This will be used to do parser inference.",cliName:"stdin-filepath",cliCategory:"Other",cliDescription:"Path to the file to pretend that stdin comes from."},insertPragma:{category:"Special",type:"boolean",default:!1,description:"Insert @format pragma into file's first docblock comment.",cliCategory:"Other"},parser:{category:"Global",type:"choice",default:void 0,description:"Which parser to use.",exception:e=>typeof e=="string"||typeof e=="function",choices:[{value:"flow",description:"Flow"},{value:"babel",description:"JavaScript"},{value:"babel-flow",description:"Flow"},{value:"babel-ts",description:"TypeScript"},{value:"typescript",description:"TypeScript"},{value:"acorn",description:"JavaScript"},{value:"espree",description:"JavaScript"},{value:"meriyah",description:"JavaScript"},{value:"css",description:"CSS"},{value:"less",description:"Less"},{value:"scss",description:"SCSS"},{value:"json",description:"JSON"},{value:"json5",description:"JSON5"},{value:"jsonc",description:"JSON with Comments"},{value:"json-stringify",description:"JSON.stringify"},{value:"graphql",description:"GraphQL"},{value:"markdown",description:"Markdown"},{value:"mdx",description:"MDX"},{value:"vue",description:"Vue"},{value:"yaml",description:"YAML"},{value:"glimmer",description:"Ember / Handlebars"},{value:"html",description:"HTML"},{value:"angular",description:"Angular"},{value:"lwc",description:"Lightning Web Components"}]},plugins:{type:"path",array:!0,default:[{value:[]}],category:"Global",description:"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.",exception:e=>typeof e=="string"||typeof e=="object",cliName:"plugin",cliCategory:"Config"},printWidth:{category:"Global",type:"int",default:80,description:"The line length where Prettier will try wrap.",range:{start:0,end:1/0,step:1}},rangeEnd:{category:"Special",type:"int",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).
30854
- The range will extend forwards to the end of the selected statement.`,cliCategory:"Editor"},rangeStart:{category:"Special",type:"int",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.
30855
- The range will extend backwards to the start of the first line containing the selected statement.`,cliCategory:"Editor"},requirePragma:{category:"Special",type:"boolean",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment
30856
- in order for it to be formatted.`,cliCategory:"Other"},tabWidth:{type:"int",category:"Global",default:2,description:"Number of spaces per indentation level.",range:{start:0,end:1/0,step:1}},useTabs:{category:"Global",type:"boolean",default:!1,description:"Indent with tabs instead of spaces."},embeddedLanguageFormatting:{category:"Global",type:"choice",default:"auto",description:"Control how Prettier formats quoted code embedded in the file.",choices:[{value:"auto",description:"Format embedded code if Prettier can automatically identify it."},{value:"off",description:"Never automatically format embedded code."}]}};function ut({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(o=>o.languages??[]),n=[];for(let o of io(Object.assign({},...e.map(({options:u})=>u),Zr)))!t&&o.deprecated||(Array.isArray(o.choices)&&(t||(o.choices=o.choices.filter(u=>!u.deprecated)),o.name==="parser"&&(o.choices=[...o.choices,...oo(o.choices,r,e)])),o.pluginDefaults=Object.fromEntries(e.filter(u=>{var i;return ((i=u.defaultOptions)==null?void 0:i[o.name])!==void 0}).map(u=>[u.name,u.defaultOptions[o.name]])),n.push(o));return {languages:r,options:n}}function*oo(e,t,r){let n=new Set(e.map(o=>o.value));for(let o of t)if(o.parsers){for(let u of o.parsers)if(!n.has(u)){n.add(u);let i=r.find(D=>D.parsers&&Object.prototype.hasOwnProperty.call(D.parsers,u)),s=o.name;i!=null&&i.name&&(s+=` (plugin: ${i.name})`),yield {value:u,description:s};}}}function io(e){let t=[];for(let[r,n]of Object.entries(e)){let o={name:r,...n};Array.isArray(o.default)&&(o.default=y(!1,o.default,-1).value),t.push(o);}return t}var so=e=>String(e).split(/[/\\]/).pop();function Qr(e,t){if(!t)return;let r=so(t).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(o=>o.toLowerCase()===r))??e.find(({extensions:n})=>n==null?void 0:n.some(o=>r.endsWith(o)))}function Do(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function ao(e,t){let r=e.plugins.flatMap(o=>o.languages??[]),n=Do(r,t.language)??Qr(r,t.physicalFile)??Qr(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var en=ao;var oe={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(r=>oe.value(r)).join(", ")}]`;let t=Object.keys(e);return t.length===0?"{}":`{ ${t.map(r=>`${oe.key(r)}: ${oe.value(e[r])}`).join(", ")} }`},pair:({key:e,value:t})=>oe.value({[e]:t})};var It=Ae(ot()),nn=(e,t,{descriptor:r})=>{let n=[`${It.default.yellow(typeof e=="string"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${It.default.blue(typeof t=="string"?r.key(t):r.pair(t))}`),n.join("; ")+"."};var ae=Ae(ot());var it=Symbol.for("vnopts.VALUE_NOT_EXIST"),Ee=Symbol.for("vnopts.VALUE_UNCHANGED");var un=" ".repeat(2),sn=(e,t,r)=>{let{text:n,list:o}=r.normalizeExpectedResult(r.schemas[e].expected(r)),u=[];return n&&u.push(on(e,t,n,r.descriptor)),o&&u.push([on(e,t,o.title,r.descriptor)].concat(o.values.map(i=>Dn(i,r.loggerPrintWidth))).join(`
30857
- `)),an(u,r.loggerPrintWidth)};function on(e,t,r,n){return [`Invalid ${ae.default.red(n.key(e))} value.`,`Expected ${ae.default.blue(r)},`,`but received ${t===it?ae.default.gray("nothing"):ae.default.red(n.value(t))}.`].join(" ")}function Dn({text:e,list:t},r){let n=[];return e&&n.push(`- ${ae.default.blue(e)}`),t&&n.push([`- ${ae.default.blue(t.title)}:`].concat(t.values.map(o=>Dn(o,r-un.length).replace(/^|\n/g,`$&${un}`))).join(`
30858
- `)),an(n,r)}function an(e,t){if(e.length===1)return e[0];let[r,n]=e,[o,u]=e.map(i=>i.split(`
30859
- `,1)[0].length);return o>t&&o>u?n:r}var jt=Ae(ot());var Rt=[],cn=[];function Yt(e,t){if(e===t)return 0;let r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let u=0;for(;u<n&&e.charCodeAt(u)===t.charCodeAt(u);)u++;if(n-=u,o-=u,n===0)return o;let i,s,D,a,c=0,p=0;for(;c<n;)cn[c]=e.charCodeAt(u+c),Rt[c]=++c;for(;p<o;)for(i=t.charCodeAt(u+p),D=p++,s=p,c=0;c<n;c++)a=i===cn[c]?D:D+1,D=Rt[c],s=Rt[c]=D>s?a>s?s+1:a:a>D?D+1:a;return s}var st=(e,t,{descriptor:r,logger:n,schemas:o})=>{let u=[`Ignored unknown option ${jt.default.yellow(r.pair({key:e,value:t}))}.`],i=Object.keys(o).sort().find(s=>Yt(e,s)<3);i&&u.push(`Did you mean ${jt.default.blue(r.key(i))}?`),n.warn(u.join(" "));};var co=["default","expected","validate","deprecated","forward","redirect","overlap","preprocess","postprocess"];function lo(e,t){let r=new e(t),n=Object.create(r);for(let o of co)o in t&&(n[o]=fo(t[o],r,O.prototype[o].length));return n}var O=class{static create(t){return lo(this,t)}constructor(t){this.name=t.name;}default(t){}expected(t){return "nothing"}validate(t,r){return !1}deprecated(t,r){return !1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return Ee}};function fo(e,t,r){return typeof e=="function"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}var Dt=class extends O{constructor(t){super(t),this._sourceName=t.sourceName;}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};var at=class extends O{expected(){return "anything"}validate(){return !0}};var ct=class extends O{constructor({valueSchema:t,name:r=t.name,...n}){super({...n,name:r}),this._valueSchema=t;}expected(t){let{text:r,list:n}=t.normalizeExpectedResult(this._valueSchema.expected(t));return {text:r&&`an array of ${r}`,list:n&&{title:"an array of the following values",values:[{list:n}]}}}validate(t,r){if(!Array.isArray(t))return !1;let n=[];for(let o of t){let u=r.normalizeValidateResult(this._valueSchema.validate(o,r),o);u!==!0&&n.push(u.value);}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let o of t){let u=r.normalizeDeprecatedResult(this._valueSchema.deprecated(o,r),o);u!==!1&&n.push(...u.map(({value:i})=>({value:[i]})));}return n}forward(t,r){let n=[];for(let o of t){let u=r.normalizeForwardResult(this._valueSchema.forward(o,r),o);n.push(...u.map(ln));}return n}redirect(t,r){let n=[],o=[];for(let u of t){let i=r.normalizeRedirectResult(this._valueSchema.redirect(u,r),u);"remain"in i&&n.push(i.remain),o.push(...i.redirect.map(ln));}return n.length===0?{redirect:o}:{redirect:o,remain:n}}overlap(t,r){return t.concat(r)}};function ln({from:e,to:t}){return {from:[e],to:t}}var lt=class extends O{expected(){return "true or false"}validate(t){return typeof t=="boolean"}};function Fn(e,t){let r=Object.create(null);for(let n of e){let o=n[t];if(r[o])throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);r[o]=n;}return r}function pn(e,t){let r=new Map;for(let n of e){let o=n[t];if(r.has(o))throw new Error(`Duplicate ${t} ${JSON.stringify(o)}`);r.set(o,n);}return r}function dn(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}function mn(e,t){let r=[],n=[];for(let o of e)t(o)?r.push(o):n.push(o);return [r,n]}function En(e){return e===Math.floor(e)}function Cn(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,o=["undefined","object","boolean","number","string"];return r!==n?o.indexOf(r)-o.indexOf(n):r!=="string"?Number(e)-Number(t):e.localeCompare(t)}function hn(e){return (...t)=>{let r=e(...t);return typeof r=="string"?new Error(r):r}}function Mt(e){return e===void 0?{}:e}function Vt(e){if(typeof e=="string")return {text:e};let{text:t,list:r}=e;return Fo((t||r)!==void 0,"Unexpected `expected` result, there should be at least one field."),r?{text:t,list:{title:r.title,values:r.values.map(Vt)}}:{text:t}}function $t(e,t){return e===!0?!0:e===!1?{value:t}:e}function Wt(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:"value"in e?[e]:e.length===0?!1:e}function fn(e,t){return typeof e=="string"||"key"in e?{from:t,to:e}:"from"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}function ft(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>fn(r,t)):[fn(e,t)]}function Ut(e,t){let r=ft(typeof e=="object"&&"redirect"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e=="object"&&"remain"in e?{remain:e.remain,redirect:r}:{redirect:r}}function Fo(e,t){if(!e)throw new Error(t)}var Ft=class extends O{constructor(t){super(t),this._choices=pn(t.choices.map(r=>r&&typeof r=="object"?r:{value:r}),"value");}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(i=>this._choices.get(i)).filter(({hidden:i})=>!i).map(i=>i.value).sort(Cn).map(t.value),n=r.slice(0,-2),o=r.slice(-2);return {text:n.concat(o.join(" or ")).join(", "),list:{title:"one of the following values",values:r}}}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};var pt=class extends O{expected(){return "a number"}validate(t,r){return typeof t=="number"}};var dt=class extends pt{expected(){return "an integer"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&En(t)}};var je=class extends O{expected(){return "a string"}validate(t){return typeof t=="string"}};var gn=oe,yn=st,An=sn,Bn=nn;var mt=class{constructor(t,r){let{logger:n=console,loggerPrintWidth:o=80,descriptor:u=gn,unknown:i=yn,invalid:s=An,deprecated:D=Bn,missing:a=()=>!1,required:c=()=>!1,preprocess:p=F=>F,postprocess:f=()=>Ee}=r||{};this._utils={descriptor:u,logger:n||{warn:()=>{}},loggerPrintWidth:o,schemas:Fn(t,"name"),normalizeDefaultResult:Mt,normalizeExpectedResult:Vt,normalizeDeprecatedResult:Wt,normalizeForwardResult:ft,normalizeRedirectResult:Ut,normalizeValidateResult:$t},this._unknownHandler=i,this._invalidHandler=hn(s),this._deprecatedHandler=D,this._identifyMissing=(F,l)=>!(F in l)||a(F,l),this._identifyRequired=c,this._preprocess=p,this._postprocess=f,this.cleanHistory();}cleanHistory(){this._hasDeprecationWarned=dn();}normalize(t){let r={},o=[this._preprocess(t,this._utils)],u=()=>{for(;o.length!==0;){let i=o.shift(),s=this._applyNormalization(i,r);o.push(...s);}};u();for(let i of Object.keys(this._utils.schemas)){let s=this._utils.schemas[i];if(!(i in r)){let D=Mt(s.default(this._utils));"value"in D&&o.push({[i]:D.value});}}u();for(let i of Object.keys(this._utils.schemas)){if(!(i in r))continue;let s=this._utils.schemas[i],D=r[i],a=s.postprocess(D,this._utils);a!==Ee&&(this._applyValidation(a,i,s),r[i]=a);}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(t,r){let n=[],{knownKeys:o,unknownKeys:u}=this._partitionOptionKeys(t);for(let i of o){let s=this._utils.schemas[i],D=s.preprocess(t[i],this._utils);this._applyValidation(D,i,s);let a=({from:F,to:l})=>{n.push(typeof l=="string"?{[l]:F}:{[l.key]:l.value});},c=({value:F,redirectTo:l})=>{let d=Wt(s.deprecated(F,this._utils),D,!0);if(d!==!1)if(d===!0)this._hasDeprecationWarned(i)||this._utils.logger.warn(this._deprecatedHandler(i,l,this._utils));else for(let{value:m}of d){let E={key:i,value:m};if(!this._hasDeprecationWarned(E)){let A=typeof l=="string"?{key:l,value:m}:l;this._utils.logger.warn(this._deprecatedHandler(E,A,this._utils));}}};ft(s.forward(D,this._utils),D).forEach(a);let f=Ut(s.redirect(D,this._utils),D);if(f.redirect.forEach(a),"remain"in f){let F=f.remain;r[i]=i in r?s.overlap(r[i],F,this._utils):F,c({value:F});}for(let{from:F,to:l}of f.redirect)c({value:F,redirectTo:l});}for(let i of u){let s=t[i];this._applyUnknownHandler(i,s,r,(D,a)=>{n.push({[D]:a});});}return n}_applyRequiredCheck(t){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,t)&&this._identifyRequired(r))throw this._invalidHandler(r,it,this._utils)}_partitionOptionKeys(t){let[r,n]=mn(Object.keys(t).filter(o=>!this._identifyMissing(o,t)),o=>o in this._utils.schemas);return {knownKeys:r,unknownKeys:n}}_applyValidation(t,r,n){let o=$t(n.validate(t,this._utils),t);if(o!==!0)throw this._invalidHandler(r,o.value,this._utils)}_applyUnknownHandler(t,r,n,o){let u=this._unknownHandler(t,r,this._utils);if(u)for(let i of Object.keys(u)){if(this._identifyMissing(i,u))continue;let s=u[i];i in this._utils.schemas?o(i,s):n[i]=s;}}_applyPostprocess(t){let r=this._postprocess(t,this._utils);if(r!==Ee){if(r.delete)for(let n of r.delete)delete t[n];if(r.override){let{knownKeys:n,unknownKeys:o}=this._partitionOptionKeys(r.override);for(let u of n){let i=r.override[u];this._applyValidation(i,u,this._utils.schemas[u]),t[u]=i;}for(let u of o){let i=r.override[u];this._applyUnknownHandler(u,i,t,(s,D)=>{let a=this._utils.schemas[s];this._applyValidation(D,s,a),t[s]=D;});}}}}};var Gt;function mo(e,t,{logger:r=!1,isCLI:n=!1,passThrough:o=!1,FlagSchema:u,descriptor:i}={}){if(n){if(!u)throw new Error("'FlagSchema' option is required.");if(!i)throw new Error("'descriptor' option is required.")}else i=oe;let s=o?Array.isArray(o)?(f,F)=>o.includes(f)?{[f]:F}:void 0:(f,F)=>({[f]:F}):(f,F,l)=>{let{_:d,...m}=l.schemas;return st(f,F,{...l,schemas:m})},D=Eo(t,{isCLI:n,FlagSchema:u}),a=new mt(D,{logger:r,unknown:s,descriptor:i}),c=r!==!1;c&&Gt&&(a._hasDeprecationWarned=Gt);let p=a.normalize(e);return c&&(Gt=a._hasDeprecationWarned),p}function Eo(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(at.create({name:"_"}));for(let o of e)n.push(Co(o,{isCLI:t,optionInfos:e,FlagSchema:r})),o.alias&&t&&n.push(Dt.create({name:o.alias,sourceName:o.name}));return n}function Co(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:o}=e,u={name:o},i,s={};switch(e.type){case"int":i=dt,t&&(u.preprocess=Number);break;case"string":i=je;break;case"choice":i=Ft,u.choices=e.choices.map(D=>D!=null&&D.redirect?{...D,redirect:{to:{key:e.name,value:D.redirect}}}:D);break;case"boolean":i=lt;break;case"flag":i=n,u.flags=r.flatMap(D=>[D.alias,D.description&&D.name,D.oppositeDescription&&`no-${D.name}`].filter(Boolean));break;case"path":i=je;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?u.validate=(D,a,c)=>e.exception(D)||a.validate(D,c):u.validate=(D,a,c)=>D===void 0||a.validate(D,c),e.redirect&&(s.redirect=D=>D?{to:typeof e.redirect=="string"?e.redirect:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let D=u.preprocess||(a=>a);u.preprocess=(a,c,p)=>c.preprocess(D(Array.isArray(a)?y(!1,a,-1):a),p);}return e.array?ct.create({...t?{preprocess:D=>Array.isArray(D)?D:[D]}:{},...s,valueSchema:i.create(u)}):i.create({...u,...s})}var _n=mo;var ho=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let o=t[n];if(r(o,n,t))return o}}},zt=ho;function Kt(e,t){if(!t)throw new Error("parserName is required.");let r=zt(!1,e,o=>o.parsers&&Object.prototype.hasOwnProperty.call(o.parsers,t));if(r)return r;let n=`Couldn't resolve parser "${t}".`;throw n+=" Plugins must be explicitly added to the standalone bundle.",new Re(n)}function bn(e,t){if(!t)throw new Error("astFormat is required.");let r=zt(!1,e,o=>o.printers&&Object.prototype.hasOwnProperty.call(o.printers,t));if(r)return r;let n=`Couldn't find plugin for AST format "${t}".`;throw n+=" Plugins must be explicitly added to the standalone bundle.",new Re(n)}function Et({plugins:e,parser:t}){let r=Kt(e,t);return Ht(r,t)}function Ht(e,t){let r=e.parsers[t];return typeof r=="function"?r():r}function xn(e,t){let r=e.printers[t];return typeof r=="function"?r():r}var kn={astFormat:"estree",printer:{},originalText:void 0,locStart:null,locEnd:null};async function go(e,t={}){var p;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=en(r,{physicalFile:r.filepath}),!r.parser)throw new Ye(`No parser could be inferred for file "${r.filepath}".`)}else throw new Ye("No parser and no file path given, couldn't infer a parser.");let n=ut({plugins:e.plugins,showDeprecated:!0}).options,o={...kn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},u=Kt(r.plugins,r.parser),i=await Ht(u,r.parser);r.astFormat=i.astFormat,r.locEnd=i.locEnd,r.locStart=i.locStart;let s=(p=u.printers)!=null&&p[i.astFormat]?u:bn(r.plugins,i.astFormat),D=await xn(s,i.astFormat);r.printer=D;let a=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},c={...o,...a};for(let[f,F]of Object.entries(c))(r[f]===null||r[f]===void 0)&&(r[f]=F);return r.parser==="json"&&(r.trailingComma="none"),_n(r,n,{passThrough:Object.keys(kn),...t})}var ie=go;var Mn=Ae(jn());async function Oo(e,t){let r=await Et(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let o;try{o=await r.parse(n,t,t);}catch(u){No(u,e);}return {text:n,ast:o}}function No(e,t){let{loc:r}=e;if(r){let n=(0, Mn.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`
30860
- `+n,e.codeFrame=n,e}throw e}var ce=Oo;async function Vn(e,t,r,n,o){let{embeddedLanguageFormatting:u,printer:{embed:i,hasPrettierIgnore:s=()=>!1,getVisitorKeys:D}}=r;if(!i||u!=="auto")return;if(i.length>2)throw new Error("printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed");let a=X(i.getVisitorKeys??D),c=[];F();let p=e.stack;for(let{print:l,node:d,pathStack:m}of c)try{e.stack=m;let E=await l(f,t,e,r);E&&o.set(d,E);}catch(E){if(globalThis.PRETTIER_DEBUG)throw E}e.stack=p;function f(l,d){return To(l,d,r,n)}function F(){let{node:l}=e;if(l===null||typeof l!="object"||s(e))return;for(let m of a(l))Array.isArray(l[m])?e.each(F,m):e.call(F,m);let d=i(e,r);if(d){if(typeof d=="function"){c.push({print:d,node:l,pathStack:[...e.stack]});return}o.set(l,d);}}}async function To(e,t,r,n){let o=await ie({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:u}=await ce(e,o),i=await n(u,o);return Xe(i)}function So(e,t){let{originalText:r,[Symbol.for("comments")]:n,locStart:o,locEnd:u,[Symbol.for("printedComments")]:i}=t,{node:s}=e,D=o(s),a=u(s);for(let c of n)o(c)>=D&&u(c)<=a&&i.add(c);return r.slice(D,a)}var $n=So;async function Me(e,t){({ast:e}=await Xt(e,t));let r=new Map,n=new Yr(e),u=new Map;await Vn(n,s,t,Me,u);let i=await Wn(n,t,s,void 0,u);return Jr(t),i;function s(a,c){return a===void 0||a===n?D(c):Array.isArray(a)?n.call(()=>D(c),...a):n.call(()=>D(c),a)}function D(a){let c=n.node;if(c==null)return "";let p=c&&typeof c=="object"&&a===void 0;if(p&&r.has(c))return r.get(c);let f=Wn(n,t,s,a,u);return p&&r.set(c,f),f}}function Wn(e,t,r,n,o){var D;let{node:u}=e,{printer:i}=t,s;return (D=i.hasPrettierIgnore)!=null&&D.call(i,e)?s=$n(e,t):o.has(u)?s=o.get(u):s=i.print(e,t,r,n),u===t.cursorNode&&(s=Ze(s,a=>[Oe,a,Oe])),i.printComment&&(!i.willPrintOwnComments||!i.willPrintOwnComments(e,t))&&(s=qr(e,s,t)),s}async function Xt(e,t){let r=e.comments??[];t[Symbol.for("comments")]=r,t[Symbol.for("tokens")]=e.tokens??[],t[Symbol.for("printedComments")]=new Set,zr(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}function vo(e,t){let{cursorOffset:r,locStart:n,locEnd:o}=t,u=X(t.printer.getVisitorKeys),i=D=>n(D)<=r&&o(D)>=r,s=e;for(let D of Vr(e,{getVisitorKeys:u,filter:i}))s=D;return s}var Un=vo;function Po(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let o=X(n),u=r.ignoredProperties??new Set;return i(e);function i(s,D){if(!(s!==null&&typeof s=="object"))return s;if(Array.isArray(s))return s.map(f=>i(f,D)).filter(Boolean);let a={},c=new Set(o(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||u.has(f)||(c.has(f)?a[f]=i(s[f],s):a[f]=s[f]);let p=r(s,a,D);if(p!==null)return p??a}}var Gn=Po;var Lo=({parser:e})=>e==="json"||e==="json5"||e==="jsonc"||e==="json-stringify";function Io(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(o=>Hn.has(o.type)&&n.has(o))}function zn(e){let t=e.length-1;for(;;){let r=e[t];if((r==null?void 0:r.type)==="Program"||(r==null?void 0:r.type)==="File")t--;else break}return e.slice(0,t+1)}function Ro(e,t,{locStart:r,locEnd:n}){let o=e.node,u=t.node;if(o===u)return {startNode:o,endNode:u};let i=r(e.node);for(let D of zn(t.parentNodes))if(r(D)>=i)u=D;else break;let s=n(t.node);for(let D of zn(e.parentNodes)){if(n(D)<=s)o=D;else break;if(o===u)break}return {startNode:o,endNode:u}}function Zt(e,t,r,n,o=[],u){let{locStart:i,locEnd:s}=r,D=i(e),a=s(e);if(!(t>a||t<D||u==="rangeEnd"&&t===D||u==="rangeStart"&&t===a)){for(let c of nt(e,r)){let p=Zt(c,t,r,n,[e,...o],u);if(p)return p}if(!n||n(e,o[0]))return {node:e,parentNodes:o}}}function Yo(e,t){return t!=="DeclareExportDeclaration"&&e!=="TypeParameterDeclaration"&&(e==="Directive"||e==="TypeAlias"||e==="TSExportAssignment"||e.startsWith("Declare")||e.startsWith("TSDeclare")||e.endsWith("Statement")||e.endsWith("Declaration"))}var Hn=new Set(["JsonRoot","ObjectExpression","ArrayExpression","StringLiteral","NumericLiteral","BooleanLiteral","NullLiteral","UnaryExpression","TemplateLiteral"]),jo=new Set(["OperationDefinition","FragmentDefinition","VariableDefinition","TypeExtensionDefinition","ObjectTypeDefinition","FieldDefinition","DirectiveDefinition","EnumTypeDefinition","EnumValueDefinition","InputValueDefinition","InputObjectTypeDefinition","SchemaDefinition","OperationTypeDefinition","InterfaceTypeDefinition","UnionTypeDefinition","ScalarTypeDefinition"]);function Kn(e,t,r){if(!t)return !1;switch(e.parser){case"flow":case"babel":case"babel-flow":case"babel-ts":case"typescript":case"acorn":case"espree":case"meriyah":case"__babel_estree":return Yo(t.type,r==null?void 0:r.type);case"json":case"json5":case"jsonc":case"json-stringify":return Hn.has(t.type);case"graphql":return jo.has(t.kind);case"vue":return t.tag!=="root"}return !1}function qn(e,t,r){let{rangeStart:n,rangeEnd:o,locStart:u,locEnd:i}=t;Le.ok(o>n);let s=e.slice(n,o).search(/\S/),D=s===-1;if(!D)for(n+=s;o>n&&!/\S/.test(e[o-1]);--o);let a=Zt(r,n,t,(F,l)=>Kn(t,F,l),[],"rangeStart"),c=D?a:Zt(r,o,t,F=>Kn(t,F),[],"rangeEnd");if(!a||!c)return {rangeStart:0,rangeEnd:0};let p,f;if(Lo(t)){let F=Io(a,c);p=F,f=F;}else ({startNode:p,endNode:f}=Ro(a,c,t));return {rangeStart:Math.min(u(p),u(f)),rangeEnd:Math.max(i(p),i(f))}}var eu="\uFEFF",Jn=Symbol("cursor");async function tu(e,t,r=0){if(!e||e.trim().length===0)return {formatted:"",cursorOffset:-1,comments:[]};let{ast:n,text:o}=await ce(e,t);t.cursorOffset>=0&&(t.cursorNode=Un(n,t));let u=await Me(n,t);r>0&&(u=qe([q,u],r,t.tabWidth));let i=pe(u,t);if(r>0){let D=i.formatted.trim();i.cursorNodeStart!==void 0&&(i.cursorNodeStart-=i.formatted.indexOf(D)),i.formatted=D+be(t.endOfLine);}let s=t[Symbol.for("comments")];if(t.cursorOffset>=0){let D,a,c,p,f;if(t.cursorNode&&i.cursorNodeText?(D=t.locStart(t.cursorNode),a=o.slice(D,t.locEnd(t.cursorNode)),c=t.cursorOffset-D,p=i.cursorNodeStart,f=i.cursorNodeText):(D=0,a=o,c=t.cursorOffset,p=0,f=i.formatted),a===f)return {formatted:i.formatted,cursorOffset:p+c,comments:s};let F=a.split("");F.splice(c,0,Jn);let l=f.split(""),d=(0, Qn.diffArrays)(F,l),m=p;for(let E of d)if(E.removed){if(E.value.includes(Jn))break}else m+=E.count;return {formatted:i.formatted,cursorOffset:m,comments:s}}return {formatted:i.formatted,cursorOffset:-1,comments:s}}async function Mo(e,t){let{ast:r,text:n}=await ce(e,t),{rangeStart:o,rangeEnd:u}=qn(n,t,r),i=n.slice(o,u),s=Math.min(o,n.lastIndexOf(`
30861
- `,o)+1),D=n.slice(s,o).match(/^\s*/)[0],a=de(D,t.tabWidth),c=await tu(i,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>o&&t.cursorOffset<=u?t.cursorOffset-o:-1,endOfLine:"lf"},a),p=c.formatted.trimEnd(),{cursorOffset:f}=t;f>u?f+=p.length-i.length:c.cursorOffset>=0&&(f=c.cursorOffset+o);let F=n.slice(0,o)+p+n.slice(u);if(t.endOfLine!=="lf"){let l=be(t.endOfLine);f>=0&&l===`\r
30862
- `&&(f+=At(F.slice(0,f),`
30863
- `)),F=re(!1,F,`
30864
- `,l);}return {formatted:F,cursorOffset:f,comments:c.comments}}function Qt(e,t,r){return typeof t!="number"||Number.isNaN(t)||t<0||t>e.length?r:t}function Xn(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:o}=t;return r=Qt(e,r,-1),n=Qt(e,n,0),o=Qt(e,o,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:o}}function ru(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u}=Xn(e,t),i=e.charAt(0)===eu;if(i&&(e=e.slice(1),r--,n--,o--),u==="auto"&&(u=lr(e)),e.includes("\r")){let s=D=>At(e.slice(0,Math.max(D,0)),`\r
30865
- `);r-=s(r),n-=s(n),o-=s(o),e=fr(e);}return {hasBOM:i,text:e,options:Xn(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:o,endOfLine:u})}}async function Zn(e,t){let r=await Et(t);return !r.hasPragma||r.hasPragma(e)}async function er(e,t){let{hasBOM:r,text:n,options:o}=ru(e,await ie(t));if(o.rangeStart>=o.rangeEnd&&n!==""||o.requirePragma&&!await Zn(n,o))return {formatted:e,cursorOffset:t.cursorOffset,comments:[]};let u;return o.rangeStart>0||o.rangeEnd<n.length?u=await Mo(n,o):(!o.requirePragma&&o.insertPragma&&o.printer.insertPragma&&!await Zn(n,o)&&(n=o.printer.insertPragma(n)),u=await tu(n,o)),r&&(u.formatted=eu+u.formatted,u.cursorOffset>=0&&u.cursorOffset++),u}async function nu(e,t,r){let{text:n,options:o}=ru(e,await ie(t)),u=await ce(n,o);return r&&(r.preprocessForPrint&&(u.ast=await Xt(u.ast,o)),r.massage&&(u.ast=Gn(u.ast,o))),u}async function uu(e,t){t=await ie(t);let r=await Me(e,t);return pe(r,t)}async function ou(e,t){let r=br(e),{formatted:n}=await er(r,{...t,parser:"__js_expression"});return n}async function iu(e,t){t=await ie(t);let{ast:r}=await ce(e,t);return Me(r,t)}async function su(e,t){return pe(e,await ie(t))}var tr={};We(tr,{builders:()=>$o,printer:()=>Wo,utils:()=>Uo});var $o={join:Ne,line:Ke,softline:Br,hardline:q,literalline:He,group:_t,conditionalGroup:Cr,fill:ze,lineSuffix:ke,lineSuffixBoundary:yr,cursor:Oe,breakParent:Fe,ifBreak:hr,trim:Ar,indent:De,indentIfBreak:gr,align:se,addAlignmentToDoc:qe,markAsRoot:mr,dedentToRoot:dr,dedent:Er,hardlineWithoutBreakParent:we,literallineWithoutBreakParent:bt,label:_r,concat:e=>e},Wo={printDocToString:pe},Uo={willBreak:Sr,traverseDoc:xe,findInDoc:Je,mapDoc:ve,removeLines:Pr,stripTrailingHardline:Xe,replaceEndOfLine:Lr,canBreak:Ir};var Du="3.3.2";var nr={};We(nr,{addDanglingComment:()=>te,addLeadingComment:()=>ne,addTrailingComment:()=>ue,getAlignmentSize:()=>de,getIndentSize:()=>au,getMaxContinuousCount:()=>cu,getNextNonSpaceNonCommentCharacter:()=>lu,getNextNonSpaceNonCommentCharacterIndex:()=>ri,getStringWidth:()=>Te,hasNewline:()=>U,hasNewlineInRange:()=>fu,hasSpaces:()=>Fu,isNextLineEmpty:()=>ii,isNextLineEmptyAfterIndex:()=>ht,isPreviousLineEmpty:()=>ui,makeString:()=>pu,skip:()=>me,skipEverythingButNewLine:()=>rt,skipInlineComment:()=>Ce,skipNewline:()=>$,skipSpaces:()=>S,skipToLineEnd:()=>tt,skipTrailingComment:()=>he,skipWhitespace:()=>$r});function Go(e,t){if(t===!1)return !1;if(e.charAt(t)==="/"&&e.charAt(t+1)==="*"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)==="*"&&e.charAt(r+1)==="/")return r+2}return t}var Ce=Go;function zo(e,t){return t===!1?!1:e.charAt(t)==="/"&&e.charAt(t+1)==="/"?rt(e,t):t}var he=zo;function Ko(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=Ce(e,n),n=he(e,n),n=$(e,n);return n}var Ve=Ko;function Ho(e,t){let r=null,n=t;for(;n!==r;)r=n,n=tt(e,n),n=Ce(e,n),n=S(e,n);return n=he(e,n),n=$(e,n),n!==!1&&U(e,n)}var ht=Ho;function qo(e,t){let r=e.lastIndexOf(`
30866
- `);return r===-1?0:de(e.slice(r+1).match(/^[\t ]*/)[0],t)}var au=qo;function rr(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Jo(e,t){let r=e.match(new RegExp(`(${rr(t)})+`,"g"));return r===null?0:r.reduce((n,o)=>Math.max(n,o.length/t.length),0)}var cu=Jo;function Xo(e,t){let r=Ve(e,t);return r===!1?"":e.charAt(r)}var lu=Xo;function Zo(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`
30867
- `)return !0;return !1}var fu=Zo;function Qo(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var Fu=Qo;function ei(e,t,r){let n=t==='"'?"'":'"',u=re(!1,e,/\\(.)|(["'])/gs,(i,s,D)=>s===n?s:D===t?"\\"+D:D||(r&&/^[^\n\r"'0-7\\bfnrt-vx\u2028\u2029]$/.test(s)?s:"\\"+s));return t+u+t}var pu=ei;function ti(e,t,r){return Ve(e,r(t))}function ri(e,t){return arguments.length===2||typeof t=="number"?Ve(e,t):ti(...arguments)}function ni(e,t,r){return Ie(e,r(t))}function ui(e,t){return arguments.length===2||typeof t=="number"?Ie(e,t):ni(...arguments)}function oi(e,t,r){return ht(e,r(t))}function ii(e,t){return arguments.length===2||typeof t=="number"?ht(e,t):oi(...arguments)}function le(e,t=1){return async(...r)=>{let n=r[t]??{},o=n.plugins??[];return r[t]={...n,plugins:Array.isArray(o)?o:Object.values(o)},e(...r)}}var du=le(er);async function mu(e,t){let{formatted:r}=await du(e,{...t,cursorOffset:-1});return r}async function si(e,t){return await mu(e,t)===e}var Di=le(ut,0),ai={parse:le(nu),formatAST:le(uu),formatDoc:le(ou),printToDoc:le(iu),printDocToString:le(su)};
30868
-
30869
- function printId(sv) {
30870
- if (needBacktick(sv)) {
30871
- const escapedString = sv
30872
- .replace(/\\/g, "\\\\")
30873
- .replace(/\n/g, "\\n")
30874
- .replace(/\r/g, "\\r")
30875
- .replace(/\t/g, "\\t")
30876
- .replace(/`/g, "\\`");
30877
- return `\`${escapedString}\``;
30878
- }
30879
- else {
30880
- return sv;
30498
+ function willBreak(doc) {
30499
+ return findInDoc(doc, willBreakFn, false);
30500
+ }
30501
+ function breakParentGroup(groupStack) {
30502
+ if (groupStack.length > 0) {
30503
+ const parentGroup = at_default(
30504
+ /* isOptionalObject */
30505
+ false,
30506
+ groupStack,
30507
+ -1
30508
+ );
30509
+ if (!parentGroup.expandedStates && !parentGroup.break) {
30510
+ parentGroup.break = "propagated";
30881
30511
  }
30512
+ }
30513
+ return null;
30882
30514
  }
30883
- function needBacktick(sv) {
30884
- if (sv.length === 0) {
30885
- return false;
30515
+ function propagateBreaks(doc) {
30516
+ const alreadyVisitedSet = /* @__PURE__ */ new Set();
30517
+ const groupStack = [];
30518
+ function propagateBreaksOnEnterFn(doc2) {
30519
+ if (doc2.type === DOC_TYPE_BREAK_PARENT) {
30520
+ breakParentGroup(groupStack);
30886
30521
  }
30887
- if (Keywords.has(sv)) {
30888
- return true;
30522
+ if (doc2.type === DOC_TYPE_GROUP) {
30523
+ groupStack.push(doc2);
30524
+ if (alreadyVisitedSet.has(doc2)) {
30525
+ return false;
30526
+ }
30527
+ alreadyVisitedSet.add(doc2);
30889
30528
  }
30890
- let cp = sv.codePointAt(0);
30891
- if (!isIdentifierStart(cp)) {
30892
- return true;
30529
+ }
30530
+ function propagateBreaksOnExitFn(doc2) {
30531
+ if (doc2.type === DOC_TYPE_GROUP) {
30532
+ const group2 = groupStack.pop();
30533
+ if (group2.break) {
30534
+ breakParentGroup(groupStack);
30535
+ }
30893
30536
  }
30894
- let pos = 0;
30895
- do {
30896
- pos += utf16CodeUnits(cp);
30897
- } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));
30898
- return pos < sv.length;
30537
+ }
30538
+ traverse_doc_default(
30539
+ doc,
30540
+ propagateBreaksOnEnterFn,
30541
+ propagateBreaksOnExitFn,
30542
+ /* shouldTraverseConditionalGroups */
30543
+ true
30544
+ );
30899
30545
  }
30900
- var CommentCheckFlags;
30901
- (function (CommentCheckFlags) {
30902
- /** Check comment is a leading comment */
30903
- CommentCheckFlags[CommentCheckFlags["Leading"] = 2] = "Leading";
30904
- /** Check comment is a trailing comment */
30905
- CommentCheckFlags[CommentCheckFlags["Trailing"] = 4] = "Trailing";
30906
- /** Check comment is a dangling comment */
30907
- CommentCheckFlags[CommentCheckFlags["Dangling"] = 8] = "Dangling";
30908
- /** Check comment is a block comment */
30909
- CommentCheckFlags[CommentCheckFlags["Block"] = 16] = "Block";
30910
- /** Check comment is a line comment */
30911
- CommentCheckFlags[CommentCheckFlags["Line"] = 32] = "Line";
30912
- /** Check comment is a `prettier-ignore` comment */
30913
- CommentCheckFlags[CommentCheckFlags["PrettierIgnore"] = 64] = "PrettierIgnore";
30914
- /** Check comment is the first attached comment */
30915
- CommentCheckFlags[CommentCheckFlags["First"] = 128] = "First";
30916
- /** Check comment is the last attached comment */
30917
- CommentCheckFlags[CommentCheckFlags["Last"] = 256] = "Last";
30918
- })(CommentCheckFlags || (CommentCheckFlags = {}));
30919
-
30920
- function getTypeName(type, options) {
30921
- switch (type.kind) {
30922
- case "Namespace":
30923
- return getNamespaceFullName(type, options);
30924
- case "TemplateParameter":
30925
- return getIdentifierName(type.node.id.sv, options);
30926
- case "Scalar":
30927
- return getScalarName(type, options);
30928
- case "Model":
30929
- return getModelName(type, options);
30930
- case "ModelProperty":
30931
- return getModelPropertyName(type, options);
30932
- case "Interface":
30933
- return getInterfaceName(type, options);
30934
- case "Operation":
30935
- return getOperationName(type, options);
30936
- case "Enum":
30937
- return getEnumName(type, options);
30938
- case "EnumMember":
30939
- return `${getEnumName(type.enum, options)}.${getIdentifierName(type.name, options)}`;
30940
- case "Union":
30941
- return getUnionName(type, options);
30942
- case "UnionVariant":
30943
- return getTypeName(type.type, options);
30944
- case "Tuple":
30945
- return "[" + type.values.map((x) => getTypeName(x, options)).join(", ") + "]";
30946
- case "StringTemplate":
30947
- return getStringTemplateName(type);
30948
- case "String":
30949
- return `"${type.value}"`;
30950
- case "Number":
30951
- return type.valueAsString;
30952
- case "Boolean":
30953
- return type.value.toString();
30954
- case "Intrinsic":
30955
- return type.name;
30956
- default:
30957
- return `(unnamed type)`;
30546
+ function removeLinesFn(doc) {
30547
+ if (doc.type === DOC_TYPE_LINE && !doc.hard) {
30548
+ return doc.soft ? "" : " ";
30549
+ }
30550
+ if (doc.type === DOC_TYPE_IF_BREAK) {
30551
+ return doc.flatContents;
30552
+ }
30553
+ return doc;
30554
+ }
30555
+ function removeLines(doc) {
30556
+ return mapDoc(doc, removeLinesFn);
30557
+ }
30558
+ function stripTrailingHardlineFromParts(parts) {
30559
+ parts = [...parts];
30560
+ while (parts.length >= 2 && at_default(
30561
+ /* isOptionalObject */
30562
+ false,
30563
+ parts,
30564
+ -2
30565
+ ).type === DOC_TYPE_LINE && at_default(
30566
+ /* isOptionalObject */
30567
+ false,
30568
+ parts,
30569
+ -1
30570
+ ).type === DOC_TYPE_BREAK_PARENT) {
30571
+ parts.length -= 2;
30572
+ }
30573
+ if (parts.length > 0) {
30574
+ const lastPart = stripTrailingHardlineFromDoc(at_default(
30575
+ /* isOptionalObject */
30576
+ false,
30577
+ parts,
30578
+ -1
30579
+ ));
30580
+ parts[parts.length - 1] = lastPart;
30581
+ }
30582
+ return parts;
30583
+ }
30584
+ function stripTrailingHardlineFromDoc(doc) {
30585
+ switch (get_doc_type_default(doc)) {
30586
+ case DOC_TYPE_INDENT:
30587
+ case DOC_TYPE_INDENT_IF_BREAK:
30588
+ case DOC_TYPE_GROUP:
30589
+ case DOC_TYPE_LINE_SUFFIX:
30590
+ case DOC_TYPE_LABEL: {
30591
+ const contents = stripTrailingHardlineFromDoc(doc.contents);
30592
+ return {
30593
+ ...doc,
30594
+ contents
30595
+ };
30958
30596
  }
30597
+ case DOC_TYPE_IF_BREAK:
30598
+ return {
30599
+ ...doc,
30600
+ breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
30601
+ flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
30602
+ };
30603
+ case DOC_TYPE_FILL:
30604
+ return {
30605
+ ...doc,
30606
+ parts: stripTrailingHardlineFromParts(doc.parts)
30607
+ };
30608
+ case DOC_TYPE_ARRAY:
30609
+ return stripTrailingHardlineFromParts(doc);
30610
+ case DOC_TYPE_STRING:
30611
+ return doc.replace(/[\n\r]*$/, "");
30612
+ case DOC_TYPE_ALIGN:
30613
+ case DOC_TYPE_CURSOR:
30614
+ case DOC_TYPE_TRIM:
30615
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30616
+ case DOC_TYPE_LINE:
30617
+ case DOC_TYPE_BREAK_PARENT:
30618
+ break;
30619
+ default:
30620
+ throw new invalid_doc_error_default(doc);
30621
+ }
30622
+ return doc;
30959
30623
  }
30960
- function getValuePreview(value, options) {
30961
- switch (value.valueKind) {
30962
- case "ObjectValue":
30963
- return `#{${[...value.properties.entries()].map(([name, value]) => `${name}: ${getValuePreview(value.value, options)}`).join(", ")}}`;
30964
- case "ArrayValue":
30965
- return `#[${value.values.map((x) => getValuePreview(x, options)).join(", ")}]`;
30966
- case "StringValue":
30967
- return `"${value.value}"`;
30968
- case "BooleanValue":
30969
- return `${value.value}`;
30970
- case "NumericValue":
30971
- return `${value.value.toString()}`;
30972
- case "EnumValue":
30973
- return getTypeName(value.value);
30974
- case "NullValue":
30975
- return "null";
30976
- case "ScalarValue":
30977
- return `${getTypeName(value.type, options)}.${value.value.name}(${value.value.args.map((x) => getValuePreview(x, options)).join(", ")}})`;
30978
- }
30624
+ function stripTrailingHardline(doc) {
30625
+ return stripTrailingHardlineFromDoc(cleanDoc(doc));
30979
30626
  }
30980
- function getEntityName(entity, options) {
30981
- if (isValue(entity)) {
30982
- return getValuePreview(entity, options);
30983
- }
30984
- else if (isType(entity)) {
30985
- return getTypeName(entity, options);
30986
- }
30987
- else {
30988
- switch (entity.entityKind) {
30989
- case "MixedParameterConstraint":
30990
- return [
30991
- entity.type && getEntityName(entity.type),
30992
- entity.valueType && `valueof ${getEntityName(entity.valueType)}`,
30993
- ]
30994
- .filter(isDefined)
30995
- .join(" | ");
30996
- case "Indeterminate":
30997
- return getTypeName(entity.type, options);
30627
+ function cleanDocFn(doc) {
30628
+ switch (get_doc_type_default(doc)) {
30629
+ case DOC_TYPE_FILL:
30630
+ if (doc.parts.every((part) => part === "")) {
30631
+ return "";
30632
+ }
30633
+ break;
30634
+ case DOC_TYPE_GROUP:
30635
+ if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {
30636
+ return "";
30637
+ }
30638
+ if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {
30639
+ return doc.contents;
30640
+ }
30641
+ break;
30642
+ case DOC_TYPE_ALIGN:
30643
+ case DOC_TYPE_INDENT:
30644
+ case DOC_TYPE_INDENT_IF_BREAK:
30645
+ case DOC_TYPE_LINE_SUFFIX:
30646
+ if (!doc.contents) {
30647
+ return "";
30648
+ }
30649
+ break;
30650
+ case DOC_TYPE_IF_BREAK:
30651
+ if (!doc.flatContents && !doc.breakContents) {
30652
+ return "";
30653
+ }
30654
+ break;
30655
+ case DOC_TYPE_ARRAY: {
30656
+ const parts = [];
30657
+ for (const part of doc) {
30658
+ if (!part) {
30659
+ continue;
30660
+ }
30661
+ const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
30662
+ if (typeof currentPart === "string" && typeof at_default(
30663
+ /* isOptionalObject */
30664
+ false,
30665
+ parts,
30666
+ -1
30667
+ ) === "string") {
30668
+ parts[parts.length - 1] += currentPart;
30669
+ } else {
30670
+ parts.push(currentPart);
30998
30671
  }
30672
+ parts.push(...restParts);
30673
+ }
30674
+ if (parts.length === 0) {
30675
+ return "";
30676
+ }
30677
+ if (parts.length === 1) {
30678
+ return parts[0];
30679
+ }
30680
+ return parts;
30999
30681
  }
30682
+ case DOC_TYPE_STRING:
30683
+ case DOC_TYPE_CURSOR:
30684
+ case DOC_TYPE_TRIM:
30685
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30686
+ case DOC_TYPE_LINE:
30687
+ case DOC_TYPE_LABEL:
30688
+ case DOC_TYPE_BREAK_PARENT:
30689
+ break;
30690
+ default:
30691
+ throw new invalid_doc_error_default(doc);
30692
+ }
30693
+ return doc;
31000
30694
  }
31001
- function isStdNamespace(namespace) {
31002
- return ((namespace.name === "TypeSpec" && namespace.namespace?.name === "") ||
31003
- (namespace.name === "Reflection" &&
31004
- namespace.namespace?.name === "TypeSpec" &&
31005
- namespace.namespace?.namespace?.name === ""));
30695
+ function cleanDoc(doc) {
30696
+ return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
31006
30697
  }
31007
- /**
31008
- * Return the full name of the namespace(e.g. "Foo.Bar")
31009
- * @param type namespace type
31010
- * @param options
31011
- * @returns
31012
- */
31013
- function getNamespaceFullName(type, options) {
31014
- const segments = [];
31015
- let current = type;
31016
- while (current && current.name !== "") {
31017
- segments.unshift(getIdentifierName(current.name, options));
31018
- current = current.namespace;
31019
- }
31020
- return segments.join(".");
30698
+ function replaceEndOfLine(doc, replacement = literalline) {
30699
+ return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
31021
30700
  }
31022
- function getNamespacePrefix(type, options) {
31023
- if (type === undefined || isStdNamespace(type)) {
31024
- return "";
31025
- }
31026
- const namespaceFullName = getNamespaceFullName(type, options);
31027
- return namespaceFullName !== "" ? namespaceFullName + "." : "";
30701
+ function canBreakFn(doc) {
30702
+ if (doc.type === DOC_TYPE_LINE) {
30703
+ return true;
30704
+ }
31028
30705
  }
31029
- function getEnumName(e, options) {
31030
- return `${getNamespacePrefix(e.namespace, options)}${getIdentifierName(e.name, options)}`;
30706
+ function canBreak(doc) {
30707
+ return findInDoc(doc, canBreakFn, false);
31031
30708
  }
31032
- function getScalarName(scalar, options) {
31033
- return `${getNamespacePrefix(scalar.namespace, options)}${getIdentifierName(scalar.name, options)}`;
30709
+
30710
+ // src/document/printer.js
30711
+ var MODE_BREAK = Symbol("MODE_BREAK");
30712
+ var MODE_FLAT = Symbol("MODE_FLAT");
30713
+ var CURSOR_PLACEHOLDER = Symbol("cursor");
30714
+ function rootIndent() {
30715
+ return {
30716
+ value: "",
30717
+ length: 0,
30718
+ queue: []
30719
+ };
31034
30720
  }
31035
- function getModelName(model, options) {
31036
- const nsPrefix = getNamespacePrefix(model.namespace, options);
31037
- if (model.name === "" && model.properties.size === 0) {
31038
- return "{}";
31039
- }
31040
- if (model.indexer && model.indexer.key.kind === "Scalar") {
31041
- if (model.name === "Array" && isInTypeSpecNamespace(model)) {
31042
- return `${getTypeName(model.indexer.value, options)}[]`;
30721
+ function makeIndent(ind, options) {
30722
+ return generateInd(ind, {
30723
+ type: "indent"
30724
+ }, options);
30725
+ }
30726
+ function makeAlign(indent2, widthOrDoc, options) {
30727
+ if (widthOrDoc === Number.NEGATIVE_INFINITY) {
30728
+ return indent2.root || rootIndent();
30729
+ }
30730
+ if (widthOrDoc < 0) {
30731
+ return generateInd(indent2, {
30732
+ type: "dedent"
30733
+ }, options);
30734
+ }
30735
+ if (!widthOrDoc) {
30736
+ return indent2;
30737
+ }
30738
+ if (widthOrDoc.type === "root") {
30739
+ return {
30740
+ ...indent2,
30741
+ root: indent2
30742
+ };
30743
+ }
30744
+ const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
30745
+ return generateInd(indent2, {
30746
+ type: alignType,
30747
+ n: widthOrDoc
30748
+ }, options);
30749
+ }
30750
+ function generateInd(ind, newPart, options) {
30751
+ const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
30752
+ let value = "";
30753
+ let length = 0;
30754
+ let lastTabs = 0;
30755
+ let lastSpaces = 0;
30756
+ for (const part of queue) {
30757
+ switch (part.type) {
30758
+ case "indent":
30759
+ flush();
30760
+ if (options.useTabs) {
30761
+ addTabs(1);
30762
+ } else {
30763
+ addSpaces(options.tabWidth);
31043
30764
  }
30765
+ break;
30766
+ case "stringAlign":
30767
+ flush();
30768
+ value += part.n;
30769
+ length += part.n.length;
30770
+ break;
30771
+ case "numberAlign":
30772
+ lastTabs += 1;
30773
+ lastSpaces += part.n;
30774
+ break;
30775
+ default:
30776
+ throw new Error(`Unexpected type '${part.type}'`);
31044
30777
  }
31045
- if (model.name === "") {
31046
- return (nsPrefix +
31047
- `{ ${[...model.properties.values()].map((prop) => `${prop.name}: ${getTypeName(prop.type, options)}`).join(", ")} }`);
31048
- }
31049
- const modelName = nsPrefix + getIdentifierName(model.name, options);
31050
- if (isTemplateInstance(model)) {
31051
- // template instantiation
31052
- const args = model.templateMapper.args.map((x) => getEntityName(x, options));
31053
- return `${modelName}<${args.join(", ")}>`;
31054
- }
31055
- else if (model.node?.templateParameters?.length > 0) {
31056
- // template
31057
- const params = model.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
31058
- return `${modelName}<${params.join(", ")}>`;
31059
- }
31060
- else {
31061
- // regular old model.
31062
- return modelName;
30778
+ }
30779
+ flushSpaces();
30780
+ return {
30781
+ ...ind,
30782
+ value,
30783
+ length,
30784
+ queue
30785
+ };
30786
+ function addTabs(count) {
30787
+ value += " ".repeat(count);
30788
+ length += options.tabWidth * count;
30789
+ }
30790
+ function addSpaces(count) {
30791
+ value += " ".repeat(count);
30792
+ length += count;
30793
+ }
30794
+ function flush() {
30795
+ if (options.useTabs) {
30796
+ flushTabs();
30797
+ } else {
30798
+ flushSpaces();
31063
30799
  }
31064
- }
31065
- function getUnionName(type, options) {
31066
- const nsPrefix = getNamespacePrefix(type.namespace, options);
31067
- const typeName = type.name
31068
- ? getIdentifierName(type.name, options)
31069
- : [...type.variants.values()].map((x) => getTypeName(x.type, options)).join(" | ");
31070
- return nsPrefix + typeName;
31071
- }
31072
- /**
31073
- * Check if the given namespace is the standard library `TypeSpec` namespace.
31074
- */
31075
- function isTypeSpecNamespace(namespace) {
31076
- return namespace.name === "TypeSpec" && namespace.namespace?.name === "";
31077
- }
31078
- /**
31079
- * Check if the given type is defined right in the TypeSpec namespace.
31080
- */
31081
- function isInTypeSpecNamespace(type) {
31082
- return Boolean(type.namespace && isTypeSpecNamespace(type.namespace));
31083
- }
31084
- function getModelPropertyName(prop, options) {
31085
- const modelName = prop.model ? getModelName(prop.model, options) : undefined;
31086
- return `${modelName ?? "(anonymous model)"}.${prop.name}`;
31087
- }
31088
- function getInterfaceName(iface, options) {
31089
- let interfaceName = getIdentifierName(iface.name, options);
31090
- if (isTemplateInstance(iface)) {
31091
- interfaceName += `<${iface.templateMapper.args
31092
- .map((x) => getEntityName(x, options))
31093
- .join(", ")}>`;
30800
+ }
30801
+ function flushTabs() {
30802
+ if (lastTabs > 0) {
30803
+ addTabs(lastTabs);
31094
30804
  }
31095
- return `${getNamespacePrefix(iface.namespace, options)}${interfaceName}`;
31096
- }
31097
- function getOperationName(op, options) {
31098
- let opName = getIdentifierName(op.name, options);
31099
- if (op.node.templateParameters.length > 0) {
31100
- // template
31101
- const params = op.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
31102
- opName += `<${params.join(", ")}>`;
30805
+ resetLast();
30806
+ }
30807
+ function flushSpaces() {
30808
+ if (lastSpaces > 0) {
30809
+ addSpaces(lastSpaces);
31103
30810
  }
31104
- const prefix = op.interface
31105
- ? getInterfaceName(op.interface, options) + "."
31106
- : getNamespacePrefix(op.namespace, options);
31107
- return `${prefix}${opName}`;
31108
- }
31109
- function getIdentifierName(name, options) {
31110
- return options?.printable ? printId(name) : name;
30811
+ resetLast();
30812
+ }
30813
+ function resetLast() {
30814
+ lastTabs = 0;
30815
+ lastSpaces = 0;
30816
+ }
31111
30817
  }
31112
- function getStringTemplateName(type) {
31113
- if (type.stringValue) {
31114
- return `"${type.stringValue}"`;
30818
+ function trim2(out) {
30819
+ let trimCount = 0;
30820
+ let cursorCount = 0;
30821
+ let outIndex = out.length;
30822
+ outer: while (outIndex--) {
30823
+ const last = out[outIndex];
30824
+ if (last === CURSOR_PLACEHOLDER) {
30825
+ cursorCount++;
30826
+ continue;
31115
30827
  }
31116
- return "string";
31117
- }
31118
-
31119
- class InvalidNumericError extends Error {
31120
- code = "InvalidNumeric";
31121
- }
31122
- /** @internal */
31123
- const InternalDataSym = Symbol.for("NumericInternalData");
31124
- /**
31125
- * Represent any possible numeric value
31126
- */
31127
- function Numeric(stringValue) {
31128
- if (new.target) {
31129
- throw new Error("Numeric is not a constructor");
30828
+ for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {
30829
+ const char = last[charIndex];
30830
+ if (char === " " || char === " ") {
30831
+ trimCount++;
30832
+ } else {
30833
+ out[outIndex] = last.slice(0, charIndex + 1);
30834
+ break outer;
30835
+ }
31130
30836
  }
31131
- const data = parse$1(stringValue);
31132
- const isInteger = data.d === 0;
31133
- const obj = {
31134
- [InternalDataSym]: data,
31135
- isInteger,
31136
- };
31137
- // We are explicitly not using a class here due to version mismatch between the compiler and the runtime that could happen and break instanceof checks.
31138
- const numeric = setTypedProptotype(obj, NumericPrototype);
31139
- return Object.freeze(numeric);
31140
- }
31141
- function setTypedProptotype(obj, prototype) {
31142
- Object.setPrototypeOf(obj, prototype);
31143
- return obj;
30837
+ }
30838
+ if (trimCount > 0 || cursorCount > 0) {
30839
+ out.length = outIndex + 1;
30840
+ while (cursorCount-- > 0) {
30841
+ out.push(CURSOR_PLACEHOLDER);
30842
+ }
30843
+ }
30844
+ return trimCount;
31144
30845
  }
31145
- function parse$1(original) {
31146
- let stringValue = original;
31147
- let start = 0;
31148
- let sign = 1;
31149
- let n;
31150
- let exp;
31151
- let decimal;
31152
- if (stringValue[0] === "-") {
31153
- start = 1;
31154
- sign = -1;
30846
+ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {
30847
+ if (width === Number.POSITIVE_INFINITY) {
30848
+ return true;
30849
+ }
30850
+ let restIdx = restCommands.length;
30851
+ const cmds = [next];
30852
+ const out = [];
30853
+ while (width >= 0) {
30854
+ if (cmds.length === 0) {
30855
+ if (restIdx === 0) {
30856
+ return true;
30857
+ }
30858
+ cmds.push(restCommands[--restIdx]);
30859
+ continue;
31155
30860
  }
31156
- const second = stringValue[start + 1]?.toLowerCase();
31157
- if (stringValue[start] === "0" && (second === "b" || second === "x" || second === "o")) {
31158
- try {
31159
- n = BigInt(stringValue.slice(start));
31160
- exp = n.toString().length;
31161
- decimal = 0;
30861
+ const {
30862
+ mode,
30863
+ doc
30864
+ } = cmds.pop();
30865
+ const docType = get_doc_type_default(doc);
30866
+ switch (docType) {
30867
+ case DOC_TYPE_STRING:
30868
+ out.push(doc);
30869
+ width -= get_string_width_default(doc);
30870
+ break;
30871
+ case DOC_TYPE_ARRAY:
30872
+ case DOC_TYPE_FILL: {
30873
+ const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
30874
+ for (let i = parts.length - 1; i >= 0; i--) {
30875
+ cmds.push({
30876
+ mode,
30877
+ doc: parts[i]
30878
+ });
31162
30879
  }
31163
- catch {
31164
- throw new InvalidNumericError(`Invalid numeric value: ${original}`);
30880
+ break;
30881
+ }
30882
+ case DOC_TYPE_INDENT:
30883
+ case DOC_TYPE_ALIGN:
30884
+ case DOC_TYPE_INDENT_IF_BREAK:
30885
+ case DOC_TYPE_LABEL:
30886
+ cmds.push({
30887
+ mode,
30888
+ doc: doc.contents
30889
+ });
30890
+ break;
30891
+ case DOC_TYPE_TRIM:
30892
+ width += trim2(out);
30893
+ break;
30894
+ case DOC_TYPE_GROUP: {
30895
+ if (mustBeFlat && doc.break) {
30896
+ return false;
30897
+ }
30898
+ const groupMode = doc.break ? MODE_BREAK : mode;
30899
+ const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(
30900
+ /* isOptionalObject */
30901
+ false,
30902
+ doc.expandedStates,
30903
+ -1
30904
+ ) : doc.contents;
30905
+ cmds.push({
30906
+ mode: groupMode,
30907
+ doc: contents
30908
+ });
30909
+ break;
30910
+ }
30911
+ case DOC_TYPE_IF_BREAK: {
30912
+ const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
30913
+ const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
30914
+ if (contents) {
30915
+ cmds.push({
30916
+ mode,
30917
+ doc: contents
30918
+ });
30919
+ }
30920
+ break;
30921
+ }
30922
+ case DOC_TYPE_LINE:
30923
+ if (mode === MODE_BREAK || doc.hard) {
30924
+ return true;
30925
+ }
30926
+ if (!doc.soft) {
30927
+ out.push(" ");
30928
+ width--;
30929
+ }
30930
+ break;
30931
+ case DOC_TYPE_LINE_SUFFIX:
30932
+ hasLineSuffix = true;
30933
+ break;
30934
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
30935
+ if (hasLineSuffix) {
30936
+ return false;
30937
+ }
30938
+ break;
30939
+ }
30940
+ }
30941
+ return false;
30942
+ }
30943
+ function printDocToString(doc, options) {
30944
+ const groupModeMap = {};
30945
+ const width = options.printWidth;
30946
+ const newLine = convertEndOfLineToChars(options.endOfLine);
30947
+ let pos = 0;
30948
+ const cmds = [{
30949
+ ind: rootIndent(),
30950
+ mode: MODE_BREAK,
30951
+ doc
30952
+ }];
30953
+ const out = [];
30954
+ let shouldRemeasure = false;
30955
+ const lineSuffix2 = [];
30956
+ let printedCursorCount = 0;
30957
+ propagateBreaks(doc);
30958
+ while (cmds.length > 0) {
30959
+ const {
30960
+ ind,
30961
+ mode,
30962
+ doc: doc2
30963
+ } = cmds.pop();
30964
+ switch (get_doc_type_default(doc2)) {
30965
+ case DOC_TYPE_STRING: {
30966
+ const formatted = newLine !== "\n" ? string_replace_all_default(
30967
+ /* isOptionalObject */
30968
+ false,
30969
+ doc2,
30970
+ "\n",
30971
+ newLine
30972
+ ) : doc2;
30973
+ out.push(formatted);
30974
+ if (cmds.length > 0) {
30975
+ pos += get_string_width_default(formatted);
31165
30976
  }
31166
- }
31167
- else {
31168
- // Skip leading 0.
31169
- while (stringValue[start] === "0") {
31170
- start++;
30977
+ break;
30978
+ }
30979
+ case DOC_TYPE_ARRAY:
30980
+ for (let i = doc2.length - 1; i >= 0; i--) {
30981
+ cmds.push({
30982
+ ind,
30983
+ mode,
30984
+ doc: doc2[i]
30985
+ });
31171
30986
  }
31172
- const decimalPointIndex = stringValue.indexOf(".");
31173
- const adjustedPointIndex = decimalPointIndex - start;
31174
- // Decimal point?
31175
- if (decimalPointIndex !== -1) {
31176
- exp = adjustedPointIndex;
31177
- stringValue = stringValue.replace(".", "");
30987
+ break;
30988
+ case DOC_TYPE_CURSOR:
30989
+ if (printedCursorCount >= 2) {
30990
+ throw new Error("There are too many 'cursor' in doc.");
31178
30991
  }
31179
- let i;
31180
- if ((i = stringValue.search(/e/i)) > 0) {
31181
- // Determine exponent.
31182
- if (exp === undefined) {
31183
- exp = i - start;
30992
+ out.push(CURSOR_PLACEHOLDER);
30993
+ printedCursorCount++;
30994
+ break;
30995
+ case DOC_TYPE_INDENT:
30996
+ cmds.push({
30997
+ ind: makeIndent(ind, options),
30998
+ mode,
30999
+ doc: doc2.contents
31000
+ });
31001
+ break;
31002
+ case DOC_TYPE_ALIGN:
31003
+ cmds.push({
31004
+ ind: makeAlign(ind, doc2.n, options),
31005
+ mode,
31006
+ doc: doc2.contents
31007
+ });
31008
+ break;
31009
+ case DOC_TYPE_TRIM:
31010
+ pos -= trim2(out);
31011
+ break;
31012
+ case DOC_TYPE_GROUP:
31013
+ switch (mode) {
31014
+ case MODE_FLAT:
31015
+ if (!shouldRemeasure) {
31016
+ cmds.push({
31017
+ ind,
31018
+ mode: doc2.break ? MODE_BREAK : MODE_FLAT,
31019
+ doc: doc2.contents
31020
+ });
31021
+ break;
31184
31022
  }
31185
- exp += Number(stringValue.slice(i + 1));
31186
- stringValue = stringValue.slice(start, i);
31023
+ case MODE_BREAK: {
31024
+ shouldRemeasure = false;
31025
+ const next = {
31026
+ ind,
31027
+ mode: MODE_FLAT,
31028
+ doc: doc2.contents
31029
+ };
31030
+ const rem = width - pos;
31031
+ const hasLineSuffix = lineSuffix2.length > 0;
31032
+ if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
31033
+ cmds.push(next);
31034
+ } else {
31035
+ if (doc2.expandedStates) {
31036
+ const mostExpanded = at_default(
31037
+ /* isOptionalObject */
31038
+ false,
31039
+ doc2.expandedStates,
31040
+ -1
31041
+ );
31042
+ if (doc2.break) {
31043
+ cmds.push({
31044
+ ind,
31045
+ mode: MODE_BREAK,
31046
+ doc: mostExpanded
31047
+ });
31048
+ break;
31049
+ } else {
31050
+ for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
31051
+ if (i >= doc2.expandedStates.length) {
31052
+ cmds.push({
31053
+ ind,
31054
+ mode: MODE_BREAK,
31055
+ doc: mostExpanded
31056
+ });
31057
+ break;
31058
+ } else {
31059
+ const state = doc2.expandedStates[i];
31060
+ const cmd = {
31061
+ ind,
31062
+ mode: MODE_FLAT,
31063
+ doc: state
31064
+ };
31065
+ if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
31066
+ cmds.push(cmd);
31067
+ break;
31068
+ }
31069
+ }
31070
+ }
31071
+ }
31072
+ } else {
31073
+ cmds.push({
31074
+ ind,
31075
+ mode: MODE_BREAK,
31076
+ doc: doc2.contents
31077
+ });
31078
+ }
31079
+ }
31080
+ break;
31081
+ }
31187
31082
  }
31188
- else if (exp === undefined) {
31189
- // Integer.
31190
- exp = stringValue.length - start;
31191
- stringValue = stringValue.slice(start);
31083
+ if (doc2.id) {
31084
+ groupModeMap[doc2.id] = at_default(
31085
+ /* isOptionalObject */
31086
+ false,
31087
+ cmds,
31088
+ -1
31089
+ ).mode;
31192
31090
  }
31193
- else {
31194
- stringValue = stringValue.slice(start);
31091
+ break;
31092
+ case DOC_TYPE_FILL: {
31093
+ const rem = width - pos;
31094
+ const {
31095
+ parts
31096
+ } = doc2;
31097
+ if (parts.length === 0) {
31098
+ break;
31195
31099
  }
31196
- let end = stringValue.length;
31197
- while (stringValue[end - 1] === "0" && end > adjustedPointIndex) {
31198
- end--;
31100
+ const [content, whitespace] = parts;
31101
+ const contentFlatCmd = {
31102
+ ind,
31103
+ mode: MODE_FLAT,
31104
+ doc: content
31105
+ };
31106
+ const contentBreakCmd = {
31107
+ ind,
31108
+ mode: MODE_BREAK,
31109
+ doc: content
31110
+ };
31111
+ const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
31112
+ if (parts.length === 1) {
31113
+ if (contentFits) {
31114
+ cmds.push(contentFlatCmd);
31115
+ } else {
31116
+ cmds.push(contentBreakCmd);
31117
+ }
31118
+ break;
31119
+ }
31120
+ const whitespaceFlatCmd = {
31121
+ ind,
31122
+ mode: MODE_FLAT,
31123
+ doc: whitespace
31124
+ };
31125
+ const whitespaceBreakCmd = {
31126
+ ind,
31127
+ mode: MODE_BREAK,
31128
+ doc: whitespace
31129
+ };
31130
+ if (parts.length === 2) {
31131
+ if (contentFits) {
31132
+ cmds.push(whitespaceFlatCmd, contentFlatCmd);
31133
+ } else {
31134
+ cmds.push(whitespaceBreakCmd, contentBreakCmd);
31135
+ }
31136
+ break;
31137
+ }
31138
+ parts.splice(0, 2);
31139
+ const remainingCmd = {
31140
+ ind,
31141
+ mode,
31142
+ doc: fill(parts)
31143
+ };
31144
+ const secondContent = parts[0];
31145
+ const firstAndSecondContentFlatCmd = {
31146
+ ind,
31147
+ mode: MODE_FLAT,
31148
+ doc: [content, whitespace, secondContent]
31149
+ };
31150
+ const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
31151
+ if (firstAndSecondContentFits) {
31152
+ cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
31153
+ } else if (contentFits) {
31154
+ cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);
31155
+ } else {
31156
+ cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);
31157
+ }
31158
+ break;
31159
+ }
31160
+ case DOC_TYPE_IF_BREAK:
31161
+ case DOC_TYPE_INDENT_IF_BREAK: {
31162
+ const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;
31163
+ if (groupMode === MODE_BREAK) {
31164
+ const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
31165
+ if (breakContents) {
31166
+ cmds.push({
31167
+ ind,
31168
+ mode,
31169
+ doc: breakContents
31170
+ });
31171
+ }
31172
+ }
31173
+ if (groupMode === MODE_FLAT) {
31174
+ const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
31175
+ if (flatContents) {
31176
+ cmds.push({
31177
+ ind,
31178
+ mode,
31179
+ doc: flatContents
31180
+ });
31181
+ }
31199
31182
  }
31200
- try {
31201
- stringValue = stringValue.slice(0, end);
31202
- stringValue = stringValue + "0".repeat(Math.max(exp - stringValue.length, 0)); // add remaining zeros for cases like 3e30
31203
- n = BigInt(stringValue);
31204
- decimal = n === 0n ? 0 : Math.max(stringValue.length - exp, 0);
31183
+ break;
31184
+ }
31185
+ case DOC_TYPE_LINE_SUFFIX:
31186
+ lineSuffix2.push({
31187
+ ind,
31188
+ mode,
31189
+ doc: doc2.contents
31190
+ });
31191
+ break;
31192
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
31193
+ if (lineSuffix2.length > 0) {
31194
+ cmds.push({
31195
+ ind,
31196
+ mode,
31197
+ doc: hardlineWithoutBreakParent
31198
+ });
31205
31199
  }
31206
- catch {
31207
- throw new InvalidNumericError(`Invalid numeric value: ${original}`);
31200
+ break;
31201
+ case DOC_TYPE_LINE:
31202
+ switch (mode) {
31203
+ case MODE_FLAT:
31204
+ if (!doc2.hard) {
31205
+ if (!doc2.soft) {
31206
+ out.push(" ");
31207
+ pos += 1;
31208
+ }
31209
+ break;
31210
+ } else {
31211
+ shouldRemeasure = true;
31212
+ }
31213
+ case MODE_BREAK:
31214
+ if (lineSuffix2.length > 0) {
31215
+ cmds.push({
31216
+ ind,
31217
+ mode,
31218
+ doc: doc2
31219
+ }, ...lineSuffix2.reverse());
31220
+ lineSuffix2.length = 0;
31221
+ break;
31222
+ }
31223
+ if (doc2.literal) {
31224
+ if (ind.root) {
31225
+ out.push(newLine, ind.root.value);
31226
+ pos = ind.root.length;
31227
+ } else {
31228
+ out.push(newLine);
31229
+ pos = 0;
31230
+ }
31231
+ } else {
31232
+ pos -= trim2(out);
31233
+ out.push(newLine + ind.value);
31234
+ pos = ind.length;
31235
+ }
31236
+ break;
31208
31237
  }
31238
+ break;
31239
+ case DOC_TYPE_LABEL:
31240
+ cmds.push({
31241
+ ind,
31242
+ mode,
31243
+ doc: doc2.contents
31244
+ });
31245
+ break;
31246
+ case DOC_TYPE_BREAK_PARENT:
31247
+ break;
31248
+ default:
31249
+ throw new invalid_doc_error_default(doc2);
31209
31250
  }
31210
- return { n, e: exp, s: sign, d: decimal };
31211
- }
31212
- function stringify(value) {
31213
- const n = value.n.toString();
31214
- const sign = value.s === -1 ? "-" : "";
31215
- const decimal = value.e < n.length ? "." + n.slice(value.e) : "";
31216
- return sign + n.slice(0, value.e) + decimal;
31217
- }
31218
- const equals = (a, b) => a.n === b.n && a.e === b.e;
31219
- const compare = (a, b) => {
31220
- if (a.s < b.s) {
31221
- return -1;
31222
- }
31223
- else if (a.s > b.s) {
31224
- return 1;
31225
- }
31226
- const neg = a.s;
31227
- if (a.e < b.e) {
31228
- return (-1 * neg);
31229
- }
31230
- else if (a.e > b.e) {
31231
- return (1 * neg);
31232
- }
31233
- let aN = a.n;
31234
- let bN = b.n;
31235
- if (a.d < b.d) {
31236
- aN *= 10n ** BigInt(b.d - a.d);
31237
- }
31238
- else {
31239
- bN *= 10n ** BigInt(a.d - b.d);
31251
+ if (cmds.length === 0 && lineSuffix2.length > 0) {
31252
+ cmds.push(...lineSuffix2.reverse());
31253
+ lineSuffix2.length = 0;
31240
31254
  }
31241
- if (aN < bN)
31242
- return (-1 * neg);
31243
- if (aN > bN)
31244
- return (1 * neg);
31245
- return 0;
31246
- };
31247
- const NumericPrototype = {
31248
- toString: function () {
31249
- return stringify(this[InternalDataSym]);
31250
- },
31251
- asNumber: function () {
31252
- const num = Number(stringify(this[InternalDataSym]));
31253
- return equals(this[InternalDataSym], Numeric(num.toString())[InternalDataSym]) ? num : null;
31254
- },
31255
- asBigInt: function () {
31256
- return this.isInteger ? this[InternalDataSym].n : null;
31257
- },
31258
- equals: function (other) {
31259
- return equals(this[InternalDataSym], other[InternalDataSym]);
31260
- },
31261
- lt: function (other) {
31262
- return compare(this[InternalDataSym], other[InternalDataSym]) === -1;
31263
- },
31264
- lte: function (other) {
31265
- return compare(this[InternalDataSym], other[InternalDataSym]) <= 0;
31266
- },
31267
- gt: function (other) {
31268
- return compare(this[InternalDataSym], other[InternalDataSym]) === 1;
31269
- },
31270
- gte: function (other) {
31271
- return compare(this[InternalDataSym], other[InternalDataSym]) >= 0;
31272
- },
31255
+ }
31256
+ const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
31257
+ if (cursorPlaceholderIndex !== -1) {
31258
+ const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);
31259
+ const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
31260
+ const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
31261
+ const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
31262
+ return {
31263
+ formatted: beforeCursor + aroundCursor + afterCursor,
31264
+ cursorNodeStart: beforeCursor.length,
31265
+ cursorNodeText: aroundCursor
31266
+ };
31267
+ }
31268
+ return {
31269
+ formatted: out.join("")
31270
+ };
31271
+ }
31272
+
31273
+ // src/document/public.js
31274
+ var builders = {
31275
+ join,
31276
+ line,
31277
+ softline,
31278
+ hardline,
31279
+ literalline,
31280
+ group,
31281
+ conditionalGroup,
31282
+ fill,
31283
+ lineSuffix,
31284
+ lineSuffixBoundary,
31285
+ cursor,
31286
+ breakParent,
31287
+ ifBreak,
31288
+ trim,
31289
+ indent,
31290
+ indentIfBreak,
31291
+ align,
31292
+ addAlignmentToDoc,
31293
+ markAsRoot,
31294
+ dedentToRoot,
31295
+ dedent,
31296
+ hardlineWithoutBreakParent,
31297
+ literallineWithoutBreakParent,
31298
+ label,
31299
+ // TODO: Remove this in v4
31300
+ concat: (parts) => parts
31273
31301
  };
31274
- NumericPrototype.toString = function () {
31275
- return stringify(this[InternalDataSym]);
31302
+ var printer = { printDocToString };
31303
+ var utils = {
31304
+ willBreak,
31305
+ traverseDoc: traverse_doc_default,
31306
+ findInDoc,
31307
+ mapDoc,
31308
+ removeLines,
31309
+ stripTrailingHardline,
31310
+ replaceEndOfLine,
31311
+ canBreak
31276
31312
  };
31277
31313
 
31278
- /**
31279
- * Set of known numeric ranges
31280
- */
31281
- ({
31282
- int64: [
31283
- Numeric("-9223372036854775808"),
31284
- Numeric("9223372036854775807"),
31285
- { int: true, isJsNumber: false },
31286
- ],
31287
- int32: [Numeric("-2147483648"), Numeric("2147483647"), { int: true, isJsNumber: true }],
31288
- int16: [Numeric("-32768"), Numeric("32767"), { int: true, isJsNumber: true }],
31289
- int8: [Numeric("-128"), Numeric("127"), { int: true, isJsNumber: true }],
31290
- uint64: [Numeric("0"), Numeric("18446744073709551615"), { int: true, isJsNumber: false }],
31291
- uint32: [Numeric("0"), Numeric("4294967295"), { int: true, isJsNumber: true }],
31292
- uint16: [Numeric("0"), Numeric("65535"), { int: true, isJsNumber: true }],
31293
- uint8: [Numeric("0"), Numeric("255"), { int: true, isJsNumber: true }],
31294
- safeint: [
31295
- Numeric(Number.MIN_SAFE_INTEGER.toString()),
31296
- Numeric(Number.MAX_SAFE_INTEGER.toString()),
31297
- { int: true, isJsNumber: true },
31298
- ],
31299
- float32: [Numeric("-3.4e38"), Numeric("3.4e38"), { int: false, isJsNumber: true }],
31300
- float64: [
31301
- Numeric(`${-Number.MAX_VALUE}`),
31302
- Numeric(Number.MAX_VALUE.toString()),
31303
- { int: false, isJsNumber: true },
31304
- ],
31305
- });
31306
-
31307
- var ResolutionKind;
31308
- (function (ResolutionKind) {
31309
- ResolutionKind[ResolutionKind["Value"] = 0] = "Value";
31310
- ResolutionKind[ResolutionKind["Type"] = 1] = "Type";
31311
- ResolutionKind[ResolutionKind["BaseType"] = 2] = "BaseType";
31312
- ResolutionKind[ResolutionKind["Constraint"] = 3] = "Constraint";
31313
- })(ResolutionKind || (ResolutionKind = {}));
31314
- var Related;
31315
- (function (Related) {
31316
- Related[Related["false"] = 0] = "false";
31317
- Related[Related["true"] = 1] = "true";
31318
- Related[Related["maybe"] = 2] = "maybe";
31319
- })(Related || (Related = {}));
31314
+ var CommentCheckFlags;
31315
+ (function (CommentCheckFlags) {
31316
+ /** Check comment is a leading comment */
31317
+ CommentCheckFlags[CommentCheckFlags["Leading"] = 2] = "Leading";
31318
+ /** Check comment is a trailing comment */
31319
+ CommentCheckFlags[CommentCheckFlags["Trailing"] = 4] = "Trailing";
31320
+ /** Check comment is a dangling comment */
31321
+ CommentCheckFlags[CommentCheckFlags["Dangling"] = 8] = "Dangling";
31322
+ /** Check comment is a block comment */
31323
+ CommentCheckFlags[CommentCheckFlags["Block"] = 16] = "Block";
31324
+ /** Check comment is a line comment */
31325
+ CommentCheckFlags[CommentCheckFlags["Line"] = 32] = "Line";
31326
+ /** Check comment is a `prettier-ignore` comment */
31327
+ CommentCheckFlags[CommentCheckFlags["PrettierIgnore"] = 64] = "PrettierIgnore";
31328
+ /** Check comment is the first attached comment */
31329
+ CommentCheckFlags[CommentCheckFlags["First"] = 128] = "First";
31330
+ /** Check comment is the last attached comment */
31331
+ CommentCheckFlags[CommentCheckFlags["Last"] = 256] = "Last";
31332
+ })(CommentCheckFlags || (CommentCheckFlags = {}));
31320
31333
 
31321
31334
  const noContext = new Set(["modelPropertyReference", "enumMemberReference"]);
31322
31335
  new Set([