@typespec/playground 0.4.0-dev.5 → 0.5.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.
@@ -32009,6 +32009,7 @@ const diagnostics = {
32009
32009
  severity: "error",
32010
32010
  messages: {
32011
32011
  default: paramMessage `Model has an inherited property named ${"propName"} of type ${"propType"} which cannot override type ${"parentType"}`,
32012
+ disallowedOptionalOverride: paramMessage `Model has a required inherited property named ${"propName"} which cannot be overridden as optional`,
32012
32013
  },
32013
32014
  },
32014
32015
  "extend-scalar": {
@@ -40268,7 +40269,7 @@ let manifest;
40268
40269
  try {
40269
40270
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
40270
40271
  // @ts-ignore
40271
- manifest = (await import('../manifest-DR4jWHsG-DR4jWHsG.js')).default;
40272
+ manifest = (await import('../manifest-Bx5EZvxu-Bx5EZvxu.js')).default;
40272
40273
  }
40273
40274
  catch {
40274
40275
  const name = "../dist/manifest.js";
@@ -41632,1735 +41633,1747 @@ function isTemplateInstance(type) {
41632
41633
  maybeTemplateType.isFinished);
41633
41634
  }
41634
41635
 
41635
- var __defProp = Object.defineProperty;
41636
- var __export = (target, all) => {
41637
- for (var name in all)
41638
- __defProp(target, name, { get: all[name], enumerable: true });
41639
- };
41640
-
41641
- // src/document/public.js
41642
- var public_exports = {};
41643
- __export(public_exports, {
41644
- builders: () => builders,
41645
- printer: () => printer,
41646
- utils: () => utils
41647
- });
41648
-
41649
- // src/document/constants.js
41650
- var DOC_TYPE_STRING = "string";
41651
- var DOC_TYPE_ARRAY = "array";
41652
- var DOC_TYPE_CURSOR = "cursor";
41653
- var DOC_TYPE_INDENT = "indent";
41654
- var DOC_TYPE_ALIGN = "align";
41655
- var DOC_TYPE_TRIM = "trim";
41656
- var DOC_TYPE_GROUP = "group";
41657
- var DOC_TYPE_FILL = "fill";
41658
- var DOC_TYPE_IF_BREAK = "if-break";
41659
- var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break";
41660
- var DOC_TYPE_LINE_SUFFIX = "line-suffix";
41661
- var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary";
41662
- var DOC_TYPE_LINE = "line";
41663
- var DOC_TYPE_LABEL = "label";
41664
- var DOC_TYPE_BREAK_PARENT = "break-parent";
41665
- var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
41666
- DOC_TYPE_CURSOR,
41667
- DOC_TYPE_INDENT,
41668
- DOC_TYPE_ALIGN,
41669
- DOC_TYPE_TRIM,
41670
- DOC_TYPE_GROUP,
41671
- DOC_TYPE_FILL,
41672
- DOC_TYPE_IF_BREAK,
41673
- DOC_TYPE_INDENT_IF_BREAK,
41674
- DOC_TYPE_LINE_SUFFIX,
41675
- DOC_TYPE_LINE_SUFFIX_BOUNDARY,
41676
- DOC_TYPE_LINE,
41677
- DOC_TYPE_LABEL,
41678
- DOC_TYPE_BREAK_PARENT
41679
- ]);
41680
-
41681
- // src/document/utils/get-doc-type.js
41682
- function getDocType(doc) {
41683
- if (typeof doc === "string") {
41684
- return DOC_TYPE_STRING;
41685
- }
41686
- if (Array.isArray(doc)) {
41687
- return DOC_TYPE_ARRAY;
41688
- }
41689
- if (!doc) {
41690
- return;
41691
- }
41692
- const { type } = doc;
41693
- if (VALID_OBJECT_DOC_TYPES.has(type)) {
41694
- return type;
41695
- }
41636
+ /**
41637
+ * Print a string as a TypeSpec identifier. If the string is a valid identifier, return it as is otherwise wrap it into backticks.
41638
+ * @param sv Identifier string value.
41639
+ * @returns Identifier string as it would be represented in a TypeSpec file.
41640
+ *
41641
+ * @example
41642
+ * ```ts
41643
+ * printIdentifier("foo") // foo
41644
+ * printIdentifier("foo bar") // `foo bar`
41645
+ * ```
41646
+ */
41647
+ function printIdentifier(sv) {
41648
+ if (needBacktick(sv)) {
41649
+ const escapedString = sv
41650
+ .replace(/\\/g, "\\\\")
41651
+ .replace(/\n/g, "\\n")
41652
+ .replace(/\r/g, "\\r")
41653
+ .replace(/\t/g, "\\t")
41654
+ .replace(/`/g, "\\`");
41655
+ return `\`${escapedString}\``;
41656
+ }
41657
+ else {
41658
+ return sv;
41659
+ }
41696
41660
  }
41697
- var get_doc_type_default = getDocType;
41698
-
41699
- // src/document/invalid-doc-error.js
41700
- var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
41701
- function getDocErrorMessage(doc) {
41702
- const type = doc === null ? "null" : typeof doc;
41703
- if (type !== "string" && type !== "object") {
41704
- return `Unexpected doc '${type}',
41705
- Expected it to be 'string' or 'object'.`;
41706
- }
41707
- if (get_doc_type_default(doc)) {
41708
- throw new Error("doc is valid.");
41709
- }
41710
- const objectType = Object.prototype.toString.call(doc);
41711
- if (objectType !== "[object Object]") {
41712
- return `Unexpected doc '${objectType}'.`;
41713
- }
41714
- const EXPECTED_TYPE_VALUES = disjunctionListFormat(
41715
- [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)
41716
- );
41717
- return `Unexpected doc.type '${doc.type}'.
41718
- Expected it to be ${EXPECTED_TYPE_VALUES}.`;
41661
+ function needBacktick(sv) {
41662
+ if (sv.length === 0) {
41663
+ return false;
41664
+ }
41665
+ if (Keywords.has(sv)) {
41666
+ return true;
41667
+ }
41668
+ let cp = sv.codePointAt(0);
41669
+ if (!isIdentifierStart(cp)) {
41670
+ return true;
41671
+ }
41672
+ let pos = 0;
41673
+ do {
41674
+ pos += utf16CodeUnits(cp);
41675
+ } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));
41676
+ return pos < sv.length;
41719
41677
  }
41720
- var InvalidDocError = class extends Error {
41721
- name = "InvalidDocError";
41722
- constructor(doc) {
41723
- super(getDocErrorMessage(doc));
41724
- this.doc = doc;
41725
- }
41726
- };
41727
- var invalid_doc_error_default = InvalidDocError;
41728
41678
 
41729
- // src/document/utils/traverse-doc.js
41730
- var traverseDocOnExitStackMarker = {};
41731
- function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
41732
- const docsStack = [doc];
41733
- while (docsStack.length > 0) {
41734
- const doc2 = docsStack.pop();
41735
- if (doc2 === traverseDocOnExitStackMarker) {
41736
- onExit(docsStack.pop());
41737
- continue;
41679
+ function getTypeName(type, options) {
41680
+ switch (type.kind) {
41681
+ case "Namespace":
41682
+ return getNamespaceFullName(type, options);
41683
+ case "TemplateParameter":
41684
+ return getIdentifierName(type.node.id.sv, options);
41685
+ case "Scalar":
41686
+ return getScalarName(type, options);
41687
+ case "Model":
41688
+ return getModelName(type, options);
41689
+ case "ModelProperty":
41690
+ return getModelPropertyName(type, options);
41691
+ case "Interface":
41692
+ return getInterfaceName(type, options);
41693
+ case "Operation":
41694
+ return getOperationName(type, options);
41695
+ case "Enum":
41696
+ return getEnumName(type, options);
41697
+ case "EnumMember":
41698
+ return `${getEnumName(type.enum, options)}.${getIdentifierName(type.name, options)}`;
41699
+ case "Union":
41700
+ return getUnionName(type, options);
41701
+ case "UnionVariant":
41702
+ return getTypeName(type.type, options);
41703
+ case "Tuple":
41704
+ return "[" + type.values.map((x) => getTypeName(x, options)).join(", ") + "]";
41705
+ case "StringTemplate":
41706
+ return getStringTemplateName(type);
41707
+ case "String":
41708
+ return `"${type.value}"`;
41709
+ case "Number":
41710
+ return type.valueAsString;
41711
+ case "Boolean":
41712
+ return type.value.toString();
41713
+ case "Intrinsic":
41714
+ return type.name;
41715
+ default:
41716
+ return `(unnamed type)`;
41738
41717
  }
41739
- if (onExit) {
41740
- docsStack.push(doc2, traverseDocOnExitStackMarker);
41718
+ }
41719
+ function getValuePreview(value, options) {
41720
+ switch (value.valueKind) {
41721
+ case "ObjectValue":
41722
+ return `#{${[...value.properties.entries()].map(([name, value]) => `${name}: ${getValuePreview(value.value, options)}`).join(", ")}}`;
41723
+ case "ArrayValue":
41724
+ return `#[${value.values.map((x) => getValuePreview(x, options)).join(", ")}]`;
41725
+ case "StringValue":
41726
+ return `"${value.value}"`;
41727
+ case "BooleanValue":
41728
+ return `${value.value}`;
41729
+ case "NumericValue":
41730
+ return `${value.value.toString()}`;
41731
+ case "EnumValue":
41732
+ return getTypeName(value.value);
41733
+ case "NullValue":
41734
+ return "null";
41735
+ case "ScalarValue":
41736
+ return `${getTypeName(value.type, options)}.${value.value.name}(${value.value.args.map((x) => getValuePreview(x, options)).join(", ")}})`;
41741
41737
  }
41742
- const docType = get_doc_type_default(doc2);
41743
- if (!docType) {
41744
- throw new invalid_doc_error_default(doc2);
41738
+ }
41739
+ function getEntityName(entity, options) {
41740
+ if (isValue(entity)) {
41741
+ return getValuePreview(entity, options);
41745
41742
  }
41746
- if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
41747
- continue;
41743
+ else if (isType(entity)) {
41744
+ return getTypeName(entity, options);
41748
41745
  }
41749
- switch (docType) {
41750
- case DOC_TYPE_ARRAY:
41751
- case DOC_TYPE_FILL: {
41752
- const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
41753
- for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
41754
- docsStack.push(parts[i]);
41755
- }
41756
- break;
41757
- }
41758
- case DOC_TYPE_IF_BREAK:
41759
- docsStack.push(doc2.flatContents, doc2.breakContents);
41760
- break;
41761
- case DOC_TYPE_GROUP:
41762
- if (shouldTraverseConditionalGroups && doc2.expandedStates) {
41763
- for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
41764
- docsStack.push(doc2.expandedStates[i]);
41765
- }
41766
- } else {
41767
- docsStack.push(doc2.contents);
41746
+ else {
41747
+ switch (entity.entityKind) {
41748
+ case "MixedParameterConstraint":
41749
+ return [
41750
+ entity.type && getEntityName(entity.type),
41751
+ entity.valueType && `valueof ${getEntityName(entity.valueType)}`,
41752
+ ]
41753
+ .filter(isDefined)
41754
+ .join(" | ");
41755
+ case "Indeterminate":
41756
+ return getTypeName(entity.type, options);
41768
41757
  }
41769
- break;
41770
- case DOC_TYPE_ALIGN:
41771
- case DOC_TYPE_INDENT:
41772
- case DOC_TYPE_INDENT_IF_BREAK:
41773
- case DOC_TYPE_LABEL:
41774
- case DOC_TYPE_LINE_SUFFIX:
41775
- docsStack.push(doc2.contents);
41776
- break;
41777
- case DOC_TYPE_STRING:
41778
- case DOC_TYPE_CURSOR:
41779
- case DOC_TYPE_TRIM:
41780
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
41781
- case DOC_TYPE_LINE:
41782
- case DOC_TYPE_BREAK_PARENT:
41783
- break;
41784
- default:
41785
- throw new invalid_doc_error_default(doc2);
41786
41758
  }
41787
- }
41788
41759
  }
41789
- var traverse_doc_default = traverseDoc;
41790
-
41791
- // src/document/utils/assert-doc.js
41792
- var noop = () => {
41793
- };
41794
- var assertDocArray = noop ;
41795
-
41796
- // src/document/builders.js
41797
- function indent(contents) {
41798
- return { type: DOC_TYPE_INDENT, contents };
41799
- }
41800
- function align(widthOrString, contents) {
41801
- return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
41760
+ function isStdNamespace(namespace) {
41761
+ return ((namespace.name === "TypeSpec" && namespace.namespace?.name === "") ||
41762
+ (namespace.name === "Reflection" &&
41763
+ namespace.namespace?.name === "TypeSpec" &&
41764
+ namespace.namespace?.namespace?.name === ""));
41802
41765
  }
41803
- function group(contents, opts = {}) {
41804
- assertDocArray(
41805
- opts.expandedStates);
41806
- return {
41807
- type: DOC_TYPE_GROUP,
41808
- id: opts.id,
41809
- contents,
41810
- break: Boolean(opts.shouldBreak),
41811
- expandedStates: opts.expandedStates
41812
- };
41766
+ /**
41767
+ * Return the full name of the namespace(e.g. "Foo.Bar")
41768
+ * @param type namespace type
41769
+ * @param options
41770
+ * @returns
41771
+ */
41772
+ function getNamespaceFullName(type, options) {
41773
+ const segments = [];
41774
+ let current = type;
41775
+ while (current && current.name !== "") {
41776
+ segments.unshift(getIdentifierName(current.name, options));
41777
+ current = current.namespace;
41778
+ }
41779
+ return segments.join(".");
41813
41780
  }
41814
- function dedentToRoot(contents) {
41815
- return align(Number.NEGATIVE_INFINITY, contents);
41781
+ function getNamespacePrefix(type, options) {
41782
+ if (type === undefined || isStdNamespace(type)) {
41783
+ return "";
41784
+ }
41785
+ const namespaceFullName = getNamespaceFullName(type, options);
41786
+ return namespaceFullName !== "" ? namespaceFullName + "." : "";
41816
41787
  }
41817
- function markAsRoot(contents) {
41818
- return align({ type: "root" }, contents);
41788
+ function getEnumName(e, options) {
41789
+ return `${getNamespacePrefix(e.namespace, options)}${getIdentifierName(e.name, options)}`;
41819
41790
  }
41820
- function dedent(contents) {
41821
- return align(-1, contents);
41791
+ function getScalarName(scalar, options) {
41792
+ return `${getNamespacePrefix(scalar.namespace, options)}${getIdentifierName(scalar.name, options)}`;
41822
41793
  }
41823
- function conditionalGroup(states, opts) {
41824
- return group(states[0], { ...opts, expandedStates: states });
41794
+ function getModelName(model, options) {
41795
+ const nsPrefix = getNamespacePrefix(model.namespace, options);
41796
+ if (model.name === "" && model.properties.size === 0) {
41797
+ return "{}";
41798
+ }
41799
+ if (model.indexer && model.indexer.key.kind === "Scalar") {
41800
+ if (model.name === "Array" && isInTypeSpecNamespace(model)) {
41801
+ return `${getTypeName(model.indexer.value, options)}[]`;
41802
+ }
41803
+ }
41804
+ if (model.name === "") {
41805
+ return (nsPrefix +
41806
+ `{ ${[...model.properties.values()].map((prop) => `${prop.name}: ${getTypeName(prop.type, options)}`).join(", ")} }`);
41807
+ }
41808
+ const modelName = nsPrefix + getIdentifierName(model.name, options);
41809
+ if (isTemplateInstance(model)) {
41810
+ // template instantiation
41811
+ const args = model.templateMapper.args.map((x) => getEntityName(x, options));
41812
+ return `${modelName}<${args.join(", ")}>`;
41813
+ }
41814
+ else if (model.node?.templateParameters?.length > 0) {
41815
+ // template
41816
+ const params = model.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
41817
+ return `${modelName}<${params.join(", ")}>`;
41818
+ }
41819
+ else {
41820
+ // regular old model.
41821
+ return modelName;
41822
+ }
41825
41823
  }
41826
- function fill(parts) {
41827
- return { type: DOC_TYPE_FILL, parts };
41824
+ function getUnionName(type, options) {
41825
+ const nsPrefix = getNamespacePrefix(type.namespace, options);
41826
+ const typeName = type.name
41827
+ ? getIdentifierName(type.name, options)
41828
+ : [...type.variants.values()].map((x) => getTypeName(x.type, options)).join(" | ");
41829
+ return nsPrefix + typeName;
41828
41830
  }
41829
- function ifBreak(breakContents, flatContents = "", opts = {}) {
41830
- return {
41831
- type: DOC_TYPE_IF_BREAK,
41832
- breakContents,
41833
- flatContents,
41834
- groupId: opts.groupId
41835
- };
41831
+ /**
41832
+ * Check if the given namespace is the standard library `TypeSpec` namespace.
41833
+ */
41834
+ function isTypeSpecNamespace(namespace) {
41835
+ return namespace.name === "TypeSpec" && namespace.namespace?.name === "";
41836
41836
  }
41837
- function indentIfBreak(contents, opts) {
41838
- return {
41839
- type: DOC_TYPE_INDENT_IF_BREAK,
41840
- contents,
41841
- groupId: opts.groupId,
41842
- negate: opts.negate
41843
- };
41837
+ /**
41838
+ * Check if the given type is defined right in the TypeSpec namespace.
41839
+ */
41840
+ function isInTypeSpecNamespace(type) {
41841
+ return Boolean(type.namespace && isTypeSpecNamespace(type.namespace));
41844
41842
  }
41845
- function lineSuffix(contents) {
41846
- return { type: DOC_TYPE_LINE_SUFFIX, contents };
41843
+ function getModelPropertyName(prop, options) {
41844
+ const modelName = prop.model ? getModelName(prop.model, options) : undefined;
41845
+ return `${modelName ?? "(anonymous model)"}.${prop.name}`;
41847
41846
  }
41848
- var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
41849
- var breakParent = { type: DOC_TYPE_BREAK_PARENT };
41850
- var trim = { type: DOC_TYPE_TRIM };
41851
- var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
41852
- var literallineWithoutBreakParent = {
41853
- type: DOC_TYPE_LINE,
41854
- hard: true,
41855
- literal: true
41856
- };
41857
- var line = { type: DOC_TYPE_LINE };
41858
- var softline = { type: DOC_TYPE_LINE, soft: true };
41859
- var hardline = [hardlineWithoutBreakParent, breakParent];
41860
- var literalline = [literallineWithoutBreakParent, breakParent];
41861
- var cursor = { type: DOC_TYPE_CURSOR };
41862
- function join(separator, docs) {
41863
- const parts = [];
41864
- for (let i = 0; i < docs.length; i++) {
41865
- if (i !== 0) {
41866
- parts.push(separator);
41847
+ function getInterfaceName(iface, options) {
41848
+ let interfaceName = getIdentifierName(iface.name, options);
41849
+ if (isTemplateInstance(iface)) {
41850
+ interfaceName += `<${iface.templateMapper.args
41851
+ .map((x) => getEntityName(x, options))
41852
+ .join(", ")}>`;
41867
41853
  }
41868
- parts.push(docs[i]);
41869
- }
41870
- return parts;
41854
+ return `${getNamespacePrefix(iface.namespace, options)}${interfaceName}`;
41871
41855
  }
41872
- function addAlignmentToDoc(doc, size, tabWidth) {
41873
- let aligned = doc;
41874
- if (size > 0) {
41875
- for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
41876
- aligned = indent(aligned);
41856
+ function getOperationName(op, options) {
41857
+ let opName = getIdentifierName(op.name, options);
41858
+ if (op.node.templateParameters.length > 0) {
41859
+ // template
41860
+ const params = op.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
41861
+ opName += `<${params.join(", ")}>`;
41877
41862
  }
41878
- aligned = align(size % tabWidth, aligned);
41879
- aligned = align(Number.NEGATIVE_INFINITY, aligned);
41880
- }
41881
- return aligned;
41863
+ const prefix = op.interface
41864
+ ? getInterfaceName(op.interface, options) + "."
41865
+ : getNamespacePrefix(op.namespace, options);
41866
+ return `${prefix}${opName}`;
41882
41867
  }
41883
- function label(label2, contents) {
41884
- return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
41868
+ function getIdentifierName(name, options) {
41869
+ return options?.printable ? printIdentifier(name) : name;
41885
41870
  }
41886
-
41887
- // scripts/build/shims/at.js
41888
- var at$1 = (isOptionalObject, object, index) => {
41889
- if (isOptionalObject && (object === void 0 || object === null)) {
41890
- return;
41891
- }
41892
- if (Array.isArray(object) || typeof object === "string") {
41893
- return object[index < 0 ? object.length + index : index];
41894
- }
41895
- return object.at(index);
41896
- };
41897
- var at_default = at$1;
41898
-
41899
- // scripts/build/shims/string-replace-all.js
41900
- var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
41901
- if (isOptionalObject && (original === void 0 || original === null)) {
41902
- return;
41903
- }
41904
- if (original.replaceAll) {
41905
- return original.replaceAll(pattern, replacement);
41906
- }
41907
- if (pattern.global) {
41908
- return original.replace(pattern, replacement);
41909
- }
41910
- return original.split(pattern).join(replacement);
41911
- };
41912
- var string_replace_all_default = stringReplaceAll;
41913
-
41914
- // src/common/end-of-line.js
41915
- function convertEndOfLineToChars(value) {
41916
- switch (value) {
41917
- case "cr":
41918
- return "\r";
41919
- case "crlf":
41920
- return "\r\n";
41921
- default:
41922
- return "\n";
41923
- }
41871
+ function getStringTemplateName(type) {
41872
+ if (type.stringValue) {
41873
+ return `"${type.stringValue}"`;
41874
+ }
41875
+ return "string";
41924
41876
  }
41925
41877
 
41926
- // node_modules/emoji-regex/index.mjs
41927
- var emoji_regex_default = () => {
41928
- 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;
41929
- };
41930
-
41931
- // node_modules/get-east-asian-width/lookup.js
41932
- function isFullWidth(x) {
41933
- return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
41934
- }
41935
- function isWide(x) {
41936
- 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;
41878
+ class InvalidNumericError extends Error {
41879
+ code = "InvalidNumeric";
41937
41880
  }
41938
-
41939
- // node_modules/get-east-asian-width/index.js
41940
- var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
41941
-
41942
- // src/utils/get-string-width.js
41943
- var notAsciiRegex = /[^\x20-\x7F]/;
41944
- function getStringWidth(text) {
41945
- if (!text) {
41946
- return 0;
41947
- }
41948
- if (!notAsciiRegex.test(text)) {
41949
- return text.length;
41950
- }
41951
- text = text.replace(emoji_regex_default(), " ");
41952
- let width = 0;
41953
- for (const character of text) {
41954
- const codePoint = character.codePointAt(0);
41955
- if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
41956
- continue;
41881
+ /** @internal */
41882
+ const InternalDataSym = Symbol.for("NumericInternalData");
41883
+ /**
41884
+ * Represent any possible numeric value
41885
+ */
41886
+ function Numeric(stringValue) {
41887
+ if (new.target) {
41888
+ throw new Error("Numeric is not a constructor");
41957
41889
  }
41958
- if (codePoint >= 768 && codePoint <= 879) {
41959
- continue;
41960
- }
41961
- width += _isNarrowWidth(codePoint) ? 1 : 2;
41962
- }
41963
- return width;
41890
+ const data = parse$1(stringValue);
41891
+ const isInteger = data.d === 0;
41892
+ const obj = {
41893
+ [InternalDataSym]: data,
41894
+ isInteger,
41895
+ };
41896
+ // 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.
41897
+ const numeric = setTypedProptotype(obj, NumericPrototype);
41898
+ return Object.freeze(numeric);
41964
41899
  }
41965
- var get_string_width_default = getStringWidth;
41966
-
41967
- // src/document/utils.js
41968
- function mapDoc(doc, cb) {
41969
- if (typeof doc === "string") {
41970
- return cb(doc);
41971
- }
41972
- const mapped = /* @__PURE__ */ new Map();
41973
- return rec(doc);
41974
- function rec(doc2) {
41975
- if (mapped.has(doc2)) {
41976
- return mapped.get(doc2);
41900
+ function setTypedProptotype(obj, prototype) {
41901
+ Object.setPrototypeOf(obj, prototype);
41902
+ return obj;
41903
+ }
41904
+ function parse$1(original) {
41905
+ let stringValue = original;
41906
+ let start = 0;
41907
+ let sign = 1;
41908
+ let n;
41909
+ let exp;
41910
+ let decimal;
41911
+ if (stringValue[0] === "-") {
41912
+ start = 1;
41913
+ sign = -1;
41977
41914
  }
41978
- const result = process2(doc2);
41979
- mapped.set(doc2, result);
41980
- return result;
41981
- }
41982
- function process2(doc2) {
41983
- switch (get_doc_type_default(doc2)) {
41984
- case DOC_TYPE_ARRAY:
41985
- return cb(doc2.map(rec));
41986
- case DOC_TYPE_FILL:
41987
- return cb({
41988
- ...doc2,
41989
- parts: doc2.parts.map(rec)
41990
- });
41991
- case DOC_TYPE_IF_BREAK:
41992
- return cb({
41993
- ...doc2,
41994
- breakContents: rec(doc2.breakContents),
41995
- flatContents: rec(doc2.flatContents)
41996
- });
41997
- case DOC_TYPE_GROUP: {
41998
- let {
41999
- expandedStates,
42000
- contents
42001
- } = doc2;
42002
- if (expandedStates) {
42003
- expandedStates = expandedStates.map(rec);
42004
- contents = expandedStates[0];
42005
- } else {
42006
- contents = rec(contents);
41915
+ const second = stringValue[start + 1]?.toLowerCase();
41916
+ if (stringValue[start] === "0" && (second === "b" || second === "x" || second === "o")) {
41917
+ try {
41918
+ n = BigInt(stringValue.slice(start));
41919
+ exp = n.toString().length;
41920
+ decimal = 0;
41921
+ }
41922
+ catch {
41923
+ throw new InvalidNumericError(`Invalid numeric value: ${original}`);
42007
41924
  }
42008
- return cb({
42009
- ...doc2,
42010
- contents,
42011
- expandedStates
42012
- });
42013
- }
42014
- case DOC_TYPE_ALIGN:
42015
- case DOC_TYPE_INDENT:
42016
- case DOC_TYPE_INDENT_IF_BREAK:
42017
- case DOC_TYPE_LABEL:
42018
- case DOC_TYPE_LINE_SUFFIX:
42019
- return cb({
42020
- ...doc2,
42021
- contents: rec(doc2.contents)
42022
- });
42023
- case DOC_TYPE_STRING:
42024
- case DOC_TYPE_CURSOR:
42025
- case DOC_TYPE_TRIM:
42026
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42027
- case DOC_TYPE_LINE:
42028
- case DOC_TYPE_BREAK_PARENT:
42029
- return cb(doc2);
42030
- default:
42031
- throw new invalid_doc_error_default(doc2);
42032
- }
42033
- }
42034
- }
42035
- function findInDoc(doc, fn, defaultValue) {
42036
- let result = defaultValue;
42037
- let shouldSkipFurtherProcessing = false;
42038
- function findInDocOnEnterFn(doc2) {
42039
- if (shouldSkipFurtherProcessing) {
42040
- return false;
42041
41925
  }
42042
- const maybeResult = fn(doc2);
42043
- if (maybeResult !== void 0) {
42044
- shouldSkipFurtherProcessing = true;
42045
- result = maybeResult;
41926
+ else {
41927
+ // Skip leading 0.
41928
+ while (stringValue[start] === "0") {
41929
+ start++;
41930
+ }
41931
+ const decimalPointIndex = stringValue.indexOf(".");
41932
+ const adjustedPointIndex = decimalPointIndex - start;
41933
+ // Decimal point?
41934
+ if (decimalPointIndex !== -1) {
41935
+ exp = adjustedPointIndex;
41936
+ stringValue = stringValue.replace(".", "");
41937
+ }
41938
+ let i;
41939
+ if ((i = stringValue.search(/e/i)) > 0) {
41940
+ // Determine exponent.
41941
+ if (exp === undefined) {
41942
+ exp = i - start;
41943
+ }
41944
+ exp += Number(stringValue.slice(i + 1));
41945
+ stringValue = stringValue.slice(start, i);
41946
+ }
41947
+ else if (exp === undefined) {
41948
+ // Integer.
41949
+ exp = stringValue.length - start;
41950
+ stringValue = stringValue.slice(start);
41951
+ }
41952
+ else {
41953
+ stringValue = stringValue.slice(start);
41954
+ }
41955
+ let end = stringValue.length;
41956
+ while (stringValue[end - 1] === "0" && end > adjustedPointIndex) {
41957
+ end--;
41958
+ }
41959
+ try {
41960
+ stringValue = stringValue.slice(0, end);
41961
+ stringValue = stringValue + "0".repeat(Math.max(exp - stringValue.length, 0)); // add remaining zeros for cases like 3e30
41962
+ n = BigInt(stringValue);
41963
+ decimal = n === 0n ? 0 : Math.max(stringValue.length - exp, 0);
41964
+ }
41965
+ catch {
41966
+ throw new InvalidNumericError(`Invalid numeric value: ${original}`);
41967
+ }
42046
41968
  }
42047
- }
42048
- traverse_doc_default(doc, findInDocOnEnterFn);
42049
- return result;
42050
- }
42051
- function willBreakFn(doc) {
42052
- if (doc.type === DOC_TYPE_GROUP && doc.break) {
42053
- return true;
42054
- }
42055
- if (doc.type === DOC_TYPE_LINE && doc.hard) {
42056
- return true;
42057
- }
42058
- if (doc.type === DOC_TYPE_BREAK_PARENT) {
42059
- return true;
42060
- }
41969
+ return { n, e: exp, s: sign, d: decimal };
42061
41970
  }
42062
- function willBreak(doc) {
42063
- return findInDoc(doc, willBreakFn, false);
41971
+ function stringify(value) {
41972
+ const n = value.n.toString();
41973
+ const sign = value.s === -1 ? "-" : "";
41974
+ const decimal = value.e < n.length ? "." + n.slice(value.e) : "";
41975
+ return sign + n.slice(0, value.e) + decimal;
42064
41976
  }
42065
- function breakParentGroup(groupStack) {
42066
- if (groupStack.length > 0) {
42067
- const parentGroup = at_default(
42068
- /* isOptionalObject */
42069
- false,
42070
- groupStack,
42071
- -1
42072
- );
42073
- if (!parentGroup.expandedStates && !parentGroup.break) {
42074
- parentGroup.break = "propagated";
41977
+ const equals = (a, b) => a.n === b.n && a.e === b.e;
41978
+ const compare = (a, b) => {
41979
+ if (a.s < b.s) {
41980
+ return -1;
42075
41981
  }
42076
- }
42077
- return null;
42078
- }
42079
- function propagateBreaks(doc) {
42080
- const alreadyVisitedSet = /* @__PURE__ */ new Set();
42081
- const groupStack = [];
42082
- function propagateBreaksOnEnterFn(doc2) {
42083
- if (doc2.type === DOC_TYPE_BREAK_PARENT) {
42084
- breakParentGroup(groupStack);
41982
+ else if (a.s > b.s) {
41983
+ return 1;
42085
41984
  }
42086
- if (doc2.type === DOC_TYPE_GROUP) {
42087
- groupStack.push(doc2);
42088
- if (alreadyVisitedSet.has(doc2)) {
42089
- return false;
42090
- }
42091
- alreadyVisitedSet.add(doc2);
41985
+ const neg = a.s;
41986
+ if (a.e < b.e) {
41987
+ return (-1 * neg);
42092
41988
  }
42093
- }
42094
- function propagateBreaksOnExitFn(doc2) {
42095
- if (doc2.type === DOC_TYPE_GROUP) {
42096
- const group2 = groupStack.pop();
42097
- if (group2.break) {
42098
- breakParentGroup(groupStack);
42099
- }
41989
+ else if (a.e > b.e) {
41990
+ return (1 * neg);
42100
41991
  }
41992
+ let aN = a.n;
41993
+ let bN = b.n;
41994
+ if (a.d < b.d) {
41995
+ aN *= 10n ** BigInt(b.d - a.d);
41996
+ }
41997
+ else {
41998
+ bN *= 10n ** BigInt(a.d - b.d);
41999
+ }
42000
+ if (aN < bN)
42001
+ return (-1 * neg);
42002
+ if (aN > bN)
42003
+ return (1 * neg);
42004
+ return 0;
42005
+ };
42006
+ const NumericPrototype = {
42007
+ toString: function () {
42008
+ return stringify(this[InternalDataSym]);
42009
+ },
42010
+ asNumber: function () {
42011
+ const num = Number(stringify(this[InternalDataSym]));
42012
+ return equals(this[InternalDataSym], Numeric(num.toString())[InternalDataSym]) ? num : null;
42013
+ },
42014
+ asBigInt: function () {
42015
+ return this.isInteger ? this[InternalDataSym].n : null;
42016
+ },
42017
+ equals: function (other) {
42018
+ return equals(this[InternalDataSym], other[InternalDataSym]);
42019
+ },
42020
+ lt: function (other) {
42021
+ return compare(this[InternalDataSym], other[InternalDataSym]) === -1;
42022
+ },
42023
+ lte: function (other) {
42024
+ return compare(this[InternalDataSym], other[InternalDataSym]) <= 0;
42025
+ },
42026
+ gt: function (other) {
42027
+ return compare(this[InternalDataSym], other[InternalDataSym]) === 1;
42028
+ },
42029
+ gte: function (other) {
42030
+ return compare(this[InternalDataSym], other[InternalDataSym]) >= 0;
42031
+ },
42032
+ };
42033
+ NumericPrototype.toString = function () {
42034
+ return stringify(this[InternalDataSym]);
42035
+ };
42036
+
42037
+ /**
42038
+ * Set of known numeric ranges
42039
+ */
42040
+ ({
42041
+ int64: [
42042
+ Numeric("-9223372036854775808"),
42043
+ Numeric("9223372036854775807"),
42044
+ { int: true, isJsNumber: false },
42045
+ ],
42046
+ int32: [Numeric("-2147483648"), Numeric("2147483647"), { int: true, isJsNumber: true }],
42047
+ int16: [Numeric("-32768"), Numeric("32767"), { int: true, isJsNumber: true }],
42048
+ int8: [Numeric("-128"), Numeric("127"), { int: true, isJsNumber: true }],
42049
+ uint64: [Numeric("0"), Numeric("18446744073709551615"), { int: true, isJsNumber: false }],
42050
+ uint32: [Numeric("0"), Numeric("4294967295"), { int: true, isJsNumber: true }],
42051
+ uint16: [Numeric("0"), Numeric("65535"), { int: true, isJsNumber: true }],
42052
+ uint8: [Numeric("0"), Numeric("255"), { int: true, isJsNumber: true }],
42053
+ safeint: [
42054
+ Numeric(Number.MIN_SAFE_INTEGER.toString()),
42055
+ Numeric(Number.MAX_SAFE_INTEGER.toString()),
42056
+ { int: true, isJsNumber: true },
42057
+ ],
42058
+ float32: [Numeric("-3.4e38"), Numeric("3.4e38"), { int: false, isJsNumber: true }],
42059
+ float64: [
42060
+ Numeric(`${-Number.MAX_VALUE}`),
42061
+ Numeric(Number.MAX_VALUE.toString()),
42062
+ { int: false, isJsNumber: true },
42063
+ ],
42064
+ });
42065
+
42066
+ var ResolutionKind;
42067
+ (function (ResolutionKind) {
42068
+ ResolutionKind[ResolutionKind["Value"] = 0] = "Value";
42069
+ ResolutionKind[ResolutionKind["Type"] = 1] = "Type";
42070
+ ResolutionKind[ResolutionKind["BaseType"] = 2] = "BaseType";
42071
+ ResolutionKind[ResolutionKind["Constraint"] = 3] = "Constraint";
42072
+ })(ResolutionKind || (ResolutionKind = {}));
42073
+ var Related;
42074
+ (function (Related) {
42075
+ Related[Related["false"] = 0] = "false";
42076
+ Related[Related["true"] = 1] = "true";
42077
+ Related[Related["maybe"] = 2] = "maybe";
42078
+ })(Related || (Related = {}));
42079
+
42080
+ 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=[`
42081
+ `,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(`
42082
+ `);return r.message&&!p&&(l=`${" ".repeat(f+1)}${r.message}
42083
+ ${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)===`
42084
+ `?"crlf":"cr":"lf"}function be(e){switch(e){case"cr":return "\r";case"crlf":return `\r
42085
+ `;default:return `
42086
+ `}}function At(e,t){let r;switch(t){case`
42087
+ `:r=/\n/g;break;case"\r":r=/\r/g;break;case`\r
42088
+ `: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,`
42089
+ `)}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}',
42090
+ 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}'.
42091
+ 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(`
42092
+ `)):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!==`
42093
+ `?re(!1,l,`
42094
+ `,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===`
42095
+ `)return t-2;if(o===`
42096
+ `||o==="\r"||o==="\u2028"||o==="\u2029")return t-1}else {if(o==="\r"&&e.charAt(t+1)===`
42097
+ `)return t+2;if(o===`
42098
+ `||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
42099
+ (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).
42100
+ 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.
42101
+ 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
42102
+ 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(`
42103
+ `)),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(`
42104
+ `)),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(`
42105
+ `,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+=`
42106
+ `+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(`
42107
+ `,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
42108
+ `&&(f+=At(F.slice(0,f),`
42109
+ `)),F=re(!1,F,`
42110
+ `,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
42111
+ `);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(`
42112
+ `);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)===`
42113
+ `)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)};
42114
+
42115
+ var __defProp = Object.defineProperty;
42116
+ var __export = (target, all) => {
42117
+ for (var name in all)
42118
+ __defProp(target, name, { get: all[name], enumerable: true });
42119
+ };
42120
+
42121
+ // src/document/public.js
42122
+ var public_exports = {};
42123
+ __export(public_exports, {
42124
+ builders: () => builders,
42125
+ printer: () => printer,
42126
+ utils: () => utils
42127
+ });
42128
+
42129
+ // src/document/constants.js
42130
+ var DOC_TYPE_STRING = "string";
42131
+ var DOC_TYPE_ARRAY = "array";
42132
+ var DOC_TYPE_CURSOR = "cursor";
42133
+ var DOC_TYPE_INDENT = "indent";
42134
+ var DOC_TYPE_ALIGN = "align";
42135
+ var DOC_TYPE_TRIM = "trim";
42136
+ var DOC_TYPE_GROUP = "group";
42137
+ var DOC_TYPE_FILL = "fill";
42138
+ var DOC_TYPE_IF_BREAK = "if-break";
42139
+ var DOC_TYPE_INDENT_IF_BREAK = "indent-if-break";
42140
+ var DOC_TYPE_LINE_SUFFIX = "line-suffix";
42141
+ var DOC_TYPE_LINE_SUFFIX_BOUNDARY = "line-suffix-boundary";
42142
+ var DOC_TYPE_LINE = "line";
42143
+ var DOC_TYPE_LABEL = "label";
42144
+ var DOC_TYPE_BREAK_PARENT = "break-parent";
42145
+ var VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([
42146
+ DOC_TYPE_CURSOR,
42147
+ DOC_TYPE_INDENT,
42148
+ DOC_TYPE_ALIGN,
42149
+ DOC_TYPE_TRIM,
42150
+ DOC_TYPE_GROUP,
42151
+ DOC_TYPE_FILL,
42152
+ DOC_TYPE_IF_BREAK,
42153
+ DOC_TYPE_INDENT_IF_BREAK,
42154
+ DOC_TYPE_LINE_SUFFIX,
42155
+ DOC_TYPE_LINE_SUFFIX_BOUNDARY,
42156
+ DOC_TYPE_LINE,
42157
+ DOC_TYPE_LABEL,
42158
+ DOC_TYPE_BREAK_PARENT
42159
+ ]);
42160
+
42161
+ // src/document/utils/get-doc-type.js
42162
+ function getDocType(doc) {
42163
+ if (typeof doc === "string") {
42164
+ return DOC_TYPE_STRING;
42101
42165
  }
42102
- traverse_doc_default(
42103
- doc,
42104
- propagateBreaksOnEnterFn,
42105
- propagateBreaksOnExitFn,
42106
- /* shouldTraverseConditionalGroups */
42107
- true
42108
- );
42109
- }
42110
- function removeLinesFn(doc) {
42111
- if (doc.type === DOC_TYPE_LINE && !doc.hard) {
42112
- return doc.soft ? "" : " ";
42113
- }
42114
- if (doc.type === DOC_TYPE_IF_BREAK) {
42115
- return doc.flatContents;
42116
- }
42117
- return doc;
42118
- }
42119
- function removeLines(doc) {
42120
- return mapDoc(doc, removeLinesFn);
42121
- }
42122
- function stripTrailingHardlineFromParts(parts) {
42123
- parts = [...parts];
42124
- while (parts.length >= 2 && at_default(
42125
- /* isOptionalObject */
42126
- false,
42127
- parts,
42128
- -2
42129
- ).type === DOC_TYPE_LINE && at_default(
42130
- /* isOptionalObject */
42131
- false,
42132
- parts,
42133
- -1
42134
- ).type === DOC_TYPE_BREAK_PARENT) {
42135
- parts.length -= 2;
42136
- }
42137
- if (parts.length > 0) {
42138
- const lastPart = stripTrailingHardlineFromDoc(at_default(
42139
- /* isOptionalObject */
42140
- false,
42141
- parts,
42142
- -1
42143
- ));
42144
- parts[parts.length - 1] = lastPart;
42166
+ if (Array.isArray(doc)) {
42167
+ return DOC_TYPE_ARRAY;
42145
42168
  }
42146
- return parts;
42147
- }
42148
- function stripTrailingHardlineFromDoc(doc) {
42149
- switch (get_doc_type_default(doc)) {
42150
- case DOC_TYPE_INDENT:
42151
- case DOC_TYPE_INDENT_IF_BREAK:
42152
- case DOC_TYPE_GROUP:
42153
- case DOC_TYPE_LINE_SUFFIX:
42154
- case DOC_TYPE_LABEL: {
42155
- const contents = stripTrailingHardlineFromDoc(doc.contents);
42156
- return {
42157
- ...doc,
42158
- contents
42159
- };
42160
- }
42161
- case DOC_TYPE_IF_BREAK:
42162
- return {
42163
- ...doc,
42164
- breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
42165
- flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
42166
- };
42167
- case DOC_TYPE_FILL:
42168
- return {
42169
- ...doc,
42170
- parts: stripTrailingHardlineFromParts(doc.parts)
42171
- };
42172
- case DOC_TYPE_ARRAY:
42173
- return stripTrailingHardlineFromParts(doc);
42174
- case DOC_TYPE_STRING:
42175
- return doc.replace(/[\n\r]*$/, "");
42176
- case DOC_TYPE_ALIGN:
42177
- case DOC_TYPE_CURSOR:
42178
- case DOC_TYPE_TRIM:
42179
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42180
- case DOC_TYPE_LINE:
42181
- case DOC_TYPE_BREAK_PARENT:
42182
- break;
42183
- default:
42184
- throw new invalid_doc_error_default(doc);
42169
+ if (!doc) {
42170
+ return;
42171
+ }
42172
+ const { type } = doc;
42173
+ if (VALID_OBJECT_DOC_TYPES.has(type)) {
42174
+ return type;
42185
42175
  }
42186
- return doc;
42187
42176
  }
42188
- function stripTrailingHardline(doc) {
42189
- return stripTrailingHardlineFromDoc(cleanDoc(doc));
42177
+ var get_doc_type_default = getDocType;
42178
+
42179
+ // src/document/invalid-doc-error.js
42180
+ var disjunctionListFormat = (list) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(list);
42181
+ function getDocErrorMessage(doc) {
42182
+ const type = doc === null ? "null" : typeof doc;
42183
+ if (type !== "string" && type !== "object") {
42184
+ return `Unexpected doc '${type}',
42185
+ Expected it to be 'string' or 'object'.`;
42186
+ }
42187
+ if (get_doc_type_default(doc)) {
42188
+ throw new Error("doc is valid.");
42189
+ }
42190
+ const objectType = Object.prototype.toString.call(doc);
42191
+ if (objectType !== "[object Object]") {
42192
+ return `Unexpected doc '${objectType}'.`;
42193
+ }
42194
+ const EXPECTED_TYPE_VALUES = disjunctionListFormat(
42195
+ [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)
42196
+ );
42197
+ return `Unexpected doc.type '${doc.type}'.
42198
+ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
42190
42199
  }
42191
- function cleanDocFn(doc) {
42192
- switch (get_doc_type_default(doc)) {
42193
- case DOC_TYPE_FILL:
42194
- if (doc.parts.every((part) => part === "")) {
42195
- return "";
42196
- }
42197
- break;
42198
- case DOC_TYPE_GROUP:
42199
- if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {
42200
- return "";
42201
- }
42202
- if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {
42203
- return doc.contents;
42204
- }
42205
- break;
42206
- case DOC_TYPE_ALIGN:
42207
- case DOC_TYPE_INDENT:
42208
- case DOC_TYPE_INDENT_IF_BREAK:
42209
- case DOC_TYPE_LINE_SUFFIX:
42210
- if (!doc.contents) {
42211
- return "";
42212
- }
42213
- break;
42214
- case DOC_TYPE_IF_BREAK:
42215
- if (!doc.flatContents && !doc.breakContents) {
42216
- return "";
42217
- }
42218
- break;
42219
- case DOC_TYPE_ARRAY: {
42220
- const parts = [];
42221
- for (const part of doc) {
42222
- if (!part) {
42223
- continue;
42200
+ var InvalidDocError = class extends Error {
42201
+ name = "InvalidDocError";
42202
+ constructor(doc) {
42203
+ super(getDocErrorMessage(doc));
42204
+ this.doc = doc;
42205
+ }
42206
+ };
42207
+ var invalid_doc_error_default = InvalidDocError;
42208
+
42209
+ // src/document/utils/traverse-doc.js
42210
+ var traverseDocOnExitStackMarker = {};
42211
+ function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
42212
+ const docsStack = [doc];
42213
+ while (docsStack.length > 0) {
42214
+ const doc2 = docsStack.pop();
42215
+ if (doc2 === traverseDocOnExitStackMarker) {
42216
+ onExit(docsStack.pop());
42217
+ continue;
42218
+ }
42219
+ if (onExit) {
42220
+ docsStack.push(doc2, traverseDocOnExitStackMarker);
42221
+ }
42222
+ const docType = get_doc_type_default(doc2);
42223
+ if (!docType) {
42224
+ throw new invalid_doc_error_default(doc2);
42225
+ }
42226
+ if ((onEnter == null ? void 0 : onEnter(doc2)) === false) {
42227
+ continue;
42228
+ }
42229
+ switch (docType) {
42230
+ case DOC_TYPE_ARRAY:
42231
+ case DOC_TYPE_FILL: {
42232
+ const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;
42233
+ for (let ic = parts.length, i = ic - 1; i >= 0; --i) {
42234
+ docsStack.push(parts[i]);
42224
42235
  }
42225
- const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
42226
- if (typeof currentPart === "string" && typeof at_default(
42227
- /* isOptionalObject */
42228
- false,
42229
- parts,
42230
- -1
42231
- ) === "string") {
42232
- parts[parts.length - 1] += currentPart;
42236
+ break;
42237
+ }
42238
+ case DOC_TYPE_IF_BREAK:
42239
+ docsStack.push(doc2.flatContents, doc2.breakContents);
42240
+ break;
42241
+ case DOC_TYPE_GROUP:
42242
+ if (shouldTraverseConditionalGroups && doc2.expandedStates) {
42243
+ for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {
42244
+ docsStack.push(doc2.expandedStates[i]);
42245
+ }
42233
42246
  } else {
42234
- parts.push(currentPart);
42247
+ docsStack.push(doc2.contents);
42235
42248
  }
42236
- parts.push(...restParts);
42237
- }
42238
- if (parts.length === 0) {
42239
- return "";
42240
- }
42241
- if (parts.length === 1) {
42242
- return parts[0];
42243
- }
42244
- return parts;
42249
+ break;
42250
+ case DOC_TYPE_ALIGN:
42251
+ case DOC_TYPE_INDENT:
42252
+ case DOC_TYPE_INDENT_IF_BREAK:
42253
+ case DOC_TYPE_LABEL:
42254
+ case DOC_TYPE_LINE_SUFFIX:
42255
+ docsStack.push(doc2.contents);
42256
+ break;
42257
+ case DOC_TYPE_STRING:
42258
+ case DOC_TYPE_CURSOR:
42259
+ case DOC_TYPE_TRIM:
42260
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42261
+ case DOC_TYPE_LINE:
42262
+ case DOC_TYPE_BREAK_PARENT:
42263
+ break;
42264
+ default:
42265
+ throw new invalid_doc_error_default(doc2);
42245
42266
  }
42246
- case DOC_TYPE_STRING:
42247
- case DOC_TYPE_CURSOR:
42248
- case DOC_TYPE_TRIM:
42249
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42250
- case DOC_TYPE_LINE:
42251
- case DOC_TYPE_LABEL:
42252
- case DOC_TYPE_BREAK_PARENT:
42253
- break;
42254
- default:
42255
- throw new invalid_doc_error_default(doc);
42256
42267
  }
42257
- return doc;
42258
42268
  }
42259
- function cleanDoc(doc) {
42260
- return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
42269
+ var traverse_doc_default = traverseDoc;
42270
+
42271
+ // src/document/utils/assert-doc.js
42272
+ var noop = () => {
42273
+ };
42274
+ var assertDocArray = noop ;
42275
+
42276
+ // src/document/builders.js
42277
+ function indent(contents) {
42278
+ return { type: DOC_TYPE_INDENT, contents };
42261
42279
  }
42262
- function replaceEndOfLine(doc, replacement = literalline) {
42263
- return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
42280
+ function align(widthOrString, contents) {
42281
+ return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };
42264
42282
  }
42265
- function canBreakFn(doc) {
42266
- if (doc.type === DOC_TYPE_LINE) {
42267
- return true;
42268
- }
42283
+ function group(contents, opts = {}) {
42284
+ assertDocArray(
42285
+ opts.expandedStates);
42286
+ return {
42287
+ type: DOC_TYPE_GROUP,
42288
+ id: opts.id,
42289
+ contents,
42290
+ break: Boolean(opts.shouldBreak),
42291
+ expandedStates: opts.expandedStates
42292
+ };
42269
42293
  }
42270
- function canBreak(doc) {
42271
- return findInDoc(doc, canBreakFn, false);
42294
+ function dedentToRoot(contents) {
42295
+ return align(Number.NEGATIVE_INFINITY, contents);
42272
42296
  }
42273
-
42274
- // src/document/printer.js
42275
- var MODE_BREAK = Symbol("MODE_BREAK");
42276
- var MODE_FLAT = Symbol("MODE_FLAT");
42277
- var CURSOR_PLACEHOLDER = Symbol("cursor");
42278
- function rootIndent() {
42297
+ function markAsRoot(contents) {
42298
+ return align({ type: "root" }, contents);
42299
+ }
42300
+ function dedent(contents) {
42301
+ return align(-1, contents);
42302
+ }
42303
+ function conditionalGroup(states, opts) {
42304
+ return group(states[0], { ...opts, expandedStates: states });
42305
+ }
42306
+ function fill(parts) {
42307
+ return { type: DOC_TYPE_FILL, parts };
42308
+ }
42309
+ function ifBreak(breakContents, flatContents = "", opts = {}) {
42279
42310
  return {
42280
- value: "",
42281
- length: 0,
42282
- queue: []
42311
+ type: DOC_TYPE_IF_BREAK,
42312
+ breakContents,
42313
+ flatContents,
42314
+ groupId: opts.groupId
42283
42315
  };
42284
42316
  }
42285
- function makeIndent(ind, options) {
42286
- return generateInd(ind, {
42287
- type: "indent"
42288
- }, options);
42317
+ function indentIfBreak(contents, opts) {
42318
+ return {
42319
+ type: DOC_TYPE_INDENT_IF_BREAK,
42320
+ contents,
42321
+ groupId: opts.groupId,
42322
+ negate: opts.negate
42323
+ };
42289
42324
  }
42290
- function makeAlign(indent2, widthOrDoc, options) {
42291
- if (widthOrDoc === Number.NEGATIVE_INFINITY) {
42292
- return indent2.root || rootIndent();
42325
+ function lineSuffix(contents) {
42326
+ return { type: DOC_TYPE_LINE_SUFFIX, contents };
42327
+ }
42328
+ var lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };
42329
+ var breakParent = { type: DOC_TYPE_BREAK_PARENT };
42330
+ var trim = { type: DOC_TYPE_TRIM };
42331
+ var hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };
42332
+ var literallineWithoutBreakParent = {
42333
+ type: DOC_TYPE_LINE,
42334
+ hard: true,
42335
+ literal: true
42336
+ };
42337
+ var line = { type: DOC_TYPE_LINE };
42338
+ var softline = { type: DOC_TYPE_LINE, soft: true };
42339
+ var hardline = [hardlineWithoutBreakParent, breakParent];
42340
+ var literalline = [literallineWithoutBreakParent, breakParent];
42341
+ var cursor = { type: DOC_TYPE_CURSOR };
42342
+ function join(separator, docs) {
42343
+ const parts = [];
42344
+ for (let i = 0; i < docs.length; i++) {
42345
+ if (i !== 0) {
42346
+ parts.push(separator);
42347
+ }
42348
+ parts.push(docs[i]);
42293
42349
  }
42294
- if (widthOrDoc < 0) {
42295
- return generateInd(indent2, {
42296
- type: "dedent"
42297
- }, options);
42350
+ return parts;
42351
+ }
42352
+ function addAlignmentToDoc(doc, size, tabWidth) {
42353
+ let aligned = doc;
42354
+ if (size > 0) {
42355
+ for (let i = 0; i < Math.floor(size / tabWidth); ++i) {
42356
+ aligned = indent(aligned);
42357
+ }
42358
+ aligned = align(size % tabWidth, aligned);
42359
+ aligned = align(Number.NEGATIVE_INFINITY, aligned);
42298
42360
  }
42299
- if (!widthOrDoc) {
42300
- return indent2;
42361
+ return aligned;
42362
+ }
42363
+ function label(label2, contents) {
42364
+ return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;
42365
+ }
42366
+
42367
+ // scripts/build/shims/at.js
42368
+ var at = (isOptionalObject, object, index) => {
42369
+ if (isOptionalObject && (object === void 0 || object === null)) {
42370
+ return;
42301
42371
  }
42302
- if (widthOrDoc.type === "root") {
42303
- return {
42304
- ...indent2,
42305
- root: indent2
42306
- };
42372
+ if (Array.isArray(object) || typeof object === "string") {
42373
+ return object[index < 0 ? object.length + index : index];
42307
42374
  }
42308
- const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
42309
- return generateInd(indent2, {
42310
- type: alignType,
42311
- n: widthOrDoc
42312
- }, options);
42313
- }
42314
- function generateInd(ind, newPart, options) {
42315
- const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
42316
- let value = "";
42317
- let length = 0;
42318
- let lastTabs = 0;
42319
- let lastSpaces = 0;
42320
- for (const part of queue) {
42321
- switch (part.type) {
42322
- case "indent":
42323
- flush();
42324
- if (options.useTabs) {
42325
- addTabs(1);
42326
- } else {
42327
- addSpaces(options.tabWidth);
42328
- }
42329
- break;
42330
- case "stringAlign":
42331
- flush();
42332
- value += part.n;
42333
- length += part.n.length;
42334
- break;
42335
- case "numberAlign":
42336
- lastTabs += 1;
42337
- lastSpaces += part.n;
42338
- break;
42339
- default:
42340
- throw new Error(`Unexpected type '${part.type}'`);
42341
- }
42342
- }
42343
- flushSpaces();
42344
- return {
42345
- ...ind,
42346
- value,
42347
- length,
42348
- queue
42349
- };
42350
- function addTabs(count) {
42351
- value += " ".repeat(count);
42352
- length += options.tabWidth * count;
42353
- }
42354
- function addSpaces(count) {
42355
- value += " ".repeat(count);
42356
- length += count;
42357
- }
42358
- function flush() {
42359
- if (options.useTabs) {
42360
- flushTabs();
42361
- } else {
42362
- flushSpaces();
42363
- }
42375
+ return object.at(index);
42376
+ };
42377
+ var at_default = at;
42378
+
42379
+ // scripts/build/shims/string-replace-all.js
42380
+ var stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {
42381
+ if (isOptionalObject && (original === void 0 || original === null)) {
42382
+ return;
42364
42383
  }
42365
- function flushTabs() {
42366
- if (lastTabs > 0) {
42367
- addTabs(lastTabs);
42368
- }
42369
- resetLast();
42384
+ if (original.replaceAll) {
42385
+ return original.replaceAll(pattern, replacement);
42370
42386
  }
42371
- function flushSpaces() {
42372
- if (lastSpaces > 0) {
42373
- addSpaces(lastSpaces);
42374
- }
42375
- resetLast();
42387
+ if (pattern.global) {
42388
+ return original.replace(pattern, replacement);
42376
42389
  }
42377
- function resetLast() {
42378
- lastTabs = 0;
42379
- lastSpaces = 0;
42390
+ return original.split(pattern).join(replacement);
42391
+ };
42392
+ var string_replace_all_default = stringReplaceAll;
42393
+
42394
+ // src/common/end-of-line.js
42395
+ function convertEndOfLineToChars(value) {
42396
+ switch (value) {
42397
+ case "cr":
42398
+ return "\r";
42399
+ case "crlf":
42400
+ return "\r\n";
42401
+ default:
42402
+ return "\n";
42380
42403
  }
42381
42404
  }
42382
- function trim2(out) {
42383
- let trimCount = 0;
42384
- let cursorCount = 0;
42385
- let outIndex = out.length;
42386
- outer: while (outIndex--) {
42387
- const last = out[outIndex];
42388
- if (last === CURSOR_PLACEHOLDER) {
42389
- cursorCount++;
42390
- continue;
42391
- }
42392
- for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {
42393
- const char = last[charIndex];
42394
- if (char === " " || char === " ") {
42395
- trimCount++;
42396
- } else {
42397
- out[outIndex] = last.slice(0, charIndex + 1);
42398
- break outer;
42399
- }
42400
- }
42401
- }
42402
- if (trimCount > 0 || cursorCount > 0) {
42403
- out.length = outIndex + 1;
42404
- while (cursorCount-- > 0) {
42405
- out.push(CURSOR_PLACEHOLDER);
42406
- }
42407
- }
42408
- return trimCount;
42405
+
42406
+ // node_modules/emoji-regex/index.mjs
42407
+ var emoji_regex_default = () => {
42408
+ 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;
42409
+ };
42410
+
42411
+ // node_modules/get-east-asian-width/lookup.js
42412
+ function isFullWidth(x) {
42413
+ return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
42409
42414
  }
42410
- function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {
42411
- if (width === Number.POSITIVE_INFINITY) {
42412
- return true;
42413
- }
42414
- let restIdx = restCommands.length;
42415
- const cmds = [next];
42416
- const out = [];
42417
- while (width >= 0) {
42418
- if (cmds.length === 0) {
42419
- if (restIdx === 0) {
42420
- return true;
42421
- }
42422
- cmds.push(restCommands[--restIdx]);
42423
- continue;
42424
- }
42425
- const {
42426
- mode,
42427
- doc
42428
- } = cmds.pop();
42429
- const docType = get_doc_type_default(doc);
42430
- switch (docType) {
42431
- case DOC_TYPE_STRING:
42432
- out.push(doc);
42433
- width -= get_string_width_default(doc);
42434
- break;
42435
- case DOC_TYPE_ARRAY:
42436
- case DOC_TYPE_FILL: {
42437
- const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
42438
- for (let i = parts.length - 1; i >= 0; i--) {
42439
- cmds.push({
42440
- mode,
42441
- doc: parts[i]
42442
- });
42443
- }
42444
- break;
42445
- }
42446
- case DOC_TYPE_INDENT:
42447
- case DOC_TYPE_ALIGN:
42448
- case DOC_TYPE_INDENT_IF_BREAK:
42449
- case DOC_TYPE_LABEL:
42450
- cmds.push({
42451
- mode,
42452
- doc: doc.contents
42453
- });
42454
- break;
42455
- case DOC_TYPE_TRIM:
42456
- width += trim2(out);
42457
- break;
42458
- case DOC_TYPE_GROUP: {
42459
- if (mustBeFlat && doc.break) {
42460
- return false;
42461
- }
42462
- const groupMode = doc.break ? MODE_BREAK : mode;
42463
- const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(
42464
- /* isOptionalObject */
42465
- false,
42466
- doc.expandedStates,
42467
- -1
42468
- ) : doc.contents;
42469
- cmds.push({
42470
- mode: groupMode,
42471
- doc: contents
42472
- });
42473
- break;
42474
- }
42475
- case DOC_TYPE_IF_BREAK: {
42476
- const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
42477
- const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
42478
- if (contents) {
42479
- cmds.push({
42480
- mode,
42481
- doc: contents
42482
- });
42483
- }
42484
- break;
42485
- }
42486
- case DOC_TYPE_LINE:
42487
- if (mode === MODE_BREAK || doc.hard) {
42488
- return true;
42489
- }
42490
- if (!doc.soft) {
42491
- out.push(" ");
42492
- width--;
42493
- }
42494
- break;
42495
- case DOC_TYPE_LINE_SUFFIX:
42496
- hasLineSuffix = true;
42497
- break;
42498
- case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42499
- if (hasLineSuffix) {
42500
- return false;
42501
- }
42502
- break;
42503
- }
42504
- }
42505
- return false;
42415
+ function isWide(x) {
42416
+ 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;
42506
42417
  }
42507
- function printDocToString(doc, options) {
42508
- const groupModeMap = {};
42509
- const width = options.printWidth;
42510
- const newLine = convertEndOfLineToChars(options.endOfLine);
42511
- let pos = 0;
42512
- const cmds = [{
42513
- ind: rootIndent(),
42514
- mode: MODE_BREAK,
42515
- doc
42516
- }];
42517
- const out = [];
42518
- let shouldRemeasure = false;
42519
- const lineSuffix2 = [];
42520
- let printedCursorCount = 0;
42521
- propagateBreaks(doc);
42522
- while (cmds.length > 0) {
42523
- const {
42524
- ind,
42525
- mode,
42526
- doc: doc2
42527
- } = cmds.pop();
42528
- switch (get_doc_type_default(doc2)) {
42529
- case DOC_TYPE_STRING: {
42530
- const formatted = newLine !== "\n" ? string_replace_all_default(
42531
- /* isOptionalObject */
42532
- false,
42533
- doc2,
42534
- "\n",
42535
- newLine
42536
- ) : doc2;
42537
- out.push(formatted);
42538
- if (cmds.length > 0) {
42539
- pos += get_string_width_default(formatted);
42540
- }
42541
- break;
42542
- }
42543
- case DOC_TYPE_ARRAY:
42544
- for (let i = doc2.length - 1; i >= 0; i--) {
42545
- cmds.push({
42546
- ind,
42547
- mode,
42548
- doc: doc2[i]
42549
- });
42550
- }
42551
- break;
42552
- case DOC_TYPE_CURSOR:
42553
- if (printedCursorCount >= 2) {
42554
- throw new Error("There are too many 'cursor' in doc.");
42555
- }
42556
- out.push(CURSOR_PLACEHOLDER);
42557
- printedCursorCount++;
42558
- break;
42559
- case DOC_TYPE_INDENT:
42560
- cmds.push({
42561
- ind: makeIndent(ind, options),
42562
- mode,
42563
- doc: doc2.contents
42564
- });
42565
- break;
42566
- case DOC_TYPE_ALIGN:
42567
- cmds.push({
42568
- ind: makeAlign(ind, doc2.n, options),
42569
- mode,
42570
- doc: doc2.contents
42571
- });
42572
- break;
42573
- case DOC_TYPE_TRIM:
42574
- pos -= trim2(out);
42575
- break;
42576
- case DOC_TYPE_GROUP:
42577
- switch (mode) {
42578
- case MODE_FLAT:
42579
- if (!shouldRemeasure) {
42580
- cmds.push({
42581
- ind,
42582
- mode: doc2.break ? MODE_BREAK : MODE_FLAT,
42583
- doc: doc2.contents
42584
- });
42585
- break;
42586
- }
42587
- case MODE_BREAK: {
42588
- shouldRemeasure = false;
42589
- const next = {
42590
- ind,
42591
- mode: MODE_FLAT,
42592
- doc: doc2.contents
42593
- };
42594
- const rem = width - pos;
42595
- const hasLineSuffix = lineSuffix2.length > 0;
42596
- if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
42597
- cmds.push(next);
42598
- } else {
42599
- if (doc2.expandedStates) {
42600
- const mostExpanded = at_default(
42601
- /* isOptionalObject */
42602
- false,
42603
- doc2.expandedStates,
42604
- -1
42605
- );
42606
- if (doc2.break) {
42607
- cmds.push({
42608
- ind,
42609
- mode: MODE_BREAK,
42610
- doc: mostExpanded
42611
- });
42612
- break;
42613
- } else {
42614
- for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
42615
- if (i >= doc2.expandedStates.length) {
42616
- cmds.push({
42617
- ind,
42618
- mode: MODE_BREAK,
42619
- doc: mostExpanded
42620
- });
42621
- break;
42622
- } else {
42623
- const state = doc2.expandedStates[i];
42624
- const cmd = {
42625
- ind,
42626
- mode: MODE_FLAT,
42627
- doc: state
42628
- };
42629
- if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
42630
- cmds.push(cmd);
42631
- break;
42632
- }
42633
- }
42634
- }
42635
- }
42636
- } else {
42637
- cmds.push({
42638
- ind,
42639
- mode: MODE_BREAK,
42640
- doc: doc2.contents
42641
- });
42642
- }
42643
- }
42644
- break;
42645
- }
42646
- }
42647
- if (doc2.id) {
42648
- groupModeMap[doc2.id] = at_default(
42649
- /* isOptionalObject */
42650
- false,
42651
- cmds,
42652
- -1
42653
- ).mode;
42654
- }
42655
- break;
42656
- case DOC_TYPE_FILL: {
42657
- const rem = width - pos;
42658
- const {
42659
- parts
42418
+
42419
+ // node_modules/get-east-asian-width/index.js
42420
+ var _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));
42421
+
42422
+ // src/utils/get-string-width.js
42423
+ var notAsciiRegex = /[^\x20-\x7F]/;
42424
+ function getStringWidth(text) {
42425
+ if (!text) {
42426
+ return 0;
42427
+ }
42428
+ if (!notAsciiRegex.test(text)) {
42429
+ return text.length;
42430
+ }
42431
+ text = text.replace(emoji_regex_default(), " ");
42432
+ let width = 0;
42433
+ for (const character of text) {
42434
+ const codePoint = character.codePointAt(0);
42435
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
42436
+ continue;
42437
+ }
42438
+ if (codePoint >= 768 && codePoint <= 879) {
42439
+ continue;
42440
+ }
42441
+ width += _isNarrowWidth(codePoint) ? 1 : 2;
42442
+ }
42443
+ return width;
42444
+ }
42445
+ var get_string_width_default = getStringWidth;
42446
+
42447
+ // src/document/utils.js
42448
+ function mapDoc(doc, cb) {
42449
+ if (typeof doc === "string") {
42450
+ return cb(doc);
42451
+ }
42452
+ const mapped = /* @__PURE__ */ new Map();
42453
+ return rec(doc);
42454
+ function rec(doc2) {
42455
+ if (mapped.has(doc2)) {
42456
+ return mapped.get(doc2);
42457
+ }
42458
+ const result = process2(doc2);
42459
+ mapped.set(doc2, result);
42460
+ return result;
42461
+ }
42462
+ function process2(doc2) {
42463
+ switch (get_doc_type_default(doc2)) {
42464
+ case DOC_TYPE_ARRAY:
42465
+ return cb(doc2.map(rec));
42466
+ case DOC_TYPE_FILL:
42467
+ return cb({
42468
+ ...doc2,
42469
+ parts: doc2.parts.map(rec)
42470
+ });
42471
+ case DOC_TYPE_IF_BREAK:
42472
+ return cb({
42473
+ ...doc2,
42474
+ breakContents: rec(doc2.breakContents),
42475
+ flatContents: rec(doc2.flatContents)
42476
+ });
42477
+ case DOC_TYPE_GROUP: {
42478
+ let {
42479
+ expandedStates,
42480
+ contents
42660
42481
  } = doc2;
42661
- if (parts.length === 0) {
42662
- break;
42663
- }
42664
- const [content, whitespace] = parts;
42665
- const contentFlatCmd = {
42666
- ind,
42667
- mode: MODE_FLAT,
42668
- doc: content
42669
- };
42670
- const contentBreakCmd = {
42671
- ind,
42672
- mode: MODE_BREAK,
42673
- doc: content
42674
- };
42675
- const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
42676
- if (parts.length === 1) {
42677
- if (contentFits) {
42678
- cmds.push(contentFlatCmd);
42679
- } else {
42680
- cmds.push(contentBreakCmd);
42681
- }
42682
- break;
42683
- }
42684
- const whitespaceFlatCmd = {
42685
- ind,
42686
- mode: MODE_FLAT,
42687
- doc: whitespace
42688
- };
42689
- const whitespaceBreakCmd = {
42690
- ind,
42691
- mode: MODE_BREAK,
42692
- doc: whitespace
42693
- };
42694
- if (parts.length === 2) {
42695
- if (contentFits) {
42696
- cmds.push(whitespaceFlatCmd, contentFlatCmd);
42697
- } else {
42698
- cmds.push(whitespaceBreakCmd, contentBreakCmd);
42699
- }
42700
- break;
42701
- }
42702
- parts.splice(0, 2);
42703
- const remainingCmd = {
42704
- ind,
42705
- mode,
42706
- doc: fill(parts)
42707
- };
42708
- const secondContent = parts[0];
42709
- const firstAndSecondContentFlatCmd = {
42710
- ind,
42711
- mode: MODE_FLAT,
42712
- doc: [content, whitespace, secondContent]
42713
- };
42714
- const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
42715
- if (firstAndSecondContentFits) {
42716
- cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
42717
- } else if (contentFits) {
42718
- cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);
42482
+ if (expandedStates) {
42483
+ expandedStates = expandedStates.map(rec);
42484
+ contents = expandedStates[0];
42719
42485
  } else {
42720
- cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);
42721
- }
42722
- break;
42723
- }
42724
- case DOC_TYPE_IF_BREAK:
42725
- case DOC_TYPE_INDENT_IF_BREAK: {
42726
- const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;
42727
- if (groupMode === MODE_BREAK) {
42728
- const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
42729
- if (breakContents) {
42730
- cmds.push({
42731
- ind,
42732
- mode,
42733
- doc: breakContents
42734
- });
42735
- }
42736
- }
42737
- if (groupMode === MODE_FLAT) {
42738
- const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
42739
- if (flatContents) {
42740
- cmds.push({
42741
- ind,
42742
- mode,
42743
- doc: flatContents
42744
- });
42745
- }
42486
+ contents = rec(contents);
42746
42487
  }
42747
- break;
42488
+ return cb({
42489
+ ...doc2,
42490
+ contents,
42491
+ expandedStates
42492
+ });
42748
42493
  }
42494
+ case DOC_TYPE_ALIGN:
42495
+ case DOC_TYPE_INDENT:
42496
+ case DOC_TYPE_INDENT_IF_BREAK:
42497
+ case DOC_TYPE_LABEL:
42749
42498
  case DOC_TYPE_LINE_SUFFIX:
42750
- lineSuffix2.push({
42751
- ind,
42752
- mode,
42753
- doc: doc2.contents
42499
+ return cb({
42500
+ ...doc2,
42501
+ contents: rec(doc2.contents)
42754
42502
  });
42755
- break;
42503
+ case DOC_TYPE_STRING:
42504
+ case DOC_TYPE_CURSOR:
42505
+ case DOC_TYPE_TRIM:
42756
42506
  case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42757
- if (lineSuffix2.length > 0) {
42758
- cmds.push({
42759
- ind,
42760
- mode,
42761
- doc: hardlineWithoutBreakParent
42762
- });
42763
- }
42764
- break;
42765
42507
  case DOC_TYPE_LINE:
42766
- switch (mode) {
42767
- case MODE_FLAT:
42768
- if (!doc2.hard) {
42769
- if (!doc2.soft) {
42770
- out.push(" ");
42771
- pos += 1;
42772
- }
42773
- break;
42774
- } else {
42775
- shouldRemeasure = true;
42776
- }
42777
- case MODE_BREAK:
42778
- if (lineSuffix2.length > 0) {
42779
- cmds.push({
42780
- ind,
42781
- mode,
42782
- doc: doc2
42783
- }, ...lineSuffix2.reverse());
42784
- lineSuffix2.length = 0;
42785
- break;
42786
- }
42787
- if (doc2.literal) {
42788
- if (ind.root) {
42789
- out.push(newLine, ind.root.value);
42790
- pos = ind.root.length;
42791
- } else {
42792
- out.push(newLine);
42793
- pos = 0;
42794
- }
42795
- } else {
42796
- pos -= trim2(out);
42797
- out.push(newLine + ind.value);
42798
- pos = ind.length;
42799
- }
42800
- break;
42801
- }
42802
- break;
42803
- case DOC_TYPE_LABEL:
42804
- cmds.push({
42805
- ind,
42806
- mode,
42807
- doc: doc2.contents
42808
- });
42809
- break;
42810
42508
  case DOC_TYPE_BREAK_PARENT:
42811
- break;
42509
+ return cb(doc2);
42812
42510
  default:
42813
42511
  throw new invalid_doc_error_default(doc2);
42814
42512
  }
42815
- if (cmds.length === 0 && lineSuffix2.length > 0) {
42816
- cmds.push(...lineSuffix2.reverse());
42817
- lineSuffix2.length = 0;
42513
+ }
42514
+ }
42515
+ function findInDoc(doc, fn, defaultValue) {
42516
+ let result = defaultValue;
42517
+ let shouldSkipFurtherProcessing = false;
42518
+ function findInDocOnEnterFn(doc2) {
42519
+ if (shouldSkipFurtherProcessing) {
42520
+ return false;
42521
+ }
42522
+ const maybeResult = fn(doc2);
42523
+ if (maybeResult !== void 0) {
42524
+ shouldSkipFurtherProcessing = true;
42525
+ result = maybeResult;
42818
42526
  }
42819
42527
  }
42820
- const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
42821
- if (cursorPlaceholderIndex !== -1) {
42822
- const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);
42823
- const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
42824
- const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
42825
- const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
42826
- return {
42827
- formatted: beforeCursor + aroundCursor + afterCursor,
42828
- cursorNodeStart: beforeCursor.length,
42829
- cursorNodeText: aroundCursor
42830
- };
42528
+ traverse_doc_default(doc, findInDocOnEnterFn);
42529
+ return result;
42530
+ }
42531
+ function willBreakFn(doc) {
42532
+ if (doc.type === DOC_TYPE_GROUP && doc.break) {
42533
+ return true;
42534
+ }
42535
+ if (doc.type === DOC_TYPE_LINE && doc.hard) {
42536
+ return true;
42537
+ }
42538
+ if (doc.type === DOC_TYPE_BREAK_PARENT) {
42539
+ return true;
42831
42540
  }
42832
- return {
42833
- formatted: out.join("")
42834
- };
42835
42541
  }
42836
-
42837
- // src/document/public.js
42838
- var builders = {
42839
- join,
42840
- line,
42841
- softline,
42842
- hardline,
42843
- literalline,
42844
- group,
42845
- conditionalGroup,
42846
- fill,
42847
- lineSuffix,
42848
- lineSuffixBoundary,
42849
- cursor,
42850
- breakParent,
42851
- ifBreak,
42852
- trim,
42853
- indent,
42854
- indentIfBreak,
42855
- align,
42856
- addAlignmentToDoc,
42857
- markAsRoot,
42858
- dedentToRoot,
42859
- dedent,
42860
- hardlineWithoutBreakParent,
42861
- literallineWithoutBreakParent,
42862
- label,
42863
- // TODO: Remove this in v4
42864
- concat: (parts) => parts
42865
- };
42866
- var printer = { printDocToString };
42867
- var utils = {
42868
- willBreak,
42869
- traverseDoc: traverse_doc_default,
42870
- findInDoc,
42871
- mapDoc,
42872
- removeLines,
42873
- stripTrailingHardline,
42874
- replaceEndOfLine,
42875
- canBreak
42876
- };
42877
-
42878
- 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=[`
42879
- `,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(`
42880
- `);return r.message&&!p&&(l=`${" ".repeat(f+1)}${r.message}
42881
- ${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)===`
42882
- `?"crlf":"cr":"lf"}function be(e){switch(e){case"cr":return "\r";case"crlf":return `\r
42883
- `;default:return `
42884
- `}}function At(e,t){let r;switch(t){case`
42885
- `:r=/\n/g;break;case"\r":r=/\r/g;break;case`\r
42886
- `: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,`
42887
- `)}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}',
42888
- 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}'.
42889
- 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(`
42890
- `)):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!==`
42891
- `?re(!1,l,`
42892
- `,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===`
42893
- `)return t-2;if(o===`
42894
- `||o==="\r"||o==="\u2028"||o==="\u2029")return t-1}else {if(o==="\r"&&e.charAt(t+1)===`
42895
- `)return t+2;if(o===`
42896
- `||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
42897
- (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).
42898
- 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.
42899
- 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
42900
- 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(`
42901
- `)),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(`
42902
- `)),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(`
42903
- `,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+=`
42904
- `+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(`
42905
- `,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
42906
- `&&(f+=At(F.slice(0,f),`
42907
- `)),F=re(!1,F,`
42908
- `,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
42909
- `);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(`
42910
- `);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)===`
42911
- `)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)};
42912
-
42913
- function printId(sv) {
42914
- if (needBacktick(sv)) {
42915
- const escapedString = sv
42916
- .replace(/\\/g, "\\\\")
42917
- .replace(/\n/g, "\\n")
42918
- .replace(/\r/g, "\\r")
42919
- .replace(/\t/g, "\\t")
42920
- .replace(/`/g, "\\`");
42921
- return `\`${escapedString}\``;
42922
- }
42923
- else {
42924
- return sv;
42542
+ function willBreak(doc) {
42543
+ return findInDoc(doc, willBreakFn, false);
42544
+ }
42545
+ function breakParentGroup(groupStack) {
42546
+ if (groupStack.length > 0) {
42547
+ const parentGroup = at_default(
42548
+ /* isOptionalObject */
42549
+ false,
42550
+ groupStack,
42551
+ -1
42552
+ );
42553
+ if (!parentGroup.expandedStates && !parentGroup.break) {
42554
+ parentGroup.break = "propagated";
42925
42555
  }
42556
+ }
42557
+ return null;
42926
42558
  }
42927
- function needBacktick(sv) {
42928
- if (sv.length === 0) {
42929
- return false;
42559
+ function propagateBreaks(doc) {
42560
+ const alreadyVisitedSet = /* @__PURE__ */ new Set();
42561
+ const groupStack = [];
42562
+ function propagateBreaksOnEnterFn(doc2) {
42563
+ if (doc2.type === DOC_TYPE_BREAK_PARENT) {
42564
+ breakParentGroup(groupStack);
42930
42565
  }
42931
- if (Keywords.has(sv)) {
42932
- return true;
42566
+ if (doc2.type === DOC_TYPE_GROUP) {
42567
+ groupStack.push(doc2);
42568
+ if (alreadyVisitedSet.has(doc2)) {
42569
+ return false;
42570
+ }
42571
+ alreadyVisitedSet.add(doc2);
42933
42572
  }
42934
- let cp = sv.codePointAt(0);
42935
- if (!isIdentifierStart(cp)) {
42936
- return true;
42573
+ }
42574
+ function propagateBreaksOnExitFn(doc2) {
42575
+ if (doc2.type === DOC_TYPE_GROUP) {
42576
+ const group2 = groupStack.pop();
42577
+ if (group2.break) {
42578
+ breakParentGroup(groupStack);
42579
+ }
42937
42580
  }
42938
- let pos = 0;
42939
- do {
42940
- pos += utf16CodeUnits(cp);
42941
- } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));
42942
- return pos < sv.length;
42581
+ }
42582
+ traverse_doc_default(
42583
+ doc,
42584
+ propagateBreaksOnEnterFn,
42585
+ propagateBreaksOnExitFn,
42586
+ /* shouldTraverseConditionalGroups */
42587
+ true
42588
+ );
42943
42589
  }
42944
- var CommentCheckFlags;
42945
- (function (CommentCheckFlags) {
42946
- /** Check comment is a leading comment */
42947
- CommentCheckFlags[CommentCheckFlags["Leading"] = 2] = "Leading";
42948
- /** Check comment is a trailing comment */
42949
- CommentCheckFlags[CommentCheckFlags["Trailing"] = 4] = "Trailing";
42950
- /** Check comment is a dangling comment */
42951
- CommentCheckFlags[CommentCheckFlags["Dangling"] = 8] = "Dangling";
42952
- /** Check comment is a block comment */
42953
- CommentCheckFlags[CommentCheckFlags["Block"] = 16] = "Block";
42954
- /** Check comment is a line comment */
42955
- CommentCheckFlags[CommentCheckFlags["Line"] = 32] = "Line";
42956
- /** Check comment is a `prettier-ignore` comment */
42957
- CommentCheckFlags[CommentCheckFlags["PrettierIgnore"] = 64] = "PrettierIgnore";
42958
- /** Check comment is the first attached comment */
42959
- CommentCheckFlags[CommentCheckFlags["First"] = 128] = "First";
42960
- /** Check comment is the last attached comment */
42961
- CommentCheckFlags[CommentCheckFlags["Last"] = 256] = "Last";
42962
- })(CommentCheckFlags || (CommentCheckFlags = {}));
42963
-
42964
- function getTypeName(type, options) {
42965
- switch (type.kind) {
42966
- case "Namespace":
42967
- return getNamespaceFullName(type, options);
42968
- case "TemplateParameter":
42969
- return getIdentifierName(type.node.id.sv, options);
42970
- case "Scalar":
42971
- return getScalarName(type, options);
42972
- case "Model":
42973
- return getModelName(type, options);
42974
- case "ModelProperty":
42975
- return getModelPropertyName(type, options);
42976
- case "Interface":
42977
- return getInterfaceName(type, options);
42978
- case "Operation":
42979
- return getOperationName(type, options);
42980
- case "Enum":
42981
- return getEnumName(type, options);
42982
- case "EnumMember":
42983
- return `${getEnumName(type.enum, options)}.${getIdentifierName(type.name, options)}`;
42984
- case "Union":
42985
- return getUnionName(type, options);
42986
- case "UnionVariant":
42987
- return getTypeName(type.type, options);
42988
- case "Tuple":
42989
- return "[" + type.values.map((x) => getTypeName(x, options)).join(", ") + "]";
42990
- case "StringTemplate":
42991
- return getStringTemplateName(type);
42992
- case "String":
42993
- return `"${type.value}"`;
42994
- case "Number":
42995
- return type.valueAsString;
42996
- case "Boolean":
42997
- return type.value.toString();
42998
- case "Intrinsic":
42999
- return type.name;
43000
- default:
43001
- return `(unnamed type)`;
42590
+ function removeLinesFn(doc) {
42591
+ if (doc.type === DOC_TYPE_LINE && !doc.hard) {
42592
+ return doc.soft ? "" : " ";
42593
+ }
42594
+ if (doc.type === DOC_TYPE_IF_BREAK) {
42595
+ return doc.flatContents;
42596
+ }
42597
+ return doc;
42598
+ }
42599
+ function removeLines(doc) {
42600
+ return mapDoc(doc, removeLinesFn);
42601
+ }
42602
+ function stripTrailingHardlineFromParts(parts) {
42603
+ parts = [...parts];
42604
+ while (parts.length >= 2 && at_default(
42605
+ /* isOptionalObject */
42606
+ false,
42607
+ parts,
42608
+ -2
42609
+ ).type === DOC_TYPE_LINE && at_default(
42610
+ /* isOptionalObject */
42611
+ false,
42612
+ parts,
42613
+ -1
42614
+ ).type === DOC_TYPE_BREAK_PARENT) {
42615
+ parts.length -= 2;
42616
+ }
42617
+ if (parts.length > 0) {
42618
+ const lastPart = stripTrailingHardlineFromDoc(at_default(
42619
+ /* isOptionalObject */
42620
+ false,
42621
+ parts,
42622
+ -1
42623
+ ));
42624
+ parts[parts.length - 1] = lastPart;
42625
+ }
42626
+ return parts;
42627
+ }
42628
+ function stripTrailingHardlineFromDoc(doc) {
42629
+ switch (get_doc_type_default(doc)) {
42630
+ case DOC_TYPE_INDENT:
42631
+ case DOC_TYPE_INDENT_IF_BREAK:
42632
+ case DOC_TYPE_GROUP:
42633
+ case DOC_TYPE_LINE_SUFFIX:
42634
+ case DOC_TYPE_LABEL: {
42635
+ const contents = stripTrailingHardlineFromDoc(doc.contents);
42636
+ return {
42637
+ ...doc,
42638
+ contents
42639
+ };
43002
42640
  }
42641
+ case DOC_TYPE_IF_BREAK:
42642
+ return {
42643
+ ...doc,
42644
+ breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
42645
+ flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
42646
+ };
42647
+ case DOC_TYPE_FILL:
42648
+ return {
42649
+ ...doc,
42650
+ parts: stripTrailingHardlineFromParts(doc.parts)
42651
+ };
42652
+ case DOC_TYPE_ARRAY:
42653
+ return stripTrailingHardlineFromParts(doc);
42654
+ case DOC_TYPE_STRING:
42655
+ return doc.replace(/[\n\r]*$/, "");
42656
+ case DOC_TYPE_ALIGN:
42657
+ case DOC_TYPE_CURSOR:
42658
+ case DOC_TYPE_TRIM:
42659
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42660
+ case DOC_TYPE_LINE:
42661
+ case DOC_TYPE_BREAK_PARENT:
42662
+ break;
42663
+ default:
42664
+ throw new invalid_doc_error_default(doc);
42665
+ }
42666
+ return doc;
43003
42667
  }
43004
- function getValuePreview(value, options) {
43005
- switch (value.valueKind) {
43006
- case "ObjectValue":
43007
- return `#{${[...value.properties.entries()].map(([name, value]) => `${name}: ${getValuePreview(value.value, options)}`).join(", ")}}`;
43008
- case "ArrayValue":
43009
- return `#[${value.values.map((x) => getValuePreview(x, options)).join(", ")}]`;
43010
- case "StringValue":
43011
- return `"${value.value}"`;
43012
- case "BooleanValue":
43013
- return `${value.value}`;
43014
- case "NumericValue":
43015
- return `${value.value.toString()}`;
43016
- case "EnumValue":
43017
- return getTypeName(value.value);
43018
- case "NullValue":
43019
- return "null";
43020
- case "ScalarValue":
43021
- return `${getTypeName(value.type, options)}.${value.value.name}(${value.value.args.map((x) => getValuePreview(x, options)).join(", ")}})`;
43022
- }
42668
+ function stripTrailingHardline(doc) {
42669
+ return stripTrailingHardlineFromDoc(cleanDoc(doc));
43023
42670
  }
43024
- function getEntityName(entity, options) {
43025
- if (isValue(entity)) {
43026
- return getValuePreview(entity, options);
43027
- }
43028
- else if (isType(entity)) {
43029
- return getTypeName(entity, options);
43030
- }
43031
- else {
43032
- switch (entity.entityKind) {
43033
- case "MixedParameterConstraint":
43034
- return [
43035
- entity.type && getEntityName(entity.type),
43036
- entity.valueType && `valueof ${getEntityName(entity.valueType)}`,
43037
- ]
43038
- .filter(isDefined)
43039
- .join(" | ");
43040
- case "Indeterminate":
43041
- return getTypeName(entity.type, options);
42671
+ function cleanDocFn(doc) {
42672
+ switch (get_doc_type_default(doc)) {
42673
+ case DOC_TYPE_FILL:
42674
+ if (doc.parts.every((part) => part === "")) {
42675
+ return "";
42676
+ }
42677
+ break;
42678
+ case DOC_TYPE_GROUP:
42679
+ if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {
42680
+ return "";
42681
+ }
42682
+ if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {
42683
+ return doc.contents;
42684
+ }
42685
+ break;
42686
+ case DOC_TYPE_ALIGN:
42687
+ case DOC_TYPE_INDENT:
42688
+ case DOC_TYPE_INDENT_IF_BREAK:
42689
+ case DOC_TYPE_LINE_SUFFIX:
42690
+ if (!doc.contents) {
42691
+ return "";
42692
+ }
42693
+ break;
42694
+ case DOC_TYPE_IF_BREAK:
42695
+ if (!doc.flatContents && !doc.breakContents) {
42696
+ return "";
42697
+ }
42698
+ break;
42699
+ case DOC_TYPE_ARRAY: {
42700
+ const parts = [];
42701
+ for (const part of doc) {
42702
+ if (!part) {
42703
+ continue;
42704
+ }
42705
+ const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];
42706
+ if (typeof currentPart === "string" && typeof at_default(
42707
+ /* isOptionalObject */
42708
+ false,
42709
+ parts,
42710
+ -1
42711
+ ) === "string") {
42712
+ parts[parts.length - 1] += currentPart;
42713
+ } else {
42714
+ parts.push(currentPart);
43042
42715
  }
42716
+ parts.push(...restParts);
42717
+ }
42718
+ if (parts.length === 0) {
42719
+ return "";
42720
+ }
42721
+ if (parts.length === 1) {
42722
+ return parts[0];
42723
+ }
42724
+ return parts;
43043
42725
  }
42726
+ case DOC_TYPE_STRING:
42727
+ case DOC_TYPE_CURSOR:
42728
+ case DOC_TYPE_TRIM:
42729
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42730
+ case DOC_TYPE_LINE:
42731
+ case DOC_TYPE_LABEL:
42732
+ case DOC_TYPE_BREAK_PARENT:
42733
+ break;
42734
+ default:
42735
+ throw new invalid_doc_error_default(doc);
42736
+ }
42737
+ return doc;
43044
42738
  }
43045
- function isStdNamespace(namespace) {
43046
- return ((namespace.name === "TypeSpec" && namespace.namespace?.name === "") ||
43047
- (namespace.name === "Reflection" &&
43048
- namespace.namespace?.name === "TypeSpec" &&
43049
- namespace.namespace?.namespace?.name === ""));
42739
+ function cleanDoc(doc) {
42740
+ return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));
43050
42741
  }
43051
- /**
43052
- * Return the full name of the namespace(e.g. "Foo.Bar")
43053
- * @param type namespace type
43054
- * @param options
43055
- * @returns
43056
- */
43057
- function getNamespaceFullName(type, options) {
43058
- const segments = [];
43059
- let current = type;
43060
- while (current && current.name !== "") {
43061
- segments.unshift(getIdentifierName(current.name, options));
43062
- current = current.namespace;
43063
- }
43064
- return segments.join(".");
42742
+ function replaceEndOfLine(doc, replacement = literalline) {
42743
+ return mapDoc(doc, (currentDoc) => typeof currentDoc === "string" ? join(replacement, currentDoc.split("\n")) : currentDoc);
43065
42744
  }
43066
- function getNamespacePrefix(type, options) {
43067
- if (type === undefined || isStdNamespace(type)) {
43068
- return "";
43069
- }
43070
- const namespaceFullName = getNamespaceFullName(type, options);
43071
- return namespaceFullName !== "" ? namespaceFullName + "." : "";
42745
+ function canBreakFn(doc) {
42746
+ if (doc.type === DOC_TYPE_LINE) {
42747
+ return true;
42748
+ }
43072
42749
  }
43073
- function getEnumName(e, options) {
43074
- return `${getNamespacePrefix(e.namespace, options)}${getIdentifierName(e.name, options)}`;
42750
+ function canBreak(doc) {
42751
+ return findInDoc(doc, canBreakFn, false);
43075
42752
  }
43076
- function getScalarName(scalar, options) {
43077
- return `${getNamespacePrefix(scalar.namespace, options)}${getIdentifierName(scalar.name, options)}`;
42753
+
42754
+ // src/document/printer.js
42755
+ var MODE_BREAK = Symbol("MODE_BREAK");
42756
+ var MODE_FLAT = Symbol("MODE_FLAT");
42757
+ var CURSOR_PLACEHOLDER = Symbol("cursor");
42758
+ function rootIndent() {
42759
+ return {
42760
+ value: "",
42761
+ length: 0,
42762
+ queue: []
42763
+ };
43078
42764
  }
43079
- function getModelName(model, options) {
43080
- const nsPrefix = getNamespacePrefix(model.namespace, options);
43081
- if (model.name === "" && model.properties.size === 0) {
43082
- return "{}";
43083
- }
43084
- if (model.indexer && model.indexer.key.kind === "Scalar") {
43085
- if (model.name === "Array" && isInTypeSpecNamespace(model)) {
43086
- return `${getTypeName(model.indexer.value, options)}[]`;
42765
+ function makeIndent(ind, options) {
42766
+ return generateInd(ind, {
42767
+ type: "indent"
42768
+ }, options);
42769
+ }
42770
+ function makeAlign(indent2, widthOrDoc, options) {
42771
+ if (widthOrDoc === Number.NEGATIVE_INFINITY) {
42772
+ return indent2.root || rootIndent();
42773
+ }
42774
+ if (widthOrDoc < 0) {
42775
+ return generateInd(indent2, {
42776
+ type: "dedent"
42777
+ }, options);
42778
+ }
42779
+ if (!widthOrDoc) {
42780
+ return indent2;
42781
+ }
42782
+ if (widthOrDoc.type === "root") {
42783
+ return {
42784
+ ...indent2,
42785
+ root: indent2
42786
+ };
42787
+ }
42788
+ const alignType = typeof widthOrDoc === "string" ? "stringAlign" : "numberAlign";
42789
+ return generateInd(indent2, {
42790
+ type: alignType,
42791
+ n: widthOrDoc
42792
+ }, options);
42793
+ }
42794
+ function generateInd(ind, newPart, options) {
42795
+ const queue = newPart.type === "dedent" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];
42796
+ let value = "";
42797
+ let length = 0;
42798
+ let lastTabs = 0;
42799
+ let lastSpaces = 0;
42800
+ for (const part of queue) {
42801
+ switch (part.type) {
42802
+ case "indent":
42803
+ flush();
42804
+ if (options.useTabs) {
42805
+ addTabs(1);
42806
+ } else {
42807
+ addSpaces(options.tabWidth);
43087
42808
  }
42809
+ break;
42810
+ case "stringAlign":
42811
+ flush();
42812
+ value += part.n;
42813
+ length += part.n.length;
42814
+ break;
42815
+ case "numberAlign":
42816
+ lastTabs += 1;
42817
+ lastSpaces += part.n;
42818
+ break;
42819
+ default:
42820
+ throw new Error(`Unexpected type '${part.type}'`);
43088
42821
  }
43089
- if (model.name === "") {
43090
- return (nsPrefix +
43091
- `{ ${[...model.properties.values()].map((prop) => `${prop.name}: ${getTypeName(prop.type, options)}`).join(", ")} }`);
43092
- }
43093
- const modelName = nsPrefix + getIdentifierName(model.name, options);
43094
- if (isTemplateInstance(model)) {
43095
- // template instantiation
43096
- const args = model.templateMapper.args.map((x) => getEntityName(x, options));
43097
- return `${modelName}<${args.join(", ")}>`;
43098
- }
43099
- else if (model.node?.templateParameters?.length > 0) {
43100
- // template
43101
- const params = model.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
43102
- return `${modelName}<${params.join(", ")}>`;
43103
- }
43104
- else {
43105
- // regular old model.
43106
- return modelName;
42822
+ }
42823
+ flushSpaces();
42824
+ return {
42825
+ ...ind,
42826
+ value,
42827
+ length,
42828
+ queue
42829
+ };
42830
+ function addTabs(count) {
42831
+ value += " ".repeat(count);
42832
+ length += options.tabWidth * count;
42833
+ }
42834
+ function addSpaces(count) {
42835
+ value += " ".repeat(count);
42836
+ length += count;
42837
+ }
42838
+ function flush() {
42839
+ if (options.useTabs) {
42840
+ flushTabs();
42841
+ } else {
42842
+ flushSpaces();
43107
42843
  }
43108
- }
43109
- function getUnionName(type, options) {
43110
- const nsPrefix = getNamespacePrefix(type.namespace, options);
43111
- const typeName = type.name
43112
- ? getIdentifierName(type.name, options)
43113
- : [...type.variants.values()].map((x) => getTypeName(x.type, options)).join(" | ");
43114
- return nsPrefix + typeName;
43115
- }
43116
- /**
43117
- * Check if the given namespace is the standard library `TypeSpec` namespace.
43118
- */
43119
- function isTypeSpecNamespace(namespace) {
43120
- return namespace.name === "TypeSpec" && namespace.namespace?.name === "";
43121
- }
43122
- /**
43123
- * Check if the given type is defined right in the TypeSpec namespace.
43124
- */
43125
- function isInTypeSpecNamespace(type) {
43126
- return Boolean(type.namespace && isTypeSpecNamespace(type.namespace));
43127
- }
43128
- function getModelPropertyName(prop, options) {
43129
- const modelName = prop.model ? getModelName(prop.model, options) : undefined;
43130
- return `${modelName ?? "(anonymous model)"}.${prop.name}`;
43131
- }
43132
- function getInterfaceName(iface, options) {
43133
- let interfaceName = getIdentifierName(iface.name, options);
43134
- if (isTemplateInstance(iface)) {
43135
- interfaceName += `<${iface.templateMapper.args
43136
- .map((x) => getEntityName(x, options))
43137
- .join(", ")}>`;
42844
+ }
42845
+ function flushTabs() {
42846
+ if (lastTabs > 0) {
42847
+ addTabs(lastTabs);
43138
42848
  }
43139
- return `${getNamespacePrefix(iface.namespace, options)}${interfaceName}`;
43140
- }
43141
- function getOperationName(op, options) {
43142
- let opName = getIdentifierName(op.name, options);
43143
- if (op.node.templateParameters.length > 0) {
43144
- // template
43145
- const params = op.node.templateParameters.map((t) => getIdentifierName(t.id.sv, options));
43146
- opName += `<${params.join(", ")}>`;
42849
+ resetLast();
42850
+ }
42851
+ function flushSpaces() {
42852
+ if (lastSpaces > 0) {
42853
+ addSpaces(lastSpaces);
43147
42854
  }
43148
- const prefix = op.interface
43149
- ? getInterfaceName(op.interface, options) + "."
43150
- : getNamespacePrefix(op.namespace, options);
43151
- return `${prefix}${opName}`;
43152
- }
43153
- function getIdentifierName(name, options) {
43154
- return options?.printable ? printId(name) : name;
42855
+ resetLast();
42856
+ }
42857
+ function resetLast() {
42858
+ lastTabs = 0;
42859
+ lastSpaces = 0;
42860
+ }
43155
42861
  }
43156
- function getStringTemplateName(type) {
43157
- if (type.stringValue) {
43158
- return `"${type.stringValue}"`;
42862
+ function trim2(out) {
42863
+ let trimCount = 0;
42864
+ let cursorCount = 0;
42865
+ let outIndex = out.length;
42866
+ outer: while (outIndex--) {
42867
+ const last = out[outIndex];
42868
+ if (last === CURSOR_PLACEHOLDER) {
42869
+ cursorCount++;
42870
+ continue;
43159
42871
  }
43160
- return "string";
43161
- }
43162
-
43163
- class InvalidNumericError extends Error {
43164
- code = "InvalidNumeric";
43165
- }
43166
- /** @internal */
43167
- const InternalDataSym = Symbol.for("NumericInternalData");
43168
- /**
43169
- * Represent any possible numeric value
43170
- */
43171
- function Numeric(stringValue) {
43172
- if (new.target) {
43173
- throw new Error("Numeric is not a constructor");
42872
+ for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {
42873
+ const char = last[charIndex];
42874
+ if (char === " " || char === " ") {
42875
+ trimCount++;
42876
+ } else {
42877
+ out[outIndex] = last.slice(0, charIndex + 1);
42878
+ break outer;
42879
+ }
43174
42880
  }
43175
- const data = parse$1(stringValue);
43176
- const isInteger = data.d === 0;
43177
- const obj = {
43178
- [InternalDataSym]: data,
43179
- isInteger,
43180
- };
43181
- // 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.
43182
- const numeric = setTypedProptotype(obj, NumericPrototype);
43183
- return Object.freeze(numeric);
43184
- }
43185
- function setTypedProptotype(obj, prototype) {
43186
- Object.setPrototypeOf(obj, prototype);
43187
- return obj;
42881
+ }
42882
+ if (trimCount > 0 || cursorCount > 0) {
42883
+ out.length = outIndex + 1;
42884
+ while (cursorCount-- > 0) {
42885
+ out.push(CURSOR_PLACEHOLDER);
42886
+ }
42887
+ }
42888
+ return trimCount;
43188
42889
  }
43189
- function parse$1(original) {
43190
- let stringValue = original;
43191
- let start = 0;
43192
- let sign = 1;
43193
- let n;
43194
- let exp;
43195
- let decimal;
43196
- if (stringValue[0] === "-") {
43197
- start = 1;
43198
- sign = -1;
42890
+ function fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {
42891
+ if (width === Number.POSITIVE_INFINITY) {
42892
+ return true;
42893
+ }
42894
+ let restIdx = restCommands.length;
42895
+ const cmds = [next];
42896
+ const out = [];
42897
+ while (width >= 0) {
42898
+ if (cmds.length === 0) {
42899
+ if (restIdx === 0) {
42900
+ return true;
42901
+ }
42902
+ cmds.push(restCommands[--restIdx]);
42903
+ continue;
43199
42904
  }
43200
- const second = stringValue[start + 1]?.toLowerCase();
43201
- if (stringValue[start] === "0" && (second === "b" || second === "x" || second === "o")) {
43202
- try {
43203
- n = BigInt(stringValue.slice(start));
43204
- exp = n.toString().length;
43205
- decimal = 0;
42905
+ const {
42906
+ mode,
42907
+ doc
42908
+ } = cmds.pop();
42909
+ const docType = get_doc_type_default(doc);
42910
+ switch (docType) {
42911
+ case DOC_TYPE_STRING:
42912
+ out.push(doc);
42913
+ width -= get_string_width_default(doc);
42914
+ break;
42915
+ case DOC_TYPE_ARRAY:
42916
+ case DOC_TYPE_FILL: {
42917
+ const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;
42918
+ for (let i = parts.length - 1; i >= 0; i--) {
42919
+ cmds.push({
42920
+ mode,
42921
+ doc: parts[i]
42922
+ });
43206
42923
  }
43207
- catch {
43208
- throw new InvalidNumericError(`Invalid numeric value: ${original}`);
42924
+ break;
42925
+ }
42926
+ case DOC_TYPE_INDENT:
42927
+ case DOC_TYPE_ALIGN:
42928
+ case DOC_TYPE_INDENT_IF_BREAK:
42929
+ case DOC_TYPE_LABEL:
42930
+ cmds.push({
42931
+ mode,
42932
+ doc: doc.contents
42933
+ });
42934
+ break;
42935
+ case DOC_TYPE_TRIM:
42936
+ width += trim2(out);
42937
+ break;
42938
+ case DOC_TYPE_GROUP: {
42939
+ if (mustBeFlat && doc.break) {
42940
+ return false;
42941
+ }
42942
+ const groupMode = doc.break ? MODE_BREAK : mode;
42943
+ const contents = doc.expandedStates && groupMode === MODE_BREAK ? at_default(
42944
+ /* isOptionalObject */
42945
+ false,
42946
+ doc.expandedStates,
42947
+ -1
42948
+ ) : doc.contents;
42949
+ cmds.push({
42950
+ mode: groupMode,
42951
+ doc: contents
42952
+ });
42953
+ break;
42954
+ }
42955
+ case DOC_TYPE_IF_BREAK: {
42956
+ const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;
42957
+ const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;
42958
+ if (contents) {
42959
+ cmds.push({
42960
+ mode,
42961
+ doc: contents
42962
+ });
42963
+ }
42964
+ break;
42965
+ }
42966
+ case DOC_TYPE_LINE:
42967
+ if (mode === MODE_BREAK || doc.hard) {
42968
+ return true;
42969
+ }
42970
+ if (!doc.soft) {
42971
+ out.push(" ");
42972
+ width--;
42973
+ }
42974
+ break;
42975
+ case DOC_TYPE_LINE_SUFFIX:
42976
+ hasLineSuffix = true;
42977
+ break;
42978
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
42979
+ if (hasLineSuffix) {
42980
+ return false;
42981
+ }
42982
+ break;
42983
+ }
42984
+ }
42985
+ return false;
42986
+ }
42987
+ function printDocToString(doc, options) {
42988
+ const groupModeMap = {};
42989
+ const width = options.printWidth;
42990
+ const newLine = convertEndOfLineToChars(options.endOfLine);
42991
+ let pos = 0;
42992
+ const cmds = [{
42993
+ ind: rootIndent(),
42994
+ mode: MODE_BREAK,
42995
+ doc
42996
+ }];
42997
+ const out = [];
42998
+ let shouldRemeasure = false;
42999
+ const lineSuffix2 = [];
43000
+ let printedCursorCount = 0;
43001
+ propagateBreaks(doc);
43002
+ while (cmds.length > 0) {
43003
+ const {
43004
+ ind,
43005
+ mode,
43006
+ doc: doc2
43007
+ } = cmds.pop();
43008
+ switch (get_doc_type_default(doc2)) {
43009
+ case DOC_TYPE_STRING: {
43010
+ const formatted = newLine !== "\n" ? string_replace_all_default(
43011
+ /* isOptionalObject */
43012
+ false,
43013
+ doc2,
43014
+ "\n",
43015
+ newLine
43016
+ ) : doc2;
43017
+ out.push(formatted);
43018
+ if (cmds.length > 0) {
43019
+ pos += get_string_width_default(formatted);
43209
43020
  }
43210
- }
43211
- else {
43212
- // Skip leading 0.
43213
- while (stringValue[start] === "0") {
43214
- start++;
43021
+ break;
43022
+ }
43023
+ case DOC_TYPE_ARRAY:
43024
+ for (let i = doc2.length - 1; i >= 0; i--) {
43025
+ cmds.push({
43026
+ ind,
43027
+ mode,
43028
+ doc: doc2[i]
43029
+ });
43215
43030
  }
43216
- const decimalPointIndex = stringValue.indexOf(".");
43217
- const adjustedPointIndex = decimalPointIndex - start;
43218
- // Decimal point?
43219
- if (decimalPointIndex !== -1) {
43220
- exp = adjustedPointIndex;
43221
- stringValue = stringValue.replace(".", "");
43031
+ break;
43032
+ case DOC_TYPE_CURSOR:
43033
+ if (printedCursorCount >= 2) {
43034
+ throw new Error("There are too many 'cursor' in doc.");
43222
43035
  }
43223
- let i;
43224
- if ((i = stringValue.search(/e/i)) > 0) {
43225
- // Determine exponent.
43226
- if (exp === undefined) {
43227
- exp = i - start;
43036
+ out.push(CURSOR_PLACEHOLDER);
43037
+ printedCursorCount++;
43038
+ break;
43039
+ case DOC_TYPE_INDENT:
43040
+ cmds.push({
43041
+ ind: makeIndent(ind, options),
43042
+ mode,
43043
+ doc: doc2.contents
43044
+ });
43045
+ break;
43046
+ case DOC_TYPE_ALIGN:
43047
+ cmds.push({
43048
+ ind: makeAlign(ind, doc2.n, options),
43049
+ mode,
43050
+ doc: doc2.contents
43051
+ });
43052
+ break;
43053
+ case DOC_TYPE_TRIM:
43054
+ pos -= trim2(out);
43055
+ break;
43056
+ case DOC_TYPE_GROUP:
43057
+ switch (mode) {
43058
+ case MODE_FLAT:
43059
+ if (!shouldRemeasure) {
43060
+ cmds.push({
43061
+ ind,
43062
+ mode: doc2.break ? MODE_BREAK : MODE_FLAT,
43063
+ doc: doc2.contents
43064
+ });
43065
+ break;
43228
43066
  }
43229
- exp += Number(stringValue.slice(i + 1));
43230
- stringValue = stringValue.slice(start, i);
43067
+ case MODE_BREAK: {
43068
+ shouldRemeasure = false;
43069
+ const next = {
43070
+ ind,
43071
+ mode: MODE_FLAT,
43072
+ doc: doc2.contents
43073
+ };
43074
+ const rem = width - pos;
43075
+ const hasLineSuffix = lineSuffix2.length > 0;
43076
+ if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {
43077
+ cmds.push(next);
43078
+ } else {
43079
+ if (doc2.expandedStates) {
43080
+ const mostExpanded = at_default(
43081
+ /* isOptionalObject */
43082
+ false,
43083
+ doc2.expandedStates,
43084
+ -1
43085
+ );
43086
+ if (doc2.break) {
43087
+ cmds.push({
43088
+ ind,
43089
+ mode: MODE_BREAK,
43090
+ doc: mostExpanded
43091
+ });
43092
+ break;
43093
+ } else {
43094
+ for (let i = 1; i < doc2.expandedStates.length + 1; i++) {
43095
+ if (i >= doc2.expandedStates.length) {
43096
+ cmds.push({
43097
+ ind,
43098
+ mode: MODE_BREAK,
43099
+ doc: mostExpanded
43100
+ });
43101
+ break;
43102
+ } else {
43103
+ const state = doc2.expandedStates[i];
43104
+ const cmd = {
43105
+ ind,
43106
+ mode: MODE_FLAT,
43107
+ doc: state
43108
+ };
43109
+ if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {
43110
+ cmds.push(cmd);
43111
+ break;
43112
+ }
43113
+ }
43114
+ }
43115
+ }
43116
+ } else {
43117
+ cmds.push({
43118
+ ind,
43119
+ mode: MODE_BREAK,
43120
+ doc: doc2.contents
43121
+ });
43122
+ }
43123
+ }
43124
+ break;
43125
+ }
43231
43126
  }
43232
- else if (exp === undefined) {
43233
- // Integer.
43234
- exp = stringValue.length - start;
43235
- stringValue = stringValue.slice(start);
43127
+ if (doc2.id) {
43128
+ groupModeMap[doc2.id] = at_default(
43129
+ /* isOptionalObject */
43130
+ false,
43131
+ cmds,
43132
+ -1
43133
+ ).mode;
43236
43134
  }
43237
- else {
43238
- stringValue = stringValue.slice(start);
43135
+ break;
43136
+ case DOC_TYPE_FILL: {
43137
+ const rem = width - pos;
43138
+ const {
43139
+ parts
43140
+ } = doc2;
43141
+ if (parts.length === 0) {
43142
+ break;
43239
43143
  }
43240
- let end = stringValue.length;
43241
- while (stringValue[end - 1] === "0" && end > adjustedPointIndex) {
43242
- end--;
43144
+ const [content, whitespace] = parts;
43145
+ const contentFlatCmd = {
43146
+ ind,
43147
+ mode: MODE_FLAT,
43148
+ doc: content
43149
+ };
43150
+ const contentBreakCmd = {
43151
+ ind,
43152
+ mode: MODE_BREAK,
43153
+ doc: content
43154
+ };
43155
+ const contentFits = fits(contentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
43156
+ if (parts.length === 1) {
43157
+ if (contentFits) {
43158
+ cmds.push(contentFlatCmd);
43159
+ } else {
43160
+ cmds.push(contentBreakCmd);
43161
+ }
43162
+ break;
43163
+ }
43164
+ const whitespaceFlatCmd = {
43165
+ ind,
43166
+ mode: MODE_FLAT,
43167
+ doc: whitespace
43168
+ };
43169
+ const whitespaceBreakCmd = {
43170
+ ind,
43171
+ mode: MODE_BREAK,
43172
+ doc: whitespace
43173
+ };
43174
+ if (parts.length === 2) {
43175
+ if (contentFits) {
43176
+ cmds.push(whitespaceFlatCmd, contentFlatCmd);
43177
+ } else {
43178
+ cmds.push(whitespaceBreakCmd, contentBreakCmd);
43179
+ }
43180
+ break;
43181
+ }
43182
+ parts.splice(0, 2);
43183
+ const remainingCmd = {
43184
+ ind,
43185
+ mode,
43186
+ doc: fill(parts)
43187
+ };
43188
+ const secondContent = parts[0];
43189
+ const firstAndSecondContentFlatCmd = {
43190
+ ind,
43191
+ mode: MODE_FLAT,
43192
+ doc: [content, whitespace, secondContent]
43193
+ };
43194
+ const firstAndSecondContentFits = fits(firstAndSecondContentFlatCmd, [], rem, lineSuffix2.length > 0, groupModeMap, true);
43195
+ if (firstAndSecondContentFits) {
43196
+ cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);
43197
+ } else if (contentFits) {
43198
+ cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);
43199
+ } else {
43200
+ cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);
43201
+ }
43202
+ break;
43203
+ }
43204
+ case DOC_TYPE_IF_BREAK:
43205
+ case DOC_TYPE_INDENT_IF_BREAK: {
43206
+ const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;
43207
+ if (groupMode === MODE_BREAK) {
43208
+ const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);
43209
+ if (breakContents) {
43210
+ cmds.push({
43211
+ ind,
43212
+ mode,
43213
+ doc: breakContents
43214
+ });
43215
+ }
43216
+ }
43217
+ if (groupMode === MODE_FLAT) {
43218
+ const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;
43219
+ if (flatContents) {
43220
+ cmds.push({
43221
+ ind,
43222
+ mode,
43223
+ doc: flatContents
43224
+ });
43225
+ }
43243
43226
  }
43244
- try {
43245
- stringValue = stringValue.slice(0, end);
43246
- stringValue = stringValue + "0".repeat(Math.max(exp - stringValue.length, 0)); // add remaining zeros for cases like 3e30
43247
- n = BigInt(stringValue);
43248
- decimal = n === 0n ? 0 : Math.max(stringValue.length - exp, 0);
43227
+ break;
43228
+ }
43229
+ case DOC_TYPE_LINE_SUFFIX:
43230
+ lineSuffix2.push({
43231
+ ind,
43232
+ mode,
43233
+ doc: doc2.contents
43234
+ });
43235
+ break;
43236
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
43237
+ if (lineSuffix2.length > 0) {
43238
+ cmds.push({
43239
+ ind,
43240
+ mode,
43241
+ doc: hardlineWithoutBreakParent
43242
+ });
43249
43243
  }
43250
- catch {
43251
- throw new InvalidNumericError(`Invalid numeric value: ${original}`);
43244
+ break;
43245
+ case DOC_TYPE_LINE:
43246
+ switch (mode) {
43247
+ case MODE_FLAT:
43248
+ if (!doc2.hard) {
43249
+ if (!doc2.soft) {
43250
+ out.push(" ");
43251
+ pos += 1;
43252
+ }
43253
+ break;
43254
+ } else {
43255
+ shouldRemeasure = true;
43256
+ }
43257
+ case MODE_BREAK:
43258
+ if (lineSuffix2.length > 0) {
43259
+ cmds.push({
43260
+ ind,
43261
+ mode,
43262
+ doc: doc2
43263
+ }, ...lineSuffix2.reverse());
43264
+ lineSuffix2.length = 0;
43265
+ break;
43266
+ }
43267
+ if (doc2.literal) {
43268
+ if (ind.root) {
43269
+ out.push(newLine, ind.root.value);
43270
+ pos = ind.root.length;
43271
+ } else {
43272
+ out.push(newLine);
43273
+ pos = 0;
43274
+ }
43275
+ } else {
43276
+ pos -= trim2(out);
43277
+ out.push(newLine + ind.value);
43278
+ pos = ind.length;
43279
+ }
43280
+ break;
43252
43281
  }
43282
+ break;
43283
+ case DOC_TYPE_LABEL:
43284
+ cmds.push({
43285
+ ind,
43286
+ mode,
43287
+ doc: doc2.contents
43288
+ });
43289
+ break;
43290
+ case DOC_TYPE_BREAK_PARENT:
43291
+ break;
43292
+ default:
43293
+ throw new invalid_doc_error_default(doc2);
43253
43294
  }
43254
- return { n, e: exp, s: sign, d: decimal };
43255
- }
43256
- function stringify(value) {
43257
- const n = value.n.toString();
43258
- const sign = value.s === -1 ? "-" : "";
43259
- const decimal = value.e < n.length ? "." + n.slice(value.e) : "";
43260
- return sign + n.slice(0, value.e) + decimal;
43261
- }
43262
- const equals = (a, b) => a.n === b.n && a.e === b.e;
43263
- const compare = (a, b) => {
43264
- if (a.s < b.s) {
43265
- return -1;
43266
- }
43267
- else if (a.s > b.s) {
43268
- return 1;
43269
- }
43270
- const neg = a.s;
43271
- if (a.e < b.e) {
43272
- return (-1 * neg);
43273
- }
43274
- else if (a.e > b.e) {
43275
- return (1 * neg);
43276
- }
43277
- let aN = a.n;
43278
- let bN = b.n;
43279
- if (a.d < b.d) {
43280
- aN *= 10n ** BigInt(b.d - a.d);
43281
- }
43282
- else {
43283
- bN *= 10n ** BigInt(a.d - b.d);
43295
+ if (cmds.length === 0 && lineSuffix2.length > 0) {
43296
+ cmds.push(...lineSuffix2.reverse());
43297
+ lineSuffix2.length = 0;
43284
43298
  }
43285
- if (aN < bN)
43286
- return (-1 * neg);
43287
- if (aN > bN)
43288
- return (1 * neg);
43289
- return 0;
43290
- };
43291
- const NumericPrototype = {
43292
- toString: function () {
43293
- return stringify(this[InternalDataSym]);
43294
- },
43295
- asNumber: function () {
43296
- const num = Number(stringify(this[InternalDataSym]));
43297
- return equals(this[InternalDataSym], Numeric(num.toString())[InternalDataSym]) ? num : null;
43298
- },
43299
- asBigInt: function () {
43300
- return this.isInteger ? this[InternalDataSym].n : null;
43301
- },
43302
- equals: function (other) {
43303
- return equals(this[InternalDataSym], other[InternalDataSym]);
43304
- },
43305
- lt: function (other) {
43306
- return compare(this[InternalDataSym], other[InternalDataSym]) === -1;
43307
- },
43308
- lte: function (other) {
43309
- return compare(this[InternalDataSym], other[InternalDataSym]) <= 0;
43310
- },
43311
- gt: function (other) {
43312
- return compare(this[InternalDataSym], other[InternalDataSym]) === 1;
43313
- },
43314
- gte: function (other) {
43315
- return compare(this[InternalDataSym], other[InternalDataSym]) >= 0;
43316
- },
43299
+ }
43300
+ const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);
43301
+ if (cursorPlaceholderIndex !== -1) {
43302
+ const otherCursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER, cursorPlaceholderIndex + 1);
43303
+ const beforeCursor = out.slice(0, cursorPlaceholderIndex).join("");
43304
+ const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join("");
43305
+ const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join("");
43306
+ return {
43307
+ formatted: beforeCursor + aroundCursor + afterCursor,
43308
+ cursorNodeStart: beforeCursor.length,
43309
+ cursorNodeText: aroundCursor
43310
+ };
43311
+ }
43312
+ return {
43313
+ formatted: out.join("")
43314
+ };
43315
+ }
43316
+
43317
+ // src/document/public.js
43318
+ var builders = {
43319
+ join,
43320
+ line,
43321
+ softline,
43322
+ hardline,
43323
+ literalline,
43324
+ group,
43325
+ conditionalGroup,
43326
+ fill,
43327
+ lineSuffix,
43328
+ lineSuffixBoundary,
43329
+ cursor,
43330
+ breakParent,
43331
+ ifBreak,
43332
+ trim,
43333
+ indent,
43334
+ indentIfBreak,
43335
+ align,
43336
+ addAlignmentToDoc,
43337
+ markAsRoot,
43338
+ dedentToRoot,
43339
+ dedent,
43340
+ hardlineWithoutBreakParent,
43341
+ literallineWithoutBreakParent,
43342
+ label,
43343
+ // TODO: Remove this in v4
43344
+ concat: (parts) => parts
43317
43345
  };
43318
- NumericPrototype.toString = function () {
43319
- return stringify(this[InternalDataSym]);
43346
+ var printer = { printDocToString };
43347
+ var utils = {
43348
+ willBreak,
43349
+ traverseDoc: traverse_doc_default,
43350
+ findInDoc,
43351
+ mapDoc,
43352
+ removeLines,
43353
+ stripTrailingHardline,
43354
+ replaceEndOfLine,
43355
+ canBreak
43320
43356
  };
43321
43357
 
43322
- /**
43323
- * Set of known numeric ranges
43324
- */
43325
- ({
43326
- int64: [
43327
- Numeric("-9223372036854775808"),
43328
- Numeric("9223372036854775807"),
43329
- { int: true, isJsNumber: false },
43330
- ],
43331
- int32: [Numeric("-2147483648"), Numeric("2147483647"), { int: true, isJsNumber: true }],
43332
- int16: [Numeric("-32768"), Numeric("32767"), { int: true, isJsNumber: true }],
43333
- int8: [Numeric("-128"), Numeric("127"), { int: true, isJsNumber: true }],
43334
- uint64: [Numeric("0"), Numeric("18446744073709551615"), { int: true, isJsNumber: false }],
43335
- uint32: [Numeric("0"), Numeric("4294967295"), { int: true, isJsNumber: true }],
43336
- uint16: [Numeric("0"), Numeric("65535"), { int: true, isJsNumber: true }],
43337
- uint8: [Numeric("0"), Numeric("255"), { int: true, isJsNumber: true }],
43338
- safeint: [
43339
- Numeric(Number.MIN_SAFE_INTEGER.toString()),
43340
- Numeric(Number.MAX_SAFE_INTEGER.toString()),
43341
- { int: true, isJsNumber: true },
43342
- ],
43343
- float32: [Numeric("-3.4e38"), Numeric("3.4e38"), { int: false, isJsNumber: true }],
43344
- float64: [
43345
- Numeric(`${-Number.MAX_VALUE}`),
43346
- Numeric(Number.MAX_VALUE.toString()),
43347
- { int: false, isJsNumber: true },
43348
- ],
43349
- });
43350
-
43351
- var ResolutionKind;
43352
- (function (ResolutionKind) {
43353
- ResolutionKind[ResolutionKind["Value"] = 0] = "Value";
43354
- ResolutionKind[ResolutionKind["Type"] = 1] = "Type";
43355
- ResolutionKind[ResolutionKind["BaseType"] = 2] = "BaseType";
43356
- ResolutionKind[ResolutionKind["Constraint"] = 3] = "Constraint";
43357
- })(ResolutionKind || (ResolutionKind = {}));
43358
- var Related;
43359
- (function (Related) {
43360
- Related[Related["false"] = 0] = "false";
43361
- Related[Related["true"] = 1] = "true";
43362
- Related[Related["maybe"] = 2] = "maybe";
43363
- })(Related || (Related = {}));
43358
+ var CommentCheckFlags;
43359
+ (function (CommentCheckFlags) {
43360
+ /** Check comment is a leading comment */
43361
+ CommentCheckFlags[CommentCheckFlags["Leading"] = 2] = "Leading";
43362
+ /** Check comment is a trailing comment */
43363
+ CommentCheckFlags[CommentCheckFlags["Trailing"] = 4] = "Trailing";
43364
+ /** Check comment is a dangling comment */
43365
+ CommentCheckFlags[CommentCheckFlags["Dangling"] = 8] = "Dangling";
43366
+ /** Check comment is a block comment */
43367
+ CommentCheckFlags[CommentCheckFlags["Block"] = 16] = "Block";
43368
+ /** Check comment is a line comment */
43369
+ CommentCheckFlags[CommentCheckFlags["Line"] = 32] = "Line";
43370
+ /** Check comment is a `prettier-ignore` comment */
43371
+ CommentCheckFlags[CommentCheckFlags["PrettierIgnore"] = 64] = "PrettierIgnore";
43372
+ /** Check comment is the first attached comment */
43373
+ CommentCheckFlags[CommentCheckFlags["First"] = 128] = "First";
43374
+ /** Check comment is the last attached comment */
43375
+ CommentCheckFlags[CommentCheckFlags["Last"] = 256] = "Last";
43376
+ })(CommentCheckFlags || (CommentCheckFlags = {}));
43364
43377
 
43365
43378
  const noContext = new Set(["modelPropertyReference", "enumMemberReference"]);
43366
43379
  new Set([