python2ts 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +148 -0
- package/dist/acorn-CDFV7HXL.js +3131 -0
- package/dist/acorn-CDFV7HXL.js.map +1 -0
- package/dist/angular-PCJAXZFD.js +3071 -0
- package/dist/angular-PCJAXZFD.js.map +1 -0
- package/dist/babel-O6RKFHDQ.js +7297 -0
- package/dist/babel-O6RKFHDQ.js.map +1 -0
- package/dist/chunk-DTI6R2GT.js +23942 -0
- package/dist/chunk-DTI6R2GT.js.map +1 -0
- package/dist/chunk-PZ5AY32C.js +10 -0
- package/dist/chunk-PZ5AY32C.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +117 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/estree-467CT4RF.js +4613 -0
- package/dist/estree-467CT4RF.js.map +1 -0
- package/dist/flow-FCFYGKSM.js +27547 -0
- package/dist/flow-FCFYGKSM.js.map +1 -0
- package/dist/glimmer-P46N72G3.js +2895 -0
- package/dist/glimmer-P46N72G3.js.map +1 -0
- package/dist/graphql-TFOZJU7B.js +1267 -0
- package/dist/graphql-TFOZJU7B.js.map +1 -0
- package/dist/html-KZKNLN3R.js +2934 -0
- package/dist/html-KZKNLN3R.js.map +1 -0
- package/dist/index.d.ts +123 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown-BS2B5AKD.js +3554 -0
- package/dist/markdown-BS2B5AKD.js.map +1 -0
- package/dist/meriyah-W6HUPGCY.js +2685 -0
- package/dist/meriyah-W6HUPGCY.js.map +1 -0
- package/dist/postcss-LMJBCD2Q.js +5081 -0
- package/dist/postcss-LMJBCD2Q.js.map +1 -0
- package/dist/typescript-Y5EPKFX5.js +13204 -0
- package/dist/typescript-Y5EPKFX5.js.map +1 -0
- package/dist/yaml-ZNP3H3BX.js +4225 -0
- package/dist/yaml-ZNP3H3BX.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/parser/index.ts","../src/transformer/index.ts","../../../node_modules/.pnpm/prettier@3.8.0/node_modules/prettier/index.mjs","../../../node_modules/.pnpm/prettier@3.8.0/node_modules/prettier/doc.mjs","../src/generator/index.ts"],"sourcesContent":["import { parser } from \"@lezer/python\"\nimport type { SyntaxNode, Tree } from \"@lezer/common\"\nimport type { ParseResult } from \"./types.js\"\n\nexport function parse(source: string): ParseResult {\n const tree = parser.parse(source)\n return { tree, source }\n}\n\nexport function getNodeText(node: SyntaxNode, source: string): string {\n return source.slice(node.from, node.to)\n}\n\nexport function getChildren(node: SyntaxNode): SyntaxNode[] {\n const children: SyntaxNode[] = []\n let child = node.firstChild\n while (child) {\n children.push(child)\n child = child.nextSibling\n }\n return children\n}\n\nexport function getChildByType(node: SyntaxNode, type: string): SyntaxNode | null {\n let child = node.firstChild\n while (child) {\n if (child.name === type) {\n return child\n }\n child = child.nextSibling\n }\n return null\n}\n\nexport function getChildrenByType(node: SyntaxNode, type: string): SyntaxNode[] {\n const children: SyntaxNode[] = []\n let child = node.firstChild\n while (child) {\n if (child.name === type) {\n children.push(child)\n }\n child = child.nextSibling\n }\n return children\n}\n\nexport function walkTree(tree: Tree, callback: (node: SyntaxNode) => void): void {\n const cursor = tree.cursor()\n do {\n callback(cursor.node)\n } while (cursor.next())\n}\n\nexport function debugTree(tree: Tree, source: string): string {\n const lines: string[] = []\n const cursor = tree.cursor()\n let depth = 0\n\n do {\n const indent = \" \".repeat(depth)\n const text = source.slice(cursor.from, cursor.to).replace(/\\n/g, \"\\\\n\")\n const preview = text.length > 30 ? text.slice(0, 30) + \"...\" : text\n lines.push(`${indent}${cursor.name} [${String(cursor.from)}-${String(cursor.to)}] \"${preview}\"`)\n\n if (cursor.firstChild()) {\n depth++\n } else {\n while (!cursor.nextSibling()) {\n if (!cursor.parent()) break\n depth--\n }\n }\n } while (depth > 0 || cursor.nextSibling())\n\n return lines.join(\"\\n\")\n}\n\nexport * from \"./types.js\"\n","import type { SyntaxNode } from \"@lezer/common\"\nimport { getNodeText, getChildren, parse, type ParseResult } from \"../parser/index.js\"\n\nexport interface TransformContext {\n source: string\n indentLevel: number\n usesRuntime: Set<string>\n /** Stack of scopes - each scope is a set of variable names declared in that scope */\n scopeStack: Set<string>[]\n /** Set of class names defined in this module (for adding 'new' on instantiation) */\n definedClasses: Set<string>\n /** Whether currently processing an abstract class (ABC) */\n isAbstractClass?: boolean\n}\n\nexport interface TransformResult {\n code: string\n usesRuntime: Set<string>\n}\n\nfunction createContext(source: string): TransformContext {\n return {\n source,\n indentLevel: 0,\n usesRuntime: new Set(),\n scopeStack: [new Set()], // Start with one global scope\n definedClasses: new Set()\n }\n}\n\n/** Push a new scope onto the stack */\nfunction pushScope(ctx: TransformContext): void {\n ctx.scopeStack.push(new Set())\n}\n\n/** Pop the current scope from the stack */\nfunction popScope(ctx: TransformContext): void {\n if (ctx.scopeStack.length > 1) {\n ctx.scopeStack.pop()\n }\n}\n\n/** Check if a variable is declared in any accessible scope */\nfunction isVariableDeclared(ctx: TransformContext, name: string): boolean {\n for (const scope of ctx.scopeStack) {\n if (scope.has(name)) return true\n }\n return false\n}\n\n/** Declare a variable in the current (top) scope */\nfunction declareVariable(ctx: TransformContext, name: string): void {\n const currentScope = ctx.scopeStack[ctx.scopeStack.length - 1]\n if (currentScope) {\n currentScope.add(name)\n }\n}\n\n/** Check if a node or any of its descendants contain a yield statement */\nfunction containsYield(node: SyntaxNode): boolean {\n if (node.name === \"YieldStatement\" || node.name === \"YieldExpression\") {\n return true\n }\n // Don't recurse into nested function definitions - their yields are for their own scope\n if (node.name === \"FunctionDefinition\" || node.name === \"LambdaExpression\") {\n return false\n }\n for (const child of getChildren(node)) {\n if (containsYield(child)) {\n return true\n }\n }\n return false\n}\n\n/** Map of Python built-in types to TypeScript types */\nconst PYTHON_TO_TS_TYPES: Record<string, string> = {\n str: \"string\",\n int: \"number\",\n float: \"number\",\n bool: \"boolean\",\n bytes: \"Uint8Array\",\n None: \"null\",\n Any: \"any\",\n object: \"object\"\n}\n\n/**\n * Transform a Python type annotation to TypeScript\n */\nfunction transformPythonType(node: SyntaxNode, ctx: TransformContext): string {\n switch (node.name) {\n case \"VariableName\": {\n const typeName = getNodeText(node, ctx.source)\n return PYTHON_TO_TS_TYPES[typeName] ?? typeName\n }\n\n case \"None\":\n return \"null\"\n\n case \"MemberExpression\": {\n // Generic types like list[str], dict[str, int], Optional[T]\n const children = getChildren(node)\n const baseType = children[0]\n if (!baseType) return getNodeText(node, ctx.source)\n\n const baseName = getNodeText(baseType, ctx.source)\n\n // Extract type arguments between [ and ]\n const bracketStart = children.findIndex((c) => c.name === \"[\")\n const bracketEnd = children.findIndex((c) => c.name === \"]\")\n if (bracketStart === -1 || bracketEnd === -1) {\n return PYTHON_TO_TS_TYPES[baseName] ?? baseName\n }\n\n // Raw type argument nodes (before transformation)\n const rawTypeArgNodes = children\n .slice(bracketStart + 1, bracketEnd)\n .filter((c) => c.name !== \",\")\n\n // Special handling for Callable to get proper parameter types\n if (baseName === \"Callable\") {\n return transformCallableType(rawTypeArgNodes, ctx)\n }\n\n const typeArgs = rawTypeArgNodes.map((c) => transformPythonType(c, ctx))\n\n // Handle specific Python generic types\n const first = typeArgs[0] ?? \"unknown\"\n const second = typeArgs[1] ?? \"unknown\"\n const last = typeArgs[typeArgs.length - 1] ?? \"unknown\"\n\n switch (baseName) {\n case \"list\":\n case \"List\":\n return typeArgs.length > 0 ? `${first}[]` : \"unknown[]\"\n case \"dict\":\n case \"Dict\":\n return typeArgs.length >= 2 ? `Record<${first}, ${second}>` : \"Record<string, unknown>\"\n case \"set\":\n case \"Set\":\n return typeArgs.length > 0 ? `Set<${first}>` : \"Set<unknown>\"\n case \"frozenset\":\n case \"FrozenSet\":\n return typeArgs.length > 0 ? `ReadonlySet<${first}>` : \"ReadonlySet<unknown>\"\n case \"tuple\":\n case \"Tuple\":\n return `[${typeArgs.join(\", \")}]`\n case \"Optional\":\n return typeArgs.length > 0 ? `${first} | null` : \"unknown | null\"\n case \"Union\":\n return typeArgs.join(\" | \")\n case \"Final\":\n // Final[T] -> T (the 'const' or 'readonly' is handled at declaration level)\n return typeArgs.length > 0 ? first : \"unknown\"\n case \"ClassVar\":\n // ClassVar[T] -> T (the 'static' is handled at declaration level)\n return typeArgs.length > 0 ? first : \"unknown\"\n // Callable is handled specially before the switch via transformCallableType\n case \"Iterable\":\n return typeArgs.length > 0 ? `Iterable<${first}>` : \"Iterable<unknown>\"\n case \"Iterator\":\n return typeArgs.length > 0 ? `Iterator<${first}>` : \"Iterator<unknown>\"\n case \"Generator\":\n // Generator[YieldType, SendType, ReturnType]\n return typeArgs.length > 0 ? `Generator<${typeArgs.join(\", \")}>` : \"Generator<unknown>\"\n case \"AsyncGenerator\":\n return typeArgs.length > 0\n ? `AsyncGenerator<${typeArgs.join(\", \")}>`\n : \"AsyncGenerator<unknown>\"\n case \"Awaitable\":\n return typeArgs.length > 0 ? `Promise<${first}>` : \"Promise<unknown>\"\n case \"Coroutine\":\n return typeArgs.length > 0 ? `Promise<${last}>` : \"Promise<unknown>\"\n case \"Type\":\n return typeArgs.length > 0\n ? `new (...args: unknown[]) => ${first}`\n : \"new (...args: unknown[]) => unknown\"\n case \"Literal\": {\n // Literal[\"a\", \"b\"] -> \"a\" | \"b\"\n // Literal[1, 2, 3] -> 1 | 2 | 3\n const literalValues = typeArgs.map((arg) => {\n // If it's a number, keep as-is\n if (/^-?\\d+(\\.\\d+)?$/.test(arg)) {\n return arg\n }\n // If it's already quoted, keep as-is\n if (arg.startsWith('\"') || arg.startsWith(\"'\")) {\n return arg\n }\n // Otherwise wrap in quotes (it was a string literal)\n return `\"${arg}\"`\n })\n return literalValues.join(\" | \")\n }\n default:\n // Generic class type: MyClass[T] -> MyClass<T>\n return typeArgs.length > 0 ? `${baseName}<${typeArgs.join(\", \")}>` : baseName\n }\n }\n\n case \"BinaryExpression\": {\n // Union types: int | str | None\n const children = getChildren(node)\n const left = children[0]\n const op = children[1]\n const right = children[2]\n\n if (op && getNodeText(op, ctx.source) === \"|\" && left && right) {\n const leftType = transformPythonType(left, ctx)\n const rightType = transformPythonType(right, ctx)\n return `${leftType} | ${rightType}`\n }\n return getNodeText(node, ctx.source)\n }\n\n case \"String\": {\n // Forward reference: \"MyClass\" -> MyClass\n const text = getNodeText(node, ctx.source)\n // Remove quotes\n return text.slice(1, -1)\n }\n\n case \"TypeDef\": {\n // TypeDef contains : and the actual type\n const children = getChildren(node)\n const typeNode = children.find((c) => c.name !== \":\")\n if (typeNode) {\n return transformPythonType(typeNode, ctx)\n }\n return \"unknown\"\n }\n\n default:\n return getNodeText(node, ctx.source)\n }\n}\n\n/**\n * Extract type annotation from a TypeDef node, if present\n * Returns null if no type is found\n */\nfunction extractTypeAnnotation(\n typeDef: SyntaxNode | undefined,\n ctx: TransformContext\n): string | null {\n if (!typeDef || typeDef.name !== \"TypeDef\") return null\n const children = getChildren(typeDef)\n const typeNode = children.find((c) => c.name !== \":\" && c.name !== \"->\")\n if (typeNode) {\n return transformPythonType(typeNode, ctx)\n }\n return null\n}\n\ninterface TypeModifiers {\n isFinal: boolean\n isClassVar: boolean\n}\n\n/**\n * Extract type modifiers (Final, ClassVar) from a TypeDef node\n * Returns the modifiers found in the type annotation\n */\nfunction extractTypeModifiers(\n typeDef: SyntaxNode | undefined,\n ctx: TransformContext\n): TypeModifiers {\n const result: TypeModifiers = { isFinal: false, isClassVar: false }\n if (!typeDef || typeDef.name !== \"TypeDef\") return result\n\n const children = getChildren(typeDef)\n const typeNode = children.find((c) => c.name !== \":\" && c.name !== \"->\")\n if (!typeNode) return result\n\n // Check if the type is a MemberExpression (generic type like Final[T])\n if (typeNode.name === \"MemberExpression\") {\n const typeChildren = getChildren(typeNode)\n const baseType = typeChildren[0]\n if (baseType) {\n const baseName = getNodeText(baseType, ctx.source)\n if (baseName === \"Final\") {\n result.isFinal = true\n } else if (baseName === \"ClassVar\") {\n result.isClassVar = true\n }\n }\n } else if (typeNode.name === \"VariableName\") {\n // Could be just \"Final\" without type argument (Final = Final[Any])\n const typeName = getNodeText(typeNode, ctx.source)\n if (typeName === \"Final\") {\n result.isFinal = true\n } else if (typeName === \"ClassVar\") {\n result.isClassVar = true\n }\n }\n\n return result\n}\n\n/**\n * Transform Callable type annotation to TypeScript function type\n * Callable[[int, str], bool] -> (arg0: number, arg1: string) => boolean\n */\nfunction transformCallableType(rawTypeArgNodes: SyntaxNode[], ctx: TransformContext): string {\n if (rawTypeArgNodes.length < 2) {\n return \"(...args: unknown[]) => unknown\"\n }\n\n const paramListNode = rawTypeArgNodes[0]\n const returnTypeNode = rawTypeArgNodes[rawTypeArgNodes.length - 1]\n\n // Extract parameter types from the first argument (should be an array/list)\n let paramTypes: string[] = []\n if (paramListNode) {\n // The first argument should be a list: [int, str]\n const paramListChildren = getChildren(paramListNode)\n const innerTypes = paramListChildren.filter(\n (c) => c.name !== \"[\" && c.name !== \"]\" && c.name !== \",\"\n )\n\n if (innerTypes.length > 0) {\n paramTypes = innerTypes.map((c) => transformPythonType(c, ctx))\n }\n }\n\n const returnType = returnTypeNode ? transformPythonType(returnTypeNode, ctx) : \"unknown\"\n\n // If paramListNode was a proper list (has children like [ and ]), use explicit params\n // Otherwise, fall back to generic args\n if (paramListNode) {\n const paramListChildren = getChildren(paramListNode)\n const hasBrackets = paramListChildren.some((c) => c.name === \"[\" || c.name === \"]\")\n\n if (hasBrackets) {\n // It's a list notation - could be empty or have params\n const params = paramTypes.map((t, i) => `arg${String(i)}: ${t}`).join(\", \")\n return `(${params}) => ${returnType}`\n }\n }\n\n // Fallback for malformed or bare Callable\n return `(...args: unknown[]) => ${returnType}`\n}\n\n// ============================================================================\n// Docstring → JSDoc helpers\n// ============================================================================\n\ninterface ParsedDocstring {\n description: string\n params: Array<{ name: string; description: string }>\n returns: string | null\n throws: Array<{ type: string; description: string }>\n}\n\n/**\n * Check if a node is a docstring (ExpressionStatement containing a String)\n */\nfunction isDocstringNode(node: SyntaxNode, ctx: TransformContext): boolean {\n if (node.name !== \"ExpressionStatement\") return false\n const children = getChildren(node)\n const firstChild = children[0]\n if (!firstChild || firstChild.name !== \"String\") return false\n\n const text = getNodeText(firstChild, ctx.source)\n // Must be a triple-quoted string\n return text.startsWith('\"\"\"') || text.startsWith(\"'''\")\n}\n\n/**\n * Extract docstring content from a triple-quoted string\n */\nfunction extractDocstringContent(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const stringNode = children[0]\n if (!stringNode) return \"\"\n\n const text = getNodeText(stringNode, ctx.source)\n\n // Remove triple quotes (\"\"\" or ''')\n let content = text\n if (content.startsWith('\"\"\"')) {\n content = content.slice(3, -3)\n } else if (content.startsWith(\"'''\")) {\n content = content.slice(3, -3)\n }\n\n // Normalize line endings and trim\n content = content.replace(/\\r\\n/g, \"\\n\").trim()\n\n return content\n}\n\n/**\n * Parse a docstring into structured components (Google-style or NumPy-style)\n */\nfunction parseDocstring(content: string): ParsedDocstring {\n const result: ParsedDocstring = {\n description: \"\",\n params: [],\n returns: null,\n throws: []\n }\n\n const lines = content.split(\"\\n\")\n let currentSection: \"description\" | \"params\" | \"returns\" | \"throws\" = \"description\"\n const descriptionLines: string[] = []\n let currentParamName = \"\"\n let currentParamDesc: string[] = []\n let currentThrowsType = \"\"\n let currentThrowsDesc: string[] = []\n const returnsLines: string[] = []\n\n // Helper to flush current param\n const flushParam = () => {\n if (currentParamName) {\n result.params.push({\n name: currentParamName,\n description: currentParamDesc.join(\" \").trim()\n })\n currentParamName = \"\"\n currentParamDesc = []\n }\n }\n\n // Helper to flush current throws\n const flushThrows = () => {\n if (currentThrowsType || currentThrowsDesc.length > 0) {\n result.throws.push({\n type: currentThrowsType || \"Error\",\n description: currentThrowsDesc.join(\" \").trim()\n })\n currentThrowsType = \"\"\n currentThrowsDesc = []\n }\n }\n\n for (const line of lines) {\n const trimmed = line.trim()\n\n // Check for section headers\n if (/^(Args|Arguments|Parameters):$/i.test(trimmed)) {\n currentSection = \"params\"\n continue\n }\n if (/^(Returns?|Yields?):$/i.test(trimmed)) {\n flushParam()\n currentSection = \"returns\"\n continue\n }\n if (/^(Raises?|Throws?|Exceptions?):$/i.test(trimmed)) {\n flushParam()\n currentSection = \"throws\"\n continue\n }\n\n // Skip empty section markers like \"Examples:\", \"Notes:\", etc.\n if (/^[A-Z][a-z]+:$/.test(trimmed)) {\n continue\n }\n\n switch (currentSection) {\n case \"description\":\n descriptionLines.push(trimmed)\n break\n\n case \"params\": {\n // Google-style: \"name (type): description\" or \"name: description\"\n // NumPy-style: \"name : type\\n description\"\n const googleMatch = trimmed.match(/^(\\w+)\\s*(?:\\([^)]*\\))?\\s*:\\s*(.*)$/)\n if (googleMatch) {\n flushParam()\n currentParamName = googleMatch[1] ?? \"\"\n const desc = googleMatch[2] ?? \"\"\n if (desc) currentParamDesc.push(desc)\n } else if (currentParamName && trimmed) {\n // Continuation line for current param\n currentParamDesc.push(trimmed)\n }\n break\n }\n\n case \"returns\": {\n // Strip type prefix like \"str: \" or \"(str): \"\n const stripped = trimmed.replace(/^(?:\\([^)]*\\)|[^:]+):\\s*/, \"\")\n if (stripped || trimmed) {\n returnsLines.push(stripped || trimmed)\n }\n break\n }\n\n case \"throws\": {\n // Google-style: \"ValueError: description\"\n const throwsMatch = trimmed.match(/^(\\w+)\\s*:\\s*(.*)$/)\n if (throwsMatch) {\n flushThrows()\n currentThrowsType = throwsMatch[1] ?? \"Error\"\n const desc = throwsMatch[2] ?? \"\"\n if (desc) currentThrowsDesc.push(desc)\n } else if (trimmed) {\n currentThrowsDesc.push(trimmed)\n }\n break\n }\n }\n }\n\n // Flush any remaining\n flushParam()\n flushThrows()\n\n result.description = descriptionLines.join(\"\\n\").trim()\n if (returnsLines.length > 0) {\n result.returns = returnsLines.join(\" \").trim()\n }\n\n return result\n}\n\n/**\n * Convert a parsed docstring to JSDoc format\n */\nfunction toJSDoc(parsed: ParsedDocstring, indent: string): string {\n const lines: string[] = []\n\n lines.push(`${indent}/**`)\n\n // Description\n if (parsed.description) {\n const descLines = parsed.description.split(\"\\n\")\n for (const line of descLines) {\n if (line.trim()) {\n lines.push(`${indent} * ${line}`)\n } else {\n lines.push(`${indent} *`)\n }\n }\n }\n\n // Add blank line if we have description and other tags\n if (\n parsed.description &&\n (parsed.params.length > 0 || parsed.returns || parsed.throws.length > 0)\n ) {\n lines.push(`${indent} *`)\n }\n\n // Params\n for (const param of parsed.params) {\n if (param.description) {\n lines.push(`${indent} * @param ${param.name} - ${param.description}`)\n } else {\n lines.push(`${indent} * @param ${param.name}`)\n }\n }\n\n // Returns\n if (parsed.returns) {\n lines.push(`${indent} * @returns ${parsed.returns}`)\n }\n\n // Throws\n for (const t of parsed.throws) {\n lines.push(`${indent} * @throws {${t.type}} ${t.description}`)\n }\n\n lines.push(`${indent} */`)\n\n return lines.join(\"\\n\")\n}\n\n/**\n * Extract docstring from a function/class body, returning the JSDoc and remaining body statements\n */\nfunction extractDocstringFromBody(\n bodyNode: SyntaxNode,\n ctx: TransformContext,\n indent: string\n): { jsdoc: string | null; skipFirstStatement: boolean } {\n const children = getChildren(bodyNode)\n const statements = children.filter((c) => c.name !== \":\")\n\n const firstStatement = statements[0]\n if (firstStatement && isDocstringNode(firstStatement, ctx)) {\n const content = extractDocstringContent(firstStatement, ctx)\n const parsed = parseDocstring(content)\n const jsdoc = toJSDoc(parsed, indent)\n return { jsdoc, skipFirstStatement: true }\n }\n\n return { jsdoc: null, skipFirstStatement: false }\n}\n\nexport function transform(input: string | ParseResult): TransformResult {\n const parseResult = typeof input === \"string\" ? parse(input) : input\n const ctx = createContext(parseResult.source)\n const code = transformNode(parseResult.tree.topNode, ctx)\n\n return {\n code,\n usesRuntime: ctx.usesRuntime\n }\n}\n\nfunction transformNode(node: SyntaxNode, ctx: TransformContext): string {\n switch (node.name) {\n case \"Script\":\n return transformScript(node, ctx)\n case \"ExpressionStatement\":\n return transformExpressionStatement(node, ctx)\n case \"AssignStatement\":\n return transformAssignStatement(node, ctx)\n case \"BinaryExpression\":\n return transformBinaryExpression(node, ctx)\n case \"UnaryExpression\":\n return transformUnaryExpression(node, ctx)\n case \"ParenthesizedExpression\":\n return transformParenthesizedExpression(node, ctx)\n case \"NamedExpression\":\n return transformNamedExpression(node, ctx)\n case \"ConditionalExpression\":\n return transformConditionalExpression(node, ctx)\n case \"Number\":\n return transformNumber(node, ctx)\n case \"String\":\n return transformString(node, ctx)\n case \"FormatString\":\n return transformFormatString(node, ctx)\n case \"Boolean\":\n return transformBoolean(node, ctx)\n case \"None\":\n return \"null\"\n case \"VariableName\":\n return getNodeText(node, ctx.source)\n case \"CallExpression\":\n return transformCallExpression(node, ctx)\n case \"MemberExpression\":\n return transformMemberExpression(node, ctx)\n case \"ArrayExpression\":\n return transformArrayExpression(node, ctx)\n case \"ArrayComprehensionExpression\":\n return transformArrayComprehension(node, ctx)\n case \"DictionaryExpression\":\n return transformDictionaryExpression(node, ctx)\n case \"DictionaryComprehensionExpression\":\n return transformDictComprehension(node, ctx)\n case \"SetExpression\":\n return transformSetExpression(node, ctx)\n case \"SetComprehensionExpression\":\n return transformSetComprehension(node, ctx)\n case \"ComprehensionExpression\":\n return transformGeneratorExpression(node, ctx)\n case \"TupleExpression\":\n return transformTupleExpression(node, ctx)\n case \"IfStatement\":\n return transformIfStatement(node, ctx)\n case \"WhileStatement\":\n return transformWhileStatement(node, ctx)\n case \"ForStatement\":\n return transformForStatement(node, ctx)\n case \"PassStatement\":\n return \"\"\n case \"BreakStatement\":\n return \"break\"\n case \"ContinueStatement\":\n return \"continue\"\n case \"ReturnStatement\":\n return transformReturnStatement(node, ctx)\n case \"FunctionDefinition\":\n return transformFunctionDefinition(node, ctx)\n case \"ClassDefinition\":\n return transformClassDefinition(node, ctx)\n case \"DecoratedStatement\":\n return transformDecoratedStatement(node, ctx)\n case \"LambdaExpression\":\n return transformLambdaExpression(node, ctx)\n case \"Comment\":\n return transformComment(node, ctx)\n case \"TryStatement\":\n return transformTryStatement(node, ctx)\n case \"RaiseStatement\":\n return transformRaiseStatement(node, ctx)\n case \"ImportStatement\":\n return transformImportStatement(node, ctx)\n case \"AwaitExpression\":\n return transformAwaitExpression(node, ctx)\n case \"WithStatement\":\n return transformWithStatement(node, ctx)\n case \"MatchStatement\":\n return transformMatchStatement(node, ctx)\n case \"ScopeStatement\":\n return transformScopeStatement(node, ctx)\n case \"DeleteStatement\":\n return transformDeleteStatement(node, ctx)\n case \"AssertStatement\":\n return transformAssertStatement(node, ctx)\n case \"YieldStatement\":\n return transformYieldStatement(node, ctx)\n default:\n return getNodeText(node, ctx.source)\n }\n}\n\nfunction transformScript(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const statements = children\n .filter((child) => child.name !== \"Comment\" || getNodeText(child, ctx.source).trim() !== \"\")\n .map((child) => {\n const transformed = transformNode(child, ctx)\n // Skip empty transformations (e.g., pass, TypeVar declarations)\n if (transformed === \"\") {\n return \"\"\n }\n if (\n child.name === \"ExpressionStatement\" ||\n child.name === \"AssignStatement\" ||\n child.name === \"PassStatement\" ||\n child.name === \"BreakStatement\" ||\n child.name === \"ContinueStatement\" ||\n child.name === \"ReturnStatement\" ||\n child.name === \"RaiseStatement\"\n ) {\n return transformed + \";\"\n }\n return transformed\n })\n .filter((s) => s.trim() !== \"\")\n\n return statements.join(\"\\n\")\n}\n\nfunction transformExpressionStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length === 0) return \"\"\n const firstChild = children[0]\n if (!firstChild) return \"\"\n return transformNode(firstChild, ctx)\n}\n\nfunction transformAssignStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length < 3) return getNodeText(node, ctx.source)\n\n // Find the assignment operator\n const assignOpIndex = children.findIndex((c) => c.name === \"AssignOp\" || c.name === \"=\")\n if (assignOpIndex === -1) return getNodeText(node, ctx.source)\n\n // Find type annotation (TypeDef before AssignOp)\n const typeDef = children.slice(0, assignOpIndex).find((c) => c.name === \"TypeDef\")\n\n // Collect targets (before =) and values (after =)\n // Filter out commas and TypeDef nodes (type annotations like `: int`)\n const targets = children\n .slice(0, assignOpIndex)\n .filter((c) => c.name !== \",\" && c.name !== \"TypeDef\")\n const values = children.slice(assignOpIndex + 1).filter((c) => c.name !== \",\")\n\n /* c8 ignore next 3 - defensive: empty targets/values can't occur with valid Python */\n if (targets.length === 0 || values.length === 0) {\n return getNodeText(node, ctx.source)\n }\n\n // Strip TypeVar declarations - they're only needed for Python type checking\n if (values.length === 1 && values[0]?.name === \"CallExpression\") {\n const callChildren = getChildren(values[0])\n const funcNode = callChildren.find((c) => c.name === \"VariableName\")\n if (funcNode && getNodeText(funcNode, ctx.source) === \"TypeVar\") {\n return \"\"\n }\n }\n\n // Handle TypeAlias: Name: TypeAlias = Type → type Name = Type\n if (typeDef && targets.length === 1 && values.length === 1) {\n const typeDefText = getNodeText(typeDef, ctx.source)\n const target = targets[0]\n const value = values[0]\n if (typeDefText.includes(\"TypeAlias\") && target && value) {\n const aliasName = getNodeText(target, ctx.source)\n const aliasType = transformPythonType(value, ctx)\n return `type ${aliasName} = ${aliasType}`\n }\n }\n\n // Single target assignment\n if (targets.length === 1) {\n const target = targets[0]\n /* c8 ignore next */\n if (!target) return getNodeText(node, ctx.source)\n\n // Check for slice assignment: arr[1:3] = values\n if (target.name === \"MemberExpression\" && isSliceExpression(target)) {\n return transformSliceAssignment(target, values, ctx)\n }\n\n const targetCode = transformNode(target, ctx)\n\n // Extract type annotation if present\n const tsType = extractTypeAnnotation(typeDef, ctx)\n const typeAnnotation = tsType ? `: ${tsType}` : \"\"\n\n // Extract type modifiers (Final, ClassVar) for declaration keyword\n const modifiers = extractTypeModifiers(typeDef, ctx)\n\n // Determine if we need a declaration keyword\n // - MemberExpression (obj.attr or arr[i]) never needs declaration\n // - VariableName needs declaration only if not already declared in an accessible scope\n let needsDeclaration = false\n if (target.name === \"VariableName\") {\n const varName = getNodeText(target, ctx.source)\n if (!isVariableDeclared(ctx, varName)) {\n needsDeclaration = true\n declareVariable(ctx, varName)\n }\n }\n\n // Use 'const' for Final, 'let' otherwise\n const declarationKeyword = modifiers.isFinal ? \"const\" : \"let\"\n\n if (values.length === 1) {\n const value = values[0]\n if (!value) return getNodeText(node, ctx.source)\n const valueCode = transformNode(value, ctx)\n if (needsDeclaration) {\n return `${declarationKeyword} ${targetCode}${typeAnnotation} = ${valueCode}`\n }\n return `${targetCode} = ${valueCode}`\n } else {\n // Multiple values into single target (creates array)\n const valuesCodes = values.map((v) => transformNode(v, ctx))\n if (needsDeclaration) {\n return `${declarationKeyword} ${targetCode}${typeAnnotation} = [${valuesCodes.join(\", \")}]`\n }\n return `${targetCode} = [${valuesCodes.join(\", \")}]`\n }\n }\n\n // Multiple target assignment (destructuring)\n const targetCodes = targets.map((t) => transformAssignTarget(t, ctx))\n const targetPattern = `[${targetCodes.join(\", \")}]`\n\n // Track all variables in destructuring pattern\n const varNames = extractVariableNames(targets, ctx.source)\n // Check if all variables are already declared in accessible scopes\n const allDeclaredAtAccessibleScope = varNames.every((v) => isVariableDeclared(ctx, v))\n if (!allDeclaredAtAccessibleScope) {\n varNames.forEach((v) => {\n declareVariable(ctx, v)\n })\n }\n\n if (values.length === 1) {\n // Unpacking from single value: a, b = point\n const value = values[0]\n /* c8 ignore next */\n if (!value) return getNodeText(node, ctx.source)\n const valueCode = transformNode(value, ctx)\n return allDeclaredAtAccessibleScope\n ? `${targetPattern} = ${valueCode}`\n : `let ${targetPattern} = ${valueCode}`\n } else {\n // Multiple values: a, b = 1, 2\n const valuesCodes = values.map((v) => transformNode(v, ctx))\n return allDeclaredAtAccessibleScope\n ? `${targetPattern} = [${valuesCodes.join(\", \")}]`\n : `let ${targetPattern} = [${valuesCodes.join(\", \")}]`\n }\n}\n\nfunction extractVariableNames(nodes: SyntaxNode[], source: string): string[] {\n const names: string[] = []\n for (const node of nodes) {\n if (node.name === \"VariableName\") {\n names.push(getNodeText(node, source))\n } else if (node.name === \"TupleExpression\") {\n const children = getChildren(node)\n names.push(\n ...extractVariableNames(\n children.filter((c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \",\"),\n source\n )\n )\n }\n }\n return names\n}\n\n/**\n * Check if a MemberExpression contains a slice (colon in the brackets)\n */\nfunction isSliceExpression(node: SyntaxNode): boolean {\n const children = getChildren(node)\n // Look for a colon inside the brackets\n return children.some((c) => c.name === \":\")\n}\n\n/**\n * Transform a slice assignment: arr[1:3] = values -> py.list.sliceAssign(arr, 1, 3, undefined, values)\n */\nfunction transformSliceAssignment(\n target: SyntaxNode,\n values: SyntaxNode[],\n ctx: TransformContext\n): string {\n const children = getChildren(target)\n\n // Find the object being sliced (first child before the bracket)\n const obj = children[0]\n if (!obj) return `/* slice assignment error */`\n\n const objCode = transformNode(obj, ctx)\n\n // Parse slice indices: [start:end:step]\n // Children after \"[\" and before \"]\" contain the slice parts\n const bracketStart = children.findIndex((c) => c.name === \"[\")\n const bracketEnd = children.findIndex((c) => c.name === \"]\")\n\n if (bracketStart === -1 || bracketEnd === -1) return `/* slice assignment error */`\n\n // Extract slice parts between brackets\n const sliceParts = children.slice(bracketStart + 1, bracketEnd)\n\n // Parse the slice notation\n // Possible patterns: [a:b], [:b], [a:], [:], [a:b:c], [::c], etc.\n let start: string | undefined\n let end: string | undefined\n let step: string | undefined\n\n const colonIndices: number[] = []\n for (let i = 0; i < sliceParts.length; i++) {\n if (sliceParts[i]?.name === \":\") {\n colonIndices.push(i)\n }\n }\n\n if (colonIndices.length >= 1) {\n // Parts before first colon = start\n const beforeFirst = sliceParts.slice(0, colonIndices[0])\n if (beforeFirst.length > 0 && beforeFirst[0]?.name !== \":\") {\n start = beforeFirst.map((n) => transformNode(n, ctx)).join(\"\")\n }\n\n const firstColon = colonIndices[0] ?? 0\n const secondColon = colonIndices[1]\n\n if (colonIndices.length === 1) {\n // [start:end]\n const afterFirst = sliceParts.slice(firstColon + 1)\n if (afterFirst.length > 0) {\n end = afterFirst.map((n) => transformNode(n, ctx)).join(\"\")\n }\n } else if (secondColon !== undefined) {\n // [start:end:step]\n const betweenColons = sliceParts.slice(firstColon + 1, secondColon)\n if (betweenColons.length > 0) {\n end = betweenColons.map((n) => transformNode(n, ctx)).join(\"\")\n }\n const afterSecond = sliceParts.slice(secondColon + 1)\n if (afterSecond.length > 0) {\n step = afterSecond.map((n) => transformNode(n, ctx)).join(\"\")\n }\n }\n }\n\n // Transform the values\n const firstValue = values[0]\n const valuesCode =\n values.length === 1 && firstValue\n ? transformNode(firstValue, ctx)\n : `[${values.map((v) => transformNode(v, ctx)).join(\", \")}]`\n\n ctx.usesRuntime.add(\"list.sliceAssign\")\n\n return `list.sliceAssign(${objCode}, ${start ?? \"undefined\"}, ${end ?? \"undefined\"}, ${step ?? \"undefined\"}, ${valuesCode})`\n}\n\nfunction transformAssignTarget(node: SyntaxNode, ctx: TransformContext): string {\n if (node.name === \"VariableName\") {\n return getNodeText(node, ctx.source)\n } else if (node.name === \"TupleExpression\") {\n // Nested destructuring: (a, b) -> [a, b]\n const children = getChildren(node)\n const elements = children.filter((c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \",\")\n return \"[\" + elements.map((e) => transformAssignTarget(e, ctx)).join(\", \") + \"]\"\n }\n return transformNode(node, ctx)\n}\n\nfunction transformBinaryExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length < 3) return getNodeText(node, ctx.source)\n\n const left = children[0]\n const op = children[1]\n const right = children[2]\n\n if (!left || !op || !right) return getNodeText(node, ctx.source)\n\n const opText = getNodeText(op, ctx.source)\n\n // Handle chained comparisons (e.g., 1 < 2 < 3 -> (1 < 2) && (2 < 3))\n if (isComparisonOperator(opText) && isChainedComparison(left)) {\n const leftComparison = transformNode(left, ctx)\n const middleValue = extractRightOperand(left, ctx)\n const rightCode = transformNode(right, ctx)\n return `(${leftComparison} && (${middleValue} ${opText} ${rightCode}))`\n }\n\n const leftCode = transformNode(left, ctx)\n const rightCode = transformNode(right, ctx)\n\n switch (opText) {\n case \"//\":\n ctx.usesRuntime.add(\"floordiv\")\n return `floordiv(${leftCode}, ${rightCode})`\n case \"**\":\n ctx.usesRuntime.add(\"pow\")\n return `pow(${leftCode}, ${rightCode})`\n case \"%\":\n // Check for string formatting (e.g., \"Hello %s\" % name)\n if (left.name === \"String\" || left.name === \"FormatString\") {\n ctx.usesRuntime.add(\"sprintf\")\n return `sprintf(${leftCode}, ${rightCode})`\n }\n ctx.usesRuntime.add(\"mod\")\n return `mod(${leftCode}, ${rightCode})`\n case \"and\":\n return `(${leftCode} && ${rightCode})`\n case \"or\":\n return `(${leftCode} || ${rightCode})`\n case \"in\":\n ctx.usesRuntime.add(\"contains\")\n return `contains(${leftCode}, ${rightCode})`\n case \"is\":\n return `(${leftCode} === ${rightCode})`\n case \"+\":\n // Check for array concatenation\n if (isArrayLiteral(left) && isArrayLiteral(right)) {\n return `[...${leftCode}, ...${rightCode}]`\n }\n return `(${leftCode} + ${rightCode})`\n case \"*\":\n // Check for string/array repetition (e.g., 'ab' * 3 or [1, 2] * 3)\n if (isStringOrArrayLiteral(left) && isNumberLiteral(right)) {\n ctx.usesRuntime.add(\"repeatValue\")\n return `repeatValue(${leftCode}, ${rightCode})`\n }\n if (isNumberLiteral(left) && isStringOrArrayLiteral(right)) {\n ctx.usesRuntime.add(\"repeatValue\")\n return `repeatValue(${rightCode}, ${leftCode})`\n }\n return `(${leftCode} * ${rightCode})`\n default:\n return `(${leftCode} ${opText} ${rightCode})`\n }\n}\n\nfunction isArrayLiteral(node: SyntaxNode): boolean {\n return node.name === \"ArrayExpression\"\n}\n\nfunction isStringOrArrayLiteral(node: SyntaxNode): boolean {\n return node.name === \"String\" || node.name === \"ArrayExpression\"\n}\n\nfunction isNumberLiteral(node: SyntaxNode): boolean {\n return node.name === \"Number\"\n}\n\nfunction isComparisonOperator(op: string): boolean {\n return [\"<\", \">\", \"<=\", \">=\", \"==\", \"!=\"].includes(op)\n}\n\nfunction isChainedComparison(node: SyntaxNode): boolean {\n // Check if node is a BinaryExpression with a comparison operator\n if (node.name !== \"BinaryExpression\") return false\n const children = getChildren(node)\n const op = children[1]\n if (!op || op.name !== \"CompareOp\") return false\n return true\n}\n\nfunction extractRightOperand(node: SyntaxNode, ctx: TransformContext): string {\n // Extract the right operand from a BinaryExpression\n const children = getChildren(node)\n const right = children[2]\n if (!right) return \"\"\n return transformNode(right, ctx)\n}\n\nfunction transformUnaryExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length < 2) return getNodeText(node, ctx.source)\n\n const op = children[0]\n const operand = children[1]\n\n if (!op || !operand) return getNodeText(node, ctx.source)\n\n const opText = getNodeText(op, ctx.source)\n const operandCode = transformNode(operand, ctx)\n\n switch (opText) {\n case \"not\":\n return `(!${operandCode})`\n default:\n return `(${opText}${operandCode})`\n }\n}\n\nfunction transformParenthesizedExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const inner = children.find((c) => c.name !== \"(\" && c.name !== \")\")\n if (!inner) return \"()\"\n return `(${transformNode(inner, ctx)})`\n}\n\nfunction transformNamedExpression(node: SyntaxNode, ctx: TransformContext): string {\n // Walrus operator: (name := expr) → (name = expr)\n const children = getChildren(node)\n const varName = children.find((c) => c.name === \"VariableName\")\n const value = children.find((c) => c.name !== \"VariableName\" && c.name !== \"AssignOp\")\n\n /* c8 ignore next 3 - defensive: walrus operator always has name and value */\n if (!varName || !value) {\n return getNodeText(node, ctx.source)\n }\n\n const name = getNodeText(varName, ctx.source)\n const valueCode = transformNode(value, ctx)\n\n return `${name} = ${valueCode}`\n}\n\nfunction transformConditionalExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n // Python: value_if_true if condition else value_if_false\n // Format: TrueExpr 'if' Condition 'else' FalseExpr\n const exprs = children.filter((c) => c.name !== \"if\" && c.name !== \"else\" && c.name !== \"Keyword\")\n\n if (exprs.length >= 3) {\n const trueExpr = exprs[0]\n const condition = exprs[1]\n const falseExpr = exprs[2]\n\n /* c8 ignore next - defensive: checked exprs.length >= 3 above */\n if (trueExpr && condition && falseExpr) {\n const condCode = transformNode(condition, ctx)\n const trueCode = transformNode(trueExpr, ctx)\n const falseCode = transformNode(falseExpr, ctx)\n\n return `(${condCode} ? ${trueCode} : ${falseCode})`\n }\n }\n\n /* c8 ignore next */\n return getNodeText(node, ctx.source)\n}\n\nfunction transformNumber(node: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(node, ctx.source)\n // Handle Python numeric literals\n // Remove underscores (Python allows 1_000_000)\n return text.replace(/_/g, \"\")\n}\n\nfunction transformString(node: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(node, ctx.source)\n\n // Handle raw strings\n if (text.startsWith('r\"') || text.startsWith(\"r'\")) {\n return text.slice(1)\n }\n if (text.startsWith('R\"') || text.startsWith(\"R'\")) {\n return text.slice(1)\n }\n\n // Handle triple-quoted strings\n if (text.startsWith('\"\"\"') || text.startsWith(\"'''\")) {\n const content = text.slice(3, -3)\n return \"`\" + content.replace(/`/g, \"\\\\`\") + \"`\"\n }\n\n // Regular strings - convert to JS format\n // Python uses same string syntax as JS for basic cases\n return text\n}\n\nfunction transformFormatString(node: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(node, ctx.source)\n const children = getChildren(node)\n\n // Find all FormatReplacement nodes\n const replacements = children.filter((c) => c.name === \"FormatReplacement\")\n\n // If no replacements, just convert to template literal\n if (replacements.length === 0) {\n // Handle escaped braces: {{ -> {, }} -> }\n // Remove the 'f' prefix and convert quotes to backticks\n let content: string\n if (text.startsWith('f\"\"\"') || text.startsWith(\"f'''\")) {\n content = text.slice(4, -3)\n } else {\n content = text.slice(2, -1) // Remove f\" and closing \"\n }\n content = content.replace(/\\{\\{/g, \"{\").replace(/\\}\\}/g, \"}\")\n content = content.replace(/`/g, \"\\\\`\")\n return \"`\" + content + \"`\"\n }\n\n // Build template literal with replacements\n let result = \"`\"\n let pos = text.startsWith('f\"\"\"') || text.startsWith(\"f'''\") ? 4 : 2 // Skip f\" or f\"\"\"\n\n for (const replacement of replacements) {\n // Add static text before this replacement\n const staticText = text.slice(pos, replacement.from - node.from)\n // Handle escaped braces in static text\n result += staticText.replace(/\\{\\{/g, \"{\").replace(/\\}\\}/g, \"}\").replace(/`/g, \"\\\\`\")\n\n // Process the replacement\n const replChildren = getChildren(replacement)\n let expr: SyntaxNode | undefined\n let formatSpec: string | undefined\n let conversion: string | undefined\n\n for (const child of replChildren) {\n if (child.name === \"{\" || child.name === \"}\") continue\n if (child.name === \"FormatSpec\") {\n // Get the format spec without the leading colon\n formatSpec = getNodeText(child, ctx.source).slice(1)\n } else if (child.name === \"FormatConversion\") {\n // Get the conversion character (r, s, or a)\n conversion = getNodeText(child, ctx.source).slice(1) // Remove !\n } else {\n expr = child\n }\n }\n\n if (expr) {\n let exprCode = transformNode(expr, ctx)\n\n // Apply conversion first (!r, !s, !a)\n if (conversion === \"r\") {\n exprCode = `repr(${exprCode})`\n ctx.usesRuntime.add(\"repr\")\n } else if (conversion === \"s\") {\n exprCode = `str(${exprCode})`\n ctx.usesRuntime.add(\"str\")\n } else if (conversion === \"a\") {\n exprCode = `ascii(${exprCode})`\n ctx.usesRuntime.add(\"ascii\")\n }\n\n // Apply format spec\n if (formatSpec) {\n ctx.usesRuntime.add(\"format\")\n result += `\\${format(${exprCode}, \"${formatSpec}\")}`\n } else {\n // Simple case - just the expression (with optional conversion already applied)\n result += `\\${${exprCode}}`\n }\n }\n\n pos = replacement.to - node.from\n }\n\n // Add remaining static text\n const endPos =\n text.startsWith('f\"\"\"') || text.startsWith(\"f'''\") ? text.length - 3 : text.length - 1\n const remainingText = text.slice(pos, endPos)\n result += remainingText.replace(/\\{\\{/g, \"{\").replace(/\\}\\}/g, \"}\").replace(/`/g, \"\\\\`\")\n\n result += \"`\"\n return result\n}\n\nfunction transformBoolean(node: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(node, ctx.source)\n return text === \"True\" ? \"true\" : \"false\"\n}\n\nfunction transformCallExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const callee = children[0]\n const argList = children.find((c) => c.name === \"ArgList\")\n\n if (!callee) return getNodeText(node, ctx.source)\n\n const calleeName = getNodeText(callee, ctx.source)\n const args = argList ? transformArgList(argList, ctx) : \"\"\n\n // Handle method calls (obj.method())\n if (callee.name === \"MemberExpression\") {\n const methodResult = transformMethodCall(callee, args, ctx)\n if (methodResult !== null) {\n return methodResult\n }\n\n // Handle module-qualified calls (math.sqrt(), random.randint(), json.dumps())\n const moduleCallResult = transformModuleCall(calleeName, args, ctx)\n if (moduleCallResult !== null) {\n return moduleCallResult\n }\n // Fall through to regular call handling if no special mapping\n }\n\n // Check if this is a class instantiation (needs 'new')\n if (callee.name === \"VariableName\" && ctx.definedClasses.has(calleeName)) {\n return `new ${calleeName}(${args})`\n }\n\n // Map Python built-ins to JS/runtime equivalents\n switch (calleeName) {\n case \"print\":\n return `console.log(${args})`\n case \"len\":\n ctx.usesRuntime.add(\"len\")\n return `len(${args})`\n case \"range\":\n ctx.usesRuntime.add(\"range\")\n return `range(${args})`\n case \"int\":\n ctx.usesRuntime.add(\"int\")\n return `int(${args})`\n case \"float\":\n ctx.usesRuntime.add(\"float\")\n return `float(${args})`\n case \"str\":\n ctx.usesRuntime.add(\"str\")\n return `str(${args})`\n case \"bool\":\n ctx.usesRuntime.add(\"bool\")\n return `bool(${args})`\n case \"abs\":\n ctx.usesRuntime.add(\"abs\")\n return `abs(${args})`\n case \"min\":\n ctx.usesRuntime.add(\"min\")\n return `min(${args})`\n case \"max\":\n ctx.usesRuntime.add(\"max\")\n return `max(${args})`\n case \"sum\":\n ctx.usesRuntime.add(\"sum\")\n return `sum(${args})`\n case \"list\":\n ctx.usesRuntime.add(\"list\")\n return `list(${args})`\n case \"dict\":\n ctx.usesRuntime.add(\"dict\")\n return `dict(${args})`\n case \"set\":\n ctx.usesRuntime.add(\"set\")\n return `set(${args})`\n case \"tuple\":\n ctx.usesRuntime.add(\"tuple\")\n return `tuple(${args})`\n case \"enumerate\":\n ctx.usesRuntime.add(\"enumerate\")\n return `enumerate(${args})`\n case \"zip\":\n ctx.usesRuntime.add(\"zip\")\n return `zip(${args})`\n case \"sorted\":\n ctx.usesRuntime.add(\"sorted\")\n return `sorted(${args})`\n case \"reversed\":\n ctx.usesRuntime.add(\"reversed\")\n return `reversed(${args})`\n case \"isinstance\":\n ctx.usesRuntime.add(\"isinstance\")\n return `isinstance(${args})`\n case \"type\":\n ctx.usesRuntime.add(\"type\")\n return `type(${args})`\n case \"input\":\n ctx.usesRuntime.add(\"input\")\n return `input(${args})`\n case \"ord\":\n ctx.usesRuntime.add(\"ord\")\n return `ord(${args})`\n case \"chr\":\n ctx.usesRuntime.add(\"chr\")\n return `chr(${args})`\n case \"all\":\n ctx.usesRuntime.add(\"all\")\n return `all(${args})`\n case \"any\":\n ctx.usesRuntime.add(\"any\")\n return `any(${args})`\n case \"map\":\n ctx.usesRuntime.add(\"map\")\n return `map(${args})`\n case \"filter\":\n ctx.usesRuntime.add(\"filter\")\n return `filter(${args})`\n case \"repr\":\n ctx.usesRuntime.add(\"repr\")\n return `repr(${args})`\n case \"round\":\n ctx.usesRuntime.add(\"round\")\n return `round(${args})`\n case \"divmod\":\n ctx.usesRuntime.add(\"divmod\")\n return `divmod(${args})`\n case \"hex\":\n ctx.usesRuntime.add(\"hex\")\n return `hex(${args})`\n case \"oct\":\n ctx.usesRuntime.add(\"oct\")\n return `oct(${args})`\n case \"bin\":\n ctx.usesRuntime.add(\"bin\")\n return `bin(${args})`\n\n // itertools functions\n case \"chain\":\n ctx.usesRuntime.add(\"itertools/chain\")\n return `chain(${args})`\n case \"combinations\":\n ctx.usesRuntime.add(\"itertools/combinations\")\n return `combinations(${args})`\n case \"permutations\":\n ctx.usesRuntime.add(\"itertools/permutations\")\n return `permutations(${args})`\n case \"product\":\n ctx.usesRuntime.add(\"itertools/product\")\n return `product(${args})`\n case \"cycle\":\n ctx.usesRuntime.add(\"itertools/cycle\")\n return `cycle(${args})`\n case \"repeat\":\n ctx.usesRuntime.add(\"itertools/repeat\")\n return `repeat(${args})`\n case \"islice\":\n ctx.usesRuntime.add(\"itertools/islice\")\n return `islice(${args})`\n case \"takewhile\":\n ctx.usesRuntime.add(\"itertools/takewhile\")\n return `takewhile(${args})`\n case \"dropwhile\":\n ctx.usesRuntime.add(\"itertools/dropwhile\")\n return `dropwhile(${args})`\n case \"zip_longest\":\n ctx.usesRuntime.add(\"itertools/zip_longest\")\n return `zip_longest(${args})`\n case \"compress\":\n ctx.usesRuntime.add(\"itertools/compress\")\n return `compress(${args})`\n case \"filterfalse\":\n ctx.usesRuntime.add(\"itertools/filterfalse\")\n return `filterfalse(${args})`\n case \"accumulate\":\n ctx.usesRuntime.add(\"itertools/accumulate\")\n return `accumulate(${args})`\n case \"groupby\":\n ctx.usesRuntime.add(\"itertools/groupby\")\n return `groupby(${args})`\n case \"count\":\n ctx.usesRuntime.add(\"itertools/count\")\n return `count(${args})`\n case \"tee\":\n ctx.usesRuntime.add(\"itertools/tee\")\n return `tee(${args})`\n case \"pairwise\":\n ctx.usesRuntime.add(\"itertools/pairwise\")\n return `pairwise(${args})`\n case \"combinations_with_replacement\":\n ctx.usesRuntime.add(\"itertools/combinations_with_replacement\")\n return `combinations_with_replacement(${args})`\n\n // collections classes/functions\n case \"Counter\":\n ctx.usesRuntime.add(\"collections/Counter\")\n return `new Counter(${args})`\n case \"defaultdict\":\n ctx.usesRuntime.add(\"collections/defaultdict\")\n return `defaultdict(${args})`\n case \"deque\":\n ctx.usesRuntime.add(\"collections/deque\")\n return `new deque(${args})`\n\n // functools functions\n case \"partial\":\n ctx.usesRuntime.add(\"functools/partial\")\n return `partial(${args})`\n case \"reduce\":\n ctx.usesRuntime.add(\"functools/reduce\")\n return `reduce(${args})`\n case \"lru_cache\":\n ctx.usesRuntime.add(\"functools/lru_cache\")\n return `lru_cache(${args})`\n case \"cache\":\n ctx.usesRuntime.add(\"functools/cache\")\n return `cache(${args})`\n case \"wraps\":\n ctx.usesRuntime.add(\"functools/wraps\")\n return `wraps(${args})`\n case \"cmp_to_key\":\n ctx.usesRuntime.add(\"functools/cmp_to_key\")\n return `cmp_to_key(${args})`\n case \"total_ordering\":\n ctx.usesRuntime.add(\"functools/total_ordering\")\n return `total_ordering(${args})`\n\n // json functions\n case \"dumps\":\n ctx.usesRuntime.add(\"json/dumps\")\n return `dumps(${args})`\n case \"loads\":\n ctx.usesRuntime.add(\"json/loads\")\n return `loads(${args})`\n case \"dump\":\n ctx.usesRuntime.add(\"json/dump\")\n return `dump(${args})`\n case \"load\":\n ctx.usesRuntime.add(\"json/load\")\n return `load(${args})`\n\n // datetime classes\n case \"datetime\":\n ctx.usesRuntime.add(\"datetime/datetime\")\n return `new datetime(${args})`\n case \"date\":\n ctx.usesRuntime.add(\"datetime/date\")\n return `new date(${args})`\n case \"time\":\n ctx.usesRuntime.add(\"datetime/time\")\n return `new time(${args})`\n case \"timedelta\":\n ctx.usesRuntime.add(\"datetime/timedelta\")\n return `new timedelta(${args})`\n\n // string module\n case \"Template\":\n ctx.usesRuntime.add(\"string/Template\")\n return `new Template(${args})`\n case \"capwords\":\n ctx.usesRuntime.add(\"string/capwords\")\n return `capwords(${args})`\n\n default:\n // Regular function call\n return `${transformNode(callee, ctx)}(${args})`\n }\n}\n\n/**\n * Transform module-qualified function calls (math.sqrt(), random.randint(), etc.)\n * Returns null if no special mapping is needed.\n */\nfunction transformModuleCall(\n calleeName: string,\n args: string,\n ctx: TransformContext\n): string | null {\n // Parse module.function pattern\n const dotIndex = calleeName.indexOf(\".\")\n if (dotIndex === -1) return null\n\n const moduleName = calleeName.slice(0, dotIndex)\n const funcName = calleeName.slice(dotIndex + 1)\n\n // math module\n if (moduleName === \"math\") {\n // Constants (no args) - these need special handling as they're properties not functions\n const mathConstants: Record<string, string> = {\n pi: \"pi\",\n e: \"e\",\n tau: \"tau\",\n inf: \"inf\",\n nan: \"nan\"\n }\n if (funcName in mathConstants) {\n ctx.usesRuntime.add(`math/${funcName}`)\n return mathConstants[funcName] as string\n }\n\n // Functions\n ctx.usesRuntime.add(`math/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // random module\n if (moduleName === \"random\") {\n ctx.usesRuntime.add(`random/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // json module\n if (moduleName === \"json\") {\n ctx.usesRuntime.add(`json/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // os module\n if (moduleName === \"os\") {\n // os.path.* functions - keep as namespace since path is a nested module\n if (funcName.startsWith(\"path.\")) {\n ctx.usesRuntime.add(\"os/path\")\n return `path.${funcName.slice(5)}(${args})`\n }\n // os.* functions\n ctx.usesRuntime.add(`os/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // datetime module\n if (moduleName === \"datetime\") {\n ctx.usesRuntime.add(`datetime/${funcName}`)\n // Classes need 'new'\n if ([\"datetime\", \"date\", \"time\", \"timedelta\"].includes(funcName)) {\n return `new ${funcName}(${args})`\n }\n return `${funcName}(${args})`\n }\n\n // re module\n if (moduleName === \"re\") {\n ctx.usesRuntime.add(`re/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // string module - constants and functions\n if (moduleName === \"string\") {\n ctx.usesRuntime.add(`string/${funcName}`)\n // Template is a class\n if (funcName === \"Template\") {\n return `new Template(${args})`\n }\n return funcName.includes(\"(\") ? `${funcName}(${args})` : funcName\n }\n\n // functools module\n if (moduleName === \"functools\") {\n ctx.usesRuntime.add(`functools/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // itertools module (for itertools.chain() style calls)\n if (moduleName === \"itertools\") {\n ctx.usesRuntime.add(`itertools/${funcName}`)\n return `${funcName}(${args})`\n }\n\n // collections module\n if (moduleName === \"collections\") {\n ctx.usesRuntime.add(`collections/${funcName}`)\n // Classes need 'new'\n if ([\"Counter\", \"deque\"].includes(funcName)) {\n return `new ${funcName}(${args})`\n }\n return `${funcName}(${args})`\n }\n\n return null\n}\n\n/**\n * Transform Python method calls to JavaScript equivalents.\n * Returns null if no special mapping is needed.\n */\nfunction transformMethodCall(\n callee: SyntaxNode,\n args: string,\n ctx: TransformContext\n): string | null {\n const children = getChildren(callee)\n if (children.length < 2) return null\n\n const obj = children[0]\n const methodNode = children[children.length - 1]\n if (!obj || !methodNode) return null\n\n // Skip transformation for module-like paths (e.g., os.path.join)\n // These are MemberExpressions that look like module references, not method calls on values\n if (obj.name === \"MemberExpression\") {\n // Could be module.submodule.method() - don't transform\n return null\n }\n\n const objCode = transformNode(obj, ctx)\n const methodName = getNodeText(methodNode, ctx.source)\n\n // String methods\n switch (methodName) {\n // String case conversion\n case \"upper\":\n return `${objCode}.toUpperCase()`\n case \"lower\":\n return `${objCode}.toLowerCase()`\n case \"capitalize\":\n ctx.usesRuntime.add(\"string\")\n return `string.capitalize(${objCode})`\n case \"title\":\n ctx.usesRuntime.add(\"string\")\n return `string.title(${objCode})`\n case \"swapcase\":\n ctx.usesRuntime.add(\"string\")\n return `string.swapcase(${objCode})`\n case \"casefold\":\n return `${objCode}.toLowerCase()`\n\n // String whitespace\n case \"strip\":\n return args ? `${objCode}.split(${args}).join(\"\")` : `${objCode}.trim()`\n case \"lstrip\":\n return args\n ? `${objCode}.replace(new RegExp('^[' + ${args} + ']+'), '')`\n : `${objCode}.trimStart()`\n case \"rstrip\":\n return args\n ? `${objCode}.replace(new RegExp('[' + ${args} + ']+$'), '')`\n : `${objCode}.trimEnd()`\n\n // String search\n case \"startswith\":\n return `${objCode}.startsWith(${args})`\n case \"endswith\":\n return `${objCode}.endsWith(${args})`\n case \"find\":\n return `${objCode}.indexOf(${args})`\n case \"rfind\":\n return `${objCode}.lastIndexOf(${args})`\n case \"index\":\n ctx.usesRuntime.add(\"string\")\n return `string.index(${objCode}, ${args})`\n case \"rindex\":\n ctx.usesRuntime.add(\"string\")\n return `string.rindex(${objCode}, ${args})`\n case \"count\":\n ctx.usesRuntime.add(\"string\")\n return `string.count(${objCode}, ${args})`\n\n // String testing\n case \"isalpha\":\n return `/^[a-zA-Z]+$/.test(${objCode})`\n case \"isdigit\":\n return `/^[0-9]+$/.test(${objCode})`\n case \"isalnum\":\n return `/^[a-zA-Z0-9]+$/.test(${objCode})`\n case \"isspace\":\n return `/^\\\\s+$/.test(${objCode})`\n case \"isupper\":\n return `(${objCode} === ${objCode}.toUpperCase() && ${objCode} !== ${objCode}.toLowerCase())`\n case \"islower\":\n return `(${objCode} === ${objCode}.toLowerCase() && ${objCode} !== ${objCode}.toUpperCase())`\n\n // String modification\n case \"replace\":\n ctx.usesRuntime.add(\"string\")\n return `string.replace(${objCode}, ${args})`\n case \"zfill\":\n ctx.usesRuntime.add(\"string\")\n return `string.zfill(${objCode}, ${args})`\n case \"center\":\n ctx.usesRuntime.add(\"string\")\n return `string.center(${objCode}, ${args})`\n case \"ljust\":\n return `${objCode}.padEnd(${args})`\n case \"rjust\":\n return `${objCode}.padStart(${args})`\n\n // String split/join - join is special: \"sep\".join(arr) -> arr.join(\"sep\")\n case \"join\":\n return `(${args}).join(${objCode})`\n case \"split\":\n return args ? `${objCode}.split(${args})` : `${objCode}.split(/\\\\s+/)`\n case \"rsplit\":\n ctx.usesRuntime.add(\"string\")\n return `string.rsplit(${objCode}, ${args})`\n case \"splitlines\":\n return `${objCode}.split(/\\\\r?\\\\n/)`\n case \"partition\":\n ctx.usesRuntime.add(\"string\")\n return `string.partition(${objCode}, ${args})`\n case \"rpartition\":\n ctx.usesRuntime.add(\"string\")\n return `string.rpartition(${objCode}, ${args})`\n\n // String format method\n case \"format\":\n ctx.usesRuntime.add(\"strFormat\")\n return `strFormat(${objCode}, ${args})`\n\n // List methods\n case \"append\":\n return `${objCode}.push(${args})`\n case \"extend\":\n return `${objCode}.push(...${args})`\n case \"insert\": {\n const insertArgs = args.split(\",\")\n const index = insertArgs[0] ?? \"0\"\n const value = insertArgs.slice(1).join(\",\")\n return `${objCode}.splice(${index}, 0, ${value})`\n }\n case \"remove\":\n ctx.usesRuntime.add(\"list\")\n return `list.remove(${objCode}, ${args})`\n case \"pop\":\n // pop() with no args works the same, pop(0) needs shift()\n if (!args) return `${objCode}.pop()`\n if (args.trim() === \"0\") return `${objCode}.shift()`\n return `${objCode}.splice(${args}, 1)[0]`\n case \"clear\":\n return `${objCode}.length = 0`\n case \"copy\":\n return `[...${objCode}]`\n case \"reverse\":\n return `${objCode}.reverse()`\n case \"sort\":\n ctx.usesRuntime.add(\"list\")\n return args ? `list.sort(${objCode}, ${args})` : `${objCode}.sort()`\n\n // Dict methods\n case \"keys\":\n return `Object.keys(${objCode})`\n case \"values\":\n return `Object.values(${objCode})`\n case \"items\":\n return `Object.entries(${objCode})`\n case \"get\":\n ctx.usesRuntime.add(\"dict\")\n return `dict.get(${objCode}, ${args})`\n case \"setdefault\":\n ctx.usesRuntime.add(\"dict\")\n return `dict.setdefault(${objCode}, ${args})`\n case \"update\":\n return `Object.assign(${objCode}, ${args})`\n case \"fromkeys\":\n ctx.usesRuntime.add(\"dict\")\n return `dict.fromkeys(${args})`\n\n // Set methods\n case \"add\":\n return `${objCode}.add(${args})`\n case \"discard\":\n return `${objCode}.delete(${args})`\n case \"union\":\n return `new Set([...${objCode}, ...${args}])`\n case \"intersection\":\n ctx.usesRuntime.add(\"set\")\n return `set.intersection(${objCode}, ${args})`\n case \"difference\":\n ctx.usesRuntime.add(\"set\")\n return `set.difference(${objCode}, ${args})`\n case \"symmetric_difference\":\n ctx.usesRuntime.add(\"set\")\n return `set.symmetricDifference(${objCode}, ${args})`\n case \"issubset\":\n ctx.usesRuntime.add(\"set\")\n return `set.issubset(${objCode}, ${args})`\n case \"issuperset\":\n ctx.usesRuntime.add(\"set\")\n return `set.issuperset(${objCode}, ${args})`\n\n default:\n return null\n }\n}\n\nfunction transformArgList(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const items = children.filter((c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \"ArgList\")\n\n // Check if this is a generator expression inside the arglist (e.g., sum(x for x in items))\n const hasForKeyword = items.some(\n (c) => c.name === \"for\" || (c.name === \"Keyword\" && getNodeText(c, ctx.source) === \"for\")\n )\n\n if (hasForKeyword) {\n // This is a generator expression - parse it\n const nonCommaItems = items.filter((c) => c.name !== \",\")\n const { outputExpr, clauses } = parseComprehensionClauses(nonCommaItems, ctx)\n return buildGeneratorChain(outputExpr, clauses)\n }\n\n // Process arguments, handling keyword arguments (name=value)\n const args: string[] = []\n const kwArgs: { name: string; value: string }[] = []\n let i = 0\n\n while (i < items.length) {\n const item = items[i]\n /* c8 ignore next 4 - defensive: items from parser are never null */\n if (!item) {\n i++\n continue\n }\n\n // Skip commas\n if (item.name === \",\") {\n i++\n continue\n }\n\n // Handle spread operators: *args and **kwargs\n if (item.name === \"*\" || (item.name === \"ArithOp\" && getNodeText(item, ctx.source) === \"*\")) {\n const nextItem = items[i + 1]\n if (nextItem) {\n args.push(`...${transformNode(nextItem, ctx)}`)\n i += 2\n continue\n }\n }\n\n if (item.name === \"**\" || (item.name === \"ArithOp\" && getNodeText(item, ctx.source) === \"**\")) {\n const nextItem = items[i + 1]\n if (nextItem) {\n // **kwargs spreads object properties as keyword arguments\n args.push(`...Object.entries(${transformNode(nextItem, ctx)})`)\n i += 2\n continue\n }\n }\n\n // Check for keyword argument: VariableName AssignOp Value\n if (item.name === \"VariableName\") {\n const nextItem = items[i + 1]\n if (nextItem && nextItem.name === \"AssignOp\") {\n const valueItem = items[i + 2]\n if (valueItem) {\n const name = getNodeText(item, ctx.source)\n const value = transformNode(valueItem, ctx)\n kwArgs.push({ name, value })\n i += 3\n continue\n }\n }\n }\n\n // Regular positional argument\n args.push(transformNode(item, ctx))\n i++\n }\n\n // Combine positional and keyword arguments\n // Keyword arguments are passed as an options object: { key: value }\n if (kwArgs.length > 0) {\n const kwArgsStr = kwArgs.map((kw) => `${kw.name}: ${kw.value}`).join(\", \")\n args.push(`{ ${kwArgsStr} }`)\n }\n\n return args.join(\", \")\n}\n\nfunction transformMemberExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length < 2) return getNodeText(node, ctx.source)\n\n const obj = children[0]\n if (!obj) return getNodeText(node, ctx.source)\n\n // Check if this is subscript syntax (arr[index]) or dot syntax (obj.attr)\n const hasOpenBracket = children.some((c) => c.name === \"[\")\n\n if (hasOpenBracket) {\n // Subscript access: arr[index]\n const objCode = transformNode(obj, ctx)\n\n // Check for slice syntax\n const text = getNodeText(node, ctx.source)\n if (text.includes(\":\")) {\n return transformSliceFromMember(obj, children, ctx)\n }\n\n // Simple index access\n const indexElements = children.filter((c) => c.name !== \"[\" && c.name !== \"]\" && c !== obj)\n const index = indexElements[0]\n\n if (!index) return `${objCode}[]`\n\n const indexCode = transformNode(index, ctx)\n\n // Check if the index is a negative number literal (for py.at() support)\n if (isNegativeIndexLiteral(index, ctx)) {\n ctx.usesRuntime.add(\"at\")\n return `at(${objCode}, ${indexCode})`\n }\n\n return `${objCode}[${indexCode}]`\n } else {\n // Dot access: obj.attr\n const prop = children[children.length - 1]\n if (!prop) return getNodeText(node, ctx.source)\n\n const objName = getNodeText(obj, ctx.source)\n const propName = getNodeText(prop, ctx.source)\n\n // Handle module constants (math.pi, math.e, etc.)\n if (objName === \"math\") {\n ctx.usesRuntime.add(`math/${propName}`)\n return propName\n }\n\n // os module constants (os.sep, os.path, etc.)\n if (objName === \"os\") {\n // os.path is a nested module, needs special handling\n if (propName === \"path\") {\n ctx.usesRuntime.add(\"os/path\")\n return \"path\"\n }\n ctx.usesRuntime.add(`os/${propName}`)\n return propName\n }\n\n // string module (constants like ascii_lowercase, digits, etc.)\n if (objName === \"string\") {\n ctx.usesRuntime.add(`string/${propName}`)\n return propName\n }\n\n // re module flags\n if (objName === \"re\") {\n ctx.usesRuntime.add(`re/${propName}`)\n return propName\n }\n\n // datetime module\n if (objName === \"datetime\") {\n ctx.usesRuntime.add(`datetime/${propName}`)\n return propName\n }\n\n const objCode = transformNode(obj, ctx)\n\n // Map Python special attributes to JavaScript equivalents\n const attrMap: Record<string, string> = {\n __name__: \"name\",\n __doc__: \"undefined\", // JS functions don't have docstrings\n __class__: \"constructor\",\n __dict__: \"this\" // Rough equivalent\n }\n\n const mappedProp = attrMap[propName] ?? propName\n return `${objCode}.${mappedProp}`\n }\n}\n\nfunction transformSliceFromMember(\n obj: SyntaxNode,\n children: SyntaxNode[],\n ctx: TransformContext\n): string {\n ctx.usesRuntime.add(\"slice\")\n const objCode = transformNode(obj, ctx)\n\n // Extract slice content between brackets\n const bracketStart = children.findIndex((c) => c.name === \"[\")\n const bracketEnd = children.findIndex((c) => c.name === \"]\")\n\n /* c8 ignore next 3 - defensive: subscript always has brackets */\n if (bracketStart === -1 || bracketEnd === -1) {\n return `slice(${objCode})`\n }\n\n // Get all elements between brackets\n const sliceElements = children.slice(bracketStart + 1, bracketEnd)\n\n // Parse slice notation (start:stop:step)\n const colonIndices: number[] = []\n sliceElements.forEach((el, i) => {\n if (el.name === \":\") colonIndices.push(i)\n })\n\n // Build slice parts\n const parts: string[] = []\n let lastIdx = 0\n for (const colonIdx of colonIndices) {\n const beforeColon = sliceElements.slice(lastIdx, colonIdx)\n if (beforeColon.length > 0 && beforeColon[0]) {\n parts.push(transformNode(beforeColon[0], ctx))\n } else {\n parts.push(\"undefined\")\n }\n lastIdx = colonIdx + 1\n }\n // Handle remaining after last colon\n const afterLastColon = sliceElements.slice(lastIdx)\n if (afterLastColon.length > 0 && afterLastColon[0] && afterLastColon[0].name !== \":\") {\n parts.push(transformNode(afterLastColon[0], ctx))\n } else if (colonIndices.length > 0) {\n parts.push(\"undefined\")\n }\n\n // If no colons, it's not a slice\n /* c8 ignore next 3 - defensive: slice detection already checked for colons */\n if (colonIndices.length === 0) {\n return `slice(${objCode})`\n }\n\n return `slice(${objCode}, ${parts.join(\", \")})`\n}\n\nfunction transformArrayExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const elements = children.filter((c) => c.name !== \"[\" && c.name !== \"]\" && c.name !== \",\")\n\n const elementCodes = elements.map((el) => transformNode(el, ctx))\n return `[${elementCodes.join(\", \")}]`\n}\n\nfunction transformDictionaryExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const pairs: string[] = []\n\n // Filter out braces and commas\n const items = children.filter(\n (c) => c.name !== \"{\" && c.name !== \"}\" && c.name !== \",\" && c.name !== \":\"\n )\n\n // Process key-value pairs (items come in pairs: key, value)\n for (let i = 0; i < items.length; i += 2) {\n const key = items[i]\n const value = items[i + 1]\n\n if (key && value) {\n const keyCode = transformNode(key, ctx)\n const valueCode = transformNode(value, ctx)\n\n // Check if key needs to be computed\n if (key.name === \"VariableName\") {\n pairs.push(`[${keyCode}]: ${valueCode}`)\n } else {\n pairs.push(`${keyCode}: ${valueCode}`)\n }\n }\n }\n\n return `{ ${pairs.join(\", \")} }`\n}\n\nfunction transformTupleExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const elements = children.filter((c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \",\")\n\n ctx.usesRuntime.add(\"tuple\")\n const elementCodes = elements.map((el) => transformNode(el, ctx))\n return `tuple(${elementCodes.join(\", \")})`\n}\n\nfunction isNegativeIndexLiteral(node: SyntaxNode, ctx: TransformContext): boolean {\n // Check for a UnaryExpression with - operator and a Number\n if (node.name === \"UnaryExpression\") {\n const children = getChildren(node)\n const hasMinusOp = children.some(\n (c) => c.name === \"ArithOp\" && getNodeText(c, ctx.source) === \"-\"\n )\n const hasNumber = children.some((c) => c.name === \"Number\")\n return hasMinusOp && hasNumber\n }\n return false\n}\n\nfunction transformIfStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const parts: string[] = []\n\n let i = 0\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n if (\n child.name === \"if\" ||\n (child.name === \"Keyword\" && getNodeText(child, ctx.source) === \"if\")\n ) {\n // Main if\n const condition = children[i + 1]\n const body = children.find((c, idx) => idx > i && c.name === \"Body\")\n\n if (condition && body) {\n const condCode = transformNode(condition, ctx)\n const bodyCode = transformBody(body, ctx)\n parts.push(`if (${condCode}) {\\n${bodyCode}\\n}`)\n }\n } else if (\n child.name === \"elif\" ||\n (child.name === \"Keyword\" && getNodeText(child, ctx.source) === \"elif\")\n ) {\n const condition = children[i + 1]\n const body = children.find((c, idx) => idx > i + 1 && c.name === \"Body\")\n\n if (condition && body) {\n const condCode = transformNode(condition, ctx)\n const bodyCode = transformBody(body, ctx)\n parts.push(` else if (${condCode}) {\\n${bodyCode}\\n}`)\n }\n } else if (\n child.name === \"else\" ||\n (child.name === \"Keyword\" && getNodeText(child, ctx.source) === \"else\")\n ) {\n const body = children.find((c, idx) => idx > i && c.name === \"Body\")\n\n if (body) {\n const bodyCode = transformBody(body, ctx)\n parts.push(` else {\\n${bodyCode}\\n}`)\n }\n }\n i++\n }\n\n return parts.join(\"\")\n}\n\nfunction transformWhileStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const condition = children.find(\n (c) => c.name !== \"while\" && c.name !== \"Body\" && c.name !== \"Keyword\" && c.name !== \":\"\n )\n const body = children.find((c) => c.name === \"Body\")\n\n if (!condition || !body) return getNodeText(node, ctx.source)\n\n const condCode = transformNode(condition, ctx)\n const bodyCode = transformBody(body, ctx)\n\n return `while (${condCode}) {\\n${bodyCode}\\n}`\n}\n\nfunction transformMatchStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Find the subject (what we're matching) and the body (containing clauses)\n let subject: SyntaxNode | null = null\n let matchBody: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"match\" || child.name === \":\") continue\n if (child.name === \"MatchBody\") {\n matchBody = child\n } else if (!subject) {\n subject = child\n }\n }\n\n if (!subject || !matchBody) return getNodeText(node, ctx.source)\n\n const subjectCode = transformNode(subject, ctx)\n\n // Collect all clauses and check if any have complex patterns\n const matchBodyChildren = getChildren(matchBody)\n const clauseNodes = matchBodyChildren.filter((c) => c.name === \"MatchClause\")\n\n const hasComplexPatterns = clauseNodes.some((clause) => {\n const clauseChildren = getChildren(clause)\n const pattern = clauseChildren.find(\n (c) => c.name !== \"case\" && c.name !== \":\" && c.name !== \"Body\" && c.name !== \"Guard\"\n )\n const hasGuard = clauseChildren.some((c) => c.name === \"Guard\")\n\n if (hasGuard) return true\n if (!pattern) return false\n\n // Complex patterns that need if/else\n if (\n pattern.name === \"SequencePattern\" ||\n pattern.name === \"MappingPattern\" ||\n pattern.name === \"ClassPattern\" ||\n pattern.name === \"AsPattern\"\n ) {\n return true\n }\n\n // OrPattern with complex sub-patterns needs if/else\n if (pattern.name === \"OrPattern\") {\n const orChildren = getChildren(pattern)\n return orChildren.some(\n (c) =>\n c.name === \"SequencePattern\" ||\n c.name === \"MappingPattern\" ||\n c.name === \"ClassPattern\" ||\n c.name === \"AsPattern\"\n )\n }\n\n return false\n })\n\n if (hasComplexPatterns) {\n // Use if/else chain for complex patterns\n return transformMatchAsIfElse(subjectCode, clauseNodes, ctx)\n }\n\n // Use switch for simple patterns\n const clauses = transformMatchBody(matchBody, ctx)\n return `switch (${subjectCode}) {\\n${clauses}\\n}`\n}\n\nfunction transformMatchAsIfElse(\n subjectCode: string,\n clauses: SyntaxNode[],\n ctx: TransformContext\n): string {\n const parts: string[] = []\n const indent = \" \".repeat(ctx.indentLevel)\n\n for (let i = 0; i < clauses.length; i++) {\n const clause = clauses[i]\n if (!clause) continue\n\n const children = getChildren(clause)\n\n let pattern: SyntaxNode | null = null\n let body: SyntaxNode | null = null\n let guard: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"case\" || child.name === \":\") continue\n if (child.name === \"Body\") {\n body = child\n } else if (child.name === \"Guard\") {\n guard = child\n } else if (!pattern) {\n pattern = child\n }\n }\n\n if (!pattern || !body) continue\n\n ctx.indentLevel++\n const bodyCode = transformBody(body, ctx)\n ctx.indentLevel--\n\n const patternText = getNodeText(pattern, ctx.source)\n const isWildcard =\n patternText === \"_\" || (pattern.name === \"CapturePattern\" && patternText === \"_\")\n\n // Extract guard condition if present\n let guardCondition: string | null = null\n if (guard) {\n const guardChildren = getChildren(guard)\n const guardExpr = guardChildren.find((c) => c.name !== \"if\")\n if (guardExpr) {\n let guardCode = transformNode(guardExpr, ctx)\n // If pattern is a CapturePattern, substitute the variable with the subject in the guard\n if (pattern.name === \"CapturePattern\") {\n const captureVar = getNodeText(pattern, ctx.source)\n if (captureVar !== \"_\") {\n // Replace the captured variable with the subject in the guard condition\n // Use word boundary regex to avoid partial matches\n const varRegex = new RegExp(`\\\\b${captureVar}\\\\b`, \"g\")\n guardCode = guardCode.replace(varRegex, subjectCode)\n }\n }\n guardCondition = guardCode\n }\n }\n\n if (isWildcard && !guardCondition) {\n // Wildcard/default case without guard\n if (i === 0) {\n parts.push(`${indent}${bodyCode.trim()}`)\n } else {\n parts.push(` else {\\n${indent} ${bodyCode.trim()}\\n${indent}}`)\n }\n } else {\n const { condition, bindings } = transformComplexPattern(pattern, subjectCode, ctx)\n\n // Combine pattern condition with guard condition\n let fullCondition = condition\n if (guardCondition) {\n if (condition === \"true\") {\n fullCondition = guardCondition\n } else {\n fullCondition = `${condition} && ${guardCondition}`\n }\n }\n\n const keyword = i === 0 ? \"if\" : \" else if\"\n const bindingsCode =\n bindings.length > 0 ? `\\n${indent} ${bindings.join(`\\n${indent} `)}` : \"\"\n\n parts.push(\n `${keyword} (${fullCondition}) {${bindingsCode}\\n${indent} ${bodyCode.trim()}\\n${indent}}`\n )\n }\n }\n\n return parts.join(\"\")\n}\n\ninterface PatternResult {\n condition: string\n bindings: string[]\n}\n\nfunction transformComplexPattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n switch (pattern.name) {\n case \"SequencePattern\":\n return transformSequencePattern(pattern, subject, ctx)\n case \"MappingPattern\":\n return transformMappingPattern(pattern, subject, ctx)\n case \"ClassPattern\":\n return transformClassPattern(pattern, subject, ctx)\n case \"OrPattern\":\n return transformOrPattern(pattern, subject, ctx)\n case \"AsPattern\":\n return transformAsPattern(pattern, subject, ctx)\n case \"LiteralPattern\": {\n const children = getChildren(pattern)\n const literal = children[0]\n const value = literal ? transformNode(literal, ctx) : getNodeText(pattern, ctx.source)\n return { condition: `${subject} === ${value}`, bindings: [] }\n }\n case \"CapturePattern\": {\n const varName = getNodeText(pattern, ctx.source)\n if (varName === \"_\") {\n return { condition: \"true\", bindings: [] }\n }\n return { condition: \"true\", bindings: [`const ${varName} = ${subject};`] }\n }\n default:\n // Fallback for unknown patterns\n return { condition: `${subject} === ${getNodeText(pattern, ctx.source)}`, bindings: [] }\n }\n}\n\nfunction transformSequencePattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n const children = getChildren(pattern)\n const elements = children.filter((c) => c.name !== \"[\" && c.name !== \"]\" && c.name !== \",\")\n\n const conditions: string[] = [`Array.isArray(${subject})`]\n const bindings: string[] = []\n\n // Check for exact length (unless there's a starred pattern)\n const hasStarred = elements.some((e) => e.name === \"StarPattern\")\n if (!hasStarred) {\n conditions.push(`${subject}.length === ${String(elements.length)}`)\n }\n\n // Process each element\n elements.forEach((elem, idx) => {\n const idxStr = String(idx)\n if (elem.name === \"CapturePattern\") {\n const varName = getNodeText(elem, ctx.source)\n if (varName !== \"_\") {\n bindings.push(`const ${varName} = ${subject}[${idxStr}];`)\n }\n } else if (elem.name === \"LiteralPattern\") {\n const childNodes = getChildren(elem)\n const literal = childNodes[0]\n const value = literal ? transformNode(literal, ctx) : getNodeText(elem, ctx.source)\n conditions.push(`${subject}[${idxStr}] === ${value}`)\n }\n })\n\n return { condition: conditions.join(\" && \"), bindings }\n}\n\nfunction transformMappingPattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n const children = getChildren(pattern)\n const conditions: string[] = [`typeof ${subject} === \"object\"`, `${subject} !== null`]\n const bindings: string[] = []\n\n // Process key-value pairs\n let i = 0\n while (i < children.length) {\n const child = children[i]\n if (child?.name === \"LiteralPattern\" || child?.name === \"String\") {\n // This is a key\n const keyNode = child.name === \"LiteralPattern\" ? getChildren(child)[0] : child\n const key = keyNode ? transformNode(keyNode, ctx) : getNodeText(child, ctx.source)\n\n // Look for the colon and then the value pattern\n const valuePattern = children[i + 2]\n if (children[i + 1]?.name === \":\" && valuePattern) {\n conditions.push(`${key} in ${subject}`)\n\n if (valuePattern.name === \"CapturePattern\") {\n const varName = getNodeText(valuePattern, ctx.source)\n if (varName !== \"_\") {\n bindings.push(`const ${varName} = ${subject}[${key}];`)\n }\n } else if (valuePattern.name === \"LiteralPattern\") {\n const valueChildren = getChildren(valuePattern)\n const literal = valueChildren[0]\n const value = literal\n ? transformNode(literal, ctx)\n : getNodeText(valuePattern, ctx.source)\n conditions.push(`${subject}[${key}] === ${value}`)\n }\n i += 3\n continue\n }\n }\n i++\n }\n\n return { condition: conditions.join(\" && \"), bindings }\n}\n\nfunction transformClassPattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n const children = getChildren(pattern)\n const className = children.find((c) => c.name === \"VariableName\")\n const argList = children.find((c) => c.name === \"PatternArgList\")\n\n const conditions: string[] = []\n const bindings: string[] = []\n\n if (className) {\n const classNameText = getNodeText(className, ctx.source)\n conditions.push(`${subject} instanceof ${classNameText}`)\n }\n\n if (argList) {\n const argChildren = getChildren(argList)\n for (const arg of argChildren) {\n if (arg.name === \"KeywordPattern\") {\n const kwChildren = getChildren(arg)\n const attrName = kwChildren.find((c) => c.name === \"VariableName\")\n const valuePattern = kwChildren.find(\n (c) => c.name === \"LiteralPattern\" || c.name === \"CapturePattern\"\n )\n\n if (attrName && valuePattern) {\n const attrNameText = getNodeText(attrName, ctx.source)\n\n if (valuePattern.name === \"LiteralPattern\") {\n const litChildren = getChildren(valuePattern)\n const literal = litChildren[0]\n const value = literal\n ? transformNode(literal, ctx)\n : getNodeText(valuePattern, ctx.source)\n conditions.push(`${subject}.${attrNameText} === ${value}`)\n } else if (valuePattern.name === \"CapturePattern\") {\n const varName = getNodeText(valuePattern, ctx.source)\n if (varName !== \"_\") {\n bindings.push(`const ${varName} = ${subject}.${attrNameText};`)\n }\n }\n }\n }\n }\n }\n\n return { condition: conditions.length > 0 ? conditions.join(\" && \") : \"true\", bindings }\n}\n\nfunction transformOrPattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n const children = getChildren(pattern)\n // Filter out LogicOp (|) tokens, keep only actual patterns\n const subPatterns = children.filter((c) => c.name !== \"LogicOp\")\n\n const conditions: string[] = []\n // OR patterns cannot have bindings (each alternative must bind the same variables)\n // For simplicity, we just create OR conditions\n for (const subPattern of subPatterns) {\n const { condition } = transformComplexPattern(subPattern, subject, ctx)\n conditions.push(condition)\n }\n\n return { condition: conditions.join(\" || \"), bindings: [] }\n}\n\nfunction transformAsPattern(\n pattern: SyntaxNode,\n subject: string,\n ctx: TransformContext\n): PatternResult {\n const children = getChildren(pattern)\n // AsPattern: [inner_pattern, \"as\", VariableName]\n const innerPattern = children.find(\n (c) => c.name !== \"as\" && c.name !== \"VariableName\" && c.name !== \"⚠\"\n )\n const asName = children.find((c) => c.name === \"VariableName\")\n\n if (!innerPattern) {\n return { condition: \"true\", bindings: [] }\n }\n\n // Transform the inner pattern\n const { condition, bindings } = transformComplexPattern(innerPattern, subject, ctx)\n\n // Add the \"as\" binding for the whole subject\n if (asName) {\n const varName = getNodeText(asName, ctx.source)\n bindings.push(`const ${varName} = ${subject};`)\n }\n\n return { condition, bindings }\n}\n\nfunction transformMatchBody(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const clauses: string[] = []\n const indent = \" \".repeat(ctx.indentLevel + 1)\n\n for (const child of children) {\n if (child.name === \"MatchClause\") {\n clauses.push(transformMatchClause(child, ctx, indent))\n }\n }\n\n return clauses.join(\"\\n\")\n}\n\nfunction transformMatchClause(node: SyntaxNode, ctx: TransformContext, indent: string): string {\n const children = getChildren(node)\n\n let pattern: SyntaxNode | null = null\n let body: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"case\" || child.name === \":\") continue\n if (child.name === \"Body\") {\n body = child\n } else if (!pattern) {\n pattern = child\n }\n }\n\n if (!pattern || !body) return \"\"\n\n const patternText = getNodeText(pattern, ctx.source)\n\n // Increase indent for body content\n ctx.indentLevel++\n const bodyCode = transformBody(body, ctx)\n ctx.indentLevel--\n\n const bodyIndent = indent + \" \"\n\n // Handle wildcard pattern (_) as default\n if (patternText === \"_\" || pattern.name === \"CapturePattern\") {\n const captureVar = getNodeText(pattern, ctx.source)\n if (captureVar === \"_\") {\n return `${indent}default:\\n${bodyIndent}${bodyCode.trim()}\\n${bodyIndent}break;`\n }\n }\n\n // Handle OR patterns with multiple case labels\n if (pattern.name === \"OrPattern\") {\n const orChildren = getChildren(pattern)\n const subPatterns = orChildren.filter((c) => c.name !== \"LogicOp\")\n const caseLabels = subPatterns.map((p) => {\n const caseValue = transformMatchPatternSimple(p, ctx)\n return `${indent}case ${caseValue}:`\n })\n // Join all case labels, then add the body after the last one\n return `${caseLabels.join(\"\\n\")}\\n${bodyIndent}${bodyCode.trim()}\\n${bodyIndent}break;`\n }\n\n // Handle literal patterns\n const caseValue = transformMatchPatternSimple(pattern, ctx)\n return `${indent}case ${caseValue}:\\n${bodyIndent}${bodyCode.trim()}\\n${bodyIndent}break;`\n}\n\nfunction transformMatchPatternSimple(node: SyntaxNode, ctx: TransformContext): string {\n switch (node.name) {\n case \"LiteralPattern\": {\n const children = getChildren(node)\n const literal = children[0]\n if (literal) {\n return transformNode(literal, ctx)\n }\n return getNodeText(node, ctx.source)\n }\n case \"CapturePattern\":\n // Variable capture - in switch this would be default\n return getNodeText(node, ctx.source)\n default:\n return getNodeText(node, ctx.source)\n }\n}\n\nfunction transformForStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Check for async for\n const isAsync = children.some(\n (c) => c.name === \"async\" || (c.name === \"Keyword\" && getNodeText(c, ctx.source) === \"async\")\n )\n\n // Find the variables (between 'for' and 'in'), iterable (after 'in'), and body\n const varNodes: SyntaxNode[] = []\n let iterableNode: SyntaxNode | null = null\n let bodyNode: SyntaxNode | null = null\n\n let foundFor = false\n let foundIn = false\n\n for (const child of children) {\n if (\n child.name === \"for\" ||\n (child.name === \"Keyword\" && getNodeText(child, ctx.source) === \"for\")\n ) {\n foundFor = true\n } else if (\n child.name === \"in\" ||\n (child.name === \"Keyword\" && getNodeText(child, ctx.source) === \"in\")\n ) {\n foundIn = true\n } else if (child.name === \"Body\") {\n bodyNode = child\n } else if (\n child.name !== \":\" &&\n child.name !== \"Keyword\" &&\n child.name !== \",\" &&\n child.name !== \"async\"\n ) {\n if (foundFor && !foundIn) {\n varNodes.push(child)\n } else if (foundIn && !bodyNode) {\n iterableNode = child\n }\n }\n }\n\n if (varNodes.length === 0 || !iterableNode || !bodyNode) {\n return getNodeText(node, ctx.source)\n }\n\n // Build the variable pattern\n let varCode: string\n if (varNodes.length === 1 && varNodes[0]) {\n // Single variable\n varCode = transformNode(varNodes[0], ctx)\n } else {\n // Tuple unpacking: [x, y] or [i, [a, b]]\n varCode = \"[\" + varNodes.map((v) => transformForLoopVar(v, ctx)).join(\", \") + \"]\"\n }\n\n let iterableCode = transformNode(iterableNode, ctx)\n const bodyCode = transformBody(bodyNode, ctx)\n\n // Wrap plain variable names with py.iter() to handle dict iteration\n // Arrays/strings remain iterable, but dicts need Object.keys()\n if (iterableNode.name === \"VariableName\" && !isAsync) {\n ctx.usesRuntime.add(\"iter\")\n iterableCode = `iter(${iterableCode})`\n }\n\n // Use 'for await' for async iteration\n const forKeyword = isAsync ? \"for await\" : \"for\"\n return `${forKeyword} (const ${varCode} of ${iterableCode}) {\\n${bodyCode}\\n}`\n}\n\nfunction transformForLoopVar(node: SyntaxNode, ctx: TransformContext): string {\n if (node.name === \"VariableName\") {\n return getNodeText(node, ctx.source)\n } else if (node.name === \"TupleExpression\") {\n // Nested tuple: (a, b) -> [a, b]\n const children = getChildren(node)\n const elements = children.filter((c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \",\")\n return \"[\" + elements.map((e) => transformForLoopVar(e, ctx)).join(\", \") + \"]\"\n }\n return transformNode(node, ctx)\n}\n\nfunction transformTryStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const baseIndent = \" \".repeat(ctx.indentLevel)\n\n let tryBody: SyntaxNode | null = null\n const exceptBodies: { type: string | null; varName: string | null; body: SyntaxNode }[] = []\n let finallyBody: SyntaxNode | null = null\n\n let i = 0\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n if (child.name === \"try\") {\n // Next Body is the try block\n const nextBody = children[i + 1]\n if (nextBody && nextBody.name === \"Body\") {\n tryBody = nextBody\n i += 2\n continue\n }\n }\n\n if (child.name === \"except\") {\n // Parse except clause: except [Type] [as name]:\n let exceptType: string | null = null\n let exceptVar: string | null = null\n let exceptBody: SyntaxNode | null = null\n\n let j = i + 1\n while (j < children.length) {\n const next = children[j]\n if (!next) break\n\n if (next.name === \"Body\") {\n exceptBody = next\n j++\n break\n } else if (next.name === \"VariableName\") {\n if (exceptType === null) {\n exceptType = getNodeText(next, ctx.source)\n } else {\n exceptVar = getNodeText(next, ctx.source)\n }\n } else if (next.name === \"as\") {\n // skip 'as' keyword\n } else if (next.name === \"except\" || next.name === \"finally\") {\n break\n }\n j++\n }\n\n if (exceptBody) {\n exceptBodies.push({ type: exceptType, varName: exceptVar, body: exceptBody })\n }\n i = j\n continue\n }\n\n if (child.name === \"finally\") {\n // Next Body is the finally block\n const nextBody = children[i + 1]\n if (nextBody && nextBody.name === \"Body\") {\n finallyBody = nextBody\n i += 2\n continue\n }\n }\n\n i++\n }\n\n if (!tryBody) {\n return getNodeText(node, ctx.source)\n }\n\n // Build the try/catch/finally\n const tryCode = transformBody(tryBody, ctx)\n let result = `try {\\n${tryCode}\\n${baseIndent}}`\n\n // Transform except clauses to catch\n if (exceptBodies.length > 0) {\n const firstExcept = exceptBodies[0]\n if (firstExcept) {\n const catchVar = firstExcept.varName || \"e\"\n const catchBody = transformBody(firstExcept.body, ctx)\n\n if (exceptBodies.length === 1 && !firstExcept.type) {\n // Simple catch-all\n result += ` catch (${catchVar}) {\\n${catchBody}\\n${baseIndent}}`\n } else if (exceptBodies.length === 1) {\n // Single typed except - we still catch everything but could add instanceof check\n result += ` catch (${catchVar}) {\\n${catchBody}\\n${baseIndent}}`\n } else {\n // Multiple except clauses - generate if/else chain\n const innerIndent = \" \".repeat(ctx.indentLevel + 1)\n let catchBodyCode = \"\"\n for (let idx = 0; idx < exceptBodies.length; idx++) {\n const exc = exceptBodies[idx]\n if (!exc) continue\n const excBodyCode = transformBody(exc.body, ctx)\n const excVar = exc.varName || catchVar\n\n if (exc.type) {\n const condition = idx === 0 ? \"if\" : \"} else if\"\n const mappedType = mapExceptionType(exc.type)\n catchBodyCode += `${innerIndent}${condition} (${catchVar} instanceof ${mappedType}) {\\n`\n if (excVar !== catchVar) {\n catchBodyCode += `${innerIndent} const ${excVar} = ${catchVar};\\n`\n }\n catchBodyCode += excBodyCode\n .split(\"\\n\")\n .map((line) => \" \" + line)\n .join(\"\\n\")\n catchBodyCode += \"\\n\"\n } else {\n // Catch-all (except without type)\n if (idx > 0) {\n catchBodyCode += `${innerIndent}} else {\\n`\n }\n catchBodyCode += excBodyCode\n .split(\"\\n\")\n .map((line) => \" \" + line)\n .join(\"\\n\")\n catchBodyCode += \"\\n\"\n }\n }\n if (exceptBodies.some((e) => e.type)) {\n catchBodyCode += `${innerIndent}}`\n }\n result += ` catch (${catchVar}) {\\n${catchBodyCode}${baseIndent}}`\n }\n }\n }\n\n // Add finally block\n if (finallyBody) {\n const finallyCode = transformBody(finallyBody, ctx)\n result += ` finally {\\n${finallyCode}\\n${baseIndent}}`\n }\n\n return result\n}\n\nfunction mapExceptionType(pythonType: string): string {\n // Map Python exception types to JavaScript equivalents\n const mapping: Record<string, string> = {\n Exception: \"Error\",\n BaseException: \"Error\",\n ValueError: \"Error\",\n TypeError: \"TypeError\",\n KeyError: \"Error\",\n IndexError: \"RangeError\",\n AttributeError: \"Error\",\n RuntimeError: \"Error\",\n StopIteration: \"Error\",\n ZeroDivisionError: \"Error\",\n FileNotFoundError: \"Error\",\n IOError: \"Error\",\n OSError: \"Error\",\n NameError: \"ReferenceError\",\n SyntaxError: \"SyntaxError\"\n }\n return mapping[pythonType] || \"Error\"\n}\n\nfunction transformRaiseStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Find the expression after 'raise'\n const exprNode = children.find((c) => c.name !== \"raise\")\n\n if (!exprNode) {\n // raise without argument - re-throw\n return \"throw\"\n }\n\n const expr = transformNode(exprNode, ctx)\n\n // Check if it's a call to an exception type\n if (exprNode.name === \"CallExpression\") {\n const callChildren = getChildren(exprNode)\n const funcName = callChildren.find((c) => c.name === \"VariableName\")\n if (funcName) {\n const name = getNodeText(funcName, ctx.source)\n // Map Python exception to Error\n if (isExceptionType(name)) {\n // Extract message from args\n const argList = callChildren.find((c) => c.name === \"ArgList\")\n if (argList) {\n const args = getChildren(argList).filter(\n (c) => c.name !== \"(\" && c.name !== \")\" && c.name !== \",\"\n )\n if (args.length > 0 && args[0]) {\n const message = transformNode(args[0], ctx)\n return `throw new Error(${message})`\n }\n }\n return \"throw new Error()\"\n }\n }\n }\n\n // For other expressions, wrap in Error if it's a string\n if (exprNode.name === \"String\") {\n return `throw new Error(${expr})`\n }\n\n return `throw ${expr}`\n}\n\nfunction isExceptionType(name: string): boolean {\n const exceptionTypes = [\n \"Exception\",\n \"BaseException\",\n \"ValueError\",\n \"TypeError\",\n \"KeyError\",\n \"IndexError\",\n \"AttributeError\",\n \"RuntimeError\",\n \"StopIteration\",\n \"ZeroDivisionError\",\n \"FileNotFoundError\",\n \"IOError\",\n \"OSError\",\n \"NameError\",\n \"SyntaxError\",\n \"AssertionError\",\n \"NotImplementedError\",\n \"ImportError\",\n \"ModuleNotFoundError\"\n ]\n return exceptionTypes.includes(name)\n}\n\nfunction transformImportStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Determine if this is a \"from X import Y\" or \"import X\" style\n const hasFrom = children.some((c) => c.name === \"from\")\n\n if (hasFrom) {\n return transformFromImport(children, ctx)\n } else {\n return transformSimpleImport(children, ctx)\n }\n}\n\nfunction transformSimpleImport(children: SyntaxNode[], ctx: TransformContext): string {\n // import os -> import * as os from \"os\"\n // import numpy as np -> import * as np from \"numpy\"\n\n const names: { module: string; alias: string | null }[] = []\n let i = 0\n\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n if (child.name === \"import\" || child.name === \",\") {\n i++\n continue\n }\n\n if (child.name === \"VariableName\") {\n const moduleName = getNodeText(child, ctx.source)\n let alias: string | null = null\n\n // Check for \"as\" alias\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"as\") {\n const aliasChild = children[i + 2]\n if (aliasChild && aliasChild.name === \"VariableName\") {\n alias = getNodeText(aliasChild, ctx.source)\n i += 3\n names.push({ module: moduleName, alias })\n continue\n }\n }\n\n names.push({ module: moduleName, alias: null })\n i++\n continue\n }\n\n i++\n }\n\n // Filter out runtime modules (provided by py runtime) and typing modules\n const filteredNames = names.filter(\n ({ module }) => !RUNTIME_MODULES.has(module) && !TYPING_MODULES.has(module)\n )\n\n if (filteredNames.length === 0) {\n return \"\"\n }\n\n // Generate import statements\n return filteredNames\n .map(({ module, alias }) => {\n const importName = alias || module\n return `import * as ${importName} from \"${module}\"`\n })\n .join(\"\\n\")\n}\n\n/** Modules whose imports should be ignored (type-only modules) */\nconst TYPING_MODULES = new Set([\n \"typing\",\n \"typing_extensions\",\n \"collections.abc\",\n \"__future__\",\n \"abc\"\n])\n\n/** Runtime modules whose imports should be stripped (provided by runtime) */\nconst RUNTIME_MODULES = new Set([\n \"itertools\",\n \"collections\",\n \"math\",\n \"random\",\n \"json\",\n \"os\",\n \"datetime\",\n \"re\",\n \"string\",\n \"functools\"\n])\n\nfunction transformFromImport(children: SyntaxNode[], ctx: TransformContext): string {\n // from os import path -> import { path } from \"os\"\n // from os import path, getcwd -> import { path, getcwd } from \"os\"\n // from collections import defaultdict as dd -> import { defaultdict as dd } from \"collections\"\n // from math import * -> import * from \"math\"\n // from . import utils -> import * as utils from \"./utils\"\n // from ..utils import helper -> import { helper } from \"../utils\"\n\n // First pass: find the module name to check if it's a typing module\n let preCheckModule = \"\"\n for (const child of children) {\n if (child.name === \"VariableName\") {\n const prevChild = children[children.indexOf(child) - 1]\n // Check if this is after \"from\" (not after \"import\")\n if (prevChild?.name === \"from\" || prevChild?.name === \".\") {\n preCheckModule = getNodeText(child, ctx.source)\n break\n }\n }\n }\n\n // Strip typing module imports entirely - TypeScript has its own type system\n if (TYPING_MODULES.has(preCheckModule)) {\n return \"\"\n }\n\n // Strip runtime module imports - provided by py runtime\n if (RUNTIME_MODULES.has(preCheckModule)) {\n return \"\"\n }\n\n let moduleName = \"\"\n let relativeDots = 0\n const imports: { name: string; alias: string | null }[] = []\n let hasStar = false\n\n let phase: \"from\" | \"module\" | \"import\" | \"names\" = \"from\"\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n if (!child) continue\n\n if (child.name === \"from\") {\n phase = \"module\"\n continue\n }\n\n if (child.name === \".\") {\n relativeDots++\n continue\n }\n\n if (child.name === \"Ellipsis\") {\n // ... is parsed as Ellipsis, treat as 3 dots\n relativeDots += 3\n continue\n }\n\n if (child.name === \"import\") {\n phase = \"names\"\n continue\n }\n\n if (phase === \"module\" && child.name === \"VariableName\") {\n moduleName = getNodeText(child, ctx.source)\n continue\n }\n\n if (phase === \"names\") {\n if (child.name === \"*\") {\n hasStar = true\n continue\n }\n\n if (child.name === \"VariableName\") {\n const name = getNodeText(child, ctx.source)\n\n // Check for \"as\" alias\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"as\") {\n const aliasChild = children[i + 2]\n if (aliasChild && aliasChild.name === \"VariableName\") {\n imports.push({ name, alias: getNodeText(aliasChild, ctx.source) })\n i += 2\n continue\n }\n }\n\n imports.push({ name, alias: null })\n continue\n }\n\n if (child.name === \",\") {\n continue\n }\n }\n }\n\n // Build module path\n let modulePath = \"\"\n if (relativeDots > 0) {\n // Relative import\n if (relativeDots === 1) {\n modulePath = \"./\"\n } else {\n modulePath = \"../\".repeat(relativeDots - 1)\n }\n if (moduleName) {\n modulePath += moduleName\n } else if (imports.length > 0) {\n // from . import utils -> import from \"./utils\"\n modulePath += imports[0]?.name || \"\"\n }\n } else {\n modulePath = moduleName\n }\n\n // Generate import statement\n if (hasStar) {\n return `import * as ${moduleName || \"_\"} from \"${modulePath}\"`\n }\n\n if (relativeDots > 0 && !moduleName && imports.length === 1) {\n // from . import utils -> import * as utils from \"./utils\"\n const imp = imports[0]\n if (imp) {\n const importName = imp.alias || imp.name\n return `import * as ${importName} from \"${modulePath}\"`\n }\n }\n\n const importNames = imports\n .map(({ name, alias }) => (alias ? `${name} as ${alias}` : name))\n .join(\", \")\n\n return `import { ${importNames} } from \"${modulePath}\"`\n}\n\nfunction transformAwaitExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Find the expression after 'await'\n const exprNode = children.find((c) => c.name !== \"await\")\n\n if (!exprNode) {\n return \"await\"\n }\n\n return `await ${transformNode(exprNode, ctx)}`\n}\n\nfunction transformWithStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Check if this is an async with\n const isAsync = children.some((c) => c.name === \"async\")\n\n // Parse context managers: with expr as name, expr2 as name2:\n const contextManagers: { expr: SyntaxNode; varName: string | null }[] = []\n let body: SyntaxNode | null = null\n\n let i = 0\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n // Skip keywords\n if (child.name === \"with\" || child.name === \"async\" || child.name === \",\") {\n i++\n continue\n }\n\n // Body marks the end of context managers\n if (child.name === \"Body\") {\n body = child\n break\n }\n\n // This should be an expression (the context manager)\n if (child.name !== \"as\" && child.name !== \":\" && child.name !== \"VariableName\") {\n const expr = child\n let varName: string | null = null\n\n // Check if next is 'as' followed by variable name\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"as\") {\n const varChild = children[i + 2]\n if (varChild && varChild.name === \"VariableName\") {\n varName = getNodeText(varChild, ctx.source)\n i += 3\n } else {\n i++\n }\n } else {\n i++\n }\n\n contextManagers.push({ expr, varName })\n continue\n }\n\n i++\n }\n\n if (contextManagers.length === 0 || !body) {\n return getNodeText(node, ctx.source)\n }\n\n // Generate try/finally structure\n // For multiple context managers, we nest them\n const bodyCode = transformBody(body, ctx)\n\n // Build from inside out for multiple context managers\n let result = bodyCode\n\n for (let j = contextManagers.length - 1; j >= 0; j--) {\n const cm = contextManagers[j]\n if (!cm) continue\n\n const exprCode = transformNode(cm.expr, ctx)\n const innerIndent = \" \".repeat(ctx.indentLevel + j)\n const innerIndent2 = \" \".repeat(ctx.indentLevel + j + 1)\n\n if (cm.varName) {\n // with expr as name: -> const name = expr; try { ... } finally { name.close?.() }\n const assignment = `${innerIndent}const ${cm.varName} = ${exprCode};\\n`\n const tryBlock = `${innerIndent}try {\\n${result}\\n${innerIndent}}`\n const finallyBlock = ` finally {\\n${innerIndent2}${cm.varName}[Symbol.dispose]?.() ?? ${cm.varName}.close?.();\\n${innerIndent}}`\n\n if (isAsync && j === 0) {\n // For async with, use await on dispose\n const asyncFinallyBlock = ` finally {\\n${innerIndent2}await (${cm.varName}[Symbol.asyncDispose]?.() ?? ${cm.varName}[Symbol.dispose]?.() ?? ${cm.varName}.close?.());\\n${innerIndent}}`\n result = assignment + tryBlock + asyncFinallyBlock\n } else {\n result = assignment + tryBlock + finallyBlock\n }\n } else {\n // with expr: (no variable) -> const _resource = expr; try { ... } finally { _resource.close?.() }\n const tempVar = j > 0 ? `_resource${String(j)}` : \"_resource\"\n const assignment = `${innerIndent}const ${tempVar} = ${exprCode};\\n`\n const tryBlock = `${innerIndent}try {\\n${result}\\n${innerIndent}}`\n const finallyBlock = ` finally {\\n${innerIndent2}${tempVar}[Symbol.dispose]?.() ?? ${tempVar}.close?.();\\n${innerIndent}}`\n result = assignment + tryBlock + finallyBlock\n }\n }\n\n return result\n}\n\nfunction transformBody(\n node: SyntaxNode,\n ctx: TransformContext,\n skipFirst: boolean = false\n): string {\n ctx.indentLevel++\n pushScope(ctx) // Each block body gets its own scope\n const children = getChildren(node)\n const indent = \" \".repeat(ctx.indentLevel)\n\n let filteredChildren = children.filter((child) => child.name !== \":\")\n if (skipFirst && filteredChildren.length > 0) {\n filteredChildren = filteredChildren.slice(1)\n }\n\n const statements = filteredChildren\n .map((child) => {\n const transformed = transformNode(child, ctx)\n // Skip empty transformations (e.g., pass, TypeVar declarations)\n if (transformed === \"\") {\n return \"\"\n }\n if (\n child.name === \"ExpressionStatement\" ||\n child.name === \"AssignStatement\" ||\n child.name === \"PassStatement\" ||\n child.name === \"BreakStatement\" ||\n child.name === \"ContinueStatement\" ||\n child.name === \"ReturnStatement\" ||\n child.name === \"RaiseStatement\"\n ) {\n return indent + transformed + \";\"\n }\n return indent + transformed\n })\n .filter((s) => s.trim() !== \"\")\n\n popScope(ctx)\n ctx.indentLevel--\n return statements.join(\"\\n\")\n}\n\nfunction transformReturnStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const value = children.find((c) => c.name !== \"return\" && c.name !== \"Keyword\")\n\n if (!value) {\n return \"return\"\n }\n\n return `return ${transformNode(value, ctx)}`\n}\n\nfunction transformFunctionDefinition(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n let isAsync = false\n let funcName = \"\"\n let paramList: SyntaxNode | null = null\n let body: SyntaxNode | null = null\n let returnTypeDef: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"async\") {\n isAsync = true\n } else if (child.name === \"VariableName\") {\n funcName = getNodeText(child, ctx.source)\n } else if (child.name === \"ParamList\") {\n paramList = child\n } else if (child.name === \"Body\") {\n body = child\n } else if (child.name === \"TypeDef\") {\n // Return type annotation (comes after ParamList, before Body)\n returnTypeDef = child\n }\n }\n\n // Extract docstring and convert to JSDoc\n const indent = \" \".repeat(ctx.indentLevel)\n const { jsdoc, skipFirstStatement } = body\n ? extractDocstringFromBody(body, ctx, indent)\n : { jsdoc: null, skipFirstStatement: false }\n\n const params = paramList ? transformParamList(paramList, ctx) : \"\"\n const bodyCode = body ? transformBody(body, ctx, skipFirstStatement) : \"\"\n\n // Check if function is a generator (contains yield)\n const isGenerator = body ? containsYield(body) : false\n\n // Get return type annotation\n let returnType = \"\"\n if (returnTypeDef) {\n const typeChildren = getChildren(returnTypeDef)\n const typeNode = typeChildren.find((c) => c.name !== \":\" && c.name !== \"->\")\n if (typeNode) {\n const tsType = transformPythonType(typeNode, ctx)\n // Convert None return type to void for functions\n returnType = `: ${tsType === \"null\" ? \"void\" : tsType}`\n }\n }\n\n const asyncPrefix = isAsync ? \"async \" : \"\"\n const generatorStar = isGenerator ? \"*\" : \"\"\n const funcDecl = `${asyncPrefix}function${generatorStar} ${funcName}(${params})${returnType} {\\n${bodyCode}\\n}`\n\n return jsdoc ? `${jsdoc}\\n${funcDecl}` : funcDecl\n}\n\nfunction transformClassDefinition(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n let className = \"\"\n const parentClasses: string[] = []\n let body: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"VariableName\") {\n className = getNodeText(child, ctx.source)\n // Track class name for 'new' keyword on instantiation\n ctx.definedClasses.add(className)\n } else if (child.name === \"ArgList\") {\n // Inheritance: class Child(Parent) or class Child(A, B, C) or class Child(Generic[T])\n const argChildren = getChildren(child)\n for (const argChild of argChildren) {\n if (argChild.name === \"VariableName\") {\n parentClasses.push(getNodeText(argChild, ctx.source))\n } else if (argChild.name === \"MemberExpression\") {\n // Handle Generic[T], Generic[K, V] etc.\n parentClasses.push(getNodeText(argChild, ctx.source))\n }\n }\n } else if (child.name === \"Body\") {\n body = child\n }\n }\n\n // Extract class docstring and convert to JSDoc\n const indent = \" \".repeat(ctx.indentLevel)\n const { jsdoc, skipFirstStatement } = body\n ? extractDocstringFromBody(body, ctx, indent)\n : { jsdoc: null, skipFirstStatement: false }\n\n // Build class header\n let classHeader = `class ${className}`\n let multipleInheritanceWarning = \"\"\n\n const firstParent = parentClasses[0]\n if (firstParent) {\n // Special handling for NamedTuple\n if (firstParent === \"NamedTuple\") {\n return transformNamedTuple(className, body, ctx)\n }\n\n // Special handling for Enum types\n if (firstParent === \"Enum\" || firstParent === \"IntEnum\" || firstParent === \"StrEnum\") {\n return transformEnum(className, firstParent, body, ctx)\n }\n\n // Special handling for TypedDict\n if (firstParent === \"TypedDict\") {\n const totalFalse = checkTypedDictTotalFalse(node, ctx)\n return transformTypedDict(className, body, totalFalse, ctx)\n }\n\n // Special handling for Protocol\n if (firstParent === \"Protocol\") {\n return transformProtocol(className, parentClasses, body, ctx)\n }\n\n // Special handling for ABC (Abstract Base Class)\n if (firstParent === \"ABC\" || parentClasses.includes(\"ABC\")) {\n return transformAbstractClass(className, parentClasses, body, ctx, jsdoc)\n }\n\n // Check for Generic[T] in parent classes\n const genericParams = extractGenericParams(parentClasses)\n if (genericParams.length > 0) {\n // Filter out Generic[...] from extends\n const filteredParents = parentClasses.filter((p) => !p.startsWith(\"Generic[\"))\n return transformGenericClass(className, genericParams, filteredParents, body, ctx, jsdoc)\n }\n\n // Use first parent for extends\n classHeader += ` extends ${firstParent}`\n\n // Warn about multiple inheritance\n if (parentClasses.length > 1) {\n const ignoredParents = parentClasses.slice(1).join(\", \")\n multipleInheritanceWarning = `/* WARNING: Multiple inheritance not fully supported. Only extends ${firstParent}. Mixins needed for: ${ignoredParents} */\\n`\n }\n }\n\n // Transform class body\n const bodyCode = body ? transformClassBody(body, ctx, skipFirstStatement) : \"\"\n\n const classDecl = `${multipleInheritanceWarning}${classHeader} {\\n${bodyCode}\\n}`\n return jsdoc ? `${jsdoc}\\n${classDecl}` : classDecl\n}\n\nfunction transformClassBody(\n node: SyntaxNode,\n ctx: TransformContext,\n skipFirst: boolean = false\n): string {\n ctx.indentLevel++\n const children = getChildren(node)\n const indent = \" \".repeat(ctx.indentLevel)\n const members: string[] = []\n\n let filteredChildren = children.filter((c) => c.name !== \":\")\n if (skipFirst && filteredChildren.length > 0) {\n filteredChildren = filteredChildren.slice(1)\n }\n\n for (const child of filteredChildren) {\n if (child.name === \"FunctionDefinition\") {\n members.push(transformClassMethod(child, ctx, null))\n } else if (child.name === \"DecoratedStatement\") {\n members.push(transformClassDecoratedMethod(child, ctx))\n } else if (child.name === \"AssignStatement\") {\n // Class-level assignment (class property)\n const transformed = transformClassProperty(child, ctx, indent)\n if (transformed) {\n members.push(transformed)\n }\n } else if (child.name === \"ExpressionStatement\") {\n // Non-docstring expressions (docstrings at class level are handled by transformClassDefinition)\n // Skip any remaining triple-quoted strings that look like docstrings\n if (!isDocstringNode(child, ctx)) {\n const transformed = transformNode(child, ctx)\n if (transformed.trim()) {\n members.push(indent + transformed + \";\")\n }\n }\n } else if (child.name === \"PassStatement\") {\n // Skip pass in class body\n }\n }\n\n ctx.indentLevel--\n return members.filter((m) => m.trim()).join(\"\\n\\n\")\n}\n\n/**\n * Transform a class property assignment\n * Handles Final (readonly) and ClassVar (static) modifiers\n */\nfunction transformClassProperty(node: SyntaxNode, ctx: TransformContext, indent: string): string {\n const children = getChildren(node)\n if (children.length < 2) return \"\"\n\n // Find the assignment operator\n const assignOpIndex = children.findIndex((c) => c.name === \"AssignOp\" || c.name === \"=\")\n\n // Find type annotation\n const typeDef = children.find((c) => c.name === \"TypeDef\")\n\n // Handle type-only declarations (no assignment): value: T\n if (assignOpIndex === -1) {\n // No assignment, just type annotation\n const targets = children.filter((c) => c.name !== \",\" && c.name !== \"TypeDef\" && c.name !== \":\")\n const target = targets[0]\n if (!target) return \"\"\n\n const targetCode = transformNode(target, ctx)\n const tsType = extractTypeAnnotation(typeDef, ctx)\n const typeAnnotation = tsType ? `: ${tsType}` : \"\"\n\n // Extract type modifiers (Final, ClassVar)\n const modifiers = extractTypeModifiers(typeDef, ctx)\n\n // Build property prefix: static for ClassVar, readonly for Final\n let prefix = \"\"\n if (modifiers.isClassVar) {\n prefix = \"static \"\n }\n if (modifiers.isFinal) {\n prefix += \"readonly \"\n }\n\n return `${indent}${prefix}${targetCode}${typeAnnotation};`\n }\n\n // Handle assignments: value: T = default\n const typeDefBeforeAssign = children.slice(0, assignOpIndex).find((c) => c.name === \"TypeDef\")\n\n // Collect targets (before =) and values (after =)\n const targets = children\n .slice(0, assignOpIndex)\n .filter((c) => c.name !== \",\" && c.name !== \"TypeDef\")\n const values = children.slice(assignOpIndex + 1).filter((c) => c.name !== \",\")\n\n if (targets.length === 0 || values.length === 0) return \"\"\n\n const target = targets[0]\n if (!target) return \"\"\n\n const targetCode = transformNode(target, ctx)\n\n // Extract type annotation if present\n const tsType = extractTypeAnnotation(typeDefBeforeAssign, ctx)\n const typeAnnotation = tsType ? `: ${tsType}` : \"\"\n\n // Extract type modifiers (Final, ClassVar)\n const modifiers = extractTypeModifiers(typeDefBeforeAssign, ctx)\n\n // Build property prefix: static for ClassVar, readonly for Final\n let prefix = \"\"\n if (modifiers.isClassVar) {\n prefix = \"static \"\n }\n if (modifiers.isFinal) {\n prefix += \"readonly \"\n }\n\n // Transform value\n const value = values[0]\n const valueCode = value ? transformNode(value, ctx) : \"\"\n\n return `${indent}${prefix}${targetCode}${typeAnnotation} = ${valueCode};`\n}\n\nfunction transformClassMethod(\n node: SyntaxNode,\n ctx: TransformContext,\n decorator: string | null\n): string {\n const children = getChildren(node)\n const indent = \" \".repeat(ctx.indentLevel)\n\n let methodName = \"\"\n let paramList: SyntaxNode | null = null\n let body: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"VariableName\") {\n methodName = getNodeText(child, ctx.source)\n } else if (child.name === \"ParamList\") {\n paramList = child\n } else if (child.name === \"Body\") {\n body = child\n }\n }\n\n // Extract method docstring and convert to JSDoc\n const { jsdoc, skipFirstStatement } = body\n ? extractDocstringFromBody(body, ctx, indent)\n : { jsdoc: null, skipFirstStatement: false }\n\n // Transform parameters, removing 'self' or 'cls'\n const params = paramList ? transformMethodParamList(paramList, ctx) : \"\"\n\n // Transform body, replacing 'self' with 'this'\n const bodyCode = body ? transformClassMethodBody(body, ctx, skipFirstStatement) : \"\"\n\n // Check if method is a generator (contains yield)\n const isGenerator = body ? containsYield(body) : false\n const generatorStar = isGenerator ? \"*\" : \"\"\n\n // Handle special methods\n if (methodName === \"__init__\") {\n const methodDecl = `${indent}constructor(${params}) {\\n${bodyCode}\\n${indent}}`\n return jsdoc ? `${jsdoc}\\n${methodDecl}` : methodDecl\n }\n\n if (methodName === \"__str__\" || methodName === \"__repr__\") {\n const methodDecl = `${indent}toString() {\\n${bodyCode}\\n${indent}}`\n return jsdoc ? `${jsdoc}\\n${methodDecl}` : methodDecl\n }\n\n // Handle decorators\n let prefix = \"\"\n if (decorator === \"staticmethod\" || decorator === \"classmethod\") {\n prefix = \"static \"\n } else if (decorator === \"property\") {\n prefix = \"get \"\n } else if (decorator === \"setter\") {\n prefix = \"set \"\n } else if (decorator === \"abstractmethod\") {\n // Abstract method: no body, just signature with return type and typed params\n const typedParams = paramList ? transformMethodParamListWithTypes(paramList, ctx) : \"\"\n const returnType = extractMethodReturnType(node, ctx)\n const returnTypeStr = returnType ? `: ${returnType === \"null\" ? \"void\" : returnType}` : \"\"\n const methodDecl = `${indent}abstract ${methodName}(${typedParams})${returnTypeStr}`\n return jsdoc ? `${jsdoc}\\n${methodDecl}` : methodDecl\n }\n\n const methodDecl = `${indent}${prefix}${generatorStar}${methodName}(${params}) {\\n${bodyCode}\\n${indent}}`\n return jsdoc ? `${jsdoc}\\n${methodDecl}` : methodDecl\n}\n\n/**\n * Extract return type from a method's TypeDef (-> ReturnType)\n */\nfunction extractMethodReturnType(node: SyntaxNode, ctx: TransformContext): string | null {\n const children = getChildren(node)\n for (const child of children) {\n if (child.name === \"TypeDef\") {\n return extractTypeAnnotation(child, ctx)\n }\n }\n return null\n}\n\nfunction transformClassDecoratedMethod(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n let decorator: string | null = null\n let funcDef: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"Decorator\") {\n const decChildren = getChildren(child)\n // Check for member expression pattern: @x.setter or @x.deleter\n const varNames = decChildren.filter((c) => c.name === \"VariableName\")\n const hasDot = decChildren.some((c) => c.name === \".\")\n if (varNames.length >= 2 && hasDot) {\n // It's a member expression like @x.setter\n const propName = varNames[varNames.length - 1]\n if (propName) {\n decorator = getNodeText(propName, ctx.source) // \"setter\" or \"deleter\"\n }\n } else {\n // Simple decorator like @property or @staticmethod\n const nameNode = varNames[0]\n if (nameNode) {\n decorator = getNodeText(nameNode, ctx.source)\n }\n }\n } else if (child.name === \"FunctionDefinition\") {\n funcDef = child\n }\n }\n\n if (!funcDef) {\n return getNodeText(node, ctx.source)\n }\n\n return transformClassMethod(funcDef, ctx, decorator)\n}\n\nfunction transformMethodParamList(node: SyntaxNode, ctx: TransformContext): string {\n return transformMethodParamListImpl(node, ctx, false)\n}\n\n/**\n * Transform method parameter list with type annotations (for abstract methods)\n */\nfunction transformMethodParamListWithTypes(node: SyntaxNode, ctx: TransformContext): string {\n return transformMethodParamListImpl(node, ctx, true)\n}\n\nfunction transformMethodParamListImpl(\n node: SyntaxNode,\n ctx: TransformContext,\n includeTypes: boolean\n): string {\n const children = getChildren(node)\n const params: string[] = []\n let i = 0\n let isFirstParam = true\n\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n // Skip parentheses and commas\n if (child.name === \"(\" || child.name === \")\" || child.name === \",\") {\n i++\n continue\n }\n\n // Skip 'self' and 'cls' (first parameter in instance/class methods)\n if (child.name === \"VariableName\" && isFirstParam) {\n const name = getNodeText(child, ctx.source)\n if (name === \"self\" || name === \"cls\") {\n i++\n isFirstParam = false\n continue\n }\n }\n isFirstParam = false\n\n // Check for *args (rest parameter)\n if (child.name === \"*\" || getNodeText(child, ctx.source) === \"*\") {\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"VariableName\") {\n const name = getNodeText(nextChild, ctx.source)\n params.push(`...${name}`)\n i += 2\n continue\n }\n i++\n continue\n }\n\n // Check for **kwargs\n if (child.name === \"**\" || getNodeText(child, ctx.source) === \"**\") {\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"VariableName\") {\n const name = getNodeText(nextChild, ctx.source)\n params.push(name)\n i += 2\n continue\n }\n i++\n continue\n }\n\n // Check for parameter with default value or type annotation\n if (child.name === \"VariableName\") {\n const nameCode = getNodeText(child, ctx.source)\n let typeStr = \"\"\n let defaultStr = \"\"\n let consumed = 1\n\n // Check for type annotation\n const nextChild = children[i + 1]\n if (nextChild?.name === \"TypeDef\" && includeTypes) {\n const t = extractTypeAnnotation(nextChild, ctx)\n if (t) typeStr = `: ${t}`\n consumed++\n\n // Check for default after type\n const afterType = children[i + 2]\n if (afterType?.name === \"AssignOp\") {\n const defaultVal = children[i + 3]\n if (defaultVal) {\n defaultStr = ` = ${transformNode(defaultVal, ctx)}`\n consumed += 2\n }\n }\n } else if (nextChild?.name === \"AssignOp\") {\n const defaultValChild = children[i + 2]\n if (defaultValChild) {\n defaultStr = ` = ${transformNode(defaultValChild, ctx)}`\n consumed += 2\n }\n }\n\n params.push(`${nameCode}${typeStr}${defaultStr}`)\n i += consumed\n continue\n }\n\n i++\n }\n\n return params.join(\", \")\n}\n\nfunction transformClassMethodBody(\n node: SyntaxNode,\n ctx: TransformContext,\n skipFirst: boolean = false\n): string {\n ctx.indentLevel++\n const children = getChildren(node)\n const indent = \" \".repeat(ctx.indentLevel)\n\n let filteredChildren = children.filter((child) => child.name !== \":\")\n if (skipFirst && filteredChildren.length > 0) {\n filteredChildren = filteredChildren.slice(1)\n }\n\n const statements = filteredChildren\n .map((child) => {\n let transformed: string\n\n // Special handling for AssignStatement to avoid \"let\" on self.x assignments\n if (child.name === \"AssignStatement\") {\n transformed = transformClassAssignment(child, ctx)\n } else {\n transformed = transformNode(child, ctx)\n }\n\n // Skip empty transformations (e.g., pass, TypeVar declarations)\n if (transformed === \"\") {\n return \"\"\n }\n\n // Replace self. and cls. with this.\n transformed = transformed.replace(/\\bself\\./g, \"this.\")\n transformed = transformed.replace(/\\bcls\\./g, \"this.\")\n\n // Handle super().__init__(...) -> super(...)\n transformed = transformed.replace(/super\\(\\)\\.__init__\\(/g, \"super(\")\n\n // Handle cls() -> this() for classmethod\n transformed = transformed.replace(/\\bcls\\(\\)/g, \"new this()\")\n\n if (\n child.name === \"ExpressionStatement\" ||\n child.name === \"AssignStatement\" ||\n child.name === \"PassStatement\" ||\n child.name === \"BreakStatement\" ||\n child.name === \"ContinueStatement\" ||\n child.name === \"ReturnStatement\"\n ) {\n return indent + transformed + \";\"\n }\n return indent + transformed\n })\n .filter((s) => s.trim() !== \"\")\n\n ctx.indentLevel--\n return statements.join(\"\\n\")\n}\n\nfunction transformClassAssignment(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n if (children.length < 3) return getNodeText(node, ctx.source)\n\n const assignOpIndex = children.findIndex((c) => c.name === \"AssignOp\" || c.name === \"=\")\n if (assignOpIndex === -1) return getNodeText(node, ctx.source)\n\n const targets = children.slice(0, assignOpIndex).filter((c) => c.name !== \",\")\n const values = children.slice(assignOpIndex + 1).filter((c) => c.name !== \",\")\n\n if (targets.length === 0 || values.length === 0) {\n return getNodeText(node, ctx.source)\n }\n\n if (targets.length === 1) {\n const target = targets[0]\n if (!target) return getNodeText(node, ctx.source)\n\n const targetCode = transformNode(target, ctx)\n\n // Check if target is a member expression (like self.x)\n const isMemberAssignment = target.name === \"MemberExpression\"\n\n if (values.length === 1) {\n const value = values[0]\n if (!value) return getNodeText(node, ctx.source)\n // No \"let\" for member expressions (self.x = y -> this.x = y)\n if (isMemberAssignment) {\n return `${targetCode} = ${transformNode(value, ctx)}`\n }\n return `let ${targetCode} = ${transformNode(value, ctx)}`\n } else {\n const valuesCodes = values.map((v) => transformNode(v, ctx))\n if (isMemberAssignment) {\n return `${targetCode} = [${valuesCodes.join(\", \")}]`\n }\n return `let ${targetCode} = [${valuesCodes.join(\", \")}]`\n }\n }\n\n // Multiple target assignment (destructuring)\n const targetCodes = targets.map((t) => transformAssignTarget(t, ctx))\n const targetPattern = `[${targetCodes.join(\", \")}]`\n\n if (values.length === 1) {\n const value = values[0]\n if (!value) return getNodeText(node, ctx.source)\n return `let ${targetPattern} = ${transformNode(value, ctx)}`\n } else {\n const valuesCodes = values.map((v) => transformNode(v, ctx))\n return `let ${targetPattern} = [${valuesCodes.join(\", \")}]`\n }\n}\n\nfunction transformDecoratedStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Collect decorators and find the function/class definition\n const decorators: { name: string; args: string | null }[] = []\n let funcDef: SyntaxNode | null = null\n let classDef: SyntaxNode | null = null\n\n for (const child of children) {\n if (child.name === \"Decorator\") {\n const decChildren = getChildren(child)\n let decoratorName = \"\"\n let decoratorArgs: string | null = null\n\n // Build decorator name from possibly dotted path: @app.route(\"/api\")\n // AST: At, VariableName(\"app\"), \".\", VariableName(\"route\"), ArgList\n const nameParts: string[] = []\n for (const decChild of decChildren) {\n if (decChild.name === \"VariableName\") {\n nameParts.push(getNodeText(decChild, ctx.source))\n } else if (decChild.name === \"MemberExpression\") {\n // Fallback for nested member expressions\n decoratorName = transformNode(decChild, ctx)\n } else if (decChild.name === \"ArgList\") {\n decoratorArgs = transformArgList(decChild, ctx)\n } else if (decChild.name === \"CallExpression\") {\n // Handle nested call expressions if they occur\n const callChildren = getChildren(decChild)\n for (const callChild of callChildren) {\n if (callChild.name === \"VariableName\") {\n nameParts.push(getNodeText(callChild, ctx.source))\n } else if (callChild.name === \"MemberExpression\") {\n decoratorName = transformNode(callChild, ctx)\n } else if (callChild.name === \"ArgList\") {\n decoratorArgs = transformArgList(callChild, ctx)\n }\n }\n }\n }\n // If we collected name parts, join them with dots\n if (nameParts.length > 0) {\n decoratorName = nameParts.join(\".\")\n }\n\n if (decoratorName) {\n decorators.push({ name: decoratorName, args: decoratorArgs })\n }\n } else if (child.name === \"FunctionDefinition\") {\n funcDef = child\n } else if (child.name === \"ClassDefinition\") {\n classDef = child\n }\n }\n\n // Handle decorated class\n if (classDef) {\n return transformDecoratedClass(classDef, decorators, ctx)\n }\n\n if (!funcDef) {\n return getNodeText(node, ctx.source)\n }\n\n // Get function details\n const funcChildren = getChildren(funcDef)\n let funcName = \"\"\n let paramList: SyntaxNode | null = null\n let body: SyntaxNode | null = null\n\n for (const child of funcChildren) {\n if (child.name === \"VariableName\") {\n funcName = getNodeText(child, ctx.source)\n } else if (child.name === \"ParamList\") {\n paramList = child\n } else if (child.name === \"Body\") {\n body = child\n }\n }\n\n const params = paramList ? transformParamList(paramList, ctx) : \"\"\n\n // Handle @overload: generate only function signature (no body)\n if (decorators.length === 1 && decorators[0]?.name === \"overload\") {\n const returnType = extractMethodReturnType(funcDef, ctx)\n const returnTypeStr = returnType ? `: ${returnType === \"null\" ? \"void\" : returnType}` : \"\"\n return `function ${funcName}(${params})${returnTypeStr}`\n }\n\n const bodyCode = body ? transformBody(body, ctx) : \"\"\n\n // Build the decorated function\n // @decorator def func(): ... -> const func = decorator(function func() { ... })\n // @decorator(args) def func(): ... -> const func = decorator(args)(function func() { ... })\n let funcExpr = `function ${funcName}(${params}) {\\n${bodyCode}\\n}`\n\n // Apply decorators from bottom to top (innermost first)\n for (let i = decorators.length - 1; i >= 0; i--) {\n const dec = decorators[i]\n if (!dec) continue\n\n if (dec.args !== null) {\n funcExpr = `${dec.name}(${dec.args})(${funcExpr})`\n } else {\n funcExpr = `${dec.name}(${funcExpr})`\n }\n }\n\n return `const ${funcName} = ${funcExpr}`\n}\n\n// ============================================================================\n// Class decorator and @dataclass helpers\n// ============================================================================\n\ninterface DataclassField {\n name: string\n tsType: string\n hasDefault: boolean\n defaultValue: string | null\n isFieldFactory: boolean\n}\n\ninterface DataclassOptions {\n frozen: boolean\n}\n\n/**\n * Handle decorated class definitions\n * Routes to either @dataclass special handling or generic class decorator wrapping\n */\nfunction transformDecoratedClass(\n classDef: SyntaxNode,\n decorators: Array<{ name: string; args: string | null }>,\n ctx: TransformContext\n): string {\n // Check for @dataclass decorator\n const dataclassDecorator = decorators.find(\n (d) => d.name === \"dataclass\" || d.name === \"dataclasses.dataclass\"\n )\n\n if (dataclassDecorator) {\n // Filter out the dataclass decorator, apply remaining decorators if any\n const otherDecorators = decorators.filter((d) => d !== dataclassDecorator)\n const dataclassCode = transformDataclass(classDef, dataclassDecorator, ctx)\n\n if (otherDecorators.length === 0) {\n return dataclassCode\n }\n\n // Wrap dataclass with remaining decorators\n const children = getChildren(classDef)\n let className = \"\"\n for (const child of children) {\n if (child.name === \"VariableName\") {\n className = getNodeText(child, ctx.source)\n break\n }\n }\n\n let expr = dataclassCode\n for (let i = otherDecorators.length - 1; i >= 0; i--) {\n const dec = otherDecorators[i]\n if (!dec) continue\n if (dec.args !== null) {\n expr = `${dec.name}(${dec.args})(${expr})`\n } else {\n expr = `${dec.name}(${expr})`\n }\n }\n return `const ${className} = ${expr}`\n }\n\n // Generic class decorator wrapping\n return transformGenericDecoratedClass(classDef, decorators, ctx)\n}\n\n/**\n * Wrap a class with decorators (non-dataclass)\n * @decorator class MyClass: pass -> const MyClass = decorator(class MyClass { })\n */\nfunction transformGenericDecoratedClass(\n classDef: SyntaxNode,\n decorators: Array<{ name: string; args: string | null }>,\n ctx: TransformContext\n): string {\n const children = getChildren(classDef)\n let className = \"\"\n\n for (const child of children) {\n if (child.name === \"VariableName\") {\n className = getNodeText(child, ctx.source)\n ctx.definedClasses.add(className)\n break\n }\n }\n\n // Transform the class definition using existing logic\n let classExpr = transformClassDefinition(classDef, ctx)\n\n // Apply decorators from bottom to top (innermost first)\n for (let i = decorators.length - 1; i >= 0; i--) {\n const dec = decorators[i]\n if (!dec) continue\n\n if (dec.args !== null) {\n classExpr = `${dec.name}(${dec.args})(${classExpr})`\n } else {\n classExpr = `${dec.name}(${classExpr})`\n }\n }\n\n return `const ${className} = ${classExpr}`\n}\n\n/**\n * Parse @dataclass decorator options\n */\nfunction parseDataclassOptions(args: string | null): DataclassOptions {\n const options: DataclassOptions = {\n frozen: false\n }\n\n if (!args) return options\n\n // Parse keyword arguments - args is already transformed\n // e.g., \"frozen: true\" or \"frozen=True\" before transformation\n if (\n args.includes(\"frozen: true\") ||\n args.includes(\"frozen=True\") ||\n args.includes(\"frozen=true\")\n ) {\n options.frozen = true\n }\n\n return options\n}\n\n/**\n * Extract dataclass fields from class body\n * Only considers typed assignments: name: type or name: type = default\n */\nfunction extractDataclassFields(body: SyntaxNode, ctx: TransformContext): DataclassField[] {\n const fields: DataclassField[] = []\n const children = getChildren(body)\n\n for (const child of children) {\n if (child.name === \":\") continue\n\n // Handle typed assignment: name: type = value\n if (child.name === \"AssignStatement\") {\n const field = parseDataclassFieldFromAssignment(child, ctx)\n if (field) fields.push(field)\n }\n // Handle bare type annotation: name: type (ExpressionStatement wrapping TypeAnnotation)\n else if (child.name === \"ExpressionStatement\") {\n const field = parseDataclassFieldFromExpression(child, ctx)\n if (field) fields.push(field)\n }\n }\n\n return fields\n}\n\n/**\n * Parse a field from an assignment statement: name: type = value\n */\nfunction parseDataclassFieldFromAssignment(\n node: SyntaxNode,\n ctx: TransformContext\n): DataclassField | null {\n const children = getChildren(node)\n\n // Look for pattern: VariableName TypeDef AssignOp Value\n let varName: SyntaxNode | null = null\n let typeDef: SyntaxNode | null = null\n let assignOpIndex = -1\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i]\n if (!child) continue\n\n if (child.name === \"VariableName\" && !varName) {\n varName = child\n } else if (child.name === \"TypeDef\") {\n typeDef = child\n } else if (child.name === \"AssignOp\" || child.name === \"=\") {\n assignOpIndex = i\n }\n }\n\n // Must have type annotation to be a dataclass field\n if (!varName || !typeDef) {\n return null\n }\n\n const name = getNodeText(varName, ctx.source)\n const tsType = extractTypeAnnotation(typeDef, ctx) ?? \"unknown\"\n\n let hasDefault = false\n let defaultValue: string | null = null\n let isFieldFactory = false\n\n if (assignOpIndex !== -1) {\n hasDefault = true\n const valueNodes = children.slice(assignOpIndex + 1).filter((c) => c.name !== \",\")\n const firstValue = valueNodes[0]\n\n if (firstValue) {\n // Check for field(default_factory=...) pattern\n if (firstValue.name === \"CallExpression\") {\n const callText = getNodeText(firstValue, ctx.source)\n if (callText.startsWith(\"field(\")) {\n isFieldFactory = true\n defaultValue = parseFieldDefaultFactory(firstValue, ctx)\n } else {\n defaultValue = transformNode(firstValue, ctx)\n }\n } else {\n defaultValue = transformNode(firstValue, ctx)\n }\n }\n }\n\n return { name, tsType, hasDefault, defaultValue, isFieldFactory }\n}\n\n/**\n * Parse a field from an expression statement (bare type annotation): name: type\n */\nfunction parseDataclassFieldFromExpression(\n node: SyntaxNode,\n ctx: TransformContext\n): DataclassField | null {\n const children = getChildren(node)\n\n // Look for VariableName and TypeDef (or a pattern like \"name: type\")\n for (const child of children) {\n // Check if this is an annotated name expression\n if (child.name === \"VariableName\") {\n // Look for TypeDef sibling\n const typeDef = children.find((c) => c.name === \"TypeDef\")\n if (typeDef) {\n const name = getNodeText(child, ctx.source)\n const tsType = extractTypeAnnotation(typeDef, ctx) ?? \"unknown\"\n return { name, tsType, hasDefault: false, defaultValue: null, isFieldFactory: false }\n }\n }\n }\n\n return null\n}\n\n/**\n * Parse field(default_factory=...) to extract the default value\n */\nfunction parseFieldDefaultFactory(callNode: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(callNode, ctx.source)\n\n // Extract the factory from field(default_factory=X)\n const factoryMatch = text.match(/default_factory\\s*=\\s*(\\w+)/)\n if (factoryMatch) {\n const factory = factoryMatch[1]\n if (factory === \"list\") return \"[]\"\n if (factory === \"dict\") return \"{}\"\n if (factory === \"set\") return \"new Set()\"\n // For other factories, return the factory call\n if (factory) return `${factory}()`\n }\n\n // Check for default= pattern\n const defaultMatch = text.match(/default\\s*=\\s*([^,)]+)/)\n if (defaultMatch) {\n return defaultMatch[1]?.trim() ?? \"undefined\"\n }\n\n return \"undefined\"\n}\n\n/**\n * Transform @dataclass decorated class\n */\nfunction transformDataclass(\n classDef: SyntaxNode,\n decorator: { name: string; args: string | null },\n ctx: TransformContext\n): string {\n const children = getChildren(classDef)\n\n let className = \"\"\n let body: SyntaxNode | null = null\n const parentClasses: string[] = []\n\n for (const child of children) {\n if (child.name === \"VariableName\") {\n className = getNodeText(child, ctx.source)\n ctx.definedClasses.add(className)\n } else if (child.name === \"ArgList\") {\n // Inheritance\n const argChildren = getChildren(child)\n const parentNodes = argChildren.filter((c) => c.name === \"VariableName\")\n for (const parentNode of parentNodes) {\n parentClasses.push(getNodeText(parentNode, ctx.source))\n }\n } else if (child.name === \"Body\") {\n body = child\n }\n }\n\n // Extract dataclass options\n const options = parseDataclassOptions(decorator.args)\n\n // Extract fields from body\n const fields = body ? extractDataclassFields(body, ctx) : []\n\n // Extract docstring\n const indent = \" \".repeat(ctx.indentLevel)\n const { jsdoc } = body ? extractDocstringFromBody(body, ctx, indent) : { jsdoc: null }\n\n // Generate class code\n return generateDataclassCode(className, parentClasses, fields, options, body, ctx, jsdoc)\n}\n\n/**\n * Generate TypeScript class code from dataclass fields\n */\nfunction generateDataclassCode(\n className: string,\n parentClasses: string[],\n fields: DataclassField[],\n options: DataclassOptions,\n body: SyntaxNode | null,\n ctx: TransformContext,\n jsdoc: string | null\n): string {\n const memberIndent = \" \"\n const bodyIndent = \" \"\n const members: string[] = []\n\n // 1. Generate field declarations\n for (const field of fields) {\n const readonly = options.frozen ? \"readonly \" : \"\"\n if (field.hasDefault && field.defaultValue !== null && !field.isFieldFactory) {\n members.push(\n `${memberIndent}${readonly}${field.name}: ${field.tsType} = ${field.defaultValue};`\n )\n } else {\n members.push(`${memberIndent}${readonly}${field.name}: ${field.tsType};`)\n }\n }\n\n // 2. Generate constructor\n const constructorParams = fields\n .map((f) => {\n if (f.hasDefault && f.defaultValue !== null) {\n return `${f.name}: ${f.tsType} = ${f.defaultValue}`\n }\n return `${f.name}: ${f.tsType}`\n })\n .join(\", \")\n\n const constructorAssignments = fields\n .map((f) => `${bodyIndent}this.${f.name} = ${f.name};`)\n .join(\"\\n\")\n\n let constructorBody = \"\"\n if (parentClasses.length > 0) {\n constructorBody += `${bodyIndent}super();\\n`\n }\n constructorBody += constructorAssignments\n if (options.frozen) {\n constructorBody += `\\n${bodyIndent}Object.freeze(this);`\n }\n\n members.push(\n `\\n${memberIndent}constructor(${constructorParams}) {\\n${constructorBody}\\n${memberIndent}}`\n )\n\n // 3. Extract and add any methods defined in the class body\n if (body) {\n const methodMembers = extractNonFieldMembers(body, ctx, fields)\n if (methodMembers.length > 0) {\n members.push(...methodMembers)\n }\n }\n\n // Build class header\n let classHeader = `class ${className}`\n const firstParent = parentClasses[0]\n if (firstParent) {\n classHeader += ` extends ${firstParent}`\n }\n\n const classCode = `${classHeader} {\\n${members.join(\"\\n\")}\\n}`\n\n if (jsdoc) {\n return `${jsdoc}\\n${classCode}`\n }\n return classCode\n}\n\n/**\n * Extract non-field members (methods) from dataclass body\n */\nfunction extractNonFieldMembers(\n body: SyntaxNode,\n ctx: TransformContext,\n fields: DataclassField[]\n): string[] {\n const members: string[] = []\n const children = getChildren(body)\n const fieldNames = new Set(fields.map((f) => f.name))\n\n // Track if we've seen the docstring already (it's always first)\n let skipFirst = false\n const firstChild = children.find((c) => c.name !== \":\")\n if (firstChild && isDocstringNode(firstChild, ctx)) {\n skipFirst = true\n }\n\n let isFirst = true\n for (const child of children) {\n if (child.name === \":\") continue\n if (isFirst && skipFirst) {\n isFirst = false\n continue\n }\n isFirst = false\n\n // Skip field declarations (AssignStatement and ExpressionStatement with type annotations)\n if (child.name === \"AssignStatement\" || child.name === \"ExpressionStatement\") {\n // Check if this is a field we already processed\n const childChildren = getChildren(child)\n const varName = childChildren.find((c) => c.name === \"VariableName\")\n if (varName && fieldNames.has(getNodeText(varName, ctx.source))) {\n continue\n }\n // Check for type annotation (indicates it's a field)\n const hasTypeDef = childChildren.some((c) => c.name === \"TypeDef\")\n if (hasTypeDef) {\n continue\n }\n }\n\n // Process methods\n if (child.name === \"FunctionDefinition\") {\n const methodName = getMethodName(child, ctx)\n // Skip __init__ as we generate our own constructor\n if (methodName !== \"__init__\") {\n ctx.indentLevel++\n members.push(\"\\n\" + transformClassMethod(child, ctx, null))\n ctx.indentLevel--\n }\n } else if (child.name === \"DecoratedStatement\") {\n ctx.indentLevel++\n members.push(\"\\n\" + transformClassDecoratedMethod(child, ctx))\n ctx.indentLevel--\n }\n }\n\n return members\n}\n\n/**\n * Get method name from a FunctionDefinition node\n */\nfunction getMethodName(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n for (const child of children) {\n if (child.name === \"VariableName\") {\n return getNodeText(child, ctx.source)\n }\n }\n return \"\"\n}\n\n// ============================================================================\n// NamedTuple Transformation\n// ============================================================================\n\n/**\n * Transform a NamedTuple class to a TypeScript class with readonly fields\n * NamedTuple is essentially a frozen dataclass\n */\nfunction transformNamedTuple(\n className: string,\n body: SyntaxNode | null,\n ctx: TransformContext\n): string {\n // Extract fields (reuse dataclass field extraction)\n const fields = body ? extractDataclassFields(body, ctx) : []\n\n // Generate like frozen dataclass (readonly + Object.freeze)\n return generateDataclassCode(\n className,\n [], // no parent classes in output\n fields,\n { frozen: true }, // always frozen\n body,\n ctx,\n null // jsdoc\n )\n}\n\n// ============================================================================\n// Enum Transformation\n// ============================================================================\n\ninterface EnumMember {\n name: string\n value: string\n isString: boolean\n numericValue: number | null\n}\n\n/**\n * Transform a Python Enum class to TypeScript\n * - String values → type union from values\n * - Sequential numeric values → type union from names\n * - Meaningful numeric values → as const object + union type\n */\nfunction transformEnum(\n className: string,\n enumType: string,\n body: SyntaxNode | null,\n ctx: TransformContext\n): string {\n const members = extractEnumMembers(body, ctx)\n\n if (members.length === 0) {\n return `type ${className} = never`\n }\n\n // Determine output format based on enum type and values\n const allStrings = members.every((m) => m.isString)\n\n // StrEnum or all string values → string union from values\n if (enumType === \"StrEnum\" || allStrings) {\n return generateStringUnionEnum(className, members)\n }\n\n // Check if values are sequential (1, 2, 3...) starting from any number\n const isSequential = checkSequentialEnum(members)\n\n // Sequential values → string union from names (values are meaningless)\n if (isSequential) {\n return generateNameUnionEnum(className, members)\n }\n\n // Meaningful numeric values → as const object + union type\n return generateConstObjectEnum(className, members)\n}\n\n/**\n * Extract enum members from class body\n */\nfunction extractEnumMembers(body: SyntaxNode | null, ctx: TransformContext): EnumMember[] {\n if (!body) return []\n\n const members: EnumMember[] = []\n const children = getChildren(body)\n\n for (const child of children) {\n if (child.name === \"AssignStatement\") {\n const member = parseEnumMember(child, ctx)\n if (member) {\n members.push(member)\n }\n }\n }\n\n return members\n}\n\n/**\n * Parse a single enum member from an assignment statement\n */\nfunction parseEnumMember(node: SyntaxNode, ctx: TransformContext): EnumMember | null {\n const children = getChildren(node)\n let name = \"\"\n let value = \"\"\n let isString = false\n let numericValue: number | null = null\n\n for (const child of children) {\n if (child.name === \"VariableName\" && !name) {\n name = getNodeText(child, ctx.source)\n } else if (child.name === \"Number\") {\n value = getNodeText(child, ctx.source)\n numericValue = parseFloat(value)\n isString = false\n } else if (child.name === \"String\") {\n const rawValue = getNodeText(child, ctx.source)\n // Remove quotes and get the actual string content\n value = rawValue.slice(1, -1)\n isString = true\n } else if (child.name === \"CallExpression\") {\n // Handle auto() - treat as sequential\n const callText = getNodeText(child, ctx.source)\n if (callText === \"auto()\") {\n value = \"auto\"\n numericValue = null\n isString = false\n } else {\n // Complex expression, use as-is\n value = callText\n isString = false\n }\n }\n }\n\n if (!name) return null\n\n return { name, value, isString, numericValue }\n}\n\n/**\n * Check if enum values are sequential (1, 2, 3... or any starting point)\n */\nfunction checkSequentialEnum(members: EnumMember[]): boolean {\n if (members.length === 0) return true\n\n // If any member uses auto(), treat as sequential\n if (members.some((m) => m.value === \"auto\")) return true\n\n // Check if all values are numeric and sequential\n const numericMembers = members.filter((m) => m.numericValue !== null)\n if (numericMembers.length !== members.length) return false\n\n // Check for sequential pattern\n const values = numericMembers.map((m) => m.numericValue as number)\n const firstValue = values[0]\n if (firstValue === undefined) return false\n\n for (let i = 1; i < values.length; i++) {\n if (values[i] !== firstValue + i) return false\n }\n\n return true\n}\n\n/**\n * Generate string union from enum member values\n * type Status = \"pending\" | \"active\"\n */\nfunction generateStringUnionEnum(className: string, members: EnumMember[]): string {\n const values = members.map((m) => `\"${m.value}\"`).join(\" | \")\n return `type ${className} = ${values}`\n}\n\n/**\n * Generate string union from enum member names\n * type Color = \"RED\" | \"GREEN\" | \"BLUE\"\n */\nfunction generateNameUnionEnum(className: string, members: EnumMember[]): string {\n const names = members.map((m) => `\"${m.name}\"`).join(\" | \")\n return `type ${className} = ${names}`\n}\n\n/**\n * Generate as const object with union type\n * const HttpStatus = { OK: 200, NOT_FOUND: 404 } as const\n * type HttpStatus = typeof HttpStatus[keyof typeof HttpStatus]\n */\nfunction generateConstObjectEnum(className: string, members: EnumMember[]): string {\n const entries = members.map((m) => ` ${m.name}: ${m.value}`).join(\",\\n\")\n return `const ${className} = {\\n${entries}\\n} as const\\ntype ${className} = typeof ${className}[keyof typeof ${className}]`\n}\n\n// ============================================================================\n// TypedDict Transformation\n// ============================================================================\n\n/**\n * Check if TypedDict has total=False in parent list\n */\nfunction checkTypedDictTotalFalse(node: SyntaxNode, ctx: TransformContext): boolean {\n const children = getChildren(node)\n for (const child of children) {\n if (child.name === \"ArgList\") {\n const argText = getNodeText(child, ctx.source)\n // Check for total=False or total: False\n if (argText.includes(\"total=False\") || argText.includes(\"total: False\")) {\n return true\n }\n }\n }\n return false\n}\n\n/**\n * Transform a TypedDict class to a TypeScript interface\n */\nfunction transformTypedDict(\n className: string,\n body: SyntaxNode | null,\n totalFalse: boolean,\n ctx: TransformContext\n): string {\n const fields = body ? extractDataclassFields(body, ctx) : []\n const memberIndent = \" \"\n\n const members = fields.map((f) => {\n const optional = totalFalse ? \"?\" : \"\"\n return `${memberIndent}${f.name}${optional}: ${f.tsType}`\n })\n\n if (members.length === 0) {\n return `interface ${className} {}`\n }\n\n return `interface ${className} {\\n${members.join(\"\\n\")}\\n}`\n}\n\n// ============================================================================\n// Abstract Class Transformation\n// ============================================================================\n\n/**\n * Transform an ABC (Abstract Base Class) to a TypeScript abstract class\n */\nfunction transformAbstractClass(\n className: string,\n parentClasses: string[],\n body: SyntaxNode | null,\n ctx: TransformContext,\n jsdoc: string | null\n): string {\n // Filter out ABC from parent classes\n const filteredParents = parentClasses.filter((p) => p !== \"ABC\")\n\n // Build class header\n let classHeader = `abstract class ${className}`\n const firstParent = filteredParents[0]\n if (firstParent) {\n classHeader += ` extends ${firstParent}`\n }\n\n // Transform class body with abstract method support\n ctx.isAbstractClass = true\n const bodyCode = body ? transformClassBody(body, ctx, false) : \"\"\n ctx.isAbstractClass = false\n\n const classDecl = `${classHeader} {\\n${bodyCode}\\n}`\n return jsdoc ? `${jsdoc}\\n${classDecl}` : classDecl\n}\n\n// ============================================================================\n// Protocol Transformation\n// ============================================================================\n\n/**\n * Transform a Protocol class to a TypeScript interface\n */\nfunction transformProtocol(\n className: string,\n parentClasses: string[],\n body: SyntaxNode | null,\n ctx: TransformContext\n): string {\n const memberIndent = \" \"\n const members: string[] = []\n\n // Check for Generic[T] in parent classes\n const genericParams = extractGenericParams(parentClasses)\n const genericStr = genericParams.length > 0 ? `<${genericParams.join(\", \")}>` : \"\"\n\n // Find other parent protocols (excluding Protocol and Generic[...])\n const otherParents = parentClasses.filter((p) => p !== \"Protocol\" && !p.startsWith(\"Generic[\"))\n\n if (body) {\n const children = getChildren(body)\n for (const child of children) {\n if (child.name === \":\") continue\n if (child.name === \"PassStatement\") continue\n\n // Handle method definitions\n if (child.name === \"FunctionDefinition\") {\n const sig = extractProtocolMethodSignature(child, ctx)\n if (sig) {\n members.push(`${memberIndent}${sig}`)\n }\n }\n // Handle typed fields\n else if (child.name === \"ExpressionStatement\" || child.name === \"AssignStatement\") {\n const field =\n parseDataclassFieldFromExpression(child, ctx) ||\n parseDataclassFieldFromAssignment(child, ctx)\n if (field) {\n members.push(`${memberIndent}${field.name}: ${field.tsType}`)\n }\n }\n }\n }\n\n // Build interface header\n let header = `interface ${className}${genericStr}`\n if (otherParents.length > 0) {\n header += ` extends ${otherParents.join(\", \")}`\n }\n\n if (members.length === 0) {\n return `${header} {}`\n }\n\n return `${header} {\\n${members.join(\"\\n\")}\\n}`\n}\n\n/**\n * Extract method signature from a FunctionDefinition for Protocol interface\n */\nfunction extractProtocolMethodSignature(node: SyntaxNode, ctx: TransformContext): string | null {\n const children = getChildren(node)\n let methodName = \"\"\n let params: string[] = []\n let returnType = \"void\"\n\n for (const child of children) {\n if (child.name === \"def\") continue\n\n if (child.name === \"VariableName\" && !methodName) {\n methodName = getNodeText(child, ctx.source)\n } else if (child.name === \"ParamList\") {\n params = extractProtocolParams(child, ctx)\n } else if (child.name === \"TypeDef\") {\n const rt = extractTypeAnnotation(child, ctx)\n if (rt) returnType = rt === \"null\" ? \"void\" : rt\n }\n }\n\n if (!methodName || methodName === \"__init__\") return null\n\n return `${methodName}(${params.join(\", \")}): ${returnType}`\n}\n\n/**\n * Extract parameter list for Protocol method (excluding self)\n */\nfunction extractProtocolParams(node: SyntaxNode, ctx: TransformContext): string[] {\n const children = getChildren(node)\n const params: string[] = []\n\n let i = 0\n while (i < children.length) {\n const child = children[i]\n if (!child || child.name === \"(\" || child.name === \")\" || child.name === \",\") {\n i++\n continue\n }\n\n if (child.name === \"VariableName\") {\n const paramName = getNodeText(child, ctx.source)\n // Skip self/cls\n if (paramName === \"self\" || paramName === \"cls\") {\n i++\n continue\n }\n\n // Check for type annotation\n let paramType = \"unknown\"\n const nextChild = children[i + 1]\n if (nextChild?.name === \"TypeDef\") {\n const t = extractTypeAnnotation(nextChild, ctx)\n if (t) paramType = t\n i++\n }\n\n params.push(`${paramName}: ${paramType}`)\n }\n i++\n }\n\n return params\n}\n\n// ============================================================================\n// Generic Class Transformation\n// ============================================================================\n\n/**\n * Extract generic type parameters from parent classes\n * e.g., [\"Generic[T, V]\"] -> [\"T\", \"V\"]\n */\nfunction extractGenericParams(parentClasses: string[]): string[] {\n for (const parent of parentClasses) {\n if (parent.startsWith(\"Generic[\") && parent.endsWith(\"]\")) {\n // Extract \"T, V\" from \"Generic[T, V]\"\n const inner = parent.slice(8, -1) // Remove \"Generic[\" and \"]\"\n return inner.split(\",\").map((p) => p.trim())\n }\n }\n return []\n}\n\n/**\n * Transform a generic class (class Foo(Generic[T])) to TypeScript\n */\nfunction transformGenericClass(\n className: string,\n genericParams: string[],\n parentClasses: string[],\n body: SyntaxNode | null,\n ctx: TransformContext,\n jsdoc: string | null\n): string {\n // Build generic parameters string\n const genericStr = `<${genericParams.join(\", \")}>`\n\n // Build class header\n let classHeader = `class ${className}${genericStr}`\n\n // Add extends if there are other parent classes\n const firstParent = parentClasses[0]\n if (firstParent) {\n classHeader += ` extends ${firstParent}`\n }\n\n // Transform class body\n const bodyCode = body ? transformClassBody(body, ctx, false) : \"\"\n\n const classDecl = `${classHeader} {\\n${bodyCode}\\n}`\n return jsdoc ? `${jsdoc}\\n${classDecl}` : classDecl\n}\n\nfunction transformParamList(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const params: string[] = []\n let restParam: string | null = null\n let kwargsParam: string | null = null\n let i = 0\n\n while (i < children.length) {\n const child = children[i]\n if (!child) {\n i++\n continue\n }\n\n // Skip parentheses and commas\n if (child.name === \"(\" || child.name === \")\" || child.name === \",\") {\n i++\n continue\n }\n\n // Check for *args (rest parameter)\n if (child.name === \"*\" || getNodeText(child, ctx.source) === \"*\") {\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"VariableName\") {\n const name = getNodeText(nextChild, ctx.source)\n // Check for type annotation after *args\n const typeChild = children[i + 2]\n if (typeChild && typeChild.name === \"TypeDef\") {\n const tsType = extractTypeAnnotation(typeChild, ctx)\n restParam = tsType ? `...${name}: ${tsType}[]` : `...${name}`\n i += 3\n } else {\n restParam = `...${name}`\n i += 2\n }\n continue\n }\n i++\n continue\n }\n\n // Check for **kwargs - store separately to add at the end\n if (child.name === \"**\" || getNodeText(child, ctx.source) === \"**\") {\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"VariableName\") {\n const name = getNodeText(nextChild, ctx.source)\n // Store kwargs separately - it will be handled after rest param\n kwargsParam = name\n i += 2\n continue\n }\n i++\n continue\n }\n\n // Check for parameter: VariableName [TypeDef] [AssignOp Value]\n if (child.name === \"VariableName\") {\n const nameCode = getNodeText(child, ctx.source)\n let typeAnnotation = \"\"\n let offset = 1\n\n // Check for type annotation\n const nextChild = children[i + 1]\n if (nextChild && nextChild.name === \"TypeDef\") {\n const tsType = extractTypeAnnotation(nextChild, ctx)\n if (tsType) {\n typeAnnotation = `: ${tsType}`\n }\n offset = 2\n }\n\n // Check for default value\n const afterType = children[i + offset]\n if (afterType && afterType.name === \"AssignOp\") {\n const defaultValChild = children[i + offset + 1]\n if (defaultValChild) {\n const defaultCode = transformNode(defaultValChild, ctx)\n params.push(`${nameCode}${typeAnnotation} = ${defaultCode}`)\n i += offset + 2\n continue\n }\n }\n\n // Parameter without default\n params.push(`${nameCode}${typeAnnotation}`)\n i += offset\n continue\n }\n\n // Parameter with default value wrapped in a node (legacy handling)\n if (child.name === \"AssignParam\" || child.name === \"DefaultParam\") {\n const paramChildren = getChildren(child)\n const name = paramChildren.find((c) => c.name === \"VariableName\")\n const typeDef = paramChildren.find((c) => c.name === \"TypeDef\")\n const defaultVal = paramChildren[paramChildren.length - 1]\n\n if (name) {\n const nameCode = getNodeText(name, ctx.source)\n const tsType = extractTypeAnnotation(typeDef, ctx)\n const typeAnnotation = tsType ? `: ${tsType}` : \"\"\n\n if (defaultVal && name !== defaultVal && defaultVal.name !== \"TypeDef\") {\n const defaultCode = transformNode(defaultVal, ctx)\n params.push(`${nameCode}${typeAnnotation} = ${defaultCode}`)\n } else {\n params.push(`${nameCode}${typeAnnotation}`)\n }\n }\n i++\n continue\n }\n\n i++\n }\n\n // Add kwargs parameter before rest param if no rest param exists\n // If both exist, kwargs is not supported (rest param must be last in JS)\n if (kwargsParam && !restParam) {\n const kwargsType = \": Record<string, unknown>\"\n params.push(`${kwargsParam}${kwargsType} = {}`)\n }\n\n // Add rest parameter last (must be last in JS)\n if (restParam) {\n params.push(restParam)\n }\n\n return params.join(\", \")\n}\n\nfunction transformComment(node: SyntaxNode, ctx: TransformContext): string {\n const text = getNodeText(node, ctx.source)\n // Convert Python comment to JS comment\n return \"//\" + text.slice(1)\n}\n\nfunction transformLambdaExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Lambda format: lambda params: body\n // Find the ParamList (or individual params) and the body expression\n let params = \"\"\n let body: SyntaxNode | null = null\n\n // Skip 'lambda' keyword and ':' to find params and body\n let foundLambda = false\n let foundColon = false\n const paramNodes: SyntaxNode[] = []\n\n for (const child of children) {\n const text = getNodeText(child, ctx.source)\n\n if (child.name === \"lambda\" || (child.name === \"Keyword\" && text === \"lambda\")) {\n foundLambda = true\n continue\n }\n\n if (child.name === \":\") {\n foundColon = true\n continue\n }\n\n if (foundLambda && !foundColon) {\n // This is a parameter\n if (child.name === \"ParamList\") {\n params = transformParamList(child, ctx)\n } else if (child.name === \"VariableName\") {\n paramNodes.push(child)\n } else if (child.name !== \",\") {\n paramNodes.push(child)\n }\n } else if (foundColon) {\n // This is the body\n body = child\n break\n }\n }\n\n // If we collected individual param nodes, join them\n if (!params && paramNodes.length > 0) {\n params = paramNodes.map((p) => getNodeText(p, ctx.source)).join(\", \")\n }\n\n const bodyCode = body ? transformNode(body, ctx) : \"\"\n\n // TypeScript arrow function: (params) => body\n if (params) {\n return `(${params}) => ${bodyCode}`\n }\n return `() => ${bodyCode}`\n}\n\n// ============================================================\n// Comprehensions\n// ============================================================\n\ninterface ComprehensionClause {\n type: \"for\" | \"if\"\n variable?: string\n iterable?: string\n condition?: string\n}\n\nfunction parseComprehensionClauses(\n children: SyntaxNode[],\n ctx: TransformContext\n): {\n outputExpr: string\n clauses: ComprehensionClause[]\n} {\n // Skip brackets\n const items = children.filter(\n (c) => c.name !== \"[\" && c.name !== \"]\" && c.name !== \"{\" && c.name !== \"}\"\n )\n\n if (items.length === 0) {\n return { outputExpr: \"\", clauses: [] }\n }\n\n // First item is the output expression\n const outputNode = items[0]\n if (!outputNode) {\n return { outputExpr: \"\", clauses: [] }\n }\n const outputExpr = transformNode(outputNode, ctx)\n\n const clauses: ComprehensionClause[] = []\n let i = 1\n\n while (i < items.length) {\n const item = items[i]\n if (!item) {\n i++\n continue\n }\n\n if (\n item.name === \"for\" ||\n (item.name === \"Keyword\" && getNodeText(item, ctx.source) === \"for\")\n ) {\n // for variable in iterable\n const varNode = items[i + 1]\n // Skip 'in' keyword\n const iterableNode = items[i + 3]\n\n if (varNode && iterableNode) {\n clauses.push({\n type: \"for\",\n variable: transformNode(varNode, ctx),\n iterable: transformNode(iterableNode, ctx)\n })\n i += 4\n } else {\n i++\n }\n } else if (\n item.name === \"if\" ||\n (item.name === \"Keyword\" && getNodeText(item, ctx.source) === \"if\")\n ) {\n // if condition\n const conditionNode = items[i + 1]\n if (conditionNode) {\n clauses.push({\n type: \"if\",\n condition: transformNode(conditionNode, ctx)\n })\n i += 2\n } else {\n i++\n }\n } else if (\n item.name === \"in\" ||\n (item.name === \"Keyword\" && getNodeText(item, ctx.source) === \"in\")\n ) {\n // Skip 'in' keyword (already handled in 'for' case)\n i++\n } else {\n i++\n }\n }\n\n return { outputExpr, clauses }\n}\n\nfunction transformArrayComprehension(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const { outputExpr, clauses } = parseComprehensionClauses(children, ctx)\n\n if (clauses.length === 0) {\n return `[${outputExpr}]`\n }\n\n // Build the comprehension from inside out\n // [expr for x in items if cond] -> items.filter(x => cond).map(x => expr)\n // [expr for x in a for y in b] -> a.flatMap(x => b.map(y => expr))\n\n return buildComprehensionChain(outputExpr, clauses, \"array\")\n}\n\nfunction transformDictComprehension(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n\n // Dict comprehension has key: value as output\n // Find the colon to split key and value\n const items = children.filter((c) => c.name !== \"{\" && c.name !== \"}\")\n\n let keyExpr = \"\"\n let valueExpr = \"\"\n let colonIndex = -1\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n if (item?.name === \":\") {\n colonIndex = i\n break\n }\n }\n\n const keyNode = items[0]\n const valueNode = items[colonIndex + 1]\n if (colonIndex > 0 && keyNode && valueNode) {\n keyExpr = transformNode(keyNode, ctx)\n valueExpr = transformNode(valueNode, ctx)\n }\n\n // Parse clauses starting after key: value\n const clauseItems = items.slice(colonIndex + 2)\n const clauses: ComprehensionClause[] = []\n let i = 0\n\n while (i < clauseItems.length) {\n const item = clauseItems[i]\n if (!item) {\n i++\n continue\n }\n\n if (\n item.name === \"for\" ||\n (item.name === \"Keyword\" && getNodeText(item, ctx.source) === \"for\")\n ) {\n const varNode = clauseItems[i + 1]\n const iterableNode = clauseItems[i + 3]\n\n if (varNode && iterableNode) {\n clauses.push({\n type: \"for\",\n variable: transformNode(varNode, ctx),\n iterable: transformNode(iterableNode, ctx)\n })\n i += 4\n } else {\n i++\n }\n } else if (\n item.name === \"if\" ||\n (item.name === \"Keyword\" && getNodeText(item, ctx.source) === \"if\")\n ) {\n const conditionNode = clauseItems[i + 1]\n if (conditionNode) {\n clauses.push({\n type: \"if\",\n condition: transformNode(conditionNode, ctx)\n })\n i += 2\n } else {\n i++\n }\n } else {\n i++\n }\n }\n\n ctx.usesRuntime.add(\"dict\")\n return buildDictComprehensionChain(keyExpr, valueExpr, clauses)\n}\n\nfunction transformSetExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const elements = children.filter((c) => c.name !== \"{\" && c.name !== \"}\" && c.name !== \",\")\n\n ctx.usesRuntime.add(\"set\")\n const elementCodes = elements.map((el) => transformNode(el, ctx))\n return `set([${elementCodes.join(\", \")}])`\n}\n\nfunction transformSetComprehension(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const { outputExpr, clauses } = parseComprehensionClauses(children, ctx)\n\n if (clauses.length === 0) {\n ctx.usesRuntime.add(\"set\")\n return `set([${outputExpr}])`\n }\n\n ctx.usesRuntime.add(\"set\")\n const arrayComp = buildComprehensionChain(outputExpr, clauses, \"array\")\n return `set(${arrayComp})`\n}\n\nfunction transformGeneratorExpression(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n // Filter out parentheses\n const items = children.filter((c) => c.name !== \"(\" && c.name !== \")\")\n const { outputExpr, clauses } = parseComprehensionClauses(items, ctx)\n\n if (clauses.length === 0) {\n return outputExpr\n }\n\n // Build generator function: (function*() { for (const x of items) if (cond) yield expr })()\n return buildGeneratorChain(outputExpr, clauses)\n}\n\nfunction buildGeneratorChain(outputExpr: string, clauses: ComprehensionClause[]): string {\n // Separate for-clauses and their associated if-clauses\n const forClauses: { variable: string; iterable: string; conditions: string[] }[] = []\n\n for (const clause of clauses) {\n if (clause.type === \"for\" && clause.variable && clause.iterable) {\n forClauses.push({\n variable: clause.variable,\n iterable: clause.iterable,\n conditions: []\n })\n } else if (clause.type === \"if\" && clause.condition && forClauses.length > 0) {\n const lastFor = forClauses[forClauses.length - 1]\n if (lastFor) {\n lastFor.conditions.push(clause.condition)\n }\n }\n }\n\n if (forClauses.length === 0) {\n return `(function*() { yield ${outputExpr}; })()`\n }\n\n // Build nested for loops with conditions\n // (function*() { for (const x of items) if (cond) yield expr })()\n let body = \"\"\n let indent = \"\"\n const indentStep = \" \"\n\n // Open for loops\n for (const fc of forClauses) {\n body += `${indent}for (const ${fc.variable} of ${fc.iterable}) `\n\n if (fc.conditions.length > 0) {\n const combinedCond = fc.conditions.join(\" && \")\n body += `if (${combinedCond}) `\n }\n\n indent += indentStep\n }\n\n // Add yield\n body += `yield ${outputExpr};`\n\n return `(function*() { ${body} })()`\n}\n\n/**\n * Wrap iterables that don't have array methods (like py.range()) with spread syntax\n * to convert them to arrays that have .map(), .filter(), .flatMap()\n */\nfunction wrapIterableIfNeeded(iterable: string): string {\n // Check if iterable is py.range(), py.enumerate(), py.zip(), py.reversed(), py.filter(), py.map()\n // These return Iterables, not Arrays\n if (\n iterable.startsWith(\"range(\") ||\n iterable.startsWith(\"enumerate(\") ||\n iterable.startsWith(\"zip(\") ||\n iterable.startsWith(\"reversed(\") ||\n iterable.startsWith(\"filter(\") ||\n iterable.startsWith(\"map(\")\n ) {\n return `[...${iterable}]`\n }\n return iterable\n}\n\nfunction buildComprehensionChain(\n outputExpr: string,\n clauses: ComprehensionClause[],\n type: \"array\" | \"generator\"\n): string {\n if (clauses.length === 0) {\n return type === \"array\" ? `[${outputExpr}]` : outputExpr\n }\n\n // Separate for-clauses and their associated if-clauses\n const forClauses: { variable: string; iterable: string; conditions: string[] }[] = []\n\n for (const clause of clauses) {\n if (clause.type === \"for\" && clause.variable && clause.iterable) {\n forClauses.push({\n variable: clause.variable,\n iterable: clause.iterable,\n conditions: []\n })\n } else if (clause.type === \"if\" && clause.condition && forClauses.length > 0) {\n const lastFor = forClauses[forClauses.length - 1]\n if (lastFor) {\n lastFor.conditions.push(clause.condition)\n }\n }\n }\n\n if (forClauses.length === 0) {\n return type === \"array\" ? `[${outputExpr}]` : outputExpr\n }\n\n // Build chain from innermost to outermost\n // Single for: items.filter(...).map(...)\n // Multiple for: a.flatMap(x => b.filter(...).map(...))\n\n if (forClauses.length === 1) {\n const fc = forClauses[0]\n if (!fc) return `[${outputExpr}]`\n\n // Wrap iterables that are not arrays (like py.range()) with spread syntax\n let chain = wrapIterableIfNeeded(fc.iterable)\n\n // Add filters\n for (const cond of fc.conditions) {\n chain = `${chain}.filter((${fc.variable}) => ${cond})`\n }\n\n // Add map\n chain = `${chain}.map((${fc.variable}) => ${outputExpr})`\n\n return chain\n }\n\n // Multiple for-clauses: use flatMap\n // Build from outside in\n let result = \"\"\n\n for (let i = 0; i < forClauses.length; i++) {\n const fc = forClauses[i]\n if (!fc) continue\n\n const isLast = i === forClauses.length - 1\n\n // Wrap iterables that are not arrays (like py.range()) with spread syntax\n let inner = wrapIterableIfNeeded(fc.iterable)\n\n // Add filters\n for (const cond of fc.conditions) {\n inner = `${inner}.filter((${fc.variable}) => ${cond})`\n }\n\n if (isLast) {\n // Innermost: use map\n inner = `${inner}.map((${fc.variable}) => ${outputExpr})`\n } else {\n // Not innermost: will wrap next level\n result = inner\n continue\n }\n\n // Now wrap from inside out\n for (let j = forClauses.length - 2; j >= 0; j--) {\n const outerFc = forClauses[j]\n if (!outerFc) continue\n\n // Wrap iterables that are not arrays (like py.range()) with spread syntax\n let outerChain = wrapIterableIfNeeded(outerFc.iterable)\n for (const cond of outerFc.conditions) {\n outerChain = `${outerChain}.filter((${outerFc.variable}) => ${cond})`\n }\n\n inner = `${outerChain}.flatMap((${outerFc.variable}) => ${inner})`\n }\n\n result = inner\n break\n }\n\n return result\n}\n\nfunction buildDictComprehensionChain(\n keyExpr: string,\n valueExpr: string,\n clauses: ComprehensionClause[]\n): string {\n if (clauses.length === 0) {\n return `dict([[${keyExpr}, ${valueExpr}]])`\n }\n\n // Build array of [key, value] pairs, then wrap with py.dict\n const forClauses: { variable: string; iterable: string; conditions: string[] }[] = []\n\n for (const clause of clauses) {\n if (clause.type === \"for\" && clause.variable && clause.iterable) {\n forClauses.push({\n variable: clause.variable,\n iterable: clause.iterable,\n conditions: []\n })\n } else if (clause.type === \"if\" && clause.condition && forClauses.length > 0) {\n const lastFor = forClauses[forClauses.length - 1]\n if (lastFor) {\n lastFor.conditions.push(clause.condition)\n }\n }\n }\n\n if (forClauses.length === 0) {\n return `dict([[${keyExpr}, ${valueExpr}]])`\n }\n\n const pairExpr = `[${keyExpr}, ${valueExpr}]`\n const arrayComp = buildComprehensionChain(pairExpr, clauses, \"array\")\n\n return `dict(${arrayComp})`\n}\n\n// ============================================================\n// Scope Statements (global, nonlocal)\n// ============================================================\n\nfunction transformScopeStatement(node: SyntaxNode, ctx: TransformContext): string {\n // global and nonlocal don't have direct JS equivalents\n // JS has different scoping rules - these are converted to comments\n const children = getChildren(node)\n const keyword = children.find((c) => c.name === \"global\" || c.name === \"nonlocal\")\n const keywordText = keyword ? getNodeText(keyword, ctx.source) : \"scope\"\n const vars = children\n .filter((c) => c.name === \"VariableName\")\n .map((c) => getNodeText(c, ctx.source))\n\n return `/* ${keywordText} ${vars.join(\", \")} */`\n}\n\n// ============================================================\n// Delete Statement\n// ============================================================\n\nfunction transformDeleteStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const targets = children.filter((c) => c.name !== \"del\" && c.name !== \",\")\n\n const deletions = targets.map((target) => {\n if (target.name === \"MemberExpression\") {\n // del obj[key] or del obj.attr\n const memberChildren = getChildren(target)\n const obj = memberChildren[0]\n const bracket = memberChildren.find((c) => c.name === \"[\")\n\n if (bracket) {\n // del arr[index] - use splice for numeric index, delete for string key\n const objCode = obj ? transformNode(obj, ctx) : \"\"\n const indexNode = memberChildren.find((c) => c.name !== \"[\" && c.name !== \"]\" && c !== obj)\n const indexCode = indexNode ? transformNode(indexNode, ctx) : \"0\"\n\n // Check if index is a simple number\n if (indexNode?.name === \"Number\") {\n return `${objCode}.splice(${indexCode}, 1)`\n }\n // For other cases, use delete\n return `delete ${objCode}[${indexCode}]`\n } else {\n // del obj.attr\n return `delete ${transformNode(target, ctx)}`\n }\n } else if (target.name === \"VariableName\") {\n // del variable - not really possible in JS strict mode\n // Convert to setting undefined\n const varName = getNodeText(target, ctx.source)\n return `${varName} = undefined`\n }\n return `delete ${transformNode(target, ctx)}`\n })\n\n return deletions.join(\";\\n\")\n}\n\n// ============================================================\n// Assert Statement\n// ============================================================\n\nfunction transformAssertStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n // Find the condition (first expression after 'assert')\n const expressions = children.filter((c) => c.name !== \"assert\" && c.name !== \",\")\n\n const condition = expressions[0]\n const message = expressions[1]\n\n const conditionCode = condition ? transformNode(condition, ctx) : \"true\"\n const messageCode = message ? transformNode(message, ctx) : '\"Assertion failed\"'\n\n return `if (!(${conditionCode})) throw new Error(${messageCode})`\n}\n\n// ============================================================\n// Yield Statement (including yield from)\n// ============================================================\n\nfunction transformYieldStatement(node: SyntaxNode, ctx: TransformContext): string {\n const children = getChildren(node)\n const hasFrom = children.some((c) => c.name === \"from\")\n const valueNode = children.find((c) => c.name !== \"yield\" && c.name !== \"from\")\n\n if (hasFrom && valueNode) {\n // yield from expr -> yield* expr\n return `yield* ${transformNode(valueNode, ctx)}`\n } else if (valueNode) {\n // yield expr\n return `yield ${transformNode(valueNode, ctx)}`\n }\n return \"yield\"\n}\n\nexport { transformNode, createContext }\n","import { createRequire as __prettierCreateRequire } from \"module\";\nimport { fileURLToPath as __prettierFileUrlToPath } from \"url\";\nimport { dirname as __prettierDirname } from \"path\";\nconst require = __prettierCreateRequire(import.meta.url);\nconst __filename = __prettierFileUrlToPath(import.meta.url);\nconst __dirname = __prettierDirname(__filename);\n\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\n\n// node_modules/fast-glob/out/utils/array.js\nvar require_array = __commonJS({\n \"node_modules/fast-glob/out/utils/array.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.splitWhen = exports.flatten = void 0;\n function flatten(items) {\n return items.reduce((collection, item) => [].concat(collection, item), []);\n }\n exports.flatten = flatten;\n function splitWhen(items, predicate) {\n const result = [[]];\n let groupIndex = 0;\n for (const item of items) {\n if (predicate(item)) {\n groupIndex++;\n result[groupIndex] = [];\n } else {\n result[groupIndex].push(item);\n }\n }\n return result;\n }\n exports.splitWhen = splitWhen;\n }\n});\n\n// node_modules/fast-glob/out/utils/errno.js\nvar require_errno = __commonJS({\n \"node_modules/fast-glob/out/utils/errno.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isEnoentCodeError = void 0;\n function isEnoentCodeError(error) {\n return error.code === \"ENOENT\";\n }\n exports.isEnoentCodeError = isEnoentCodeError;\n }\n});\n\n// node_modules/fast-glob/out/utils/fs.js\nvar require_fs = __commonJS({\n \"node_modules/fast-glob/out/utils/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createDirentFromStats = void 0;\n var DirentFromStats = class {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n };\n function createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n }\n exports.createDirentFromStats = createDirentFromStats;\n }\n});\n\n// node_modules/fast-glob/out/utils/path.js\nvar require_path = __commonJS({\n \"node_modules/fast-glob/out/utils/path.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.convertPosixPathToPattern = exports.convertWindowsPathToPattern = exports.convertPathToPattern = exports.escapePosixPath = exports.escapeWindowsPath = exports.escape = exports.removeLeadingDotSegment = exports.makeAbsolute = exports.unixify = void 0;\n var os = __require(\"os\");\n var path15 = __require(\"path\");\n var IS_WINDOWS_PLATFORM = os.platform() === \"win32\";\n var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;\n var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()*?[\\]{|}]|^!|[!+@](?=\\()|\\\\(?![!()*+?@[\\]{|}]))/g;\n var WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\\\?)([()[\\]{}]|^!|[!+@](?=\\())/g;\n var DOS_DEVICE_PATH_RE = /^\\\\\\\\([.?])/;\n var WINDOWS_BACKSLASHES_RE = /\\\\(?![!()+@[\\]{}])/g;\n function unixify(filepath) {\n return filepath.replace(/\\\\/g, \"/\");\n }\n exports.unixify = unixify;\n function makeAbsolute(cwd, filepath) {\n return path15.resolve(cwd, filepath);\n }\n exports.makeAbsolute = makeAbsolute;\n function removeLeadingDotSegment(entry) {\n if (entry.charAt(0) === \".\") {\n const secondCharactery = entry.charAt(1);\n if (secondCharactery === \"/\" || secondCharactery === \"\\\\\") {\n return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);\n }\n }\n return entry;\n }\n exports.removeLeadingDotSegment = removeLeadingDotSegment;\n exports.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;\n function escapeWindowsPath(pattern) {\n return pattern.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, \"\\\\$2\");\n }\n exports.escapeWindowsPath = escapeWindowsPath;\n function escapePosixPath(pattern) {\n return pattern.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, \"\\\\$2\");\n }\n exports.escapePosixPath = escapePosixPath;\n exports.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;\n function convertWindowsPathToPattern(filepath) {\n return escapeWindowsPath(filepath).replace(DOS_DEVICE_PATH_RE, \"//$1\").replace(WINDOWS_BACKSLASHES_RE, \"/\");\n }\n exports.convertWindowsPathToPattern = convertWindowsPathToPattern;\n function convertPosixPathToPattern(filepath) {\n return escapePosixPath(filepath);\n }\n exports.convertPosixPathToPattern = convertPosixPathToPattern;\n }\n});\n\n// node_modules/is-extglob/index.js\nvar require_is_extglob = __commonJS({\n \"node_modules/is-extglob/index.js\"(exports, module) {\n module.exports = function isExtglob(str) {\n if (typeof str !== \"string\" || str === \"\") {\n return false;\n }\n var match;\n while (match = /(\\\\).|([@?!+*]\\(.*\\))/g.exec(str)) {\n if (match[2]) return true;\n str = str.slice(match.index + match[0].length);\n }\n return false;\n };\n }\n});\n\n// node_modules/is-glob/index.js\nvar require_is_glob = __commonJS({\n \"node_modules/is-glob/index.js\"(exports, module) {\n var isExtglob = require_is_extglob();\n var chars = { \"{\": \"}\", \"(\": \")\", \"[\": \"]\" };\n var strictCheck = function(str) {\n if (str[0] === \"!\") {\n return true;\n }\n var index = 0;\n var pipeIndex = -2;\n var closeSquareIndex = -2;\n var closeCurlyIndex = -2;\n var closeParenIndex = -2;\n var backSlashIndex = -2;\n while (index < str.length) {\n if (str[index] === \"*\") {\n return true;\n }\n if (str[index + 1] === \"?\" && /[\\].+)]/.test(str[index])) {\n return true;\n }\n if (closeSquareIndex !== -1 && str[index] === \"[\" && str[index + 1] !== \"]\") {\n if (closeSquareIndex < index) {\n closeSquareIndex = str.indexOf(\"]\", index);\n }\n if (closeSquareIndex > index) {\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n backSlashIndex = str.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {\n return true;\n }\n }\n }\n if (closeCurlyIndex !== -1 && str[index] === \"{\" && str[index + 1] !== \"}\") {\n closeCurlyIndex = str.indexOf(\"}\", index);\n if (closeCurlyIndex > index) {\n backSlashIndex = str.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {\n return true;\n }\n }\n }\n if (closeParenIndex !== -1 && str[index] === \"(\" && str[index + 1] === \"?\" && /[:!=]/.test(str[index + 2]) && str[index + 3] !== \")\") {\n closeParenIndex = str.indexOf(\")\", index);\n if (closeParenIndex > index) {\n backSlashIndex = str.indexOf(\"\\\\\", index);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n if (pipeIndex !== -1 && str[index] === \"(\" && str[index + 1] !== \"|\") {\n if (pipeIndex < index) {\n pipeIndex = str.indexOf(\"|\", index);\n }\n if (pipeIndex !== -1 && str[pipeIndex + 1] !== \")\") {\n closeParenIndex = str.indexOf(\")\", pipeIndex);\n if (closeParenIndex > pipeIndex) {\n backSlashIndex = str.indexOf(\"\\\\\", pipeIndex);\n if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {\n return true;\n }\n }\n }\n }\n if (str[index] === \"\\\\\") {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n if (str[index] === \"!\") {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n };\n var relaxedCheck = function(str) {\n if (str[0] === \"!\") {\n return true;\n }\n var index = 0;\n while (index < str.length) {\n if (/[*?{}()[\\]]/.test(str[index])) {\n return true;\n }\n if (str[index] === \"\\\\\") {\n var open = str[index + 1];\n index += 2;\n var close = chars[open];\n if (close) {\n var n = str.indexOf(close, index);\n if (n !== -1) {\n index = n + 1;\n }\n }\n if (str[index] === \"!\") {\n return true;\n }\n } else {\n index++;\n }\n }\n return false;\n };\n module.exports = function isGlob(str, options8) {\n if (typeof str !== \"string\" || str === \"\") {\n return false;\n }\n if (isExtglob(str)) {\n return true;\n }\n var check2 = strictCheck;\n if (options8 && options8.strict === false) {\n check2 = relaxedCheck;\n }\n return check2(str);\n };\n }\n});\n\n// node_modules/fast-glob/node_modules/glob-parent/index.js\nvar require_glob_parent = __commonJS({\n \"node_modules/fast-glob/node_modules/glob-parent/index.js\"(exports, module) {\n \"use strict\";\n var isGlob = require_is_glob();\n var pathPosixDirname = __require(\"path\").posix.dirname;\n var isWin32 = __require(\"os\").platform() === \"win32\";\n var slash2 = \"/\";\n var backslash = /\\\\/g;\n var enclosure = /[\\{\\[].*[\\}\\]]$/;\n var globby = /(^|[^\\\\])([\\{\\[]|\\([^\\)]+$)/;\n var escaped = /\\\\([\\!\\*\\?\\|\\[\\]\\(\\)\\{\\}])/g;\n module.exports = function globParent(str, opts) {\n var options8 = Object.assign({ flipBackslashes: true }, opts);\n if (options8.flipBackslashes && isWin32 && str.indexOf(slash2) < 0) {\n str = str.replace(backslash, slash2);\n }\n if (enclosure.test(str)) {\n str += slash2;\n }\n str += \"a\";\n do {\n str = pathPosixDirname(str);\n } while (isGlob(str) || globby.test(str));\n return str.replace(escaped, \"$1\");\n };\n }\n});\n\n// node_modules/braces/lib/utils.js\nvar require_utils = __commonJS({\n \"node_modules/braces/lib/utils.js\"(exports) {\n \"use strict\";\n exports.isInteger = (num) => {\n if (typeof num === \"number\") {\n return Number.isInteger(num);\n }\n if (typeof num === \"string\" && num.trim() !== \"\") {\n return Number.isInteger(Number(num));\n }\n return false;\n };\n exports.find = (node, type) => node.nodes.find((node2) => node2.type === type);\n exports.exceedsLimit = (min, max, step = 1, limit) => {\n if (limit === false) return false;\n if (!exports.isInteger(min) || !exports.isInteger(max)) return false;\n return (Number(max) - Number(min)) / Number(step) >= limit;\n };\n exports.escapeNode = (block, n = 0, type) => {\n const node = block.nodes[n];\n if (!node) return;\n if (type && node.type === type || node.type === \"open\" || node.type === \"close\") {\n if (node.escaped !== true) {\n node.value = \"\\\\\" + node.value;\n node.escaped = true;\n }\n }\n };\n exports.encloseBrace = (node) => {\n if (node.type !== \"brace\") return false;\n if (node.commas >> 0 + node.ranges >> 0 === 0) {\n node.invalid = true;\n return true;\n }\n return false;\n };\n exports.isInvalidBrace = (block) => {\n if (block.type !== \"brace\") return false;\n if (block.invalid === true || block.dollar) return true;\n if (block.commas >> 0 + block.ranges >> 0 === 0) {\n block.invalid = true;\n return true;\n }\n if (block.open !== true || block.close !== true) {\n block.invalid = true;\n return true;\n }\n return false;\n };\n exports.isOpenOrClose = (node) => {\n if (node.type === \"open\" || node.type === \"close\") {\n return true;\n }\n return node.open === true || node.close === true;\n };\n exports.reduce = (nodes) => nodes.reduce((acc, node) => {\n if (node.type === \"text\") acc.push(node.value);\n if (node.type === \"range\") node.type = \"text\";\n return acc;\n }, []);\n exports.flatten = (...args) => {\n const result = [];\n const flat = (arr) => {\n for (let i = 0; i < arr.length; i++) {\n const ele = arr[i];\n if (Array.isArray(ele)) {\n flat(ele);\n continue;\n }\n if (ele !== void 0) {\n result.push(ele);\n }\n }\n return result;\n };\n flat(args);\n return result;\n };\n }\n});\n\n// node_modules/braces/lib/stringify.js\nvar require_stringify = __commonJS({\n \"node_modules/braces/lib/stringify.js\"(exports, module) {\n \"use strict\";\n var utils = require_utils();\n module.exports = (ast, options8 = {}) => {\n const stringify2 = (node, parent = {}) => {\n const invalidBlock = options8.escapeInvalid && utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options8.escapeInvalid === true;\n let output = \"\";\n if (node.value) {\n if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) {\n return \"\\\\\" + node.value;\n }\n return node.value;\n }\n if (node.value) {\n return node.value;\n }\n if (node.nodes) {\n for (const child of node.nodes) {\n output += stringify2(child);\n }\n }\n return output;\n };\n return stringify2(ast);\n };\n }\n});\n\n// node_modules/is-number/index.js\nvar require_is_number = __commonJS({\n \"node_modules/is-number/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(num) {\n if (typeof num === \"number\") {\n return num - num === 0;\n }\n if (typeof num === \"string\" && num.trim() !== \"\") {\n return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);\n }\n return false;\n };\n }\n});\n\n// node_modules/to-regex-range/index.js\nvar require_to_regex_range = __commonJS({\n \"node_modules/to-regex-range/index.js\"(exports, module) {\n \"use strict\";\n var isNumber = require_is_number();\n var toRegexRange = (min, max, options8) => {\n if (isNumber(min) === false) {\n throw new TypeError(\"toRegexRange: expected the first argument to be a number\");\n }\n if (max === void 0 || min === max) {\n return String(min);\n }\n if (isNumber(max) === false) {\n throw new TypeError(\"toRegexRange: expected the second argument to be a number.\");\n }\n let opts = { relaxZeros: true, ...options8 };\n if (typeof opts.strictZeros === \"boolean\") {\n opts.relaxZeros = opts.strictZeros === false;\n }\n let relax = String(opts.relaxZeros);\n let shorthand = String(opts.shorthand);\n let capture = String(opts.capture);\n let wrap = String(opts.wrap);\n let cacheKey = min + \":\" + max + \"=\" + relax + shorthand + capture + wrap;\n if (toRegexRange.cache.hasOwnProperty(cacheKey)) {\n return toRegexRange.cache[cacheKey].result;\n }\n let a = Math.min(min, max);\n let b = Math.max(min, max);\n if (Math.abs(a - b) === 1) {\n let result = min + \"|\" + max;\n if (opts.capture) {\n return `(${result})`;\n }\n if (opts.wrap === false) {\n return result;\n }\n return `(?:${result})`;\n }\n let isPadded = hasPadding(min) || hasPadding(max);\n let state = { min, max, a, b };\n let positives = [];\n let negatives = [];\n if (isPadded) {\n state.isPadded = isPadded;\n state.maxLen = String(state.max).length;\n }\n if (a < 0) {\n let newMin = b < 0 ? Math.abs(b) : 1;\n negatives = splitToPatterns(newMin, Math.abs(a), state, opts);\n a = state.a = 0;\n }\n if (b >= 0) {\n positives = splitToPatterns(a, b, state, opts);\n }\n state.negatives = negatives;\n state.positives = positives;\n state.result = collatePatterns(negatives, positives, opts);\n if (opts.capture === true) {\n state.result = `(${state.result})`;\n } else if (opts.wrap !== false && positives.length + negatives.length > 1) {\n state.result = `(?:${state.result})`;\n }\n toRegexRange.cache[cacheKey] = state;\n return state.result;\n };\n function collatePatterns(neg, pos2, options8) {\n let onlyNegative = filterPatterns(neg, pos2, \"-\", false, options8) || [];\n let onlyPositive = filterPatterns(pos2, neg, \"\", false, options8) || [];\n let intersected = filterPatterns(neg, pos2, \"-?\", true, options8) || [];\n let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);\n return subpatterns.join(\"|\");\n }\n function splitToRanges(min, max) {\n let nines = 1;\n let zeros = 1;\n let stop = countNines(min, nines);\n let stops = /* @__PURE__ */ new Set([max]);\n while (min <= stop && stop <= max) {\n stops.add(stop);\n nines += 1;\n stop = countNines(min, nines);\n }\n stop = countZeros(max + 1, zeros) - 1;\n while (min < stop && stop <= max) {\n stops.add(stop);\n zeros += 1;\n stop = countZeros(max + 1, zeros) - 1;\n }\n stops = [...stops];\n stops.sort(compare);\n return stops;\n }\n function rangeToPattern(start, stop, options8) {\n if (start === stop) {\n return { pattern: start, count: [], digits: 0 };\n }\n let zipped = zip(start, stop);\n let digits = zipped.length;\n let pattern = \"\";\n let count = 0;\n for (let i = 0; i < digits; i++) {\n let [startDigit, stopDigit] = zipped[i];\n if (startDigit === stopDigit) {\n pattern += startDigit;\n } else if (startDigit !== \"0\" || stopDigit !== \"9\") {\n pattern += toCharacterClass(startDigit, stopDigit, options8);\n } else {\n count++;\n }\n }\n if (count) {\n pattern += options8.shorthand === true ? \"\\\\d\" : \"[0-9]\";\n }\n return { pattern, count: [count], digits };\n }\n function splitToPatterns(min, max, tok, options8) {\n let ranges = splitToRanges(min, max);\n let tokens = [];\n let start = min;\n let prev;\n for (let i = 0; i < ranges.length; i++) {\n let max2 = ranges[i];\n let obj = rangeToPattern(String(start), String(max2), options8);\n let zeros = \"\";\n if (!tok.isPadded && prev && prev.pattern === obj.pattern) {\n if (prev.count.length > 1) {\n prev.count.pop();\n }\n prev.count.push(obj.count[0]);\n prev.string = prev.pattern + toQuantifier(prev.count);\n start = max2 + 1;\n continue;\n }\n if (tok.isPadded) {\n zeros = padZeros(max2, tok, options8);\n }\n obj.string = zeros + obj.pattern + toQuantifier(obj.count);\n tokens.push(obj);\n start = max2 + 1;\n prev = obj;\n }\n return tokens;\n }\n function filterPatterns(arr, comparison, prefix, intersection, options8) {\n let result = [];\n for (let ele of arr) {\n let { string } = ele;\n if (!intersection && !contains(comparison, \"string\", string)) {\n result.push(prefix + string);\n }\n if (intersection && contains(comparison, \"string\", string)) {\n result.push(prefix + string);\n }\n }\n return result;\n }\n function zip(a, b) {\n let arr = [];\n for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);\n return arr;\n }\n function compare(a, b) {\n return a > b ? 1 : b > a ? -1 : 0;\n }\n function contains(arr, key2, val) {\n return arr.some((ele) => ele[key2] === val);\n }\n function countNines(min, len) {\n return Number(String(min).slice(0, -len) + \"9\".repeat(len));\n }\n function countZeros(integer, zeros) {\n return integer - integer % Math.pow(10, zeros);\n }\n function toQuantifier(digits) {\n let [start = 0, stop = \"\"] = digits;\n if (stop || start > 1) {\n return `{${start + (stop ? \",\" + stop : \"\")}}`;\n }\n return \"\";\n }\n function toCharacterClass(a, b, options8) {\n return `[${a}${b - a === 1 ? \"\" : \"-\"}${b}]`;\n }\n function hasPadding(str) {\n return /^-?(0+)\\d/.test(str);\n }\n function padZeros(value, tok, options8) {\n if (!tok.isPadded) {\n return value;\n }\n let diff = Math.abs(tok.maxLen - String(value).length);\n let relax = options8.relaxZeros !== false;\n switch (diff) {\n case 0:\n return \"\";\n case 1:\n return relax ? \"0?\" : \"0\";\n case 2:\n return relax ? \"0{0,2}\" : \"00\";\n default: {\n return relax ? `0{0,${diff}}` : `0{${diff}}`;\n }\n }\n }\n toRegexRange.cache = {};\n toRegexRange.clearCache = () => toRegexRange.cache = {};\n module.exports = toRegexRange;\n }\n});\n\n// node_modules/fill-range/index.js\nvar require_fill_range = __commonJS({\n \"node_modules/fill-range/index.js\"(exports, module) {\n \"use strict\";\n var util2 = __require(\"util\");\n var toRegexRange = require_to_regex_range();\n var isObject2 = (val) => val !== null && typeof val === \"object\" && !Array.isArray(val);\n var transform = (toNumber) => {\n return (value) => toNumber === true ? Number(value) : String(value);\n };\n var isValidValue = (value) => {\n return typeof value === \"number\" || typeof value === \"string\" && value !== \"\";\n };\n var isNumber = (num) => Number.isInteger(+num);\n var zeros = (input) => {\n let value = `${input}`;\n let index = -1;\n if (value[0] === \"-\") value = value.slice(1);\n if (value === \"0\") return false;\n while (value[++index] === \"0\") ;\n return index > 0;\n };\n var stringify2 = (start, end, options8) => {\n if (typeof start === \"string\" || typeof end === \"string\") {\n return true;\n }\n return options8.stringify === true;\n };\n var pad = (input, maxLength, toNumber) => {\n if (maxLength > 0) {\n let dash = input[0] === \"-\" ? \"-\" : \"\";\n if (dash) input = input.slice(1);\n input = dash + input.padStart(dash ? maxLength - 1 : maxLength, \"0\");\n }\n if (toNumber === false) {\n return String(input);\n }\n return input;\n };\n var toMaxLen = (input, maxLength) => {\n let negative = input[0] === \"-\" ? \"-\" : \"\";\n if (negative) {\n input = input.slice(1);\n maxLength--;\n }\n while (input.length < maxLength) input = \"0\" + input;\n return negative ? \"-\" + input : input;\n };\n var toSequence = (parts, options8, maxLen) => {\n parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\n let prefix = options8.capture ? \"\" : \"?:\";\n let positives = \"\";\n let negatives = \"\";\n let result;\n if (parts.positives.length) {\n positives = parts.positives.map((v) => toMaxLen(String(v), maxLen)).join(\"|\");\n }\n if (parts.negatives.length) {\n negatives = `-(${prefix}${parts.negatives.map((v) => toMaxLen(String(v), maxLen)).join(\"|\")})`;\n }\n if (positives && negatives) {\n result = `${positives}|${negatives}`;\n } else {\n result = positives || negatives;\n }\n if (options8.wrap) {\n return `(${prefix}${result})`;\n }\n return result;\n };\n var toRange = (a, b, isNumbers, options8) => {\n if (isNumbers) {\n return toRegexRange(a, b, { wrap: false, ...options8 });\n }\n let start = String.fromCharCode(a);\n if (a === b) return start;\n let stop = String.fromCharCode(b);\n return `[${start}-${stop}]`;\n };\n var toRegex = (start, end, options8) => {\n if (Array.isArray(start)) {\n let wrap = options8.wrap === true;\n let prefix = options8.capture ? \"\" : \"?:\";\n return wrap ? `(${prefix}${start.join(\"|\")})` : start.join(\"|\");\n }\n return toRegexRange(start, end, options8);\n };\n var rangeError = (...args) => {\n return new RangeError(\"Invalid range arguments: \" + util2.inspect(...args));\n };\n var invalidRange = (start, end, options8) => {\n if (options8.strictRanges === true) throw rangeError([start, end]);\n return [];\n };\n var invalidStep = (step, options8) => {\n if (options8.strictRanges === true) {\n throw new TypeError(`Expected step \"${step}\" to be a number`);\n }\n return [];\n };\n var fillNumbers = (start, end, step = 1, options8 = {}) => {\n let a = Number(start);\n let b = Number(end);\n if (!Number.isInteger(a) || !Number.isInteger(b)) {\n if (options8.strictRanges === true) throw rangeError([start, end]);\n return [];\n }\n if (a === 0) a = 0;\n if (b === 0) b = 0;\n let descending = a > b;\n let startString = String(start);\n let endString = String(end);\n let stepString = String(step);\n step = Math.max(Math.abs(step), 1);\n let padded = zeros(startString) || zeros(endString) || zeros(stepString);\n let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;\n let toNumber = padded === false && stringify2(start, end, options8) === false;\n let format3 = options8.transform || transform(toNumber);\n if (options8.toRegex && step === 1) {\n return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options8);\n }\n let parts = { negatives: [], positives: [] };\n let push2 = (num) => parts[num < 0 ? \"negatives\" : \"positives\"].push(Math.abs(num));\n let range = [];\n let index = 0;\n while (descending ? a >= b : a <= b) {\n if (options8.toRegex === true && step > 1) {\n push2(a);\n } else {\n range.push(pad(format3(a, index), maxLen, toNumber));\n }\n a = descending ? a - step : a + step;\n index++;\n }\n if (options8.toRegex === true) {\n return step > 1 ? toSequence(parts, options8, maxLen) : toRegex(range, null, { wrap: false, ...options8 });\n }\n return range;\n };\n var fillLetters = (start, end, step = 1, options8 = {}) => {\n if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) {\n return invalidRange(start, end, options8);\n }\n let format3 = options8.transform || ((val) => String.fromCharCode(val));\n let a = `${start}`.charCodeAt(0);\n let b = `${end}`.charCodeAt(0);\n let descending = a > b;\n let min = Math.min(a, b);\n let max = Math.max(a, b);\n if (options8.toRegex && step === 1) {\n return toRange(min, max, false, options8);\n }\n let range = [];\n let index = 0;\n while (descending ? a >= b : a <= b) {\n range.push(format3(a, index));\n a = descending ? a - step : a + step;\n index++;\n }\n if (options8.toRegex === true) {\n return toRegex(range, null, { wrap: false, options: options8 });\n }\n return range;\n };\n var fill = (start, end, step, options8 = {}) => {\n if (end == null && isValidValue(start)) {\n return [start];\n }\n if (!isValidValue(start) || !isValidValue(end)) {\n return invalidRange(start, end, options8);\n }\n if (typeof step === \"function\") {\n return fill(start, end, 1, { transform: step });\n }\n if (isObject2(step)) {\n return fill(start, end, 0, step);\n }\n let opts = { ...options8 };\n if (opts.capture === true) opts.wrap = true;\n step = step || opts.step || 1;\n if (!isNumber(step)) {\n if (step != null && !isObject2(step)) return invalidStep(step, opts);\n return fill(start, end, 1, step);\n }\n if (isNumber(start) && isNumber(end)) {\n return fillNumbers(start, end, step, opts);\n }\n return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);\n };\n module.exports = fill;\n }\n});\n\n// node_modules/braces/lib/compile.js\nvar require_compile = __commonJS({\n \"node_modules/braces/lib/compile.js\"(exports, module) {\n \"use strict\";\n var fill = require_fill_range();\n var utils = require_utils();\n var compile = (ast, options8 = {}) => {\n const walk = (node, parent = {}) => {\n const invalidBlock = utils.isInvalidBrace(parent);\n const invalidNode = node.invalid === true && options8.escapeInvalid === true;\n const invalid = invalidBlock === true || invalidNode === true;\n const prefix = options8.escapeInvalid === true ? \"\\\\\" : \"\";\n let output = \"\";\n if (node.isOpen === true) {\n return prefix + node.value;\n }\n if (node.isClose === true) {\n console.log(\"node.isClose\", prefix, node.value);\n return prefix + node.value;\n }\n if (node.type === \"open\") {\n return invalid ? prefix + node.value : \"(\";\n }\n if (node.type === \"close\") {\n return invalid ? prefix + node.value : \")\";\n }\n if (node.type === \"comma\") {\n return node.prev.type === \"comma\" ? \"\" : invalid ? node.value : \"|\";\n }\n if (node.value) {\n return node.value;\n }\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n const range = fill(...args, { ...options8, wrap: false, toRegex: true, strictZeros: true });\n if (range.length !== 0) {\n return args.length > 1 && range.length > 1 ? `(${range})` : range;\n }\n }\n if (node.nodes) {\n for (const child of node.nodes) {\n output += walk(child, node);\n }\n }\n return output;\n };\n return walk(ast);\n };\n module.exports = compile;\n }\n});\n\n// node_modules/braces/lib/expand.js\nvar require_expand = __commonJS({\n \"node_modules/braces/lib/expand.js\"(exports, module) {\n \"use strict\";\n var fill = require_fill_range();\n var stringify2 = require_stringify();\n var utils = require_utils();\n var append = (queue = \"\", stash = \"\", enclose = false) => {\n const result = [];\n queue = [].concat(queue);\n stash = [].concat(stash);\n if (!stash.length) return queue;\n if (!queue.length) {\n return enclose ? utils.flatten(stash).map((ele) => `{${ele}}`) : stash;\n }\n for (const item of queue) {\n if (Array.isArray(item)) {\n for (const value of item) {\n result.push(append(value, stash, enclose));\n }\n } else {\n for (let ele of stash) {\n if (enclose === true && typeof ele === \"string\") ele = `{${ele}}`;\n result.push(Array.isArray(ele) ? append(item, ele, enclose) : item + ele);\n }\n }\n }\n return utils.flatten(result);\n };\n var expand = (ast, options8 = {}) => {\n const rangeLimit = options8.rangeLimit === void 0 ? 1e3 : options8.rangeLimit;\n const walk = (node, parent = {}) => {\n node.queue = [];\n let p = parent;\n let q = parent.queue;\n while (p.type !== \"brace\" && p.type !== \"root\" && p.parent) {\n p = p.parent;\n q = p.queue;\n }\n if (node.invalid || node.dollar) {\n q.push(append(q.pop(), stringify2(node, options8)));\n return;\n }\n if (node.type === \"brace\" && node.invalid !== true && node.nodes.length === 2) {\n q.push(append(q.pop(), [\"{}\"]));\n return;\n }\n if (node.nodes && node.ranges > 0) {\n const args = utils.reduce(node.nodes);\n if (utils.exceedsLimit(...args, options8.step, rangeLimit)) {\n throw new RangeError(\"expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.\");\n }\n let range = fill(...args, options8);\n if (range.length === 0) {\n range = stringify2(node, options8);\n }\n q.push(append(q.pop(), range));\n node.nodes = [];\n return;\n }\n const enclose = utils.encloseBrace(node);\n let queue = node.queue;\n let block = node;\n while (block.type !== \"brace\" && block.type !== \"root\" && block.parent) {\n block = block.parent;\n queue = block.queue;\n }\n for (let i = 0; i < node.nodes.length; i++) {\n const child = node.nodes[i];\n if (child.type === \"comma\" && node.type === \"brace\") {\n if (i === 1) queue.push(\"\");\n queue.push(\"\");\n continue;\n }\n if (child.type === \"close\") {\n q.push(append(q.pop(), queue, enclose));\n continue;\n }\n if (child.value && child.type !== \"open\") {\n queue.push(append(queue.pop(), child.value));\n continue;\n }\n if (child.nodes) {\n walk(child, node);\n }\n }\n return queue;\n };\n return utils.flatten(walk(ast));\n };\n module.exports = expand;\n }\n});\n\n// node_modules/braces/lib/constants.js\nvar require_constants = __commonJS({\n \"node_modules/braces/lib/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n MAX_LENGTH: 1e4,\n // Digits\n CHAR_0: \"0\",\n /* 0 */\n CHAR_9: \"9\",\n /* 9 */\n // Alphabet chars.\n CHAR_UPPERCASE_A: \"A\",\n /* A */\n CHAR_LOWERCASE_A: \"a\",\n /* a */\n CHAR_UPPERCASE_Z: \"Z\",\n /* Z */\n CHAR_LOWERCASE_Z: \"z\",\n /* z */\n CHAR_LEFT_PARENTHESES: \"(\",\n /* ( */\n CHAR_RIGHT_PARENTHESES: \")\",\n /* ) */\n CHAR_ASTERISK: \"*\",\n /* * */\n // Non-alphabetic chars.\n CHAR_AMPERSAND: \"&\",\n /* & */\n CHAR_AT: \"@\",\n /* @ */\n CHAR_BACKSLASH: \"\\\\\",\n /* \\ */\n CHAR_BACKTICK: \"`\",\n /* ` */\n CHAR_CARRIAGE_RETURN: \"\\r\",\n /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: \"^\",\n /* ^ */\n CHAR_COLON: \":\",\n /* : */\n CHAR_COMMA: \",\",\n /* , */\n CHAR_DOLLAR: \"$\",\n /* . */\n CHAR_DOT: \".\",\n /* . */\n CHAR_DOUBLE_QUOTE: '\"',\n /* \" */\n CHAR_EQUAL: \"=\",\n /* = */\n CHAR_EXCLAMATION_MARK: \"!\",\n /* ! */\n CHAR_FORM_FEED: \"\\f\",\n /* \\f */\n CHAR_FORWARD_SLASH: \"/\",\n /* / */\n CHAR_HASH: \"#\",\n /* # */\n CHAR_HYPHEN_MINUS: \"-\",\n /* - */\n CHAR_LEFT_ANGLE_BRACKET: \"<\",\n /* < */\n CHAR_LEFT_CURLY_BRACE: \"{\",\n /* { */\n CHAR_LEFT_SQUARE_BRACKET: \"[\",\n /* [ */\n CHAR_LINE_FEED: \"\\n\",\n /* \\n */\n CHAR_NO_BREAK_SPACE: \"\\xA0\",\n /* \\u00A0 */\n CHAR_PERCENT: \"%\",\n /* % */\n CHAR_PLUS: \"+\",\n /* + */\n CHAR_QUESTION_MARK: \"?\",\n /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: \">\",\n /* > */\n CHAR_RIGHT_CURLY_BRACE: \"}\",\n /* } */\n CHAR_RIGHT_SQUARE_BRACKET: \"]\",\n /* ] */\n CHAR_SEMICOLON: \";\",\n /* ; */\n CHAR_SINGLE_QUOTE: \"'\",\n /* ' */\n CHAR_SPACE: \" \",\n /* */\n CHAR_TAB: \"\t\",\n /* \\t */\n CHAR_UNDERSCORE: \"_\",\n /* _ */\n CHAR_VERTICAL_LINE: \"|\",\n /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: \"\\uFEFF\"\n /* \\uFEFF */\n };\n }\n});\n\n// node_modules/braces/lib/parse.js\nvar require_parse = __commonJS({\n \"node_modules/braces/lib/parse.js\"(exports, module) {\n \"use strict\";\n var stringify2 = require_stringify();\n var {\n MAX_LENGTH,\n CHAR_BACKSLASH,\n /* \\ */\n CHAR_BACKTICK,\n /* ` */\n CHAR_COMMA,\n /* , */\n CHAR_DOT,\n /* . */\n CHAR_LEFT_PARENTHESES,\n /* ( */\n CHAR_RIGHT_PARENTHESES,\n /* ) */\n CHAR_LEFT_CURLY_BRACE,\n /* { */\n CHAR_RIGHT_CURLY_BRACE,\n /* } */\n CHAR_LEFT_SQUARE_BRACKET,\n /* [ */\n CHAR_RIGHT_SQUARE_BRACKET,\n /* ] */\n CHAR_DOUBLE_QUOTE,\n /* \" */\n CHAR_SINGLE_QUOTE,\n /* ' */\n CHAR_NO_BREAK_SPACE,\n CHAR_ZERO_WIDTH_NOBREAK_SPACE\n } = require_constants();\n var parse7 = (input, options8 = {}) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n const opts = options8 || {};\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n if (input.length > max) {\n throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);\n }\n const ast = { type: \"root\", input, nodes: [] };\n const stack2 = [ast];\n let block = ast;\n let prev = ast;\n let brackets = 0;\n const length = input.length;\n let index = 0;\n let depth = 0;\n let value;\n const advance = () => input[index++];\n const push2 = (node) => {\n if (node.type === \"text\" && prev.type === \"dot\") {\n prev.type = \"text\";\n }\n if (prev && prev.type === \"text\" && node.type === \"text\") {\n prev.value += node.value;\n return;\n }\n block.nodes.push(node);\n node.parent = block;\n node.prev = prev;\n prev = node;\n return node;\n };\n push2({ type: \"bos\" });\n while (index < length) {\n block = stack2[stack2.length - 1];\n value = advance();\n if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) {\n continue;\n }\n if (value === CHAR_BACKSLASH) {\n push2({ type: \"text\", value: (options8.keepEscaping ? value : \"\") + advance() });\n continue;\n }\n if (value === CHAR_RIGHT_SQUARE_BRACKET) {\n push2({ type: \"text\", value: \"\\\\\" + value });\n continue;\n }\n if (value === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n let next;\n while (index < length && (next = advance())) {\n value += next;\n if (next === CHAR_LEFT_SQUARE_BRACKET) {\n brackets++;\n continue;\n }\n if (next === CHAR_BACKSLASH) {\n value += advance();\n continue;\n }\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n brackets--;\n if (brackets === 0) {\n break;\n }\n }\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_LEFT_PARENTHESES) {\n block = push2({ type: \"paren\", nodes: [] });\n stack2.push(block);\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_RIGHT_PARENTHESES) {\n if (block.type !== \"paren\") {\n push2({ type: \"text\", value });\n continue;\n }\n block = stack2.pop();\n push2({ type: \"text\", value });\n block = stack2[stack2.length - 1];\n continue;\n }\n if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) {\n const open = value;\n let next;\n if (options8.keepQuotes !== true) {\n value = \"\";\n }\n while (index < length && (next = advance())) {\n if (next === CHAR_BACKSLASH) {\n value += next + advance();\n continue;\n }\n if (next === open) {\n if (options8.keepQuotes === true) value += next;\n break;\n }\n value += next;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === CHAR_LEFT_CURLY_BRACE) {\n depth++;\n const dollar = prev.value && prev.value.slice(-1) === \"$\" || block.dollar === true;\n const brace = {\n type: \"brace\",\n open: true,\n close: false,\n dollar,\n depth,\n commas: 0,\n ranges: 0,\n nodes: []\n };\n block = push2(brace);\n stack2.push(block);\n push2({ type: \"open\", value });\n continue;\n }\n if (value === CHAR_RIGHT_CURLY_BRACE) {\n if (block.type !== \"brace\") {\n push2({ type: \"text\", value });\n continue;\n }\n const type = \"close\";\n block = stack2.pop();\n block.close = true;\n push2({ type, value });\n depth--;\n block = stack2[stack2.length - 1];\n continue;\n }\n if (value === CHAR_COMMA && depth > 0) {\n if (block.ranges > 0) {\n block.ranges = 0;\n const open = block.nodes.shift();\n block.nodes = [open, { type: \"text\", value: stringify2(block) }];\n }\n push2({ type: \"comma\", value });\n block.commas++;\n continue;\n }\n if (value === CHAR_DOT && depth > 0 && block.commas === 0) {\n const siblings = block.nodes;\n if (depth === 0 || siblings.length === 0) {\n push2({ type: \"text\", value });\n continue;\n }\n if (prev.type === \"dot\") {\n block.range = [];\n prev.value += value;\n prev.type = \"range\";\n if (block.nodes.length !== 3 && block.nodes.length !== 5) {\n block.invalid = true;\n block.ranges = 0;\n prev.type = \"text\";\n continue;\n }\n block.ranges++;\n block.args = [];\n continue;\n }\n if (prev.type === \"range\") {\n siblings.pop();\n const before = siblings[siblings.length - 1];\n before.value += prev.value + value;\n prev = before;\n block.ranges--;\n continue;\n }\n push2({ type: \"dot\", value });\n continue;\n }\n push2({ type: \"text\", value });\n }\n do {\n block = stack2.pop();\n if (block.type !== \"root\") {\n block.nodes.forEach((node) => {\n if (!node.nodes) {\n if (node.type === \"open\") node.isOpen = true;\n if (node.type === \"close\") node.isClose = true;\n if (!node.nodes) node.type = \"text\";\n node.invalid = true;\n }\n });\n const parent = stack2[stack2.length - 1];\n const index2 = parent.nodes.indexOf(block);\n parent.nodes.splice(index2, 1, ...block.nodes);\n }\n } while (stack2.length > 0);\n push2({ type: \"eos\" });\n return ast;\n };\n module.exports = parse7;\n }\n});\n\n// node_modules/braces/index.js\nvar require_braces = __commonJS({\n \"node_modules/braces/index.js\"(exports, module) {\n \"use strict\";\n var stringify2 = require_stringify();\n var compile = require_compile();\n var expand = require_expand();\n var parse7 = require_parse();\n var braces = (input, options8 = {}) => {\n let output = [];\n if (Array.isArray(input)) {\n for (const pattern of input) {\n const result = braces.create(pattern, options8);\n if (Array.isArray(result)) {\n output.push(...result);\n } else {\n output.push(result);\n }\n }\n } else {\n output = [].concat(braces.create(input, options8));\n }\n if (options8 && options8.expand === true && options8.nodupes === true) {\n output = [...new Set(output)];\n }\n return output;\n };\n braces.parse = (input, options8 = {}) => parse7(input, options8);\n braces.stringify = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n return stringify2(braces.parse(input, options8), options8);\n }\n return stringify2(input, options8);\n };\n braces.compile = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n input = braces.parse(input, options8);\n }\n return compile(input, options8);\n };\n braces.expand = (input, options8 = {}) => {\n if (typeof input === \"string\") {\n input = braces.parse(input, options8);\n }\n let result = expand(input, options8);\n if (options8.noempty === true) {\n result = result.filter(Boolean);\n }\n if (options8.nodupes === true) {\n result = [...new Set(result)];\n }\n return result;\n };\n braces.create = (input, options8 = {}) => {\n if (input === \"\" || input.length < 3) {\n return [input];\n }\n return options8.expand !== true ? braces.compile(input, options8) : braces.expand(input, options8);\n };\n module.exports = braces;\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/lib/constants.js\nvar require_constants2 = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/lib/constants.js\"(exports, module) {\n \"use strict\";\n var path15 = __require(\"path\");\n var WIN_SLASH = \"\\\\\\\\/\";\n var WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n var DOT_LITERAL = \"\\\\.\";\n var PLUS_LITERAL = \"\\\\+\";\n var QMARK_LITERAL = \"\\\\?\";\n var SLASH_LITERAL = \"\\\\/\";\n var ONE_CHAR = \"(?=.)\";\n var QMARK = \"[^/]\";\n var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\n var START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\n var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\n var NO_DOT = `(?!${DOT_LITERAL})`;\n var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\n var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\n var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\n var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\n var STAR = `${QMARK}*?`;\n var POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n };\n var WINDOWS_CHARS = {\n ...POSIX_CHARS,\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n };\n var POSIX_REGEX_SOURCE = {\n alnum: \"a-zA-Z0-9\",\n alpha: \"a-zA-Z\",\n ascii: \"\\\\x00-\\\\x7F\",\n blank: \" \\\\t\",\n cntrl: \"\\\\x00-\\\\x1F\\\\x7F\",\n digit: \"0-9\",\n graph: \"\\\\x21-\\\\x7E\",\n lower: \"a-z\",\n print: \"\\\\x20-\\\\x7E \",\n punct: \"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",\n space: \" \\\\t\\\\r\\\\n\\\\v\\\\f\",\n upper: \"A-Z\",\n word: \"A-Za-z0-9_\",\n xdigit: \"A-Fa-f0-9\"\n };\n module.exports = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE,\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n \"***\": \"*\",\n \"**/**\": \"**\",\n \"**/**/**\": \"**\"\n },\n // Digits\n CHAR_0: 48,\n /* 0 */\n CHAR_9: 57,\n /* 9 */\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65,\n /* A */\n CHAR_LOWERCASE_A: 97,\n /* a */\n CHAR_UPPERCASE_Z: 90,\n /* Z */\n CHAR_LOWERCASE_Z: 122,\n /* z */\n CHAR_LEFT_PARENTHESES: 40,\n /* ( */\n CHAR_RIGHT_PARENTHESES: 41,\n /* ) */\n CHAR_ASTERISK: 42,\n /* * */\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38,\n /* & */\n CHAR_AT: 64,\n /* @ */\n CHAR_BACKWARD_SLASH: 92,\n /* \\ */\n CHAR_CARRIAGE_RETURN: 13,\n /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94,\n /* ^ */\n CHAR_COLON: 58,\n /* : */\n CHAR_COMMA: 44,\n /* , */\n CHAR_DOT: 46,\n /* . */\n CHAR_DOUBLE_QUOTE: 34,\n /* \" */\n CHAR_EQUAL: 61,\n /* = */\n CHAR_EXCLAMATION_MARK: 33,\n /* ! */\n CHAR_FORM_FEED: 12,\n /* \\f */\n CHAR_FORWARD_SLASH: 47,\n /* / */\n CHAR_GRAVE_ACCENT: 96,\n /* ` */\n CHAR_HASH: 35,\n /* # */\n CHAR_HYPHEN_MINUS: 45,\n /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60,\n /* < */\n CHAR_LEFT_CURLY_BRACE: 123,\n /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91,\n /* [ */\n CHAR_LINE_FEED: 10,\n /* \\n */\n CHAR_NO_BREAK_SPACE: 160,\n /* \\u00A0 */\n CHAR_PERCENT: 37,\n /* % */\n CHAR_PLUS: 43,\n /* + */\n CHAR_QUESTION_MARK: 63,\n /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62,\n /* > */\n CHAR_RIGHT_CURLY_BRACE: 125,\n /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93,\n /* ] */\n CHAR_SEMICOLON: 59,\n /* ; */\n CHAR_SINGLE_QUOTE: 39,\n /* ' */\n CHAR_SPACE: 32,\n /* */\n CHAR_TAB: 9,\n /* \\t */\n CHAR_UNDERSCORE: 95,\n /* _ */\n CHAR_VERTICAL_LINE: 124,\n /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,\n /* \\uFEFF */\n SEP: path15.sep,\n /**\n * Create EXTGLOB_CHARS\n */\n extglobChars(chars) {\n return {\n \"!\": { type: \"negate\", open: \"(?:(?!(?:\", close: `))${chars.STAR})` },\n \"?\": { type: \"qmark\", open: \"(?:\", close: \")?\" },\n \"+\": { type: \"plus\", open: \"(?:\", close: \")+\" },\n \"*\": { type: \"star\", open: \"(?:\", close: \")*\" },\n \"@\": { type: \"at\", open: \"(?:\", close: \")\" }\n };\n },\n /**\n * Create GLOB_CHARS\n */\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n };\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/lib/utils.js\nvar require_utils2 = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/lib/utils.js\"(exports) {\n \"use strict\";\n var path15 = __require(\"path\");\n var win32 = process.platform === \"win32\";\n var {\n REGEX_BACKSLASH,\n REGEX_REMOVE_BACKSLASH,\n REGEX_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_GLOBAL\n } = require_constants2();\n exports.isObject = (val) => val !== null && typeof val === \"object\" && !Array.isArray(val);\n exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str);\n exports.isRegexChar = (str) => str.length === 1 && exports.hasRegexChars(str);\n exports.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, \"\\\\$1\");\n exports.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, \"/\");\n exports.removeBackslashes = (str) => {\n return str.replace(REGEX_REMOVE_BACKSLASH, (match) => {\n return match === \"\\\\\" ? \"\" : match;\n });\n };\n exports.supportsLookbehinds = () => {\n const segs = process.version.slice(1).split(\".\").map(Number);\n if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) {\n return true;\n }\n return false;\n };\n exports.isWindows = (options8) => {\n if (options8 && typeof options8.windows === \"boolean\") {\n return options8.windows;\n }\n return win32 === true || path15.sep === \"\\\\\";\n };\n exports.escapeLast = (input, char, lastIdx) => {\n const idx = input.lastIndexOf(char, lastIdx);\n if (idx === -1) return input;\n if (input[idx - 1] === \"\\\\\") return exports.escapeLast(input, char, idx - 1);\n return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n };\n exports.removePrefix = (input, state = {}) => {\n let output = input;\n if (output.startsWith(\"./\")) {\n output = output.slice(2);\n state.prefix = \"./\";\n }\n return output;\n };\n exports.wrapOutput = (input, state = {}, options8 = {}) => {\n const prepend = options8.contains ? \"\" : \"^\";\n const append = options8.contains ? \"\" : \"$\";\n let output = `${prepend}(?:${input})${append}`;\n if (state.negated === true) {\n output = `(?:^(?!${output}).*$)`;\n }\n return output;\n };\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/lib/scan.js\nvar require_scan = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/lib/scan.js\"(exports, module) {\n \"use strict\";\n var utils = require_utils2();\n var {\n CHAR_ASTERISK,\n /* * */\n CHAR_AT,\n /* @ */\n CHAR_BACKWARD_SLASH,\n /* \\ */\n CHAR_COMMA,\n /* , */\n CHAR_DOT,\n /* . */\n CHAR_EXCLAMATION_MARK,\n /* ! */\n CHAR_FORWARD_SLASH,\n /* / */\n CHAR_LEFT_CURLY_BRACE,\n /* { */\n CHAR_LEFT_PARENTHESES,\n /* ( */\n CHAR_LEFT_SQUARE_BRACKET,\n /* [ */\n CHAR_PLUS,\n /* + */\n CHAR_QUESTION_MARK,\n /* ? */\n CHAR_RIGHT_CURLY_BRACE,\n /* } */\n CHAR_RIGHT_PARENTHESES,\n /* ) */\n CHAR_RIGHT_SQUARE_BRACKET\n /* ] */\n } = require_constants2();\n var isPathSeparator = (code) => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n };\n var depth = (token2) => {\n if (token2.isPrefix !== true) {\n token2.depth = token2.isGlobstar ? Infinity : 1;\n }\n };\n var scan = (input, options8) => {\n const opts = options8 || {};\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token2 = { value: \"\", depth: 0, isGlob: false };\n const eos = () => index >= length;\n const peek2 = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n while (index < length) {\n code = advance();\n let next;\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n code = advance();\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n advance();\n continue;\n }\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token2.isBrace = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token2.isBrace = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token2.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token2);\n token2 = { value: \"\", depth: 0, isGlob: false };\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === start + 1) {\n start += 2;\n continue;\n }\n lastIndex = index + 1;\n continue;\n }\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK;\n if (isExtglobChar === true && peek2() === CHAR_LEFT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n isExtglob = token2.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n code = advance();\n continue;\n }\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token2.isGlobstar = true;\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token2.isGlob = true;\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token2.backslashes = true;\n advance();\n continue;\n }\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token2.isBracket = true;\n isGlob = token2.isGlob = true;\n finished = true;\n break;\n }\n }\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token2.negated = true;\n start++;\n continue;\n }\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token2.isGlob = true;\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token2.backslashes = true;\n code = advance();\n continue;\n }\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n if (isGlob === true) {\n finished = true;\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n }\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n let base = str;\n let prefix = \"\";\n let glob = \"\";\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = \"\";\n glob = str;\n } else {\n base = str;\n }\n if (base && base !== \"\" && base !== \"/\" && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n if (opts.unescape === true) {\n if (glob) glob = utils.removeBackslashes(glob);\n if (base && backslashes === true) {\n base = utils.removeBackslashes(base);\n }\n }\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token2);\n }\n state.tokens = tokens;\n }\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== \"\") {\n parts.push(value);\n }\n prevIndex = i;\n }\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n state.slashes = slashes;\n state.parts = parts;\n }\n return state;\n };\n module.exports = scan;\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/lib/parse.js\nvar require_parse2 = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/lib/parse.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants2();\n var utils = require_utils2();\n var {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n } = constants;\n var expandRange = (args, options8) => {\n if (typeof options8.expandRange === \"function\") {\n return options8.expandRange(...args, options8);\n }\n args.sort();\n const value = `[${args.join(\"-\")}]`;\n try {\n new RegExp(value);\n } catch (ex) {\n return args.map((v) => utils.escapeRegex(v)).join(\"..\");\n }\n return value;\n };\n var syntaxError2 = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n };\n var parse7 = (input, options8) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n input = REPLACEMENTS[input] || input;\n const opts = { ...options8 };\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n const bos = { type: \"bos\", value: \"\", output: opts.prepend || \"\" };\n const tokens = [bos];\n const capture = opts.capture ? \"\" : \"?:\";\n const win32 = utils.isWindows(options8);\n const PLATFORM_CHARS = constants.globChars(win32);\n const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS);\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n const globstar = (opts2) => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n const nodot = opts.dot ? \"\" : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n if (opts.capture) {\n star = `(${star})`;\n }\n if (typeof opts.noext === \"boolean\") {\n opts.noextglob = opts.noext;\n }\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: \"\",\n output: \"\",\n prefix: \"\",\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n input = utils.removePrefix(input, state);\n len = input.length;\n const extglobs = [];\n const braces = [];\n const stack2 = [];\n let prev = bos;\n let value;\n const eos = () => state.index === len - 1;\n const peek2 = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || \"\";\n const remaining = () => input.slice(state.index + 1);\n const consume = (value2 = \"\", num = 0) => {\n state.consumed += value2;\n state.index += num;\n };\n const append = (token2) => {\n state.output += token2.output != null ? token2.output : token2.value;\n consume(token2.value);\n };\n const negate = () => {\n let count = 1;\n while (peek2() === \"!\" && (peek2(2) !== \"(\" || peek2(3) === \"?\")) {\n advance();\n state.start++;\n count++;\n }\n if (count % 2 === 0) {\n return false;\n }\n state.negated = true;\n state.start++;\n return true;\n };\n const increment = (type) => {\n state[type]++;\n stack2.push(type);\n };\n const decrement = (type) => {\n state[type]--;\n stack2.pop();\n };\n const push2 = (tok) => {\n if (prev.type === \"globstar\") {\n const isBrace = state.braces > 0 && (tok.type === \"comma\" || tok.type === \"brace\");\n const isExtglob = tok.extglob === true || extglobs.length && (tok.type === \"pipe\" || tok.type === \"paren\");\n if (tok.type !== \"slash\" && tok.type !== \"paren\" && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = \"star\";\n prev.value = \"*\";\n prev.output = star;\n state.output += prev.output;\n }\n }\n if (extglobs.length && tok.type !== \"paren\") {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === \"text\" && tok.type === \"text\") {\n prev.value += tok.value;\n prev.output = (prev.output || \"\") + tok.value;\n return;\n }\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n const extglobOpen = (type, value2) => {\n const token2 = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: \"\" };\n token2.prev = prev;\n token2.parens = state.parens;\n token2.output = state.output;\n const output = (opts.capture ? \"(\" : \"\") + token2.open;\n increment(\"parens\");\n push2({ type, value: value2, output: state.output ? \"\" : ONE_CHAR });\n push2({ type: \"paren\", extglob: true, value: advance(), output });\n extglobs.push(token2);\n };\n const extglobClose = (token2) => {\n let output = token2.close + (opts.capture ? \")\" : \"\");\n let rest;\n if (token2.type === \"negate\") {\n let extglobStar = star;\n if (token2.inner && token2.inner.length > 1 && token2.inner.includes(\"/\")) {\n extglobStar = globstar(opts);\n }\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token2.close = `)$))${extglobStar}`;\n }\n if (token2.inner.includes(\"*\") && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n const expression = parse7(rest, { ...options8, fastpaths: false }).output;\n output = token2.close = `)${expression})${extglobStar})`;\n }\n if (token2.prev.type === \"bos\") {\n state.negatedExtglob = true;\n }\n }\n push2({ type: \"paren\", extglob: true, value, output });\n decrement(\"parens\");\n };\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === \"\\\\\") {\n backslashes = true;\n return m;\n }\n if (first === \"?\") {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : \"\");\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : \"\");\n }\n return QMARK.repeat(chars.length);\n }\n if (first === \".\") {\n return DOT_LITERAL.repeat(chars.length);\n }\n if (first === \"*\") {\n if (esc) {\n return esc + first + (rest ? star : \"\");\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, \"\");\n } else {\n output = output.replace(/\\\\+/g, (m) => {\n return m.length % 2 === 0 ? \"\\\\\\\\\" : m ? \"\\\\\" : \"\";\n });\n }\n }\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n state.output = utils.wrapOutput(output, state, options8);\n return state;\n }\n while (!eos()) {\n value = advance();\n if (value === \"\\0\") {\n continue;\n }\n if (value === \"\\\\\") {\n const next = peek2();\n if (next === \"/\" && opts.bash !== true) {\n continue;\n }\n if (next === \".\" || next === \";\") {\n continue;\n }\n if (!next) {\n value += \"\\\\\";\n push2({ type: \"text\", value });\n continue;\n }\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += \"\\\\\";\n }\n }\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n if (state.brackets === 0) {\n push2({ type: \"text\", value });\n continue;\n }\n }\n if (state.brackets > 0 && (value !== \"]\" || prev.value === \"[\" || prev.value === \"[^\")) {\n if (opts.posix !== false && value === \":\") {\n const inner = prev.value.slice(1);\n if (inner.includes(\"[\")) {\n prev.posix = true;\n if (inner.includes(\":\")) {\n const idx = prev.value.lastIndexOf(\"[\");\n const pre = prev.value.slice(0, idx);\n const rest2 = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest2];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n if (value === \"[\" && peek2() !== \":\" || value === \"-\" && peek2() === \"]\") {\n value = `\\\\${value}`;\n }\n if (value === \"]\" && (prev.value === \"[\" || prev.value === \"[^\")) {\n value = `\\\\${value}`;\n }\n if (opts.posix === true && value === \"!\" && prev.value === \"[\") {\n value = \"^\";\n }\n prev.value += value;\n append({ value });\n continue;\n }\n if (state.quotes === 1 && value !== '\"') {\n value = utils.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push2({ type: \"text\", value });\n }\n continue;\n }\n if (value === \"(\") {\n increment(\"parens\");\n push2({ type: \"paren\", value });\n continue;\n }\n if (value === \")\") {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"opening\", \"(\"));\n }\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n push2({ type: \"paren\", value, output: state.parens ? \")\" : \"\\\\)\" });\n decrement(\"parens\");\n continue;\n }\n if (value === \"[\") {\n if (opts.nobracket === true || !remaining().includes(\"]\")) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"closing\", \"]\"));\n }\n value = `\\\\${value}`;\n } else {\n increment(\"brackets\");\n }\n push2({ type: \"bracket\", value });\n continue;\n }\n if (value === \"]\") {\n if (opts.nobracket === true || prev && prev.type === \"bracket\" && prev.value.length === 1) {\n push2({ type: \"text\", value, output: `\\\\${value}` });\n continue;\n }\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError2(\"opening\", \"[\"));\n }\n push2({ type: \"text\", value, output: `\\\\${value}` });\n continue;\n }\n decrement(\"brackets\");\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === \"^\" && !prevValue.includes(\"/\")) {\n value = `/${value}`;\n }\n prev.value += value;\n append({ value });\n if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) {\n continue;\n }\n const escaped = utils.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n if (value === \"{\" && opts.nobrace !== true) {\n increment(\"braces\");\n const open = {\n type: \"brace\",\n value,\n output: \"(\",\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n braces.push(open);\n push2(open);\n continue;\n }\n if (value === \"}\") {\n const brace = braces[braces.length - 1];\n if (opts.nobrace === true || !brace) {\n push2({ type: \"text\", value, output: value });\n continue;\n }\n let output = \")\";\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === \"brace\") {\n break;\n }\n if (arr[i].type !== \"dots\") {\n range.unshift(arr[i].value);\n }\n }\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = \"\\\\{\";\n value = output = \"\\\\}\";\n state.output = out;\n for (const t of toks) {\n state.output += t.output || t.value;\n }\n }\n push2({ type: \"brace\", value, output });\n decrement(\"braces\");\n braces.pop();\n continue;\n }\n if (value === \"|\") {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value === \",\") {\n let output = value;\n const brace = braces[braces.length - 1];\n if (brace && stack2[stack2.length - 1] === \"braces\") {\n brace.comma = true;\n output = \"|\";\n }\n push2({ type: \"comma\", value, output });\n continue;\n }\n if (value === \"/\") {\n if (prev.type === \"dot\" && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = \"\";\n state.output = \"\";\n tokens.pop();\n prev = bos;\n continue;\n }\n push2({ type: \"slash\", value, output: SLASH_LITERAL });\n continue;\n }\n if (value === \".\") {\n if (state.braces > 0 && prev.type === \"dot\") {\n if (prev.value === \".\") prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = \"dots\";\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n if (state.braces + state.parens === 0 && prev.type !== \"bos\" && prev.type !== \"slash\") {\n push2({ type: \"text\", value, output: DOT_LITERAL });\n continue;\n }\n push2({ type: \"dot\", value, output: DOT_LITERAL });\n continue;\n }\n if (value === \"?\") {\n const isGroup = prev && prev.value === \"(\";\n if (!isGroup && opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n extglobOpen(\"qmark\", value);\n continue;\n }\n if (prev && prev.type === \"paren\") {\n const next = peek2();\n let output = value;\n if (next === \"<\" && !utils.supportsLookbehinds()) {\n throw new Error(\"Node.js v10 or higher is required for regex lookbehinds\");\n }\n if (prev.value === \"(\" && !/[!=<:]/.test(next) || next === \"<\" && !/<([!=]|\\w+>)/.test(remaining())) {\n output = `\\\\${value}`;\n }\n push2({ type: \"text\", value, output });\n continue;\n }\n if (opts.dot !== true && (prev.type === \"slash\" || prev.type === \"bos\")) {\n push2({ type: \"qmark\", value, output: QMARK_NO_DOT });\n continue;\n }\n push2({ type: \"qmark\", value, output: QMARK });\n continue;\n }\n if (value === \"!\") {\n if (opts.noextglob !== true && peek2() === \"(\") {\n if (peek2(2) !== \"?\" || !/[!=<:]/.test(peek2(3))) {\n extglobOpen(\"negate\", value);\n continue;\n }\n }\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n if (value === \"+\") {\n if (opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n extglobOpen(\"plus\", value);\n continue;\n }\n if (prev && prev.value === \"(\" || opts.regex === false) {\n push2({ type: \"plus\", value, output: PLUS_LITERAL });\n continue;\n }\n if (prev && (prev.type === \"bracket\" || prev.type === \"paren\" || prev.type === \"brace\") || state.parens > 0) {\n push2({ type: \"plus\", value });\n continue;\n }\n push2({ type: \"plus\", value: PLUS_LITERAL });\n continue;\n }\n if (value === \"@\") {\n if (opts.noextglob !== true && peek2() === \"(\" && peek2(2) !== \"?\") {\n push2({ type: \"at\", extglob: true, value, output: \"\" });\n continue;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (value !== \"*\") {\n if (value === \"$\" || value === \"^\") {\n value = `\\\\${value}`;\n }\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n push2({ type: \"text\", value });\n continue;\n }\n if (prev && (prev.type === \"globstar\" || prev.star === true)) {\n prev.type = \"star\";\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen(\"star\", value);\n continue;\n }\n if (prev.type === \"star\") {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === \"slash\" || prior.type === \"bos\";\n const afterStar = before && (before.type === \"star\" || before.type === \"globstar\");\n if (opts.bash === true && (!isStart || rest[0] && rest[0] !== \"/\")) {\n push2({ type: \"star\", value, output: \"\" });\n continue;\n }\n const isBrace = state.braces > 0 && (prior.type === \"comma\" || prior.type === \"brace\");\n const isExtglob = extglobs.length && (prior.type === \"pipe\" || prior.type === \"paren\");\n if (!isStart && prior.type !== \"paren\" && !isBrace && !isExtglob) {\n push2({ type: \"star\", value, output: \"\" });\n continue;\n }\n while (rest.slice(0, 3) === \"/**\") {\n const after = input[state.index + 4];\n if (after && after !== \"/\") {\n break;\n }\n rest = rest.slice(3);\n consume(\"/**\", 3);\n }\n if (prior.type === \"bos\" && eos()) {\n prev.type = \"globstar\";\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n if (prior.type === \"slash\" && prior.prev.type !== \"bos\" && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n prev.type = \"globstar\";\n prev.output = globstar(opts) + (opts.strictSlashes ? \")\" : \"|$)\");\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n if (prior.type === \"slash\" && prior.prev.type !== \"bos\" && rest[0] === \"/\") {\n const end = rest[1] !== void 0 ? \"|$\" : \"\";\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n prev.type = \"globstar\";\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n state.output += prior.output + prev.output;\n state.globstar = true;\n consume(value + advance());\n push2({ type: \"slash\", value: \"/\", output: \"\" });\n continue;\n }\n if (prior.type === \"bos\" && rest[0] === \"/\") {\n prev.type = \"globstar\";\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push2({ type: \"slash\", value: \"/\", output: \"\" });\n continue;\n }\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = \"globstar\";\n prev.output = globstar(opts);\n prev.value += value;\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n const token2 = { type: \"star\", value, output: star };\n if (opts.bash === true) {\n token2.output = \".*?\";\n if (prev.type === \"bos\" || prev.type === \"slash\") {\n token2.output = nodot + token2.output;\n }\n push2(token2);\n continue;\n }\n if (prev && (prev.type === \"bracket\" || prev.type === \"paren\") && opts.regex === true) {\n token2.output = value;\n push2(token2);\n continue;\n }\n if (state.index === state.start || prev.type === \"slash\" || prev.type === \"dot\") {\n if (prev.type === \"dot\") {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n if (peek2() !== \"*\") {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n push2(token2);\n }\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \"]\"));\n state.output = utils.escapeLast(state.output, \"[\");\n decrement(\"brackets\");\n }\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \")\"));\n state.output = utils.escapeLast(state.output, \"(\");\n decrement(\"parens\");\n }\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError2(\"closing\", \"}\"));\n state.output = utils.escapeLast(state.output, \"{\");\n decrement(\"braces\");\n }\n if (opts.strictSlashes !== true && (prev.type === \"star\" || prev.type === \"bracket\")) {\n push2({ type: \"maybe_slash\", value: \"\", output: `${SLASH_LITERAL}?` });\n }\n if (state.backtrack === true) {\n state.output = \"\";\n for (const token2 of state.tokens) {\n state.output += token2.output != null ? token2.output : token2.value;\n if (token2.suffix) {\n state.output += token2.suffix;\n }\n }\n }\n return state;\n };\n parse7.fastpaths = (input, options8) => {\n const opts = { ...options8 };\n const max = typeof opts.maxLength === \"number\" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n input = REPLACEMENTS[input] || input;\n const win32 = utils.isWindows(options8);\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants.globChars(win32);\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? \"\" : \"?:\";\n const state = { negated: false, prefix: \"\" };\n let star = opts.bash === true ? \".*?\" : STAR;\n if (opts.capture) {\n star = `(${star})`;\n }\n const globstar = (opts2) => {\n if (opts2.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts2.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n const create = (str) => {\n switch (str) {\n case \"*\":\n return `${nodot}${ONE_CHAR}${star}`;\n case \".*\":\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"*.*\":\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"*/*\":\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n case \"**\":\n return nodot + globstar(opts);\n case \"**/*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n case \"**/*.*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n case \"**/.*\":\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n const source3 = create(match[1]);\n if (!source3) return;\n return source3 + DOT_LITERAL + match[2];\n }\n }\n };\n const output = utils.removePrefix(input, state);\n let source2 = create(output);\n if (source2 && opts.strictSlashes !== true) {\n source2 += `${SLASH_LITERAL}?`;\n }\n return source2;\n };\n module.exports = parse7;\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/lib/picomatch.js\nvar require_picomatch = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/lib/picomatch.js\"(exports, module) {\n \"use strict\";\n var path15 = __require(\"path\");\n var scan = require_scan();\n var parse7 = require_parse2();\n var utils = require_utils2();\n var constants = require_constants2();\n var isObject2 = (val) => val && typeof val === \"object\" && !Array.isArray(val);\n var picomatch = (glob, options8, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map((input) => picomatch(input, options8, returnState));\n const arrayMatcher = (str) => {\n for (const isMatch of fns) {\n const state2 = isMatch(str);\n if (state2) return state2;\n }\n return false;\n };\n return arrayMatcher;\n }\n const isState = isObject2(glob) && glob.tokens && glob.input;\n if (glob === \"\" || typeof glob !== \"string\" && !isState) {\n throw new TypeError(\"Expected pattern to be a non-empty string\");\n }\n const opts = options8 || {};\n const posix = utils.isWindows(options8);\n const regex = isState ? picomatch.compileRe(glob, options8) : picomatch.makeRe(glob, options8, false, true);\n const state = regex.state;\n delete regex.state;\n let isIgnored2 = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options8, ignore: null, onMatch: null, onResult: null };\n isIgnored2 = picomatch(opts.ignore, ignoreOpts, returnState);\n }\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch.test(input, regex, options8, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n if (typeof opts.onResult === \"function\") {\n opts.onResult(result);\n }\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n if (isIgnored2(input)) {\n if (typeof opts.onIgnore === \"function\") {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n if (typeof opts.onMatch === \"function\") {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n if (returnState) {\n matcher.state = state;\n }\n return matcher;\n };\n picomatch.test = (input, regex, options8, { glob, posix } = {}) => {\n if (typeof input !== \"string\") {\n throw new TypeError(\"Expected input to be a string\");\n }\n if (input === \"\") {\n return { isMatch: false, output: \"\" };\n }\n const opts = options8 || {};\n const format3 = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = match && format3 ? format3(input) : input;\n if (match === false) {\n output = format3 ? format3(input) : input;\n match = output === glob;\n }\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch.matchBase(input, regex, options8, posix);\n } else {\n match = regex.exec(output);\n }\n }\n return { isMatch: Boolean(match), match, output };\n };\n picomatch.matchBase = (input, glob, options8, posix = utils.isWindows(options8)) => {\n const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options8);\n return regex.test(path15.basename(input));\n };\n picomatch.isMatch = (str, patterns, options8) => picomatch(patterns, options8)(str);\n picomatch.parse = (pattern, options8) => {\n if (Array.isArray(pattern)) return pattern.map((p) => picomatch.parse(p, options8));\n return parse7(pattern, { ...options8, fastpaths: false });\n };\n picomatch.scan = (input, options8) => scan(input, options8);\n picomatch.compileRe = (state, options8, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n const opts = options8 || {};\n const prepend = opts.contains ? \"\" : \"^\";\n const append = opts.contains ? \"\" : \"$\";\n let source2 = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source2 = `^(?!${source2}).*$`;\n }\n const regex = picomatch.toRegex(source2, options8);\n if (returnState === true) {\n regex.state = state;\n }\n return regex;\n };\n picomatch.makeRe = (input, options8 = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== \"string\") {\n throw new TypeError(\"Expected a non-empty string\");\n }\n let parsed = { negated: false, fastpaths: true };\n if (options8.fastpaths !== false && (input[0] === \".\" || input[0] === \"*\")) {\n parsed.output = parse7.fastpaths(input, options8);\n }\n if (!parsed.output) {\n parsed = parse7(input, options8);\n }\n return picomatch.compileRe(parsed, options8, returnOutput, returnState);\n };\n picomatch.toRegex = (source2, options8) => {\n try {\n const opts = options8 || {};\n return new RegExp(source2, opts.flags || (opts.nocase ? \"i\" : \"\"));\n } catch (err) {\n if (options8 && options8.debug === true) throw err;\n return /$^/;\n }\n };\n picomatch.constants = constants;\n module.exports = picomatch;\n }\n});\n\n// node_modules/micromatch/node_modules/picomatch/index.js\nvar require_picomatch2 = __commonJS({\n \"node_modules/micromatch/node_modules/picomatch/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_picomatch();\n }\n});\n\n// node_modules/micromatch/index.js\nvar require_micromatch = __commonJS({\n \"node_modules/micromatch/index.js\"(exports, module) {\n \"use strict\";\n var util2 = __require(\"util\");\n var braces = require_braces();\n var picomatch = require_picomatch2();\n var utils = require_utils2();\n var isEmptyString = (v) => v === \"\" || v === \"./\";\n var hasBraces = (v) => {\n const index = v.indexOf(\"{\");\n return index > -1 && v.indexOf(\"}\", index) > -1;\n };\n var micromatch2 = (list, patterns, options8) => {\n patterns = [].concat(patterns);\n list = [].concat(list);\n let omit2 = /* @__PURE__ */ new Set();\n let keep = /* @__PURE__ */ new Set();\n let items = /* @__PURE__ */ new Set();\n let negatives = 0;\n let onResult = (state) => {\n items.add(state.output);\n if (options8 && options8.onResult) {\n options8.onResult(state);\n }\n };\n for (let i = 0; i < patterns.length; i++) {\n let isMatch = picomatch(String(patterns[i]), { ...options8, onResult }, true);\n let negated = isMatch.state.negated || isMatch.state.negatedExtglob;\n if (negated) negatives++;\n for (let item of list) {\n let matched = isMatch(item, true);\n let match = negated ? !matched.isMatch : matched.isMatch;\n if (!match) continue;\n if (negated) {\n omit2.add(matched.output);\n } else {\n omit2.delete(matched.output);\n keep.add(matched.output);\n }\n }\n }\n let result = negatives === patterns.length ? [...items] : [...keep];\n let matches = result.filter((item) => !omit2.has(item));\n if (options8 && matches.length === 0) {\n if (options8.failglob === true) {\n throw new Error(`No matches found for \"${patterns.join(\", \")}\"`);\n }\n if (options8.nonull === true || options8.nullglob === true) {\n return options8.unescape ? patterns.map((p) => p.replace(/\\\\/g, \"\")) : patterns;\n }\n }\n return matches;\n };\n micromatch2.match = micromatch2;\n micromatch2.matcher = (pattern, options8) => picomatch(pattern, options8);\n micromatch2.isMatch = (str, patterns, options8) => picomatch(patterns, options8)(str);\n micromatch2.any = micromatch2.isMatch;\n micromatch2.not = (list, patterns, options8 = {}) => {\n patterns = [].concat(patterns).map(String);\n let result = /* @__PURE__ */ new Set();\n let items = [];\n let onResult = (state) => {\n if (options8.onResult) options8.onResult(state);\n items.push(state.output);\n };\n let matches = new Set(micromatch2(list, patterns, { ...options8, onResult }));\n for (let item of items) {\n if (!matches.has(item)) {\n result.add(item);\n }\n }\n return [...result];\n };\n micromatch2.contains = (str, pattern, options8) => {\n if (typeof str !== \"string\") {\n throw new TypeError(`Expected a string: \"${util2.inspect(str)}\"`);\n }\n if (Array.isArray(pattern)) {\n return pattern.some((p) => micromatch2.contains(str, p, options8));\n }\n if (typeof pattern === \"string\") {\n if (isEmptyString(str) || isEmptyString(pattern)) {\n return false;\n }\n if (str.includes(pattern) || str.startsWith(\"./\") && str.slice(2).includes(pattern)) {\n return true;\n }\n }\n return micromatch2.isMatch(str, pattern, { ...options8, contains: true });\n };\n micromatch2.matchKeys = (obj, patterns, options8) => {\n if (!utils.isObject(obj)) {\n throw new TypeError(\"Expected the first argument to be an object\");\n }\n let keys = micromatch2(Object.keys(obj), patterns, options8);\n let res = {};\n for (let key2 of keys) res[key2] = obj[key2];\n return res;\n };\n micromatch2.some = (list, patterns, options8) => {\n let items = [].concat(list);\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options8);\n if (items.some((item) => isMatch(item))) {\n return true;\n }\n }\n return false;\n };\n micromatch2.every = (list, patterns, options8) => {\n let items = [].concat(list);\n for (let pattern of [].concat(patterns)) {\n let isMatch = picomatch(String(pattern), options8);\n if (!items.every((item) => isMatch(item))) {\n return false;\n }\n }\n return true;\n };\n micromatch2.all = (str, patterns, options8) => {\n if (typeof str !== \"string\") {\n throw new TypeError(`Expected a string: \"${util2.inspect(str)}\"`);\n }\n return [].concat(patterns).every((p) => picomatch(p, options8)(str));\n };\n micromatch2.capture = (glob, input, options8) => {\n let posix = utils.isWindows(options8);\n let regex = picomatch.makeRe(String(glob), { ...options8, capture: true });\n let match = regex.exec(posix ? utils.toPosixSlashes(input) : input);\n if (match) {\n return match.slice(1).map((v) => v === void 0 ? \"\" : v);\n }\n };\n micromatch2.makeRe = (...args) => picomatch.makeRe(...args);\n micromatch2.scan = (...args) => picomatch.scan(...args);\n micromatch2.parse = (patterns, options8) => {\n let res = [];\n for (let pattern of [].concat(patterns || [])) {\n for (let str of braces(String(pattern), options8)) {\n res.push(picomatch.parse(str, options8));\n }\n }\n return res;\n };\n micromatch2.braces = (pattern, options8) => {\n if (typeof pattern !== \"string\") throw new TypeError(\"Expected a string\");\n if (options8 && options8.nobrace === true || !hasBraces(pattern)) {\n return [pattern];\n }\n return braces(pattern, options8);\n };\n micromatch2.braceExpand = (pattern, options8) => {\n if (typeof pattern !== \"string\") throw new TypeError(\"Expected a string\");\n return micromatch2.braces(pattern, { ...options8, expand: true });\n };\n micromatch2.hasBraces = hasBraces;\n module.exports = micromatch2;\n }\n});\n\n// node_modules/fast-glob/out/utils/pattern.js\nvar require_pattern = __commonJS({\n \"node_modules/fast-glob/out/utils/pattern.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isAbsolute = exports.partitionAbsoluteAndRelative = exports.removeDuplicateSlashes = exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0;\n var path15 = __require(\"path\");\n var globParent = require_glob_parent();\n var micromatch2 = require_micromatch();\n var GLOBSTAR = \"**\";\n var ESCAPE_SYMBOL = \"\\\\\";\n var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;\n var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\\[[^[]*]/;\n var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\\([^(]*\\|[^|]*\\)/;\n var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\\([^(]*\\)/;\n var BRACE_EXPANSION_SEPARATORS_RE = /,|\\.\\./;\n var DOUBLE_SLASH_RE = /(?!^)\\/{2,}/g;\n function isStaticPattern(pattern, options8 = {}) {\n return !isDynamicPattern(pattern, options8);\n }\n exports.isStaticPattern = isStaticPattern;\n function isDynamicPattern(pattern, options8 = {}) {\n if (pattern === \"\") {\n return false;\n }\n if (options8.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) {\n return true;\n }\n if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options8.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) {\n return true;\n }\n if (options8.braceExpansion !== false && hasBraceExpansion(pattern)) {\n return true;\n }\n return false;\n }\n exports.isDynamicPattern = isDynamicPattern;\n function hasBraceExpansion(pattern) {\n const openingBraceIndex = pattern.indexOf(\"{\");\n if (openingBraceIndex === -1) {\n return false;\n }\n const closingBraceIndex = pattern.indexOf(\"}\", openingBraceIndex + 1);\n if (closingBraceIndex === -1) {\n return false;\n }\n const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex);\n return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);\n }\n function convertToPositivePattern(pattern) {\n return isNegativePattern(pattern) ? pattern.slice(1) : pattern;\n }\n exports.convertToPositivePattern = convertToPositivePattern;\n function convertToNegativePattern(pattern) {\n return \"!\" + pattern;\n }\n exports.convertToNegativePattern = convertToNegativePattern;\n function isNegativePattern(pattern) {\n return pattern.startsWith(\"!\") && pattern[1] !== \"(\";\n }\n exports.isNegativePattern = isNegativePattern;\n function isPositivePattern(pattern) {\n return !isNegativePattern(pattern);\n }\n exports.isPositivePattern = isPositivePattern;\n function getNegativePatterns(patterns) {\n return patterns.filter(isNegativePattern);\n }\n exports.getNegativePatterns = getNegativePatterns;\n function getPositivePatterns(patterns) {\n return patterns.filter(isPositivePattern);\n }\n exports.getPositivePatterns = getPositivePatterns;\n function getPatternsInsideCurrentDirectory(patterns) {\n return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern));\n }\n exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;\n function getPatternsOutsideCurrentDirectory(patterns) {\n return patterns.filter(isPatternRelatedToParentDirectory);\n }\n exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;\n function isPatternRelatedToParentDirectory(pattern) {\n return pattern.startsWith(\"..\") || pattern.startsWith(\"./..\");\n }\n exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;\n function getBaseDirectory(pattern) {\n return globParent(pattern, { flipBackslashes: false });\n }\n exports.getBaseDirectory = getBaseDirectory;\n function hasGlobStar(pattern) {\n return pattern.includes(GLOBSTAR);\n }\n exports.hasGlobStar = hasGlobStar;\n function endsWithSlashGlobStar(pattern) {\n return pattern.endsWith(\"/\" + GLOBSTAR);\n }\n exports.endsWithSlashGlobStar = endsWithSlashGlobStar;\n function isAffectDepthOfReadingPattern(pattern) {\n const basename = path15.basename(pattern);\n return endsWithSlashGlobStar(pattern) || isStaticPattern(basename);\n }\n exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;\n function expandPatternsWithBraceExpansion(patterns) {\n return patterns.reduce((collection, pattern) => {\n return collection.concat(expandBraceExpansion(pattern));\n }, []);\n }\n exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;\n function expandBraceExpansion(pattern) {\n const patterns = micromatch2.braces(pattern, { expand: true, nodupes: true, keepEscaping: true });\n patterns.sort((a, b) => a.length - b.length);\n return patterns.filter((pattern2) => pattern2 !== \"\");\n }\n exports.expandBraceExpansion = expandBraceExpansion;\n function getPatternParts(pattern, options8) {\n let { parts } = micromatch2.scan(pattern, Object.assign(Object.assign({}, options8), { parts: true }));\n if (parts.length === 0) {\n parts = [pattern];\n }\n if (parts[0].startsWith(\"/\")) {\n parts[0] = parts[0].slice(1);\n parts.unshift(\"\");\n }\n return parts;\n }\n exports.getPatternParts = getPatternParts;\n function makeRe(pattern, options8) {\n return micromatch2.makeRe(pattern, options8);\n }\n exports.makeRe = makeRe;\n function convertPatternsToRe(patterns, options8) {\n return patterns.map((pattern) => makeRe(pattern, options8));\n }\n exports.convertPatternsToRe = convertPatternsToRe;\n function matchAny(entry, patternsRe) {\n return patternsRe.some((patternRe) => patternRe.test(entry));\n }\n exports.matchAny = matchAny;\n function removeDuplicateSlashes(pattern) {\n return pattern.replace(DOUBLE_SLASH_RE, \"/\");\n }\n exports.removeDuplicateSlashes = removeDuplicateSlashes;\n function partitionAbsoluteAndRelative(patterns) {\n const absolute = [];\n const relative2 = [];\n for (const pattern of patterns) {\n if (isAbsolute(pattern)) {\n absolute.push(pattern);\n } else {\n relative2.push(pattern);\n }\n }\n return [absolute, relative2];\n }\n exports.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;\n function isAbsolute(pattern) {\n return path15.isAbsolute(pattern);\n }\n exports.isAbsolute = isAbsolute;\n }\n});\n\n// node_modules/merge2/index.js\nvar require_merge2 = __commonJS({\n \"node_modules/merge2/index.js\"(exports, module) {\n \"use strict\";\n var Stream = __require(\"stream\");\n var PassThrough = Stream.PassThrough;\n var slice = Array.prototype.slice;\n module.exports = merge2;\n function merge2() {\n const streamsQueue = [];\n const args = slice.call(arguments);\n let merging = false;\n let options8 = args[args.length - 1];\n if (options8 && !Array.isArray(options8) && options8.pipe == null) {\n args.pop();\n } else {\n options8 = {};\n }\n const doEnd = options8.end !== false;\n const doPipeError = options8.pipeError === true;\n if (options8.objectMode == null) {\n options8.objectMode = true;\n }\n if (options8.highWaterMark == null) {\n options8.highWaterMark = 64 * 1024;\n }\n const mergedStream = PassThrough(options8);\n function addStream() {\n for (let i = 0, len = arguments.length; i < len; i++) {\n streamsQueue.push(pauseStreams(arguments[i], options8));\n }\n mergeStream();\n return this;\n }\n function mergeStream() {\n if (merging) {\n return;\n }\n merging = true;\n let streams = streamsQueue.shift();\n if (!streams) {\n process.nextTick(endStream);\n return;\n }\n if (!Array.isArray(streams)) {\n streams = [streams];\n }\n let pipesCount = streams.length + 1;\n function next() {\n if (--pipesCount > 0) {\n return;\n }\n merging = false;\n mergeStream();\n }\n function pipe(stream) {\n function onend() {\n stream.removeListener(\"merge2UnpipeEnd\", onend);\n stream.removeListener(\"end\", onend);\n if (doPipeError) {\n stream.removeListener(\"error\", onerror);\n }\n next();\n }\n function onerror(err) {\n mergedStream.emit(\"error\", err);\n }\n if (stream._readableState.endEmitted) {\n return next();\n }\n stream.on(\"merge2UnpipeEnd\", onend);\n stream.on(\"end\", onend);\n if (doPipeError) {\n stream.on(\"error\", onerror);\n }\n stream.pipe(mergedStream, { end: false });\n stream.resume();\n }\n for (let i = 0; i < streams.length; i++) {\n pipe(streams[i]);\n }\n next();\n }\n function endStream() {\n merging = false;\n mergedStream.emit(\"queueDrain\");\n if (doEnd) {\n mergedStream.end();\n }\n }\n mergedStream.setMaxListeners(0);\n mergedStream.add = addStream;\n mergedStream.on(\"unpipe\", function(stream) {\n stream.emit(\"merge2UnpipeEnd\");\n });\n if (args.length) {\n addStream.apply(null, args);\n }\n return mergedStream;\n }\n function pauseStreams(streams, options8) {\n if (!Array.isArray(streams)) {\n if (!streams._readableState && streams.pipe) {\n streams = streams.pipe(PassThrough(options8));\n }\n if (!streams._readableState || !streams.pause || !streams.pipe) {\n throw new Error(\"Only readable stream can be merged.\");\n }\n streams.pause();\n } else {\n for (let i = 0, len = streams.length; i < len; i++) {\n streams[i] = pauseStreams(streams[i], options8);\n }\n }\n return streams;\n }\n }\n});\n\n// node_modules/fast-glob/out/utils/stream.js\nvar require_stream = __commonJS({\n \"node_modules/fast-glob/out/utils/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.merge = void 0;\n var merge2 = require_merge2();\n function merge(streams) {\n const mergedStream = merge2(streams);\n streams.forEach((stream) => {\n stream.once(\"error\", (error) => mergedStream.emit(\"error\", error));\n });\n mergedStream.once(\"close\", () => propagateCloseEventToSources(streams));\n mergedStream.once(\"end\", () => propagateCloseEventToSources(streams));\n return mergedStream;\n }\n exports.merge = merge;\n function propagateCloseEventToSources(streams) {\n streams.forEach((stream) => stream.emit(\"close\"));\n }\n }\n});\n\n// node_modules/fast-glob/out/utils/string.js\nvar require_string = __commonJS({\n \"node_modules/fast-glob/out/utils/string.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.isEmpty = exports.isString = void 0;\n function isString(input) {\n return typeof input === \"string\";\n }\n exports.isString = isString;\n function isEmpty(input) {\n return input === \"\";\n }\n exports.isEmpty = isEmpty;\n }\n});\n\n// node_modules/fast-glob/out/utils/index.js\nvar require_utils3 = __commonJS({\n \"node_modules/fast-glob/out/utils/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0;\n var array2 = require_array();\n exports.array = array2;\n var errno = require_errno();\n exports.errno = errno;\n var fs4 = require_fs();\n exports.fs = fs4;\n var path15 = require_path();\n exports.path = path15;\n var pattern = require_pattern();\n exports.pattern = pattern;\n var stream = require_stream();\n exports.stream = stream;\n var string = require_string();\n exports.string = string;\n }\n});\n\n// node_modules/fast-glob/out/managers/tasks.js\nvar require_tasks = __commonJS({\n \"node_modules/fast-glob/out/managers/tasks.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0;\n var utils = require_utils3();\n function generate(input, settings) {\n const patterns = processPatterns(input, settings);\n const ignore = processPatterns(settings.ignore, settings);\n const positivePatterns = getPositivePatterns(patterns);\n const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);\n const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings));\n const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings));\n const staticTasks = convertPatternsToTasks(\n staticPatterns,\n negativePatterns,\n /* dynamic */\n false\n );\n const dynamicTasks = convertPatternsToTasks(\n dynamicPatterns,\n negativePatterns,\n /* dynamic */\n true\n );\n return staticTasks.concat(dynamicTasks);\n }\n exports.generate = generate;\n function processPatterns(input, settings) {\n let patterns = input;\n if (settings.braceExpansion) {\n patterns = utils.pattern.expandPatternsWithBraceExpansion(patterns);\n }\n if (settings.baseNameMatch) {\n patterns = patterns.map((pattern) => pattern.includes(\"/\") ? pattern : `**/${pattern}`);\n }\n return patterns.map((pattern) => utils.pattern.removeDuplicateSlashes(pattern));\n }\n function convertPatternsToTasks(positive, negative, dynamic) {\n const tasks = [];\n const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive);\n const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive);\n const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);\n const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);\n tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));\n if (\".\" in insideCurrentDirectoryGroup) {\n tasks.push(convertPatternGroupToTask(\".\", patternsInsideCurrentDirectory, negative, dynamic));\n } else {\n tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));\n }\n return tasks;\n }\n exports.convertPatternsToTasks = convertPatternsToTasks;\n function getPositivePatterns(patterns) {\n return utils.pattern.getPositivePatterns(patterns);\n }\n exports.getPositivePatterns = getPositivePatterns;\n function getNegativePatternsAsPositive(patterns, ignore) {\n const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore);\n const positive = negative.map(utils.pattern.convertToPositivePattern);\n return positive;\n }\n exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive;\n function groupPatternsByBaseDirectory(patterns) {\n const group = {};\n return patterns.reduce((collection, pattern) => {\n const base = utils.pattern.getBaseDirectory(pattern);\n if (base in collection) {\n collection[base].push(pattern);\n } else {\n collection[base] = [pattern];\n }\n return collection;\n }, group);\n }\n exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;\n function convertPatternGroupsToTasks(positive, negative, dynamic) {\n return Object.keys(positive).map((base) => {\n return convertPatternGroupToTask(base, positive[base], negative, dynamic);\n });\n }\n exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks;\n function convertPatternGroupToTask(base, positive, negative, dynamic) {\n return {\n dynamic,\n positive,\n negative,\n base,\n patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern))\n };\n }\n exports.convertPatternGroupToTask = convertPatternGroupToTask;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/providers/async.js\nvar require_async = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.read = void 0;\n function read3(path15, settings, callback) {\n settings.fs.lstat(path15, (lstatError, lstat2) => {\n if (lstatError !== null) {\n callFailureCallback(callback, lstatError);\n return;\n }\n if (!lstat2.isSymbolicLink() || !settings.followSymbolicLink) {\n callSuccessCallback(callback, lstat2);\n return;\n }\n settings.fs.stat(path15, (statError, stat2) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n callFailureCallback(callback, statError);\n return;\n }\n callSuccessCallback(callback, lstat2);\n return;\n }\n if (settings.markSymbolicLink) {\n stat2.isSymbolicLink = () => true;\n }\n callSuccessCallback(callback, stat2);\n });\n });\n }\n exports.read = read3;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, result) {\n callback(null, result);\n }\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/providers/sync.js\nvar require_sync = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.read = void 0;\n function read3(path15, settings) {\n const lstat2 = settings.fs.lstatSync(path15);\n if (!lstat2.isSymbolicLink() || !settings.followSymbolicLink) {\n return lstat2;\n }\n try {\n const stat2 = settings.fs.statSync(path15);\n if (settings.markSymbolicLink) {\n stat2.isSymbolicLink = () => true;\n }\n return stat2;\n } catch (error) {\n if (!settings.throwErrorOnBrokenSymbolicLink) {\n return lstat2;\n }\n throw error;\n }\n }\n exports.read = read3;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/adapters/fs.js\nvar require_fs2 = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/adapters/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\n var fs4 = __require(\"fs\");\n exports.FILE_SYSTEM_ADAPTER = {\n lstat: fs4.lstat,\n stat: fs4.stat,\n lstatSync: fs4.lstatSync,\n statSync: fs4.statSync\n };\n function createFileSystemAdapter(fsMethods) {\n if (fsMethods === void 0) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n }\n exports.createFileSystemAdapter = createFileSystemAdapter;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/settings.js\nvar require_settings = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs4 = require_fs2();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);\n this.fs = fs4.createFileSystemAdapter(this._options.fs);\n this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.stat/out/index.js\nvar require_out = __commonJS({\n \"node_modules/@nodelib/fs.stat/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.statSync = exports.stat = exports.Settings = void 0;\n var async = require_async();\n var sync = require_sync();\n var settings_1 = require_settings();\n exports.Settings = settings_1.default;\n function stat2(path15, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n async.read(path15, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path15, getSettings(optionsOrSettingsOrCallback), callback);\n }\n exports.stat = stat2;\n function statSync2(path15, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path15, settings);\n }\n exports.statSync = statSync2;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/queue-microtask/index.js\nvar require_queue_microtask = __commonJS({\n \"node_modules/queue-microtask/index.js\"(exports, module) {\n var promise;\n module.exports = typeof queueMicrotask === \"function\" ? queueMicrotask.bind(typeof window !== \"undefined\" ? window : global) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err) => setTimeout(() => {\n throw err;\n }, 0));\n }\n});\n\n// node_modules/run-parallel/index.js\nvar require_run_parallel = __commonJS({\n \"node_modules/run-parallel/index.js\"(exports, module) {\n module.exports = runParallel;\n var queueMicrotask2 = require_queue_microtask();\n function runParallel(tasks, cb) {\n let results, pending, keys;\n let isSync = true;\n if (Array.isArray(tasks)) {\n results = [];\n pending = tasks.length;\n } else {\n keys = Object.keys(tasks);\n results = {};\n pending = keys.length;\n }\n function done(err) {\n function end() {\n if (cb) cb(err, results);\n cb = null;\n }\n if (isSync) queueMicrotask2(end);\n else end();\n }\n function each(i, err, result) {\n results[i] = result;\n if (--pending === 0 || err) {\n done(err);\n }\n }\n if (!pending) {\n done(null);\n } else if (keys) {\n keys.forEach(function(key2) {\n tasks[key2](function(err, result) {\n each(key2, err, result);\n });\n });\n } else {\n tasks.forEach(function(task, i) {\n task(function(err, result) {\n each(i, err, result);\n });\n });\n }\n isSync = false;\n }\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/constants.js\nvar require_constants3 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/constants.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;\n var NODE_PROCESS_VERSION_PARTS = process.versions.node.split(\".\");\n if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) {\n throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);\n }\n var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);\n var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);\n var SUPPORTED_MAJOR_VERSION = 10;\n var SUPPORTED_MINOR_VERSION = 10;\n var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;\n var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;\n exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/utils/fs.js\nvar require_fs3 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/utils/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createDirentFromStats = void 0;\n var DirentFromStats = class {\n constructor(name, stats) {\n this.name = name;\n this.isBlockDevice = stats.isBlockDevice.bind(stats);\n this.isCharacterDevice = stats.isCharacterDevice.bind(stats);\n this.isDirectory = stats.isDirectory.bind(stats);\n this.isFIFO = stats.isFIFO.bind(stats);\n this.isFile = stats.isFile.bind(stats);\n this.isSocket = stats.isSocket.bind(stats);\n this.isSymbolicLink = stats.isSymbolicLink.bind(stats);\n }\n };\n function createDirentFromStats(name, stats) {\n return new DirentFromStats(name, stats);\n }\n exports.createDirentFromStats = createDirentFromStats;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/utils/index.js\nvar require_utils4 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/utils/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.fs = void 0;\n var fs4 = require_fs3();\n exports.fs = fs4;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/common.js\nvar require_common = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/common.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.joinPathSegments = void 0;\n function joinPathSegments(a, b, separator) {\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n }\n exports.joinPathSegments = joinPathSegments;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/async.js\nvar require_async2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\n var fsStat = require_out();\n var rpl = require_run_parallel();\n var constants_1 = require_constants3();\n var utils = require_utils4();\n var common = require_common();\n function read3(directory, settings, callback) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n readdirWithFileTypes(directory, settings, callback);\n return;\n }\n readdir(directory, settings, callback);\n }\n exports.read = read3;\n function readdirWithFileTypes(directory, settings, callback) {\n settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const entries = dirents.map((dirent) => ({\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n }));\n if (!settings.followSymbolicLinks) {\n callSuccessCallback(callback, entries);\n return;\n }\n const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings));\n rpl(tasks, (rplError, rplEntries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, rplEntries);\n });\n });\n }\n exports.readdirWithFileTypes = readdirWithFileTypes;\n function makeRplTaskEntry(entry, settings) {\n return (done) => {\n if (!entry.dirent.isSymbolicLink()) {\n done(null, entry);\n return;\n }\n settings.fs.stat(entry.path, (statError, stats) => {\n if (statError !== null) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n done(statError);\n return;\n }\n done(null, entry);\n return;\n }\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n done(null, entry);\n });\n };\n }\n function readdir(directory, settings, callback) {\n settings.fs.readdir(directory, (readdirError, names) => {\n if (readdirError !== null) {\n callFailureCallback(callback, readdirError);\n return;\n }\n const tasks = names.map((name) => {\n const path15 = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n return (done) => {\n fsStat.stat(path15, settings.fsStatSettings, (error, stats) => {\n if (error !== null) {\n done(error);\n return;\n }\n const entry = {\n name,\n path: path15,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n done(null, entry);\n });\n };\n });\n rpl(tasks, (rplError, entries) => {\n if (rplError !== null) {\n callFailureCallback(callback, rplError);\n return;\n }\n callSuccessCallback(callback, entries);\n });\n });\n }\n exports.readdir = readdir;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, result) {\n callback(null, result);\n }\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/providers/sync.js\nvar require_sync2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.readdir = exports.readdirWithFileTypes = exports.read = void 0;\n var fsStat = require_out();\n var constants_1 = require_constants3();\n var utils = require_utils4();\n var common = require_common();\n function read3(directory, settings) {\n if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {\n return readdirWithFileTypes(directory, settings);\n }\n return readdir(directory, settings);\n }\n exports.read = read3;\n function readdirWithFileTypes(directory, settings) {\n const dirents = settings.fs.readdirSync(directory, { withFileTypes: true });\n return dirents.map((dirent) => {\n const entry = {\n dirent,\n name: dirent.name,\n path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator)\n };\n if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) {\n try {\n const stats = settings.fs.statSync(entry.path);\n entry.dirent = utils.fs.createDirentFromStats(entry.name, stats);\n } catch (error) {\n if (settings.throwErrorOnBrokenSymbolicLink) {\n throw error;\n }\n }\n }\n return entry;\n });\n }\n exports.readdirWithFileTypes = readdirWithFileTypes;\n function readdir(directory, settings) {\n const names = settings.fs.readdirSync(directory);\n return names.map((name) => {\n const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);\n const stats = fsStat.statSync(entryPath, settings.fsStatSettings);\n const entry = {\n name,\n path: entryPath,\n dirent: utils.fs.createDirentFromStats(name, stats)\n };\n if (settings.stats) {\n entry.stats = stats;\n }\n return entry;\n });\n }\n exports.readdir = readdir;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/adapters/fs.js\nvar require_fs4 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/adapters/fs.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0;\n var fs4 = __require(\"fs\");\n exports.FILE_SYSTEM_ADAPTER = {\n lstat: fs4.lstat,\n stat: fs4.stat,\n lstatSync: fs4.lstatSync,\n statSync: fs4.statSync,\n readdir: fs4.readdir,\n readdirSync: fs4.readdirSync\n };\n function createFileSystemAdapter(fsMethods) {\n if (fsMethods === void 0) {\n return exports.FILE_SYSTEM_ADAPTER;\n }\n return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods);\n }\n exports.createFileSystemAdapter = createFileSystemAdapter;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/settings.js\nvar require_settings2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path15 = __require(\"path\");\n var fsStat = require_out();\n var fs4 = require_fs4();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);\n this.fs = fs4.createFileSystemAdapter(this._options.fs);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path15.sep);\n this.stats = this._getValue(this._options.stats, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);\n this.fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this.followSymbolicLinks,\n fs: this.fs,\n throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.scandir/out/index.js\nvar require_out2 = __commonJS({\n \"node_modules/@nodelib/fs.scandir/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.Settings = exports.scandirSync = exports.scandir = void 0;\n var async = require_async2();\n var sync = require_sync2();\n var settings_1 = require_settings2();\n exports.Settings = settings_1.default;\n function scandir(path15, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n async.read(path15, getSettings(), optionsOrSettingsOrCallback);\n return;\n }\n async.read(path15, getSettings(optionsOrSettingsOrCallback), callback);\n }\n exports.scandir = scandir;\n function scandirSync(path15, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n return sync.read(path15, settings);\n }\n exports.scandirSync = scandirSync;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/reusify/reusify.js\nvar require_reusify = __commonJS({\n \"node_modules/reusify/reusify.js\"(exports, module) {\n \"use strict\";\n function reusify(Constructor) {\n var head = new Constructor();\n var tail = head;\n function get() {\n var current = head;\n if (current.next) {\n head = current.next;\n } else {\n head = new Constructor();\n tail = head;\n }\n current.next = null;\n return current;\n }\n function release(obj) {\n tail.next = obj;\n tail = obj;\n }\n return {\n get,\n release\n };\n }\n module.exports = reusify;\n }\n});\n\n// node_modules/fastq/queue.js\nvar require_queue = __commonJS({\n \"node_modules/fastq/queue.js\"(exports, module) {\n \"use strict\";\n var reusify = require_reusify();\n function fastqueue(context, worker, _concurrency) {\n if (typeof context === \"function\") {\n _concurrency = worker;\n worker = context;\n context = null;\n }\n if (!(_concurrency >= 1)) {\n throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");\n }\n var cache3 = reusify(Task);\n var queueHead = null;\n var queueTail = null;\n var _running = 0;\n var errorHandler = null;\n var self = {\n push: push2,\n drain: noop2,\n saturated: noop2,\n pause,\n paused: false,\n get concurrency() {\n return _concurrency;\n },\n set concurrency(value) {\n if (!(value >= 1)) {\n throw new Error(\"fastqueue concurrency must be equal to or greater than 1\");\n }\n _concurrency = value;\n if (self.paused) return;\n for (; queueHead && _running < _concurrency; ) {\n _running++;\n release();\n }\n },\n running,\n resume,\n idle,\n length,\n getQueue,\n unshift,\n empty: noop2,\n kill,\n killAndDrain,\n error\n };\n return self;\n function running() {\n return _running;\n }\n function pause() {\n self.paused = true;\n }\n function length() {\n var current = queueHead;\n var counter = 0;\n while (current) {\n current = current.next;\n counter++;\n }\n return counter;\n }\n function getQueue() {\n var current = queueHead;\n var tasks = [];\n while (current) {\n tasks.push(current.value);\n current = current.next;\n }\n return tasks;\n }\n function resume() {\n if (!self.paused) return;\n self.paused = false;\n if (queueHead === null) {\n _running++;\n release();\n return;\n }\n for (; queueHead && _running < _concurrency; ) {\n _running++;\n release();\n }\n }\n function idle() {\n return _running === 0 && self.length() === 0;\n }\n function push2(value, done) {\n var current = cache3.get();\n current.context = context;\n current.release = release;\n current.value = value;\n current.callback = done || noop2;\n current.errorHandler = errorHandler;\n if (_running >= _concurrency || self.paused) {\n if (queueTail) {\n queueTail.next = current;\n queueTail = current;\n } else {\n queueHead = current;\n queueTail = current;\n self.saturated();\n }\n } else {\n _running++;\n worker.call(context, current.value, current.worked);\n }\n }\n function unshift(value, done) {\n var current = cache3.get();\n current.context = context;\n current.release = release;\n current.value = value;\n current.callback = done || noop2;\n current.errorHandler = errorHandler;\n if (_running >= _concurrency || self.paused) {\n if (queueHead) {\n current.next = queueHead;\n queueHead = current;\n } else {\n queueHead = current;\n queueTail = current;\n self.saturated();\n }\n } else {\n _running++;\n worker.call(context, current.value, current.worked);\n }\n }\n function release(holder) {\n if (holder) {\n cache3.release(holder);\n }\n var next = queueHead;\n if (next && _running <= _concurrency) {\n if (!self.paused) {\n if (queueTail === queueHead) {\n queueTail = null;\n }\n queueHead = next.next;\n next.next = null;\n worker.call(context, next.value, next.worked);\n if (queueTail === null) {\n self.empty();\n }\n } else {\n _running--;\n }\n } else if (--_running === 0) {\n self.drain();\n }\n }\n function kill() {\n queueHead = null;\n queueTail = null;\n self.drain = noop2;\n }\n function killAndDrain() {\n queueHead = null;\n queueTail = null;\n self.drain();\n self.drain = noop2;\n }\n function error(handler) {\n errorHandler = handler;\n }\n }\n function noop2() {\n }\n function Task() {\n this.value = null;\n this.callback = noop2;\n this.next = null;\n this.release = noop2;\n this.context = null;\n this.errorHandler = null;\n var self = this;\n this.worked = function worked(err, result) {\n var callback = self.callback;\n var errorHandler = self.errorHandler;\n var val = self.value;\n self.value = null;\n self.callback = noop2;\n if (self.errorHandler) {\n errorHandler(err, val);\n }\n callback.call(self.context, err, result);\n self.release(self);\n };\n }\n function queueAsPromised(context, worker, _concurrency) {\n if (typeof context === \"function\") {\n _concurrency = worker;\n worker = context;\n context = null;\n }\n function asyncWrapper(arg, cb) {\n worker.call(this, arg).then(function(res) {\n cb(null, res);\n }, cb);\n }\n var queue = fastqueue(context, asyncWrapper, _concurrency);\n var pushCb = queue.push;\n var unshiftCb = queue.unshift;\n queue.push = push2;\n queue.unshift = unshift;\n queue.drained = drained;\n return queue;\n function push2(value) {\n var p = new Promise(function(resolve3, reject) {\n pushCb(value, function(err, result) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(result);\n });\n });\n p.catch(noop2);\n return p;\n }\n function unshift(value) {\n var p = new Promise(function(resolve3, reject) {\n unshiftCb(value, function(err, result) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(result);\n });\n });\n p.catch(noop2);\n return p;\n }\n function drained() {\n var p = new Promise(function(resolve3) {\n process.nextTick(function() {\n if (queue.idle()) {\n resolve3();\n } else {\n var previousDrain = queue.drain;\n queue.drain = function() {\n if (typeof previousDrain === \"function\") previousDrain();\n resolve3();\n queue.drain = previousDrain;\n };\n }\n });\n });\n return p;\n }\n }\n module.exports = fastqueue;\n module.exports.promise = queueAsPromised;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/common.js\nvar require_common2 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/common.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0;\n function isFatalError(settings, error) {\n if (settings.errorFilter === null) {\n return true;\n }\n return !settings.errorFilter(error);\n }\n exports.isFatalError = isFatalError;\n function isAppliedFilter(filter2, value) {\n return filter2 === null || filter2(value);\n }\n exports.isAppliedFilter = isAppliedFilter;\n function replacePathSegmentSeparator(filepath, separator) {\n return filepath.split(/[/\\\\]/).join(separator);\n }\n exports.replacePathSegmentSeparator = replacePathSegmentSeparator;\n function joinPathSegments(a, b, separator) {\n if (a === \"\") {\n return b;\n }\n if (a.endsWith(separator)) {\n return a + b;\n }\n return a + separator + b;\n }\n exports.joinPathSegments = joinPathSegments;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/reader.js\nvar require_reader = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/reader.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var common = require_common2();\n var Reader = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator);\n }\n };\n exports.default = Reader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/async.js\nvar require_async3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var events_1 = __require(\"events\");\n var fsScandir = require_out2();\n var fastq = require_queue();\n var common = require_common2();\n var reader_1 = require_reader();\n var AsyncReader = class extends reader_1.default {\n constructor(_root, _settings) {\n super(_root, _settings);\n this._settings = _settings;\n this._scandir = fsScandir.scandir;\n this._emitter = new events_1.EventEmitter();\n this._queue = fastq(this._worker.bind(this), this._settings.concurrency);\n this._isFatalError = false;\n this._isDestroyed = false;\n this._queue.drain = () => {\n if (!this._isFatalError) {\n this._emitter.emit(\"end\");\n }\n };\n }\n read() {\n this._isFatalError = false;\n this._isDestroyed = false;\n setImmediate(() => {\n this._pushToQueue(this._root, this._settings.basePath);\n });\n return this._emitter;\n }\n get isDestroyed() {\n return this._isDestroyed;\n }\n destroy() {\n if (this._isDestroyed) {\n throw new Error(\"The reader is already destroyed\");\n }\n this._isDestroyed = true;\n this._queue.killAndDrain();\n }\n onEntry(callback) {\n this._emitter.on(\"entry\", callback);\n }\n onError(callback) {\n this._emitter.once(\"error\", callback);\n }\n onEnd(callback) {\n this._emitter.once(\"end\", callback);\n }\n _pushToQueue(directory, base) {\n const queueItem = { directory, base };\n this._queue.push(queueItem, (error) => {\n if (error !== null) {\n this._handleError(error);\n }\n });\n }\n _worker(item, done) {\n this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => {\n if (error !== null) {\n done(error, void 0);\n return;\n }\n for (const entry of entries) {\n this._handleEntry(entry, item.base);\n }\n done(null, void 0);\n });\n }\n _handleError(error) {\n if (this._isDestroyed || !common.isFatalError(this._settings, error)) {\n return;\n }\n this._isFatalError = true;\n this._isDestroyed = true;\n this._emitter.emit(\"error\", error);\n }\n _handleEntry(entry, base) {\n if (this._isDestroyed || this._isFatalError) {\n return;\n }\n const fullpath = entry.path;\n if (base !== void 0) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._emitEntry(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path);\n }\n }\n _emitEntry(entry) {\n this._emitter.emit(\"entry\", entry);\n }\n };\n exports.default = AsyncReader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/async.js\nvar require_async4 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var async_1 = require_async3();\n var AsyncProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._storage = [];\n }\n read(callback) {\n this._reader.onError((error) => {\n callFailureCallback(callback, error);\n });\n this._reader.onEntry((entry) => {\n this._storage.push(entry);\n });\n this._reader.onEnd(() => {\n callSuccessCallback(callback, this._storage);\n });\n this._reader.read();\n }\n };\n exports.default = AsyncProvider;\n function callFailureCallback(callback, error) {\n callback(error);\n }\n function callSuccessCallback(callback, entries) {\n callback(null, entries);\n }\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/stream.js\nvar require_stream2 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var async_1 = require_async3();\n var StreamProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new async_1.default(this._root, this._settings);\n this._stream = new stream_1.Readable({\n objectMode: true,\n read: () => {\n },\n destroy: () => {\n if (!this._reader.isDestroyed) {\n this._reader.destroy();\n }\n }\n });\n }\n read() {\n this._reader.onError((error) => {\n this._stream.emit(\"error\", error);\n });\n this._reader.onEntry((entry) => {\n this._stream.push(entry);\n });\n this._reader.onEnd(() => {\n this._stream.push(null);\n });\n this._reader.read();\n return this._stream;\n }\n };\n exports.default = StreamProvider;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/readers/sync.js\nvar require_sync3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/readers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsScandir = require_out2();\n var common = require_common2();\n var reader_1 = require_reader();\n var SyncReader = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._scandir = fsScandir.scandirSync;\n this._storage = [];\n this._queue = /* @__PURE__ */ new Set();\n }\n read() {\n this._pushToQueue(this._root, this._settings.basePath);\n this._handleQueue();\n return this._storage;\n }\n _pushToQueue(directory, base) {\n this._queue.add({ directory, base });\n }\n _handleQueue() {\n for (const item of this._queue.values()) {\n this._handleDirectory(item.directory, item.base);\n }\n }\n _handleDirectory(directory, base) {\n try {\n const entries = this._scandir(directory, this._settings.fsScandirSettings);\n for (const entry of entries) {\n this._handleEntry(entry, base);\n }\n } catch (error) {\n this._handleError(error);\n }\n }\n _handleError(error) {\n if (!common.isFatalError(this._settings, error)) {\n return;\n }\n throw error;\n }\n _handleEntry(entry, base) {\n const fullpath = entry.path;\n if (base !== void 0) {\n entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator);\n }\n if (common.isAppliedFilter(this._settings.entryFilter, entry)) {\n this._pushToStorage(entry);\n }\n if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) {\n this._pushToQueue(fullpath, base === void 0 ? void 0 : entry.path);\n }\n }\n _pushToStorage(entry) {\n this._storage.push(entry);\n }\n };\n exports.default = SyncReader;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/providers/sync.js\nvar require_sync4 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var sync_1 = require_sync3();\n var SyncProvider = class {\n constructor(_root, _settings) {\n this._root = _root;\n this._settings = _settings;\n this._reader = new sync_1.default(this._root, this._settings);\n }\n read() {\n return this._reader.read();\n }\n };\n exports.default = SyncProvider;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/settings.js\nvar require_settings3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path15 = __require(\"path\");\n var fsScandir = require_out2();\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.basePath = this._getValue(this._options.basePath, void 0);\n this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);\n this.deepFilter = this._getValue(this._options.deepFilter, null);\n this.entryFilter = this._getValue(this._options.entryFilter, null);\n this.errorFilter = this._getValue(this._options.errorFilter, null);\n this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path15.sep);\n this.fsScandirSettings = new fsScandir.Settings({\n followSymbolicLinks: this._options.followSymbolicLinks,\n fs: this._options.fs,\n pathSegmentSeparator: this._options.pathSegmentSeparator,\n stats: this._options.stats,\n throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink\n });\n }\n _getValue(option, value) {\n return option !== null && option !== void 0 ? option : value;\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/@nodelib/fs.walk/out/index.js\nvar require_out3 = __commonJS({\n \"node_modules/@nodelib/fs.walk/out/index.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0;\n var async_1 = require_async4();\n var stream_1 = require_stream2();\n var sync_1 = require_sync4();\n var settings_1 = require_settings3();\n exports.Settings = settings_1.default;\n function walk(directory, optionsOrSettingsOrCallback, callback) {\n if (typeof optionsOrSettingsOrCallback === \"function\") {\n new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback);\n return;\n }\n new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);\n }\n exports.walk = walk;\n function walkSync(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new sync_1.default(directory, settings);\n return provider.read();\n }\n exports.walkSync = walkSync;\n function walkStream(directory, optionsOrSettings) {\n const settings = getSettings(optionsOrSettings);\n const provider = new stream_1.default(directory, settings);\n return provider.read();\n }\n exports.walkStream = walkStream;\n function getSettings(settingsOrOptions = {}) {\n if (settingsOrOptions instanceof settings_1.default) {\n return settingsOrOptions;\n }\n return new settings_1.default(settingsOrOptions);\n }\n }\n});\n\n// node_modules/fast-glob/out/readers/reader.js\nvar require_reader2 = __commonJS({\n \"node_modules/fast-glob/out/readers/reader.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path15 = __require(\"path\");\n var fsStat = require_out();\n var utils = require_utils3();\n var Reader = class {\n constructor(_settings) {\n this._settings = _settings;\n this._fsStatSettings = new fsStat.Settings({\n followSymbolicLink: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks\n });\n }\n _getFullEntryPath(filepath) {\n return path15.resolve(this._settings.cwd, filepath);\n }\n _makeEntry(stats, pattern) {\n const entry = {\n name: pattern,\n path: pattern,\n dirent: utils.fs.createDirentFromStats(pattern, stats)\n };\n if (this._settings.stats) {\n entry.stats = stats;\n }\n return entry;\n }\n _isFatalError(error) {\n return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors;\n }\n };\n exports.default = Reader;\n }\n});\n\n// node_modules/fast-glob/out/readers/stream.js\nvar require_stream3 = __commonJS({\n \"node_modules/fast-glob/out/readers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var fsStat = require_out();\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var ReaderStream = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkStream = fsWalk.walkStream;\n this._stat = fsStat.stat;\n }\n dynamic(root2, options8) {\n return this._walkStream(root2, options8);\n }\n static(patterns, options8) {\n const filepaths = patterns.map(this._getFullEntryPath, this);\n const stream = new stream_1.PassThrough({ objectMode: true });\n stream._write = (index, _enc, done) => {\n return this._getEntry(filepaths[index], patterns[index], options8).then((entry) => {\n if (entry !== null && options8.entryFilter(entry)) {\n stream.push(entry);\n }\n if (index === filepaths.length - 1) {\n stream.end();\n }\n done();\n }).catch(done);\n };\n for (let i = 0; i < filepaths.length; i++) {\n stream.write(i);\n }\n return stream;\n }\n _getEntry(filepath, pattern, options8) {\n return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern)).catch((error) => {\n if (options8.errorFilter(error)) {\n return null;\n }\n throw error;\n });\n }\n _getStat(filepath) {\n return new Promise((resolve3, reject) => {\n this._stat(filepath, this._fsStatSettings, (error, stats) => {\n return error === null ? resolve3(stats) : reject(error);\n });\n });\n }\n };\n exports.default = ReaderStream;\n }\n});\n\n// node_modules/fast-glob/out/readers/async.js\nvar require_async5 = __commonJS({\n \"node_modules/fast-glob/out/readers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var stream_1 = require_stream3();\n var ReaderAsync = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkAsync = fsWalk.walk;\n this._readerStream = new stream_1.default(this._settings);\n }\n dynamic(root2, options8) {\n return new Promise((resolve3, reject) => {\n this._walkAsync(root2, options8, (error, entries) => {\n if (error === null) {\n resolve3(entries);\n } else {\n reject(error);\n }\n });\n });\n }\n async static(patterns, options8) {\n const entries = [];\n const stream = this._readerStream.static(patterns, options8);\n return new Promise((resolve3, reject) => {\n stream.once(\"error\", reject);\n stream.on(\"data\", (entry) => entries.push(entry));\n stream.once(\"end\", () => resolve3(entries));\n });\n }\n };\n exports.default = ReaderAsync;\n }\n});\n\n// node_modules/fast-glob/out/providers/matchers/matcher.js\nvar require_matcher = __commonJS({\n \"node_modules/fast-glob/out/providers/matchers/matcher.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var Matcher = class {\n constructor(_patterns, _settings, _micromatchOptions) {\n this._patterns = _patterns;\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this._storage = [];\n this._fillStorage();\n }\n _fillStorage() {\n for (const pattern of this._patterns) {\n const segments = this._getPatternSegments(pattern);\n const sections = this._splitSegmentsIntoSections(segments);\n this._storage.push({\n complete: sections.length <= 1,\n pattern,\n segments,\n sections\n });\n }\n }\n _getPatternSegments(pattern) {\n const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions);\n return parts.map((part) => {\n const dynamic = utils.pattern.isDynamicPattern(part, this._settings);\n if (!dynamic) {\n return {\n dynamic: false,\n pattern: part\n };\n }\n return {\n dynamic: true,\n pattern: part,\n patternRe: utils.pattern.makeRe(part, this._micromatchOptions)\n };\n });\n }\n _splitSegmentsIntoSections(segments) {\n return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern));\n }\n };\n exports.default = Matcher;\n }\n});\n\n// node_modules/fast-glob/out/providers/matchers/partial.js\nvar require_partial = __commonJS({\n \"node_modules/fast-glob/out/providers/matchers/partial.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var matcher_1 = require_matcher();\n var PartialMatcher = class extends matcher_1.default {\n match(filepath) {\n const parts = filepath.split(\"/\");\n const levels = parts.length;\n const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);\n for (const pattern of patterns) {\n const section = pattern.sections[0];\n if (!pattern.complete && levels > section.length) {\n return true;\n }\n const match = parts.every((part, index) => {\n const segment = pattern.segments[index];\n if (segment.dynamic && segment.patternRe.test(part)) {\n return true;\n }\n if (!segment.dynamic && segment.pattern === part) {\n return true;\n }\n return false;\n });\n if (match) {\n return true;\n }\n }\n return false;\n }\n };\n exports.default = PartialMatcher;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/deep.js\nvar require_deep = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/deep.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var partial_1 = require_partial();\n var DeepFilter = class {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n }\n getFilter(basePath, positive, negative) {\n const matcher = this._getMatcher(positive);\n const negativeRe = this._getNegativePatternsRe(negative);\n return (entry) => this._filter(basePath, entry, matcher, negativeRe);\n }\n _getMatcher(patterns) {\n return new partial_1.default(patterns, this._settings, this._micromatchOptions);\n }\n _getNegativePatternsRe(patterns) {\n const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern);\n return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);\n }\n _filter(basePath, entry, matcher, negativeRe) {\n if (this._isSkippedByDeep(basePath, entry.path)) {\n return false;\n }\n if (this._isSkippedSymbolicLink(entry)) {\n return false;\n }\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._isSkippedByPositivePatterns(filepath, matcher)) {\n return false;\n }\n return this._isSkippedByNegativePatterns(filepath, negativeRe);\n }\n _isSkippedByDeep(basePath, entryPath) {\n if (this._settings.deep === Infinity) {\n return false;\n }\n return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;\n }\n _getEntryLevel(basePath, entryPath) {\n const entryPathDepth = entryPath.split(\"/\").length;\n if (basePath === \"\") {\n return entryPathDepth;\n }\n const basePathDepth = basePath.split(\"/\").length;\n return entryPathDepth - basePathDepth;\n }\n _isSkippedSymbolicLink(entry) {\n return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink();\n }\n _isSkippedByPositivePatterns(entryPath, matcher) {\n return !this._settings.baseNameMatch && !matcher.match(entryPath);\n }\n _isSkippedByNegativePatterns(entryPath, patternsRe) {\n return !utils.pattern.matchAny(entryPath, patternsRe);\n }\n };\n exports.default = DeepFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/entry.js\nvar require_entry = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/entry.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var EntryFilter = class {\n constructor(_settings, _micromatchOptions) {\n this._settings = _settings;\n this._micromatchOptions = _micromatchOptions;\n this.index = /* @__PURE__ */ new Map();\n }\n getFilter(positive, negative) {\n const [absoluteNegative, relativeNegative] = utils.pattern.partitionAbsoluteAndRelative(negative);\n const patterns = {\n positive: {\n all: utils.pattern.convertPatternsToRe(positive, this._micromatchOptions)\n },\n negative: {\n absolute: utils.pattern.convertPatternsToRe(absoluteNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true })),\n relative: utils.pattern.convertPatternsToRe(relativeNegative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }))\n }\n };\n return (entry) => this._filter(entry, patterns);\n }\n _filter(entry, patterns) {\n const filepath = utils.path.removeLeadingDotSegment(entry.path);\n if (this._settings.unique && this._isDuplicateEntry(filepath)) {\n return false;\n }\n if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) {\n return false;\n }\n const isMatched = this._isMatchToPatternsSet(filepath, patterns, entry.dirent.isDirectory());\n if (this._settings.unique && isMatched) {\n this._createIndexRecord(filepath);\n }\n return isMatched;\n }\n _isDuplicateEntry(filepath) {\n return this.index.has(filepath);\n }\n _createIndexRecord(filepath) {\n this.index.set(filepath, void 0);\n }\n _onlyFileFilter(entry) {\n return this._settings.onlyFiles && !entry.dirent.isFile();\n }\n _onlyDirectoryFilter(entry) {\n return this._settings.onlyDirectories && !entry.dirent.isDirectory();\n }\n _isMatchToPatternsSet(filepath, patterns, isDirectory2) {\n const isMatched = this._isMatchToPatterns(filepath, patterns.positive.all, isDirectory2);\n if (!isMatched) {\n return false;\n }\n const isMatchedByRelativeNegative = this._isMatchToPatterns(filepath, patterns.negative.relative, isDirectory2);\n if (isMatchedByRelativeNegative) {\n return false;\n }\n const isMatchedByAbsoluteNegative = this._isMatchToAbsoluteNegative(filepath, patterns.negative.absolute, isDirectory2);\n if (isMatchedByAbsoluteNegative) {\n return false;\n }\n return true;\n }\n _isMatchToAbsoluteNegative(filepath, patternsRe, isDirectory2) {\n if (patternsRe.length === 0) {\n return false;\n }\n const fullpath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n return this._isMatchToPatterns(fullpath, patternsRe, isDirectory2);\n }\n _isMatchToPatterns(filepath, patternsRe, isDirectory2) {\n if (patternsRe.length === 0) {\n return false;\n }\n const isMatched = utils.pattern.matchAny(filepath, patternsRe);\n if (!isMatched && isDirectory2) {\n return utils.pattern.matchAny(filepath + \"/\", patternsRe);\n }\n return isMatched;\n }\n };\n exports.default = EntryFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/filters/error.js\nvar require_error = __commonJS({\n \"node_modules/fast-glob/out/providers/filters/error.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var ErrorFilter = class {\n constructor(_settings) {\n this._settings = _settings;\n }\n getFilter() {\n return (error) => this._isNonFatalError(error);\n }\n _isNonFatalError(error) {\n return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors;\n }\n };\n exports.default = ErrorFilter;\n }\n});\n\n// node_modules/fast-glob/out/providers/transformers/entry.js\nvar require_entry2 = __commonJS({\n \"node_modules/fast-glob/out/providers/transformers/entry.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var utils = require_utils3();\n var EntryTransformer = class {\n constructor(_settings) {\n this._settings = _settings;\n }\n getTransformer() {\n return (entry) => this._transform(entry);\n }\n _transform(entry) {\n let filepath = entry.path;\n if (this._settings.absolute) {\n filepath = utils.path.makeAbsolute(this._settings.cwd, filepath);\n filepath = utils.path.unixify(filepath);\n }\n if (this._settings.markDirectories && entry.dirent.isDirectory()) {\n filepath += \"/\";\n }\n if (!this._settings.objectMode) {\n return filepath;\n }\n return Object.assign(Object.assign({}, entry), { path: filepath });\n }\n };\n exports.default = EntryTransformer;\n }\n});\n\n// node_modules/fast-glob/out/providers/provider.js\nvar require_provider = __commonJS({\n \"node_modules/fast-glob/out/providers/provider.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var path15 = __require(\"path\");\n var deep_1 = require_deep();\n var entry_1 = require_entry();\n var error_1 = require_error();\n var entry_2 = require_entry2();\n var Provider = class {\n constructor(_settings) {\n this._settings = _settings;\n this.errorFilter = new error_1.default(this._settings);\n this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());\n this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());\n this.entryTransformer = new entry_2.default(this._settings);\n }\n _getRootDirectory(task) {\n return path15.resolve(this._settings.cwd, task.base);\n }\n _getReaderOptions(task) {\n const basePath = task.base === \".\" ? \"\" : task.base;\n return {\n basePath,\n pathSegmentSeparator: \"/\",\n concurrency: this._settings.concurrency,\n deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),\n entryFilter: this.entryFilter.getFilter(task.positive, task.negative),\n errorFilter: this.errorFilter.getFilter(),\n followSymbolicLinks: this._settings.followSymbolicLinks,\n fs: this._settings.fs,\n stats: this._settings.stats,\n throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,\n transform: this.entryTransformer.getTransformer()\n };\n }\n _getMicromatchOptions() {\n return {\n dot: this._settings.dot,\n matchBase: this._settings.baseNameMatch,\n nobrace: !this._settings.braceExpansion,\n nocase: !this._settings.caseSensitiveMatch,\n noext: !this._settings.extglob,\n noglobstar: !this._settings.globstar,\n posix: true,\n strictSlashes: false\n };\n }\n };\n exports.default = Provider;\n }\n});\n\n// node_modules/fast-glob/out/providers/async.js\nvar require_async6 = __commonJS({\n \"node_modules/fast-glob/out/providers/async.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var async_1 = require_async5();\n var provider_1 = require_provider();\n var ProviderAsync = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new async_1.default(this._settings);\n }\n async read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const entries = await this.api(root2, task, options8);\n return entries.map((entry) => options8.transform(entry));\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderAsync;\n }\n});\n\n// node_modules/fast-glob/out/providers/stream.js\nvar require_stream4 = __commonJS({\n \"node_modules/fast-glob/out/providers/stream.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var stream_1 = __require(\"stream\");\n var stream_2 = require_stream3();\n var provider_1 = require_provider();\n var ProviderStream = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new stream_2.default(this._settings);\n }\n read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const source2 = this.api(root2, task, options8);\n const destination = new stream_1.Readable({ objectMode: true, read: () => {\n } });\n source2.once(\"error\", (error) => destination.emit(\"error\", error)).on(\"data\", (entry) => destination.emit(\"data\", options8.transform(entry))).once(\"end\", () => destination.emit(\"end\"));\n destination.once(\"close\", () => source2.destroy());\n return destination;\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderStream;\n }\n});\n\n// node_modules/fast-glob/out/readers/sync.js\nvar require_sync5 = __commonJS({\n \"node_modules/fast-glob/out/readers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fsStat = require_out();\n var fsWalk = require_out3();\n var reader_1 = require_reader2();\n var ReaderSync = class extends reader_1.default {\n constructor() {\n super(...arguments);\n this._walkSync = fsWalk.walkSync;\n this._statSync = fsStat.statSync;\n }\n dynamic(root2, options8) {\n return this._walkSync(root2, options8);\n }\n static(patterns, options8) {\n const entries = [];\n for (const pattern of patterns) {\n const filepath = this._getFullEntryPath(pattern);\n const entry = this._getEntry(filepath, pattern, options8);\n if (entry === null || !options8.entryFilter(entry)) {\n continue;\n }\n entries.push(entry);\n }\n return entries;\n }\n _getEntry(filepath, pattern, options8) {\n try {\n const stats = this._getStat(filepath);\n return this._makeEntry(stats, pattern);\n } catch (error) {\n if (options8.errorFilter(error)) {\n return null;\n }\n throw error;\n }\n }\n _getStat(filepath) {\n return this._statSync(filepath, this._fsStatSettings);\n }\n };\n exports.default = ReaderSync;\n }\n});\n\n// node_modules/fast-glob/out/providers/sync.js\nvar require_sync6 = __commonJS({\n \"node_modules/fast-glob/out/providers/sync.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var sync_1 = require_sync5();\n var provider_1 = require_provider();\n var ProviderSync = class extends provider_1.default {\n constructor() {\n super(...arguments);\n this._reader = new sync_1.default(this._settings);\n }\n read(task) {\n const root2 = this._getRootDirectory(task);\n const options8 = this._getReaderOptions(task);\n const entries = this.api(root2, task, options8);\n return entries.map(options8.transform);\n }\n api(root2, task, options8) {\n if (task.dynamic) {\n return this._reader.dynamic(root2, options8);\n }\n return this._reader.static(task.patterns, options8);\n }\n };\n exports.default = ProviderSync;\n }\n});\n\n// node_modules/fast-glob/out/settings.js\nvar require_settings4 = __commonJS({\n \"node_modules/fast-glob/out/settings.js\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;\n var fs4 = __require(\"fs\");\n var os = __require(\"os\");\n var CPU_COUNT = Math.max(os.cpus().length, 1);\n exports.DEFAULT_FILE_SYSTEM_ADAPTER = {\n lstat: fs4.lstat,\n lstatSync: fs4.lstatSync,\n stat: fs4.stat,\n statSync: fs4.statSync,\n readdir: fs4.readdir,\n readdirSync: fs4.readdirSync\n };\n var Settings = class {\n constructor(_options = {}) {\n this._options = _options;\n this.absolute = this._getValue(this._options.absolute, false);\n this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);\n this.braceExpansion = this._getValue(this._options.braceExpansion, true);\n this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);\n this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);\n this.cwd = this._getValue(this._options.cwd, process.cwd());\n this.deep = this._getValue(this._options.deep, Infinity);\n this.dot = this._getValue(this._options.dot, false);\n this.extglob = this._getValue(this._options.extglob, true);\n this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);\n this.fs = this._getFileSystemMethods(this._options.fs);\n this.globstar = this._getValue(this._options.globstar, true);\n this.ignore = this._getValue(this._options.ignore, []);\n this.markDirectories = this._getValue(this._options.markDirectories, false);\n this.objectMode = this._getValue(this._options.objectMode, false);\n this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);\n this.onlyFiles = this._getValue(this._options.onlyFiles, true);\n this.stats = this._getValue(this._options.stats, false);\n this.suppressErrors = this._getValue(this._options.suppressErrors, false);\n this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);\n this.unique = this._getValue(this._options.unique, true);\n if (this.onlyDirectories) {\n this.onlyFiles = false;\n }\n if (this.stats) {\n this.objectMode = true;\n }\n this.ignore = [].concat(this.ignore);\n }\n _getValue(option, value) {\n return option === void 0 ? value : option;\n }\n _getFileSystemMethods(methods = {}) {\n return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods);\n }\n };\n exports.default = Settings;\n }\n});\n\n// node_modules/fast-glob/out/index.js\nvar require_out4 = __commonJS({\n \"node_modules/fast-glob/out/index.js\"(exports, module) {\n \"use strict\";\n var taskManager = require_tasks();\n var async_1 = require_async6();\n var stream_1 = require_stream4();\n var sync_1 = require_sync6();\n var settings_1 = require_settings4();\n var utils = require_utils3();\n async function FastGlob(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, async_1.default, options8);\n const result = await Promise.all(works);\n return utils.array.flatten(result);\n }\n (function(FastGlob2) {\n FastGlob2.glob = FastGlob2;\n FastGlob2.globSync = sync;\n FastGlob2.globStream = stream;\n FastGlob2.async = FastGlob2;\n function sync(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, sync_1.default, options8);\n return utils.array.flatten(works);\n }\n FastGlob2.sync = sync;\n function stream(source2, options8) {\n assertPatternsInput(source2);\n const works = getWorks(source2, stream_1.default, options8);\n return utils.stream.merge(works);\n }\n FastGlob2.stream = stream;\n function generateTasks(source2, options8) {\n assertPatternsInput(source2);\n const patterns = [].concat(source2);\n const settings = new settings_1.default(options8);\n return taskManager.generate(patterns, settings);\n }\n FastGlob2.generateTasks = generateTasks;\n function isDynamicPattern(source2, options8) {\n assertPatternsInput(source2);\n const settings = new settings_1.default(options8);\n return utils.pattern.isDynamicPattern(source2, settings);\n }\n FastGlob2.isDynamicPattern = isDynamicPattern;\n function escapePath(source2) {\n assertPatternsInput(source2);\n return utils.path.escape(source2);\n }\n FastGlob2.escapePath = escapePath;\n function convertPathToPattern(source2) {\n assertPatternsInput(source2);\n return utils.path.convertPathToPattern(source2);\n }\n FastGlob2.convertPathToPattern = convertPathToPattern;\n let posix;\n (function(posix2) {\n function escapePath2(source2) {\n assertPatternsInput(source2);\n return utils.path.escapePosixPath(source2);\n }\n posix2.escapePath = escapePath2;\n function convertPathToPattern2(source2) {\n assertPatternsInput(source2);\n return utils.path.convertPosixPathToPattern(source2);\n }\n posix2.convertPathToPattern = convertPathToPattern2;\n })(posix = FastGlob2.posix || (FastGlob2.posix = {}));\n let win32;\n (function(win322) {\n function escapePath2(source2) {\n assertPatternsInput(source2);\n return utils.path.escapeWindowsPath(source2);\n }\n win322.escapePath = escapePath2;\n function convertPathToPattern2(source2) {\n assertPatternsInput(source2);\n return utils.path.convertWindowsPathToPattern(source2);\n }\n win322.convertPathToPattern = convertPathToPattern2;\n })(win32 = FastGlob2.win32 || (FastGlob2.win32 = {}));\n })(FastGlob || (FastGlob = {}));\n function getWorks(source2, _Provider, options8) {\n const patterns = [].concat(source2);\n const settings = new settings_1.default(options8);\n const tasks = taskManager.generate(patterns, settings);\n const provider = new _Provider(settings);\n return tasks.map(provider.read, provider);\n }\n function assertPatternsInput(input) {\n const source2 = [].concat(input);\n const isValidSource = source2.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));\n if (!isValidSource) {\n throw new TypeError(\"Patterns must be a string (non empty) or an array of strings\");\n }\n }\n module.exports = FastGlob;\n }\n});\n\n// node_modules/picocolors/picocolors.js\nvar require_picocolors = __commonJS({\n \"node_modules/picocolors/picocolors.js\"(exports, module) {\n var p = process || {};\n var argv = p.argv || [];\n var env = p.env || {};\n var isColorSupported2 = !(!!env.NO_COLOR || argv.includes(\"--no-color\")) && (!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || (p.stdout || {}).isTTY && env.TERM !== \"dumb\" || !!env.CI);\n var formatter = (open, close, replace = open) => (input) => {\n let string = \"\" + input, index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n var replaceClose = (string, close, replace, index) => {\n let result = \"\", cursor2 = 0;\n do {\n result += string.substring(cursor2, index) + replace;\n cursor2 = index + close.length;\n index = string.indexOf(close, cursor2);\n } while (~index);\n return result + string.substring(cursor2);\n };\n var createColors2 = (enabled = isColorSupported2) => {\n let f = enabled ? formatter : () => String;\n return {\n isColorSupported: enabled,\n reset: f(\"\\x1B[0m\", \"\\x1B[0m\"),\n bold: f(\"\\x1B[1m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[1m\"),\n dim: f(\"\\x1B[2m\", \"\\x1B[22m\", \"\\x1B[22m\\x1B[2m\"),\n italic: f(\"\\x1B[3m\", \"\\x1B[23m\"),\n underline: f(\"\\x1B[4m\", \"\\x1B[24m\"),\n inverse: f(\"\\x1B[7m\", \"\\x1B[27m\"),\n hidden: f(\"\\x1B[8m\", \"\\x1B[28m\"),\n strikethrough: f(\"\\x1B[9m\", \"\\x1B[29m\"),\n black: f(\"\\x1B[30m\", \"\\x1B[39m\"),\n red: f(\"\\x1B[31m\", \"\\x1B[39m\"),\n green: f(\"\\x1B[32m\", \"\\x1B[39m\"),\n yellow: f(\"\\x1B[33m\", \"\\x1B[39m\"),\n blue: f(\"\\x1B[34m\", \"\\x1B[39m\"),\n magenta: f(\"\\x1B[35m\", \"\\x1B[39m\"),\n cyan: f(\"\\x1B[36m\", \"\\x1B[39m\"),\n white: f(\"\\x1B[37m\", \"\\x1B[39m\"),\n gray: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n bgBlack: f(\"\\x1B[40m\", \"\\x1B[49m\"),\n bgRed: f(\"\\x1B[41m\", \"\\x1B[49m\"),\n bgGreen: f(\"\\x1B[42m\", \"\\x1B[49m\"),\n bgYellow: f(\"\\x1B[43m\", \"\\x1B[49m\"),\n bgBlue: f(\"\\x1B[44m\", \"\\x1B[49m\"),\n bgMagenta: f(\"\\x1B[45m\", \"\\x1B[49m\"),\n bgCyan: f(\"\\x1B[46m\", \"\\x1B[49m\"),\n bgWhite: f(\"\\x1B[47m\", \"\\x1B[49m\"),\n blackBright: f(\"\\x1B[90m\", \"\\x1B[39m\"),\n redBright: f(\"\\x1B[91m\", \"\\x1B[39m\"),\n greenBright: f(\"\\x1B[92m\", \"\\x1B[39m\"),\n yellowBright: f(\"\\x1B[93m\", \"\\x1B[39m\"),\n blueBright: f(\"\\x1B[94m\", \"\\x1B[39m\"),\n magentaBright: f(\"\\x1B[95m\", \"\\x1B[39m\"),\n cyanBright: f(\"\\x1B[96m\", \"\\x1B[39m\"),\n whiteBright: f(\"\\x1B[97m\", \"\\x1B[39m\"),\n bgBlackBright: f(\"\\x1B[100m\", \"\\x1B[49m\"),\n bgRedBright: f(\"\\x1B[101m\", \"\\x1B[49m\"),\n bgGreenBright: f(\"\\x1B[102m\", \"\\x1B[49m\"),\n bgYellowBright: f(\"\\x1B[103m\", \"\\x1B[49m\"),\n bgBlueBright: f(\"\\x1B[104m\", \"\\x1B[49m\"),\n bgMagentaBright: f(\"\\x1B[105m\", \"\\x1B[49m\"),\n bgCyanBright: f(\"\\x1B[106m\", \"\\x1B[49m\"),\n bgWhiteBright: f(\"\\x1B[107m\", \"\\x1B[49m\")\n };\n };\n module.exports = createColors2();\n module.exports.createColors = createColors2;\n }\n});\n\n// node_modules/semver/internal/debug.js\nvar require_debug = __commonJS({\n \"node_modules/semver/internal/debug.js\"(exports, module) {\n \"use strict\";\n var debug = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n };\n module.exports = debug;\n }\n});\n\n// node_modules/semver/internal/constants.js\nvar require_constants4 = __commonJS({\n \"node_modules/semver/internal/constants.js\"(exports, module) {\n \"use strict\";\n var SEMVER_SPEC_VERSION = \"2.0.0\";\n var MAX_LENGTH = 256;\n var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n 9007199254740991;\n var MAX_SAFE_COMPONENT_LENGTH = 16;\n var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6;\n var RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n ];\n module.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n };\n }\n});\n\n// node_modules/semver/internal/re.js\nvar require_re = __commonJS({\n \"node_modules/semver/internal/re.js\"(exports, module) {\n \"use strict\";\n var {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH\n } = require_constants4();\n var debug = require_debug();\n exports = module.exports = {};\n var re = exports.re = [];\n var safeRe = exports.safeRe = [];\n var src = exports.src = [];\n var safeSrc = exports.safeSrc = [];\n var t = exports.t = {};\n var R = 0;\n var LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n var safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH]\n ];\n var makeSafeRegex = (value) => {\n for (const [token2, max] of safeRegexReplacements) {\n value = value.split(`${token2}*`).join(`${token2}{0,${max}}`).split(`${token2}+`).join(`${token2}{1,${max}}`);\n }\n return value;\n };\n var createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug(name, index, value);\n t[name] = index;\n src[index] = value;\n safeSrc[index] = safe;\n re[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})\\\\.(${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t.BUILDIDENTIFIER]}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`);\n createToken(\"FULL\", `^${src[t.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:\\\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`);\n createToken(\"COERCE\", `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n }\n});\n\n// node_modules/semver/internal/parse-options.js\nvar require_parse_options = __commonJS({\n \"node_modules/semver/internal/parse-options.js\"(exports, module) {\n \"use strict\";\n var looseOption = Object.freeze({ loose: true });\n var emptyOpts = Object.freeze({});\n var parseOptions = (options8) => {\n if (!options8) {\n return emptyOpts;\n }\n if (typeof options8 !== \"object\") {\n return looseOption;\n }\n return options8;\n };\n module.exports = parseOptions;\n }\n});\n\n// node_modules/semver/internal/identifiers.js\nvar require_identifiers = __commonJS({\n \"node_modules/semver/internal/identifiers.js\"(exports, module) {\n \"use strict\";\n var numeric = /^[0-9]+$/;\n var compareIdentifiers = (a, b) => {\n if (typeof a === \"number\" && typeof b === \"number\") {\n return a === b ? 0 : a < b ? -1 : 1;\n }\n const anum = numeric.test(a);\n const bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n };\n var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a);\n module.exports = {\n compareIdentifiers,\n rcompareIdentifiers\n };\n }\n});\n\n// node_modules/semver/classes/semver.js\nvar require_semver = __commonJS({\n \"node_modules/semver/classes/semver.js\"(exports, module) {\n \"use strict\";\n var debug = require_debug();\n var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants4();\n var { safeRe: re, t } = require_re();\n var parseOptions = require_parse_options();\n var { compareIdentifiers } = require_identifiers();\n var SemVer = class _SemVer {\n constructor(version, options8) {\n options8 = parseOptions(options8);\n if (version instanceof _SemVer) {\n if (version.loose === !!options8.loose && version.includePrerelease === !!options8.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options8);\n this.options = options8;\n this.loose = !!options8.loose;\n this.includePrerelease = !!options8.includePrerelease;\n const m = version.trim().match(options8.loose ? re[t.LOOSE] : re[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof _SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new _SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n if (this.major < other.major) {\n return -1;\n }\n if (this.major > other.major) {\n return 1;\n }\n if (this.minor < other.minor) {\n return -1;\n }\n if (this.minor > other.minor) {\n return 1;\n }\n if (this.patch < other.patch) {\n return -1;\n }\n if (this.patch > other.patch) {\n return 1;\n }\n return 0;\n }\n comparePre(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof _SemVer)) {\n other = new _SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n debug(\"build compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n if (release.startsWith(\"pre\")) {\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]);\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`);\n }\n }\n }\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"release\":\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`);\n }\n this.prerelease.length = 0;\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n };\n module.exports = SemVer;\n }\n});\n\n// node_modules/semver/functions/compare.js\nvar require_compare = __commonJS({\n \"node_modules/semver/functions/compare.js\"(exports, module) {\n \"use strict\";\n var SemVer = require_semver();\n var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));\n module.exports = compare;\n }\n});\n\n// node_modules/semver/functions/gte.js\nvar require_gte = __commonJS({\n \"node_modules/semver/functions/gte.js\"(exports, module) {\n \"use strict\";\n var compare = require_compare();\n var gte = (a, b, loose) => compare(a, b, loose) >= 0;\n module.exports = gte;\n }\n});\n\n// node_modules/pseudomap/pseudomap.js\nvar require_pseudomap = __commonJS({\n \"node_modules/pseudomap/pseudomap.js\"(exports, module) {\n var hasOwnProperty3 = Object.prototype.hasOwnProperty;\n module.exports = PseudoMap;\n function PseudoMap(set2) {\n if (!(this instanceof PseudoMap))\n throw new TypeError(\"Constructor PseudoMap requires 'new'\");\n this.clear();\n if (set2) {\n if (set2 instanceof PseudoMap || typeof Map === \"function\" && set2 instanceof Map)\n set2.forEach(function(value, key2) {\n this.set(key2, value);\n }, this);\n else if (Array.isArray(set2))\n set2.forEach(function(kv) {\n this.set(kv[0], kv[1]);\n }, this);\n else\n throw new TypeError(\"invalid argument\");\n }\n }\n PseudoMap.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n Object.keys(this._data).forEach(function(k) {\n if (k !== \"size\")\n fn.call(thisp, this._data[k].value, this._data[k].key);\n }, this);\n };\n PseudoMap.prototype.has = function(k) {\n return !!find(this._data, k);\n };\n PseudoMap.prototype.get = function(k) {\n var res = find(this._data, k);\n return res && res.value;\n };\n PseudoMap.prototype.set = function(k, v) {\n set(this._data, k, v);\n };\n PseudoMap.prototype.delete = function(k) {\n var res = find(this._data, k);\n if (res) {\n delete this._data[res._index];\n this._data.size--;\n }\n };\n PseudoMap.prototype.clear = function() {\n var data = /* @__PURE__ */ Object.create(null);\n data.size = 0;\n Object.defineProperty(this, \"_data\", {\n value: data,\n enumerable: false,\n configurable: true,\n writable: false\n });\n };\n Object.defineProperty(PseudoMap.prototype, \"size\", {\n get: function() {\n return this._data.size;\n },\n set: function(n) {\n },\n enumerable: true,\n configurable: true\n });\n PseudoMap.prototype.values = PseudoMap.prototype.keys = PseudoMap.prototype.entries = function() {\n throw new Error(\"iterators are not implemented in this version\");\n };\n function same(a, b) {\n return a === b || a !== a && b !== b;\n }\n function Entry(k, v, i) {\n this.key = k;\n this.value = v;\n this._index = i;\n }\n function find(data, k) {\n for (var i = 0, s = \"_\" + k, key2 = s; hasOwnProperty3.call(data, key2); key2 = s + i++) {\n if (same(data[key2].key, k))\n return data[key2];\n }\n }\n function set(data, k, v) {\n for (var i = 0, s = \"_\" + k, key2 = s; hasOwnProperty3.call(data, key2); key2 = s + i++) {\n if (same(data[key2].key, k)) {\n data[key2].value = v;\n return;\n }\n }\n data.size++;\n data[key2] = new Entry(k, v, key2);\n }\n }\n});\n\n// node_modules/pseudomap/map.js\nvar require_map = __commonJS({\n \"node_modules/pseudomap/map.js\"(exports, module) {\n if (process.env.npm_package_name === \"pseudomap\" && process.env.npm_lifecycle_script === \"test\")\n process.env.TEST_PSEUDOMAP = \"true\";\n if (typeof Map === \"function\" && !process.env.TEST_PSEUDOMAP) {\n module.exports = Map;\n } else {\n module.exports = require_pseudomap();\n }\n }\n});\n\n// node_modules/yallist/yallist.js\nvar require_yallist = __commonJS({\n \"node_modules/yallist/yallist.js\"(exports, module) {\n module.exports = Yallist;\n Yallist.Node = Node;\n Yallist.create = Yallist;\n function Yallist(list) {\n var self = this;\n if (!(self instanceof Yallist)) {\n self = new Yallist();\n }\n self.tail = null;\n self.head = null;\n self.length = 0;\n if (list && typeof list.forEach === \"function\") {\n list.forEach(function(item) {\n self.push(item);\n });\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i]);\n }\n }\n return self;\n }\n Yallist.prototype.removeNode = function(node) {\n if (node.list !== this) {\n throw new Error(\"removing node which does not belong to this list\");\n }\n var next = node.next;\n var prev = node.prev;\n if (next) {\n next.prev = prev;\n }\n if (prev) {\n prev.next = next;\n }\n if (node === this.head) {\n this.head = next;\n }\n if (node === this.tail) {\n this.tail = prev;\n }\n node.list.length--;\n node.next = null;\n node.prev = null;\n node.list = null;\n };\n Yallist.prototype.unshiftNode = function(node) {\n if (node === this.head) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n var head = this.head;\n node.list = this;\n node.next = head;\n if (head) {\n head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.length++;\n };\n Yallist.prototype.pushNode = function(node) {\n if (node === this.tail) {\n return;\n }\n if (node.list) {\n node.list.removeNode(node);\n }\n var tail = this.tail;\n node.list = this;\n node.prev = tail;\n if (tail) {\n tail.next = node;\n }\n this.tail = node;\n if (!this.head) {\n this.head = node;\n }\n this.length++;\n };\n Yallist.prototype.push = function() {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push2(this, arguments[i]);\n }\n return this.length;\n };\n Yallist.prototype.unshift = function() {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i]);\n }\n return this.length;\n };\n Yallist.prototype.pop = function() {\n if (!this.tail) {\n return void 0;\n }\n var res = this.tail.value;\n this.tail = this.tail.prev;\n if (this.tail) {\n this.tail.next = null;\n } else {\n this.head = null;\n }\n this.length--;\n return res;\n };\n Yallist.prototype.shift = function() {\n if (!this.head) {\n return void 0;\n }\n var res = this.head.value;\n this.head = this.head.next;\n if (this.head) {\n this.head.prev = null;\n } else {\n this.tail = null;\n }\n this.length--;\n return res;\n };\n Yallist.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.next;\n }\n };\n Yallist.prototype.forEachReverse = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this);\n walker = walker.prev;\n }\n };\n Yallist.prototype.get = function(n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n walker = walker.next;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n };\n Yallist.prototype.getReverse = function(n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n walker = walker.prev;\n }\n if (i === n && walker !== null) {\n return walker.value;\n }\n };\n Yallist.prototype.map = function(fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n for (var walker = this.head; walker !== null; ) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.next;\n }\n return res;\n };\n Yallist.prototype.mapReverse = function(fn, thisp) {\n thisp = thisp || this;\n var res = new Yallist();\n for (var walker = this.tail; walker !== null; ) {\n res.push(fn.call(thisp, walker.value, this));\n walker = walker.prev;\n }\n return res;\n };\n Yallist.prototype.reduce = function(fn, initial) {\n var acc;\n var walker = this.head;\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.head) {\n walker = this.head.next;\n acc = this.head.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i);\n walker = walker.next;\n }\n return acc;\n };\n Yallist.prototype.reduceReverse = function(fn, initial) {\n var acc;\n var walker = this.tail;\n if (arguments.length > 1) {\n acc = initial;\n } else if (this.tail) {\n walker = this.tail.prev;\n acc = this.tail.value;\n } else {\n throw new TypeError(\"Reduce of empty list with no initial value\");\n }\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i);\n walker = walker.prev;\n }\n return acc;\n };\n Yallist.prototype.toArray = function() {\n var arr = new Array(this.length);\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.next;\n }\n return arr;\n };\n Yallist.prototype.toArrayReverse = function() {\n var arr = new Array(this.length);\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value;\n walker = walker.prev;\n }\n return arr;\n };\n Yallist.prototype.slice = function(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n var ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next;\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value);\n }\n return ret;\n };\n Yallist.prototype.sliceReverse = function(from, to) {\n to = to || this.length;\n if (to < 0) {\n to += this.length;\n }\n from = from || 0;\n if (from < 0) {\n from += this.length;\n }\n var ret = new Yallist();\n if (to < from || to < 0) {\n return ret;\n }\n if (from < 0) {\n from = 0;\n }\n if (to > this.length) {\n to = this.length;\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev;\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value);\n }\n return ret;\n };\n Yallist.prototype.reverse = function() {\n var head = this.head;\n var tail = this.tail;\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev;\n walker.prev = walker.next;\n walker.next = p;\n }\n this.head = tail;\n this.tail = head;\n return this;\n };\n function push2(self, item) {\n self.tail = new Node(item, self.tail, null, self);\n if (!self.head) {\n self.head = self.tail;\n }\n self.length++;\n }\n function unshift(self, item) {\n self.head = new Node(item, null, self.head, self);\n if (!self.tail) {\n self.tail = self.head;\n }\n self.length++;\n }\n function Node(value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list);\n }\n this.list = list;\n this.value = value;\n if (prev) {\n prev.next = this;\n this.prev = prev;\n } else {\n this.prev = null;\n }\n if (next) {\n next.prev = this;\n this.next = next;\n } else {\n this.next = null;\n }\n }\n }\n});\n\n// node_modules/editorconfig/node_modules/lru-cache/index.js\nvar require_lru_cache = __commonJS({\n \"node_modules/editorconfig/node_modules/lru-cache/index.js\"(exports, module) {\n \"use strict\";\n module.exports = LRUCache;\n var Map2 = require_map();\n var util2 = __require(\"util\");\n var Yallist = require_yallist();\n var hasSymbol = typeof Symbol === \"function\" && process.env._nodeLRUCacheForceNoSymbol !== \"1\";\n var makeSymbol;\n if (hasSymbol) {\n makeSymbol = function(key2) {\n return Symbol(key2);\n };\n } else {\n makeSymbol = function(key2) {\n return \"_\" + key2;\n };\n }\n var MAX = makeSymbol(\"max\");\n var LENGTH = makeSymbol(\"length\");\n var LENGTH_CALCULATOR = makeSymbol(\"lengthCalculator\");\n var ALLOW_STALE = makeSymbol(\"allowStale\");\n var MAX_AGE = makeSymbol(\"maxAge\");\n var DISPOSE = makeSymbol(\"dispose\");\n var NO_DISPOSE_ON_SET = makeSymbol(\"noDisposeOnSet\");\n var LRU_LIST = makeSymbol(\"lruList\");\n var CACHE = makeSymbol(\"cache\");\n function naiveLength() {\n return 1;\n }\n function LRUCache(options8) {\n if (!(this instanceof LRUCache)) {\n return new LRUCache(options8);\n }\n if (typeof options8 === \"number\") {\n options8 = { max: options8 };\n }\n if (!options8) {\n options8 = {};\n }\n var max = this[MAX] = options8.max;\n if (!max || !(typeof max === \"number\") || max <= 0) {\n this[MAX] = Infinity;\n }\n var lc = options8.length || naiveLength;\n if (typeof lc !== \"function\") {\n lc = naiveLength;\n }\n this[LENGTH_CALCULATOR] = lc;\n this[ALLOW_STALE] = options8.stale || false;\n this[MAX_AGE] = options8.maxAge || 0;\n this[DISPOSE] = options8.dispose;\n this[NO_DISPOSE_ON_SET] = options8.noDisposeOnSet || false;\n this.reset();\n }\n Object.defineProperty(LRUCache.prototype, \"max\", {\n set: function(mL) {\n if (!mL || !(typeof mL === \"number\") || mL <= 0) {\n mL = Infinity;\n }\n this[MAX] = mL;\n trim(this);\n },\n get: function() {\n return this[MAX];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"allowStale\", {\n set: function(allowStale) {\n this[ALLOW_STALE] = !!allowStale;\n },\n get: function() {\n return this[ALLOW_STALE];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"maxAge\", {\n set: function(mA) {\n if (!mA || !(typeof mA === \"number\") || mA < 0) {\n mA = 0;\n }\n this[MAX_AGE] = mA;\n trim(this);\n },\n get: function() {\n return this[MAX_AGE];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"lengthCalculator\", {\n set: function(lC) {\n if (typeof lC !== \"function\") {\n lC = naiveLength;\n }\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC;\n this[LENGTH] = 0;\n this[LRU_LIST].forEach(function(hit) {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key);\n this[LENGTH] += hit.length;\n }, this);\n }\n trim(this);\n },\n get: function() {\n return this[LENGTH_CALCULATOR];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function() {\n return this[LENGTH];\n },\n enumerable: true\n });\n Object.defineProperty(LRUCache.prototype, \"itemCount\", {\n get: function() {\n return this[LRU_LIST].length;\n },\n enumerable: true\n });\n LRUCache.prototype.rforEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this[LRU_LIST].tail; walker !== null; ) {\n var prev = walker.prev;\n forEachStep(this, fn, walker, thisp);\n walker = prev;\n }\n };\n function forEachStep(self, fn, node, thisp) {\n var hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE]) {\n hit = void 0;\n }\n }\n if (hit) {\n fn.call(thisp, hit.value, hit.key, self);\n }\n }\n LRUCache.prototype.forEach = function(fn, thisp) {\n thisp = thisp || this;\n for (var walker = this[LRU_LIST].head; walker !== null; ) {\n var next = walker.next;\n forEachStep(this, fn, walker, thisp);\n walker = next;\n }\n };\n LRUCache.prototype.keys = function() {\n return this[LRU_LIST].toArray().map(function(k) {\n return k.key;\n }, this);\n };\n LRUCache.prototype.values = function() {\n return this[LRU_LIST].toArray().map(function(k) {\n return k.value;\n }, this);\n };\n LRUCache.prototype.reset = function() {\n if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) {\n this[LRU_LIST].forEach(function(hit) {\n this[DISPOSE](hit.key, hit.value);\n }, this);\n }\n this[CACHE] = new Map2();\n this[LRU_LIST] = new Yallist();\n this[LENGTH] = 0;\n };\n LRUCache.prototype.dump = function() {\n return this[LRU_LIST].map(function(hit) {\n if (!isStale(this, hit)) {\n return {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n };\n }\n }, this).toArray().filter(function(h) {\n return h;\n });\n };\n LRUCache.prototype.dumpLru = function() {\n return this[LRU_LIST];\n };\n LRUCache.prototype.inspect = function(n, opts) {\n var str = \"LRUCache {\";\n var extras = false;\n var as = this[ALLOW_STALE];\n if (as) {\n str += \"\\n allowStale: true\";\n extras = true;\n }\n var max = this[MAX];\n if (max && max !== Infinity) {\n if (extras) {\n str += \",\";\n }\n str += \"\\n max: \" + util2.inspect(max, opts);\n extras = true;\n }\n var maxAge = this[MAX_AGE];\n if (maxAge) {\n if (extras) {\n str += \",\";\n }\n str += \"\\n maxAge: \" + util2.inspect(maxAge, opts);\n extras = true;\n }\n var lc = this[LENGTH_CALCULATOR];\n if (lc && lc !== naiveLength) {\n if (extras) {\n str += \",\";\n }\n str += \"\\n length: \" + util2.inspect(this[LENGTH], opts);\n extras = true;\n }\n var didFirst = false;\n this[LRU_LIST].forEach(function(item) {\n if (didFirst) {\n str += \",\\n \";\n } else {\n if (extras) {\n str += \",\\n\";\n }\n didFirst = true;\n str += \"\\n \";\n }\n var key2 = util2.inspect(item.key).split(\"\\n\").join(\"\\n \");\n var val = { value: item.value };\n if (item.maxAge !== maxAge) {\n val.maxAge = item.maxAge;\n }\n if (lc !== naiveLength) {\n val.length = item.length;\n }\n if (isStale(this, item)) {\n val.stale = true;\n }\n val = util2.inspect(val, opts).split(\"\\n\").join(\"\\n \");\n str += key2 + \" => \" + val;\n });\n if (didFirst || extras) {\n str += \"\\n\";\n }\n str += \"}\";\n return str;\n };\n LRUCache.prototype.set = function(key2, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE];\n var now = maxAge ? Date.now() : 0;\n var len = this[LENGTH_CALCULATOR](value, key2);\n if (this[CACHE].has(key2)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key2));\n return false;\n }\n var node = this[CACHE].get(key2);\n var item = node.value;\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET]) {\n this[DISPOSE](key2, item.value);\n }\n }\n item.now = now;\n item.maxAge = maxAge;\n item.value = value;\n this[LENGTH] += len - item.length;\n item.length = len;\n this.get(key2);\n trim(this);\n return true;\n }\n var hit = new Entry(key2, value, len, now, maxAge);\n if (hit.length > this[MAX]) {\n if (this[DISPOSE]) {\n this[DISPOSE](key2, value);\n }\n return false;\n }\n this[LENGTH] += hit.length;\n this[LRU_LIST].unshift(hit);\n this[CACHE].set(key2, this[LRU_LIST].head);\n trim(this);\n return true;\n };\n LRUCache.prototype.has = function(key2) {\n if (!this[CACHE].has(key2)) return false;\n var hit = this[CACHE].get(key2).value;\n if (isStale(this, hit)) {\n return false;\n }\n return true;\n };\n LRUCache.prototype.get = function(key2) {\n return get(this, key2, true);\n };\n LRUCache.prototype.peek = function(key2) {\n return get(this, key2, false);\n };\n LRUCache.prototype.pop = function() {\n var node = this[LRU_LIST].tail;\n if (!node) return null;\n del(this, node);\n return node.value;\n };\n LRUCache.prototype.del = function(key2) {\n del(this, this[CACHE].get(key2));\n };\n LRUCache.prototype.load = function(arr) {\n this.reset();\n var now = Date.now();\n for (var l = arr.length - 1; l >= 0; l--) {\n var hit = arr[l];\n var expiresAt = hit.e || 0;\n if (expiresAt === 0) {\n this.set(hit.k, hit.v);\n } else {\n var maxAge = expiresAt - now;\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge);\n }\n }\n }\n };\n LRUCache.prototype.prune = function() {\n var self = this;\n this[CACHE].forEach(function(value, key2) {\n get(self, key2, false);\n });\n };\n function get(self, key2, doUse) {\n var node = self[CACHE].get(key2);\n if (node) {\n var hit = node.value;\n if (isStale(self, hit)) {\n del(self, node);\n if (!self[ALLOW_STALE]) hit = void 0;\n } else {\n if (doUse) {\n self[LRU_LIST].unshiftNode(node);\n }\n }\n if (hit) hit = hit.value;\n }\n return hit;\n }\n function isStale(self, hit) {\n if (!hit || !hit.maxAge && !self[MAX_AGE]) {\n return false;\n }\n var stale = false;\n var diff = Date.now() - hit.now;\n if (hit.maxAge) {\n stale = diff > hit.maxAge;\n } else {\n stale = self[MAX_AGE] && diff > self[MAX_AGE];\n }\n return stale;\n }\n function trim(self) {\n if (self[LENGTH] > self[MAX]) {\n for (var walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null; ) {\n var prev = walker.prev;\n del(self, walker);\n walker = prev;\n }\n }\n }\n function del(self, node) {\n if (node) {\n var hit = node.value;\n if (self[DISPOSE]) {\n self[DISPOSE](hit.key, hit.value);\n }\n self[LENGTH] -= hit.length;\n self[CACHE].delete(hit.key);\n self[LRU_LIST].removeNode(node);\n }\n }\n function Entry(key2, value, length, now, maxAge) {\n this.key = key2;\n this.value = value;\n this.length = length;\n this.now = now;\n this.maxAge = maxAge || 0;\n }\n }\n});\n\n// node_modules/sigmund/sigmund.js\nvar require_sigmund = __commonJS({\n \"node_modules/sigmund/sigmund.js\"(exports, module) {\n module.exports = sigmund;\n function sigmund(subject, maxSessions) {\n maxSessions = maxSessions || 10;\n var notes = [];\n var analysis = \"\";\n var RE = RegExp;\n function psychoAnalyze(subject2, session) {\n if (session > maxSessions) return;\n if (typeof subject2 === \"function\" || typeof subject2 === \"undefined\") {\n return;\n }\n if (typeof subject2 !== \"object\" || !subject2 || subject2 instanceof RE) {\n analysis += subject2;\n return;\n }\n if (notes.indexOf(subject2) !== -1 || session === maxSessions) return;\n notes.push(subject2);\n analysis += \"{\";\n Object.keys(subject2).forEach(function(issue, _, __) {\n if (issue.charAt(0) === \"_\") return;\n var to = typeof subject2[issue];\n if (to === \"function\" || to === \"undefined\") return;\n analysis += issue;\n psychoAnalyze(subject2[issue], session + 1);\n });\n }\n psychoAnalyze(subject, 0);\n return analysis;\n }\n }\n});\n\n// node_modules/editorconfig/src/lib/fnmatch.js\nvar require_fnmatch = __commonJS({\n \"node_modules/editorconfig/src/lib/fnmatch.js\"(exports, module) {\n var platform = typeof process === \"object\" ? process.platform : \"win32\";\n if (module) module.exports = minimatch;\n else exports.minimatch = minimatch;\n minimatch.Minimatch = Minimatch;\n var LRU = require_lru_cache();\n var cache3 = minimatch.cache = new LRU({ max: 100 });\n var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {};\n var sigmund = require_sigmund();\n var path15 = __require(\"path\");\n var qmark = \"[^/]\";\n var star = qmark + \"*?\";\n var twoStarDot = \"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\";\n var twoStarNoDot = \"(?:(?!(?:\\\\/|^)\\\\.).)*?\";\n var reSpecials = charSet(\"().*{}+?[]^$\\\\!\");\n function charSet(s) {\n return s.split(\"\").reduce(function(set, c2) {\n set[c2] = true;\n return set;\n }, {});\n }\n var slashSplit = /\\/+/;\n minimatch.monkeyPatch = monkeyPatch;\n function monkeyPatch() {\n var desc = Object.getOwnPropertyDescriptor(String.prototype, \"match\");\n var orig = desc.value;\n desc.value = function(p) {\n if (p instanceof Minimatch) return p.match(this);\n return orig.call(this, p);\n };\n Object.defineProperty(String.prototype, desc);\n }\n minimatch.filter = filter2;\n function filter2(pattern, options8) {\n options8 = options8 || {};\n return function(p, i, list) {\n return minimatch(p, pattern, options8);\n };\n }\n function ext(a, b) {\n a = a || {};\n b = b || {};\n var t = {};\n Object.keys(b).forEach(function(k) {\n t[k] = b[k];\n });\n Object.keys(a).forEach(function(k) {\n t[k] = a[k];\n });\n return t;\n }\n minimatch.defaults = function(def) {\n if (!def || !Object.keys(def).length) return minimatch;\n var orig = minimatch;\n var m = function minimatch2(p, pattern, options8) {\n return orig.minimatch(p, pattern, ext(def, options8));\n };\n m.Minimatch = function Minimatch2(pattern, options8) {\n return new orig.Minimatch(pattern, ext(def, options8));\n };\n return m;\n };\n Minimatch.defaults = function(def) {\n if (!def || !Object.keys(def).length) return Minimatch;\n return minimatch.defaults(def).Minimatch;\n };\n function minimatch(p, pattern, options8) {\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"glob pattern string required\");\n }\n if (!options8) options8 = {};\n if (!options8.nocomment && pattern.charAt(0) === \"#\") {\n return false;\n }\n if (pattern.trim() === \"\") return p === \"\";\n return new Minimatch(pattern, options8).match(p);\n }\n function Minimatch(pattern, options8) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options8, cache3);\n }\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"glob pattern string required\");\n }\n if (!options8) options8 = {};\n if (platform === \"win32\") {\n pattern = pattern.split(\"\\\\\").join(\"/\");\n }\n var cacheKey = pattern + \"\\n\" + sigmund(options8);\n var cached = minimatch.cache.get(cacheKey);\n if (cached) return cached;\n minimatch.cache.set(cacheKey, this);\n this.options = options8;\n this.set = [];\n this.pattern = pattern;\n this.regexp = null;\n this.negate = false;\n this.comment = false;\n this.empty = false;\n this.make();\n }\n Minimatch.prototype.make = make;\n function make() {\n if (this._made) return;\n var pattern = this.pattern;\n var options8 = this.options;\n if (!options8.nocomment && pattern.charAt(0) === \"#\") {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n this.parseNegate();\n var set = this.globSet = this.braceExpand();\n if (options8.debug) console.error(this.pattern, set);\n set = this.globParts = set.map(function(s) {\n return s.split(slashSplit);\n });\n if (options8.debug) console.error(this.pattern, set);\n set = set.map(function(s, si, set2) {\n return s.map(this.parse, this);\n }, this);\n if (options8.debug) console.error(this.pattern, set);\n set = set.filter(function(s) {\n return -1 === s.indexOf(false);\n });\n if (options8.debug) console.error(this.pattern, set);\n this.set = set;\n }\n Minimatch.prototype.parseNegate = parseNegate;\n function parseNegate() {\n var pattern = this.pattern, negate = false, options8 = this.options, negateOffset = 0;\n if (options8.nonegate) return;\n for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === \"!\"; i++) {\n negate = !negate;\n negateOffset++;\n }\n if (negateOffset) this.pattern = pattern.substr(negateOffset);\n this.negate = negate;\n }\n minimatch.braceExpand = function(pattern, options8) {\n return new Minimatch(pattern, options8).braceExpand();\n };\n Minimatch.prototype.braceExpand = braceExpand;\n function braceExpand(pattern, options8) {\n options8 = options8 || this.options;\n pattern = typeof pattern === \"undefined\" ? this.pattern : pattern;\n if (typeof pattern === \"undefined\") {\n throw new Error(\"undefined pattern\");\n }\n if (options8.nobrace || !pattern.match(/\\{.*\\}/)) {\n return [pattern];\n }\n var escaping = false;\n if (pattern.charAt(0) !== \"{\") {\n var prefix = null;\n for (var i = 0, l = pattern.length; i < l; i++) {\n var c2 = pattern.charAt(i);\n if (c2 === \"\\\\\") {\n escaping = !escaping;\n } else if (c2 === \"{\" && !escaping) {\n prefix = pattern.substr(0, i);\n break;\n }\n }\n if (prefix === null) {\n return [pattern];\n }\n var tail = braceExpand(pattern.substr(i), options8);\n return tail.map(function(t) {\n return prefix + t;\n });\n }\n var numset = pattern.match(/^\\{(-?[0-9]+)\\.\\.(-?[0-9]+)\\}/);\n if (numset) {\n var suf = braceExpand(pattern.substr(numset[0].length), options8), start = +numset[1], end = +numset[2], inc = start > end ? -1 : 1, set = [];\n for (var i = start; i != end + inc; i += inc) {\n for (var ii = 0, ll = suf.length; ii < ll; ii++) {\n set.push(i + suf[ii]);\n }\n }\n return set;\n }\n var i = 1, depth = 1, set = [], member = \"\", sawEnd = false, escaping = false;\n function addMember() {\n set.push(member);\n member = \"\";\n }\n FOR: for (i = 1, l = pattern.length; i < l; i++) {\n var c2 = pattern.charAt(i);\n if (escaping) {\n escaping = false;\n member += \"\\\\\" + c2;\n } else {\n switch (c2) {\n case \"\\\\\":\n escaping = true;\n continue;\n case \"{\":\n depth++;\n member += \"{\";\n continue;\n case \"}\":\n depth--;\n if (depth === 0) {\n addMember();\n i++;\n break FOR;\n } else {\n member += c2;\n continue;\n }\n case \",\":\n if (depth === 1) {\n addMember();\n } else {\n member += c2;\n }\n continue;\n default:\n member += c2;\n continue;\n }\n }\n }\n if (depth !== 0) {\n return braceExpand(\"\\\\\" + pattern, options8);\n }\n var suf = braceExpand(pattern.substr(i), options8);\n var addBraces = set.length === 1;\n set = set.map(function(p) {\n return braceExpand(p, options8);\n });\n set = set.reduce(function(l2, r) {\n return l2.concat(r);\n });\n if (addBraces) {\n set = set.map(function(s) {\n return \"{\" + s + \"}\";\n });\n }\n var ret = [];\n for (var i = 0, l = set.length; i < l; i++) {\n for (var ii = 0, ll = suf.length; ii < ll; ii++) {\n ret.push(set[i] + suf[ii]);\n }\n }\n return ret;\n }\n Minimatch.prototype.parse = parse7;\n var SUBPARSE = {};\n function parse7(pattern, isSub) {\n var options8 = this.options;\n if (!options8.noglobstar && pattern === \"**\") return GLOBSTAR;\n if (pattern === \"\") return \"\";\n var re = \"\", hasMagic = !!options8.nocase, escaping = false, patternListStack = [], plType, stateChar, inClass = false, reClassStart = -1, classStart = -1, patternStart = pattern.charAt(0) === \".\" ? \"\" : options8.dot ? \"(?!(?:^|\\\\/)\\\\.{1,2}(?:$|\\\\/))\" : \"(?!\\\\.)\";\n function clearStateChar() {\n if (stateChar) {\n switch (stateChar) {\n case \"*\":\n re += star;\n hasMagic = true;\n break;\n case \"?\":\n re += qmark;\n hasMagic = true;\n break;\n default:\n re += \"\\\\\" + stateChar;\n break;\n }\n stateChar = false;\n }\n }\n for (var i = 0, len = pattern.length, c2; i < len && (c2 = pattern.charAt(i)); i++) {\n if (options8.debug) {\n console.error(\"%s\t%s %s %j\", pattern, i, re, c2);\n }\n if (escaping && reSpecials[c2]) {\n re += \"\\\\\" + c2;\n escaping = false;\n continue;\n }\n SWITCH: switch (c2) {\n case \"/\":\n return false;\n case \"\\\\\":\n clearStateChar();\n escaping = true;\n continue;\n // the various stateChar values\n // for the \"extglob\" stuff.\n case \"?\":\n case \"*\":\n case \"+\":\n case \"@\":\n case \"!\":\n if (options8.debug) {\n console.error(\"%s\t%s %s %j <-- stateChar\", pattern, i, re, c2);\n }\n if (inClass) {\n if (c2 === \"!\" && i === classStart + 1) c2 = \"^\";\n re += c2;\n continue;\n }\n clearStateChar();\n stateChar = c2;\n if (options8.noext) clearStateChar();\n continue;\n case \"(\":\n if (inClass) {\n re += \"(\";\n continue;\n }\n if (!stateChar) {\n re += \"\\\\(\";\n continue;\n }\n plType = stateChar;\n patternListStack.push({\n type: plType,\n start: i - 1,\n reStart: re.length\n });\n re += stateChar === \"!\" ? \"(?:(?!\" : \"(?:\";\n stateChar = false;\n continue;\n case \")\":\n if (inClass || !patternListStack.length) {\n re += \"\\\\)\";\n continue;\n }\n hasMagic = true;\n re += \")\";\n plType = patternListStack.pop().type;\n switch (plType) {\n case \"!\":\n re += \"[^/]*?)\";\n break;\n case \"?\":\n case \"+\":\n case \"*\":\n re += plType;\n case \"@\":\n break;\n }\n continue;\n case \"|\":\n if (inClass || !patternListStack.length || escaping) {\n re += \"\\\\|\";\n escaping = false;\n continue;\n }\n re += \"|\";\n continue;\n // these are mostly the same in regexp and glob\n case \"[\":\n clearStateChar();\n if (inClass) {\n re += \"\\\\\" + c2;\n continue;\n }\n inClass = true;\n classStart = i;\n reClassStart = re.length;\n re += c2;\n continue;\n case \"]\":\n if (i === classStart + 1 || !inClass) {\n re += \"\\\\\" + c2;\n escaping = false;\n continue;\n }\n hasMagic = true;\n inClass = false;\n re += c2;\n continue;\n default:\n clearStateChar();\n if (escaping) {\n escaping = false;\n } else if (reSpecials[c2] && !(c2 === \"^\" && inClass)) {\n re += \"\\\\\";\n }\n re += c2;\n }\n }\n if (inClass) {\n var cs = pattern.substr(classStart + 1), sp = this.parse(cs, SUBPARSE);\n re = re.substr(0, reClassStart) + \"\\\\[\" + sp[0];\n hasMagic = hasMagic || sp[1];\n }\n var pl;\n while (pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + 3);\n tail = tail.replace(/((?:\\\\{2})*)(\\\\?)\\|/g, function(_, $1, $2) {\n if (!$2) {\n $2 = \"\\\\\";\n }\n return $1 + $1 + $2 + \"|\";\n });\n var t = pl.type === \"*\" ? star : pl.type === \"?\" ? qmark : \"\\\\\" + pl.type;\n hasMagic = true;\n re = re.slice(0, pl.reStart) + t + \"\\\\(\" + tail;\n }\n clearStateChar();\n if (escaping) {\n re += \"\\\\\\\\\";\n }\n var addPatternStart = false;\n switch (re.charAt(0)) {\n case \".\":\n case \"[\":\n case \"(\":\n addPatternStart = true;\n }\n if (re !== \"\" && hasMagic) re = \"(?=.)\" + re;\n if (addPatternStart) re = patternStart + re;\n if (isSub === SUBPARSE) {\n return [re, hasMagic];\n }\n if (!hasMagic) {\n return globUnescape(pattern);\n }\n var flags = options8.nocase ? \"i\" : \"\", regExp = new RegExp(\"^\" + re + \"$\", flags);\n regExp._glob = pattern;\n regExp._src = re;\n return regExp;\n }\n minimatch.makeRe = function(pattern, options8) {\n return new Minimatch(pattern, options8 || {}).makeRe();\n };\n Minimatch.prototype.makeRe = makeRe;\n function makeRe() {\n if (this.regexp || this.regexp === false) return this.regexp;\n var set = this.set;\n if (!set.length) return this.regexp = false;\n var options8 = this.options;\n var twoStar = options8.noglobstar ? star : options8.dot ? twoStarDot : twoStarNoDot, flags = options8.nocase ? \"i\" : \"\";\n var re = set.map(function(pattern) {\n return pattern.map(function(p) {\n return p === GLOBSTAR ? twoStar : typeof p === \"string\" ? regExpEscape(p) : p._src;\n }).join(\"\\\\/\");\n }).join(\"|\");\n re = \"^(?:\" + re + \")$\";\n if (this.negate) re = \"^(?!\" + re + \").*$\";\n try {\n return this.regexp = new RegExp(re, flags);\n } catch (ex) {\n return this.regexp = false;\n }\n }\n minimatch.match = function(list, pattern, options8) {\n var mm = new Minimatch(pattern, options8);\n list = list.filter(function(f) {\n return mm.match(f);\n });\n if (options8.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n };\n Minimatch.prototype.match = match;\n function match(f, partial) {\n if (this.comment) return false;\n if (this.empty) return f === \"\";\n if (f === \"/\" && partial) return true;\n var options8 = this.options;\n if (platform === \"win32\") {\n f = f.split(\"\\\\\").join(\"/\");\n }\n f = f.split(slashSplit);\n if (options8.debug) {\n console.error(this.pattern, \"split\", f);\n }\n var set = this.set;\n for (var i = 0, l = set.length; i < l; i++) {\n var pattern = set[i];\n var hit = this.matchOne(f, pattern, partial);\n if (hit) {\n if (options8.flipNegate) return true;\n return !this.negate;\n }\n }\n if (options8.flipNegate) return false;\n return this.negate;\n }\n Minimatch.prototype.matchOne = function(file, pattern, partial) {\n var options8 = this.options;\n if (options8.debug) {\n console.error(\n \"matchOne\",\n {\n \"this\": this,\n file,\n pattern\n }\n );\n }\n if (options8.matchBase && pattern.length === 1) {\n file = path15.basename(file.join(\"/\")).split(\"/\");\n }\n if (options8.debug) {\n console.error(\"matchOne\", file.length, pattern.length);\n }\n for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n if (options8.debug) {\n console.error(\"matchOne loop\");\n }\n var p = pattern[pi], f = file[fi];\n if (options8.debug) {\n console.error(pattern, p, f);\n }\n if (p === false) return false;\n if (p === GLOBSTAR) {\n if (options8.debug)\n console.error(\"GLOBSTAR\", [pattern, p, f]);\n var fr = fi, pr = pi + 1;\n if (pr === pl) {\n if (options8.debug)\n console.error(\"** at the end\");\n for (; fi < fl; fi++) {\n if (file[fi] === \".\" || file[fi] === \"..\" || !options8.dot && file[fi].charAt(0) === \".\") return false;\n }\n return true;\n }\n WHILE: while (fr < fl) {\n var swallowee = file[fr];\n if (options8.debug) {\n console.error(\n \"\\nglobstar while\",\n file,\n fr,\n pattern,\n pr,\n swallowee\n );\n }\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n if (options8.debug)\n console.error(\"globstar found match!\", fr, fl, swallowee);\n return true;\n } else {\n if (swallowee === \".\" || swallowee === \"..\" || !options8.dot && swallowee.charAt(0) === \".\") {\n if (options8.debug)\n console.error(\"dot detected!\", file, fr, pattern, pr);\n break WHILE;\n }\n if (options8.debug)\n console.error(\"globstar swallow a segment, and continue\");\n fr++;\n }\n }\n if (partial) {\n if (fr === fl) return true;\n }\n return false;\n }\n var hit;\n if (typeof p === \"string\") {\n if (options8.nocase) {\n hit = f.toLowerCase() === p.toLowerCase();\n } else {\n hit = f === p;\n }\n if (options8.debug) {\n console.error(\"string match\", p, f, hit);\n }\n } else {\n hit = f.match(p);\n if (options8.debug) {\n console.error(\"pattern match\", p, f, hit);\n }\n }\n if (!hit) return false;\n }\n if (fi === fl && pi === pl) {\n return true;\n } else if (fi === fl) {\n return partial;\n } else if (pi === pl) {\n var emptyFileEnd = fi === fl - 1 && file[fi] === \"\";\n return emptyFileEnd;\n }\n throw new Error(\"wtf?\");\n };\n function globUnescape(s) {\n return s.replace(/\\\\(.)/g, \"$1\");\n }\n function regExpEscape(s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n }\n});\n\n// node_modules/editorconfig/src/lib/ini.js\nvar require_ini = __commonJS({\n \"node_modules/editorconfig/src/lib/ini.js\"(exports) {\n \"use strict\";\n var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function(resolve3, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve3(result.value) : new P(function(resolve4) {\n resolve4(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n var __generator = exports && exports.__generator || function(thisArg, body) {\n var _ = { label: 0, sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n var __importStar = exports && exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs4 = __importStar(__require(\"fs\"));\n var regex = {\n section: /^\\s*\\[(([^#;]|\\\\#|\\\\;)+)\\]\\s*([#;].*)?$/,\n param: /^\\s*([\\w\\.\\-\\_]+)\\s*[=:]\\s*(.*?)\\s*([#;].*)?$/,\n comment: /^\\s*[#;].*$/\n };\n function parse7(file) {\n return __awaiter(this, void 0, void 0, function() {\n return __generator(this, function(_a) {\n return [2, new Promise(function(resolve3, reject) {\n fs4.readFile(file, \"utf8\", function(err, data) {\n if (err) {\n reject(err);\n return;\n }\n resolve3(parseString2(data));\n });\n })];\n });\n });\n }\n exports.parse = parse7;\n function parseSync(file) {\n return parseString2(fs4.readFileSync(file, \"utf8\"));\n }\n exports.parseSync = parseSync;\n function parseString2(data) {\n var sectionBody = {};\n var sectionName = null;\n var value = [[sectionName, sectionBody]];\n var lines = data.split(/\\r\\n|\\r|\\n/);\n lines.forEach(function(line3) {\n var match;\n if (regex.comment.test(line3)) {\n return;\n }\n if (regex.param.test(line3)) {\n match = line3.match(regex.param);\n sectionBody[match[1]] = match[2];\n } else if (regex.section.test(line3)) {\n match = line3.match(regex.section);\n sectionName = match[1];\n sectionBody = {};\n value.push([sectionName, sectionBody]);\n }\n });\n return value;\n }\n exports.parseString = parseString2;\n }\n});\n\n// node_modules/editorconfig/package.json\nvar require_package = __commonJS({\n \"node_modules/editorconfig/package.json\"(exports, module) {\n module.exports = {\n name: \"editorconfig\",\n version: \"0.15.3\",\n description: \"EditorConfig File Locator and Interpreter for Node.js\",\n keywords: [\n \"editorconfig\",\n \"core\"\n ],\n main: \"src/index.js\",\n contributors: [\n \"Hong Xu (topbug.net)\",\n \"Jed Mao (https://github.com/jedmao/)\",\n \"Trey Hunner (http://treyhunner.com)\"\n ],\n directories: {\n bin: \"./bin\",\n lib: \"./lib\"\n },\n scripts: {\n clean: \"rimraf dist\",\n prebuild: \"npm run clean\",\n build: \"tsc\",\n pretest: \"npm run lint && npm run build && npm run copy && cmake .\",\n test: \"ctest .\",\n \"pretest:ci\": \"npm run pretest\",\n \"test:ci\": \"ctest -VV --output-on-failure .\",\n lint: \"npm run eclint && npm run tslint\",\n eclint: 'eclint check --indent_size ignore \"src/**\"',\n tslint: \"tslint --project tsconfig.json --exclude package.json\",\n copy: \"cpy .npmignore LICENSE README.md CHANGELOG.md dist && cpy bin/* dist/bin && cpy src/lib/fnmatch*.* dist/src/lib\",\n prepub: \"npm run lint && npm run build && npm run copy\",\n pub: \"npm publish ./dist\"\n },\n repository: {\n type: \"git\",\n url: \"git://github.com/editorconfig/editorconfig-core-js.git\"\n },\n bugs: \"https://github.com/editorconfig/editorconfig-core-js/issues\",\n author: \"EditorConfig Team\",\n license: \"MIT\",\n dependencies: {\n commander: \"^2.19.0\",\n \"lru-cache\": \"^4.1.5\",\n semver: \"^5.6.0\",\n sigmund: \"^1.0.1\"\n },\n devDependencies: {\n \"@types/mocha\": \"^5.2.6\",\n \"@types/node\": \"^10.12.29\",\n \"@types/semver\": \"^5.5.0\",\n \"cpy-cli\": \"^2.0.0\",\n eclint: \"^2.8.1\",\n mocha: \"^5.2.0\",\n rimraf: \"^2.6.3\",\n should: \"^13.2.3\",\n tslint: \"^5.13.1\",\n typescript: \"^3.3.3333\"\n }\n };\n }\n});\n\n// node_modules/editorconfig/src/index.js\nvar require_src = __commonJS({\n \"node_modules/editorconfig/src/index.js\"(exports) {\n \"use strict\";\n var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function(resolve3, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve3(result.value) : new P(function(resolve4) {\n resolve4(result.value);\n }).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n };\n var __generator = exports && exports.__generator || function(thisArg, body) {\n var _ = { label: 0, sent: function() {\n if (t[0] & 1) throw t[1];\n return t[1];\n }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() {\n return this;\n }), g;\n function verb(n) {\n return function(v) {\n return step([n, v]);\n };\n }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n case 4:\n _.label++;\n return { value: op[1], done: false };\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n case 7:\n op = _.ops.pop();\n _.trys.pop();\n continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n if (t && _.label < t[2]) {\n _.label = t[2];\n _.ops.push(op);\n break;\n }\n if (t[2]) _.ops.pop();\n _.trys.pop();\n continue;\n }\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n if (op[0] & 5) throw op[1];\n return { value: op[0] ? op[1] : void 0, done: true };\n }\n };\n var __importStar = exports && exports.__importStar || function(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) {\n for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n };\n var __importDefault = exports && exports.__importDefault || function(mod) {\n return mod && mod.__esModule ? mod : { \"default\": mod };\n };\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var fs4 = __importStar(__require(\"fs\"));\n var path15 = __importStar(__require(\"path\"));\n var semver = {\n gte: require_gte()\n };\n var fnmatch_1 = __importDefault(require_fnmatch());\n var ini_1 = require_ini();\n exports.parseString = ini_1.parseString;\n var package_json_1 = __importDefault(require_package());\n var knownProps = {\n end_of_line: true,\n indent_style: true,\n indent_size: true,\n insert_final_newline: true,\n trim_trailing_whitespace: true,\n charset: true\n };\n function fnmatch(filepath, glob) {\n var matchOptions = { matchBase: true, dot: true, noext: true };\n glob = glob.replace(/\\*\\*/g, \"{*,**/**/**}\");\n return fnmatch_1.default(filepath, glob, matchOptions);\n }\n function getConfigFileNames(filepath, options8) {\n var paths = [];\n do {\n filepath = path15.dirname(filepath);\n paths.push(path15.join(filepath, options8.config));\n } while (filepath !== options8.root);\n return paths;\n }\n function processMatches(matches, version) {\n if (\"indent_style\" in matches && matches.indent_style === \"tab\" && !(\"indent_size\" in matches) && semver.gte(version, \"0.10.0\")) {\n matches.indent_size = \"tab\";\n }\n if (\"indent_size\" in matches && !(\"tab_width\" in matches) && matches.indent_size !== \"tab\") {\n matches.tab_width = matches.indent_size;\n }\n if (\"indent_size\" in matches && \"tab_width\" in matches && matches.indent_size === \"tab\") {\n matches.indent_size = matches.tab_width;\n }\n return matches;\n }\n function processOptions(options8, filepath) {\n if (options8 === void 0) {\n options8 = {};\n }\n return {\n config: options8.config || \".editorconfig\",\n version: options8.version || package_json_1.default.version,\n root: path15.resolve(options8.root || path15.parse(filepath).root)\n };\n }\n function buildFullGlob(pathPrefix, glob) {\n switch (glob.indexOf(\"/\")) {\n case -1:\n glob = \"**/\" + glob;\n break;\n case 0:\n glob = glob.substring(1);\n break;\n default:\n break;\n }\n return path15.join(pathPrefix, glob);\n }\n function extendProps(props, options8) {\n if (props === void 0) {\n props = {};\n }\n if (options8 === void 0) {\n options8 = {};\n }\n for (var key2 in options8) {\n if (options8.hasOwnProperty(key2)) {\n var value = options8[key2];\n var key22 = key2.toLowerCase();\n var value2 = value;\n if (knownProps[key22]) {\n value2 = value.toLowerCase();\n }\n try {\n value2 = JSON.parse(value);\n } catch (e) {\n }\n if (typeof value === \"undefined\" || value === null) {\n value2 = String(value);\n }\n props[key22] = value2;\n }\n }\n return props;\n }\n function parseFromConfigs(configs, filepath, options8) {\n return processMatches(configs.reverse().reduce(function(matches, file) {\n var pathPrefix = path15.dirname(file.name);\n file.contents.forEach(function(section) {\n var glob = section[0];\n var options22 = section[1];\n if (!glob) {\n return;\n }\n var fullGlob = buildFullGlob(pathPrefix, glob);\n if (!fnmatch(filepath, fullGlob)) {\n return;\n }\n matches = extendProps(matches, options22);\n });\n return matches;\n }, {}), options8.version);\n }\n function getConfigsForFiles(files) {\n var configs = [];\n for (var i in files) {\n if (files.hasOwnProperty(i)) {\n var file = files[i];\n var contents = ini_1.parseString(file.contents);\n configs.push({\n name: file.name,\n contents\n });\n if ((contents[0][1].root || \"\").toLowerCase() === \"true\") {\n break;\n }\n }\n }\n return configs;\n }\n function readConfigFiles(filepaths) {\n return __awaiter(this, void 0, void 0, function() {\n return __generator(this, function(_a) {\n return [2, Promise.all(filepaths.map(function(name) {\n return new Promise(function(resolve3) {\n fs4.readFile(name, \"utf8\", function(err, data) {\n resolve3({\n name,\n contents: err ? \"\" : data\n });\n });\n });\n }))];\n });\n });\n }\n function readConfigFilesSync(filepaths) {\n var files = [];\n var file;\n filepaths.forEach(function(filepath) {\n try {\n file = fs4.readFileSync(filepath, \"utf8\");\n } catch (e) {\n file = \"\";\n }\n files.push({\n name: filepath,\n contents: file\n });\n });\n return files;\n }\n function opts(filepath, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n var resolvedFilePath = path15.resolve(filepath);\n return [\n resolvedFilePath,\n processOptions(options8, resolvedFilePath)\n ];\n }\n function parseFromFiles(filepath, files, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n return __awaiter(this, void 0, void 0, function() {\n var _a, resolvedFilePath, processedOptions;\n return __generator(this, function(_b) {\n _a = opts(filepath, options8), resolvedFilePath = _a[0], processedOptions = _a[1];\n return [2, files.then(getConfigsForFiles).then(function(configs) {\n return parseFromConfigs(configs, resolvedFilePath, processedOptions);\n })];\n });\n });\n }\n exports.parseFromFiles = parseFromFiles;\n function parseFromFilesSync(filepath, files, options8) {\n if (options8 === void 0) {\n options8 = {};\n }\n var _a = opts(filepath, options8), resolvedFilePath = _a[0], processedOptions = _a[1];\n return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions);\n }\n exports.parseFromFilesSync = parseFromFilesSync;\n function parse7(_filepath, _options) {\n if (_options === void 0) {\n _options = {};\n }\n return __awaiter(this, void 0, void 0, function() {\n var _a, resolvedFilePath, processedOptions, filepaths;\n return __generator(this, function(_b) {\n _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1];\n filepaths = getConfigFileNames(resolvedFilePath, processedOptions);\n return [2, readConfigFiles(filepaths).then(getConfigsForFiles).then(function(configs) {\n return parseFromConfigs(configs, resolvedFilePath, processedOptions);\n })];\n });\n });\n }\n exports.parse = parse7;\n function parseSync(_filepath, _options) {\n if (_options === void 0) {\n _options = {};\n }\n var _a = opts(_filepath, _options), resolvedFilePath = _a[0], processedOptions = _a[1];\n var filepaths = getConfigFileNames(resolvedFilePath, processedOptions);\n var files = readConfigFilesSync(filepaths);\n return parseFromConfigs(getConfigsForFiles(files), resolvedFilePath, processedOptions);\n }\n exports.parseSync = parseSync;\n }\n});\n\n// node_modules/@babel/code-frame/node_modules/js-tokens/index.js\nvar require_js_tokens = __commonJS({\n \"node_modules/@babel/code-frame/node_modules/js-tokens/index.js\"(exports, module) {\n var Identifier;\n var JSXIdentifier;\n var JSXPunctuator;\n var JSXString;\n var JSXText;\n var KeywordsWithExpressionAfter;\n var KeywordsWithNoLineTerminatorAfter;\n var LineTerminatorSequence;\n var MultiLineComment;\n var Newline;\n var NumericLiteral;\n var Punctuator;\n var RegularExpressionLiteral;\n var SingleLineComment;\n var StringLiteral;\n var Template;\n var TokensNotPrecedingObjectLiteral;\n var TokensPrecedingExpression;\n var WhiteSpace;\n var jsTokens2;\n RegularExpressionLiteral = /\\/(?![*\\/])(?:\\[(?:[^\\]\\\\\\n\\r\\u2028\\u2029]+|\\\\.)*\\]|[^\\/\\\\\\n\\r\\u2028\\u2029]+|\\\\.)*(\\/[$_\\u200C\\u200D\\p{ID_Continue}]*|\\\\)?/yu;\n Punctuator = /--|\\+\\+|=>|\\.{3}|\\??\\.(?!\\d)|(?:&&|\\|\\||\\?\\?|[+\\-%&|^]|\\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\\/(?![\\/*]))=?|[?~,:;[\\](){}]/y;\n Identifier = /(\\x23?)(?=[$_\\p{ID_Start}\\\\])(?:[$_\\u200C\\u200D\\p{ID_Continue}]+|\\\\u[\\da-fA-F]{4}|\\\\u\\{[\\da-fA-F]+\\})+/yu;\n StringLiteral = /(['\"])(?:[^'\"\\\\\\n\\r]+|(?!\\1)['\"]|\\\\(?:\\r\\n|[^]))*(\\1)?/y;\n NumericLiteral = /(?:0[xX][\\da-fA-F](?:_?[\\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\\d)*n|(?:(?:0(?!\\d)|0\\d*[89]\\d*|[1-9](?:_?\\d)*)(?:\\.(?:\\d(?:_?\\d)*)?)?|\\.\\d(?:_?\\d)*)(?:[eE][+-]?\\d(?:_?\\d)*)?|0[0-7]+/y;\n Template = /[`}](?:[^`\\\\$]+|\\\\[^]|\\$(?!\\{))*(`|\\$\\{)?/y;\n WhiteSpace = /[\\t\\v\\f\\ufeff\\p{Zs}]+/yu;\n LineTerminatorSequence = /\\r?\\n|[\\r\\u2028\\u2029]/y;\n MultiLineComment = /\\/\\*(?:[^*]+|\\*(?!\\/))*(\\*\\/)?/y;\n SingleLineComment = /\\/\\/.*/y;\n JSXPunctuator = /[<>.:={}]|\\/(?![\\/*])/y;\n JSXIdentifier = /[$_\\p{ID_Start}][$_\\u200C\\u200D\\p{ID_Continue}-]*/yu;\n JSXString = /(['\"])(?:[^'\"]+|(?!\\1)['\"])*(\\1)?/y;\n JSXText = /[^<>{}]+/y;\n TokensPrecedingExpression = /^(?:[\\/+-]|\\.{3}|\\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/;\n TokensNotPrecedingObjectLiteral = /^(?:=>|[;\\]){}]|else|\\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/;\n KeywordsWithExpressionAfter = /^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/;\n KeywordsWithNoLineTerminatorAfter = /^(?:return|throw|yield)$/;\n Newline = RegExp(LineTerminatorSequence.source);\n module.exports = jsTokens2 = function* (input, { jsx = false } = {}) {\n var braces, firstCodePoint, isExpression, lastIndex, lastSignificantToken, length, match, mode, nextLastIndex, nextLastSignificantToken, parenNesting, postfixIncDec, punctuator, stack2;\n ({ length } = input);\n lastIndex = 0;\n lastSignificantToken = \"\";\n stack2 = [\n { tag: \"JS\" }\n ];\n braces = [];\n parenNesting = 0;\n postfixIncDec = false;\n while (lastIndex < length) {\n mode = stack2[stack2.length - 1];\n switch (mode.tag) {\n case \"JS\":\n case \"JSNonExpressionParen\":\n case \"InterpolationInTemplate\":\n case \"InterpolationInJSX\":\n if (input[lastIndex] === \"/\" && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken))) {\n RegularExpressionLiteral.lastIndex = lastIndex;\n if (match = RegularExpressionLiteral.exec(input)) {\n lastIndex = RegularExpressionLiteral.lastIndex;\n lastSignificantToken = match[0];\n postfixIncDec = true;\n yield {\n type: \"RegularExpressionLiteral\",\n value: match[0],\n closed: match[1] !== void 0 && match[1] !== \"\\\\\"\n };\n continue;\n }\n }\n Punctuator.lastIndex = lastIndex;\n if (match = Punctuator.exec(input)) {\n punctuator = match[0];\n nextLastIndex = Punctuator.lastIndex;\n nextLastSignificantToken = punctuator;\n switch (punctuator) {\n case \"(\":\n if (lastSignificantToken === \"?NonExpressionParenKeyword\") {\n stack2.push({\n tag: \"JSNonExpressionParen\",\n nesting: parenNesting\n });\n }\n parenNesting++;\n postfixIncDec = false;\n break;\n case \")\":\n parenNesting--;\n postfixIncDec = true;\n if (mode.tag === \"JSNonExpressionParen\" && parenNesting === mode.nesting) {\n stack2.pop();\n nextLastSignificantToken = \"?NonExpressionParenEnd\";\n postfixIncDec = false;\n }\n break;\n case \"{\":\n Punctuator.lastIndex = 0;\n isExpression = !TokensNotPrecedingObjectLiteral.test(lastSignificantToken) && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken));\n braces.push(isExpression);\n postfixIncDec = false;\n break;\n case \"}\":\n switch (mode.tag) {\n case \"InterpolationInTemplate\":\n if (braces.length === mode.nesting) {\n Template.lastIndex = lastIndex;\n match = Template.exec(input);\n lastIndex = Template.lastIndex;\n lastSignificantToken = match[0];\n if (match[1] === \"${\") {\n lastSignificantToken = \"?InterpolationInTemplate\";\n postfixIncDec = false;\n yield {\n type: \"TemplateMiddle\",\n value: match[0]\n };\n } else {\n stack2.pop();\n postfixIncDec = true;\n yield {\n type: \"TemplateTail\",\n value: match[0],\n closed: match[1] === \"`\"\n };\n }\n continue;\n }\n break;\n case \"InterpolationInJSX\":\n if (braces.length === mode.nesting) {\n stack2.pop();\n lastIndex += 1;\n lastSignificantToken = \"}\";\n yield {\n type: \"JSXPunctuator\",\n value: \"}\"\n };\n continue;\n }\n }\n postfixIncDec = braces.pop();\n nextLastSignificantToken = postfixIncDec ? \"?ExpressionBraceEnd\" : \"}\";\n break;\n case \"]\":\n postfixIncDec = true;\n break;\n case \"++\":\n case \"--\":\n nextLastSignificantToken = postfixIncDec ? \"?PostfixIncDec\" : \"?UnaryIncDec\";\n break;\n case \"<\":\n if (jsx && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken))) {\n stack2.push({ tag: \"JSXTag\" });\n lastIndex += 1;\n lastSignificantToken = \"<\";\n yield {\n type: \"JSXPunctuator\",\n value: punctuator\n };\n continue;\n }\n postfixIncDec = false;\n break;\n default:\n postfixIncDec = false;\n }\n lastIndex = nextLastIndex;\n lastSignificantToken = nextLastSignificantToken;\n yield {\n type: \"Punctuator\",\n value: punctuator\n };\n continue;\n }\n Identifier.lastIndex = lastIndex;\n if (match = Identifier.exec(input)) {\n lastIndex = Identifier.lastIndex;\n nextLastSignificantToken = match[0];\n switch (match[0]) {\n case \"for\":\n case \"if\":\n case \"while\":\n case \"with\":\n if (lastSignificantToken !== \".\" && lastSignificantToken !== \"?.\") {\n nextLastSignificantToken = \"?NonExpressionParenKeyword\";\n }\n }\n lastSignificantToken = nextLastSignificantToken;\n postfixIncDec = !KeywordsWithExpressionAfter.test(match[0]);\n yield {\n type: match[1] === \"#\" ? \"PrivateIdentifier\" : \"IdentifierName\",\n value: match[0]\n };\n continue;\n }\n StringLiteral.lastIndex = lastIndex;\n if (match = StringLiteral.exec(input)) {\n lastIndex = StringLiteral.lastIndex;\n lastSignificantToken = match[0];\n postfixIncDec = true;\n yield {\n type: \"StringLiteral\",\n value: match[0],\n closed: match[2] !== void 0\n };\n continue;\n }\n NumericLiteral.lastIndex = lastIndex;\n if (match = NumericLiteral.exec(input)) {\n lastIndex = NumericLiteral.lastIndex;\n lastSignificantToken = match[0];\n postfixIncDec = true;\n yield {\n type: \"NumericLiteral\",\n value: match[0]\n };\n continue;\n }\n Template.lastIndex = lastIndex;\n if (match = Template.exec(input)) {\n lastIndex = Template.lastIndex;\n lastSignificantToken = match[0];\n if (match[1] === \"${\") {\n lastSignificantToken = \"?InterpolationInTemplate\";\n stack2.push({\n tag: \"InterpolationInTemplate\",\n nesting: braces.length\n });\n postfixIncDec = false;\n yield {\n type: \"TemplateHead\",\n value: match[0]\n };\n } else {\n postfixIncDec = true;\n yield {\n type: \"NoSubstitutionTemplate\",\n value: match[0],\n closed: match[1] === \"`\"\n };\n }\n continue;\n }\n break;\n case \"JSXTag\":\n case \"JSXTagEnd\":\n JSXPunctuator.lastIndex = lastIndex;\n if (match = JSXPunctuator.exec(input)) {\n lastIndex = JSXPunctuator.lastIndex;\n nextLastSignificantToken = match[0];\n switch (match[0]) {\n case \"<\":\n stack2.push({ tag: \"JSXTag\" });\n break;\n case \">\":\n stack2.pop();\n if (lastSignificantToken === \"/\" || mode.tag === \"JSXTagEnd\") {\n nextLastSignificantToken = \"?JSX\";\n postfixIncDec = true;\n } else {\n stack2.push({ tag: \"JSXChildren\" });\n }\n break;\n case \"{\":\n stack2.push({\n tag: \"InterpolationInJSX\",\n nesting: braces.length\n });\n nextLastSignificantToken = \"?InterpolationInJSX\";\n postfixIncDec = false;\n break;\n case \"/\":\n if (lastSignificantToken === \"<\") {\n stack2.pop();\n if (stack2[stack2.length - 1].tag === \"JSXChildren\") {\n stack2.pop();\n }\n stack2.push({ tag: \"JSXTagEnd\" });\n }\n }\n lastSignificantToken = nextLastSignificantToken;\n yield {\n type: \"JSXPunctuator\",\n value: match[0]\n };\n continue;\n }\n JSXIdentifier.lastIndex = lastIndex;\n if (match = JSXIdentifier.exec(input)) {\n lastIndex = JSXIdentifier.lastIndex;\n lastSignificantToken = match[0];\n yield {\n type: \"JSXIdentifier\",\n value: match[0]\n };\n continue;\n }\n JSXString.lastIndex = lastIndex;\n if (match = JSXString.exec(input)) {\n lastIndex = JSXString.lastIndex;\n lastSignificantToken = match[0];\n yield {\n type: \"JSXString\",\n value: match[0],\n closed: match[2] !== void 0\n };\n continue;\n }\n break;\n case \"JSXChildren\":\n JSXText.lastIndex = lastIndex;\n if (match = JSXText.exec(input)) {\n lastIndex = JSXText.lastIndex;\n lastSignificantToken = match[0];\n yield {\n type: \"JSXText\",\n value: match[0]\n };\n continue;\n }\n switch (input[lastIndex]) {\n case \"<\":\n stack2.push({ tag: \"JSXTag\" });\n lastIndex++;\n lastSignificantToken = \"<\";\n yield {\n type: \"JSXPunctuator\",\n value: \"<\"\n };\n continue;\n case \"{\":\n stack2.push({\n tag: \"InterpolationInJSX\",\n nesting: braces.length\n });\n lastIndex++;\n lastSignificantToken = \"?InterpolationInJSX\";\n postfixIncDec = false;\n yield {\n type: \"JSXPunctuator\",\n value: \"{\"\n };\n continue;\n }\n }\n WhiteSpace.lastIndex = lastIndex;\n if (match = WhiteSpace.exec(input)) {\n lastIndex = WhiteSpace.lastIndex;\n yield {\n type: \"WhiteSpace\",\n value: match[0]\n };\n continue;\n }\n LineTerminatorSequence.lastIndex = lastIndex;\n if (match = LineTerminatorSequence.exec(input)) {\n lastIndex = LineTerminatorSequence.lastIndex;\n postfixIncDec = false;\n if (KeywordsWithNoLineTerminatorAfter.test(lastSignificantToken)) {\n lastSignificantToken = \"?NoLineTerminatorHere\";\n }\n yield {\n type: \"LineTerminatorSequence\",\n value: match[0]\n };\n continue;\n }\n MultiLineComment.lastIndex = lastIndex;\n if (match = MultiLineComment.exec(input)) {\n lastIndex = MultiLineComment.lastIndex;\n if (Newline.test(match[0])) {\n postfixIncDec = false;\n if (KeywordsWithNoLineTerminatorAfter.test(lastSignificantToken)) {\n lastSignificantToken = \"?NoLineTerminatorHere\";\n }\n }\n yield {\n type: \"MultiLineComment\",\n value: match[0],\n closed: match[1] !== void 0\n };\n continue;\n }\n SingleLineComment.lastIndex = lastIndex;\n if (match = SingleLineComment.exec(input)) {\n lastIndex = SingleLineComment.lastIndex;\n postfixIncDec = false;\n yield {\n type: \"SingleLineComment\",\n value: match[0]\n };\n continue;\n }\n firstCodePoint = String.fromCodePoint(input.codePointAt(lastIndex));\n lastIndex += firstCodePoint.length;\n lastSignificantToken = firstCodePoint;\n postfixIncDec = false;\n yield {\n type: mode.tag.startsWith(\"JSX\") ? \"JSXInvalid\" : \"Invalid\",\n value: firstCodePoint\n };\n }\n return void 0;\n };\n }\n});\n\n// node_modules/n-readlines/readlines.js\nvar require_readlines = __commonJS({\n \"node_modules/n-readlines/readlines.js\"(exports, module) {\n \"use strict\";\n var fs4 = __require(\"fs\");\n var LineByLine = class {\n constructor(file, options8) {\n options8 = options8 || {};\n if (!options8.readChunk) options8.readChunk = 1024;\n if (!options8.newLineCharacter) {\n options8.newLineCharacter = 10;\n } else {\n options8.newLineCharacter = options8.newLineCharacter.charCodeAt(0);\n }\n if (typeof file === \"number\") {\n this.fd = file;\n } else {\n this.fd = fs4.openSync(file, \"r\");\n }\n this.options = options8;\n this.newLineCharacter = options8.newLineCharacter;\n this.reset();\n }\n _searchInBuffer(buffer2, hexNeedle) {\n let found = -1;\n for (let i = 0; i <= buffer2.length; i++) {\n let b_byte = buffer2[i];\n if (b_byte === hexNeedle) {\n found = i;\n break;\n }\n }\n return found;\n }\n reset() {\n this.eofReached = false;\n this.linesCache = [];\n this.fdPosition = 0;\n }\n close() {\n fs4.closeSync(this.fd);\n this.fd = null;\n }\n _extractLines(buffer2) {\n let line3;\n const lines = [];\n let bufferPosition = 0;\n let lastNewLineBufferPosition = 0;\n while (true) {\n let bufferPositionValue = buffer2[bufferPosition++];\n if (bufferPositionValue === this.newLineCharacter) {\n line3 = buffer2.slice(lastNewLineBufferPosition, bufferPosition);\n lines.push(line3);\n lastNewLineBufferPosition = bufferPosition;\n } else if (bufferPositionValue === void 0) {\n break;\n }\n }\n let leftovers = buffer2.slice(lastNewLineBufferPosition, bufferPosition);\n if (leftovers.length) {\n lines.push(leftovers);\n }\n return lines;\n }\n _readChunk(lineLeftovers) {\n let totalBytesRead = 0;\n let bytesRead;\n const buffers = [];\n do {\n const readBuffer = Buffer.alloc(this.options.readChunk);\n bytesRead = fs4.readSync(this.fd, readBuffer, 0, this.options.readChunk, this.fdPosition);\n totalBytesRead = totalBytesRead + bytesRead;\n this.fdPosition = this.fdPosition + bytesRead;\n buffers.push(readBuffer);\n } while (bytesRead && this._searchInBuffer(buffers[buffers.length - 1], this.options.newLineCharacter) === -1);\n let bufferData = Buffer.concat(buffers);\n if (bytesRead < this.options.readChunk) {\n this.eofReached = true;\n bufferData = bufferData.slice(0, totalBytesRead);\n }\n if (totalBytesRead) {\n this.linesCache = this._extractLines(bufferData);\n if (lineLeftovers) {\n this.linesCache[0] = Buffer.concat([lineLeftovers, this.linesCache[0]]);\n }\n }\n return totalBytesRead;\n }\n next() {\n if (!this.fd) return false;\n let line3 = false;\n if (this.eofReached && this.linesCache.length === 0) {\n return line3;\n }\n let bytesRead;\n if (!this.linesCache.length) {\n bytesRead = this._readChunk();\n }\n if (this.linesCache.length) {\n line3 = this.linesCache.shift();\n const lastLineCharacter = line3[line3.length - 1];\n if (lastLineCharacter !== this.newLineCharacter) {\n bytesRead = this._readChunk(line3);\n if (bytesRead) {\n line3 = this.linesCache.shift();\n }\n }\n }\n if (this.eofReached && this.linesCache.length === 0) {\n this.close();\n }\n if (line3 && line3[line3.length - 1] === this.newLineCharacter) {\n line3 = line3.slice(0, line3.length - 1);\n }\n return line3;\n }\n };\n module.exports = LineByLine;\n }\n});\n\n// node_modules/ignore/index.js\nvar require_ignore = __commonJS({\n \"node_modules/ignore/index.js\"(exports, module) {\n function makeArray(subject) {\n return Array.isArray(subject) ? subject : [subject];\n }\n var UNDEFINED = void 0;\n var EMPTY = \"\";\n var SPACE = \" \";\n var ESCAPE = \"\\\\\";\n var REGEX_TEST_BLANK_LINE = /^\\s+$/;\n var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\\\]|^)\\\\$/;\n var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\\\!/;\n var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\\\#/;\n var REGEX_SPLITALL_CRLF = /\\r?\\n/g;\n var REGEX_TEST_INVALID_PATH = /^\\.{0,2}\\/|^\\.{1,2}$/;\n var REGEX_TEST_TRAILING_SLASH = /\\/$/;\n var SLASH = \"/\";\n var TMP_KEY_IGNORE = \"node-ignore\";\n if (typeof Symbol !== \"undefined\") {\n TMP_KEY_IGNORE = Symbol.for(\"node-ignore\");\n }\n var KEY_IGNORE = TMP_KEY_IGNORE;\n var define = (object, key2, value) => {\n Object.defineProperty(object, key2, { value });\n return value;\n };\n var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g;\n var RETURN_FALSE = () => false;\n var sanitizeRange = (range) => range.replace(\n REGEX_REGEXP_RANGE,\n (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY\n );\n var cleanRangeBackSlash = (slashes) => {\n const { length } = slashes;\n return slashes.slice(0, length - length % 2);\n };\n var REPLACERS = [\n [\n // Remove BOM\n // TODO:\n // Other similar zero-width characters?\n /^\\uFEFF/,\n () => EMPTY\n ],\n // > Trailing spaces are ignored unless they are quoted with backslash (\"\\\")\n [\n // (a\\ ) -> (a )\n // (a ) -> (a)\n // (a ) -> (a)\n // (a \\ ) -> (a )\n /((?:\\\\\\\\)*?)(\\\\?\\s+)$/,\n (_, m1, m2) => m1 + (m2.indexOf(\"\\\\\") === 0 ? SPACE : EMPTY)\n ],\n // Replace (\\ ) with ' '\n // (\\ ) -> ' '\n // (\\\\ ) -> '\\\\ '\n // (\\\\\\ ) -> '\\\\ '\n [\n /(\\\\+?)\\s/g,\n (_, m1) => {\n const { length } = m1;\n return m1.slice(0, length - length % 2) + SPACE;\n }\n ],\n // Escape metacharacters\n // which is written down by users but means special for regular expressions.\n // > There are 12 characters with special meanings:\n // > - the backslash \\,\n // > - the caret ^,\n // > - the dollar sign $,\n // > - the period or dot .,\n // > - the vertical bar or pipe symbol |,\n // > - the question mark ?,\n // > - the asterisk or star *,\n // > - the plus sign +,\n // > - the opening parenthesis (,\n // > - the closing parenthesis ),\n // > - and the opening square bracket [,\n // > - the opening curly brace {,\n // > These special characters are often called \"metacharacters\".\n [\n /[\\\\$.|*+(){^]/g,\n (match) => `\\\\${match}`\n ],\n [\n // > a question mark (?) matches a single character\n /(?!\\\\)\\?/g,\n () => \"[^/]\"\n ],\n // leading slash\n [\n // > A leading slash matches the beginning of the pathname.\n // > For example, \"/*.c\" matches \"cat-file.c\" but not \"mozilla-sha1/sha1.c\".\n // A leading slash matches the beginning of the pathname\n /^\\//,\n () => \"^\"\n ],\n // replace special metacharacter slash after the leading slash\n [\n /\\//g,\n () => \"\\\\/\"\n ],\n [\n // > A leading \"**\" followed by a slash means match in all directories.\n // > For example, \"**/foo\" matches file or directory \"foo\" anywhere,\n // > the same as pattern \"foo\".\n // > \"**/foo/bar\" matches file or directory \"bar\" anywhere that is directly\n // > under directory \"foo\".\n // Notice that the '*'s have been replaced as '\\\\*'\n /^\\^*\\\\\\*\\\\\\*\\\\\\//,\n // '**/foo' <-> 'foo'\n () => \"^(?:.*\\\\/)?\"\n ],\n // starting\n [\n // there will be no leading '/'\n // (which has been replaced by section \"leading slash\")\n // If starts with '**', adding a '^' to the regular expression also works\n /^(?=[^^])/,\n function startingReplacer() {\n return !/\\/(?!$)/.test(this) ? \"(?:^|\\\\/)\" : \"^\";\n }\n ],\n // two globstars\n [\n // Use lookahead assertions so that we could match more than one `'/**'`\n /\\\\\\/\\\\\\*\\\\\\*(?=\\\\\\/|$)/g,\n // Zero, one or several directories\n // should not use '*', or it will be replaced by the next replacer\n // Check if it is not the last `'/**'`\n (_, index, str) => index + 6 < str.length ? \"(?:\\\\/[^\\\\/]+)*\" : \"\\\\/.+\"\n ],\n // normal intermediate wildcards\n [\n // Never replace escaped '*'\n // ignore rule '\\*' will match the path '*'\n // 'abc.*/' -> go\n // 'abc.*' -> skip this rule,\n // coz trailing single wildcard will be handed by [trailing wildcard]\n /(^|[^\\\\]+)(\\\\\\*)+(?=.+)/g,\n // '*.js' matches '.js'\n // '*.js' doesn't match 'abc'\n (_, p1, p2) => {\n const unescaped = p2.replace(/\\\\\\*/g, \"[^\\\\/]*\");\n return p1 + unescaped;\n }\n ],\n [\n // unescape, revert step 3 except for back slash\n // For example, if a user escape a '\\\\*',\n // after step 3, the result will be '\\\\\\\\\\\\*'\n /\\\\\\\\\\\\(?=[$.|*+(){^])/g,\n () => ESCAPE\n ],\n [\n // '\\\\\\\\' -> '\\\\'\n /\\\\\\\\/g,\n () => ESCAPE\n ],\n [\n // > The range notation, e.g. [a-zA-Z],\n // > can be used to match one of the characters in a range.\n // `\\` is escaped by step 3\n /(\\\\)?\\[([^\\]/]*?)(\\\\*)($|\\])/g,\n (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === \"]\" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : \"[]\" : \"[]\"\n ],\n // ending\n [\n // 'js' will not match 'js.'\n // 'ab' will not match 'abc'\n /(?:[^*])$/,\n // WTF!\n // https://git-scm.com/docs/gitignore\n // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1)\n // which re-fixes #24, #38\n // > If there is a separator at the end of the pattern then the pattern\n // > will only match directories, otherwise the pattern can match both\n // > files and directories.\n // 'js*' will not match 'a.js'\n // 'js/' will not match 'a.js'\n // 'js' will match 'a.js' and 'a.js/'\n (match) => /\\/$/.test(match) ? `${match}$` : `${match}(?=$|\\\\/$)`\n ]\n ];\n var REGEX_REPLACE_TRAILING_WILDCARD = /(^|\\\\\\/)?\\\\\\*$/;\n var MODE_IGNORE = \"regex\";\n var MODE_CHECK_IGNORE = \"checkRegex\";\n var UNDERSCORE = \"_\";\n var TRAILING_WILD_CARD_REPLACERS = {\n [MODE_IGNORE](_, p1) {\n const prefix = p1 ? `${p1}[^/]+` : \"[^/]*\";\n return `${prefix}(?=$|\\\\/$)`;\n },\n [MODE_CHECK_IGNORE](_, p1) {\n const prefix = p1 ? `${p1}[^/]*` : \"[^/]*\";\n return `${prefix}(?=$|\\\\/$)`;\n }\n };\n var makeRegexPrefix = (pattern) => REPLACERS.reduce(\n (prev, [matcher, replacer]) => prev.replace(matcher, replacer.bind(pattern)),\n pattern\n );\n var isString = (subject) => typeof subject === \"string\";\n var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf(\"#\") !== 0;\n var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF).filter(Boolean);\n var IgnoreRule = class {\n constructor(pattern, mark, body, ignoreCase, negative, prefix) {\n this.pattern = pattern;\n this.mark = mark;\n this.negative = negative;\n define(this, \"body\", body);\n define(this, \"ignoreCase\", ignoreCase);\n define(this, \"regexPrefix\", prefix);\n }\n get regex() {\n const key2 = UNDERSCORE + MODE_IGNORE;\n if (this[key2]) {\n return this[key2];\n }\n return this._make(MODE_IGNORE, key2);\n }\n get checkRegex() {\n const key2 = UNDERSCORE + MODE_CHECK_IGNORE;\n if (this[key2]) {\n return this[key2];\n }\n return this._make(MODE_CHECK_IGNORE, key2);\n }\n _make(mode, key2) {\n const str = this.regexPrefix.replace(\n REGEX_REPLACE_TRAILING_WILDCARD,\n // It does not need to bind pattern\n TRAILING_WILD_CARD_REPLACERS[mode]\n );\n const regex = this.ignoreCase ? new RegExp(str, \"i\") : new RegExp(str);\n return define(this, key2, regex);\n }\n };\n var createRule = ({\n pattern,\n mark\n }, ignoreCase) => {\n let negative = false;\n let body = pattern;\n if (body.indexOf(\"!\") === 0) {\n negative = true;\n body = body.substr(1);\n }\n body = body.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, \"!\").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, \"#\");\n const regexPrefix = makeRegexPrefix(body);\n return new IgnoreRule(\n pattern,\n mark,\n body,\n ignoreCase,\n negative,\n regexPrefix\n );\n };\n var RuleManager = class {\n constructor(ignoreCase) {\n this._ignoreCase = ignoreCase;\n this._rules = [];\n }\n _add(pattern) {\n if (pattern && pattern[KEY_IGNORE]) {\n this._rules = this._rules.concat(pattern._rules._rules);\n this._added = true;\n return;\n }\n if (isString(pattern)) {\n pattern = {\n pattern\n };\n }\n if (checkPattern(pattern.pattern)) {\n const rule = createRule(pattern, this._ignoreCase);\n this._added = true;\n this._rules.push(rule);\n }\n }\n // @param {Array<string> | string | Ignore} pattern\n add(pattern) {\n this._added = false;\n makeArray(\n isString(pattern) ? splitPattern(pattern) : pattern\n ).forEach(this._add, this);\n return this._added;\n }\n // Test one single path without recursively checking parent directories\n //\n // - checkUnignored `boolean` whether should check if the path is unignored,\n // setting `checkUnignored` to `false` could reduce additional\n // path matching.\n // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`\n // @returns {TestResult} true if a file is ignored\n test(path15, checkUnignored, mode) {\n let ignored = false;\n let unignored = false;\n let matchedRule;\n this._rules.forEach((rule) => {\n const { negative } = rule;\n if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {\n return;\n }\n const matched = rule[mode].test(path15);\n if (!matched) {\n return;\n }\n ignored = !negative;\n unignored = negative;\n matchedRule = negative ? UNDEFINED : rule;\n });\n const ret = {\n ignored,\n unignored\n };\n if (matchedRule) {\n ret.rule = matchedRule;\n }\n return ret;\n }\n };\n var throwError = (message, Ctor) => {\n throw new Ctor(message);\n };\n var checkPath = (path15, originalPath, doThrow) => {\n if (!isString(path15)) {\n return doThrow(\n `path must be a string, but got \\`${originalPath}\\``,\n TypeError\n );\n }\n if (!path15) {\n return doThrow(`path must not be empty`, TypeError);\n }\n if (checkPath.isNotRelative(path15)) {\n const r = \"`path.relative()`d\";\n return doThrow(\n `path should be a ${r} string, but got \"${originalPath}\"`,\n RangeError\n );\n }\n return true;\n };\n var isNotRelative = (path15) => REGEX_TEST_INVALID_PATH.test(path15);\n checkPath.isNotRelative = isNotRelative;\n checkPath.convert = (p) => p;\n var Ignore = class {\n constructor({\n ignorecase = true,\n ignoreCase = ignorecase,\n allowRelativePaths = false\n } = {}) {\n define(this, KEY_IGNORE, true);\n this._rules = new RuleManager(ignoreCase);\n this._strictPathCheck = !allowRelativePaths;\n this._initCache();\n }\n _initCache() {\n this._ignoreCache = /* @__PURE__ */ Object.create(null);\n this._testCache = /* @__PURE__ */ Object.create(null);\n }\n add(pattern) {\n if (this._rules.add(pattern)) {\n this._initCache();\n }\n return this;\n }\n // legacy\n addPattern(pattern) {\n return this.add(pattern);\n }\n // @returns {TestResult}\n _test(originalPath, cache3, checkUnignored, slices) {\n const path15 = originalPath && checkPath.convert(originalPath);\n checkPath(\n path15,\n originalPath,\n this._strictPathCheck ? throwError : RETURN_FALSE\n );\n return this._t(path15, cache3, checkUnignored, slices);\n }\n checkIgnore(path15) {\n if (!REGEX_TEST_TRAILING_SLASH.test(path15)) {\n return this.test(path15);\n }\n const slices = path15.split(SLASH).filter(Boolean);\n slices.pop();\n if (slices.length) {\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n this._testCache,\n true,\n slices\n );\n if (parent.ignored) {\n return parent;\n }\n }\n return this._rules.test(path15, false, MODE_CHECK_IGNORE);\n }\n _t(path15, cache3, checkUnignored, slices) {\n if (path15 in cache3) {\n return cache3[path15];\n }\n if (!slices) {\n slices = path15.split(SLASH).filter(Boolean);\n }\n slices.pop();\n if (!slices.length) {\n return cache3[path15] = this._rules.test(path15, checkUnignored, MODE_IGNORE);\n }\n const parent = this._t(\n slices.join(SLASH) + SLASH,\n cache3,\n checkUnignored,\n slices\n );\n return cache3[path15] = parent.ignored ? parent : this._rules.test(path15, checkUnignored, MODE_IGNORE);\n }\n ignores(path15) {\n return this._test(path15, this._ignoreCache, false).ignored;\n }\n createFilter() {\n return (path15) => !this.ignores(path15);\n }\n filter(paths) {\n return makeArray(paths).filter(this.createFilter());\n }\n // @returns {TestResult}\n test(path15) {\n return this._test(path15, this._testCache, true);\n }\n };\n var factory = (options8) => new Ignore(options8);\n var isPathValid = (path15) => checkPath(path15 && checkPath.convert(path15), path15, RETURN_FALSE);\n var setupWindows = () => {\n const makePosix = (str) => /^\\\\\\\\\\?\\\\/.test(str) || /[\"<>|\\u0000-\\u001F]+/u.test(str) ? str : str.replace(/\\\\/g, \"/\");\n checkPath.convert = makePosix;\n const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\\//i;\n checkPath.isNotRelative = (path15) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path15) || isNotRelative(path15);\n };\n if (\n // Detect `process` so that it can run in browsers.\n typeof process !== \"undefined\" && process.platform === \"win32\"\n ) {\n setupWindows();\n }\n module.exports = factory;\n factory.default = factory;\n module.exports.isPathValid = isPathValid;\n define(module.exports, Symbol.for(\"setupWindows\"), setupWindows);\n }\n});\n\n// src/index.js\nvar index_exports = {};\n__export(index_exports, {\n __debug: () => debugApis,\n __internal: () => sharedWithCli,\n check: () => check,\n clearConfigCache: () => clearCache3,\n doc: () => doc,\n format: () => format2,\n formatWithCursor: () => formatWithCursor2,\n getFileInfo: () => get_file_info_default,\n getSupportInfo: () => getSupportInfo2,\n resolveConfig: () => resolveConfig,\n resolveConfigFile: () => resolveConfigFile,\n util: () => public_exports,\n version: () => version_evaluate_default\n});\n\n// node_modules/diff/libesm/diff/base.js\nvar Diff = class {\n diff(oldStr, newStr, options8 = {}) {\n let callback;\n if (typeof options8 === \"function\") {\n callback = options8;\n options8 = {};\n } else if (\"callback\" in options8) {\n callback = options8.callback;\n }\n const oldString = this.castInput(oldStr, options8);\n const newString = this.castInput(newStr, options8);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options8));\n const newTokens = this.removeEmpty(this.tokenize(newString, options8));\n return this.diffWithOptionsObj(oldTokens, newTokens, options8, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options8, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options8);\n if (callback) {\n setTimeout(function() {\n callback(value);\n }, 0);\n return void 0;\n } else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options8.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options8.maxEditLength);\n }\n const maxExecutionTime = (_a = options8.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: void 0 }];\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options8);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n bestPath[diagonalPath - 1] = void 0;\n }\n let canAdd = false;\n if (addPath) {\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n bestPath[diagonalPath] = void 0;\n continue;\n }\n if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) {\n basePath = this.addToPath(addPath, true, false, 0, options8);\n } else {\n basePath = this.addToPath(removePath, false, true, 1, options8);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options8);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n } else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n if (callback) {\n (function exec() {\n setTimeout(function() {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(void 0);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n })();\n } else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path15, added, removed, oldPosInc, options8) {\n const last = path15.lastComponent;\n if (last && !options8.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path15.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added, removed, previousComponent: last.previousComponent }\n };\n } else {\n return {\n oldPos: path15.oldPos + oldPosInc,\n lastComponent: { count: 1, added, removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options8) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options8)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options8.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options8.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options8) {\n if (options8.comparator) {\n return options8.comparator(left, right);\n } else {\n return left === right || !!options8.ignoreCase && left.toLowerCase() === right.toLowerCase();\n }\n }\n removeEmpty(array2) {\n const ret = [];\n for (let i = 0; i < array2.length; i++) {\n if (array2[i]) {\n ret.push(array2[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options8) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options8) {\n return Array.from(value);\n }\n join(chars) {\n return chars.join(\"\");\n }\n postProcess(changeObjects, options8) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function(value2, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value2.length ? oldValue : value2;\n });\n component.value = this.join(value);\n } else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n};\n\n// node_modules/diff/libesm/diff/line.js\nvar LineDiff = class extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n equals(left, right, options8) {\n if (options8.ignoreWhitespace) {\n if (!options8.newlineIsToken || !left.includes(\"\\n\")) {\n left = left.trim();\n }\n if (!options8.newlineIsToken || !right.includes(\"\\n\")) {\n right = right.trim();\n }\n } else if (options8.ignoreNewlineAtEof && !options8.newlineIsToken) {\n if (left.endsWith(\"\\n\")) {\n left = left.slice(0, -1);\n }\n if (right.endsWith(\"\\n\")) {\n right = right.slice(0, -1);\n }\n }\n return super.equals(left, right, options8);\n }\n};\nvar lineDiff = new LineDiff();\nfunction diffLines(oldStr, newStr, options8) {\n return lineDiff.diff(oldStr, newStr, options8);\n}\nfunction tokenize(value, options8) {\n if (options8.stripTrailingCr) {\n value = value.replace(/\\r\\n/g, \"\\n\");\n }\n const retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n for (let i = 0; i < linesAndNewlines.length; i++) {\n const line3 = linesAndNewlines[i];\n if (i % 2 && !options8.newlineIsToken) {\n retLines[retLines.length - 1] += line3;\n } else {\n retLines.push(line3);\n }\n }\n return retLines;\n}\n\n// node_modules/diff/libesm/diff/array.js\nvar ArrayDiff = class extends Diff {\n tokenize(value) {\n return value.slice();\n }\n join(value) {\n return value;\n }\n removeEmpty(value) {\n return value;\n }\n};\nvar arrayDiff = new ArrayDiff();\nfunction diffArrays(oldArr, newArr, options8) {\n return arrayDiff.diff(oldArr, newArr, options8);\n}\n\n// node_modules/diff/libesm/patch/create.js\nfunction structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8) {\n let optionsObj;\n if (!options8) {\n optionsObj = {};\n } else if (typeof options8 === \"function\") {\n optionsObj = { callback: options8 };\n } else {\n optionsObj = options8;\n }\n if (typeof optionsObj.context === \"undefined\") {\n optionsObj.context = 4;\n }\n const context = optionsObj.context;\n if (optionsObj.newlineIsToken) {\n throw new Error(\"newlineIsToken may not be used with patch-generation functions, only with diffing functions\");\n }\n if (!optionsObj.callback) {\n return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));\n } else {\n const { callback } = optionsObj;\n diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {\n const patch = diffLinesResultToPatch(diff);\n callback(patch);\n } }));\n }\n function diffLinesResultToPatch(diff) {\n if (!diff) {\n return;\n }\n diff.push({ value: \"\", lines: [] });\n function contextLines(lines) {\n return lines.map(function(entry) {\n return \" \" + entry;\n });\n }\n const hunks = [];\n let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;\n for (let i = 0; i < diff.length; i++) {\n const current = diff[i], lines = current.lines || splitLines(current.value);\n current.lines = lines;\n if (current.added || current.removed) {\n if (!oldRangeStart) {\n const prev = diff[i - 1];\n oldRangeStart = oldLine;\n newRangeStart = newLine;\n if (prev) {\n curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];\n oldRangeStart -= curRange.length;\n newRangeStart -= curRange.length;\n }\n }\n for (const line3 of lines) {\n curRange.push((current.added ? \"+\" : \"-\") + line3);\n }\n if (current.added) {\n newLine += lines.length;\n } else {\n oldLine += lines.length;\n }\n } else {\n if (oldRangeStart) {\n if (lines.length <= context * 2 && i < diff.length - 2) {\n for (const line3 of contextLines(lines)) {\n curRange.push(line3);\n }\n } else {\n const contextSize = Math.min(lines.length, context);\n for (const line3 of contextLines(lines.slice(0, contextSize))) {\n curRange.push(line3);\n }\n const hunk = {\n oldStart: oldRangeStart,\n oldLines: oldLine - oldRangeStart + contextSize,\n newStart: newRangeStart,\n newLines: newLine - newRangeStart + contextSize,\n lines: curRange\n };\n hunks.push(hunk);\n oldRangeStart = 0;\n newRangeStart = 0;\n curRange = [];\n }\n }\n oldLine += lines.length;\n newLine += lines.length;\n }\n }\n for (const hunk of hunks) {\n for (let i = 0; i < hunk.lines.length; i++) {\n if (hunk.lines[i].endsWith(\"\\n\")) {\n hunk.lines[i] = hunk.lines[i].slice(0, -1);\n } else {\n hunk.lines.splice(i + 1, 0, \"\\\\");\n i++;\n }\n }\n }\n return {\n oldFileName,\n newFileName,\n oldHeader,\n newHeader,\n hunks\n };\n }\n}\nfunction formatPatch(patch) {\n if (Array.isArray(patch)) {\n return patch.map(formatPatch).join(\"\\n\");\n }\n const ret = [];\n if (patch.oldFileName == patch.newFileName) {\n ret.push(\"Index: \" + patch.oldFileName);\n }\n ret.push(\"===================================================================\");\n ret.push(\"--- \" + patch.oldFileName + (typeof patch.oldHeader === \"undefined\" ? \"\" : \"\t\" + patch.oldHeader));\n ret.push(\"+++ \" + patch.newFileName + (typeof patch.newHeader === \"undefined\" ? \"\" : \"\t\" + patch.newHeader));\n for (let i = 0; i < patch.hunks.length; i++) {\n const hunk = patch.hunks[i];\n if (hunk.oldLines === 0) {\n hunk.oldStart -= 1;\n }\n if (hunk.newLines === 0) {\n hunk.newStart -= 1;\n }\n ret.push(\"@@ -\" + hunk.oldStart + \",\" + hunk.oldLines + \" +\" + hunk.newStart + \",\" + hunk.newLines + \" @@\");\n for (const line3 of hunk.lines) {\n ret.push(line3);\n }\n }\n return ret.join(\"\\n\") + \"\\n\";\n}\nfunction createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8) {\n if (typeof options8 === \"function\") {\n options8 = { callback: options8 };\n }\n if (!(options8 === null || options8 === void 0 ? void 0 : options8.callback)) {\n const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options8);\n if (!patchObj) {\n return;\n }\n return formatPatch(patchObj);\n } else {\n const { callback } = options8;\n structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options8), { callback: (patchObj) => {\n if (!patchObj) {\n callback(void 0);\n } else {\n callback(formatPatch(patchObj));\n }\n } }));\n }\n}\nfunction splitLines(text) {\n const hasTrailingNl = text.endsWith(\"\\n\");\n const result = text.split(\"\\n\").map((line3) => line3 + \"\\n\");\n if (hasTrailingNl) {\n result.pop();\n } else {\n result.push(result.pop().slice(0, -1));\n }\n return result;\n}\n\n// src/index.js\nvar import_fast_glob = __toESM(require_out4(), 1);\n\n// node_modules/leven/index.js\nvar array = [];\nvar characterCodeCache = [];\nfunction leven(first, second, options8) {\n if (first === second) {\n return 0;\n }\n const maxDistance = options8?.maxDistance;\n const swap = first;\n if (first.length > second.length) {\n first = second;\n second = swap;\n }\n let firstLength = first.length;\n let secondLength = second.length;\n while (firstLength > 0 && first.charCodeAt(~-firstLength) === second.charCodeAt(~-secondLength)) {\n firstLength--;\n secondLength--;\n }\n let start = 0;\n while (start < firstLength && first.charCodeAt(start) === second.charCodeAt(start)) {\n start++;\n }\n firstLength -= start;\n secondLength -= start;\n if (maxDistance !== void 0 && secondLength - firstLength > maxDistance) {\n return maxDistance;\n }\n if (firstLength === 0) {\n return maxDistance !== void 0 && secondLength > maxDistance ? maxDistance : secondLength;\n }\n let bCharacterCode;\n let result;\n let temporary;\n let temporary2;\n let index = 0;\n let index2 = 0;\n while (index < firstLength) {\n characterCodeCache[index] = first.charCodeAt(start + index);\n array[index] = ++index;\n }\n while (index2 < secondLength) {\n bCharacterCode = second.charCodeAt(start + index2);\n temporary = index2++;\n result = index2;\n for (index = 0; index < firstLength; index++) {\n temporary2 = bCharacterCode === characterCodeCache[index] ? temporary : temporary + 1;\n temporary = array[index];\n result = array[index] = temporary > result ? temporary2 > result ? result + 1 : temporary2 : temporary2 > temporary ? temporary + 1 : temporary2;\n }\n if (maxDistance !== void 0) {\n let rowMinimum = result;\n for (index = 0; index < firstLength; index++) {\n if (array[index] < rowMinimum) {\n rowMinimum = array[index];\n }\n }\n if (rowMinimum > maxDistance) {\n return maxDistance;\n }\n }\n }\n array.length = firstLength;\n characterCodeCache.length = firstLength;\n return maxDistance !== void 0 && result > maxDistance ? maxDistance : result;\n}\nfunction closestMatch(target, candidates, options8) {\n if (!Array.isArray(candidates) || candidates.length === 0) {\n return void 0;\n }\n const userMax = options8?.maxDistance;\n const targetLength = target.length;\n for (const candidate of candidates) {\n if (candidate === target) {\n return candidate;\n }\n }\n if (userMax === 0) {\n return void 0;\n }\n let best;\n let bestDist = Number.POSITIVE_INFINITY;\n const seen = /* @__PURE__ */ new Set();\n for (const candidate of candidates) {\n if (seen.has(candidate)) {\n continue;\n }\n seen.add(candidate);\n const lengthDiff = Math.abs(candidate.length - targetLength);\n if (lengthDiff >= bestDist) {\n continue;\n }\n if (userMax !== void 0 && lengthDiff > userMax) {\n continue;\n }\n const cap = Number.isFinite(bestDist) ? userMax === void 0 ? bestDist : Math.min(bestDist, userMax) : userMax;\n const distance = cap === void 0 ? leven(target, candidate) : leven(target, candidate, { maxDistance: cap });\n if (userMax !== void 0 && distance > userMax) {\n continue;\n }\n let actualD = distance;\n if (cap !== void 0 && distance === cap && cap === userMax) {\n actualD = leven(target, candidate);\n }\n if (actualD < bestDist) {\n bestDist = actualD;\n best = candidate;\n if (bestDist === 0) {\n break;\n }\n }\n }\n if (userMax !== void 0 && bestDist > userMax) {\n return void 0;\n }\n return best;\n}\n\n// src/index.js\nvar import_picocolors5 = __toESM(require_picocolors(), 1);\n\n// node_modules/vnopts/lib/descriptors/api.js\nvar apiDescriptor = {\n key: (key2) => /^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(key2) ? key2 : JSON.stringify(key2),\n value(value) {\n if (value === null || typeof value !== \"object\") {\n return JSON.stringify(value);\n }\n if (Array.isArray(value)) {\n return `[${value.map((subValue) => apiDescriptor.value(subValue)).join(\", \")}]`;\n }\n const keys = Object.keys(value);\n return keys.length === 0 ? \"{}\" : `{ ${keys.map((key2) => `${apiDescriptor.key(key2)}: ${apiDescriptor.value(value[key2])}`).join(\", \")} }`;\n },\n pair: ({ key: key2, value }) => apiDescriptor.value({ [key2]: value })\n};\n\n// node_modules/vnopts/lib/handlers/deprecated/common.js\nvar import_picocolors = __toESM(require_picocolors(), 1);\nvar commonDeprecatedHandler = (keyOrPair, redirectTo, { descriptor }) => {\n const messages2 = [\n `${import_picocolors.default.yellow(typeof keyOrPair === \"string\" ? descriptor.key(keyOrPair) : descriptor.pair(keyOrPair))} is deprecated`\n ];\n if (redirectTo) {\n messages2.push(`we now treat it as ${import_picocolors.default.blue(typeof redirectTo === \"string\" ? descriptor.key(redirectTo) : descriptor.pair(redirectTo))}`);\n }\n return messages2.join(\"; \") + \".\";\n};\n\n// node_modules/vnopts/lib/handlers/invalid/common.js\nvar import_picocolors2 = __toESM(require_picocolors(), 1);\n\n// node_modules/vnopts/lib/constants.js\nvar VALUE_NOT_EXIST = Symbol.for(\"vnopts.VALUE_NOT_EXIST\");\nvar VALUE_UNCHANGED = Symbol.for(\"vnopts.VALUE_UNCHANGED\");\n\n// node_modules/vnopts/lib/handlers/invalid/common.js\nvar INDENTATION = \" \".repeat(2);\nvar commonInvalidHandler = (key2, value, utils) => {\n const { text, list } = utils.normalizeExpectedResult(utils.schemas[key2].expected(utils));\n const descriptions = [];\n if (text) {\n descriptions.push(getDescription(key2, value, text, utils.descriptor));\n }\n if (list) {\n descriptions.push([getDescription(key2, value, list.title, utils.descriptor)].concat(list.values.map((valueDescription) => getListDescription(valueDescription, utils.loggerPrintWidth))).join(\"\\n\"));\n }\n return chooseDescription(descriptions, utils.loggerPrintWidth);\n};\nfunction getDescription(key2, value, expected, descriptor) {\n return [\n `Invalid ${import_picocolors2.default.red(descriptor.key(key2))} value.`,\n `Expected ${import_picocolors2.default.blue(expected)},`,\n `but received ${value === VALUE_NOT_EXIST ? import_picocolors2.default.gray(\"nothing\") : import_picocolors2.default.red(descriptor.value(value))}.`\n ].join(\" \");\n}\nfunction getListDescription({ text, list }, printWidth) {\n const descriptions = [];\n if (text) {\n descriptions.push(`- ${import_picocolors2.default.blue(text)}`);\n }\n if (list) {\n descriptions.push([`- ${import_picocolors2.default.blue(list.title)}:`].concat(list.values.map((valueDescription) => getListDescription(valueDescription, printWidth - INDENTATION.length).replace(/^|\\n/g, `$&${INDENTATION}`))).join(\"\\n\"));\n }\n return chooseDescription(descriptions, printWidth);\n}\nfunction chooseDescription(descriptions, printWidth) {\n if (descriptions.length === 1) {\n return descriptions[0];\n }\n const [firstDescription, secondDescription] = descriptions;\n const [firstWidth, secondWidth] = descriptions.map((description) => description.split(\"\\n\", 1)[0].length);\n return firstWidth > printWidth && firstWidth > secondWidth ? secondDescription : firstDescription;\n}\n\n// node_modules/vnopts/lib/handlers/unknown/leven.js\nvar import_picocolors3 = __toESM(require_picocolors(), 1);\nvar levenUnknownHandler = (key2, value, { descriptor, logger, schemas }) => {\n const messages2 = [\n `Ignored unknown option ${import_picocolors3.default.yellow(descriptor.pair({ key: key2, value }))}.`\n ];\n const suggestion = closestMatch(key2, Object.keys(schemas), { maxDistance: 3 });\n if (suggestion) {\n messages2.push(`Did you mean ${import_picocolors3.default.blue(descriptor.key(suggestion))}?`);\n }\n logger.warn(messages2.join(\" \"));\n};\n\n// node_modules/vnopts/lib/schema.js\nvar HANDLER_KEYS = [\n \"default\",\n \"expected\",\n \"validate\",\n \"deprecated\",\n \"forward\",\n \"redirect\",\n \"overlap\",\n \"preprocess\",\n \"postprocess\"\n];\nfunction createSchema(SchemaConstructor, parameters) {\n const schema = new SchemaConstructor(parameters);\n const subSchema = Object.create(schema);\n for (const handlerKey of HANDLER_KEYS) {\n if (handlerKey in parameters) {\n subSchema[handlerKey] = normalizeHandler(parameters[handlerKey], schema, Schema.prototype[handlerKey].length);\n }\n }\n return subSchema;\n}\nvar Schema = class {\n static create(parameters) {\n return createSchema(this, parameters);\n }\n constructor(parameters) {\n this.name = parameters.name;\n }\n default(_utils) {\n return void 0;\n }\n // this is actually an abstract method but we need a placeholder to get `function.length`\n /* c8 ignore start */\n expected(_utils) {\n return \"nothing\";\n }\n /* c8 ignore stop */\n // this is actually an abstract method but we need a placeholder to get `function.length`\n /* c8 ignore start */\n validate(_value, _utils) {\n return false;\n }\n /* c8 ignore stop */\n deprecated(_value, _utils) {\n return false;\n }\n forward(_value, _utils) {\n return void 0;\n }\n redirect(_value, _utils) {\n return void 0;\n }\n overlap(currentValue, _newValue, _utils) {\n return currentValue;\n }\n preprocess(value, _utils) {\n return value;\n }\n postprocess(_value, _utils) {\n return VALUE_UNCHANGED;\n }\n};\nfunction normalizeHandler(handler, superSchema, handlerArgumentsLength) {\n return typeof handler === \"function\" ? (...args) => handler(...args.slice(0, handlerArgumentsLength - 1), superSchema, ...args.slice(handlerArgumentsLength - 1)) : () => handler;\n}\n\n// node_modules/vnopts/lib/schemas/alias.js\nvar AliasSchema = class extends Schema {\n constructor(parameters) {\n super(parameters);\n this._sourceName = parameters.sourceName;\n }\n expected(utils) {\n return utils.schemas[this._sourceName].expected(utils);\n }\n validate(value, utils) {\n return utils.schemas[this._sourceName].validate(value, utils);\n }\n redirect(_value, _utils) {\n return this._sourceName;\n }\n};\n\n// node_modules/vnopts/lib/schemas/any.js\nvar AnySchema = class extends Schema {\n expected() {\n return \"anything\";\n }\n validate() {\n return true;\n }\n};\n\n// node_modules/vnopts/lib/schemas/array.js\nvar ArraySchema = class extends Schema {\n constructor({ valueSchema, name = valueSchema.name, ...handlers }) {\n super({ ...handlers, name });\n this._valueSchema = valueSchema;\n }\n expected(utils) {\n const { text, list } = utils.normalizeExpectedResult(this._valueSchema.expected(utils));\n return {\n text: text && `an array of ${text}`,\n list: list && {\n title: `an array of the following values`,\n values: [{ list }]\n }\n };\n }\n validate(value, utils) {\n if (!Array.isArray(value)) {\n return false;\n }\n const invalidValues = [];\n for (const subValue of value) {\n const subValidateResult = utils.normalizeValidateResult(this._valueSchema.validate(subValue, utils), subValue);\n if (subValidateResult !== true) {\n invalidValues.push(subValidateResult.value);\n }\n }\n return invalidValues.length === 0 ? true : { value: invalidValues };\n }\n deprecated(value, utils) {\n const deprecatedResult = [];\n for (const subValue of value) {\n const subDeprecatedResult = utils.normalizeDeprecatedResult(this._valueSchema.deprecated(subValue, utils), subValue);\n if (subDeprecatedResult !== false) {\n deprecatedResult.push(...subDeprecatedResult.map(({ value: deprecatedValue }) => ({\n value: [deprecatedValue]\n })));\n }\n }\n return deprecatedResult;\n }\n forward(value, utils) {\n const forwardResult = [];\n for (const subValue of value) {\n const subForwardResult = utils.normalizeForwardResult(this._valueSchema.forward(subValue, utils), subValue);\n forwardResult.push(...subForwardResult.map(wrapTransferResult));\n }\n return forwardResult;\n }\n redirect(value, utils) {\n const remain = [];\n const redirect = [];\n for (const subValue of value) {\n const subRedirectResult = utils.normalizeRedirectResult(this._valueSchema.redirect(subValue, utils), subValue);\n if (\"remain\" in subRedirectResult) {\n remain.push(subRedirectResult.remain);\n }\n redirect.push(...subRedirectResult.redirect.map(wrapTransferResult));\n }\n return remain.length === 0 ? { redirect } : { redirect, remain };\n }\n overlap(currentValue, newValue) {\n return currentValue.concat(newValue);\n }\n};\nfunction wrapTransferResult({ from, to }) {\n return { from: [from], to };\n}\n\n// node_modules/vnopts/lib/schemas/boolean.js\nvar BooleanSchema = class extends Schema {\n expected() {\n return \"true or false\";\n }\n validate(value) {\n return typeof value === \"boolean\";\n }\n};\n\n// node_modules/vnopts/lib/utils.js\nfunction recordFromArray(array2, mainKey) {\n const record = /* @__PURE__ */ Object.create(null);\n for (const value of array2) {\n const key2 = value[mainKey];\n if (record[key2]) {\n throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key2)}`);\n }\n record[key2] = value;\n }\n return record;\n}\nfunction mapFromArray(array2, mainKey) {\n const map = /* @__PURE__ */ new Map();\n for (const value of array2) {\n const key2 = value[mainKey];\n if (map.has(key2)) {\n throw new Error(`Duplicate ${mainKey} ${JSON.stringify(key2)}`);\n }\n map.set(key2, value);\n }\n return map;\n}\nfunction createAutoChecklist() {\n const map = /* @__PURE__ */ Object.create(null);\n return (id) => {\n const idString = JSON.stringify(id);\n if (map[idString]) {\n return true;\n }\n map[idString] = true;\n return false;\n };\n}\nfunction partition(array2, predicate) {\n const trueArray = [];\n const falseArray = [];\n for (const value of array2) {\n if (predicate(value)) {\n trueArray.push(value);\n } else {\n falseArray.push(value);\n }\n }\n return [trueArray, falseArray];\n}\nfunction isInt(value) {\n return value === Math.floor(value);\n}\nfunction comparePrimitive(a, b) {\n if (a === b) {\n return 0;\n }\n const typeofA = typeof a;\n const typeofB = typeof b;\n const orders = [\n \"undefined\",\n \"object\",\n // null\n \"boolean\",\n \"number\",\n \"string\"\n ];\n if (typeofA !== typeofB) {\n return orders.indexOf(typeofA) - orders.indexOf(typeofB);\n }\n if (typeofA !== \"string\") {\n return Number(a) - Number(b);\n }\n return a.localeCompare(b);\n}\nfunction normalizeInvalidHandler(invalidHandler) {\n return (...args) => {\n const errorMessageOrError = invalidHandler(...args);\n return typeof errorMessageOrError === \"string\" ? new Error(errorMessageOrError) : errorMessageOrError;\n };\n}\nfunction normalizeDefaultResult(result) {\n return result === void 0 ? {} : result;\n}\nfunction normalizeExpectedResult(result) {\n if (typeof result === \"string\") {\n return { text: result };\n }\n const { text, list } = result;\n assert((text || list) !== void 0, \"Unexpected `expected` result, there should be at least one field.\");\n if (!list) {\n return { text };\n }\n return {\n text,\n list: {\n title: list.title,\n values: list.values.map(normalizeExpectedResult)\n }\n };\n}\nfunction normalizeValidateResult(result, value) {\n return result === true ? true : result === false ? { value } : result;\n}\nfunction normalizeDeprecatedResult(result, value, doNotNormalizeTrue = false) {\n return result === false ? false : result === true ? doNotNormalizeTrue ? true : [{ value }] : \"value\" in result ? [result] : result.length === 0 ? false : result;\n}\nfunction normalizeTransferResult(result, value) {\n return typeof result === \"string\" || \"key\" in result ? { from: value, to: result } : \"from\" in result ? { from: result.from, to: result.to } : { from: value, to: result.to };\n}\nfunction normalizeForwardResult(result, value) {\n return result === void 0 ? [] : Array.isArray(result) ? result.map((transferResult) => normalizeTransferResult(transferResult, value)) : [normalizeTransferResult(result, value)];\n}\nfunction normalizeRedirectResult(result, value) {\n const redirect = normalizeForwardResult(typeof result === \"object\" && \"redirect\" in result ? result.redirect : result, value);\n return redirect.length === 0 ? { remain: value, redirect } : typeof result === \"object\" && \"remain\" in result ? { remain: result.remain, redirect } : { redirect };\n}\nfunction assert(isValid, message) {\n if (!isValid) {\n throw new Error(message);\n }\n}\n\n// node_modules/vnopts/lib/schemas/choice.js\nvar ChoiceSchema = class extends Schema {\n constructor(parameters) {\n super(parameters);\n this._choices = mapFromArray(parameters.choices.map((choice) => choice && typeof choice === \"object\" ? choice : { value: choice }), \"value\");\n }\n expected({ descriptor }) {\n const choiceDescriptions = Array.from(this._choices.keys()).map((value) => this._choices.get(value)).filter(({ hidden }) => !hidden).map((choiceInfo) => choiceInfo.value).sort(comparePrimitive).map(descriptor.value);\n const head = choiceDescriptions.slice(0, -2);\n const tail = choiceDescriptions.slice(-2);\n const message = head.concat(tail.join(\" or \")).join(\", \");\n return {\n text: message,\n list: {\n title: \"one of the following values\",\n values: choiceDescriptions\n }\n };\n }\n validate(value) {\n return this._choices.has(value);\n }\n deprecated(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo && choiceInfo.deprecated ? { value } : false;\n }\n forward(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo ? choiceInfo.forward : void 0;\n }\n redirect(value) {\n const choiceInfo = this._choices.get(value);\n return choiceInfo ? choiceInfo.redirect : void 0;\n }\n};\n\n// node_modules/vnopts/lib/schemas/number.js\nvar NumberSchema = class extends Schema {\n expected() {\n return \"a number\";\n }\n validate(value, _utils) {\n return typeof value === \"number\";\n }\n};\n\n// node_modules/vnopts/lib/schemas/integer.js\nvar IntegerSchema = class extends NumberSchema {\n expected() {\n return \"an integer\";\n }\n validate(value, utils) {\n return utils.normalizeValidateResult(super.validate(value, utils), value) === true && isInt(value);\n }\n};\n\n// node_modules/vnopts/lib/schemas/string.js\nvar StringSchema = class extends Schema {\n expected() {\n return \"a string\";\n }\n validate(value) {\n return typeof value === \"string\";\n }\n};\n\n// node_modules/vnopts/lib/defaults.js\nvar defaultDescriptor = apiDescriptor;\nvar defaultUnknownHandler = levenUnknownHandler;\nvar defaultInvalidHandler = commonInvalidHandler;\nvar defaultDeprecatedHandler = commonDeprecatedHandler;\n\n// node_modules/vnopts/lib/normalize.js\nvar Normalizer = class {\n constructor(schemas, opts) {\n const { logger = console, loggerPrintWidth = 80, descriptor = defaultDescriptor, unknown = defaultUnknownHandler, invalid = defaultInvalidHandler, deprecated = defaultDeprecatedHandler, missing = () => false, required = () => false, preprocess = (x) => x, postprocess = () => VALUE_UNCHANGED } = opts || {};\n this._utils = {\n descriptor,\n logger: (\n /* c8 ignore next */\n logger || { warn: () => {\n } }\n ),\n loggerPrintWidth,\n schemas: recordFromArray(schemas, \"name\"),\n normalizeDefaultResult,\n normalizeExpectedResult,\n normalizeDeprecatedResult,\n normalizeForwardResult,\n normalizeRedirectResult,\n normalizeValidateResult\n };\n this._unknownHandler = unknown;\n this._invalidHandler = normalizeInvalidHandler(invalid);\n this._deprecatedHandler = deprecated;\n this._identifyMissing = (k, o) => !(k in o) || missing(k, o);\n this._identifyRequired = required;\n this._preprocess = preprocess;\n this._postprocess = postprocess;\n this.cleanHistory();\n }\n cleanHistory() {\n this._hasDeprecationWarned = createAutoChecklist();\n }\n normalize(options8) {\n const newOptions = {};\n const preprocessed = this._preprocess(options8, this._utils);\n const restOptionsArray = [preprocessed];\n const applyNormalization = () => {\n while (restOptionsArray.length !== 0) {\n const currentOptions = restOptionsArray.shift();\n const transferredOptionsArray = this._applyNormalization(currentOptions, newOptions);\n restOptionsArray.push(...transferredOptionsArray);\n }\n };\n applyNormalization();\n for (const key2 of Object.keys(this._utils.schemas)) {\n const schema = this._utils.schemas[key2];\n if (!(key2 in newOptions)) {\n const defaultResult = normalizeDefaultResult(schema.default(this._utils));\n if (\"value\" in defaultResult) {\n restOptionsArray.push({ [key2]: defaultResult.value });\n }\n }\n }\n applyNormalization();\n for (const key2 of Object.keys(this._utils.schemas)) {\n if (!(key2 in newOptions)) {\n continue;\n }\n const schema = this._utils.schemas[key2];\n const value = newOptions[key2];\n const newValue = schema.postprocess(value, this._utils);\n if (newValue === VALUE_UNCHANGED) {\n continue;\n }\n this._applyValidation(newValue, key2, schema);\n newOptions[key2] = newValue;\n }\n this._applyPostprocess(newOptions);\n this._applyRequiredCheck(newOptions);\n return newOptions;\n }\n _applyNormalization(options8, newOptions) {\n const transferredOptionsArray = [];\n const { knownKeys, unknownKeys } = this._partitionOptionKeys(options8);\n for (const key2 of knownKeys) {\n const schema = this._utils.schemas[key2];\n const value = schema.preprocess(options8[key2], this._utils);\n this._applyValidation(value, key2, schema);\n const appendTransferredOptions = ({ from, to }) => {\n transferredOptionsArray.push(typeof to === \"string\" ? { [to]: from } : { [to.key]: to.value });\n };\n const warnDeprecated = ({ value: currentValue, redirectTo }) => {\n const deprecatedResult = normalizeDeprecatedResult(\n schema.deprecated(currentValue, this._utils),\n value,\n /* doNotNormalizeTrue */\n true\n );\n if (deprecatedResult === false) {\n return;\n }\n if (deprecatedResult === true) {\n if (!this._hasDeprecationWarned(key2)) {\n this._utils.logger.warn(this._deprecatedHandler(key2, redirectTo, this._utils));\n }\n } else {\n for (const { value: deprecatedValue } of deprecatedResult) {\n const pair = { key: key2, value: deprecatedValue };\n if (!this._hasDeprecationWarned(pair)) {\n const redirectToPair = typeof redirectTo === \"string\" ? { key: redirectTo, value: deprecatedValue } : redirectTo;\n this._utils.logger.warn(this._deprecatedHandler(pair, redirectToPair, this._utils));\n }\n }\n }\n };\n const forwardResult = normalizeForwardResult(schema.forward(value, this._utils), value);\n forwardResult.forEach(appendTransferredOptions);\n const redirectResult = normalizeRedirectResult(schema.redirect(value, this._utils), value);\n redirectResult.redirect.forEach(appendTransferredOptions);\n if (\"remain\" in redirectResult) {\n const remainingValue = redirectResult.remain;\n newOptions[key2] = key2 in newOptions ? schema.overlap(newOptions[key2], remainingValue, this._utils) : remainingValue;\n warnDeprecated({ value: remainingValue });\n }\n for (const { from, to } of redirectResult.redirect) {\n warnDeprecated({ value: from, redirectTo: to });\n }\n }\n for (const key2 of unknownKeys) {\n const value = options8[key2];\n this._applyUnknownHandler(key2, value, newOptions, (knownResultKey, knownResultValue) => {\n transferredOptionsArray.push({ [knownResultKey]: knownResultValue });\n });\n }\n return transferredOptionsArray;\n }\n _applyRequiredCheck(options8) {\n for (const key2 of Object.keys(this._utils.schemas)) {\n if (this._identifyMissing(key2, options8)) {\n if (this._identifyRequired(key2)) {\n throw this._invalidHandler(key2, VALUE_NOT_EXIST, this._utils);\n }\n }\n }\n }\n _partitionOptionKeys(options8) {\n const [knownKeys, unknownKeys] = partition(Object.keys(options8).filter((key2) => !this._identifyMissing(key2, options8)), (key2) => key2 in this._utils.schemas);\n return { knownKeys, unknownKeys };\n }\n _applyValidation(value, key2, schema) {\n const validateResult = normalizeValidateResult(schema.validate(value, this._utils), value);\n if (validateResult !== true) {\n throw this._invalidHandler(key2, validateResult.value, this._utils);\n }\n }\n _applyUnknownHandler(key2, value, newOptions, knownResultHandler) {\n const unknownResult = this._unknownHandler(key2, value, this._utils);\n if (!unknownResult) {\n return;\n }\n for (const resultKey of Object.keys(unknownResult)) {\n if (this._identifyMissing(resultKey, unknownResult)) {\n continue;\n }\n const resultValue = unknownResult[resultKey];\n if (resultKey in this._utils.schemas) {\n knownResultHandler(resultKey, resultValue);\n } else {\n newOptions[resultKey] = resultValue;\n }\n }\n }\n _applyPostprocess(options8) {\n const postprocessed = this._postprocess(options8, this._utils);\n if (postprocessed === VALUE_UNCHANGED) {\n return;\n }\n if (postprocessed.delete) {\n for (const deleteKey of postprocessed.delete) {\n delete options8[deleteKey];\n }\n }\n if (postprocessed.override) {\n const { knownKeys, unknownKeys } = this._partitionOptionKeys(postprocessed.override);\n for (const key2 of knownKeys) {\n const value = postprocessed.override[key2];\n this._applyValidation(value, key2, this._utils.schemas[key2]);\n options8[key2] = value;\n }\n for (const key2 of unknownKeys) {\n const value = postprocessed.override[key2];\n this._applyUnknownHandler(key2, value, options8, (knownResultKey, knownResultValue) => {\n const schema = this._utils.schemas[knownResultKey];\n this._applyValidation(knownResultValue, knownResultKey, schema);\n options8[knownResultKey] = knownResultValue;\n });\n }\n }\n }\n};\n\n// src/common/errors.js\nvar errors_exports = {};\n__export(errors_exports, {\n ArgExpansionBailout: () => ArgExpansionBailout,\n ConfigError: () => ConfigError,\n UndefinedParserError: () => UndefinedParserError\n});\nvar ConfigError = class extends Error {\n name = \"ConfigError\";\n};\nvar UndefinedParserError = class extends Error {\n name = \"UndefinedParserError\";\n};\nvar ArgExpansionBailout = class extends Error {\n name = \"ArgExpansionBailout\";\n};\n\n// src/utilities/create-mockable.js\nfunction createMockable(implementations) {\n const mocked = {\n ...implementations\n };\n const mockImplementation = (functionality, implementation) => {\n if (!Object.prototype.hasOwnProperty.call(implementations, functionality)) {\n throw new Error(`Unexpected mock '${functionality}'.`);\n }\n mocked[functionality] = implementation;\n };\n const mockImplementations = (overrideImplementations) => {\n for (const [functionality, implementation] of Object.entries(overrideImplementations)) {\n mockImplementation(functionality, implementation);\n }\n };\n const mockRestore = () => {\n Object.assign(mocked, implementations);\n };\n return {\n mocked,\n implementations,\n mockImplementation,\n mockImplementations,\n mockRestore\n };\n}\nvar create_mockable_default = createMockable;\n\n// src/common/mockable.js\nvar mockable = create_mockable_default({\n getPrettierConfigSearchStopDirectory: () => void 0\n});\nvar mockable_default = mockable.mocked;\n\n// src/config/resolve-config.js\nvar import_micromatch = __toESM(require_micromatch(), 1);\nimport path10 from \"path\";\n\n// node_modules/url-or-path/index.js\nimport * as path from \"path\";\nimport * as url from \"url\";\nvar URL_STRING_PREFIX = \"file:\";\nvar isUrlInstance = (value) => value instanceof URL;\nvar isUrlString = (value) => typeof value === \"string\" && value.startsWith(URL_STRING_PREFIX);\nvar isUrl = (urlOrPath) => isUrlInstance(urlOrPath) || isUrlString(urlOrPath);\nvar toPath = (urlOrPath) => isUrl(urlOrPath) ? url.fileURLToPath(urlOrPath) : urlOrPath;\nvar toAbsolutePath = (urlOrPath) => urlOrPath ? path.resolve(isUrl(urlOrPath) ? url.fileURLToPath(urlOrPath) : urlOrPath) : urlOrPath;\n\n// src/utilities/partition.js\nfunction partition2(array2, predicate) {\n const result = [[], []];\n for (const value of array2) {\n result[predicate(value) ? 0 : 1].push(value);\n }\n return result;\n}\nvar partition_default = partition2;\n\n// src/config/editorconfig/index.js\nvar import_editorconfig = __toESM(require_src(), 1);\nimport path5 from \"path\";\n\n// src/config/find-project-root.js\nimport * as path4 from \"path\";\n\n// node_modules/find-in-directory/index.js\nimport * as fs from \"fs/promises\";\nimport * as path2 from \"path\";\nimport process2 from \"process\";\nvar isFile = (stats) => stats?.isFile();\nvar isDirectory = (stats) => stats?.isDirectory();\nasync function findInDirectory(nameOrNames, { typeCheck, cwd, allowSymlinks = true, filter: filter2 }) {\n const directory = toAbsolutePath(cwd) ?? process2.cwd();\n const names = Array.isArray(nameOrNames) ? nameOrNames : [nameOrNames];\n for (const name of names) {\n const fileOrDirectory = path2.join(directory, name);\n const stats = await safeStat(fileOrDirectory, allowSymlinks);\n if (await typeCheck(stats) && (!filter2 || await filter2({ name, path: fileOrDirectory, stats }))) {\n return fileOrDirectory;\n }\n }\n}\nasync function safeStat(path15, allowSymlinks = true) {\n try {\n return await (allowSymlinks ? fs.stat : fs.lstat)(path15);\n } catch {\n }\n}\nfunction findFile(nameOrNames, options8) {\n return findInDirectory(nameOrNames, { ...options8, typeCheck: isFile });\n}\nfunction findDirectory(nameOrNames, options8) {\n return findInDirectory(nameOrNames, { ...options8, typeCheck: isDirectory });\n}\n\n// node_modules/iterate-directory-up/index.js\nimport * as path3 from \"path\";\nimport process3 from \"process\";\nfunction* iterateDirectoryUp(from, to) {\n let directory = toAbsolutePath(from) ?? process3.cwd();\n let stopDirectory = toAbsolutePath(to);\n if (stopDirectory) {\n const relation = path3.relative(stopDirectory, directory);\n if (relation[0] === \".\" || relation === directory) {\n return;\n }\n }\n stopDirectory = stopDirectory ? directory.slice(0, stopDirectory.length) : path3.parse(directory).root;\n while (directory !== stopDirectory) {\n yield directory;\n directory = path3.dirname(directory);\n }\n yield stopDirectory;\n}\nvar iterate_directory_up_default = iterateDirectoryUp;\n\n// node_modules/search-closest/index.js\nvar Searcher = class {\n #stopDirectory;\n #cache;\n #resultCache = /* @__PURE__ */ new Map();\n #searchWithoutCache;\n /**\n @protected\n @type {typeof findFile | typeof findDirectory}\n */\n findInDirectory;\n /**\n @param {NameOrNames} nameOrNames\n @param {SearcherOptions} [options]\n */\n constructor(nameOrNames, { allowSymlinks, filter: filter2, stopDirectory, cache: cache3 } = {}) {\n this.#stopDirectory = stopDirectory;\n this.#cache = cache3 ?? true;\n this.#searchWithoutCache = (directory) => this.findInDirectory(nameOrNames, { cwd: directory, filter: filter2, allowSymlinks });\n }\n #search(directory, cache3 = true) {\n const resultCache = this.#resultCache;\n if (!cache3 || !resultCache.has(directory)) {\n resultCache.set(directory, this.#searchWithoutCache(directory));\n }\n return resultCache.get(directory);\n }\n /**\n Find closest file or directory matches name or names.\n \n @param {OptionalUrlOrPath} [startDirectory]\n @param {SearchOptions} [options]\n @returns {SearchResult}\n */\n async search(startDirectory, options8) {\n for (const directory of iterate_directory_up_default(\n startDirectory,\n this.#stopDirectory\n )) {\n const result = await this.#search(\n directory,\n options8?.cache ?? this.#cache\n );\n if (result) {\n return result;\n }\n }\n }\n /**\n Clear caches.\n \n @returns {void}\n */\n clearCache() {\n this.#resultCache.clear();\n }\n};\nvar FileSearcher = class extends Searcher {\n /** @protected */\n findInDirectory = findFile;\n};\nvar DirectorySearcher = class extends Searcher {\n /** @protected */\n findInDirectory = findDirectory;\n};\n\n// src/config/find-project-root.js\nvar DIRECTORIES = [\".git\", \".hg\"];\nvar searcher;\nasync function findProjectRoot(startDirectory, options8) {\n searcher ?? (searcher = new DirectorySearcher(DIRECTORIES, { allowSymlinks: false }));\n const directory = await searcher.search(startDirectory, {\n cache: options8.shouldCache\n });\n return directory ? path4.dirname(directory) : void 0;\n}\nfunction clearFindProjectRootCache() {\n searcher?.clearCache();\n}\n\n// src/config/editorconfig/editorconfig-to-prettier.js\nvar isPositiveInteger = (value) => Number.isSafeInteger(value) && value > 0;\nfunction editorConfigToPrettier(editorConfig) {\n if (!editorConfig) {\n return;\n }\n const result = {};\n const {\n indent_style,\n indent_size,\n tab_width,\n max_line_length,\n quote_type,\n end_of_line\n } = editorConfig;\n if (indent_style === \"space\") {\n result.useTabs = false;\n } else if (indent_style === \"tab\" || indent_size === \"tab\") {\n result.useTabs = true;\n }\n if (result.useTabs === false && isPositiveInteger(indent_size)) {\n result.tabWidth = indent_size;\n } else if (isPositiveInteger(tab_width)) {\n result.tabWidth = tab_width;\n }\n if (max_line_length === \"off\") {\n result.printWidth = Number.POSITIVE_INFINITY;\n } else if (isPositiveInteger(max_line_length)) {\n result.printWidth = max_line_length;\n }\n if (quote_type === \"single\") {\n result.singleQuote = true;\n } else if (quote_type === \"double\") {\n result.singleQuote = false;\n }\n if (end_of_line === \"lf\" || end_of_line === \"crlf\" || end_of_line === \"cr\") {\n result.endOfLine = end_of_line;\n }\n if (Object.keys(result).length === 0) {\n return;\n }\n return result;\n}\nvar editorconfig_to_prettier_default = editorConfigToPrettier;\n\n// src/config/editorconfig/index.js\nvar editorconfigCache = /* @__PURE__ */ new Map();\nfunction clearEditorconfigCache() {\n clearFindProjectRootCache();\n editorconfigCache.clear();\n}\nasync function loadEditorconfigInternal(file, { shouldCache }) {\n const directory = path5.dirname(file);\n const root2 = await findProjectRoot(directory, { shouldCache });\n const editorConfig = await import_editorconfig.default.parse(file, { root: root2 });\n const config = editorconfig_to_prettier_default(editorConfig);\n return config;\n}\nfunction loadEditorconfig(file, { shouldCache }) {\n file = path5.resolve(file);\n if (!shouldCache || !editorconfigCache.has(file)) {\n editorconfigCache.set(\n file,\n loadEditorconfigInternal(file, { shouldCache })\n );\n }\n return editorconfigCache.get(file);\n}\n\n// src/config/prettier-config/index.js\nimport path9 from \"path\";\n\n// src/config/prettier-config/loaders.js\nimport { pathToFileURL as pathToFileURL2 } from \"url\";\n\n// node_modules/json5/dist/index.mjs\nvar Space_Separator = /[\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nvar ID_Start = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\nvar ID_Continue = /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u08D4-\\u08E1\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u09FC\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C80-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1CD0-\\u1CD2\\u1CD4-\\u1CF9\\u1D00-\\u1DF9\\u1DFB-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE3E\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC00-\\uDC4A\\uDC50-\\uDC59\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDE00-\\uDE3E\\uDE47\\uDE50-\\uDE83\\uDE86-\\uDE99\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC36\\uDC38-\\uDC40\\uDC50-\\uDC59\\uDC72-\\uDC8F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD47\\uDD50-\\uDD59]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6\\uDD00-\\uDD4A\\uDD50-\\uDD59]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/;\nvar unicode = {\n Space_Separator,\n ID_Start,\n ID_Continue\n};\nvar util = {\n isSpaceSeparator(c2) {\n return typeof c2 === \"string\" && unicode.Space_Separator.test(c2);\n },\n isIdStartChar(c2) {\n return typeof c2 === \"string\" && (c2 >= \"a\" && c2 <= \"z\" || c2 >= \"A\" && c2 <= \"Z\" || c2 === \"$\" || c2 === \"_\" || unicode.ID_Start.test(c2));\n },\n isIdContinueChar(c2) {\n return typeof c2 === \"string\" && (c2 >= \"a\" && c2 <= \"z\" || c2 >= \"A\" && c2 <= \"Z\" || c2 >= \"0\" && c2 <= \"9\" || c2 === \"$\" || c2 === \"_\" || c2 === \"\\u200C\" || c2 === \"\\u200D\" || unicode.ID_Continue.test(c2));\n },\n isDigit(c2) {\n return typeof c2 === \"string\" && /[0-9]/.test(c2);\n },\n isHexDigit(c2) {\n return typeof c2 === \"string\" && /[0-9A-Fa-f]/.test(c2);\n }\n};\nvar source;\nvar parseState;\nvar stack;\nvar pos;\nvar line;\nvar column;\nvar token;\nvar key;\nvar root;\nvar parse2 = function parse3(text, reviver) {\n source = String(text);\n parseState = \"start\";\n stack = [];\n pos = 0;\n line = 1;\n column = 0;\n token = void 0;\n key = void 0;\n root = void 0;\n do {\n token = lex();\n parseStates[parseState]();\n } while (token.type !== \"eof\");\n if (typeof reviver === \"function\") {\n return internalize({ \"\": root }, \"\", reviver);\n }\n return root;\n};\nfunction internalize(holder, name, reviver) {\n const value = holder[name];\n if (value != null && typeof value === \"object\") {\n if (Array.isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const key2 = String(i);\n const replacement = internalize(value, key2, reviver);\n if (replacement === void 0) {\n delete value[key2];\n } else {\n Object.defineProperty(value, key2, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n } else {\n for (const key2 in value) {\n const replacement = internalize(value, key2, reviver);\n if (replacement === void 0) {\n delete value[key2];\n } else {\n Object.defineProperty(value, key2, {\n value: replacement,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n }\n }\n return reviver.call(holder, name, value);\n}\nvar lexState;\nvar buffer;\nvar doubleQuote;\nvar sign;\nvar c;\nfunction lex() {\n lexState = \"default\";\n buffer = \"\";\n doubleQuote = false;\n sign = 1;\n for (; ; ) {\n c = peek();\n const token2 = lexStates[lexState]();\n if (token2) {\n return token2;\n }\n }\n}\nfunction peek() {\n if (source[pos]) {\n return String.fromCodePoint(source.codePointAt(pos));\n }\n}\nfunction read() {\n const c2 = peek();\n if (c2 === \"\\n\") {\n line++;\n column = 0;\n } else if (c2) {\n column += c2.length;\n } else {\n column++;\n }\n if (c2) {\n pos += c2.length;\n }\n return c2;\n}\nvar lexStates = {\n default() {\n switch (c) {\n case \"\t\":\n case \"\\v\":\n case \"\\f\":\n case \" \":\n case \"\\xA0\":\n case \"\\uFEFF\":\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return;\n case \"/\":\n read();\n lexState = \"comment\";\n return;\n case void 0:\n read();\n return newToken(\"eof\");\n }\n if (util.isSpaceSeparator(c)) {\n read();\n return;\n }\n return lexStates[parseState]();\n },\n comment() {\n switch (c) {\n case \"*\":\n read();\n lexState = \"multiLineComment\";\n return;\n case \"/\":\n read();\n lexState = \"singleLineComment\";\n return;\n }\n throw invalidChar(read());\n },\n multiLineComment() {\n switch (c) {\n case \"*\":\n read();\n lexState = \"multiLineCommentAsterisk\";\n return;\n case void 0:\n throw invalidChar(read());\n }\n read();\n },\n multiLineCommentAsterisk() {\n switch (c) {\n case \"*\":\n read();\n return;\n case \"/\":\n read();\n lexState = \"default\";\n return;\n case void 0:\n throw invalidChar(read());\n }\n read();\n lexState = \"multiLineComment\";\n },\n singleLineComment() {\n switch (c) {\n case \"\\n\":\n case \"\\r\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n lexState = \"default\";\n return;\n case void 0:\n read();\n return newToken(\"eof\");\n }\n read();\n },\n value() {\n switch (c) {\n case \"{\":\n case \"[\":\n return newToken(\"punctuator\", read());\n case \"n\":\n read();\n literal(\"ull\");\n return newToken(\"null\", null);\n case \"t\":\n read();\n literal(\"rue\");\n return newToken(\"boolean\", true);\n case \"f\":\n read();\n literal(\"alse\");\n return newToken(\"boolean\", false);\n case \"-\":\n case \"+\":\n if (read() === \"-\") {\n sign = -1;\n }\n lexState = \"sign\";\n return;\n case \".\":\n buffer = read();\n lexState = \"decimalPointLeading\";\n return;\n case \"0\":\n buffer = read();\n lexState = \"zero\";\n return;\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n buffer = read();\n lexState = \"decimalInteger\";\n return;\n case \"I\":\n read();\n literal(\"nfinity\");\n return newToken(\"numeric\", Infinity);\n case \"N\":\n read();\n literal(\"aN\");\n return newToken(\"numeric\", NaN);\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n buffer = \"\";\n lexState = \"string\";\n return;\n }\n throw invalidChar(read());\n },\n identifierNameStartEscape() {\n if (c !== \"u\") {\n throw invalidChar(read());\n }\n read();\n const u = unicodeEscape();\n switch (u) {\n case \"$\":\n case \"_\":\n break;\n default:\n if (!util.isIdStartChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = \"identifierName\";\n },\n identifierName() {\n switch (c) {\n case \"$\":\n case \"_\":\n case \"\\u200C\":\n case \"\\u200D\":\n buffer += read();\n return;\n case \"\\\\\":\n read();\n lexState = \"identifierNameEscape\";\n return;\n }\n if (util.isIdContinueChar(c)) {\n buffer += read();\n return;\n }\n return newToken(\"identifier\", buffer);\n },\n identifierNameEscape() {\n if (c !== \"u\") {\n throw invalidChar(read());\n }\n read();\n const u = unicodeEscape();\n switch (u) {\n case \"$\":\n case \"_\":\n case \"\\u200C\":\n case \"\\u200D\":\n break;\n default:\n if (!util.isIdContinueChar(u)) {\n throw invalidIdentifier();\n }\n break;\n }\n buffer += u;\n lexState = \"identifierName\";\n },\n sign() {\n switch (c) {\n case \".\":\n buffer = read();\n lexState = \"decimalPointLeading\";\n return;\n case \"0\":\n buffer = read();\n lexState = \"zero\";\n return;\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n buffer = read();\n lexState = \"decimalInteger\";\n return;\n case \"I\":\n read();\n literal(\"nfinity\");\n return newToken(\"numeric\", sign * Infinity);\n case \"N\":\n read();\n literal(\"aN\");\n return newToken(\"numeric\", NaN);\n }\n throw invalidChar(read());\n },\n zero() {\n switch (c) {\n case \".\":\n buffer += read();\n lexState = \"decimalPoint\";\n return;\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n case \"x\":\n case \"X\":\n buffer += read();\n lexState = \"hexadecimal\";\n return;\n }\n return newToken(\"numeric\", sign * 0);\n },\n decimalInteger() {\n switch (c) {\n case \".\":\n buffer += read();\n lexState = \"decimalPoint\";\n return;\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalPointLeading() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalFraction\";\n return;\n }\n throw invalidChar(read());\n },\n decimalPoint() {\n switch (c) {\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalFraction\";\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalFraction() {\n switch (c) {\n case \"e\":\n case \"E\":\n buffer += read();\n lexState = \"decimalExponent\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n decimalExponent() {\n switch (c) {\n case \"+\":\n case \"-\":\n buffer += read();\n lexState = \"decimalExponentSign\";\n return;\n }\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalExponentInteger\";\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentSign() {\n if (util.isDigit(c)) {\n buffer += read();\n lexState = \"decimalExponentInteger\";\n return;\n }\n throw invalidChar(read());\n },\n decimalExponentInteger() {\n if (util.isDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n hexadecimal() {\n if (util.isHexDigit(c)) {\n buffer += read();\n lexState = \"hexadecimalInteger\";\n return;\n }\n throw invalidChar(read());\n },\n hexadecimalInteger() {\n if (util.isHexDigit(c)) {\n buffer += read();\n return;\n }\n return newToken(\"numeric\", sign * Number(buffer));\n },\n string() {\n switch (c) {\n case \"\\\\\":\n read();\n buffer += escape();\n return;\n case '\"':\n if (doubleQuote) {\n read();\n return newToken(\"string\", buffer);\n }\n buffer += read();\n return;\n case \"'\":\n if (!doubleQuote) {\n read();\n return newToken(\"string\", buffer);\n }\n buffer += read();\n return;\n case \"\\n\":\n case \"\\r\":\n throw invalidChar(read());\n case \"\\u2028\":\n case \"\\u2029\":\n separatorChar(c);\n break;\n case void 0:\n throw invalidChar(read());\n }\n buffer += read();\n },\n start() {\n switch (c) {\n case \"{\":\n case \"[\":\n return newToken(\"punctuator\", read());\n }\n lexState = \"value\";\n },\n beforePropertyName() {\n switch (c) {\n case \"$\":\n case \"_\":\n buffer = read();\n lexState = \"identifierName\";\n return;\n case \"\\\\\":\n read();\n lexState = \"identifierNameStartEscape\";\n return;\n case \"}\":\n return newToken(\"punctuator\", read());\n case '\"':\n case \"'\":\n doubleQuote = read() === '\"';\n lexState = \"string\";\n return;\n }\n if (util.isIdStartChar(c)) {\n buffer += read();\n lexState = \"identifierName\";\n return;\n }\n throw invalidChar(read());\n },\n afterPropertyName() {\n if (c === \":\") {\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n beforePropertyValue() {\n lexState = \"value\";\n },\n afterPropertyValue() {\n switch (c) {\n case \",\":\n case \"}\":\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n beforeArrayValue() {\n if (c === \"]\") {\n return newToken(\"punctuator\", read());\n }\n lexState = \"value\";\n },\n afterArrayValue() {\n switch (c) {\n case \",\":\n case \"]\":\n return newToken(\"punctuator\", read());\n }\n throw invalidChar(read());\n },\n end() {\n throw invalidChar(read());\n }\n};\nfunction newToken(type, value) {\n return {\n type,\n value,\n line,\n column\n };\n}\nfunction literal(s) {\n for (const c2 of s) {\n const p = peek();\n if (p !== c2) {\n throw invalidChar(read());\n }\n read();\n }\n}\nfunction escape() {\n const c2 = peek();\n switch (c2) {\n case \"b\":\n read();\n return \"\\b\";\n case \"f\":\n read();\n return \"\\f\";\n case \"n\":\n read();\n return \"\\n\";\n case \"r\":\n read();\n return \"\\r\";\n case \"t\":\n read();\n return \"\t\";\n case \"v\":\n read();\n return \"\\v\";\n case \"0\":\n read();\n if (util.isDigit(peek())) {\n throw invalidChar(read());\n }\n return \"\\0\";\n case \"x\":\n read();\n return hexEscape();\n case \"u\":\n read();\n return unicodeEscape();\n case \"\\n\":\n case \"\\u2028\":\n case \"\\u2029\":\n read();\n return \"\";\n case \"\\r\":\n read();\n if (peek() === \"\\n\") {\n read();\n }\n return \"\";\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n throw invalidChar(read());\n case void 0:\n throw invalidChar(read());\n }\n return read();\n}\nfunction hexEscape() {\n let buffer2 = \"\";\n let c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n return String.fromCodePoint(parseInt(buffer2, 16));\n}\nfunction unicodeEscape() {\n let buffer2 = \"\";\n let count = 4;\n while (count-- > 0) {\n const c2 = peek();\n if (!util.isHexDigit(c2)) {\n throw invalidChar(read());\n }\n buffer2 += read();\n }\n return String.fromCodePoint(parseInt(buffer2, 16));\n}\nvar parseStates = {\n start() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n push();\n },\n beforePropertyName() {\n switch (token.type) {\n case \"identifier\":\n case \"string\":\n key = token.value;\n parseState = \"afterPropertyName\";\n return;\n case \"punctuator\":\n pop();\n return;\n case \"eof\":\n throw invalidEOF();\n }\n },\n afterPropertyName() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n parseState = \"beforePropertyValue\";\n },\n beforePropertyValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n push();\n },\n beforeArrayValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n if (token.type === \"punctuator\" && token.value === \"]\") {\n pop();\n return;\n }\n push();\n },\n afterPropertyValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n switch (token.value) {\n case \",\":\n parseState = \"beforePropertyName\";\n return;\n case \"}\":\n pop();\n }\n },\n afterArrayValue() {\n if (token.type === \"eof\") {\n throw invalidEOF();\n }\n switch (token.value) {\n case \",\":\n parseState = \"beforeArrayValue\";\n return;\n case \"]\":\n pop();\n }\n },\n end() {\n }\n};\nfunction push() {\n let value;\n switch (token.type) {\n case \"punctuator\":\n switch (token.value) {\n case \"{\":\n value = {};\n break;\n case \"[\":\n value = [];\n break;\n }\n break;\n case \"null\":\n case \"boolean\":\n case \"numeric\":\n case \"string\":\n value = token.value;\n break;\n }\n if (root === void 0) {\n root = value;\n } else {\n const parent = stack[stack.length - 1];\n if (Array.isArray(parent)) {\n parent.push(value);\n } else {\n Object.defineProperty(parent, key, {\n value,\n writable: true,\n enumerable: true,\n configurable: true\n });\n }\n }\n if (value !== null && typeof value === \"object\") {\n stack.push(value);\n if (Array.isArray(value)) {\n parseState = \"beforeArrayValue\";\n } else {\n parseState = \"beforePropertyName\";\n }\n } else {\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = \"end\";\n } else if (Array.isArray(current)) {\n parseState = \"afterArrayValue\";\n } else {\n parseState = \"afterPropertyValue\";\n }\n }\n}\nfunction pop() {\n stack.pop();\n const current = stack[stack.length - 1];\n if (current == null) {\n parseState = \"end\";\n } else if (Array.isArray(current)) {\n parseState = \"afterArrayValue\";\n } else {\n parseState = \"afterPropertyValue\";\n }\n}\nfunction invalidChar(c2) {\n if (c2 === void 0) {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);\n }\n return syntaxError(`JSON5: invalid character '${formatChar(c2)}' at ${line}:${column}`);\n}\nfunction invalidEOF() {\n return syntaxError(`JSON5: invalid end of input at ${line}:${column}`);\n}\nfunction invalidIdentifier() {\n column -= 5;\n return syntaxError(`JSON5: invalid identifier character at ${line}:${column}`);\n}\nfunction separatorChar(c2) {\n console.warn(`JSON5: '${formatChar(c2)}' in strings is not valid ECMAScript; consider escaping`);\n}\nfunction formatChar(c2) {\n const replacements = {\n \"'\": \"\\\\'\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\",\n \"\\b\": \"\\\\b\",\n \"\\f\": \"\\\\f\",\n \"\\n\": \"\\\\n\",\n \"\\r\": \"\\\\r\",\n \"\t\": \"\\\\t\",\n \"\\v\": \"\\\\v\",\n \"\\0\": \"\\\\0\",\n \"\\u2028\": \"\\\\u2028\",\n \"\\u2029\": \"\\\\u2029\"\n };\n if (replacements[c2]) {\n return replacements[c2];\n }\n if (c2 < \" \") {\n const hexString = c2.charCodeAt(0).toString(16);\n return \"\\\\x\" + (\"00\" + hexString).substring(hexString.length);\n }\n return c2;\n}\nfunction syntaxError(message) {\n const err = new SyntaxError(message);\n err.lineNumber = line;\n err.columnNumber = column;\n return err;\n}\nvar dist_default = { parse: parse2 };\n\n// node_modules/@babel/code-frame/lib/index.js\nvar import_picocolors4 = __toESM(require_picocolors(), 1);\nvar import_js_tokens = __toESM(require_js_tokens(), 1);\n\n// node_modules/@babel/code-frame/node_modules/@babel/helper-validator-identifier/lib/index.js\nvar nonASCIIidentifierStartChars = \"\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088F\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5C\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDC-\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C8A\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7DC\\uA7F1-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\";\nvar nonASCIIidentifierChars = \"\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0897-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u180F-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1ABF-\\u1ADD\\u1AE0-\\u1AEB\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\u30FB\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F\\uFF65\";\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\nvar reservedWords = {\n keyword: [\"break\", \"case\", \"catch\", \"continue\", \"debugger\", \"default\", \"do\", \"else\", \"finally\", \"for\", \"function\", \"if\", \"return\", \"switch\", \"throw\", \"try\", \"var\", \"const\", \"while\", \"with\", \"new\", \"this\", \"super\", \"class\", \"extends\", \"export\", \"import\", \"null\", \"true\", \"false\", \"in\", \"instanceof\", \"typeof\", \"void\", \"delete\"],\n strict: [\"implements\", \"interface\", \"let\", \"package\", \"private\", \"protected\", \"public\", \"static\", \"yield\"],\n strictBind: [\"eval\", \"arguments\"]\n};\nvar keywords = new Set(reservedWords.keyword);\nvar reservedWordsStrictSet = new Set(reservedWords.strict);\nvar reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\nfunction isReservedWord(word, inModule) {\n return inModule && word === \"await\" || word === \"enum\";\n}\nfunction isStrictReservedWord(word, inModule) {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\nfunction isKeyword(word) {\n return keywords.has(word);\n}\n\n// node_modules/@babel/code-frame/lib/index.js\nfunction isColorSupported() {\n return typeof process === \"object\" && (process.env.FORCE_COLOR === \"0\" || process.env.FORCE_COLOR === \"false\") ? false : import_picocolors4.default.isColorSupported;\n}\nvar compose = (f, g) => (v) => f(g(v));\nfunction buildDefs(colors) {\n return {\n keyword: colors.cyan,\n capitalized: colors.yellow,\n jsxIdentifier: colors.yellow,\n punctuator: colors.yellow,\n number: colors.magenta,\n string: colors.green,\n regex: colors.magenta,\n comment: colors.gray,\n invalid: compose(compose(colors.white, colors.bgRed), colors.bold),\n gutter: colors.gray,\n marker: compose(colors.red, colors.bold),\n message: compose(colors.red, colors.bold),\n reset: colors.reset\n };\n}\nvar defsOn = buildDefs((0, import_picocolors4.createColors)(true));\nvar defsOff = buildDefs((0, import_picocolors4.createColors)(false));\nfunction getDefs(enabled) {\n return enabled ? defsOn : defsOff;\n}\nvar sometimesKeywords = /* @__PURE__ */ new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\nvar NEWLINE$1 = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\nvar BRACKET = /^[()[\\]{}]$/;\nvar tokenize2;\n{\n const getTokenType = function(token2) {\n if (token2.type === \"IdentifierName\") {\n if (isKeyword(token2.value) || isStrictReservedWord(token2.value, true) || sometimesKeywords.has(token2.value)) {\n return \"keyword\";\n }\n if (token2.value[0] !== token2.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n if (token2.type === \"Punctuator\" && BRACKET.test(token2.value)) {\n return \"uncolored\";\n }\n if (token2.type === \"Invalid\" && token2.value === \"@\") {\n return \"punctuator\";\n }\n switch (token2.type) {\n case \"NumericLiteral\":\n return \"number\";\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n case \"RegularExpressionLiteral\":\n return \"regex\";\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n default:\n return \"uncolored\";\n }\n };\n tokenize2 = function* (text) {\n for (const token2 of (0, import_js_tokens.default)(text, {\n jsx: true\n })) {\n switch (token2.type) {\n case \"TemplateHead\":\n yield {\n type: \"string\",\n value: token2.value.slice(0, -2)\n };\n yield {\n type: \"punctuator\",\n value: \"${\"\n };\n break;\n case \"TemplateMiddle\":\n yield {\n type: \"punctuator\",\n value: \"}\"\n };\n yield {\n type: \"string\",\n value: token2.value.slice(1, -2)\n };\n yield {\n type: \"punctuator\",\n value: \"${\"\n };\n break;\n case \"TemplateTail\":\n yield {\n type: \"punctuator\",\n value: \"}\"\n };\n yield {\n type: \"string\",\n value: token2.value.slice(1)\n };\n break;\n default:\n yield {\n type: getTokenType(token2),\n value: token2.value\n };\n }\n }\n };\n}\nfunction highlight(text) {\n if (text === \"\") return \"\";\n const defs = getDefs(true);\n let highlighted = \"\";\n for (const {\n type,\n value\n } of tokenize2(text)) {\n if (type in defs) {\n highlighted += value.split(NEWLINE$1).map((str) => defs[type](str)).join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n return highlighted;\n}\nvar NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\nfunction getMarkerLines(loc, source2, opts) {\n const startLoc = Object.assign({\n column: 0,\n line: -1\n }, loc.start);\n const endLoc = Object.assign({}, startLoc, loc.end);\n const {\n linesAbove = 2,\n linesBelow = 3\n } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source2.length, endLine + linesBelow);\n if (startLine === -1) {\n start = 0;\n }\n if (endLine === -1) {\n end = source2.length;\n }\n const lineDiff2 = endLine - startLine;\n const markerLines = {};\n if (lineDiff2) {\n for (let i = 0; i <= lineDiff2; i++) {\n const lineNumber = i + startLine;\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source2[lineNumber - 1].length;\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff2) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source2[lineNumber - i].length;\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n return {\n start,\n end,\n markerLines\n };\n}\nfunction codeFrameColumns(rawLines, loc, opts = {}) {\n const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;\n const defs = getDefs(shouldHighlight);\n const lines = rawLines.split(NEWLINE);\n const {\n start,\n end,\n markerLines\n } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n const numberMaxWidth = String(end).length;\n const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;\n let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line3, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line3.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n markerLine = [\"\\n \", defs.gutter(gutter.replace(/\\d/g, \" \")), \" \", markerSpacing, defs.marker(\"^\").repeat(numberOfMarkers)].join(\"\");\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + defs.message(opts.message);\n }\n }\n return [defs.marker(\">\"), defs.gutter(gutter), line3.length > 0 ? ` ${line3}` : \"\", markerLine].join(\"\");\n } else {\n return ` ${defs.gutter(gutter)}${line3.length > 0 ? ` ${line3}` : \"\"}`;\n }\n }).join(\"\\n\");\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;\n }\n if (shouldHighlight) {\n return defs.reset(frame);\n } else {\n return frame;\n }\n}\n\n// node_modules/index-to-position/index.js\nvar getOffsets = ({\n oneBased,\n oneBasedLine = oneBased,\n oneBasedColumn = oneBased\n} = {}) => [oneBasedLine ? 1 : 0, oneBasedColumn ? 1 : 0];\nfunction getPosition(text, textIndex, options8) {\n const lineBreakBefore = textIndex === 0 ? -1 : text.lastIndexOf(\"\\n\", textIndex - 1);\n const [lineOffset, columnOffset] = getOffsets(options8);\n return {\n line: lineBreakBefore === -1 ? lineOffset : text.slice(0, lineBreakBefore + 1).match(/\\n/g).length + lineOffset,\n column: textIndex - lineBreakBefore - 1 + columnOffset\n };\n}\nfunction indexToPosition(text, textIndex, options8) {\n if (typeof text !== \"string\") {\n throw new TypeError(\"Text parameter should be a string\");\n }\n if (!Number.isInteger(textIndex)) {\n throw new TypeError(\"Index parameter should be an integer\");\n }\n if (textIndex < 0 || textIndex > text.length) {\n throw new RangeError(\"Index out of bounds\");\n }\n return getPosition(text, textIndex, options8);\n}\n\n// node_modules/parse-json/index.js\nvar getCodePoint = (character) => `\\\\u{${character.codePointAt(0).toString(16)}}`;\nvar JSONError = class _JSONError extends Error {\n name = \"JSONError\";\n fileName;\n #input;\n #jsonParseError;\n #message;\n #codeFrame;\n #rawCodeFrame;\n constructor(messageOrOptions) {\n if (typeof messageOrOptions === \"string\") {\n super();\n this.#message = messageOrOptions;\n } else {\n const { jsonParseError, fileName, input } = messageOrOptions;\n super(void 0, { cause: jsonParseError });\n this.#input = input;\n this.#jsonParseError = jsonParseError;\n this.fileName = fileName;\n }\n Error.captureStackTrace?.(this, _JSONError);\n }\n get message() {\n this.#message ?? (this.#message = `${addCodePointToUnexpectedToken(this.#jsonParseError.message)}${this.#input === \"\" ? \" while parsing empty string\" : \"\"}`);\n const { codeFrame } = this;\n return `${this.#message}${this.fileName ? ` in ${this.fileName}` : \"\"}${codeFrame ? `\n\n${codeFrame}\n` : \"\"}`;\n }\n set message(message) {\n this.#message = message;\n }\n #getCodeFrame(highlightCode) {\n if (!this.#jsonParseError) {\n return;\n }\n const input = this.#input;\n const location = getErrorLocation(input, this.#jsonParseError.message);\n if (!location) {\n return;\n }\n return codeFrameColumns(input, { start: location }, { highlightCode });\n }\n get codeFrame() {\n this.#codeFrame ?? (this.#codeFrame = this.#getCodeFrame(\n /* highlightCode */\n true\n ));\n return this.#codeFrame;\n }\n get rawCodeFrame() {\n this.#rawCodeFrame ?? (this.#rawCodeFrame = this.#getCodeFrame(\n /* highlightCode */\n false\n ));\n return this.#rawCodeFrame;\n }\n};\nvar getErrorLocation = (string, message) => {\n const match = message.match(/in JSON at position (?<index>\\d+)(?: \\(line (?<line>\\d+) column (?<column>\\d+)\\))?$/);\n if (!match) {\n return;\n }\n const { index, line: line3, column: column2 } = match.groups;\n if (line3 && column2) {\n return { line: Number(line3), column: Number(column2) };\n }\n return indexToPosition(string, Number(index), { oneBased: true });\n};\nvar addCodePointToUnexpectedToken = (message) => message.replace(\n // TODO[engine:node@>=20]: The token always quoted after Node.js 20\n /(?<=^Unexpected token )(?<quote>')?(.)\\k<quote>/,\n (_, _quote, token2) => `\"${token2}\"(${getCodePoint(token2)})`\n);\nfunction parseJson(string, reviver, fileName) {\n if (typeof reviver === \"string\") {\n fileName = reviver;\n reviver = void 0;\n }\n try {\n return JSON.parse(string, reviver);\n } catch (error) {\n throw new JSONError({\n jsonParseError: error,\n fileName,\n input: string\n });\n }\n}\n\n// node_modules/smol-toml/dist/error.js\nfunction getLineColFromPtr(string, ptr) {\n let lines = string.slice(0, ptr).split(/\\r\\n|\\n|\\r/g);\n return [lines.length, lines.pop().length + 1];\n}\nfunction makeCodeBlock(string, line3, column2) {\n let lines = string.split(/\\r\\n|\\n|\\r/g);\n let codeblock = \"\";\n let numberLen = (Math.log10(line3 + 1) | 0) + 1;\n for (let i = line3 - 1; i <= line3 + 1; i++) {\n let l = lines[i - 1];\n if (!l)\n continue;\n codeblock += i.toString().padEnd(numberLen, \" \");\n codeblock += \": \";\n codeblock += l;\n codeblock += \"\\n\";\n if (i === line3) {\n codeblock += \" \".repeat(numberLen + column2 + 2);\n codeblock += \"^\\n\";\n }\n }\n return codeblock;\n}\nvar TomlError = class extends Error {\n line;\n column;\n codeblock;\n constructor(message, options8) {\n const [line3, column2] = getLineColFromPtr(options8.toml, options8.ptr);\n const codeblock = makeCodeBlock(options8.toml, line3, column2);\n super(`Invalid TOML document: ${message}\n\n${codeblock}`, options8);\n this.line = line3;\n this.column = column2;\n this.codeblock = codeblock;\n }\n};\n\n// node_modules/smol-toml/dist/util.js\nfunction isEscaped(str, ptr) {\n let i = 0;\n while (str[ptr - ++i] === \"\\\\\")\n ;\n return --i && i % 2;\n}\nfunction indexOfNewline(str, start = 0, end = str.length) {\n let idx = str.indexOf(\"\\n\", start);\n if (str[idx - 1] === \"\\r\")\n idx--;\n return idx <= end ? idx : -1;\n}\nfunction skipComment(str, ptr) {\n for (let i = ptr; i < str.length; i++) {\n let c2 = str[i];\n if (c2 === \"\\n\")\n return i;\n if (c2 === \"\\r\" && str[i + 1] === \"\\n\")\n return i + 1;\n if (c2 < \" \" && c2 !== \"\t\" || c2 === \"\\x7F\") {\n throw new TomlError(\"control characters are not allowed in comments\", {\n toml: str,\n ptr\n });\n }\n }\n return str.length;\n}\nfunction skipVoid(str, ptr, banNewLines, banComments) {\n let c2;\n while ((c2 = str[ptr]) === \" \" || c2 === \"\t\" || !banNewLines && (c2 === \"\\n\" || c2 === \"\\r\" && str[ptr + 1] === \"\\n\"))\n ptr++;\n return banComments || c2 !== \"#\" ? ptr : skipVoid(str, skipComment(str, ptr), banNewLines);\n}\nfunction skipUntil(str, ptr, sep, end, banNewLines = false) {\n if (!end) {\n ptr = indexOfNewline(str, ptr);\n return ptr < 0 ? str.length : ptr;\n }\n for (let i = ptr; i < str.length; i++) {\n let c2 = str[i];\n if (c2 === \"#\") {\n i = indexOfNewline(str, i);\n } else if (c2 === sep) {\n return i + 1;\n } else if (c2 === end || banNewLines && (c2 === \"\\n\" || c2 === \"\\r\" && str[i + 1] === \"\\n\")) {\n return i;\n }\n }\n throw new TomlError(\"cannot find end of structure\", {\n toml: str,\n ptr\n });\n}\nfunction getStringEnd(str, seek) {\n let first = str[seek];\n let target = first === str[seek + 1] && str[seek + 1] === str[seek + 2] ? str.slice(seek, seek + 3) : first;\n seek += target.length - 1;\n do\n seek = str.indexOf(target, ++seek);\n while (seek > -1 && first !== \"'\" && isEscaped(str, seek));\n if (seek > -1) {\n seek += target.length;\n if (target.length > 1) {\n if (str[seek] === first)\n seek++;\n if (str[seek] === first)\n seek++;\n }\n }\n return seek;\n}\n\n// node_modules/smol-toml/dist/date.js\nvar DATE_TIME_RE = /^(\\d{4}-\\d{2}-\\d{2})?[T ]?(?:(\\d{2}):\\d{2}:\\d{2}(?:\\.\\d+)?)?(Z|[-+]\\d{2}:\\d{2})?$/i;\nvar TomlDate = class _TomlDate extends Date {\n #hasDate = false;\n #hasTime = false;\n #offset = null;\n constructor(date) {\n let hasDate = true;\n let hasTime = true;\n let offset = \"Z\";\n if (typeof date === \"string\") {\n let match = date.match(DATE_TIME_RE);\n if (match) {\n if (!match[1]) {\n hasDate = false;\n date = `0000-01-01T${date}`;\n }\n hasTime = !!match[2];\n hasTime && date[10] === \" \" && (date = date.replace(\" \", \"T\"));\n if (match[2] && +match[2] > 23) {\n date = \"\";\n } else {\n offset = match[3] || null;\n date = date.toUpperCase();\n if (!offset && hasTime)\n date += \"Z\";\n }\n } else {\n date = \"\";\n }\n }\n super(date);\n if (!isNaN(this.getTime())) {\n this.#hasDate = hasDate;\n this.#hasTime = hasTime;\n this.#offset = offset;\n }\n }\n isDateTime() {\n return this.#hasDate && this.#hasTime;\n }\n isLocal() {\n return !this.#hasDate || !this.#hasTime || !this.#offset;\n }\n isDate() {\n return this.#hasDate && !this.#hasTime;\n }\n isTime() {\n return this.#hasTime && !this.#hasDate;\n }\n isValid() {\n return this.#hasDate || this.#hasTime;\n }\n toISOString() {\n let iso = super.toISOString();\n if (this.isDate())\n return iso.slice(0, 10);\n if (this.isTime())\n return iso.slice(11, 23);\n if (this.#offset === null)\n return iso.slice(0, -1);\n if (this.#offset === \"Z\")\n return iso;\n let offset = +this.#offset.slice(1, 3) * 60 + +this.#offset.slice(4, 6);\n offset = this.#offset[0] === \"-\" ? offset : -offset;\n let offsetDate = new Date(this.getTime() - offset * 6e4);\n return offsetDate.toISOString().slice(0, -1) + this.#offset;\n }\n static wrapAsOffsetDateTime(jsDate, offset = \"Z\") {\n let date = new _TomlDate(jsDate);\n date.#offset = offset;\n return date;\n }\n static wrapAsLocalDateTime(jsDate) {\n let date = new _TomlDate(jsDate);\n date.#offset = null;\n return date;\n }\n static wrapAsLocalDate(jsDate) {\n let date = new _TomlDate(jsDate);\n date.#hasTime = false;\n date.#offset = null;\n return date;\n }\n static wrapAsLocalTime(jsDate) {\n let date = new _TomlDate(jsDate);\n date.#hasDate = false;\n date.#offset = null;\n return date;\n }\n};\n\n// node_modules/smol-toml/dist/primitive.js\nvar INT_REGEX = /^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\\d(_?\\d)*))$/;\nvar FLOAT_REGEX = /^[+-]?\\d(_?\\d)*(\\.\\d(_?\\d)*)?([eE][+-]?\\d(_?\\d)*)?$/;\nvar LEADING_ZERO = /^[+-]?0[0-9_]/;\nvar ESCAPE_REGEX = /^[0-9a-f]{4,8}$/i;\nvar ESC_MAP = {\n b: \"\\b\",\n t: \"\t\",\n n: \"\\n\",\n f: \"\\f\",\n r: \"\\r\",\n '\"': '\"',\n \"\\\\\": \"\\\\\"\n};\nfunction parseString(str, ptr = 0, endPtr = str.length) {\n let isLiteral = str[ptr] === \"'\";\n let isMultiline = str[ptr++] === str[ptr] && str[ptr] === str[ptr + 1];\n if (isMultiline) {\n endPtr -= 2;\n if (str[ptr += 2] === \"\\r\")\n ptr++;\n if (str[ptr] === \"\\n\")\n ptr++;\n }\n let tmp = 0;\n let isEscape;\n let parsed = \"\";\n let sliceStart = ptr;\n while (ptr < endPtr - 1) {\n let c2 = str[ptr++];\n if (c2 === \"\\n\" || c2 === \"\\r\" && str[ptr] === \"\\n\") {\n if (!isMultiline) {\n throw new TomlError(\"newlines are not allowed in strings\", {\n toml: str,\n ptr: ptr - 1\n });\n }\n } else if (c2 < \" \" && c2 !== \"\t\" || c2 === \"\\x7F\") {\n throw new TomlError(\"control characters are not allowed in strings\", {\n toml: str,\n ptr: ptr - 1\n });\n }\n if (isEscape) {\n isEscape = false;\n if (c2 === \"u\" || c2 === \"U\") {\n let code = str.slice(ptr, ptr += c2 === \"u\" ? 4 : 8);\n if (!ESCAPE_REGEX.test(code)) {\n throw new TomlError(\"invalid unicode escape\", {\n toml: str,\n ptr: tmp\n });\n }\n try {\n parsed += String.fromCodePoint(parseInt(code, 16));\n } catch {\n throw new TomlError(\"invalid unicode escape\", {\n toml: str,\n ptr: tmp\n });\n }\n } else if (isMultiline && (c2 === \"\\n\" || c2 === \" \" || c2 === \"\t\" || c2 === \"\\r\")) {\n ptr = skipVoid(str, ptr - 1, true);\n if (str[ptr] !== \"\\n\" && str[ptr] !== \"\\r\") {\n throw new TomlError(\"invalid escape: only line-ending whitespace may be escaped\", {\n toml: str,\n ptr: tmp\n });\n }\n ptr = skipVoid(str, ptr);\n } else if (c2 in ESC_MAP) {\n parsed += ESC_MAP[c2];\n } else {\n throw new TomlError(\"unrecognized escape sequence\", {\n toml: str,\n ptr: tmp\n });\n }\n sliceStart = ptr;\n } else if (!isLiteral && c2 === \"\\\\\") {\n tmp = ptr - 1;\n isEscape = true;\n parsed += str.slice(sliceStart, tmp);\n }\n }\n return parsed + str.slice(sliceStart, endPtr - 1);\n}\nfunction parseValue(value, toml, ptr, integersAsBigInt) {\n if (value === \"true\")\n return true;\n if (value === \"false\")\n return false;\n if (value === \"-inf\")\n return -Infinity;\n if (value === \"inf\" || value === \"+inf\")\n return Infinity;\n if (value === \"nan\" || value === \"+nan\" || value === \"-nan\")\n return NaN;\n if (value === \"-0\")\n return integersAsBigInt ? 0n : 0;\n let isInt2 = INT_REGEX.test(value);\n if (isInt2 || FLOAT_REGEX.test(value)) {\n if (LEADING_ZERO.test(value)) {\n throw new TomlError(\"leading zeroes are not allowed\", {\n toml,\n ptr\n });\n }\n value = value.replace(/_/g, \"\");\n let numeric = +value;\n if (isNaN(numeric)) {\n throw new TomlError(\"invalid number\", {\n toml,\n ptr\n });\n }\n if (isInt2) {\n if ((isInt2 = !Number.isSafeInteger(numeric)) && !integersAsBigInt) {\n throw new TomlError(\"integer value cannot be represented losslessly\", {\n toml,\n ptr\n });\n }\n if (isInt2 || integersAsBigInt === true)\n numeric = BigInt(value);\n }\n return numeric;\n }\n const date = new TomlDate(value);\n if (!date.isValid()) {\n throw new TomlError(\"invalid value\", {\n toml,\n ptr\n });\n }\n return date;\n}\n\n// node_modules/smol-toml/dist/extract.js\nfunction sliceAndTrimEndOf(str, startPtr, endPtr, allowNewLines) {\n let value = str.slice(startPtr, endPtr);\n let commentIdx = value.indexOf(\"#\");\n if (commentIdx > -1) {\n skipComment(str, commentIdx);\n value = value.slice(0, commentIdx);\n }\n let trimmed = value.trimEnd();\n if (!allowNewLines) {\n let newlineIdx = value.indexOf(\"\\n\", trimmed.length);\n if (newlineIdx > -1) {\n throw new TomlError(\"newlines are not allowed in inline tables\", {\n toml: str,\n ptr: startPtr + newlineIdx\n });\n }\n }\n return [trimmed, commentIdx];\n}\nfunction extractValue(str, ptr, end, depth, integersAsBigInt) {\n if (depth === 0) {\n throw new TomlError(\"document contains excessively nested structures. aborting.\", {\n toml: str,\n ptr\n });\n }\n let c2 = str[ptr];\n if (c2 === \"[\" || c2 === \"{\") {\n let [value, endPtr2] = c2 === \"[\" ? parseArray(str, ptr, depth, integersAsBigInt) : parseInlineTable(str, ptr, depth, integersAsBigInt);\n let newPtr = end ? skipUntil(str, endPtr2, \",\", end) : endPtr2;\n if (endPtr2 - newPtr && end === \"}\") {\n let nextNewLine = indexOfNewline(str, endPtr2, newPtr);\n if (nextNewLine > -1) {\n throw new TomlError(\"newlines are not allowed in inline tables\", {\n toml: str,\n ptr: nextNewLine\n });\n }\n }\n return [value, newPtr];\n }\n let endPtr;\n if (c2 === '\"' || c2 === \"'\") {\n endPtr = getStringEnd(str, ptr);\n let parsed = parseString(str, ptr, endPtr);\n if (end) {\n endPtr = skipVoid(str, endPtr, end !== \"]\");\n if (str[endPtr] && str[endPtr] !== \",\" && str[endPtr] !== end && str[endPtr] !== \"\\n\" && str[endPtr] !== \"\\r\") {\n throw new TomlError(\"unexpected character encountered\", {\n toml: str,\n ptr: endPtr\n });\n }\n endPtr += +(str[endPtr] === \",\");\n }\n return [parsed, endPtr];\n }\n endPtr = skipUntil(str, ptr, \",\", end);\n let slice = sliceAndTrimEndOf(str, ptr, endPtr - +(str[endPtr - 1] === \",\"), end === \"]\");\n if (!slice[0]) {\n throw new TomlError(\"incomplete key-value declaration: no value specified\", {\n toml: str,\n ptr\n });\n }\n if (end && slice[1] > -1) {\n endPtr = skipVoid(str, ptr + slice[1]);\n endPtr += +(str[endPtr] === \",\");\n }\n return [\n parseValue(slice[0], str, ptr, integersAsBigInt),\n endPtr\n ];\n}\n\n// node_modules/smol-toml/dist/struct.js\nvar KEY_PART_RE = /^[a-zA-Z0-9-_]+[ \\t]*$/;\nfunction parseKey(str, ptr, end = \"=\") {\n let dot = ptr - 1;\n let parsed = [];\n let endPtr = str.indexOf(end, ptr);\n if (endPtr < 0) {\n throw new TomlError(\"incomplete key-value: cannot find end of key\", {\n toml: str,\n ptr\n });\n }\n do {\n let c2 = str[ptr = ++dot];\n if (c2 !== \" \" && c2 !== \"\t\") {\n if (c2 === '\"' || c2 === \"'\") {\n if (c2 === str[ptr + 1] && c2 === str[ptr + 2]) {\n throw new TomlError(\"multiline strings are not allowed in keys\", {\n toml: str,\n ptr\n });\n }\n let eos = getStringEnd(str, ptr);\n if (eos < 0) {\n throw new TomlError(\"unfinished string encountered\", {\n toml: str,\n ptr\n });\n }\n dot = str.indexOf(\".\", eos);\n let strEnd = str.slice(eos, dot < 0 || dot > endPtr ? endPtr : dot);\n let newLine = indexOfNewline(strEnd);\n if (newLine > -1) {\n throw new TomlError(\"newlines are not allowed in keys\", {\n toml: str,\n ptr: ptr + dot + newLine\n });\n }\n if (strEnd.trimStart()) {\n throw new TomlError(\"found extra tokens after the string part\", {\n toml: str,\n ptr: eos\n });\n }\n if (endPtr < eos) {\n endPtr = str.indexOf(end, eos);\n if (endPtr < 0) {\n throw new TomlError(\"incomplete key-value: cannot find end of key\", {\n toml: str,\n ptr\n });\n }\n }\n parsed.push(parseString(str, ptr, eos));\n } else {\n dot = str.indexOf(\".\", ptr);\n let part = str.slice(ptr, dot < 0 || dot > endPtr ? endPtr : dot);\n if (!KEY_PART_RE.test(part)) {\n throw new TomlError(\"only letter, numbers, dashes and underscores are allowed in keys\", {\n toml: str,\n ptr\n });\n }\n parsed.push(part.trimEnd());\n }\n }\n } while (dot + 1 && dot < endPtr);\n return [parsed, skipVoid(str, endPtr + 1, true, true)];\n}\nfunction parseInlineTable(str, ptr, depth, integersAsBigInt) {\n let res = {};\n let seen = /* @__PURE__ */ new Set();\n let c2;\n let comma = 0;\n ptr++;\n while ((c2 = str[ptr++]) !== \"}\" && c2) {\n let err = { toml: str, ptr: ptr - 1 };\n if (c2 === \"\\n\") {\n throw new TomlError(\"newlines are not allowed in inline tables\", err);\n } else if (c2 === \"#\") {\n throw new TomlError(\"inline tables cannot contain comments\", err);\n } else if (c2 === \",\") {\n throw new TomlError(\"expected key-value, found comma\", err);\n } else if (c2 !== \" \" && c2 !== \"\t\") {\n let k;\n let t = res;\n let hasOwn = false;\n let [key2, keyEndPtr] = parseKey(str, ptr - 1);\n for (let i = 0; i < key2.length; i++) {\n if (i)\n t = hasOwn ? t[k] : t[k] = {};\n k = key2[i];\n if ((hasOwn = Object.hasOwn(t, k)) && (typeof t[k] !== \"object\" || seen.has(t[k]))) {\n throw new TomlError(\"trying to redefine an already defined value\", {\n toml: str,\n ptr\n });\n }\n if (!hasOwn && k === \"__proto__\") {\n Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });\n }\n }\n if (hasOwn) {\n throw new TomlError(\"trying to redefine an already defined value\", {\n toml: str,\n ptr\n });\n }\n let [value, valueEndPtr] = extractValue(str, keyEndPtr, \"}\", depth - 1, integersAsBigInt);\n seen.add(value);\n t[k] = value;\n ptr = valueEndPtr;\n comma = str[ptr - 1] === \",\" ? ptr - 1 : 0;\n }\n }\n if (comma) {\n throw new TomlError(\"trailing commas are not allowed in inline tables\", {\n toml: str,\n ptr: comma\n });\n }\n if (!c2) {\n throw new TomlError(\"unfinished table encountered\", {\n toml: str,\n ptr\n });\n }\n return [res, ptr];\n}\nfunction parseArray(str, ptr, depth, integersAsBigInt) {\n let res = [];\n let c2;\n ptr++;\n while ((c2 = str[ptr++]) !== \"]\" && c2) {\n if (c2 === \",\") {\n throw new TomlError(\"expected value, found comma\", {\n toml: str,\n ptr: ptr - 1\n });\n } else if (c2 === \"#\")\n ptr = skipComment(str, ptr);\n else if (c2 !== \" \" && c2 !== \"\t\" && c2 !== \"\\n\" && c2 !== \"\\r\") {\n let e = extractValue(str, ptr - 1, \"]\", depth - 1, integersAsBigInt);\n res.push(e[0]);\n ptr = e[1];\n }\n }\n if (!c2) {\n throw new TomlError(\"unfinished array encountered\", {\n toml: str,\n ptr\n });\n }\n return [res, ptr];\n}\n\n// node_modules/smol-toml/dist/parse.js\nfunction peekTable(key2, table, meta, type) {\n let t = table;\n let m = meta;\n let k;\n let hasOwn = false;\n let state;\n for (let i = 0; i < key2.length; i++) {\n if (i) {\n t = hasOwn ? t[k] : t[k] = {};\n m = (state = m[k]).c;\n if (type === 0 && (state.t === 1 || state.t === 2)) {\n return null;\n }\n if (state.t === 2) {\n let l = t.length - 1;\n t = t[l];\n m = m[l].c;\n }\n }\n k = key2[i];\n if ((hasOwn = Object.hasOwn(t, k)) && m[k]?.t === 0 && m[k]?.d) {\n return null;\n }\n if (!hasOwn) {\n if (k === \"__proto__\") {\n Object.defineProperty(t, k, { enumerable: true, configurable: true, writable: true });\n Object.defineProperty(m, k, { enumerable: true, configurable: true, writable: true });\n }\n m[k] = {\n t: i < key2.length - 1 && type === 2 ? 3 : type,\n d: false,\n i: 0,\n c: {}\n };\n }\n }\n state = m[k];\n if (state.t !== type && !(type === 1 && state.t === 3)) {\n return null;\n }\n if (type === 2) {\n if (!state.d) {\n state.d = true;\n t[k] = [];\n }\n t[k].push(t = {});\n state.c[state.i++] = state = { t: 1, d: false, i: 0, c: {} };\n }\n if (state.d) {\n return null;\n }\n state.d = true;\n if (type === 1) {\n t = hasOwn ? t[k] : t[k] = {};\n } else if (type === 0 && hasOwn) {\n return null;\n }\n return [k, t, state.c];\n}\nfunction parse4(toml, { maxDepth = 1e3, integersAsBigInt } = {}) {\n let res = {};\n let meta = {};\n let tbl = res;\n let m = meta;\n for (let ptr = skipVoid(toml, 0); ptr < toml.length; ) {\n if (toml[ptr] === \"[\") {\n let isTableArray = toml[++ptr] === \"[\";\n let k = parseKey(toml, ptr += +isTableArray, \"]\");\n if (isTableArray) {\n if (toml[k[1] - 1] !== \"]\") {\n throw new TomlError(\"expected end of table declaration\", {\n toml,\n ptr: k[1] - 1\n });\n }\n k[1]++;\n }\n let p = peekTable(\n k[0],\n res,\n meta,\n isTableArray ? 2 : 1\n /* Type.EXPLICIT */\n );\n if (!p) {\n throw new TomlError(\"trying to redefine an already defined table or value\", {\n toml,\n ptr\n });\n }\n m = p[2];\n tbl = p[1];\n ptr = k[1];\n } else {\n let k = parseKey(toml, ptr);\n let p = peekTable(\n k[0],\n tbl,\n m,\n 0\n /* Type.DOTTED */\n );\n if (!p) {\n throw new TomlError(\"trying to redefine an already defined table or value\", {\n toml,\n ptr\n });\n }\n let v = extractValue(toml, k[1], void 0, maxDepth, integersAsBigInt);\n p[1][p[0]] = v[0];\n ptr = v[1];\n }\n ptr = skipVoid(toml, ptr, true);\n if (toml[ptr] && toml[ptr] !== \"\\n\" && toml[ptr] !== \"\\r\") {\n throw new TomlError(\"each key-value declaration must be followed by an end-of-line\", {\n toml,\n ptr\n });\n }\n ptr = skipVoid(toml, ptr);\n }\n return res;\n}\n\n// src/utilities/read-file.js\nimport fs2 from \"fs/promises\";\nasync function readFile(file) {\n if (isUrlString(file)) {\n file = new URL(file);\n }\n try {\n return await fs2.readFile(file, \"utf8\");\n } catch (error) {\n if (error.code === \"ENOENT\") {\n return;\n }\n throw new Error(`Unable to read '${file}': ${error.message}`);\n }\n}\nvar read_file_default = readFile;\n\n// src/config/prettier-config/loaders.js\nasync function readJson(file) {\n const content = await read_file_default(file);\n try {\n return parseJson(content);\n } catch (error) {\n error.message = `JSON Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nasync function importModuleDefault(file) {\n const module = await import(pathToFileURL2(file).href);\n return module.default;\n}\nasync function readBunPackageJson(file) {\n try {\n return await readJson(file);\n } catch (error) {\n try {\n return await importModuleDefault(file);\n } catch {\n }\n throw error;\n }\n}\nvar loadConfigFromPackageJson = process.versions.bun ? async function loadConfigFromBunPackageJson(file) {\n const { prettier } = await readBunPackageJson(file);\n return prettier;\n} : async function loadConfigFromPackageJson2(file) {\n const { prettier } = await readJson(file);\n return prettier;\n};\nasync function loadConfigFromPackageYaml(file) {\n const { prettier } = await loadYaml(file);\n return prettier;\n}\nvar parseYaml;\nasync function loadYaml(file) {\n const content = await read_file_default(file);\n if (!parseYaml) {\n ({ __parsePrettierYamlConfig: parseYaml } = await import(\"./plugins/yaml.mjs\"));\n }\n try {\n return parseYaml(content);\n } catch (error) {\n error.message = `YAML Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nasync function loadToml(file) {\n const content = await read_file_default(file);\n try {\n return parse4(content);\n } catch (error) {\n error.message = `TOML Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nasync function loadJson5(file) {\n const content = await read_file_default(file);\n try {\n return dist_default.parse(content);\n } catch (error) {\n error.message = `JSON5 Error in ${file}:\n${error.message}`;\n throw error;\n }\n}\nvar loaders = {\n \".toml\": loadToml,\n \".json5\": loadJson5,\n \".json\": readJson,\n \".js\": importModuleDefault,\n \".mjs\": importModuleDefault,\n \".cjs\": importModuleDefault,\n \".ts\": importModuleDefault,\n \".mts\": importModuleDefault,\n \".cts\": importModuleDefault,\n \".yaml\": loadYaml,\n \".yml\": loadYaml,\n // No extension\n \"\": loadYaml\n};\nvar loaders_default = loaders;\n\n// src/config/prettier-config/config-searcher.js\nvar CONFIG_FILE_NAMES = [\n \"package.json\",\n \"package.yaml\",\n \".prettierrc\",\n \".prettierrc.json\",\n \".prettierrc.yml\",\n \".prettierrc.yaml\",\n \".prettierrc.json5\",\n \".prettierrc.js\",\n \"prettier.config.js\",\n \".prettierrc.ts\",\n \"prettier.config.ts\",\n \".prettierrc.mjs\",\n \"prettier.config.mjs\",\n \".prettierrc.mts\",\n \"prettier.config.mts\",\n \".prettierrc.cjs\",\n \"prettier.config.cjs\",\n \".prettierrc.cts\",\n \"prettier.config.cts\",\n \".prettierrc.toml\"\n];\nasync function filter({ name, path: file }) {\n if (name === \"package.json\") {\n try {\n return Boolean(await loadConfigFromPackageJson(file));\n } catch {\n return false;\n }\n }\n if (name === \"package.yaml\") {\n try {\n return Boolean(await loadConfigFromPackageYaml(file));\n } catch {\n return false;\n }\n }\n return true;\n}\nfunction getSearcher(stopDirectory) {\n return new FileSearcher(CONFIG_FILE_NAMES, { filter, stopDirectory });\n}\nvar config_searcher_default = getSearcher;\n\n// src/config/prettier-config/load-config.js\nimport path8 from \"path\";\n\n// src/utilities/import-from-file.js\nimport { pathToFileURL as pathToFileURL4 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/resolve.js\nimport assert3 from \"assert\";\nimport { statSync, realpathSync } from \"fs\";\nimport process4 from \"process\";\nimport { fileURLToPath as fileURLToPath4, pathToFileURL as pathToFileURL3 } from \"url\";\nimport path7 from \"path\";\nimport { builtinModules } from \"module\";\n\n// node_modules/import-meta-resolve/lib/get-format.js\nimport { fileURLToPath as fileURLToPath3 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/package-json-reader.js\nimport fs3 from \"fs\";\nimport path6 from \"path\";\nimport { fileURLToPath as fileURLToPath2 } from \"url\";\n\n// node_modules/import-meta-resolve/lib/errors.js\nimport v8 from \"v8\";\nimport assert2 from \"assert\";\nimport { format, inspect } from \"util\";\nvar own = {}.hasOwnProperty;\nvar classRegExp = /^([A-Z][a-z\\d]*)+$/;\nvar kTypes = /* @__PURE__ */ new Set([\n \"string\",\n \"function\",\n \"number\",\n \"object\",\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n \"Function\",\n \"Object\",\n \"boolean\",\n \"bigint\",\n \"symbol\"\n]);\nvar codes = {};\nfunction formatList(array2, type = \"and\") {\n return array2.length < 3 ? array2.join(` ${type} `) : `${array2.slice(0, -1).join(\", \")}, ${type} ${array2[array2.length - 1]}`;\n}\nvar messages = /* @__PURE__ */ new Map();\nvar nodeInternalPrefix = \"__node_internal_\";\nvar userStackTraceLimit;\ncodes.ERR_INVALID_ARG_TYPE = createError(\n \"ERR_INVALID_ARG_TYPE\",\n /**\n * @param {string} name\n * @param {Array<string> | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert2.ok(typeof name === \"string\", \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n let message = \"The \";\n if (name.endsWith(\" argument\")) {\n message += `${name} `;\n } else {\n const type = name.includes(\".\") ? \"property\" : \"argument\";\n message += `\"${name}\" ${type} `;\n }\n message += \"must be \";\n const types = [];\n const instances = [];\n const other = [];\n for (const value of expected) {\n assert2.ok(\n typeof value === \"string\",\n \"All expected entries have to be of type string\"\n );\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert2.ok(\n value !== \"object\",\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n if (instances.length > 0) {\n const pos2 = types.indexOf(\"object\");\n if (pos2 !== -1) {\n types.slice(pos2, 1);\n instances.push(\"Object\");\n }\n }\n if (types.length > 0) {\n message += `${types.length > 1 ? \"one of type\" : \"of type\"} ${formatList(\n types,\n \"or\"\n )}`;\n if (instances.length > 0 || other.length > 0) message += \" or \";\n }\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, \"or\")}`;\n if (other.length > 0) message += \" or \";\n }\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, \"or\")}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += \"an \";\n message += `${other[0]}`;\n }\n }\n message += `. Received ${determineSpecificType(actual)}`;\n return message;\n },\n TypeError\n);\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n \"ERR_INVALID_MODULE_SPECIFIER\",\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = void 0) => {\n return `Invalid module \"${request}\" ${reason}${base ? ` imported from ${base}` : \"\"}`;\n },\n TypeError\n);\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n \"ERR_INVALID_PACKAGE_CONFIG\",\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path15, base, message) => {\n return `Invalid package config ${path15}${base ? ` while importing ${base}` : \"\"}${message ? `. ${message}` : \"\"}`;\n },\n Error\n);\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n \"ERR_INVALID_PACKAGE_TARGET\",\n /**\n * @param {string} packagePath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (packagePath, key2, target, isImport = false, base = void 0) => {\n const relatedError = typeof target === \"string\" && !isImport && target.length > 0 && !target.startsWith(\"./\");\n if (key2 === \".\") {\n assert2.ok(isImport === false);\n return `Invalid \"exports\" main target ${JSON.stringify(target)} defined in the package config ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}${relatedError ? '; targets must start with \"./\"' : \"\"}`;\n }\n return `Invalid \"${isImport ? \"imports\" : \"exports\"}\" target ${JSON.stringify(\n target\n )} defined for '${key2}' in the package config ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}${relatedError ? '; targets must start with \"./\"' : \"\"}`;\n },\n Error\n);\ncodes.ERR_MODULE_NOT_FOUND = createError(\n \"ERR_MODULE_NOT_FOUND\",\n /**\n * @param {string} path\n * @param {string} base\n * @param {boolean} [exactUrl]\n */\n (path15, base, exactUrl = false) => {\n return `Cannot find ${exactUrl ? \"module\" : \"package\"} '${path15}' imported from ${base}`;\n },\n Error\n);\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n \"ERR_NETWORK_IMPORT_DISALLOWED\",\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n \"ERR_PACKAGE_IMPORT_NOT_DEFINED\",\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${packagePath ? ` in package ${packagePath}package.json` : \"\"} imported from ${base}`;\n },\n TypeError\n);\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n \"ERR_PACKAGE_PATH_NOT_EXPORTED\",\n /**\n * @param {string} packagePath\n * @param {string} subpath\n * @param {string} [base]\n */\n (packagePath, subpath, base = void 0) => {\n if (subpath === \".\")\n return `No \"exports\" main defined in ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}`;\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${packagePath}package.json${base ? ` imported from ${base}` : \"\"}`;\n },\n Error\n);\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n \"ERR_UNSUPPORTED_DIR_IMPORT\",\n \"Directory import '%s' is not supported resolving ES modules imported from %s\",\n Error\n);\ncodes.ERR_UNSUPPORTED_RESOLVE_REQUEST = createError(\n \"ERR_UNSUPPORTED_RESOLVE_REQUEST\",\n 'Failed to resolve module specifier \"%s\" from \"%s\": Invalid relative URL or base scheme is not hierarchical.',\n TypeError\n);\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n \"ERR_UNKNOWN_FILE_EXTENSION\",\n /**\n * @param {string} extension\n * @param {string} path\n */\n (extension, path15) => {\n return `Unknown file extension \"${extension}\" for ${path15}`;\n },\n TypeError\n);\ncodes.ERR_INVALID_ARG_VALUE = createError(\n \"ERR_INVALID_ARG_VALUE\",\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = \"is invalid\") => {\n let inspected = inspect(value);\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n const type = name.includes(\".\") ? \"property\" : \"argument\";\n return `The ${type} '${name}' ${reason}. Received ${inspected}`;\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\nfunction createError(sym, value, constructor) {\n messages.set(sym, value);\n return makeNodeErrorWithCode(constructor, sym);\n}\nfunction makeNodeErrorWithCode(Base, key2) {\n return NodeError;\n function NodeError(...parameters) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key2, parameters, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key2}]: ${this.message}`;\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n captureLargerStackTrace(error);\n error.code = key2;\n return error;\n }\n}\nfunction isErrorStackTraceLimitWritable() {\n try {\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false;\n }\n } catch {\n }\n const desc = Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\");\n if (desc === void 0) {\n return Object.isExtensible(Error);\n }\n return own.call(desc, \"writable\") && desc.writable !== void 0 ? desc.writable : desc.set !== void 0;\n}\nfunction hideStackFrames(wrappedFunction) {\n const hidden = nodeInternalPrefix + wrappedFunction.name;\n Object.defineProperty(wrappedFunction, \"name\", { value: hidden });\n return wrappedFunction;\n}\nvar captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function(error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n Error.captureStackTrace(error);\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n return error;\n }\n);\nfunction getMessage(key2, parameters, self) {\n const message = messages.get(key2);\n assert2.ok(message !== void 0, \"expected `message` to be found\");\n if (typeof message === \"function\") {\n assert2.ok(\n message.length <= parameters.length,\n // Default options do not count.\n `Code: ${key2}; The provided arguments length (${parameters.length}) does not match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, parameters);\n }\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert2.ok(\n expectedLength === parameters.length,\n `Code: ${key2}; The provided arguments length (${parameters.length}) does not match the required ones (${expectedLength}).`\n );\n if (parameters.length === 0) return message;\n parameters.unshift(message);\n return Reflect.apply(format, null, parameters);\n}\nfunction determineSpecificType(value) {\n if (value === null || value === void 0) {\n return String(value);\n }\n if (typeof value === \"function\" && value.name) {\n return `function ${value.name}`;\n }\n if (typeof value === \"object\") {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`;\n }\n return `${inspect(value, { depth: -1 })}`;\n }\n let inspected = inspect(value, { colors: false });\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n return `type ${typeof value} (${inspected})`;\n}\n\n// node_modules/import-meta-resolve/lib/package-json-reader.js\nvar hasOwnProperty = {}.hasOwnProperty;\nvar { ERR_INVALID_PACKAGE_CONFIG } = codes;\nvar cache = /* @__PURE__ */ new Map();\nfunction read2(jsonPath, { base, specifier }) {\n const existing = cache.get(jsonPath);\n if (existing) {\n return existing;\n }\n let string;\n try {\n string = fs3.readFileSync(path6.toNamespacedPath(jsonPath), \"utf8\");\n } catch (error) {\n const exception = (\n /** @type {ErrnoException} */\n error\n );\n if (exception.code !== \"ENOENT\") {\n throw exception;\n }\n }\n const result = {\n exists: false,\n pjsonPath: jsonPath,\n main: void 0,\n name: void 0,\n type: \"none\",\n // Ignore unknown types for forwards compatibility\n exports: void 0,\n imports: void 0\n };\n if (string !== void 0) {\n let parsed;\n try {\n parsed = JSON.parse(string);\n } catch (error_) {\n const cause = (\n /** @type {ErrnoException} */\n error_\n );\n const error = new ERR_INVALID_PACKAGE_CONFIG(\n jsonPath,\n (base ? `\"${specifier}\" from ` : \"\") + fileURLToPath2(base || specifier),\n cause.message\n );\n error.cause = cause;\n throw error;\n }\n result.exists = true;\n if (hasOwnProperty.call(parsed, \"name\") && typeof parsed.name === \"string\") {\n result.name = parsed.name;\n }\n if (hasOwnProperty.call(parsed, \"main\") && typeof parsed.main === \"string\") {\n result.main = parsed.main;\n }\n if (hasOwnProperty.call(parsed, \"exports\")) {\n result.exports = parsed.exports;\n }\n if (hasOwnProperty.call(parsed, \"imports\")) {\n result.imports = parsed.imports;\n }\n if (hasOwnProperty.call(parsed, \"type\") && (parsed.type === \"commonjs\" || parsed.type === \"module\")) {\n result.type = parsed.type;\n }\n }\n cache.set(jsonPath, result);\n return result;\n}\nfunction getPackageScopeConfig(resolved) {\n let packageJSONUrl = new URL(\"package.json\", resolved);\n while (true) {\n const packageJSONPath2 = packageJSONUrl.pathname;\n if (packageJSONPath2.endsWith(\"node_modules/package.json\")) {\n break;\n }\n const packageConfig = read2(fileURLToPath2(packageJSONUrl), {\n specifier: resolved\n });\n if (packageConfig.exists) {\n return packageConfig;\n }\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL(\"../package.json\", packageJSONUrl);\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {\n break;\n }\n }\n const packageJSONPath = fileURLToPath2(packageJSONUrl);\n return {\n pjsonPath: packageJSONPath,\n exists: false,\n type: \"none\"\n };\n}\nfunction getPackageType(url3) {\n return getPackageScopeConfig(url3).type;\n}\n\n// node_modules/import-meta-resolve/lib/get-format.js\nvar { ERR_UNKNOWN_FILE_EXTENSION } = codes;\nvar hasOwnProperty2 = {}.hasOwnProperty;\nvar extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n \".cjs\": \"commonjs\",\n \".js\": \"module\",\n \".json\": \"json\",\n \".mjs\": \"module\"\n};\nfunction mimeToFormat(mime) {\n if (mime && /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime))\n return \"module\";\n if (mime === \"application/json\") return \"json\";\n return null;\n}\nvar protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n \"data:\": getDataProtocolModuleFormat,\n \"file:\": getFileProtocolModuleFormat,\n \"http:\": getHttpProtocolModuleFormat,\n \"https:\": getHttpProtocolModuleFormat,\n \"node:\"() {\n return \"builtin\";\n }\n};\nfunction getDataProtocolModuleFormat(parsed) {\n const { 1: mime } = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime);\n}\nfunction extname(url3) {\n const pathname = url3.pathname;\n let index = pathname.length;\n while (index--) {\n const code = pathname.codePointAt(index);\n if (code === 47) {\n return \"\";\n }\n if (code === 46) {\n return pathname.codePointAt(index - 1) === 47 ? \"\" : pathname.slice(index);\n }\n }\n return \"\";\n}\nfunction getFileProtocolModuleFormat(url3, _context, ignoreErrors) {\n const value = extname(url3);\n if (value === \".js\") {\n const packageType = getPackageType(url3);\n if (packageType !== \"none\") {\n return packageType;\n }\n return \"commonjs\";\n }\n if (value === \"\") {\n const packageType = getPackageType(url3);\n if (packageType === \"none\" || packageType === \"commonjs\") {\n return \"commonjs\";\n }\n return \"module\";\n }\n const format3 = extensionFormatMap[value];\n if (format3) return format3;\n if (ignoreErrors) {\n return void 0;\n }\n const filepath = fileURLToPath3(url3);\n throw new ERR_UNKNOWN_FILE_EXTENSION(value, filepath);\n}\nfunction getHttpProtocolModuleFormat() {\n}\nfunction defaultGetFormatWithoutErrors(url3, context) {\n const protocol = url3.protocol;\n if (!hasOwnProperty2.call(protocolHandlers, protocol)) {\n return null;\n }\n return protocolHandlers[protocol](url3, context, true) || null;\n}\n\n// node_modules/import-meta-resolve/lib/utils.js\nvar { ERR_INVALID_ARG_VALUE } = codes;\nvar DEFAULT_CONDITIONS = Object.freeze([\"node\", \"import\"]);\nvar DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS;\n}\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET;\n}\nfunction getConditionsSet(conditions) {\n if (conditions !== void 0 && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n \"conditions\",\n conditions,\n \"expected an array\"\n );\n }\n return new Set(conditions);\n }\n return getDefaultConditionsSet();\n}\n\n// node_modules/import-meta-resolve/lib/resolve.js\nvar RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\nvar {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG2,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_RESOLVE_REQUEST\n} = codes;\nvar own2 = {}.hasOwnProperty;\nvar invalidSegmentRegEx = /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\nvar deprecatedInvalidSegmentRegEx = /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\nvar invalidPackageNameRegEx = /^\\.|%|\\\\/;\nvar patternRegEx = /\\*/g;\nvar encodedSeparatorRegEx = /%2f|%5c/i;\nvar emittedPackageWarnings = /* @__PURE__ */ new Set();\nvar doubleSlashRegEx = /[/\\\\]{2}/;\nfunction emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) {\n if (process4.noDeprecation) {\n return;\n }\n const pjsonPath = fileURLToPath4(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process4.emitWarning(\n `Use of deprecated ${double ? \"double slash\" : \"leading or trailing slash matching\"} resolving \"${target}\" for module request \"${request}\" ${request === match ? \"\" : `matched to \"${match}\" `}in the \"${internal ? \"imports\" : \"exports\"}\" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${fileURLToPath4(base)}` : \"\"}.`,\n \"DeprecationWarning\",\n \"DEP0166\"\n );\n}\nfunction emitLegacyIndexDeprecation(url3, packageJsonUrl, base, main) {\n if (process4.noDeprecation) {\n return;\n }\n const format3 = defaultGetFormatWithoutErrors(url3, { parentURL: base.href });\n if (format3 !== \"module\") return;\n const urlPath = fileURLToPath4(url3.href);\n const packagePath = fileURLToPath4(new URL(\".\", packageJsonUrl));\n const basePath = fileURLToPath4(base);\n if (!main) {\n process4.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${packagePath} resolving the main entry point \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n \"DeprecationWarning\",\n \"DEP0151\"\n );\n } else if (path7.resolve(packagePath, main) !== urlPath) {\n process4.emitWarning(\n `Package ${packagePath} has a \"main\" field set to \"${main}\", excluding the full filename and extension to the resolved file at \"${urlPath.slice(\n packagePath.length\n )}\", imported from ${basePath}.\n Automatic extension resolution of the \"main\" field is deprecated for ES modules.`,\n \"DeprecationWarning\",\n \"DEP0151\"\n );\n }\n}\nfunction tryStatSync(path15) {\n try {\n return statSync(path15);\n } catch {\n }\n}\nfunction fileExists(url3) {\n const stats = statSync(url3, { throwIfNoEntry: false });\n const isFile2 = stats ? stats.isFile() : void 0;\n return isFile2 === null || isFile2 === void 0 ? false : isFile2;\n}\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n let guess;\n if (packageConfig.main !== void 0) {\n guess = new URL(packageConfig.main, packageJsonUrl);\n if (fileExists(guess)) return guess;\n const tries2 = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i2 = -1;\n while (++i2 < tries2.length) {\n guess = new URL(tries2[i2], packageJsonUrl);\n if (fileExists(guess)) break;\n guess = void 0;\n }\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess;\n }\n }\n const tries = [\"./index.js\", \"./index.json\", \"./index.node\"];\n let i = -1;\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break;\n guess = void 0;\n }\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess;\n }\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath4(new URL(\".\", packageJsonUrl)),\n fileURLToPath4(base)\n );\n}\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSeparatorRegEx.exec(resolved.pathname) !== null) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath4(base)\n );\n }\n let filePath;\n try {\n filePath = fileURLToPath4(resolved);\n } catch (error) {\n const cause = (\n /** @type {ErrnoException} */\n error\n );\n Object.defineProperty(cause, \"input\", { value: String(resolved) });\n Object.defineProperty(cause, \"module\", { value: String(base) });\n throw cause;\n }\n const stats = tryStatSync(\n filePath.endsWith(\"/\") ? filePath.slice(-1) : filePath\n );\n if (stats && stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath4(base));\n error.url = String(resolved);\n throw error;\n }\n if (!stats || !stats.isFile()) {\n const error = new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath4(base),\n true\n );\n error.url = String(resolved);\n throw error;\n }\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const { search, hash } = resolved;\n resolved = pathToFileURL3(real + (filePath.endsWith(path7.sep) ? \"/\" : \"\"));\n resolved.search = search;\n resolved.hash = hash;\n }\n return resolved;\n}\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath4(new URL(\".\", packageJsonUrl)),\n fileURLToPath4(base)\n );\n}\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath4(new URL(\".\", packageJsonUrl)),\n subpath,\n base && fileURLToPath4(base)\n );\n}\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${internal ? \"imports\" : \"exports\"}\" resolution of ${fileURLToPath4(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath4(base)\n );\n}\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target = typeof target === \"object\" && target !== null ? JSON.stringify(target, null, \"\") : `${target}`;\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath4(new URL(\".\", packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath4(base)\n );\n}\nfunction resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, isPathMap, conditions) {\n if (subpath !== \"\" && !pattern && target[target.length - 1] !== \"/\")\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n if (!target.startsWith(\"./\")) {\n if (internal && !target.startsWith(\"../\") && !target.startsWith(\"/\")) {\n let isURL2 = false;\n try {\n new URL(target);\n isURL2 = true;\n } catch {\n }\n if (!isURL2) {\n const exportTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target + subpath;\n return packageResolve(exportTarget, packageJsonUrl, conditions);\n }\n }\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern ? match.replace(\"*\", () => subpath) : match + subpath;\n const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n }\n }\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL(\".\", packageJsonUrl).pathname;\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base);\n if (subpath === \"\") return resolved;\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern ? match.replace(\"*\", () => subpath) : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n ) : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n if (pattern) {\n return new URL(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n );\n }\n return new URL(subpath, resolved);\n}\nfunction isArrayIndex(key2) {\n const keyNumber = Number(key2);\n if (`${keyNumber}` !== key2) return false;\n return keyNumber >= 0 && keyNumber < 4294967295;\n}\nfunction resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, isPathMap, conditions) {\n if (typeof target === \"string\") {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n }\n if (Array.isArray(target)) {\n const targetList = target;\n if (targetList.length === 0) return null;\n let lastException;\n let i = -1;\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception = (\n /** @type {ErrnoException} */\n error\n );\n lastException = exception;\n if (exception.code === \"ERR_INVALID_PACKAGE_TARGET\") continue;\n throw error;\n }\n if (resolveResult === void 0) continue;\n if (resolveResult === null) {\n lastException = null;\n continue;\n }\n return resolveResult;\n }\n if (lastException === void 0 || lastException === null) {\n return null;\n }\n throw lastException;\n }\n if (typeof target === \"object\" && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n if (isArrayIndex(key2)) {\n throw new ERR_INVALID_PACKAGE_CONFIG2(\n fileURLToPath4(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n );\n }\n }\n i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n if (key2 === \"default\" || conditions && conditions.has(key2)) {\n const conditionalTarget = (\n /** @type {unknown} */\n target[key2]\n );\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === void 0) continue;\n return resolveResult;\n }\n }\n return null;\n }\n if (target === null) {\n return null;\n }\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n );\n}\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === \"string\" || Array.isArray(exports)) return true;\n if (typeof exports !== \"object\" || exports === null) return false;\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let keyIndex = -1;\n while (++keyIndex < keys.length) {\n const key2 = keys[keyIndex];\n const currentIsConditionalSugar = key2 === \"\" || key2[0] !== \".\";\n if (i++ === 0) {\n isConditionalSugar = currentIsConditionalSugar;\n } else if (isConditionalSugar !== currentIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG2(\n fileURLToPath4(packageJsonUrl),\n base,\n `\"exports\" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.`\n );\n }\n }\n return isConditionalSugar;\n}\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n if (process4.noDeprecation) {\n return;\n }\n const pjsonPath = fileURLToPath4(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + \"|\" + match)) return;\n emittedPackageWarnings.add(pjsonPath + \"|\" + match);\n process4.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the \"exports\" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${fileURLToPath4(base)}` : \"\"}. Mapping specifiers ending in \"/\" is no longer supported.`,\n \"DeprecationWarning\",\n \"DEP0155\"\n );\n}\nfunction packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) {\n let exports = packageConfig.exports;\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = { \".\": exports };\n }\n if (own2.call(exports, packageSubpath) && !packageSubpath.includes(\"*\") && !packageSubpath.endsWith(\"/\")) {\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n \"\",\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === void 0) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n }\n return resolveResult;\n }\n let bestMatch = \"\";\n let bestMatchSubpath = \"\";\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n const patternIndex = key2.indexOf(\"*\");\n if (patternIndex !== -1 && packageSubpath.startsWith(key2.slice(0, patternIndex))) {\n if (packageSubpath.endsWith(\"/\")) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n const patternTrailer = key2.slice(patternIndex + 1);\n if (packageSubpath.length >= key2.length && packageSubpath.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key2) === 1 && key2.lastIndexOf(\"*\") === patternIndex) {\n bestMatch = key2;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n if (bestMatch) {\n const target = (\n /** @type {unknown} */\n exports[bestMatch]\n );\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith(\"/\"),\n conditions\n );\n if (resolveResult === null || resolveResult === void 0) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n }\n return resolveResult;\n }\n throw exportsNotFound(packageSubpath, packageJsonUrl, base);\n}\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf(\"*\");\n const bPatternIndex = b.indexOf(\"*\");\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1;\n if (baseLengthB > baseLengthA) return 1;\n if (aPatternIndex === -1) return 1;\n if (bPatternIndex === -1) return -1;\n if (a.length > b.length) return -1;\n if (b.length > a.length) return 1;\n return 0;\n}\nfunction packageImportsResolve(name, base, conditions) {\n if (name === \"#\" || name.startsWith(\"#/\") || name.endsWith(\"/\")) {\n const reason = \"is not a valid internal imports specifier name\";\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath4(base));\n }\n let packageJsonUrl;\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL3(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own2.call(imports, name) && !name.includes(\"*\")) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n \"\",\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== void 0) {\n return resolveResult;\n }\n } else {\n let bestMatch = \"\";\n let bestMatchSubpath = \"\";\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n while (++i < keys.length) {\n const key2 = keys[i];\n const patternIndex = key2.indexOf(\"*\");\n if (patternIndex !== -1 && name.startsWith(key2.slice(0, -1))) {\n const patternTrailer = key2.slice(patternIndex + 1);\n if (name.length >= key2.length && name.endsWith(patternTrailer) && patternKeyCompare(bestMatch, key2) === 1 && key2.lastIndexOf(\"*\") === patternIndex) {\n bestMatch = key2;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== void 0) {\n return resolveResult;\n }\n }\n }\n }\n }\n throw importNotDefined(name, packageJsonUrl, base);\n}\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf(\"/\");\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === \"@\") {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf(\"/\", separatorIndex + 1);\n }\n }\n const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n \"is not a valid package name\",\n fileURLToPath4(base)\n );\n }\n const packageSubpath = \".\" + (separatorIndex === -1 ? \"\" : specifier.slice(separatorIndex));\n return { packageName, packageSubpath, isScoped };\n}\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL(\"node:\" + specifier);\n }\n const { packageName, packageSubpath, isScoped } = parsePackageName(\n specifier,\n base\n );\n const packageConfig = getPackageScopeConfig(base);\n if (packageConfig.exists) {\n const packageJsonUrl2 = pathToFileURL3(packageConfig.pjsonPath);\n if (packageConfig.name === packageName && packageConfig.exports !== void 0 && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl2,\n packageSubpath,\n packageConfig,\n base,\n conditions\n );\n }\n }\n let packageJsonUrl = new URL(\n \"./node_modules/\" + packageName + \"/package.json\",\n base\n );\n let packageJsonPath = fileURLToPath4(packageJsonUrl);\n let lastPath;\n do {\n const stat2 = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat2 || !stat2.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? \"../../../../node_modules/\" : \"../../../node_modules/\") + packageName + \"/package.json\",\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath4(packageJsonUrl);\n continue;\n }\n const packageConfig2 = read2(packageJsonPath, { base, specifier });\n if (packageConfig2.exports !== void 0 && packageConfig2.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig2,\n base,\n conditions\n );\n }\n if (packageSubpath === \".\") {\n return legacyMainResolve(packageJsonUrl, packageConfig2, base);\n }\n return new URL(packageSubpath, packageJsonUrl);\n } while (packageJsonPath.length !== lastPath.length);\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath4(base), false);\n}\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === \".\") {\n if (specifier.length === 1 || specifier[1] === \"/\") return true;\n if (specifier[1] === \".\" && (specifier.length === 2 || specifier[2] === \"/\")) {\n return true;\n }\n }\n return false;\n}\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === \"\") return false;\n if (specifier[0] === \"/\") return true;\n return isRelativeSpecifier(specifier);\n}\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n if (conditions === void 0) {\n conditions = getConditionsSet();\n }\n const protocol = base.protocol;\n const isData = protocol === \"data:\";\n const isRemote = isData || protocol === \"http:\" || protocol === \"https:\";\n let resolved;\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n try {\n resolved = new URL(specifier, base);\n } catch (error_) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error;\n }\n } else if (protocol === \"file:\" && specifier[0] === \"#\") {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL(specifier);\n } catch (error_) {\n if (isRemote && !builtinModules.includes(specifier)) {\n const error = new ERR_UNSUPPORTED_RESOLVE_REQUEST(specifier, base);\n error.cause = error_;\n throw error;\n }\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n assert3.ok(resolved !== void 0, \"expected to be defined\");\n if (resolved.protocol !== \"file:\") {\n return resolved;\n }\n return finalizeResolution(resolved, base, preserveSymlinks);\n}\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n const parentProtocol = parsedParentURL.protocol;\n if (parentProtocol === \"http:\" || parentProtocol === \"https:\") {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n const parsedProtocol = parsed?.protocol;\n if (parsedProtocol && parsedProtocol !== \"https:\" && parsedProtocol !== \"http:\") {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"remote imports cannot import from a local location.\"\n );\n }\n return { url: parsed?.href || \"\" };\n }\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"remote imports cannot import from a local location.\"\n );\n }\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n \"only relative and absolute specifiers are supported.\"\n );\n }\n }\n}\nfunction isURL(self) {\n return Boolean(\n self && typeof self === \"object\" && \"href\" in self && typeof self.href === \"string\" && \"protocol\" in self && typeof self.protocol === \"string\" && self.href && self.protocol\n );\n}\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === void 0) {\n return;\n }\n if (typeof parentURL !== \"string\" && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n \"parentURL\",\n [\"string\", \"URL\"],\n parentURL\n );\n }\n}\nfunction defaultResolve(specifier, context = {}) {\n const { parentURL } = context;\n assert3.ok(parentURL !== void 0, \"expected `parentURL` to be defined\");\n throwIfInvalidParentURL(parentURL);\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL(parentURL);\n } catch {\n }\n }\n let parsed;\n let protocol;\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new URL(specifier, parsedParentURL) : new URL(specifier);\n protocol = parsed.protocol;\n if (protocol === \"data:\") {\n return { url: parsed.href, format: null };\n }\n } catch {\n }\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n if (maybeReturn) return maybeReturn;\n if (protocol === void 0 && parsed) {\n protocol = parsed.protocol;\n }\n if (protocol === \"node:\") {\n return { url: specifier };\n }\n if (parsed && parsed.protocol === \"node:\") return { url: specifier };\n const conditions = getConditionsSet(context.conditions);\n const url3 = moduleResolve(specifier, new URL(parentURL), conditions, false);\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url3.href,\n format: defaultGetFormatWithoutErrors(url3, { parentURL })\n };\n}\n\n// node_modules/import-meta-resolve/index.js\nfunction resolve2(specifier, parent) {\n if (!parent) {\n throw new Error(\n \"Please pass `parent`: `import-meta-resolve` cannot ponyfill that\"\n );\n }\n try {\n return defaultResolve(specifier, { parentURL: parent }).url;\n } catch (error) {\n const exception = (\n /** @type {ErrnoException} */\n error\n );\n if ((exception.code === \"ERR_UNSUPPORTED_DIR_IMPORT\" || exception.code === \"ERR_MODULE_NOT_FOUND\") && typeof exception.url === \"string\") {\n return exception.url;\n }\n throw error;\n }\n}\n\n// src/utilities/import-from-file.js\nfunction importFromFile(specifier, parent) {\n const url3 = resolve2(specifier, pathToFileURL4(parent).href);\n return import(url3);\n}\nvar import_from_file_default = importFromFile;\n\n// src/utilities/require-from-file.js\nimport { createRequire } from \"module\";\nfunction requireFromFile(id, parent) {\n const require2 = createRequire(parent);\n return require2(id);\n}\nvar require_from_file_default = requireFromFile;\n\n// src/config/prettier-config/load-external-config.js\nvar requireErrorCodesShouldBeIgnored = /* @__PURE__ */ new Set([\n \"MODULE_NOT_FOUND\",\n \"ERR_REQUIRE_ESM\",\n \"ERR_PACKAGE_PATH_NOT_EXPORTED\",\n \"ERR_REQUIRE_ASYNC_MODULE\"\n]);\nasync function loadExternalConfig(externalConfig, configFile) {\n try {\n const required = require_from_file_default(externalConfig, configFile);\n if (process.features.require_module && required.__esModule) {\n return required.default;\n }\n return required;\n } catch (error) {\n if (!requireErrorCodesShouldBeIgnored.has(error?.code)) {\n throw error;\n }\n }\n const module = await import_from_file_default(externalConfig, configFile);\n return module.default;\n}\nvar load_external_config_default = loadExternalConfig;\n\n// src/config/prettier-config/load-config.js\nasync function loadConfig(configFile) {\n const { base: fileName, ext: extension } = path8.parse(configFile);\n const load = fileName === \"package.json\" ? loadConfigFromPackageJson : fileName === \"package.yaml\" ? loadConfigFromPackageYaml : loaders_default[extension];\n if (!load) {\n throw new Error(\n `No loader specified for extension \"${extension || \"noExt\"}\"`\n );\n }\n let config = await load(configFile);\n if (!config) {\n return;\n }\n if (typeof config === \"string\") {\n config = await load_external_config_default(config, configFile);\n }\n if (typeof config !== \"object\") {\n throw new TypeError(\n `Config is only allowed to be an object, but received ${typeof config} in \"${configFile}\"`\n );\n }\n delete config.$schema;\n return config;\n}\nvar load_config_default = loadConfig;\n\n// src/config/prettier-config/index.js\nvar loadCache = /* @__PURE__ */ new Map();\nvar searchCache = /* @__PURE__ */ new Map();\nfunction clearPrettierConfigCache() {\n loadCache.clear();\n searchCache.clear();\n}\nfunction loadPrettierConfig(configFile, { shouldCache }) {\n configFile = path9.resolve(configFile);\n if (!shouldCache || !loadCache.has(configFile)) {\n loadCache.set(configFile, load_config_default(configFile));\n }\n return loadCache.get(configFile);\n}\nfunction getSearchFunction(stopDirectory) {\n stopDirectory = stopDirectory ? path9.resolve(stopDirectory) : void 0;\n if (!searchCache.has(stopDirectory)) {\n const searcher2 = config_searcher_default(stopDirectory);\n const searchFunction = searcher2.search.bind(searcher2);\n searchCache.set(stopDirectory, searchFunction);\n }\n return searchCache.get(stopDirectory);\n}\nfunction searchPrettierConfig(startDirectory, options8 = {}) {\n startDirectory = startDirectory ? path9.resolve(startDirectory) : process.cwd();\n const stopDirectory = mockable_default.getPrettierConfigSearchStopDirectory();\n const search = getSearchFunction(stopDirectory);\n return search(startDirectory, { cache: options8.shouldCache });\n}\n\n// src/config/resolve-config.js\nfunction clearCache() {\n clearPrettierConfigCache();\n clearEditorconfigCache();\n}\nfunction loadEditorconfig2(file, options8) {\n if (!file || !options8.editorconfig) {\n return;\n }\n const shouldCache = options8.useCache;\n return loadEditorconfig(file, { shouldCache });\n}\nasync function loadPrettierConfig2(file, options8) {\n const shouldCache = options8.useCache;\n let configFile = options8.config;\n if (!configFile) {\n const directory = file ? path10.dirname(path10.resolve(file)) : void 0;\n configFile = await searchPrettierConfig(directory, { shouldCache });\n }\n if (!configFile) {\n return;\n }\n configFile = toPath(configFile);\n const config = await loadPrettierConfig(configFile, { shouldCache });\n return { config, configFile };\n}\nasync function resolveConfig(fileUrlOrPath, options8) {\n options8 = { useCache: true, ...options8 };\n const filePath = toPath(fileUrlOrPath);\n const [result, editorConfigured] = await Promise.all([\n loadPrettierConfig2(filePath, options8),\n loadEditorconfig2(filePath, options8)\n ]);\n if (!result && !editorConfigured) {\n return null;\n }\n const merged = {\n ...editorConfigured,\n ...mergeOverrides(result, filePath)\n };\n if (Array.isArray(merged.plugins)) {\n merged.plugins = merged.plugins.map(\n (value) => typeof value === \"string\" && value.startsWith(\".\") ? path10.resolve(path10.dirname(result.configFile), value) : value\n );\n }\n return merged;\n}\nasync function resolveConfigFile(fileUrlOrPath) {\n const directory = fileUrlOrPath ? path10.dirname(path10.resolve(toPath(fileUrlOrPath))) : void 0;\n const result = await searchPrettierConfig(directory, { shouldCache: false });\n return result ?? null;\n}\nfunction mergeOverrides(configResult, filePath) {\n const { config, configFile } = configResult || {};\n const { overrides, ...options8 } = config || {};\n if (filePath && overrides) {\n const relativeFilePath = path10.relative(path10.dirname(configFile), filePath);\n for (const override of overrides) {\n if (pathMatchesGlobs(\n relativeFilePath,\n override.files,\n override.excludeFiles\n )) {\n Object.assign(options8, override.options);\n }\n }\n }\n return options8;\n}\nfunction pathMatchesGlobs(filePath, patterns, excludedPatterns) {\n const patternList = Array.isArray(patterns) ? patterns : [patterns];\n const [withSlashes, withoutSlashes] = partition_default(\n patternList,\n (pattern) => pattern.includes(\"/\")\n );\n return import_micromatch.default.isMatch(filePath, withoutSlashes, {\n ignore: excludedPatterns,\n basename: true,\n dot: true\n }) || import_micromatch.default.isMatch(filePath, withSlashes, {\n ignore: excludedPatterns,\n basename: false,\n dot: true\n });\n}\n\n// scripts/build/shims/shared.js\nvar OPTIONAL_OBJECT = 1;\nvar createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => {\n if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) {\n return;\n }\n const implementation = getImplementation.call(object) ?? object[methodName];\n return implementation.apply(object, arguments_);\n};\n\n// scripts/build/shims/method-replace-all.js\nvar stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) {\n if (pattern.global) {\n return this.replace(pattern, replacement);\n }\n return this.split(pattern).join(replacement);\n};\nvar replaceAll = createMethodShim(\"replaceAll\", function() {\n if (typeof this === \"string\") {\n return stringReplaceAll;\n }\n});\nvar method_replace_all_default = replaceAll;\n\n// src/main/core.js\nimport { builders as __doc_builders4, printer as __doc_printer } from \"./doc.mjs\";\n\n// src/universal/assert.js\nimport { equal, ok, strictEqual } from \"assert\";\n\n// src/common/end-of-line.js\nvar OPTION_CR = \"cr\";\nvar OPTION_CRLF = \"crlf\";\nvar OPTION_LF = \"lf\";\nvar DEFAULT_OPTION = OPTION_LF;\nvar CHARACTER_CR = \"\\r\";\nvar CHARACTER_CRLF = \"\\r\\n\";\nvar CHARACTER_LF = \"\\n\";\nvar DEFAULT_EOL = CHARACTER_LF;\nfunction guessEndOfLine(text) {\n const index = text.indexOf(CHARACTER_CR);\n if (index !== -1) {\n return text.charAt(index + 1) === CHARACTER_LF ? OPTION_CRLF : OPTION_CR;\n }\n return DEFAULT_OPTION;\n}\nfunction convertEndOfLineOptionToCharacter(endOfLineOption) {\n return endOfLineOption === OPTION_CR ? CHARACTER_CR : endOfLineOption === OPTION_CRLF ? CHARACTER_CRLF : DEFAULT_EOL;\n}\nvar regexps = /* @__PURE__ */ new Map([[CHARACTER_LF, /\\n/gu], [CHARACTER_CR, /\\r/gu], [CHARACTER_CRLF, /\\r\\n/gu]]);\nfunction countEndOfLineCharacters(text, endOfLineCharacter) {\n const regex = regexps.get(endOfLineCharacter);\n if (false) {\n ok(regex, `Unexpected 'endOfLineCharacter': ${JSON.stringify(endOfLineCharacter)}.`);\n }\n return text.match(regex)?.length ?? 0;\n}\nvar END_OF_LINE_REGEXP = /\\r\\n?/gu;\nfunction normalizeEndOfLine(text) {\n return method_replace_all_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n text,\n END_OF_LINE_REGEXP,\n CHARACTER_LF\n );\n}\n\n// scripts/build/shims/method-at.js\nfunction stringOrArrayAt(index) {\n return this[index < 0 ? this.length + index : index];\n}\nvar at = createMethodShim(\"at\", function() {\n if (Array.isArray(this) || typeof this === \"string\") {\n return stringOrArrayAt;\n }\n});\nvar method_at_default = at;\n\n// src/utilities/noop.js\nvar noop = () => {\n};\nvar noop_default = noop;\n\n// src/document/builders/types.js\nvar DOC_TYPE_CURSOR = (\n /** @type {const} */\n \"cursor\"\n);\nvar DOC_TYPE_INDENT = (\n /** @type {const} */\n \"indent\"\n);\nvar DOC_TYPE_ALIGN = (\n /** @type {const} */\n \"align\"\n);\nvar DOC_TYPE_TRIM = (\n /** @type {const} */\n \"trim\"\n);\nvar DOC_TYPE_GROUP = (\n /** @type {const} */\n \"group\"\n);\nvar DOC_TYPE_FILL = (\n /** @type {const} */\n \"fill\"\n);\nvar DOC_TYPE_IF_BREAK = (\n /** @type {const} */\n \"if-break\"\n);\nvar DOC_TYPE_INDENT_IF_BREAK = (\n /** @type {const} */\n \"indent-if-break\"\n);\nvar DOC_TYPE_LINE_SUFFIX = (\n /** @type {const} */\n \"line-suffix\"\n);\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = (\n /** @type {const} */\n \"line-suffix-boundary\"\n);\nvar DOC_TYPE_LINE = (\n /** @type {const} */\n \"line\"\n);\nvar DOC_TYPE_LABEL = (\n /** @type {const} */\n \"label\"\n);\nvar DOC_TYPE_BREAK_PARENT = (\n /** @type {const} */\n \"break-parent\"\n);\n\n// src/document/utilities/index.js\nfunction inheritLabel(doc2, fn) {\n return doc2.type === DOC_TYPE_LABEL ? {\n ...doc2,\n contents: fn(doc2.contents)\n } : fn(doc2);\n}\n\n// src/document/debug.js\nfunction flattenDoc(doc2) {\n if (!doc2) {\n return \"\";\n }\n if (Array.isArray(doc2)) {\n const res = [];\n for (const part of doc2) {\n if (Array.isArray(part)) {\n res.push(...flattenDoc(part));\n } else {\n const flattened = flattenDoc(part);\n if (flattened !== \"\") {\n res.push(flattened);\n }\n }\n }\n return res;\n }\n if (doc2.type === DOC_TYPE_IF_BREAK) {\n return {\n ...doc2,\n breakContents: flattenDoc(doc2.breakContents),\n flatContents: flattenDoc(doc2.flatContents)\n };\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n return {\n ...doc2,\n contents: flattenDoc(doc2.contents),\n expandedStates: doc2.expandedStates?.map(flattenDoc)\n };\n }\n if (doc2.type === DOC_TYPE_FILL) {\n return { type: \"fill\", parts: doc2.parts.map(flattenDoc) };\n }\n if (doc2.contents) {\n return { ...doc2, contents: flattenDoc(doc2.contents) };\n }\n return doc2;\n}\nfunction printDocToDebug(doc2) {\n const printedSymbols = /* @__PURE__ */ Object.create(null);\n const usedKeysForSymbols = /* @__PURE__ */ new Set();\n return printDoc(flattenDoc(doc2));\n function printDoc(doc3, index, parentParts) {\n if (typeof doc3 === \"string\") {\n return JSON.stringify(doc3);\n }\n if (Array.isArray(doc3)) {\n const printed = doc3.map(printDoc).filter(Boolean);\n return printed.length === 1 ? printed[0] : `[${printed.join(\", \")}]`;\n }\n if (doc3.type === DOC_TYPE_LINE) {\n const withBreakParent = parentParts?.[index + 1]?.type === DOC_TYPE_BREAK_PARENT;\n if (doc3.literal) {\n return withBreakParent ? \"literalline\" : \"literallineWithoutBreakParent\";\n }\n if (doc3.hard) {\n return withBreakParent ? \"hardline\" : \"hardlineWithoutBreakParent\";\n }\n if (doc3.soft) {\n return \"softline\";\n }\n return \"line\";\n }\n if (doc3.type === DOC_TYPE_BREAK_PARENT) {\n const afterHardline = parentParts?.[index - 1]?.type === DOC_TYPE_LINE && parentParts[index - 1].hard;\n return afterHardline ? void 0 : \"breakParent\";\n }\n if (doc3.type === DOC_TYPE_TRIM) {\n return \"trim\";\n }\n if (doc3.type === DOC_TYPE_INDENT) {\n return \"indent(\" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_ALIGN) {\n return doc3.n === Number.NEGATIVE_INFINITY ? \"dedentToRoot(\" + printDoc(doc3.contents) + \")\" : doc3.n < 0 ? \"dedent(\" + printDoc(doc3.contents) + \")\" : doc3.n.type === \"root\" ? \"markAsRoot(\" + printDoc(doc3.contents) + \")\" : \"align(\" + JSON.stringify(doc3.n) + \", \" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_IF_BREAK) {\n return \"ifBreak(\" + printDoc(doc3.breakContents) + (doc3.flatContents ? \", \" + printDoc(doc3.flatContents) : \"\") + (doc3.groupId ? (!doc3.flatContents ? ', \"\"' : \"\") + `, { groupId: ${printGroupId(doc3.groupId)} }` : \"\") + \")\";\n }\n if (doc3.type === DOC_TYPE_INDENT_IF_BREAK) {\n const optionsParts = [];\n if (doc3.negate) {\n optionsParts.push(\"negate: true\");\n }\n if (doc3.groupId) {\n optionsParts.push(`groupId: ${printGroupId(doc3.groupId)}`);\n }\n const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(\", \")} }` : \"\";\n return `indentIfBreak(${printDoc(doc3.contents)}${options8})`;\n }\n if (doc3.type === DOC_TYPE_GROUP) {\n const optionsParts = [];\n if (doc3.break && doc3.break !== \"propagated\") {\n optionsParts.push(\"shouldBreak: true\");\n }\n if (doc3.id) {\n optionsParts.push(`id: ${printGroupId(doc3.id)}`);\n }\n const options8 = optionsParts.length > 0 ? `, { ${optionsParts.join(\", \")} }` : \"\";\n if (doc3.expandedStates) {\n return `conditionalGroup([${doc3.expandedStates.map((part) => printDoc(part)).join(\",\")}]${options8})`;\n }\n return `group(${printDoc(doc3.contents)}${options8})`;\n }\n if (doc3.type === DOC_TYPE_FILL) {\n return `fill([${doc3.parts.map((part) => printDoc(part)).join(\", \")}])`;\n }\n if (doc3.type === DOC_TYPE_LINE_SUFFIX) {\n return \"lineSuffix(\" + printDoc(doc3.contents) + \")\";\n }\n if (doc3.type === DOC_TYPE_LINE_SUFFIX_BOUNDARY) {\n return \"lineSuffixBoundary\";\n }\n if (doc3.type === DOC_TYPE_LABEL) {\n return `label(${JSON.stringify(doc3.label)}, ${printDoc(doc3.contents)})`;\n }\n if (doc3.type === DOC_TYPE_CURSOR) {\n return \"cursor\";\n }\n throw new Error(\"Unknown doc type \" + doc3.type);\n }\n function printGroupId(id) {\n if (typeof id !== \"symbol\") {\n return JSON.stringify(String(id));\n }\n if (id in printedSymbols) {\n return printedSymbols[id];\n }\n const prefix = id.description || \"symbol\";\n for (let counter = 0; ; counter++) {\n const key2 = prefix + (counter > 0 ? ` #${counter}` : \"\");\n if (!usedKeysForSymbols.has(key2)) {\n usedKeysForSymbols.add(key2);\n return printedSymbols[id] = `Symbol.for(${JSON.stringify(key2)})`;\n }\n }\n }\n}\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default = () => {\n 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](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\n// node_modules/get-east-asian-width/lookup.js\nfunction isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n}\nfunction isWide(x) {\n 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 >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || 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 <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && 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 <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || 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 >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || 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 <= 128728 || 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 <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// src/utilities/narrow-emojis.evaluate.js\nvar narrow_emojis_evaluate_default = \"\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194\\u2195\\u2196\\u2197\\u2198\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23F1\\u23F2\\u23F8\\u23F9\\u23FA\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600\\u2601\\u2602\\u2603\\u2604\\u260E\\u2611\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638\\u2639\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694\\u2695\\u2696\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F1\\u26F7\\u26F8\\u26F9\\u2702\\u2708\\u2709\\u270C\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05\\u2B06\\u2B07\";\n\n// src/utilities/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nvar narrowEmojisSet = new Set(narrow_emojis_evaluate_default);\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(\n emoji_regex_default(),\n (match) => narrowEmojisSet.has(match) ? \" \" : \" \"\n );\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n if (codePoint >= 65024 && codePoint <= 65039) {\n continue;\n }\n width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/utilities/get-alignment-size.js\nfunction getAlignmentSize(text, tabWidth, startIndex = 0) {\n let size = 0;\n for (let i = startIndex; i < text.length; ++i) {\n if (text[i] === \"\t\") {\n size = size + tabWidth - size % tabWidth;\n } else {\n size++;\n }\n }\n return size;\n}\nvar get_alignment_size_default = getAlignmentSize;\n\n// src/main/ast-to-doc.js\nimport { builders as __doc_builders3 } from \"./doc.mjs\";\n\n// src/common/ast-path.js\nvar AstPath = class {\n constructor(value) {\n this.stack = [value];\n }\n /** @type {string | null} */\n get key() {\n const {\n stack: stack2,\n siblings\n } = this;\n return method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n stack2,\n siblings === null ? -2 : -4\n ) ?? null;\n }\n /** @type {number | null} */\n get index() {\n return this.siblings === null ? null : method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n this.stack,\n -2\n );\n }\n /** @type {object} */\n get node() {\n return method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n this.stack,\n -1\n );\n }\n /** @type {object | null} */\n get parent() {\n return this.getNode(1);\n }\n /** @type {object | null} */\n get grandparent() {\n return this.getNode(2);\n }\n /** @type {boolean} */\n get isInArray() {\n return this.siblings !== null;\n }\n /** @type {object[] | null} */\n get siblings() {\n const {\n stack: stack2\n } = this;\n const maybeArray = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n stack2,\n -3\n );\n return Array.isArray(maybeArray) ? maybeArray : null;\n }\n /** @type {object | null} */\n get next() {\n const {\n siblings\n } = this;\n return siblings === null ? null : siblings[this.index + 1];\n }\n /** @type {object | null} */\n get previous() {\n const {\n siblings\n } = this;\n return siblings === null ? null : siblings[this.index - 1];\n }\n /** @type {boolean} */\n get isFirst() {\n return this.index === 0;\n }\n /** @type {boolean} */\n get isLast() {\n const {\n siblings,\n index\n } = this;\n return siblings !== null && index === siblings.length - 1;\n }\n /** @type {boolean} */\n get isRoot() {\n return this.stack.length === 1;\n }\n /** @type {object} */\n get root() {\n return this.stack[0];\n }\n /** @type {object[]} */\n get ancestors() {\n return [...this.#getAncestors()];\n }\n // The name of the current property is always the penultimate element of\n // this.stack, and always a string/number/symbol.\n getName() {\n const {\n stack: stack2\n } = this;\n const {\n length\n } = stack2;\n if (length > 1) {\n return method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n stack2,\n -2\n );\n }\n return null;\n }\n // The value of the current property is always the final element of\n // this.stack.\n getValue() {\n return method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n this.stack,\n -1\n );\n }\n getNode(count = 0) {\n const stackIndex = this.#getNodeStackIndex(count);\n return stackIndex === -1 ? null : this.stack[stackIndex];\n }\n getParentNode(count = 0) {\n return this.getNode(count + 1);\n }\n #getNodeStackIndex(count) {\n const {\n stack: stack2\n } = this;\n for (let i = stack2.length - 1; i >= 0; i -= 2) {\n if (!Array.isArray(stack2[i]) && --count < 0) {\n return i;\n }\n }\n return -1;\n }\n // Temporarily push properties named by string arguments given after the\n // callback function onto this.stack, then call the callback with a\n // reference to this (modified) AstPath object. Note that the stack will\n // be restored to its original state after the callback is finished, so it\n // is probably a mistake to retain a reference to the path.\n call(callback, ...names) {\n const {\n stack: stack2\n } = this;\n const {\n length\n } = stack2;\n let value = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n stack2,\n -1\n );\n for (const name of names) {\n value = value?.[name];\n stack2.push(name, value);\n }\n try {\n return callback(this);\n } finally {\n stack2.length = length;\n }\n }\n /**\n * @template {(path: AstPath) => any} T\n * @param {T} callback\n * @param {number} [count=0]\n * @returns {ReturnType<T>}\n */\n callParent(callback, count = 0) {\n const stackIndex = this.#getNodeStackIndex(count + 1);\n const parentValues = this.stack.splice(stackIndex + 1);\n try {\n return callback(this);\n } finally {\n this.stack.push(...parentValues);\n }\n }\n // Similar to AstPath.prototype.call, except that the value obtained by\n // accessing this.getValue()[name1][name2]... should be array. The\n // callback will be called with a reference to this path object for each\n // element of the array.\n each(callback, ...names) {\n const {\n stack: stack2\n } = this;\n const {\n length\n } = stack2;\n let value = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n stack2,\n -1\n );\n for (const name of names) {\n value = value[name];\n stack2.push(name, value);\n }\n try {\n for (let i = 0; i < value.length; ++i) {\n stack2.push(i, value[i]);\n callback(this, i, value);\n stack2.length -= 2;\n }\n } finally {\n stack2.length = length;\n }\n }\n // Similar to AstPath.prototype.each, except that the results of the\n // callback function invocations are stored in an array and returned at\n // the end of the iteration.\n map(callback, ...names) {\n const result = [];\n this.each((path15, index, value) => {\n result[index] = callback(path15, index, value);\n }, ...names);\n return result;\n }\n /**\n * @param {...(\n * | ((node: any, name: string | null, number: number | null) => boolean)\n * | undefined\n * )} predicates\n */\n match(...predicates) {\n let stackPointer = this.stack.length - 1;\n let name = null;\n let node = this.stack[stackPointer--];\n for (const predicate of predicates) {\n if (node === void 0) {\n return false;\n }\n let number = null;\n if (typeof name === \"number\") {\n number = name;\n name = this.stack[stackPointer--];\n node = this.stack[stackPointer--];\n }\n if (predicate && !predicate(node, name, number)) {\n return false;\n }\n name = this.stack[stackPointer--];\n node = this.stack[stackPointer--];\n }\n return true;\n }\n /**\n * Traverses the ancestors of the current node heading toward the tree root\n * until it finds a node that matches the provided predicate function. Will\n * return the first matching ancestor. If no such node exists, returns undefined.\n * @param {(node: any) => boolean} predicate\n * @internal Unstable API. Don't use in plugins for now.\n */\n findAncestor(predicate) {\n for (const node of this.#getAncestors()) {\n if (predicate(node)) {\n return node;\n }\n }\n }\n /**\n * Traverses the ancestors of the current node heading toward the tree root\n * until it finds a node that matches the provided predicate function.\n * returns true if matched node found.\n * @param {(node: any) => boolean} predicate\n * @returns {boolean}\n * @internal Unstable API. Don't use in plugins for now.\n */\n hasAncestor(predicate) {\n for (const node of this.#getAncestors()) {\n if (predicate(node)) {\n return true;\n }\n }\n return false;\n }\n *#getAncestors() {\n const {\n stack: stack2\n } = this;\n for (let index = stack2.length - 3; index >= 0; index -= 2) {\n const value = stack2[index];\n if (!Array.isArray(value)) {\n yield value;\n }\n }\n }\n};\nvar ast_path_default = AstPath;\n\n// src/utilities/is-object.js\nfunction isObject(object) {\n return object !== null && typeof object === \"object\";\n}\nvar is_object_default = isObject;\n\n// src/utilities/skip.js\nfunction skip(characters) {\n return (text, startIndex, options8) => {\n const backwards = Boolean(options8?.backwards);\n if (startIndex === false) {\n return false;\n }\n const { length } = text;\n let cursor2 = startIndex;\n while (cursor2 >= 0 && cursor2 < length) {\n const character = text.charAt(cursor2);\n if (characters instanceof RegExp) {\n if (!characters.test(character)) {\n return cursor2;\n }\n } else if (!characters.includes(character)) {\n return cursor2;\n }\n backwards ? cursor2-- : cursor2++;\n }\n if (cursor2 === -1 || cursor2 === length) {\n return cursor2;\n }\n return false;\n };\n}\nvar skipWhitespace = skip(/\\s/u);\nvar skipSpaces = skip(\" \t\");\nvar skipToLineEnd = skip(\",; \t\");\nvar skipEverythingButNewLine = skip(/[^\\n\\r]/u);\n\n// src/utilities/skip-newline.js\nvar isNewlineCharacter = (character) => character === \"\\n\" || character === \"\\r\" || character === \"\\u2028\" || character === \"\\u2029\";\nfunction skipNewline(text, startIndex, options8) {\n const backwards = Boolean(options8?.backwards);\n if (startIndex === false) {\n return false;\n }\n const character = text.charAt(startIndex);\n if (backwards) {\n if (text.charAt(startIndex - 1) === \"\\r\" && character === \"\\n\") {\n return startIndex - 2;\n }\n if (isNewlineCharacter(character)) {\n return startIndex - 1;\n }\n } else {\n if (character === \"\\r\" && text.charAt(startIndex + 1) === \"\\n\") {\n return startIndex + 2;\n }\n if (isNewlineCharacter(character)) {\n return startIndex + 1;\n }\n }\n return startIndex;\n}\nvar skip_newline_default = skipNewline;\n\n// src/utilities/has-newline.js\nfunction hasNewline(text, startIndex, options8 = {}) {\n const idx = skipSpaces(\n text,\n options8.backwards ? startIndex - 1 : startIndex,\n options8\n );\n const idx2 = skip_newline_default(text, idx, options8);\n return idx !== idx2;\n}\nvar has_newline_default = hasNewline;\n\n// src/utilities/is-non-empty-array.js\nfunction isNonEmptyArray(object) {\n return Array.isArray(object) && object.length > 0;\n}\nvar is_non_empty_array_default = isNonEmptyArray;\n\n// src/utilities/ast.js\nfunction* getChildren(node, options8) {\n const { getVisitorKeys, filter: filter2 = () => true } = options8;\n const isMatchedNode = (node2) => is_object_default(node2) && filter2(node2);\n for (const key2 of getVisitorKeys(node)) {\n const value = node[key2];\n if (Array.isArray(value)) {\n for (const child of value) {\n if (isMatchedNode(child)) {\n yield child;\n }\n }\n } else if (isMatchedNode(value)) {\n yield value;\n }\n }\n}\nfunction* getDescendants(node, options8) {\n const queue = [node];\n for (let index = 0; index < queue.length; index++) {\n const node2 = queue[index];\n for (const child of getChildren(node2, options8)) {\n yield child;\n queue.push(child);\n }\n }\n}\nfunction isLeaf(node, options8) {\n return getChildren(node, options8).next().done;\n}\n\n// src/main/utilities/get-sorted-child-nodes.js\nfunction getSortedChildNodes(node, ancestors, options8) {\n const { cache: childNodesCache2 } = options8;\n if (childNodesCache2.has(node)) {\n return childNodesCache2.get(node);\n }\n const { filter: filter2 } = options8;\n if (!filter2) {\n return [];\n }\n let childAncestors;\n const childNodes = (options8.getChildren?.(node, options8) ?? [\n ...getChildren(node, { getVisitorKeys: options8.getVisitorKeys })\n ]).flatMap((child) => {\n childAncestors ?? (childAncestors = [node, ...ancestors]);\n return filter2(child, childAncestors) ? [child] : getSortedChildNodes(child, childAncestors, options8);\n });\n const { locStart, locEnd } = options8;\n childNodes.sort(\n (nodeA, nodeB) => locStart(nodeA) - locStart(nodeB) || locEnd(nodeA) - locEnd(nodeB)\n );\n childNodesCache2.set(node, childNodes);\n return childNodes;\n}\nvar get_sorted_child_nodes_default = getSortedChildNodes;\n\n// src/main/comments/utilities.js\nfunction describeNodeForDebugging(node) {\n const nodeType = node.type || node.kind || \"(unknown type)\";\n let nodeName = String(\n node.name || node.id && (typeof node.id === \"object\" ? node.id.name : node.id) || node.key && (typeof node.key === \"object\" ? node.key.name : node.key) || node.value && (typeof node.value === \"object\" ? \"\" : String(node.value)) || node.operator || \"\"\n );\n if (nodeName.length > 20) {\n nodeName = nodeName.slice(0, 19) + \"\\u2026\";\n }\n return nodeType + (nodeName ? \" \" + nodeName : \"\");\n}\nfunction addCommentHelper(node, comment) {\n const comments = node.comments ?? (node.comments = []);\n comments.push(comment);\n comment.printed = false;\n comment.nodeDescription = describeNodeForDebugging(node);\n}\nfunction addLeadingComment(node, comment) {\n comment.leading = true;\n comment.trailing = false;\n addCommentHelper(node, comment);\n}\nfunction addDanglingComment(node, comment, marker) {\n comment.leading = false;\n comment.trailing = false;\n if (marker) {\n comment.marker = marker;\n }\n addCommentHelper(node, comment);\n}\nfunction addTrailingComment(node, comment) {\n comment.leading = false;\n comment.trailing = true;\n addCommentHelper(node, comment);\n}\n\n// src/main/comments/attach.js\nvar childNodesCache = /* @__PURE__ */ new WeakMap();\nfunction decorateComment(node, comment, options8, enclosingNode, ancestors = []) {\n const { locStart, locEnd } = options8;\n const commentStart = locStart(comment);\n const commentEnd = locEnd(comment);\n const childNodes = get_sorted_child_nodes_default(node, ancestors, {\n cache: childNodesCache,\n locStart,\n locEnd,\n getVisitorKeys: options8.getVisitorKeys,\n filter: options8.printer.canAttachComment,\n getChildren: options8.printer.getCommentChildNodes\n });\n let precedingNode;\n let followingNode;\n let left = 0;\n let right = childNodes.length;\n while (left < right) {\n const middle = left + right >> 1;\n const child = childNodes[middle];\n const start = locStart(child);\n const end = locEnd(child);\n if (start <= commentStart && commentEnd <= end) {\n return decorateComment(child, comment, options8, child, [\n child,\n ...ancestors\n ]);\n }\n if (end <= commentStart) {\n precedingNode = child;\n left = middle + 1;\n continue;\n }\n if (commentEnd <= start) {\n followingNode = child;\n right = middle;\n continue;\n }\n throw new Error(\"Comment location overlaps with node location\");\n }\n if (enclosingNode?.type === \"TemplateLiteral\") {\n const { quasis } = enclosingNode;\n const commentIndex = findExpressionIndexForComment(\n quasis,\n comment,\n options8\n );\n if (precedingNode && findExpressionIndexForComment(quasis, precedingNode, options8) !== commentIndex) {\n precedingNode = null;\n }\n if (followingNode && findExpressionIndexForComment(quasis, followingNode, options8) !== commentIndex) {\n followingNode = null;\n }\n }\n return { enclosingNode, precedingNode, followingNode };\n}\nvar returnFalse = () => false;\nfunction attachComments(ast, options8) {\n const { comments } = ast;\n delete ast.comments;\n if (!is_non_empty_array_default(comments) || !options8.printer.canAttachComment) {\n return;\n }\n const tiesToBreak = [];\n const {\n printer: {\n features: { experimental_avoidAstMutation: avoidAstMutation },\n handleComments = {}\n },\n originalText: text\n } = options8;\n const {\n ownLine: handleOwnLineComment = returnFalse,\n endOfLine: handleEndOfLineComment = returnFalse,\n remaining: handleRemainingComment = returnFalse\n } = handleComments;\n const decoratedComments = comments.map((comment, index) => ({\n ...decorateComment(ast, comment, options8),\n comment,\n text,\n options: options8,\n ast,\n isLastComment: comments.length - 1 === index\n }));\n for (const [index, context] of decoratedComments.entries()) {\n const {\n comment,\n precedingNode,\n enclosingNode,\n followingNode,\n text: text2,\n options: options9,\n ast: ast2,\n isLastComment\n } = context;\n let args;\n if (avoidAstMutation) {\n args = [context];\n } else {\n comment.enclosingNode = enclosingNode;\n comment.precedingNode = precedingNode;\n comment.followingNode = followingNode;\n args = [comment, text2, options9, ast2, isLastComment];\n }\n if (isOwnLineComment(text2, options9, decoratedComments, index)) {\n comment.placement = \"ownLine\";\n if (handleOwnLineComment(...args)) {\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n } else if (isEndOfLineComment(text2, options9, decoratedComments, index)) {\n comment.placement = \"endOfLine\";\n if (handleEndOfLineComment(...args)) {\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n } else {\n comment.placement = \"remaining\";\n if (handleRemainingComment(...args)) {\n } else if (precedingNode && followingNode) {\n const tieCount = tiesToBreak.length;\n if (tieCount > 0) {\n const lastTie = tiesToBreak[tieCount - 1];\n if (lastTie.followingNode !== followingNode) {\n breakTies(tiesToBreak, options9);\n }\n }\n tiesToBreak.push(context);\n } else if (precedingNode) {\n addTrailingComment(precedingNode, comment);\n } else if (followingNode) {\n addLeadingComment(followingNode, comment);\n } else if (enclosingNode) {\n addDanglingComment(enclosingNode, comment);\n } else {\n addDanglingComment(ast2, comment);\n }\n }\n }\n breakTies(tiesToBreak, options8);\n if (!avoidAstMutation) {\n for (const comment of comments) {\n delete comment.precedingNode;\n delete comment.enclosingNode;\n delete comment.followingNode;\n }\n }\n}\nvar isAllEmptyAndNoLineBreak = (text) => !/[\\S\\n\\u2028\\u2029]/u.test(text);\nfunction isOwnLineComment(text, options8, decoratedComments, commentIndex) {\n const { comment, precedingNode } = decoratedComments[commentIndex];\n const { locStart, locEnd } = options8;\n let start = locStart(comment);\n if (precedingNode) {\n for (let index = commentIndex - 1; index >= 0; index--) {\n const { comment: comment2, precedingNode: currentCommentPrecedingNode } = decoratedComments[index];\n if (currentCommentPrecedingNode !== precedingNode || !isAllEmptyAndNoLineBreak(text.slice(locEnd(comment2), start))) {\n break;\n }\n start = locStart(comment2);\n }\n }\n return has_newline_default(text, start, { backwards: true });\n}\nfunction isEndOfLineComment(text, options8, decoratedComments, commentIndex) {\n const { comment, followingNode } = decoratedComments[commentIndex];\n const { locStart, locEnd } = options8;\n let end = locEnd(comment);\n if (followingNode) {\n for (let index = commentIndex + 1; index < decoratedComments.length; index++) {\n const { comment: comment2, followingNode: currentCommentFollowingNode } = decoratedComments[index];\n if (currentCommentFollowingNode !== followingNode || !isAllEmptyAndNoLineBreak(text.slice(end, locStart(comment2)))) {\n break;\n }\n end = locEnd(comment2);\n }\n }\n return has_newline_default(text, end);\n}\nfunction breakTies(tiesToBreak, options8) {\n const tieCount = tiesToBreak.length;\n if (tieCount === 0) {\n return;\n }\n const { precedingNode, followingNode } = tiesToBreak[0];\n let gapEndPos = options8.locStart(followingNode);\n let indexOfFirstLeadingComment;\n for (indexOfFirstLeadingComment = tieCount; indexOfFirstLeadingComment > 0; --indexOfFirstLeadingComment) {\n const {\n comment,\n precedingNode: currentCommentPrecedingNode,\n followingNode: currentCommentFollowingNode\n } = tiesToBreak[indexOfFirstLeadingComment - 1];\n strictEqual(currentCommentPrecedingNode, precedingNode);\n strictEqual(currentCommentFollowingNode, followingNode);\n const gap = options8.originalText.slice(options8.locEnd(comment), gapEndPos);\n if (options8.printer.isGap?.(gap, options8) ?? /^[\\s(]*$/u.test(gap)) {\n gapEndPos = options8.locStart(comment);\n } else {\n break;\n }\n }\n for (const [i, { comment }] of tiesToBreak.entries()) {\n if (i < indexOfFirstLeadingComment) {\n addTrailingComment(precedingNode, comment);\n } else {\n addLeadingComment(followingNode, comment);\n }\n }\n for (const node of [precedingNode, followingNode]) {\n if (node.comments && node.comments.length > 1) {\n node.comments.sort((a, b) => options8.locStart(a) - options8.locStart(b));\n }\n }\n tiesToBreak.length = 0;\n}\nfunction findExpressionIndexForComment(quasis, comment, options8) {\n const startPos = options8.locStart(comment) - 1;\n for (let i = 1; i < quasis.length; ++i) {\n if (startPos < options8.locStart(quasis[i])) {\n return i - 1;\n }\n }\n return 0;\n}\n\n// src/main/comments/print.js\nimport { builders as __doc_builders } from \"./doc.mjs\";\n\n// src/utilities/is-previous-line-empty.js\nfunction isPreviousLineEmpty(text, startIndex) {\n let idx = startIndex - 1;\n idx = skipSpaces(text, idx, { backwards: true });\n idx = skip_newline_default(text, idx, { backwards: true });\n idx = skipSpaces(text, idx, { backwards: true });\n const idx2 = skip_newline_default(text, idx, { backwards: true });\n return idx !== idx2;\n}\nvar is_previous_line_empty_default = isPreviousLineEmpty;\n\n// src/main/comments/print.js\nvar {\n breakParent,\n hardline,\n indent,\n join: join3,\n line: line2,\n lineSuffix\n} = __doc_builders;\nfunction printComment(path15, options8) {\n const comment = path15.node;\n comment.printed = true;\n return options8.printer.printComment(path15, options8);\n}\nfunction printLeadingComment(path15, options8) {\n const comment = path15.node;\n const parts = [printComment(path15, options8)];\n const {\n printer,\n originalText,\n locStart,\n locEnd\n } = options8;\n const isBlock = printer.isBlockComment?.(comment);\n if (isBlock) {\n const lineBreak = has_newline_default(originalText, locEnd(comment)) ? has_newline_default(originalText, locStart(comment), {\n backwards: true\n }) ? hardline : line2 : \" \";\n parts.push(lineBreak);\n } else {\n parts.push(hardline);\n }\n const index = skip_newline_default(originalText, skipSpaces(originalText, locEnd(comment)));\n if (index !== false && has_newline_default(originalText, index)) {\n parts.push(hardline);\n }\n return parts;\n}\nfunction printTrailingComment(path15, options8, previousComment) {\n const comment = path15.node;\n const printed = printComment(path15, options8);\n const {\n printer,\n originalText,\n locStart\n } = options8;\n const isBlock = printer.isBlockComment?.(comment);\n if (previousComment?.hasLineSuffix && !previousComment?.isBlock || has_newline_default(originalText, locStart(comment), {\n backwards: true\n })) {\n const isLineBeforeEmpty = is_previous_line_empty_default(originalText, locStart(comment));\n return {\n doc: lineSuffix([hardline, isLineBeforeEmpty ? hardline : \"\", printed]),\n isBlock,\n hasLineSuffix: true\n };\n }\n if (!isBlock || previousComment?.hasLineSuffix) {\n return {\n doc: [lineSuffix([\" \", printed]), breakParent],\n isBlock,\n hasLineSuffix: true\n };\n }\n return {\n doc: [\" \", printed],\n isBlock,\n hasLineSuffix: false\n };\n}\nfunction printCommentsSeparately(path15, options8) {\n const value = path15.node;\n if (!value) {\n return {};\n }\n const ignored = options8[Symbol.for(\"printedComments\")];\n const comments = (value.comments || []).filter((comment) => !ignored.has(comment));\n if (comments.length === 0) {\n return {\n leading: \"\",\n trailing: \"\"\n };\n }\n const leadingParts = [];\n const trailingParts = [];\n let printedTrailingComment;\n path15.each(() => {\n const comment = path15.node;\n if (ignored?.has(comment)) {\n return;\n }\n const {\n leading,\n trailing\n } = comment;\n if (leading) {\n leadingParts.push(printLeadingComment(path15, options8));\n } else if (trailing) {\n printedTrailingComment = printTrailingComment(path15, options8, printedTrailingComment);\n trailingParts.push(printedTrailingComment.doc);\n }\n }, \"comments\");\n return {\n leading: leadingParts,\n trailing: trailingParts\n };\n}\nfunction printComments(path15, doc2, options8) {\n const {\n leading,\n trailing\n } = printCommentsSeparately(path15, options8);\n if (!leading && !trailing) {\n return doc2;\n }\n return inheritLabel(doc2, (doc3) => [leading, doc3, trailing]);\n}\nfunction ensureAllCommentsPrinted(options8) {\n const {\n [Symbol.for(\"comments\")]: comments,\n [Symbol.for(\"printedComments\")]: printedComments\n } = options8;\n for (const comment of comments) {\n if (!comment.printed && !printedComments.has(comment)) {\n throw new Error('Comment \"' + comment.value.trim() + '\" was not printed. Please report this error!');\n }\n delete comment.printed;\n }\n}\n\n// src/main/create-print-pre-check-function.js\nvar create_print_pre_check_function_default = true ? () => noop_default : createPrintPreCheckFunction;\n\n// src/main/multiparser.js\nimport { utils as __doc_utils } from \"./doc.mjs\";\n\n// src/main/core-options.evaluate.js\nvar core_options_evaluate_default = {\n \"checkIgnorePragma\": {\n \"category\": \"Special\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Check whether the file's first docblock comment contains '@noprettier' or '@noformat' to determine if it should be formatted.\",\n \"cliCategory\": \"Other\"\n },\n \"cursorOffset\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": -1,\n \"range\": {\n \"start\": -1,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Print (to stderr) where a cursor at the given position would move to after formatting.\",\n \"cliCategory\": \"Editor\"\n },\n \"endOfLine\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": \"lf\",\n \"description\": \"Which end of line characters to apply.\",\n \"choices\": [\n {\n \"value\": \"lf\",\n \"description\": \"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"\n },\n {\n \"value\": \"crlf\",\n \"description\": \"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"\n },\n {\n \"value\": \"cr\",\n \"description\": \"Carriage Return character only (\\\\r), used very rarely\"\n },\n {\n \"value\": \"auto\",\n \"description\": \"Maintain existing\\n(mixed values within one file are normalised by looking at what's used after the first line)\"\n }\n ]\n },\n \"filepath\": {\n \"category\": \"Special\",\n \"type\": \"path\",\n \"description\": \"Specify the input filepath. This will be used to do parser inference.\",\n \"cliName\": \"stdin-filepath\",\n \"cliCategory\": \"Other\",\n \"cliDescription\": \"Path to the file to pretend that stdin comes from.\"\n },\n \"insertPragma\": {\n \"category\": \"Special\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Insert @format pragma into file's first docblock comment.\",\n \"cliCategory\": \"Other\"\n },\n \"parser\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": void 0,\n \"description\": \"Which parser to use.\",\n \"exception\": (value) => typeof value === \"string\" || typeof value === \"function\",\n \"choices\": [\n {\n \"value\": \"flow\",\n \"description\": \"Flow\"\n },\n {\n \"value\": \"babel\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"babel-flow\",\n \"description\": \"Flow\"\n },\n {\n \"value\": \"babel-ts\",\n \"description\": \"TypeScript\"\n },\n {\n \"value\": \"typescript\",\n \"description\": \"TypeScript\"\n },\n {\n \"value\": \"acorn\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"espree\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"meriyah\",\n \"description\": \"JavaScript\"\n },\n {\n \"value\": \"css\",\n \"description\": \"CSS\"\n },\n {\n \"value\": \"less\",\n \"description\": \"Less\"\n },\n {\n \"value\": \"scss\",\n \"description\": \"SCSS\"\n },\n {\n \"value\": \"json\",\n \"description\": \"JSON\"\n },\n {\n \"value\": \"json5\",\n \"description\": \"JSON5\"\n },\n {\n \"value\": \"jsonc\",\n \"description\": \"JSON with Comments\"\n },\n {\n \"value\": \"json-stringify\",\n \"description\": \"JSON.stringify\"\n },\n {\n \"value\": \"graphql\",\n \"description\": \"GraphQL\"\n },\n {\n \"value\": \"markdown\",\n \"description\": \"Markdown\"\n },\n {\n \"value\": \"mdx\",\n \"description\": \"MDX\"\n },\n {\n \"value\": \"vue\",\n \"description\": \"Vue\"\n },\n {\n \"value\": \"yaml\",\n \"description\": \"YAML\"\n },\n {\n \"value\": \"glimmer\",\n \"description\": \"Ember / Handlebars\"\n },\n {\n \"value\": \"html\",\n \"description\": \"HTML\"\n },\n {\n \"value\": \"angular\",\n \"description\": \"Angular\"\n },\n {\n \"value\": \"lwc\",\n \"description\": \"Lightning Web Components\"\n },\n {\n \"value\": \"mjml\",\n \"description\": \"MJML\"\n }\n ]\n },\n \"plugins\": {\n \"type\": \"path\",\n \"array\": true,\n \"default\": [\n {\n \"value\": []\n }\n ],\n \"category\": \"Global\",\n \"description\": \"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",\n \"exception\": (value) => typeof value === \"string\" || typeof value === \"object\",\n \"cliName\": \"plugin\",\n \"cliCategory\": \"Config\"\n },\n \"printWidth\": {\n \"category\": \"Global\",\n \"type\": \"int\",\n \"default\": 80,\n \"description\": \"The line length where Prettier will try wrap.\",\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n }\n },\n \"rangeEnd\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": Infinity,\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Format code ending at a given character offset (exclusive).\\nThe range will extend forwards to the end of the selected statement.\",\n \"cliCategory\": \"Editor\"\n },\n \"rangeStart\": {\n \"category\": \"Special\",\n \"type\": \"int\",\n \"default\": 0,\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n },\n \"description\": \"Format code starting at a given character offset.\\nThe range will extend backwards to the start of the first line containing the selected statement.\",\n \"cliCategory\": \"Editor\"\n },\n \"requirePragma\": {\n \"category\": \"Special\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Require either '@prettier' or '@format' to be present in the file's first docblock comment in order for it to be formatted.\",\n \"cliCategory\": \"Other\"\n },\n \"tabWidth\": {\n \"type\": \"int\",\n \"category\": \"Global\",\n \"default\": 2,\n \"description\": \"Number of spaces per indentation level.\",\n \"range\": {\n \"start\": 0,\n \"end\": Infinity,\n \"step\": 1\n }\n },\n \"useTabs\": {\n \"category\": \"Global\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Indent with tabs instead of spaces.\"\n },\n \"embeddedLanguageFormatting\": {\n \"category\": \"Global\",\n \"type\": \"choice\",\n \"default\": \"auto\",\n \"description\": \"Control how Prettier formats quoted code embedded in the file.\",\n \"choices\": [\n {\n \"value\": \"auto\",\n \"description\": \"Format embedded code if Prettier can automatically identify it.\"\n },\n {\n \"value\": \"off\",\n \"description\": \"Never automatically format embedded code.\"\n }\n ]\n }\n};\n\n// src/main/support.js\nfunction getSupportInfo({\n plugins = [],\n showDeprecated = false\n} = {}) {\n const languages2 = plugins.flatMap((plugin) => plugin.languages ?? []);\n const options8 = [];\n for (const option of normalizeOptionSettings(Object.assign({}, ...plugins.map(({\n options: options9\n }) => options9), core_options_evaluate_default))) {\n if (!showDeprecated && option.deprecated) {\n continue;\n }\n if (Array.isArray(option.choices)) {\n if (!showDeprecated) {\n option.choices = option.choices.filter((choice) => !choice.deprecated);\n }\n if (option.name === \"parser\") {\n option.choices = [...option.choices, ...collectParsersFromLanguages(option.choices, languages2, plugins)];\n }\n }\n option.pluginDefaults = Object.fromEntries(plugins.filter((plugin) => plugin.defaultOptions?.[option.name] !== void 0).map((plugin) => [plugin.name, plugin.defaultOptions[option.name]]));\n options8.push(option);\n }\n return {\n languages: languages2,\n options: options8\n };\n}\nfunction* collectParsersFromLanguages(parserChoices, languages2, plugins) {\n const existingParsers = new Set(parserChoices.map((choice) => choice.value));\n for (const language of languages2) {\n if (language.parsers) {\n for (const parserName of language.parsers) {\n if (!existingParsers.has(parserName)) {\n existingParsers.add(parserName);\n const plugin = plugins.find((plugin2) => plugin2.parsers && Object.prototype.hasOwnProperty.call(plugin2.parsers, parserName));\n let description = language.name;\n if (plugin?.name) {\n description += ` (plugin: ${plugin.name})`;\n }\n yield {\n value: parserName,\n description\n };\n }\n }\n }\n }\n}\nfunction normalizeOptionSettings(settings) {\n const options8 = [];\n for (const [name, originalOption] of Object.entries(settings)) {\n const option = {\n name,\n ...originalOption\n };\n if (Array.isArray(option.default)) {\n option.default = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n option.default,\n -1\n ).value;\n }\n options8.push(option);\n }\n return options8;\n}\n\n// scripts/build/shims/method-to-reversed.js\nvar arrayToReversed = Array.prototype.toReversed ?? function() {\n return [...this].reverse();\n};\nvar toReversed = createMethodShim(\"toReversed\", function() {\n if (Array.isArray(this)) {\n return arrayToReversed;\n }\n});\nvar method_to_reversed_default = toReversed;\n\n// src/universal/index.js\nimport path11 from \"path\";\n\n// src/utilities/get-interpreter.js\nvar import_n_readlines = __toESM(require_readlines(), 1);\nfunction getInterpreter(file) {\n try {\n const liner = new import_n_readlines.default(file);\n const firstLineBuffer = liner.next();\n if (firstLineBuffer === false) {\n return;\n }\n liner.close();\n const firstLine = firstLineBuffer.toString(\"utf8\");\n const m1 = firstLine.match(/^#!\\/(?:usr\\/)?bin\\/env\\s+(\\S+)/u);\n if (m1) {\n return m1[1];\n }\n const m2 = firstLine.match(/^#!\\/(?:usr\\/(?:local\\/)?)?bin\\/(\\S+)/u);\n if (m2) {\n return m2[1];\n }\n } catch {\n }\n}\nvar get_interpreter_default = getInterpreter;\n\n// src/universal/index.js\nimport { fileURLToPath as fileURLToPath5 } from \"url\";\nvar getFileBasename = (file) => {\n try {\n return path11.basename(toPath(file));\n } catch {\n return \"\";\n }\n};\n\n// src/utilities/infer-parser.js\nfunction getLanguageByFileName(languages2, file) {\n if (!file) {\n return;\n }\n const basename = getFileBasename(file).toLowerCase();\n return languages2.find(({\n filenames\n }) => filenames?.some((name) => name.toLowerCase() === basename)) ?? languages2.find(({\n extensions\n }) => extensions?.some((extension) => basename.endsWith(extension)));\n}\nfunction getLanguageByLanguageName(languages2, languageName) {\n if (!languageName) {\n return;\n }\n return languages2.find(({\n name\n }) => name.toLowerCase() === languageName) ?? languages2.find(({\n aliases\n }) => aliases?.includes(languageName)) ?? languages2.find(({\n extensions\n }) => extensions?.includes(`.${languageName}`));\n}\nfunction getLanguageByInterpreterNodejs(languages2, file) {\n if (!file || getFileBasename(file).includes(\".\")) {\n return;\n }\n const languagesWithInterpreters = languages2.filter(({\n interpreters\n }) => is_non_empty_array_default(interpreters));\n if (languagesWithInterpreters.length === 0) {\n return;\n }\n const interpreter = get_interpreter_default(file);\n if (!interpreter) {\n return;\n }\n return languagesWithInterpreters.find(({\n interpreters\n }) => interpreters.includes(interpreter));\n}\nvar getLanguageByInterpreter = false ? void 0 : getLanguageByInterpreterNodejs;\nfunction getLanguageByIsSupported(languages2, file) {\n if (!file) {\n return;\n }\n if (isUrl(file)) {\n try {\n file = fileURLToPath5(file);\n } catch {\n return;\n }\n }\n if (typeof file !== \"string\") {\n return;\n }\n return languages2.find(({\n isSupported\n }) => isSupported?.({\n filepath: file\n }));\n}\nfunction inferParser(options8, fileInfo) {\n const languages2 = method_to_reversed_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n options8.plugins\n ).flatMap((plugin) => (\n // @ts-expect-error -- Safe\n plugin.languages ?? []\n ));\n const language = getLanguageByLanguageName(languages2, fileInfo.language) ?? getLanguageByFileName(languages2, fileInfo.physicalFile) ?? getLanguageByFileName(languages2, fileInfo.file) ?? getLanguageByIsSupported(languages2, fileInfo.physicalFile) ?? getLanguageByIsSupported(languages2, fileInfo.file) ?? getLanguageByInterpreter?.(languages2, fileInfo.physicalFile);\n return language?.parsers[0];\n}\nvar infer_parser_default = inferParser;\n\n// src/main/normalize-options.js\nvar hasDeprecationWarned;\nfunction normalizeOptions(options8, optionInfos, {\n logger = false,\n isCLI = false,\n passThrough = false,\n FlagSchema,\n descriptor\n} = {}) {\n if (isCLI) {\n if (!FlagSchema) {\n throw new Error(\"'FlagSchema' option is required.\");\n }\n if (!descriptor) {\n throw new Error(\"'descriptor' option is required.\");\n }\n } else {\n descriptor = apiDescriptor;\n }\n const unknown = !passThrough ? (key2, value, options9) => {\n const {\n _,\n ...schemas2\n } = options9.schemas;\n return levenUnknownHandler(key2, value, {\n ...options9,\n schemas: schemas2\n });\n } : Array.isArray(passThrough) ? (key2, value) => !passThrough.includes(key2) ? void 0 : {\n [key2]: value\n } : (key2, value) => ({\n [key2]: value\n });\n const schemas = optionInfosToSchemas(optionInfos, {\n isCLI,\n FlagSchema\n });\n const normalizer = new Normalizer(schemas, {\n logger,\n unknown,\n descriptor\n });\n const shouldSuppressDuplicateDeprecationWarnings = logger !== false;\n if (shouldSuppressDuplicateDeprecationWarnings && hasDeprecationWarned) {\n normalizer._hasDeprecationWarned = hasDeprecationWarned;\n }\n const normalized = normalizer.normalize(options8);\n if (shouldSuppressDuplicateDeprecationWarnings) {\n hasDeprecationWarned = normalizer._hasDeprecationWarned;\n }\n return normalized;\n}\nfunction optionInfosToSchemas(optionInfos, {\n isCLI,\n FlagSchema\n}) {\n const schemas = [];\n if (isCLI) {\n schemas.push(AnySchema.create({\n name: \"_\"\n }));\n }\n for (const optionInfo of optionInfos) {\n schemas.push(optionInfoToSchema(optionInfo, {\n isCLI,\n optionInfos,\n FlagSchema\n }));\n if (optionInfo.alias && isCLI) {\n schemas.push(AliasSchema.create({\n // @ts-expect-error\n name: optionInfo.alias,\n sourceName: optionInfo.name\n }));\n }\n }\n return schemas;\n}\nfunction optionInfoToSchema(optionInfo, {\n isCLI,\n optionInfos,\n FlagSchema\n}) {\n const {\n name\n } = optionInfo;\n const parameters = {\n name\n };\n let SchemaConstructor;\n const handlers = {};\n switch (optionInfo.type) {\n case \"int\":\n SchemaConstructor = IntegerSchema;\n if (isCLI) {\n parameters.preprocess = Number;\n }\n break;\n case \"string\":\n SchemaConstructor = StringSchema;\n break;\n case \"choice\":\n SchemaConstructor = ChoiceSchema;\n parameters.choices = optionInfo.choices.map((choiceInfo) => choiceInfo?.redirect ? {\n ...choiceInfo,\n redirect: {\n to: {\n key: optionInfo.name,\n value: choiceInfo.redirect\n }\n }\n } : choiceInfo);\n break;\n case \"boolean\":\n SchemaConstructor = BooleanSchema;\n break;\n case \"flag\":\n SchemaConstructor = FlagSchema;\n parameters.flags = optionInfos.flatMap((optionInfo2) => [optionInfo2.alias, optionInfo2.description && optionInfo2.name, optionInfo2.oppositeDescription && `no-${optionInfo2.name}`].filter(Boolean));\n break;\n case \"path\":\n SchemaConstructor = StringSchema;\n break;\n default:\n throw new Error(`Unexpected type ${optionInfo.type}`);\n }\n if (optionInfo.exception) {\n parameters.validate = (value, schema, utils) => optionInfo.exception(value) || schema.validate(value, utils);\n } else {\n parameters.validate = (value, schema, utils) => value === void 0 || schema.validate(value, utils);\n }\n if (optionInfo.redirect) {\n handlers.redirect = (value) => !value ? void 0 : {\n to: typeof optionInfo.redirect === \"string\" ? optionInfo.redirect : {\n key: optionInfo.redirect.option,\n value: optionInfo.redirect.value\n }\n };\n }\n if (optionInfo.deprecated) {\n handlers.deprecated = true;\n }\n if (isCLI && !optionInfo.array) {\n const originalPreprocess = parameters.preprocess || ((x) => x);\n parameters.preprocess = (value, schema, utils) => schema.preprocess(originalPreprocess(Array.isArray(value) ? method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n value,\n -1\n ) : value), utils);\n }\n return optionInfo.array ? ArraySchema.create({\n ...isCLI ? {\n preprocess: (v) => Array.isArray(v) ? v : [v]\n } : {},\n ...handlers,\n // @ts-expect-error\n valueSchema: SchemaConstructor.create(parameters)\n }) : SchemaConstructor.create({\n ...parameters,\n ...handlers\n });\n}\nvar normalize_options_default = normalizeOptions;\n\n// scripts/build/shims/method-find-last.js\nvar arrayFindLast = Array.prototype.findLast ?? function(callback) {\n for (let index = this.length - 1; index >= 0; index--) {\n const element = this[index];\n if (callback(element, index, this)) {\n return element;\n }\n }\n};\nvar findLast = createMethodShim(\"findLast\", function() {\n if (Array.isArray(this)) {\n return arrayFindLast;\n }\n});\nvar method_find_last_default = findLast;\n\n// src/main/front-matter/embed.js\nimport { builders as __doc_builders2 } from \"./doc.mjs\";\n\n// src/main/front-matter/constants.js\nvar FRONT_MATTER_MARK = Symbol.for(\"PRETTIER_IS_FRONT_MATTER\");\nvar FRONT_MATTER_VISITOR_KEYS = [];\n\n// src/main/front-matter/is-front-matter.js\nfunction isFrontMatter(node) {\n return Boolean(node?.[FRONT_MATTER_MARK]);\n}\nvar is_front_matter_default = isFrontMatter;\n\n// src/main/front-matter/embed.js\nvar {\n hardline: hardline2,\n markAsRoot\n} = __doc_builders2;\nvar SUPPORTED_EMBED_LANGUAGES = /* @__PURE__ */ new Set([\"yaml\", \"toml\"]);\nvar isEmbedFrontMatter = ({\n node\n}) => is_front_matter_default(node) && SUPPORTED_EMBED_LANGUAGES.has(node.language);\nasync function printEmbedFrontMatter(textToDoc2, print, path15, options8) {\n const {\n node\n } = path15;\n const {\n language\n } = node;\n if (!SUPPORTED_EMBED_LANGUAGES.has(language)) {\n return;\n }\n const value = node.value.trim();\n let doc2;\n if (value) {\n const parser = language === \"yaml\" ? language : infer_parser_default(options8, {\n language\n });\n if (!parser) {\n return;\n }\n doc2 = value ? await textToDoc2(value, {\n parser\n }) : \"\";\n } else {\n doc2 = value;\n }\n return markAsRoot([node.startDelimiter, node.explicitLanguage ?? \"\", hardline2, doc2, doc2 ? hardline2 : \"\", node.endDelimiter]);\n}\n\n// src/main/front-matter/clean.js\nfunction clean(original, cloned) {\n if (isEmbedFrontMatter({ node: original })) {\n delete cloned.end;\n delete cloned.raw;\n delete cloned.value;\n }\n return cloned;\n}\nvar clean_default = clean;\n\n// src/main/front-matter/print.js\nfunction printFrontMatter({ node }) {\n return node.raw;\n}\nvar print_default = printFrontMatter;\n\n// src/main/create-get-visitor-keys-function.js\nvar nonTraversableKeys = /* @__PURE__ */ new Set([\n \"tokens\",\n \"comments\",\n \"parent\",\n \"enclosingNode\",\n \"precedingNode\",\n \"followingNode\"\n]);\nvar defaultGetVisitorKeys = (node) => Object.keys(node).filter((key2) => !nonTraversableKeys.has(key2));\nfunction createGetVisitorKeysFunction(printerGetVisitorKeys, supportFrontMatter) {\n const getVisitorKeys = printerGetVisitorKeys ? (node) => printerGetVisitorKeys(node, nonTraversableKeys) : defaultGetVisitorKeys;\n if (!supportFrontMatter) {\n return getVisitorKeys;\n }\n return new Proxy(getVisitorKeys, {\n apply: (target, thisArgument, argumentsList) => is_front_matter_default(argumentsList[0]) ? FRONT_MATTER_VISITOR_KEYS : Reflect.apply(target, thisArgument, argumentsList)\n });\n}\nvar create_get_visitor_keys_function_default = createGetVisitorKeysFunction;\n\n// src/main/parser-and-printer.js\nfunction getParserPluginByParserName(plugins, parserName) {\n if (!parserName) {\n throw new Error(\"parserName is required.\");\n }\n const plugin = method_find_last_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n plugins,\n (plugin2) => plugin2.parsers && Object.prototype.hasOwnProperty.call(plugin2.parsers, parserName)\n );\n if (plugin) {\n return plugin;\n }\n let message = `Couldn't resolve parser \"${parserName}\".`;\n if (false) {\n message += \" Plugins must be explicitly added to the standalone bundle.\";\n }\n throw new ConfigError(message);\n}\nfunction getPrinterPluginByAstFormat(plugins, astFormat) {\n if (!astFormat) {\n throw new Error(\"astFormat is required.\");\n }\n const plugin = method_find_last_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n plugins,\n (plugin2) => plugin2.printers && Object.prototype.hasOwnProperty.call(plugin2.printers, astFormat)\n );\n if (plugin) {\n return plugin;\n }\n let message = `Couldn't find plugin for AST format \"${astFormat}\".`;\n if (false) {\n message += \" Plugins must be explicitly added to the standalone bundle.\";\n }\n throw new ConfigError(message);\n}\nfunction resolveParser({\n plugins,\n parser\n}) {\n const plugin = getParserPluginByParserName(plugins, parser);\n return initParser(plugin, parser);\n}\nfunction initParser(plugin, parserName) {\n const parserOrParserInitFunction = plugin.parsers[parserName];\n return typeof parserOrParserInitFunction === \"function\" ? parserOrParserInitFunction() : parserOrParserInitFunction;\n}\nasync function initPrinter(plugin, astFormat) {\n const printerOrPrinterInitFunction = plugin.printers[astFormat];\n const printer = typeof printerOrPrinterInitFunction === \"function\" ? await printerOrPrinterInitFunction() : printerOrPrinterInitFunction;\n return normalizePrinter(printer);\n}\nvar normalizedPrinters = /* @__PURE__ */ new WeakMap();\nvar PRINTER_NORMALIZED_MARK = Symbol(\"PRINTER_NORMALIZED_MARK\");\nfunction normalizePrinter(printer) {\n if (normalizedPrinters.has(printer)) {\n return normalizedPrinters.get(printer);\n }\n if (false) {\n ok(!printer[PRINTER_NORMALIZED_MARK], \"Unexpected printer normalization\");\n }\n let {\n features,\n getVisitorKeys,\n embed: originalEmbed,\n massageAstNode: originalCleanFunction,\n print: originalPrint,\n ...printerRestProperties\n } = printer;\n features = normalizePrinterFeatures(features);\n const frontMatterSupport = features.experimental_frontMatterSupport;\n getVisitorKeys = create_get_visitor_keys_function_default(\n getVisitorKeys,\n /** frontMatterVisitorKeys */\n frontMatterSupport.massageAstNode || frontMatterSupport.embed || frontMatterSupport.print\n );\n let massageAstNode = originalCleanFunction;\n if (originalCleanFunction && frontMatterSupport.massageAstNode) {\n massageAstNode = new Proxy(originalCleanFunction, {\n apply(target, thisArgument, argumentsList) {\n clean_default(...argumentsList);\n return Reflect.apply(target, thisArgument, argumentsList);\n }\n });\n }\n let embed = originalEmbed;\n if (originalEmbed) {\n let embedGetVisitorKeys;\n embed = new Proxy(originalEmbed, {\n get(target, property, receiver) {\n if (property === \"getVisitorKeys\") {\n embedGetVisitorKeys ?? (embedGetVisitorKeys = originalEmbed.getVisitorKeys ? create_get_visitor_keys_function_default(\n originalEmbed.getVisitorKeys,\n /** frontMatterVisitorKeys */\n frontMatterSupport.massageAstNode || frontMatterSupport.embed\n ) : getVisitorKeys);\n return embedGetVisitorKeys;\n }\n return Reflect.get(target, property, receiver);\n },\n apply: (target, thisArgument, argumentsList) => frontMatterSupport.embed && isEmbedFrontMatter(...argumentsList) ? printEmbedFrontMatter : Reflect.apply(target, thisArgument, argumentsList)\n });\n }\n let print = originalPrint;\n if (frontMatterSupport.print) {\n print = new Proxy(originalPrint, {\n apply(target, thisArgument, argumentsList) {\n const [path15] = argumentsList;\n if (is_front_matter_default(path15.node)) {\n return print_default(path15);\n }\n return Reflect.apply(target, thisArgument, argumentsList);\n }\n });\n }\n const normalizedPrinter = {\n features,\n getVisitorKeys,\n embed,\n massageAstNode,\n print,\n ...printerRestProperties\n };\n if (false) {\n normalizedPrinter[PRINTER_NORMALIZED_MARK] = true;\n }\n normalizedPrinters.set(printer, normalizedPrinter);\n return normalizedPrinter;\n}\nvar PRINTER_FRONT_MATTER_SUPPORT_FEATURES = [\"clean\", \"embed\", \"print\"];\nvar PRINTER_FRONT_MATTER_SUPPORT_OFF = Object.fromEntries(PRINTER_FRONT_MATTER_SUPPORT_FEATURES.map((feature) => [feature, false]));\nfunction normalizePrinterFrontMatterSupport(frontMatterSupport) {\n return {\n ...PRINTER_FRONT_MATTER_SUPPORT_OFF,\n ...frontMatterSupport\n };\n}\nfunction normalizePrinterFeatures(features) {\n return {\n experimental_avoidAstMutation: false,\n ...features,\n experimental_frontMatterSupport: normalizePrinterFrontMatterSupport(features?.experimental_frontMatterSupport)\n };\n}\n\n// src/main/normalize-format-options.js\nvar formatOptionsHiddenDefaults = {\n astFormat: \"estree\",\n printer: {},\n originalText: void 0,\n locStart: null,\n locEnd: null,\n getVisitorKeys: null\n};\nasync function normalizeFormatOptions(options8, opts = {}) {\n const rawOptions = { ...options8 };\n if (!rawOptions.parser) {\n if (!rawOptions.filepath) {\n throw new UndefinedParserError(\n \"No parser and no file path given, couldn't infer a parser.\"\n );\n } else {\n rawOptions.parser = infer_parser_default(rawOptions, {\n physicalFile: rawOptions.filepath\n });\n if (!rawOptions.parser) {\n throw new UndefinedParserError(\n `No parser could be inferred for file \"${rawOptions.filepath}\".`\n );\n }\n }\n }\n const supportOptions = getSupportInfo({\n plugins: options8.plugins,\n showDeprecated: true\n }).options;\n const defaults = {\n ...formatOptionsHiddenDefaults,\n ...Object.fromEntries(\n supportOptions.filter((optionInfo) => optionInfo.default !== void 0).map((option) => [option.name, option.default])\n )\n };\n const parserPlugin = getParserPluginByParserName(\n rawOptions.plugins,\n rawOptions.parser\n );\n const parser = await initParser(parserPlugin, rawOptions.parser);\n rawOptions.astFormat = parser.astFormat;\n rawOptions.locEnd = parser.locEnd;\n rawOptions.locStart = parser.locStart;\n const printerPlugin = parserPlugin.printers?.[parser.astFormat] ? parserPlugin : getPrinterPluginByAstFormat(rawOptions.plugins, parser.astFormat);\n const printer = await initPrinter(printerPlugin, parser.astFormat);\n rawOptions.printer = printer;\n rawOptions.getVisitorKeys = printer.getVisitorKeys;\n const pluginDefaults = printerPlugin.defaultOptions ? Object.fromEntries(\n Object.entries(printerPlugin.defaultOptions).filter(\n ([, value]) => value !== void 0\n )\n ) : {};\n const mixedDefaults = { ...defaults, ...pluginDefaults };\n for (const [k, value] of Object.entries(mixedDefaults)) {\n if (rawOptions[k] === null || rawOptions[k] === void 0) {\n rawOptions[k] = value;\n }\n }\n if (rawOptions.parser === \"json\") {\n rawOptions.trailingComma = \"none\";\n }\n return normalize_options_default(rawOptions, supportOptions, {\n passThrough: Object.keys(formatOptionsHiddenDefaults),\n ...opts\n });\n}\nvar normalize_format_options_default = normalizeFormatOptions;\n\n// src/main/parse.js\nasync function parse5(originalText, options8) {\n const parser = await resolveParser(options8);\n const text = parser.preprocess ? await parser.preprocess(originalText, options8) : originalText;\n options8.originalText = text;\n let ast;\n try {\n ast = await parser.parse(\n text,\n options8,\n // TODO: remove the third argument in v4\n // The duplicated argument is passed as intended, see #10156\n options8\n );\n } catch (error) {\n handleParseError(error, originalText);\n }\n return { text, ast };\n}\nfunction handleParseError(error, text) {\n const { loc } = error;\n if (loc) {\n const codeFrame = codeFrameColumns(text, loc, { highlightCode: true });\n error.message += \"\\n\" + codeFrame;\n error.codeFrame = codeFrame;\n throw error;\n }\n throw error;\n}\nvar parse_default = parse5;\n\n// src/main/multiparser.js\nvar {\n stripTrailingHardline\n} = __doc_utils;\nasync function printEmbeddedLanguages(path15, genericPrint, options8, printAstToDoc2, embeds) {\n if (options8.embeddedLanguageFormatting !== \"auto\") {\n return;\n }\n const {\n printer\n } = options8;\n const {\n embed\n } = printer;\n if (!embed) {\n return;\n }\n if (embed.length > 2) {\n throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/plugins#optional-embed\");\n }\n const {\n hasPrettierIgnore\n } = printer;\n const {\n getVisitorKeys\n } = embed;\n const embedCallResults = [];\n recurse();\n const originalPathStack = path15.stack;\n for (const {\n print,\n node,\n pathStack\n } of embedCallResults) {\n try {\n path15.stack = pathStack;\n const doc2 = await print(textToDocForEmbed, genericPrint, path15, options8);\n if (doc2) {\n embeds.set(node, doc2);\n }\n } catch (error) {\n if (process.env.PRETTIER_DEBUG) {\n throw error;\n }\n }\n }\n path15.stack = originalPathStack;\n function textToDocForEmbed(text, partialNextOptions) {\n return textToDoc(text, partialNextOptions, options8, printAstToDoc2);\n }\n function recurse() {\n const {\n node\n } = path15;\n if (node === null || typeof node !== \"object\" || hasPrettierIgnore?.(path15)) {\n return;\n }\n for (const key2 of getVisitorKeys(node)) {\n if (Array.isArray(node[key2])) {\n path15.each(recurse, key2);\n } else {\n path15.call(recurse, key2);\n }\n }\n const result = embed(path15, options8);\n if (!result) {\n return;\n }\n if (typeof result === \"function\") {\n embedCallResults.push({\n print: result,\n node,\n pathStack: [...path15.stack]\n });\n return;\n }\n if (false) {\n throw new Error(\"`embed` should return an async function instead of Promise.\");\n }\n embeds.set(node, result);\n }\n}\nasync function textToDoc(text, partialNextOptions, parentOptions, printAstToDoc2) {\n const options8 = await normalize_format_options_default({\n ...parentOptions,\n ...partialNextOptions,\n parentParser: parentOptions.parser,\n originalText: text,\n // Improve this if we calculate the relative index\n cursorOffset: void 0,\n rangeStart: void 0,\n rangeEnd: void 0\n }, {\n passThrough: true\n });\n const {\n ast\n } = await parse_default(text, options8);\n const doc2 = await printAstToDoc2(ast, options8);\n return stripTrailingHardline(doc2);\n}\n\n// src/main/print-ignored.js\nfunction printIgnored(path15, options8, printPath, args) {\n const {\n originalText,\n [Symbol.for(\"comments\")]: comments,\n locStart,\n locEnd,\n [Symbol.for(\"printedComments\")]: printedComments\n } = options8;\n const { node } = path15;\n const start = locStart(node);\n const end = locEnd(node);\n for (const comment of comments) {\n if (locStart(comment) >= start && locEnd(comment) <= end) {\n printedComments.add(comment);\n }\n }\n const { printPrettierIgnored } = options8.printer;\n return printPrettierIgnored ? printPrettierIgnored(path15, options8, printPath, args) : originalText.slice(start, end);\n}\nvar print_ignored_default = printIgnored;\n\n// src/main/ast-to-doc.js\nvar {\n cursor\n} = __doc_builders3;\nasync function printAstToDoc(ast, options8) {\n ({\n ast\n } = await prepareToPrint(ast, options8));\n const cache3 = /* @__PURE__ */ new Map();\n const path15 = new ast_path_default(ast);\n const ensurePrintingNode = create_print_pre_check_function_default(options8);\n const embeds = /* @__PURE__ */ new Map();\n await printEmbeddedLanguages(path15, mainPrint, options8, printAstToDoc, embeds);\n const doc2 = await callPluginPrintFunction(path15, options8, mainPrint, void 0, embeds);\n ensureAllCommentsPrinted(options8);\n if (options8.cursorOffset >= 0) {\n if (options8.nodeAfterCursor && !options8.nodeBeforeCursor) {\n return [cursor, doc2];\n }\n if (options8.nodeBeforeCursor && !options8.nodeAfterCursor) {\n return [doc2, cursor];\n }\n }\n return doc2;\n function mainPrint(selector, args) {\n if (selector === void 0 || selector === path15) {\n return mainPrintInternal(args);\n }\n if (Array.isArray(selector)) {\n return path15.call(() => mainPrintInternal(args), ...selector);\n }\n return path15.call(() => mainPrintInternal(args), selector);\n }\n function mainPrintInternal(args) {\n ensurePrintingNode(path15);\n const value = path15.node;\n if (value === void 0 || value === null) {\n return \"\";\n }\n const shouldCache = is_object_default(value) && args === void 0;\n if (shouldCache && cache3.has(value)) {\n return cache3.get(value);\n }\n const doc3 = callPluginPrintFunction(path15, options8, mainPrint, args, embeds);\n if (shouldCache) {\n cache3.set(value, doc3);\n }\n return doc3;\n }\n}\nfunction callPluginPrintFunction(path15, options8, printPath, args, embeds) {\n const {\n node\n } = path15;\n const {\n printer\n } = options8;\n let doc2;\n if (printer.hasPrettierIgnore?.(path15)) {\n doc2 = print_ignored_default(path15, options8, printPath, args);\n } else if (embeds.has(node)) {\n doc2 = embeds.get(node);\n } else {\n doc2 = printer.print(path15, options8, printPath, args);\n }\n switch (node) {\n case options8.cursorNode:\n doc2 = inheritLabel(doc2, (doc3) => [cursor, doc3, cursor]);\n break;\n case options8.nodeBeforeCursor:\n doc2 = inheritLabel(doc2, (doc3) => [doc3, cursor]);\n break;\n case options8.nodeAfterCursor:\n doc2 = inheritLabel(doc2, (doc3) => [cursor, doc3]);\n break;\n }\n if (printer.printComment && !printer.willPrintOwnComments?.(path15, options8)) {\n doc2 = printComments(path15, doc2, options8);\n }\n return doc2;\n}\nasync function prepareToPrint(ast, options8) {\n const comments = ast.comments ?? [];\n options8[Symbol.for(\"comments\")] = comments;\n options8[Symbol.for(\"printedComments\")] = /* @__PURE__ */ new Set();\n attachComments(ast, options8);\n const {\n printer: {\n preprocess\n }\n } = options8;\n ast = preprocess ? await preprocess(ast, options8) : ast;\n return {\n ast,\n comments\n };\n}\n\n// src/main/get-cursor-node.js\nfunction getCursorLocation(ast, options8) {\n const { cursorOffset, locStart, locEnd, getVisitorKeys } = options8;\n const nodeContainsCursor = (node) => locStart(node) <= cursorOffset && locEnd(node) >= cursorOffset;\n let cursorNode = ast;\n const nodesContainingCursor = [ast];\n for (const node of getDescendants(ast, {\n getVisitorKeys,\n filter: nodeContainsCursor\n })) {\n nodesContainingCursor.push(node);\n cursorNode = node;\n }\n if (isLeaf(cursorNode, { getVisitorKeys })) {\n return { cursorNode };\n }\n let nodeBeforeCursor;\n let nodeAfterCursor;\n let nodeBeforeCursorEndIndex = -1;\n let nodeAfterCursorStartIndex = Number.POSITIVE_INFINITY;\n while (nodesContainingCursor.length > 0 && (nodeBeforeCursor === void 0 || nodeAfterCursor === void 0)) {\n cursorNode = nodesContainingCursor.pop();\n const foundBeforeNode = nodeBeforeCursor !== void 0;\n const foundAfterNode = nodeAfterCursor !== void 0;\n for (const node of getChildren(cursorNode, { getVisitorKeys })) {\n if (!foundBeforeNode) {\n const nodeEnd = locEnd(node);\n if (nodeEnd <= cursorOffset && nodeEnd > nodeBeforeCursorEndIndex) {\n nodeBeforeCursor = node;\n nodeBeforeCursorEndIndex = nodeEnd;\n }\n }\n if (!foundAfterNode) {\n const nodeStart = locStart(node);\n if (nodeStart >= cursorOffset && nodeStart < nodeAfterCursorStartIndex) {\n nodeAfterCursor = node;\n nodeAfterCursorStartIndex = nodeStart;\n }\n }\n }\n }\n return {\n nodeBeforeCursor,\n nodeAfterCursor\n };\n}\nvar get_cursor_node_default = getCursorLocation;\n\n// src/main/massage-ast.js\nfunction massageAst(ast, options8) {\n const {\n printer\n } = options8;\n const clean2 = printer.massageAstNode;\n if (!clean2) {\n return ast;\n }\n const {\n getVisitorKeys\n } = printer;\n const {\n ignoredProperties\n } = clean2;\n return recurse(ast);\n function recurse(original, parent) {\n if (!is_object_default(original)) {\n return original;\n }\n if (Array.isArray(original)) {\n return original.map((child) => recurse(child, parent)).filter(Boolean);\n }\n const cloned = {};\n const childrenKeys = new Set(getVisitorKeys(original));\n for (const key2 in original) {\n if (!Object.prototype.hasOwnProperty.call(original, key2) || ignoredProperties?.has(key2)) {\n continue;\n }\n if (childrenKeys.has(key2)) {\n cloned[key2] = recurse(original[key2], original);\n } else {\n cloned[key2] = original[key2];\n }\n }\n const result = clean2(original, cloned, parent);\n if (result === null) {\n return;\n }\n return result ?? cloned;\n }\n}\nvar massage_ast_default = massageAst;\n\n// scripts/build/shims/method-find-last-index.js\nvar arrayFindLastIndex = Array.prototype.findLastIndex ?? function(callback) {\n for (let index = this.length - 1; index >= 0; index--) {\n const element = this[index];\n if (callback(element, index, this)) {\n return index;\n }\n }\n return -1;\n};\nvar findLastIndex = createMethodShim(\"findLastIndex\", function() {\n if (Array.isArray(this)) {\n return arrayFindLastIndex;\n }\n});\nvar method_find_last_index_default = findLastIndex;\n\n// src/main/range.js\nvar isJsonParser = ({\n parser\n}) => parser === \"json\" || parser === \"json5\" || parser === \"jsonc\" || parser === \"json-stringify\";\nfunction findCommonAncestor(startNodeAndAncestors, endNodeAndAncestors) {\n endNodeAndAncestors = new Set(endNodeAndAncestors);\n return startNodeAndAncestors.find((node) => jsonSourceElements.has(node.type) && endNodeAndAncestors.has(node));\n}\nfunction dropRootParents(parents) {\n const index = method_find_last_index_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parents,\n (node) => node.type !== \"Program\" && node.type !== \"File\"\n );\n if (index === -1) {\n return parents;\n }\n return parents.slice(0, index + 1);\n}\nfunction findSiblingAncestors(startNodeAndAncestors, endNodeAndAncestors, {\n locStart,\n locEnd\n}) {\n let [resultStartNode, ...startNodeAncestors] = startNodeAndAncestors;\n let [resultEndNode, ...endNodeAncestors] = endNodeAndAncestors;\n if (resultStartNode === resultEndNode) {\n return [resultStartNode, resultEndNode];\n }\n const startNodeStart = locStart(resultStartNode);\n for (const endAncestor of dropRootParents(endNodeAncestors)) {\n if (locStart(endAncestor) >= startNodeStart) {\n resultEndNode = endAncestor;\n } else {\n break;\n }\n }\n const endNodeEnd = locEnd(resultEndNode);\n for (const startAncestor of dropRootParents(startNodeAncestors)) {\n if (locEnd(startAncestor) <= endNodeEnd) {\n resultStartNode = startAncestor;\n } else {\n break;\n }\n if (resultStartNode === resultEndNode) {\n break;\n }\n }\n return [resultStartNode, resultEndNode];\n}\nfunction findNodeAtOffset(node, offset, options8, predicate, ancestors = [], type) {\n const {\n locStart,\n locEnd\n } = options8;\n const start = locStart(node);\n const end = locEnd(node);\n if (offset > end || offset < start || type === \"rangeEnd\" && offset === start || type === \"rangeStart\" && offset === end) {\n return;\n }\n const nodeAndAncestors = [node, ...ancestors];\n const childNodes = get_sorted_child_nodes_default(node, nodeAndAncestors, {\n cache: childNodesCache,\n locStart,\n locEnd,\n getVisitorKeys: options8.getVisitorKeys,\n // These two property should be removed, since we don't care if it can attach comment\n filter: options8.printer.canAttachComment,\n getChildren: options8.printer.getCommentChildNodes\n });\n for (const child of childNodes) {\n const childAndAncestors = findNodeAtOffset(child, offset, options8, predicate, nodeAndAncestors, type);\n if (childAndAncestors) {\n return childAndAncestors;\n }\n }\n if (predicate(node, ancestors[0])) {\n return nodeAndAncestors;\n }\n}\nfunction isJsSourceElement(type, parentType) {\n return parentType !== \"DeclareExportDeclaration\" && type !== \"TypeParameterDeclaration\" && (type === \"Directive\" || type === \"TypeAlias\" || type === \"TSExportAssignment\" || type.startsWith(\"Declare\") || type.startsWith(\"TSDeclare\") || type.endsWith(\"Statement\") || type.endsWith(\"Declaration\"));\n}\nvar jsonSourceElements = /* @__PURE__ */ new Set([\"JsonRoot\", \"ObjectExpression\", \"ArrayExpression\", \"StringLiteral\", \"NumericLiteral\", \"BooleanLiteral\", \"NullLiteral\", \"UnaryExpression\", \"TemplateLiteral\"]);\nvar graphqlSourceElements = /* @__PURE__ */ new Set([\"OperationDefinition\", \"FragmentDefinition\", \"VariableDefinition\", \"TypeExtensionDefinition\", \"ObjectTypeDefinition\", \"FieldDefinition\", \"DirectiveDefinition\", \"EnumTypeDefinition\", \"EnumValueDefinition\", \"InputValueDefinition\", \"InputObjectTypeDefinition\", \"SchemaDefinition\", \"OperationTypeDefinition\", \"InterfaceTypeDefinition\", \"UnionTypeDefinition\", \"ScalarTypeDefinition\"]);\nfunction isSourceElement(opts, node, parentNode) {\n if (!node) {\n return false;\n }\n switch (opts.parser) {\n case \"flow\":\n case \"hermes\":\n case \"babel\":\n case \"babel-flow\":\n case \"babel-ts\":\n case \"typescript\":\n case \"acorn\":\n case \"espree\":\n case \"meriyah\":\n case \"oxc\":\n case \"oxc-ts\":\n case \"__babel_estree\":\n return isJsSourceElement(node.type, parentNode?.type);\n case \"json\":\n case \"json5\":\n case \"jsonc\":\n case \"json-stringify\":\n return jsonSourceElements.has(node.type);\n case \"graphql\":\n return graphqlSourceElements.has(node.kind);\n case \"vue\":\n return node.tag !== \"root\";\n }\n return false;\n}\nfunction calculateRange(text, opts, ast) {\n let {\n rangeStart: start,\n rangeEnd: end,\n locStart,\n locEnd\n } = opts;\n ok(end > start);\n const firstNonWhitespaceCharacterIndex = text.slice(start, end).search(/\\S/u);\n const isAllWhitespace = firstNonWhitespaceCharacterIndex === -1;\n if (!isAllWhitespace) {\n start += firstNonWhitespaceCharacterIndex;\n for (; end > start; --end) {\n if (/\\S/u.test(text[end - 1])) {\n break;\n }\n }\n }\n const startNodeAndAncestors = findNodeAtOffset(ast, start, opts, (node, parentNode) => isSourceElement(opts, node, parentNode), [], \"rangeStart\");\n if (!startNodeAndAncestors) {\n return;\n }\n const endNodeAndAncestors = (\n // No need find Node at `end`, it will be the same as `startNodeAndAncestors`\n isAllWhitespace ? startNodeAndAncestors : findNodeAtOffset(ast, end, opts, (node) => isSourceElement(opts, node), [], \"rangeEnd\")\n );\n if (!endNodeAndAncestors) {\n return;\n }\n let startNode;\n let endNode;\n if (isJsonParser(opts)) {\n const commonAncestor = findCommonAncestor(startNodeAndAncestors, endNodeAndAncestors);\n startNode = commonAncestor;\n endNode = commonAncestor;\n } else {\n [startNode, endNode] = findSiblingAncestors(startNodeAndAncestors, endNodeAndAncestors, opts);\n }\n return [Math.min(locStart(startNode), locStart(endNode)), Math.max(locEnd(startNode), locEnd(endNode))];\n}\n\n// src/main/core.js\nvar {\n addAlignmentToDoc,\n hardline: hardline3\n} = __doc_builders4;\nvar {\n printDocToString: printDocToStringWithoutNormalizeOptions\n} = __doc_printer;\nvar BOM = \"\\uFEFF\";\nvar CURSOR = Symbol(\"cursor\");\nasync function coreFormat(originalText, opts, addAlignmentSize = 0) {\n if (!originalText || originalText.trim().length === 0) {\n return {\n formatted: \"\",\n cursorOffset: -1,\n comments: []\n };\n }\n const {\n ast,\n text\n } = await parse_default(originalText, opts);\n if (opts.cursorOffset >= 0) {\n opts = {\n ...opts,\n ...get_cursor_node_default(ast, opts)\n };\n }\n let doc2 = await printAstToDoc(ast, opts, addAlignmentSize);\n if (addAlignmentSize > 0) {\n doc2 = addAlignmentToDoc([hardline3, doc2], addAlignmentSize, opts.tabWidth);\n }\n const result = printDocToStringWithoutNormalizeOptions(doc2, opts);\n if (addAlignmentSize > 0) {\n const trimmed = result.formatted.trim();\n if (result.cursorNodeStart !== void 0) {\n result.cursorNodeStart -= result.formatted.indexOf(trimmed);\n if (result.cursorNodeStart < 0) {\n result.cursorNodeStart = 0;\n result.cursorNodeText = result.cursorNodeText.trimStart();\n }\n if (result.cursorNodeStart + result.cursorNodeText.length > trimmed.length) {\n result.cursorNodeText = result.cursorNodeText.trimEnd();\n }\n }\n result.formatted = trimmed + convertEndOfLineOptionToCharacter(opts.endOfLine);\n }\n const comments = opts[Symbol.for(\"comments\")];\n if (opts.cursorOffset >= 0) {\n let oldCursorRegionStart;\n let oldCursorRegionText;\n let newCursorRegionStart;\n let newCursorRegionText;\n if ((opts.cursorNode || opts.nodeBeforeCursor || opts.nodeAfterCursor) && result.cursorNodeText) {\n newCursorRegionStart = result.cursorNodeStart;\n newCursorRegionText = result.cursorNodeText;\n if (opts.cursorNode) {\n oldCursorRegionStart = opts.locStart(opts.cursorNode);\n oldCursorRegionText = text.slice(oldCursorRegionStart, opts.locEnd(opts.cursorNode));\n } else {\n if (!opts.nodeBeforeCursor && !opts.nodeAfterCursor) {\n throw new Error(\"Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor\");\n }\n oldCursorRegionStart = opts.nodeBeforeCursor ? opts.locEnd(opts.nodeBeforeCursor) : 0;\n const oldCursorRegionEnd = opts.nodeAfterCursor ? opts.locStart(opts.nodeAfterCursor) : text.length;\n oldCursorRegionText = text.slice(oldCursorRegionStart, oldCursorRegionEnd);\n }\n } else {\n oldCursorRegionStart = 0;\n oldCursorRegionText = text;\n newCursorRegionStart = 0;\n newCursorRegionText = result.formatted;\n }\n const cursorOffsetRelativeToOldCursorRegionStart = opts.cursorOffset - oldCursorRegionStart;\n if (oldCursorRegionText === newCursorRegionText) {\n return {\n formatted: result.formatted,\n cursorOffset: newCursorRegionStart + cursorOffsetRelativeToOldCursorRegionStart,\n comments\n };\n }\n const oldCursorNodeCharArray = oldCursorRegionText.split(\"\");\n oldCursorNodeCharArray.splice(cursorOffsetRelativeToOldCursorRegionStart, 0, CURSOR);\n const newCursorNodeCharArray = newCursorRegionText.split(\"\");\n const cursorNodeDiff = diffArrays(oldCursorNodeCharArray, newCursorNodeCharArray);\n let cursorOffset = newCursorRegionStart;\n for (const entry of cursorNodeDiff) {\n if (entry.removed) {\n if (entry.value.includes(CURSOR)) {\n break;\n }\n } else {\n cursorOffset += entry.count;\n }\n }\n return {\n formatted: result.formatted,\n cursorOffset,\n comments\n };\n }\n return {\n formatted: result.formatted,\n cursorOffset: -1,\n comments\n };\n}\nasync function formatRange(originalText, opts) {\n const {\n ast,\n text\n } = await parse_default(originalText, opts);\n const [rangeStart, rangeEnd] = calculateRange(text, opts, ast) ?? [0, 0];\n const rangeString = text.slice(rangeStart, rangeEnd);\n const rangeStart2 = Math.min(rangeStart, text.lastIndexOf(\"\\n\", rangeStart) + 1);\n const indentString = text.slice(rangeStart2, rangeStart).match(/^\\s*/u)[0];\n const alignmentSize = get_alignment_size_default(indentString, opts.tabWidth);\n const rangeResult = await coreFormat(rangeString, {\n ...opts,\n rangeStart: 0,\n rangeEnd: Number.POSITIVE_INFINITY,\n // Track the cursor offset only if it's within our range\n cursorOffset: opts.cursorOffset > rangeStart && opts.cursorOffset <= rangeEnd ? opts.cursorOffset - rangeStart : -1,\n // Always use `lf` to format, we'll replace it later\n endOfLine: \"lf\"\n }, alignmentSize);\n const rangeTrimmed = rangeResult.formatted.trimEnd();\n let {\n cursorOffset\n } = opts;\n if (cursorOffset > rangeEnd) {\n cursorOffset += rangeTrimmed.length - rangeString.length;\n } else if (rangeResult.cursorOffset >= 0) {\n cursorOffset = rangeResult.cursorOffset + rangeStart;\n }\n let formatted = text.slice(0, rangeStart) + rangeTrimmed + text.slice(rangeEnd);\n if (opts.endOfLine !== \"lf\") {\n const eol = convertEndOfLineOptionToCharacter(opts.endOfLine);\n if (cursorOffset >= 0 && eol === \"\\r\\n\") {\n cursorOffset += countEndOfLineCharacters(formatted.slice(0, cursorOffset), \"\\n\");\n }\n formatted = method_replace_all_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n formatted,\n \"\\n\",\n eol\n );\n }\n return {\n formatted,\n cursorOffset,\n comments: rangeResult.comments\n };\n}\nfunction ensureIndexInText(text, index, defaultValue) {\n if (typeof index !== \"number\" || Number.isNaN(index) || index < 0 || index > text.length) {\n return defaultValue;\n }\n return index;\n}\nfunction normalizeIndexes(text, options8) {\n let {\n cursorOffset,\n rangeStart,\n rangeEnd\n } = options8;\n cursorOffset = ensureIndexInText(text, cursorOffset, -1);\n rangeStart = ensureIndexInText(text, rangeStart, 0);\n rangeEnd = ensureIndexInText(text, rangeEnd, text.length);\n return {\n ...options8,\n cursorOffset,\n rangeStart,\n rangeEnd\n };\n}\nfunction normalizeInputAndOptions(text, options8) {\n let {\n cursorOffset,\n rangeStart,\n rangeEnd,\n endOfLine\n } = normalizeIndexes(text, options8);\n const hasBOM = text.charAt(0) === BOM;\n if (hasBOM) {\n text = text.slice(1);\n cursorOffset--;\n rangeStart--;\n rangeEnd--;\n }\n if (endOfLine === \"auto\") {\n endOfLine = guessEndOfLine(text);\n }\n if (text.includes(\"\\r\")) {\n const countCrlfBefore = (index) => countEndOfLineCharacters(text.slice(0, Math.max(index, 0)), \"\\r\\n\");\n cursorOffset -= countCrlfBefore(cursorOffset);\n rangeStart -= countCrlfBefore(rangeStart);\n rangeEnd -= countCrlfBefore(rangeEnd);\n text = normalizeEndOfLine(text);\n }\n return {\n hasBOM,\n text,\n options: normalizeIndexes(text, {\n ...options8,\n cursorOffset,\n rangeStart,\n rangeEnd,\n endOfLine\n })\n };\n}\nasync function hasPragma(text, options8) {\n const selectedParser = await resolveParser(options8);\n return !selectedParser.hasPragma || selectedParser.hasPragma(text);\n}\nasync function hasIgnorePragma(text, options8) {\n const selectedParser = await resolveParser(options8);\n return selectedParser.hasIgnorePragma?.(text);\n}\nasync function formatWithCursor(originalText, originalOptions) {\n let {\n hasBOM,\n text,\n options: options8\n } = normalizeInputAndOptions(originalText, await normalize_format_options_default(originalOptions));\n if (options8.rangeStart >= options8.rangeEnd && text !== \"\" || options8.requirePragma && !await hasPragma(text, options8) || options8.checkIgnorePragma && await hasIgnorePragma(text, options8)) {\n return {\n formatted: originalText,\n cursorOffset: originalOptions.cursorOffset,\n comments: []\n };\n }\n let result;\n if (options8.rangeStart > 0 || options8.rangeEnd < text.length) {\n result = await formatRange(text, options8);\n } else {\n if (!options8.requirePragma && options8.insertPragma && options8.printer.insertPragma && !await hasPragma(text, options8)) {\n text = options8.printer.insertPragma(text);\n }\n result = await coreFormat(text, options8);\n }\n if (hasBOM) {\n result.formatted = BOM + result.formatted;\n if (result.cursorOffset >= 0) {\n result.cursorOffset++;\n }\n }\n return result;\n}\nasync function parse6(originalText, originalOptions, devOptions) {\n const {\n text,\n options: options8\n } = normalizeInputAndOptions(originalText, await normalize_format_options_default(originalOptions));\n const parsed = await parse_default(text, options8);\n if (devOptions) {\n if (devOptions.preprocessForPrint) {\n parsed.ast = await prepareToPrint(parsed.ast, options8);\n }\n if (devOptions.massage) {\n parsed.ast = massage_ast_default(parsed.ast, options8);\n }\n }\n return parsed;\n}\nasync function formatAst(ast, options8) {\n options8 = await normalize_format_options_default(options8);\n const doc2 = await printAstToDoc(ast, options8);\n return printDocToStringWithoutNormalizeOptions(doc2, options8);\n}\nasync function formatDoc(doc2, options8) {\n const text = printDocToDebug(doc2);\n const {\n formatted\n } = await formatWithCursor(text, {\n ...options8,\n parser: \"__js_expression\"\n });\n return formatted;\n}\nasync function printToDoc(originalText, options8) {\n options8 = await normalize_format_options_default(options8);\n const {\n ast\n } = await parse_default(originalText, options8);\n if (options8.cursorOffset >= 0) {\n options8 = {\n ...options8,\n ...get_cursor_node_default(ast, options8)\n };\n }\n return printAstToDoc(ast, options8);\n}\nasync function printDocToString(doc2, options8) {\n return printDocToStringWithoutNormalizeOptions(doc2, await normalize_format_options_default(options8));\n}\n\n// src/main/option-categories.js\nvar option_categories_exports = {};\n__export(option_categories_exports, {\n CATEGORY_CONFIG: () => CATEGORY_CONFIG,\n CATEGORY_EDITOR: () => CATEGORY_EDITOR,\n CATEGORY_FORMAT: () => CATEGORY_FORMAT,\n CATEGORY_GLOBAL: () => CATEGORY_GLOBAL,\n CATEGORY_OTHER: () => CATEGORY_OTHER,\n CATEGORY_OUTPUT: () => CATEGORY_OUTPUT,\n CATEGORY_SPECIAL: () => CATEGORY_SPECIAL\n});\nvar CATEGORY_CONFIG = \"Config\";\nvar CATEGORY_EDITOR = \"Editor\";\nvar CATEGORY_FORMAT = \"Format\";\nvar CATEGORY_OTHER = \"Other\";\nvar CATEGORY_OUTPUT = \"Output\";\nvar CATEGORY_GLOBAL = \"Global\";\nvar CATEGORY_SPECIAL = \"Special\";\n\n// src/language-css/languages.evaluate.js\nvar languages_evaluate_default = [\n {\n \"name\": \"CSS\",\n \"type\": \"markup\",\n \"aceMode\": \"css\",\n \"extensions\": [\n \".css\",\n \".wxss\"\n ],\n \"tmScope\": \"source.css\",\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/css\",\n \"parsers\": [\n \"css\"\n ],\n \"vscodeLanguageIds\": [\n \"css\"\n ],\n \"linguistLanguageId\": 50\n },\n {\n \"name\": \"PostCSS\",\n \"type\": \"markup\",\n \"aceMode\": \"text\",\n \"extensions\": [\n \".pcss\",\n \".postcss\"\n ],\n \"tmScope\": \"source.postcss\",\n \"group\": \"CSS\",\n \"parsers\": [\n \"css\"\n ],\n \"vscodeLanguageIds\": [\n \"postcss\"\n ],\n \"linguistLanguageId\": 262764437\n },\n {\n \"name\": \"Less\",\n \"type\": \"markup\",\n \"aceMode\": \"less\",\n \"extensions\": [\n \".less\"\n ],\n \"tmScope\": \"source.css.less\",\n \"aliases\": [\n \"less-css\"\n ],\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/x-less\",\n \"parsers\": [\n \"less\"\n ],\n \"vscodeLanguageIds\": [\n \"less\"\n ],\n \"linguistLanguageId\": 198\n },\n {\n \"name\": \"SCSS\",\n \"type\": \"markup\",\n \"aceMode\": \"scss\",\n \"extensions\": [\n \".scss\"\n ],\n \"tmScope\": \"source.css.scss\",\n \"codemirrorMode\": \"css\",\n \"codemirrorMimeType\": \"text/x-scss\",\n \"parsers\": [\n \"scss\"\n ],\n \"vscodeLanguageIds\": [\n \"scss\"\n ],\n \"linguistLanguageId\": 329\n }\n];\n\n// src/common/common-options.evaluate.js\nvar common_options_evaluate_default = {\n \"bracketSpacing\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": true,\n \"description\": \"Print spaces between brackets.\",\n \"oppositeDescription\": \"Do not print spaces between brackets.\"\n },\n \"objectWrap\": {\n \"category\": \"Common\",\n \"type\": \"choice\",\n \"default\": \"preserve\",\n \"description\": \"How to wrap object literals.\",\n \"choices\": [\n {\n \"value\": \"preserve\",\n \"description\": \"Keep as multi-line, if there is a newline between the opening brace and first property.\"\n },\n {\n \"value\": \"collapse\",\n \"description\": \"Fit to a single line when possible.\"\n }\n ]\n },\n \"singleQuote\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Use single quotes instead of double quotes.\"\n },\n \"proseWrap\": {\n \"category\": \"Common\",\n \"type\": \"choice\",\n \"default\": \"preserve\",\n \"description\": \"How to wrap prose.\",\n \"choices\": [\n {\n \"value\": \"always\",\n \"description\": \"Wrap prose if it exceeds the print width.\"\n },\n {\n \"value\": \"never\",\n \"description\": \"Do not wrap prose.\"\n },\n {\n \"value\": \"preserve\",\n \"description\": \"Wrap prose as-is.\"\n }\n ]\n },\n \"bracketSameLine\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Put > of opening tags on the last line instead of on a new line.\"\n },\n \"singleAttributePerLine\": {\n \"category\": \"Common\",\n \"type\": \"boolean\",\n \"default\": false,\n \"description\": \"Enforce single attribute per line in HTML, Vue and JSX.\"\n }\n};\n\n// src/language-css/options.js\nvar options = {\n singleQuote: common_options_evaluate_default.singleQuote\n};\nvar options_default = options;\n\n// src/language-graphql/languages.evaluate.js\nvar languages_evaluate_default2 = [\n {\n \"name\": \"GraphQL\",\n \"type\": \"data\",\n \"aceMode\": \"graphqlschema\",\n \"extensions\": [\n \".graphql\",\n \".gql\",\n \".graphqls\"\n ],\n \"tmScope\": \"source.graphql\",\n \"parsers\": [\n \"graphql\"\n ],\n \"vscodeLanguageIds\": [\n \"graphql\"\n ],\n \"linguistLanguageId\": 139\n }\n];\n\n// src/language-graphql/options.js\nvar options2 = {\n bracketSpacing: common_options_evaluate_default.bracketSpacing\n};\nvar options_default2 = options2;\n\n// src/language-handlebars/languages.evaluate.js\nvar languages_evaluate_default3 = [\n {\n \"name\": \"Handlebars\",\n \"type\": \"markup\",\n \"aceMode\": \"handlebars\",\n \"extensions\": [\n \".handlebars\",\n \".hbs\"\n ],\n \"tmScope\": \"text.html.handlebars\",\n \"aliases\": [\n \"hbs\",\n \"htmlbars\"\n ],\n \"parsers\": [\n \"glimmer\"\n ],\n \"vscodeLanguageIds\": [\n \"handlebars\"\n ],\n \"linguistLanguageId\": 155\n }\n];\n\n// src/language-html/languages.evaluate.js\nvar languages_evaluate_default4 = [\n {\n \"name\": \"Angular\",\n \"type\": \"markup\",\n \"aceMode\": \"html\",\n \"extensions\": [\n \".component.html\"\n ],\n \"tmScope\": \"text.html.basic\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"parsers\": [\n \"angular\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ],\n \"filenames\": [],\n \"linguistLanguageId\": 146\n },\n {\n \"name\": \"HTML\",\n \"type\": \"markup\",\n \"aceMode\": \"html\",\n \"extensions\": [\n \".html\",\n \".hta\",\n \".htm\",\n \".html.hl\",\n \".inc\",\n \".xht\",\n \".xhtml\"\n ],\n \"tmScope\": \"text.html.basic\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"parsers\": [\n \"html\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ],\n \"linguistLanguageId\": 146\n },\n {\n \"name\": \"Lightning Web Components\",\n \"type\": \"markup\",\n \"aceMode\": \"html\",\n \"extensions\": [],\n \"tmScope\": \"text.html.basic\",\n \"aliases\": [\n \"xhtml\"\n ],\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"parsers\": [\n \"lwc\"\n ],\n \"vscodeLanguageIds\": [\n \"html\"\n ],\n \"filenames\": [],\n \"linguistLanguageId\": 146\n },\n {\n \"name\": \"MJML\",\n \"type\": \"markup\",\n \"aceMode\": \"html\",\n \"extensions\": [\n \".mjml\"\n ],\n \"tmScope\": \"text.mjml.basic\",\n \"aliases\": [\n \"MJML\",\n \"mjml\"\n ],\n \"codemirrorMode\": \"htmlmixed\",\n \"codemirrorMimeType\": \"text/html\",\n \"parsers\": [\n \"mjml\"\n ],\n \"filenames\": [],\n \"vscodeLanguageIds\": [\n \"mjml\"\n ],\n \"linguistLanguageId\": 146\n },\n {\n \"name\": \"Vue\",\n \"type\": \"markup\",\n \"aceMode\": \"vue\",\n \"extensions\": [\n \".vue\"\n ],\n \"tmScope\": \"source.vue\",\n \"codemirrorMode\": \"vue\",\n \"codemirrorMimeType\": \"text/x-vue\",\n \"parsers\": [\n \"vue\"\n ],\n \"vscodeLanguageIds\": [\n \"vue\"\n ],\n \"linguistLanguageId\": 391\n }\n];\n\n// src/language-html/options.js\nvar CATEGORY_HTML = \"HTML\";\nvar options3 = {\n bracketSameLine: common_options_evaluate_default.bracketSameLine,\n htmlWhitespaceSensitivity: {\n category: CATEGORY_HTML,\n type: \"choice\",\n default: \"css\",\n description: \"How to handle whitespaces in HTML.\",\n choices: [\n {\n value: \"css\",\n description: \"Respect the default value of CSS display property.\"\n },\n {\n value: \"strict\",\n description: \"Whitespaces are considered sensitive.\"\n },\n {\n value: \"ignore\",\n description: \"Whitespaces are considered insensitive.\"\n }\n ]\n },\n singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine,\n vueIndentScriptAndStyle: {\n category: CATEGORY_HTML,\n type: \"boolean\",\n default: false,\n description: \"Indent script and style tags in Vue files.\"\n }\n};\nvar options_default3 = options3;\n\n// src/language-js/languages.evaluate.js\nvar languages_evaluate_default5 = [\n {\n \"name\": \"JavaScript\",\n \"type\": \"programming\",\n \"aceMode\": \"javascript\",\n \"extensions\": [\n \".js\",\n \"._js\",\n \".bones\",\n \".cjs\",\n \".es\",\n \".es6\",\n \".gs\",\n \".jake\",\n \".javascript\",\n \".jsb\",\n \".jscad\",\n \".jsfl\",\n \".jslib\",\n \".jsm\",\n \".jspre\",\n \".jss\",\n \".mjs\",\n \".njs\",\n \".pac\",\n \".sjs\",\n \".ssjs\",\n \".xsjs\",\n \".xsjslib\",\n \".start.frag\",\n \".end.frag\",\n \".wxs\"\n ],\n \"filenames\": [\n \"Jakefile\",\n \"start.frag\",\n \"end.frag\"\n ],\n \"tmScope\": \"source.js\",\n \"aliases\": [\n \"js\",\n \"node\"\n ],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"interpreters\": [\n \"chakra\",\n \"d8\",\n \"gjs\",\n \"js\",\n \"node\",\n \"nodejs\",\n \"qjs\",\n \"rhino\",\n \"v8\",\n \"v8-shell\",\n \"zx\"\n ],\n \"parsers\": [\n \"babel\",\n \"acorn\",\n \"espree\",\n \"meriyah\",\n \"babel-flow\",\n \"babel-ts\",\n \"flow\",\n \"typescript\"\n ],\n \"vscodeLanguageIds\": [\n \"javascript\",\n \"mongo\"\n ],\n \"linguistLanguageId\": 183\n },\n {\n \"name\": \"Flow\",\n \"type\": \"programming\",\n \"aceMode\": \"javascript\",\n \"extensions\": [\n \".js.flow\"\n ],\n \"filenames\": [],\n \"tmScope\": \"source.js\",\n \"aliases\": [],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"interpreters\": [\n \"chakra\",\n \"d8\",\n \"gjs\",\n \"js\",\n \"node\",\n \"nodejs\",\n \"qjs\",\n \"rhino\",\n \"v8\",\n \"v8-shell\"\n ],\n \"parsers\": [\n \"flow\",\n \"babel-flow\"\n ],\n \"vscodeLanguageIds\": [\n \"javascript\"\n ],\n \"linguistLanguageId\": 183\n },\n {\n \"name\": \"JSX\",\n \"type\": \"programming\",\n \"aceMode\": \"javascript\",\n \"extensions\": [\n \".jsx\"\n ],\n \"filenames\": void 0,\n \"tmScope\": \"source.js.jsx\",\n \"aliases\": void 0,\n \"codemirrorMode\": \"jsx\",\n \"codemirrorMimeType\": \"text/jsx\",\n \"interpreters\": void 0,\n \"parsers\": [\n \"babel\",\n \"babel-flow\",\n \"babel-ts\",\n \"flow\",\n \"typescript\",\n \"espree\",\n \"meriyah\"\n ],\n \"vscodeLanguageIds\": [\n \"javascriptreact\"\n ],\n \"group\": \"JavaScript\",\n \"linguistLanguageId\": 183\n },\n {\n \"name\": \"TypeScript\",\n \"type\": \"programming\",\n \"aceMode\": \"typescript\",\n \"extensions\": [\n \".ts\",\n \".cts\",\n \".mts\"\n ],\n \"tmScope\": \"source.ts\",\n \"aliases\": [\n \"ts\"\n ],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/typescript\",\n \"interpreters\": [\n \"bun\",\n \"deno\",\n \"ts-node\",\n \"tsx\"\n ],\n \"parsers\": [\n \"typescript\",\n \"babel-ts\"\n ],\n \"vscodeLanguageIds\": [\n \"typescript\"\n ],\n \"linguistLanguageId\": 378\n },\n {\n \"name\": \"TSX\",\n \"type\": \"programming\",\n \"aceMode\": \"tsx\",\n \"extensions\": [\n \".tsx\"\n ],\n \"tmScope\": \"source.tsx\",\n \"codemirrorMode\": \"jsx\",\n \"codemirrorMimeType\": \"text/typescript-jsx\",\n \"group\": \"TypeScript\",\n \"parsers\": [\n \"typescript\",\n \"babel-ts\"\n ],\n \"vscodeLanguageIds\": [\n \"typescriptreact\"\n ],\n \"linguistLanguageId\": 94901924\n }\n];\n\n// src/language-js/options.js\nvar CATEGORY_JAVASCRIPT = \"JavaScript\";\nvar options4 = {\n arrowParens: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"always\",\n description: \"Include parentheses around a sole arrow function parameter.\",\n choices: [\n {\n value: \"always\",\n description: \"Always include parens. Example: `(x) => x`\"\n },\n {\n value: \"avoid\",\n description: \"Omit parens when possible. Example: `x => x`\"\n }\n ]\n },\n bracketSameLine: common_options_evaluate_default.bracketSameLine,\n objectWrap: common_options_evaluate_default.objectWrap,\n bracketSpacing: common_options_evaluate_default.bracketSpacing,\n jsxBracketSameLine: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n description: \"Put > on the last line instead of at a new line.\",\n deprecated: \"2.4.0\"\n },\n semi: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: true,\n description: \"Print semicolons.\",\n oppositeDescription: \"Do not print semicolons, except at the beginning of lines which may need them.\"\n },\n experimentalOperatorPosition: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"end\",\n description: \"Where to print operators when binary expressions wrap lines.\",\n choices: [\n {\n value: \"start\",\n description: \"Print operators at the start of new lines.\"\n },\n {\n value: \"end\",\n description: \"Print operators at the end of previous lines.\"\n }\n ]\n },\n experimentalTernaries: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: false,\n description: \"Use curious ternaries, with the question mark after the condition.\",\n oppositeDescription: \"Default behavior of ternaries; keep question marks on the same line as the consequent.\"\n },\n singleQuote: common_options_evaluate_default.singleQuote,\n jsxSingleQuote: {\n category: CATEGORY_JAVASCRIPT,\n type: \"boolean\",\n default: false,\n description: \"Use single quotes in JSX.\"\n },\n quoteProps: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"as-needed\",\n description: \"Change when properties in objects are quoted.\",\n choices: [\n {\n value: \"as-needed\",\n description: \"Only add quotes around object properties where required.\"\n },\n {\n value: \"consistent\",\n description: \"If at least one property in an object requires quotes, quote all properties.\"\n },\n {\n value: \"preserve\",\n description: \"Respect the input use of quotes in object properties.\"\n }\n ]\n },\n trailingComma: {\n category: CATEGORY_JAVASCRIPT,\n type: \"choice\",\n default: \"all\",\n description: \"Print trailing commas wherever possible when multi-line.\",\n choices: [\n {\n value: \"all\",\n description: \"Trailing commas wherever possible (including function arguments).\"\n },\n {\n value: \"es5\",\n description: \"Trailing commas where valid in ES5 (objects, arrays, etc.)\"\n },\n { value: \"none\", description: \"No trailing commas.\" }\n ]\n },\n singleAttributePerLine: common_options_evaluate_default.singleAttributePerLine\n};\nvar options_default4 = options4;\n\n// src/language-json/languages.evaluate.js\nvar languages_evaluate_default6 = [\n {\n \"name\": \"JSON.stringify\",\n \"type\": \"data\",\n \"aceMode\": \"json\",\n \"extensions\": [\n \".importmap\"\n ],\n \"filenames\": [\n \"package.json\",\n \"package-lock.json\",\n \"composer.json\"\n ],\n \"tmScope\": \"source.json\",\n \"aliases\": [\n \"geojson\",\n \"jsonl\",\n \"sarif\",\n \"topojson\"\n ],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"parsers\": [\n \"json-stringify\"\n ],\n \"vscodeLanguageIds\": [\n \"json\"\n ],\n \"linguistLanguageId\": 174\n },\n {\n \"name\": \"JSON\",\n \"type\": \"data\",\n \"aceMode\": \"json\",\n \"extensions\": [\n \".json\",\n \".4DForm\",\n \".4DProject\",\n \".avsc\",\n \".geojson\",\n \".gltf\",\n \".har\",\n \".ice\",\n \".JSON-tmLanguage\",\n \".json.example\",\n \".mcmeta\",\n \".sarif\",\n \".tact\",\n \".tfstate\",\n \".tfstate.backup\",\n \".topojson\",\n \".webapp\",\n \".webmanifest\",\n \".yy\",\n \".yyp\"\n ],\n \"filenames\": [\n \".all-contributorsrc\",\n \".arcconfig\",\n \".auto-changelog\",\n \".c8rc\",\n \".htmlhintrc\",\n \".imgbotconfig\",\n \".nycrc\",\n \".tern-config\",\n \".tern-project\",\n \".watchmanconfig\",\n \".babelrc\",\n \".jscsrc\",\n \".jshintrc\",\n \".jslintrc\",\n \".swcrc\"\n ],\n \"tmScope\": \"source.json\",\n \"aliases\": [\n \"geojson\",\n \"jsonl\",\n \"sarif\",\n \"topojson\"\n ],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"parsers\": [\n \"json\"\n ],\n \"vscodeLanguageIds\": [\n \"json\"\n ],\n \"linguistLanguageId\": 174\n },\n {\n \"name\": \"JSON with Comments\",\n \"type\": \"data\",\n \"aceMode\": \"javascript\",\n \"extensions\": [\n \".jsonc\",\n \".code-snippets\",\n \".code-workspace\",\n \".sublime-build\",\n \".sublime-color-scheme\",\n \".sublime-commands\",\n \".sublime-completions\",\n \".sublime-keymap\",\n \".sublime-macro\",\n \".sublime-menu\",\n \".sublime-mousemap\",\n \".sublime-project\",\n \".sublime-settings\",\n \".sublime-theme\",\n \".sublime-workspace\",\n \".sublime_metrics\",\n \".sublime_session\"\n ],\n \"filenames\": [],\n \"tmScope\": \"source.json.comments\",\n \"aliases\": [\n \"jsonc\"\n ],\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"text/javascript\",\n \"group\": \"JSON\",\n \"parsers\": [\n \"jsonc\"\n ],\n \"vscodeLanguageIds\": [\n \"jsonc\"\n ],\n \"linguistLanguageId\": 423\n },\n {\n \"name\": \"JSON5\",\n \"type\": \"data\",\n \"aceMode\": \"json5\",\n \"extensions\": [\n \".json5\"\n ],\n \"tmScope\": \"source.js\",\n \"codemirrorMode\": \"javascript\",\n \"codemirrorMimeType\": \"application/json\",\n \"parsers\": [\n \"json5\"\n ],\n \"vscodeLanguageIds\": [\n \"json5\"\n ],\n \"linguistLanguageId\": 175\n }\n];\n\n// src/language-markdown/languages.evaluate.js\nvar languages_evaluate_default7 = [\n {\n \"name\": \"Markdown\",\n \"type\": \"prose\",\n \"aceMode\": \"markdown\",\n \"extensions\": [\n \".md\",\n \".livemd\",\n \".markdown\",\n \".mdown\",\n \".mdwn\",\n \".mkd\",\n \".mkdn\",\n \".mkdown\",\n \".ronn\",\n \".scd\",\n \".workbook\"\n ],\n \"filenames\": [\n \"contents.lr\",\n \"README\"\n ],\n \"tmScope\": \"text.md\",\n \"aliases\": [\n \"md\",\n \"pandoc\"\n ],\n \"codemirrorMode\": \"gfm\",\n \"codemirrorMimeType\": \"text/x-gfm\",\n \"wrap\": true,\n \"parsers\": [\n \"markdown\"\n ],\n \"vscodeLanguageIds\": [\n \"markdown\"\n ],\n \"linguistLanguageId\": 222\n },\n {\n \"name\": \"MDX\",\n \"type\": \"prose\",\n \"aceMode\": \"markdown\",\n \"extensions\": [\n \".mdx\"\n ],\n \"filenames\": [],\n \"tmScope\": \"text.md\",\n \"aliases\": [\n \"md\",\n \"pandoc\"\n ],\n \"codemirrorMode\": \"gfm\",\n \"codemirrorMimeType\": \"text/x-gfm\",\n \"wrap\": true,\n \"parsers\": [\n \"mdx\"\n ],\n \"vscodeLanguageIds\": [\n \"mdx\"\n ],\n \"linguistLanguageId\": 222\n }\n];\n\n// src/language-markdown/options.js\nvar options5 = {\n proseWrap: common_options_evaluate_default.proseWrap,\n singleQuote: common_options_evaluate_default.singleQuote\n};\nvar options_default5 = options5;\n\n// src/language-yaml/languages.evaluate.js\nvar languages_evaluate_default8 = [\n {\n \"name\": \"YAML\",\n \"type\": \"data\",\n \"aceMode\": \"yaml\",\n \"extensions\": [\n \".yml\",\n \".mir\",\n \".reek\",\n \".rviz\",\n \".sublime-syntax\",\n \".syntax\",\n \".yaml\",\n \".yaml-tmlanguage\",\n \".yaml.sed\",\n \".yml.mysql\"\n ],\n \"filenames\": [\n \".clang-format\",\n \".clang-tidy\",\n \".clangd\",\n \".gemrc\",\n \"CITATION.cff\",\n \"glide.lock\",\n \"pixi.lock\",\n \".prettierrc\",\n \".stylelintrc\",\n \".lintstagedrc\"\n ],\n \"tmScope\": \"source.yaml\",\n \"aliases\": [\n \"yml\"\n ],\n \"codemirrorMode\": \"yaml\",\n \"codemirrorMimeType\": \"text/x-yaml\",\n \"parsers\": [\n \"yaml\"\n ],\n \"vscodeLanguageIds\": [\n \"yaml\",\n \"ansible\",\n \"dockercompose\",\n \"github-actions-workflow\",\n \"home-assistant\"\n ],\n \"linguistLanguageId\": 407\n }\n];\n\n// src/language-yaml/options.js\nvar options6 = {\n bracketSpacing: common_options_evaluate_default.bracketSpacing,\n singleQuote: common_options_evaluate_default.singleQuote,\n proseWrap: common_options_evaluate_default.proseWrap\n};\nvar options_default6 = options6;\n\n// src/plugins/builtin-plugins-proxy.js\nfunction createParsersAndPrinters(modules) {\n const parsers2 = /* @__PURE__ */ Object.create(null);\n const printers2 = /* @__PURE__ */ Object.create(null);\n for (const {\n importPlugin: importPlugin2,\n parsers: parserNames = [],\n printers: printerNames = []\n } of modules) {\n const loadPlugin2 = async () => {\n const plugin = await importPlugin2();\n Object.assign(parsers2, plugin.parsers);\n Object.assign(printers2, plugin.printers);\n return plugin;\n };\n for (const parserName of parserNames) {\n parsers2[parserName] = async () => (await loadPlugin2()).parsers[parserName];\n }\n for (const printerName of printerNames) {\n printers2[printerName] = async () => (await loadPlugin2()).printers[printerName];\n }\n }\n return { parsers: parsers2, printers: printers2 };\n}\nvar estreePlugin = createParsersAndPrinters([\n {\n importPlugin: () => import(\"./plugins/estree.mjs\"),\n printers: [\"estree\", \"estree-json\"]\n }\n]);\nvar options7 = {\n ...options_default,\n ...options_default2,\n ...options_default3,\n ...options_default4,\n ...options_default5,\n ...options_default6\n};\nvar languages = [\n ...languages_evaluate_default,\n ...languages_evaluate_default2,\n ...languages_evaluate_default3,\n ...languages_evaluate_default4,\n ...languages_evaluate_default5,\n ...languages_evaluate_default6,\n ...languages_evaluate_default7,\n ...languages_evaluate_default8\n];\nvar { parsers, printers } = createParsersAndPrinters([\n {\n importPlugin: () => import(\"./plugins/acorn.mjs\"),\n parsers: [\"acorn\", \"espree\"]\n },\n {\n importPlugin: () => import(\"./plugins/angular.mjs\"),\n parsers: [\n \"__ng_action\",\n \"__ng_binding\",\n \"__ng_interpolation\",\n \"__ng_directive\"\n ]\n },\n {\n importPlugin: () => import(\"./plugins/babel.mjs\"),\n parsers: [\n \"babel\",\n \"babel-flow\",\n \"babel-ts\",\n \"__js_expression\",\n \"__ts_expression\",\n \"__vue_expression\",\n \"__vue_ts_expression\",\n \"__vue_event_binding\",\n \"__vue_ts_event_binding\",\n \"__babel_estree\",\n \"json\",\n \"json5\",\n \"jsonc\",\n \"json-stringify\"\n ]\n },\n {\n importPlugin: () => import(\"./plugins/flow.mjs\"),\n parsers: [\"flow\"]\n },\n {\n importPlugin: () => import(\"./plugins/glimmer.mjs\"),\n parsers: [\"glimmer\"],\n printers: [\"glimmer\"]\n },\n {\n importPlugin: () => import(\"./plugins/graphql.mjs\"),\n parsers: [\"graphql\"],\n printers: [\"graphql\"]\n },\n {\n importPlugin: () => import(\"./plugins/html.mjs\"),\n parsers: [\"html\", \"angular\", \"vue\", \"lwc\", \"mjml\"],\n printers: [\"html\"]\n },\n {\n importPlugin: () => import(\"./plugins/markdown.mjs\"),\n parsers: [\"markdown\", \"mdx\", \"remark\"],\n printers: [\"mdast\"]\n },\n {\n importPlugin: () => import(\"./plugins/meriyah.mjs\"),\n parsers: [\"meriyah\"]\n },\n {\n importPlugin: () => import(\"./plugins/postcss.mjs\"),\n parsers: [\"css\", \"less\", \"scss\"],\n printers: [\"postcss\"]\n },\n {\n importPlugin: () => import(\"./plugins/typescript.mjs\"),\n parsers: [\"typescript\"]\n },\n {\n importPlugin: () => import(\"./plugins/yaml.mjs\"),\n parsers: [\"yaml\"],\n printers: [\"yaml\"]\n }\n]);\nvar builtin_plugins_proxy_default = [estreePlugin, { options: options7, languages, parsers, printers }];\n\n// src/main/plugins/load-builtin-plugins.js\nfunction loadBuiltinPlugins() {\n return builtin_plugins_proxy_default;\n}\nvar load_builtin_plugins_default = loadBuiltinPlugins;\n\n// src/main/plugins/load-plugin.js\nimport path13 from \"path\";\nimport { pathToFileURL as pathToFileURL5 } from \"url\";\n\n// src/utilities/import-from-directory.js\nimport path12 from \"path\";\nfunction importFromDirectory(specifier, directory) {\n return import_from_file_default(specifier, path12.join(directory, \"noop.js\"));\n}\nvar import_from_directory_default = importFromDirectory;\n\n// src/main/plugins/load-plugin.js\nasync function importPlugin(name, cwd) {\n if (isUrl(name)) {\n return import(name);\n }\n if (path13.isAbsolute(name)) {\n return import(pathToFileURL5(name).href);\n }\n try {\n return await import(pathToFileURL5(path13.resolve(name)).href);\n } catch {\n return import_from_directory_default(name, cwd);\n }\n}\nasync function loadPluginWithoutCache(plugin, cwd) {\n const module = await importPlugin(plugin, cwd);\n const implementation = module.default ?? module;\n const name = isUrl(plugin) ? toPath(plugin) : plugin;\n return { name, ...implementation };\n}\nvar cache2 = /* @__PURE__ */ new Map();\nfunction loadPlugin(plugin) {\n if (typeof plugin !== \"string\" && !(plugin instanceof URL)) {\n return plugin;\n }\n const cwd = process.cwd();\n const cacheKey = JSON.stringify({ name: plugin, cwd });\n if (!cache2.has(cacheKey)) {\n cache2.set(cacheKey, loadPluginWithoutCache(plugin, cwd));\n }\n return cache2.get(cacheKey);\n}\nfunction clearCache2() {\n cache2.clear();\n}\n\n// src/main/plugins/load-plugins.js\nfunction loadPlugins(plugins = []) {\n return Promise.all(plugins.map((plugin) => loadPlugin(plugin)));\n}\nvar load_plugins_default = loadPlugins;\n\n// src/utilities/ignore.js\nvar import_ignore = __toESM(require_ignore(), 1);\nimport path14 from \"path\";\nimport url2 from \"url\";\nvar slash = path14.sep === \"\\\\\" ? (filePath) => method_replace_all_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n filePath,\n \"\\\\\",\n \"/\"\n) : (filePath) => filePath;\nfunction getRelativePath(file, ignoreFile) {\n const ignoreFilePath = toPath(ignoreFile);\n const filePath = isUrl(file) ? url2.fileURLToPath(file) : path14.resolve(file);\n return path14.relative(\n // If there's an ignore-path set, the filename must be relative to the\n // ignore path, not the current working directory.\n ignoreFilePath ? path14.dirname(ignoreFilePath) : process.cwd(),\n filePath\n );\n}\nasync function createSingleIsIgnoredFunction(ignoreFile, withNodeModules) {\n let content = \"\";\n if (ignoreFile) {\n content += await read_file_default(ignoreFile) ?? \"\";\n }\n if (!withNodeModules) {\n content += \"\\nnode_modules\";\n }\n if (!content) {\n return;\n }\n const ignore = (0, import_ignore.default)({\n allowRelativePaths: true\n }).add(content);\n return (file) => ignore.checkIgnore(slash(getRelativePath(file, ignoreFile))).ignored;\n}\nasync function createIsIgnoredFunction(ignoreFiles, withNodeModules) {\n if (ignoreFiles.length === 0 && !withNodeModules) {\n ignoreFiles = [void 0];\n }\n const isIgnoredFunctions = (await Promise.all(ignoreFiles.map((ignoreFile) => createSingleIsIgnoredFunction(ignoreFile, withNodeModules)))).filter(Boolean);\n return (file) => isIgnoredFunctions.some((isIgnored2) => isIgnored2(file));\n}\nasync function isIgnored(file, options8) {\n const {\n ignorePath: ignoreFiles,\n withNodeModules\n } = options8;\n const isIgnored2 = await createIsIgnoredFunction(ignoreFiles, withNodeModules);\n return isIgnored2(file);\n}\n\n// src/utilities/object-omit.js\nfunction omit(object, keys) {\n keys = new Set(keys);\n return Object.fromEntries(\n Object.entries(object).filter(([key2]) => !keys.has(key2))\n );\n}\nvar object_omit_default = omit;\n\n// src/common/get-file-info.js\nasync function getFileInfo(file, options8 = {}) {\n if (typeof file !== \"string\" && !(file instanceof URL)) {\n throw new TypeError(\n `expect \\`file\\` to be a string or URL, got \\`${typeof file}\\``\n );\n }\n let { ignorePath, withNodeModules } = options8;\n if (!Array.isArray(ignorePath)) {\n ignorePath = [ignorePath];\n }\n const ignored = await isIgnored(file, { ignorePath, withNodeModules });\n let inferredParser;\n if (!ignored) {\n inferredParser = options8.parser ?? await getParser(file, options8);\n }\n return {\n ignored,\n inferredParser: inferredParser ?? null\n };\n}\nasync function getParser(file, options8) {\n let config;\n if (options8.resolveConfig !== false) {\n config = await resolveConfig(file, {\n // No need read `.editorconfig`\n editorconfig: false\n });\n }\n if (config?.parser) {\n return config.parser;\n }\n let plugins = options8.plugins ?? config?.plugins ?? [];\n plugins = (await Promise.all([load_builtin_plugins_default(), load_plugins_default(plugins)])).flat();\n return infer_parser_default({ plugins }, { physicalFile: file });\n}\nvar get_file_info_default = getFileInfo;\n\n// src/index.js\nimport * as doc from \"./doc.mjs\";\n\n// src/main/version.evaluate.js\nvar version_evaluate_default = \"3.8.0\";\n\n// src/utilities/public.js\nvar public_exports = {};\n__export(public_exports, {\n addDanglingComment: () => addDanglingComment,\n addLeadingComment: () => addLeadingComment,\n addTrailingComment: () => addTrailingComment,\n getAlignmentSize: () => get_alignment_size_default,\n getIndentSize: () => get_indent_size_default,\n getMaxContinuousCount: () => get_max_continuous_count_default,\n getNextNonSpaceNonCommentCharacter: () => get_next_non_space_non_comment_character_default,\n getNextNonSpaceNonCommentCharacterIndex: () => getNextNonSpaceNonCommentCharacterIndex2,\n getPreferredQuote: () => get_preferred_quote_default,\n getStringWidth: () => get_string_width_default,\n hasNewline: () => has_newline_default,\n hasNewlineInRange: () => has_newline_in_range_default,\n hasSpaces: () => has_spaces_default,\n isNextLineEmpty: () => isNextLineEmpty2,\n isNextLineEmptyAfterIndex: () => is_next_line_empty_default,\n isPreviousLineEmpty: () => isPreviousLineEmpty2,\n makeString: () => makeString,\n skip: () => skip,\n skipEverythingButNewLine: () => skipEverythingButNewLine,\n skipInlineComment: () => skip_inline_comment_default,\n skipNewline: () => skip_newline_default,\n skipSpaces: () => skipSpaces,\n skipToLineEnd: () => skipToLineEnd,\n skipTrailingComment: () => skip_trailing_comment_default,\n skipWhitespace: () => skipWhitespace\n});\n\n// src/utilities/skip-inline-comment.js\nfunction skipInlineComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"*\") {\n for (let i = startIndex + 2; i < text.length; ++i) {\n if (text.charAt(i) === \"*\" && text.charAt(i + 1) === \"/\") {\n return i + 2;\n }\n }\n }\n return startIndex;\n}\nvar skip_inline_comment_default = skipInlineComment;\n\n// src/utilities/skip-trailing-comment.js\nfunction skipTrailingComment(text, startIndex) {\n if (startIndex === false) {\n return false;\n }\n if (text.charAt(startIndex) === \"/\" && text.charAt(startIndex + 1) === \"/\") {\n return skipEverythingButNewLine(text, startIndex);\n }\n return startIndex;\n}\nvar skip_trailing_comment_default = skipTrailingComment;\n\n// src/utilities/get-next-non-space-non-comment-character-index.js\nfunction getNextNonSpaceNonCommentCharacterIndex(text, startIndex) {\n let oldIdx = null;\n let nextIdx = startIndex;\n while (nextIdx !== oldIdx) {\n oldIdx = nextIdx;\n nextIdx = skipSpaces(text, nextIdx);\n nextIdx = skip_inline_comment_default(text, nextIdx);\n nextIdx = skip_trailing_comment_default(text, nextIdx);\n nextIdx = skip_newline_default(text, nextIdx);\n }\n return nextIdx;\n}\nvar get_next_non_space_non_comment_character_index_default = getNextNonSpaceNonCommentCharacterIndex;\n\n// src/utilities/is-next-line-empty.js\nfunction isNextLineEmpty(text, startIndex) {\n let oldIdx = null;\n let idx = startIndex;\n while (idx !== oldIdx) {\n oldIdx = idx;\n idx = skipToLineEnd(text, idx);\n idx = skip_inline_comment_default(text, idx);\n idx = skipSpaces(text, idx);\n }\n idx = skip_trailing_comment_default(text, idx);\n idx = skip_newline_default(text, idx);\n return idx !== false && has_newline_default(text, idx);\n}\nvar is_next_line_empty_default = isNextLineEmpty;\n\n// src/utilities/get-indent-size.js\nfunction getIndentSize(value, tabWidth) {\n const lastNewlineIndex = value.lastIndexOf(\"\\n\");\n if (lastNewlineIndex === -1) {\n return 0;\n }\n return get_alignment_size_default(\n // All the leading whitespaces\n value.slice(lastNewlineIndex + 1).match(/^[\\t ]*/u)[0],\n tabWidth\n );\n}\nvar get_indent_size_default = getIndentSize;\n\n// node_modules/escape-string-regexp/index.js\nfunction escapeStringRegexp(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(\"Expected a string\");\n }\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\").replace(/-/g, \"\\\\x2d\");\n}\n\n// src/utilities/get-max-continuous-count.js\nfunction getMaxContinuousCount(text, searchString) {\n let results = text.matchAll(\n new RegExp(`(?:${escapeStringRegexp(searchString)})+`, \"gu\")\n );\n if (!results.reduce) {\n results = [...results];\n }\n return results.reduce(\n (maxCount, [result]) => Math.max(maxCount, result.length),\n 0\n ) / searchString.length;\n}\nvar get_max_continuous_count_default = getMaxContinuousCount;\n\n// src/utilities/get-next-non-space-non-comment-character.js\nfunction getNextNonSpaceNonCommentCharacter(text, startIndex) {\n const index = get_next_non_space_non_comment_character_index_default(text, startIndex);\n return index === false ? \"\" : text.charAt(index);\n}\nvar get_next_non_space_non_comment_character_default = getNextNonSpaceNonCommentCharacter;\n\n// src/utilities/get-preferred-quote.js\nvar SINGLE_QUOTE = \"'\";\nvar DOUBLE_QUOTE = '\"';\nvar SINGLE_QUOTE_DATA = Object.freeze({\n character: SINGLE_QUOTE,\n codePoint: 39\n});\nvar DOUBLE_QUOTE_DATA = Object.freeze({\n character: DOUBLE_QUOTE,\n codePoint: 34\n});\nvar SINGLE_QUOTE_SETTINGS = Object.freeze({\n preferred: SINGLE_QUOTE_DATA,\n alternate: DOUBLE_QUOTE_DATA\n});\nvar DOUBLE_QUOTE_SETTINGS = Object.freeze({\n preferred: DOUBLE_QUOTE_DATA,\n alternate: SINGLE_QUOTE_DATA\n});\nfunction getPreferredQuote(text, preferredQuoteOrPreferSingleQuote) {\n const { preferred, alternate } = preferredQuoteOrPreferSingleQuote === true || preferredQuoteOrPreferSingleQuote === SINGLE_QUOTE ? SINGLE_QUOTE_SETTINGS : DOUBLE_QUOTE_SETTINGS;\n const { length } = text;\n let preferredQuoteCount = 0;\n let alternateQuoteCount = 0;\n for (let index = 0; index < length; index++) {\n const codePoint = text.charCodeAt(index);\n if (codePoint === preferred.codePoint) {\n preferredQuoteCount++;\n } else if (codePoint === alternate.codePoint) {\n alternateQuoteCount++;\n }\n }\n return (preferredQuoteCount > alternateQuoteCount ? alternate : preferred).character;\n}\nvar get_preferred_quote_default = getPreferredQuote;\n\n// src/utilities/has-newline-in-range.js\nfunction hasNewlineInRange(text, startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; ++i) {\n if (text.charAt(i) === \"\\n\") {\n return true;\n }\n }\n return false;\n}\nvar has_newline_in_range_default = hasNewlineInRange;\n\n// src/utilities/has-spaces.js\nfunction hasSpaces(text, startIndex, options8 = {}) {\n const idx = skipSpaces(\n text,\n options8.backwards ? startIndex - 1 : startIndex,\n options8\n );\n return idx !== startIndex;\n}\nvar has_spaces_default = hasSpaces;\n\n// src/utilities/public.js\nfunction legacyGetNextNonSpaceNonCommentCharacterIndex(text, node, locEnd) {\n return get_next_non_space_non_comment_character_index_default(text, locEnd(node));\n}\nfunction getNextNonSpaceNonCommentCharacterIndex2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? get_next_non_space_non_comment_character_index_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyGetNextNonSpaceNonCommentCharacterIndex(...arguments)\n );\n}\nfunction legacyIsPreviousLineEmpty(text, node, locStart) {\n return is_previous_line_empty_default(text, locStart(node));\n}\nfunction isPreviousLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_previous_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsPreviousLineEmpty(...arguments)\n );\n}\nfunction legacyIsNextLineEmpty(text, node, locEnd) {\n return is_next_line_empty_default(text, locEnd(node));\n}\nfunction makeString(rawText, enclosingQuote, unescapeUnnecessaryEscapes) {\n const otherQuote = enclosingQuote === '\"' ? \"'\" : '\"';\n const regex = /\\\\(.)|([\"'])/gsu;\n const raw = method_replace_all_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n rawText,\n regex,\n (match, escaped, quote) => {\n if (escaped === otherQuote) {\n return escaped;\n }\n if (quote === enclosingQuote) {\n return \"\\\\\" + quote;\n }\n if (quote) {\n return quote;\n }\n return unescapeUnnecessaryEscapes && /^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(escaped) ? escaped : \"\\\\\" + escaped;\n }\n );\n return enclosingQuote + raw + enclosingQuote;\n}\nfunction isNextLineEmpty2(text, startIndex) {\n return arguments.length === 2 || typeof startIndex === \"number\" ? is_next_line_empty_default(text, startIndex) : (\n // @ts-expect-error -- expected\n // eslint-disable-next-line prefer-rest-params\n legacyIsNextLineEmpty(...arguments)\n );\n}\n\n// src/index.js\nfunction withPlugins(fn, optionsArgumentIndex = 1) {\n return async (...args) => {\n const options8 = args[optionsArgumentIndex] ?? {};\n const { plugins = [] } = options8;\n args[optionsArgumentIndex] = {\n ...options8,\n plugins: (await Promise.all([\n load_builtin_plugins_default(),\n // TODO: standalone version allow `plugins` to be `prettierPlugins` which is an object, should allow that too\n load_plugins_default(plugins)\n ])).flat()\n };\n return fn(...args);\n };\n}\nvar formatWithCursor2 = withPlugins(formatWithCursor);\nasync function format2(text, options8) {\n const { formatted } = await formatWithCursor2(text, {\n ...options8,\n cursorOffset: -1\n });\n return formatted;\n}\nasync function check(text, options8) {\n return await format2(text, options8) === text;\n}\nasync function clearCache3() {\n clearCache();\n clearCache2();\n}\nvar getSupportInfo2 = withPlugins(getSupportInfo, 0);\nvar inferParser2 = withPlugins(\n (file, options8) => infer_parser_default(options8, { physicalFile: file })\n);\nvar sharedWithCli = {\n errors: errors_exports,\n optionCategories: option_categories_exports,\n createIsIgnoredFunction,\n formatOptionsHiddenDefaults,\n normalizeOptions: normalize_options_default,\n getSupportInfoWithoutPlugins: getSupportInfo,\n normalizeOptionSettings,\n inferParser: (file, options8) => Promise.resolve(options8?.parser ?? inferParser2(file, options8)),\n vnopts: {\n ChoiceSchema,\n apiDescriptor\n },\n fastGlob: import_fast_glob.default,\n createTwoFilesPatch,\n picocolors: import_picocolors5.default,\n closetLevenshteinMatch: closestMatch,\n utilities: {\n omit: object_omit_default,\n createMockable: create_mockable_default\n }\n};\nvar debugApis = {\n parse: withPlugins(parse6),\n formatAST: withPlugins(formatAst),\n formatDoc: withPlugins(formatDoc),\n printToDoc: withPlugins(printToDoc),\n printDocToString: withPlugins(printDocToString),\n // Exposed for tests\n mockable\n};\nexport {\n debugApis as __debug,\n sharedWithCli as __internal,\n check,\n clearCache3 as clearConfigCache,\n index_exports as default,\n doc,\n format2 as format,\n formatWithCursor2 as formatWithCursor,\n get_file_info_default as getFileInfo,\n getSupportInfo2 as getSupportInfo,\n resolveConfig,\n resolveConfigFile,\n public_exports as util,\n version_evaluate_default as version\n};\n","var __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/document/public.js\nvar public_exports = {};\n__export(public_exports, {\n builders: () => builders,\n printer: () => printer,\n utils: () => utils\n});\n\n// scripts/build/shims/shared.js\nvar OPTIONAL_OBJECT = 1;\nvar createMethodShim = (methodName, getImplementation) => (flags, object, ...arguments_) => {\n if (flags | OPTIONAL_OBJECT && (object === void 0 || object === null)) {\n return;\n }\n const implementation = getImplementation.call(object) ?? object[methodName];\n return implementation.apply(object, arguments_);\n};\n\n// scripts/build/shims/method-at.js\nfunction stringOrArrayAt(index) {\n return this[index < 0 ? this.length + index : index];\n}\nvar at = createMethodShim(\"at\", function() {\n if (Array.isArray(this) || typeof this === \"string\") {\n return stringOrArrayAt;\n }\n});\nvar method_at_default = at;\n\n// src/utilities/noop.js\nvar noop = () => {\n};\nvar noop_default = noop;\n\n// src/document/builders/types.js\nvar DOC_TYPE_STRING = (\n /** @type {const} */\n \"string\"\n);\nvar DOC_TYPE_ARRAY = (\n /** @type {const} */\n \"array\"\n);\nvar DOC_TYPE_CURSOR = (\n /** @type {const} */\n \"cursor\"\n);\nvar DOC_TYPE_INDENT = (\n /** @type {const} */\n \"indent\"\n);\nvar DOC_TYPE_ALIGN = (\n /** @type {const} */\n \"align\"\n);\nvar DOC_TYPE_TRIM = (\n /** @type {const} */\n \"trim\"\n);\nvar DOC_TYPE_GROUP = (\n /** @type {const} */\n \"group\"\n);\nvar DOC_TYPE_FILL = (\n /** @type {const} */\n \"fill\"\n);\nvar DOC_TYPE_IF_BREAK = (\n /** @type {const} */\n \"if-break\"\n);\nvar DOC_TYPE_INDENT_IF_BREAK = (\n /** @type {const} */\n \"indent-if-break\"\n);\nvar DOC_TYPE_LINE_SUFFIX = (\n /** @type {const} */\n \"line-suffix\"\n);\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = (\n /** @type {const} */\n \"line-suffix-boundary\"\n);\nvar DOC_TYPE_LINE = (\n /** @type {const} */\n \"line\"\n);\nvar DOC_TYPE_LABEL = (\n /** @type {const} */\n \"label\"\n);\nvar DOC_TYPE_BREAK_PARENT = (\n /** @type {const} */\n \"break-parent\"\n);\nvar VALID_OBJECT_DOC_TYPES = /* @__PURE__ */ new Set([\n DOC_TYPE_CURSOR,\n DOC_TYPE_INDENT,\n DOC_TYPE_ALIGN,\n DOC_TYPE_TRIM,\n DOC_TYPE_GROUP,\n DOC_TYPE_FILL,\n DOC_TYPE_IF_BREAK,\n DOC_TYPE_INDENT_IF_BREAK,\n DOC_TYPE_LINE_SUFFIX,\n DOC_TYPE_LINE_SUFFIX_BOUNDARY,\n DOC_TYPE_LINE,\n DOC_TYPE_LABEL,\n DOC_TYPE_BREAK_PARENT\n]);\n\n// node_modules/trim-newlines/index.js\nfunction trimNewlinesEnd(string) {\n let end = string.length;\n while (end > 0 && (string[end - 1] === \"\\r\" || string[end - 1] === \"\\n\")) {\n end--;\n }\n return end < string.length ? string.slice(0, end) : string;\n}\n\n// src/document/utilities/get-doc-type.js\nfunction getDocType(doc) {\n if (typeof doc === \"string\") {\n return DOC_TYPE_STRING;\n }\n if (Array.isArray(doc)) {\n return DOC_TYPE_ARRAY;\n }\n if (!doc) {\n return;\n }\n const { type } = doc;\n if (VALID_OBJECT_DOC_TYPES.has(type)) {\n return type;\n }\n}\nvar get_doc_type_default = getDocType;\n\n// src/document/utilities/invalid-doc-error.js\nvar disjunctionListFormat = (list) => new Intl.ListFormat(\"en-US\", { type: \"disjunction\" }).format(list);\nfunction getDocErrorMessage(doc) {\n const type = doc === null ? \"null\" : typeof doc;\n if (type !== \"string\" && type !== \"object\") {\n return `Unexpected doc '${type}', \nExpected it to be 'string' or 'object'.`;\n }\n if (get_doc_type_default(doc)) {\n throw new Error(\"doc is valid.\");\n }\n const objectType = Object.prototype.toString.call(doc);\n if (objectType !== \"[object Object]\") {\n return `Unexpected doc '${objectType}'.`;\n }\n const EXPECTED_TYPE_VALUES = disjunctionListFormat(\n [...VALID_OBJECT_DOC_TYPES].map((type2) => `'${type2}'`)\n );\n return `Unexpected doc.type '${doc.type}'.\nExpected it to be ${EXPECTED_TYPE_VALUES}.`;\n}\nvar InvalidDocError = class extends Error {\n name = \"InvalidDocError\";\n constructor(doc) {\n super(getDocErrorMessage(doc));\n this.doc = doc;\n }\n};\nvar invalid_doc_error_default = InvalidDocError;\n\n// src/document/utilities/traverse-doc.js\nvar traverseDocOnExitStackMarker = {};\nfunction traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {\n const docsStack = [doc];\n while (docsStack.length > 0) {\n const doc2 = docsStack.pop();\n if (doc2 === traverseDocOnExitStackMarker) {\n onExit(docsStack.pop());\n continue;\n }\n if (onExit) {\n docsStack.push(doc2, traverseDocOnExitStackMarker);\n }\n const docType = get_doc_type_default(doc2);\n if (!docType) {\n throw new invalid_doc_error_default(doc2);\n }\n if (onEnter?.(doc2) === false) {\n continue;\n }\n switch (docType) {\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc2 : doc2.parts;\n for (let ic = parts.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(parts[i]);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n docsStack.push(doc2.flatContents, doc2.breakContents);\n break;\n case DOC_TYPE_GROUP:\n if (shouldTraverseConditionalGroups && doc2.expandedStates) {\n for (let ic = doc2.expandedStates.length, i = ic - 1; i >= 0; --i) {\n docsStack.push(doc2.expandedStates[i]);\n }\n } else {\n docsStack.push(doc2.contents);\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n docsStack.push(doc2.contents);\n break;\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nvar traverse_doc_default = traverseDoc;\n\n// src/document/utilities/index.js\nfunction mapDoc(doc, cb) {\n if (typeof doc === \"string\") {\n return cb(doc);\n }\n const mapped = /* @__PURE__ */ new Map();\n return rec(doc);\n function rec(doc2) {\n if (mapped.has(doc2)) {\n return mapped.get(doc2);\n }\n const result = process2(doc2);\n mapped.set(doc2, result);\n return result;\n }\n function process2(doc2) {\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_ARRAY:\n return cb(doc2.map(rec));\n case DOC_TYPE_FILL:\n return cb({\n ...doc2,\n parts: doc2.parts.map(rec)\n });\n case DOC_TYPE_IF_BREAK:\n return cb({\n ...doc2,\n breakContents: rec(doc2.breakContents),\n flatContents: rec(doc2.flatContents)\n });\n case DOC_TYPE_GROUP: {\n let {\n expandedStates,\n contents\n } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({\n ...doc2,\n contents,\n expandedStates\n });\n }\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_LINE_SUFFIX:\n return cb({\n ...doc2,\n contents: rec(doc2.contents)\n });\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n return cb(doc2);\n default:\n throw new invalid_doc_error_default(doc2);\n }\n }\n}\nfunction findInDoc(doc, fn, defaultValue) {\n let result = defaultValue;\n let shouldSkipFurtherProcessing = false;\n function findInDocOnEnterFn(doc2) {\n if (shouldSkipFurtherProcessing) {\n return false;\n }\n const maybeResult = fn(doc2);\n if (maybeResult !== void 0) {\n shouldSkipFurtherProcessing = true;\n result = maybeResult;\n }\n }\n traverse_doc_default(doc, findInDocOnEnterFn);\n return result;\n}\nfunction willBreakFn(doc) {\n if (doc.type === DOC_TYPE_GROUP && doc.break) {\n return true;\n }\n if (doc.type === DOC_TYPE_LINE && doc.hard) {\n return true;\n }\n if (doc.type === DOC_TYPE_BREAK_PARENT) {\n return true;\n }\n}\nfunction willBreak(doc) {\n return findInDoc(doc, willBreakFn, false);\n}\nfunction breakParentGroup(groupStack) {\n if (groupStack.length > 0) {\n const parentGroup = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n groupStack,\n -1\n );\n if (!parentGroup.expandedStates && !parentGroup.break) {\n parentGroup.break = \"propagated\";\n }\n }\n return null;\n}\nfunction propagateBreaks(doc) {\n const alreadyVisitedSet = /* @__PURE__ */ new Set();\n const groupStack = [];\n function propagateBreaksOnEnterFn(doc2) {\n if (doc2.type === DOC_TYPE_BREAK_PARENT) {\n breakParentGroup(groupStack);\n }\n if (doc2.type === DOC_TYPE_GROUP) {\n groupStack.push(doc2);\n if (alreadyVisitedSet.has(doc2)) {\n return false;\n }\n alreadyVisitedSet.add(doc2);\n }\n }\n function propagateBreaksOnExitFn(doc2) {\n if (doc2.type === DOC_TYPE_GROUP) {\n const group2 = groupStack.pop();\n if (group2.break) {\n breakParentGroup(groupStack);\n }\n }\n }\n traverse_doc_default(\n doc,\n propagateBreaksOnEnterFn,\n propagateBreaksOnExitFn,\n /* shouldTraverseConditionalGroups */\n true\n );\n}\nfunction removeLinesFn(doc) {\n if (doc.type === DOC_TYPE_LINE && !doc.hard) {\n return doc.soft ? \"\" : \" \";\n }\n if (doc.type === DOC_TYPE_IF_BREAK) {\n return doc.flatContents;\n }\n return doc;\n}\nfunction removeLines(doc) {\n return mapDoc(doc, removeLinesFn);\n}\nfunction stripTrailingHardlineFromParts(parts) {\n parts = [...parts];\n while (parts.length >= 2 && method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parts,\n -2\n ).type === DOC_TYPE_LINE && method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parts,\n -1\n ));\n parts[parts.length - 1] = lastPart;\n }\n return parts;\n}\nfunction stripTrailingHardlineFromDoc(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_GROUP:\n case DOC_TYPE_LINE_SUFFIX:\n case DOC_TYPE_LABEL: {\n const contents = stripTrailingHardlineFromDoc(doc.contents);\n return {\n ...doc,\n contents\n };\n }\n case DOC_TYPE_IF_BREAK:\n return {\n ...doc,\n breakContents: stripTrailingHardlineFromDoc(doc.breakContents),\n flatContents: stripTrailingHardlineFromDoc(doc.flatContents)\n };\n case DOC_TYPE_FILL:\n return {\n ...doc,\n parts: stripTrailingHardlineFromParts(doc.parts)\n };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return trimNewlinesEnd(doc);\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction stripTrailingHardline(doc) {\n return stripTrailingHardlineFromDoc(cleanDoc(doc));\n}\nfunction cleanDocFn(doc) {\n switch (get_doc_type_default(doc)) {\n case DOC_TYPE_FILL:\n if (doc.parts.every((part) => part === \"\")) {\n return \"\";\n }\n break;\n case DOC_TYPE_GROUP:\n if (!doc.contents && !doc.id && !doc.break && !doc.expandedStates) {\n return \"\";\n }\n if (doc.contents.type === DOC_TYPE_GROUP && doc.contents.id === doc.id && doc.contents.break === doc.break && doc.contents.expandedStates === doc.expandedStates) {\n return doc.contents;\n }\n break;\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LINE_SUFFIX:\n if (!doc.contents) {\n return \"\";\n }\n break;\n case DOC_TYPE_IF_BREAK:\n if (!doc.flatContents && !doc.breakContents) {\n return \"\";\n }\n break;\n case DOC_TYPE_ARRAY: {\n const parts = [];\n for (const part of doc) {\n if (!part) {\n continue;\n }\n const [currentPart, ...restParts] = Array.isArray(part) ? part : [part];\n if (typeof currentPart === \"string\" && typeof method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parts,\n -1\n ) === \"string\") {\n parts[parts.length - 1] += currentPart;\n } else {\n parts.push(currentPart);\n }\n parts.push(...restParts);\n }\n if (parts.length === 0) {\n return \"\";\n }\n if (parts.length === 1) {\n return parts[0];\n }\n return parts;\n }\n case DOC_TYPE_STRING:\n case DOC_TYPE_CURSOR:\n case DOC_TYPE_TRIM:\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n case DOC_TYPE_LINE:\n case DOC_TYPE_LABEL:\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc);\n }\n return doc;\n}\nfunction cleanDoc(doc) {\n return mapDoc(doc, (currentDoc) => cleanDocFn(currentDoc));\n}\nfunction replaceEndOfLine(doc, replacement = literalline) {\n return mapDoc(doc, (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc);\n}\nfunction canBreakFn(doc) {\n if (doc.type === DOC_TYPE_LINE) {\n return true;\n }\n}\nfunction canBreak(doc) {\n return findInDoc(doc, canBreakFn, false);\n}\n\n// src/document/utilities/assert-doc.js\nvar assertDoc = true ? noop_default : (\n /**\n @param {Doc} doc\n */\n function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (typeof doc2 === \"string\" || checked.has(doc2)) {\n return false;\n }\n checked.add(doc2);\n });\n }\n);\nvar assertDocArray = true ? noop_default : (\n /**\n @param {readonly Doc[]} docs\n @param {boolean} [optional = false]\n */\n function(docs, optional = false) {\n if (optional && !docs) {\n return;\n }\n if (!Array.isArray(docs)) {\n throw new TypeError(\"Unexpected doc array.\");\n }\n for (const doc of docs) {\n assertDoc(doc);\n }\n }\n);\nvar assertDocFillParts = true ? noop_default : (\n /**\n @param {readonly Doc[]} parts\n */\n function(parts) {\n assertDocArray(parts);\n if (parts.length > 1 && isEmptyDoc(method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n parts,\n -1\n ))) {\n parts = parts.slice(0, -1);\n }\n for (const [i, doc] of parts.entries()) {\n if (i % 2 === 1 && !isValidSeparator(doc)) {\n const type = get_doc_type_default(doc);\n throw new Error(`Unexpected non-line-break doc at ${i}. Doc type is ${type}.`);\n }\n }\n }\n);\nvar assertAlignType = true ? noop_default : function(alignType) {\n if (!(typeof alignType === \"number\" || typeof alignType === \"string\" || alignType?.type === \"root\")) {\n throw new TypeError(`Invalid alignType '${alignType}'.`);\n }\n};\n\n// src/document/builders/indent.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\n\n// src/document/builders/align.js\nfunction align(alignType, contents) {\n assertAlignType(alignType);\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: alignType };\n}\nfunction dedentToRoot(contents) {\n return align(Number.NEGATIVE_INFINITY, contents);\n}\nfunction markAsRoot(contents) {\n return align({ type: \"root\" }, contents);\n}\nfunction dedent(contents) {\n return align(-1, contents);\n}\nfunction addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let level = 0; level < Math.floor(size / tabWidth); ++level) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\n\n// src/document/builders/break-parent.js\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\n\n// src/document/builders/cursor.js\nvar cursor = { type: DOC_TYPE_CURSOR };\n\n// src/document/builders/fill.js\nfunction fill(parts) {\n assertDocFillParts(parts);\n return { type: DOC_TYPE_FILL, parts };\n}\n\n// src/document/builders/group.js\nfunction group(contents, options = {}) {\n assertDoc(contents);\n assertDocArray(\n options.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: options.id,\n contents,\n break: Boolean(options.shouldBreak),\n expandedStates: options.expandedStates\n };\n}\nfunction conditionalGroup(states, options) {\n return group(states[0], { ...options, expandedStates: states });\n}\n\n// src/document/builders/if-break.js\nfunction ifBreak(breakContents, flatContents = \"\", options = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: options.groupId\n };\n}\n\n// src/document/builders/indent-if-break.js\nfunction indentIfBreak(contents, options) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: options.groupId,\n negate: options.negate\n };\n}\n\n// src/document/builders/join.js\nfunction join(separator, docs) {\n assertDoc(separator);\n assertDocArray(docs);\n const parts = [];\n for (let i = 0; i < docs.length; i++) {\n if (i !== 0) {\n parts.push(separator);\n }\n parts.push(docs[i]);\n }\n return parts;\n}\n\n// src/document/builders/label.js\nfunction label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n}\n\n// src/document/builders/line.js\nvar line = { type: DOC_TYPE_LINE };\nvar softline = { type: DOC_TYPE_LINE, soft: true };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n};\nvar literalline = [literallineWithoutBreakParent, breakParent];\n\n// src/document/builders/line-suffix.js\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\n\n// src/document/builders/line-suffix-boundary.js\nvar lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\n\n// src/document/builders/trim.js\nvar trim = { type: DOC_TYPE_TRIM };\n\n// scripts/build/shims/method-replace-all.js\nvar stringReplaceAll = String.prototype.replaceAll ?? function(pattern, replacement) {\n if (pattern.global) {\n return this.replace(pattern, replacement);\n }\n return this.split(pattern).join(replacement);\n};\nvar replaceAll = createMethodShim(\"replaceAll\", function() {\n if (typeof this === \"string\") {\n return stringReplaceAll;\n }\n});\nvar method_replace_all_default = replaceAll;\n\n// src/common/end-of-line.js\nvar OPTION_CR = \"cr\";\nvar OPTION_CRLF = \"crlf\";\nvar CHARACTER_CR = \"\\r\";\nvar CHARACTER_CRLF = \"\\r\\n\";\nvar CHARACTER_LF = \"\\n\";\nvar DEFAULT_EOL = CHARACTER_LF;\nfunction convertEndOfLineOptionToCharacter(endOfLineOption) {\n return endOfLineOption === OPTION_CR ? CHARACTER_CR : endOfLineOption === OPTION_CRLF ? CHARACTER_CRLF : DEFAULT_EOL;\n}\n\n// node_modules/emoji-regex/index.mjs\nvar emoji_regex_default = () => {\n 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](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n\n// node_modules/get-east-asian-width/lookup.js\nfunction isFullWidth(x) {\n return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;\n}\nfunction isWide(x) {\n 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 >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || 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 <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && 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 <= 94198 || x >= 94208 && x <= 101589 || x >= 101631 && x <= 101662 || x >= 101760 && x <= 101874 || 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 >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || 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 <= 128728 || 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 <= 129674 || x >= 129678 && x <= 129734 || x === 129736 || x >= 129741 && x <= 129756 || x >= 129759 && x <= 129770 || x >= 129775 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// src/utilities/narrow-emojis.evaluate.js\nvar narrow_emojis_evaluate_default = \"\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194\\u2195\\u2196\\u2197\\u2198\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23F1\\u23F2\\u23F8\\u23F9\\u23FA\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600\\u2601\\u2602\\u2603\\u2604\\u260E\\u2611\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638\\u2639\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694\\u2695\\u2696\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F1\\u26F7\\u26F8\\u26F9\\u2702\\u2708\\u2709\\u270C\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u2764\\u27A1\\u2934\\u2935\\u2B05\\u2B06\\u2B07\";\n\n// src/utilities/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nvar narrowEmojisSet = new Set(narrow_emojis_evaluate_default);\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(\n emoji_regex_default(),\n (match) => narrowEmojisSet.has(match) ? \" \" : \" \"\n );\n let width = 0;\n for (const character of text) {\n const codePoint = character.codePointAt(0);\n if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {\n continue;\n }\n if (codePoint >= 768 && codePoint <= 879) {\n continue;\n }\n if (codePoint >= 65024 && codePoint <= 65039) {\n continue;\n }\n width += isFullWidth(codePoint) || isWide(codePoint) ? 2 : 1;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/printer/indent.js\nvar INDENT_COMMAND_TYPE_INDENT = 0;\nvar INDENT_COMMAND_TYPE_DEDENT = 1;\nvar INDENT_COMMAND_TYPE_WIDTH = 2;\nvar INDENT_COMMAND_TYPE_STRING = 3;\nvar INDENT_COMMAND_INDENT = { type: INDENT_COMMAND_TYPE_INDENT };\nvar INDENT_COMMAND_DEDENT = { type: INDENT_COMMAND_TYPE_DEDENT };\nvar ROOT_INDENT = {\n value: \"\",\n length: 0,\n queue: [],\n get root() {\n return ROOT_INDENT;\n }\n};\nfunction generateIndent(indent2, command, options) {\n const queue = command.type === INDENT_COMMAND_TYPE_DEDENT ? indent2.queue.slice(0, -1) : [...indent2.queue, command];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const command2 of queue) {\n switch (command2.type) {\n case INDENT_COMMAND_TYPE_INDENT:\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case INDENT_COMMAND_TYPE_STRING: {\n const { string } = command2;\n flush();\n value += string;\n length += string.length;\n break;\n }\n case INDENT_COMMAND_TYPE_WIDTH: {\n const { width } = command2;\n lastTabs += 1;\n lastSpaces += width;\n break;\n }\n default:\n throw new Error(`Unexpected indent comment '${command2.type}'.`);\n }\n }\n flushSpaces();\n return { ...indent2, value, length, queue };\n function addTabs(count) {\n value += \"\t\".repeat(count);\n length += options.tabWidth * count;\n }\n function addSpaces(count) {\n value += \" \".repeat(count);\n length += count;\n }\n function flush() {\n if (options.useTabs) {\n flushTabs();\n } else {\n flushSpaces();\n }\n }\n function flushTabs() {\n if (lastTabs > 0) {\n addTabs(lastTabs);\n }\n resetLast();\n }\n function flushSpaces() {\n if (lastSpaces > 0) {\n addSpaces(lastSpaces);\n }\n resetLast();\n }\n function resetLast() {\n lastTabs = 0;\n lastSpaces = 0;\n }\n}\nfunction makeAlign(indent2, indentOptions, options) {\n if (!indentOptions) {\n return indent2;\n }\n if (indentOptions.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n if (indentOptions === Number.NEGATIVE_INFINITY) {\n return indent2.root;\n }\n let command;\n if (typeof indentOptions === \"number\") {\n if (indentOptions < 0) {\n command = INDENT_COMMAND_DEDENT;\n } else {\n command = { type: INDENT_COMMAND_TYPE_WIDTH, width: indentOptions };\n }\n } else {\n command = { type: INDENT_COMMAND_TYPE_STRING, string: indentOptions };\n }\n return generateIndent(indent2, command, options);\n}\nfunction makeIndent(indent2, options) {\n return generateIndent(indent2, INDENT_COMMAND_INDENT, options);\n}\n\n// src/document/printer/trim-indentation.js\nfunction getTrailingIndentionLength(text) {\n let length = 0;\n for (let index = text.length - 1; index >= 0; index--) {\n const character = text[index];\n if (character === \" \" || character === \"\t\") {\n length++;\n } else {\n break;\n }\n }\n return length;\n}\nfunction trimIndentation(text) {\n const length = getTrailingIndentionLength(text);\n const trimmed = length === 0 ? text : text.slice(0, text.length - length);\n return { text: trimmed, count: length };\n}\n\n// src/document/printer/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\nfunction fits(next, restCommands, remainingWidth, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (remainingWidth === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restCommandsIndex = restCommands.length;\n let hasPendingSpace = false;\n const commands = [next];\n let output = \"\";\n while (remainingWidth >= 0) {\n if (commands.length === 0) {\n if (restCommandsIndex === 0) {\n return true;\n }\n commands.push(restCommands[--restCommandsIndex]);\n continue;\n }\n const {\n mode,\n doc\n } = commands.pop();\n const docType = get_doc_type_default(doc);\n switch (docType) {\n case DOC_TYPE_STRING:\n if (doc) {\n if (hasPendingSpace) {\n output += \" \";\n remainingWidth -= 1;\n hasPendingSpace = false;\n }\n output += doc;\n remainingWidth -= get_string_width_default(doc);\n }\n break;\n case DOC_TYPE_ARRAY:\n case DOC_TYPE_FILL: {\n const parts = docType === DOC_TYPE_ARRAY ? doc : doc.parts;\n const end = doc[DOC_FILL_PRINTED_LENGTH] ?? 0;\n for (let index = parts.length - 1; index >= end; index--) {\n commands.push({\n mode,\n doc: parts[index]\n });\n }\n break;\n }\n case DOC_TYPE_INDENT:\n case DOC_TYPE_ALIGN:\n case DOC_TYPE_INDENT_IF_BREAK:\n case DOC_TYPE_LABEL:\n commands.push({\n mode,\n doc: doc.contents\n });\n break;\n case DOC_TYPE_TRIM: {\n const {\n text,\n count\n } = trimIndentation(output);\n output = text;\n remainingWidth += count;\n break;\n }\n case DOC_TYPE_GROUP: {\n if (mustBeFlat && doc.break) {\n return false;\n }\n const groupMode = doc.break ? MODE_BREAK : mode;\n const contents = doc.expandedStates && groupMode === MODE_BREAK ? method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n doc.expandedStates,\n -1\n ) : doc.contents;\n commands.push({\n mode: groupMode,\n doc: contents\n });\n break;\n }\n case DOC_TYPE_IF_BREAK: {\n const groupMode = doc.groupId ? groupModeMap[doc.groupId] || MODE_FLAT : mode;\n const contents = groupMode === MODE_BREAK ? doc.breakContents : doc.flatContents;\n if (contents) {\n commands.push({\n mode,\n doc: contents\n });\n }\n break;\n }\n case DOC_TYPE_LINE:\n if (mode === MODE_BREAK || doc.hard) {\n return true;\n }\n if (!doc.soft) {\n hasPendingSpace = true;\n }\n break;\n case DOC_TYPE_LINE_SUFFIX:\n hasLineSuffix = true;\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (hasLineSuffix) {\n return false;\n }\n break;\n }\n }\n return false;\n}\nfunction printDocToString(doc, options) {\n const groupModeMap = /* @__PURE__ */ Object.create(null);\n const width = options.printWidth;\n const newLine = convertEndOfLineOptionToCharacter(options.endOfLine);\n let position = 0;\n const commands = [{\n indent: ROOT_INDENT,\n mode: MODE_BREAK,\n doc\n }];\n let output = \"\";\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n const cursorPositions = [];\n const settledOutput = [];\n const settledCursorPositions = [];\n let settledTextLength = 0;\n propagateBreaks(doc);\n while (commands.length > 0) {\n const {\n indent: indent2,\n mode,\n doc: doc2\n } = commands.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted2 = newLine !== \"\\n\" ? method_replace_all_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n if (formatted2) {\n output += formatted2;\n if (commands.length > 0) {\n position += get_string_width_default(formatted2);\n }\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let index = doc2.length - 1; index >= 0; index--) {\n commands.push({\n indent: indent2,\n mode,\n doc: doc2[index]\n });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (cursorPositions.length >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n cursorPositions.push(settledTextLength + output.length);\n break;\n case DOC_TYPE_INDENT:\n commands.push({\n indent: makeIndent(indent2, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_ALIGN:\n commands.push({\n indent: makeAlign(indent2, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n trim2();\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n commands.push({\n indent: indent2,\n mode: doc2.break ? MODE_BREAK : MODE_FLAT,\n doc: doc2.contents\n });\n break;\n }\n // fallthrough\n case MODE_BREAK: {\n shouldRemeasure = false;\n const next = {\n indent: indent2,\n mode: MODE_FLAT,\n doc: doc2.contents\n };\n const remainingWidth = width - position;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, commands, remainingWidth, hasLineSuffix, groupModeMap)) {\n commands.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n commands.push({\n indent: indent2,\n mode: MODE_BREAK,\n doc: mostExpanded\n });\n break;\n } else {\n for (let index = 1; index < doc2.expandedStates.length + 1; index++) {\n if (index >= doc2.expandedStates.length) {\n commands.push({\n indent: indent2,\n mode: MODE_BREAK,\n doc: mostExpanded\n });\n break;\n } else {\n const state = doc2.expandedStates[index];\n const cmd = {\n indent: indent2,\n mode: MODE_FLAT,\n doc: state\n };\n if (fits(cmd, commands, remainingWidth, hasLineSuffix, groupModeMap)) {\n commands.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n commands.push({\n indent: indent2,\n mode: MODE_BREAK,\n doc: doc2.contents\n });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n commands,\n -1\n ).mode;\n }\n break;\n // Fills each line with as much code as possible before moving to a new\n // line with the same indentation.\n //\n // Expects doc.parts to be an array of alternating content and\n // whitespace. The whitespace contains the linebreaks.\n //\n // For example:\n // [\"I\", line, \"love\", line, \"monkeys\"]\n // or\n // [{ type: group, ... }, softline, { type: group, ... }]\n //\n // It uses this parts structure to handle three main layout cases:\n // * The first two content items fit on the same line without\n // breaking\n // -> output the first content item and the whitespace \"flat\".\n // * Only the first content item fits on the line without breaking\n // -> output the first content item \"flat\" and the whitespace with\n // \"break\".\n // * Neither content item fits on the line without breaking\n // -> output the first content item and the whitespace with \"break\".\n case DOC_TYPE_FILL: {\n const remainingWidth = width - position;\n const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const {\n parts\n } = doc2;\n const length = parts.length - offset;\n if (length === 0) {\n break;\n }\n const content = parts[offset + 0];\n const whitespace = parts[offset + 1];\n const contentFlatCommand = {\n indent: indent2,\n mode: MODE_FLAT,\n doc: content\n };\n const contentBreakCommand = {\n indent: indent2,\n mode: MODE_BREAK,\n doc: content\n };\n const contentFits = fits(contentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true);\n if (length === 1) {\n if (contentFits) {\n commands.push(contentFlatCommand);\n } else {\n commands.push(contentBreakCommand);\n }\n break;\n }\n const whitespaceFlatCommand = {\n indent: indent2,\n mode: MODE_FLAT,\n doc: whitespace\n };\n const whitespaceBreakCommand = {\n indent: indent2,\n mode: MODE_BREAK,\n doc: whitespace\n };\n if (length === 2) {\n if (contentFits) {\n commands.push(whitespaceFlatCommand, contentFlatCommand);\n } else {\n commands.push(whitespaceBreakCommand, contentBreakCommand);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCommand = {\n indent: indent2,\n mode,\n doc: {\n ...doc2,\n [DOC_FILL_PRINTED_LENGTH]: offset + 2\n }\n };\n const firstAndSecondContentFlatCommand = {\n indent: indent2,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(firstAndSecondContentFlatCommand, [], remainingWidth, lineSuffix2.length > 0, groupModeMap, true);\n commands.push(remainingCommand);\n if (firstAndSecondContentFits) {\n commands.push(whitespaceFlatCommand, contentFlatCommand);\n } else if (contentFits) {\n commands.push(whitespaceBreakCommand, contentFlatCommand);\n } else {\n commands.push(whitespaceBreakCommand, contentBreakCommand);\n }\n break;\n }\n case DOC_TYPE_IF_BREAK:\n case DOC_TYPE_INDENT_IF_BREAK: {\n const groupMode = doc2.groupId ? groupModeMap[doc2.groupId] : mode;\n if (groupMode === MODE_BREAK) {\n const breakContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.breakContents : doc2.negate ? doc2.contents : indent(doc2.contents);\n if (breakContents) {\n commands.push({\n indent: indent2,\n mode,\n doc: breakContents\n });\n }\n }\n if (groupMode === MODE_FLAT) {\n const flatContents = doc2.type === DOC_TYPE_IF_BREAK ? doc2.flatContents : doc2.negate ? indent(doc2.contents) : doc2.contents;\n if (flatContents) {\n commands.push({\n indent: indent2,\n mode,\n doc: flatContents\n });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({\n indent: indent2,\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n commands.push({\n indent: indent2,\n mode,\n doc: hardlineWithoutBreakParent\n });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n output += \" \";\n position += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n commands.push({\n indent: indent2,\n mode,\n doc: doc2\n }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n output += newLine;\n position = 0;\n if (indent2.root) {\n if (indent2.root.value) {\n output += indent2.root.value;\n }\n position = indent2.root.length;\n }\n } else {\n trim2();\n output += newLine + indent2.value;\n position = indent2.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n commands.push({\n indent: indent2,\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (commands.length === 0 && lineSuffix2.length > 0) {\n commands.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const formatted = settledOutput.join(\"\") + output;\n const finalCursorPositions = [...settledCursorPositions, ...cursorPositions];\n if (finalCursorPositions.length !== 2) {\n return {\n formatted\n };\n }\n const cursorNodeStart = finalCursorPositions[0];\n return {\n formatted,\n cursorNodeStart,\n cursorNodeText: formatted.slice(cursorNodeStart, method_at_default(\n /* OPTIONAL_OBJECT: false */\n 0,\n finalCursorPositions,\n -1\n ))\n };\n function trim2() {\n const {\n text: trimmed,\n count\n } = trimIndentation(output);\n if (trimmed) {\n settledOutput.push(trimmed);\n settledTextLength += trimmed.length;\n }\n output = \"\";\n position -= count;\n if (cursorPositions.length > 0) {\n settledCursorPositions.push(...cursorPositions.map((position2) => Math.min(position2, settledTextLength)));\n cursorPositions.length = 0;\n }\n }\n}\n\n// src/document/public.js\nvar builders = {\n join,\n line,\n softline,\n hardline,\n literalline,\n group,\n conditionalGroup,\n fill,\n lineSuffix,\n lineSuffixBoundary,\n cursor,\n breakParent,\n ifBreak,\n trim,\n indent,\n indentIfBreak,\n align,\n addAlignmentToDoc,\n markAsRoot,\n dedentToRoot,\n dedent,\n hardlineWithoutBreakParent,\n literallineWithoutBreakParent,\n label,\n // TODO: Remove this in v4\n concat: (parts) => parts\n};\nvar printer = { printDocToString };\nvar utils = {\n willBreak,\n traverseDoc: traverse_doc_default,\n findInDoc,\n mapDoc,\n removeLines,\n stripTrailingHardline,\n replaceEndOfLine,\n canBreak\n};\nexport {\n builders,\n public_exports as default,\n printer,\n utils\n};\n","import { transform, type TransformResult } from \"../transformer/index.js\"\nimport type { ParseResult } from \"../parser/index.js\"\nimport * as prettier from \"prettier\"\n\nexport interface GeneratorOptions {\n includeRuntime?: boolean\n runtimeImportPath?: string\n}\n\nexport interface GeneratedCode {\n code: string\n runtimeImport: string | null\n usedRuntimeFunctions: string[]\n}\n\nconst defaultOptions: GeneratorOptions = {\n includeRuntime: true,\n runtimeImportPath: \"pythonlib\"\n}\n\n/** Prettier configuration for generated TypeScript code */\nconst prettierOptions: prettier.Options = {\n parser: \"typescript\",\n singleQuote: false,\n tabWidth: 2,\n trailingComma: \"none\",\n printWidth: 100,\n semi: false,\n bracketSpacing: true,\n arrowParens: \"always\",\n endOfLine: \"lf\"\n}\n\n/** List of functions available in the main pythonlib export (builtins + core) */\nconst BUILTINS = new Set([\n // Core operations\n \"floordiv\",\n \"pow\",\n \"mod\",\n \"sprintf\",\n \"slice\",\n \"at\",\n \"contains\",\n \"repeatValue\",\n \"strFormat\",\n \"divmod\",\n // Collection constructors\n \"list\",\n \"dict\",\n \"set\",\n \"tuple\",\n // Iteration\n \"len\",\n \"range\",\n \"enumerate\",\n \"zip\",\n \"sorted\",\n \"reversed\",\n \"iter\",\n \"map\",\n \"filter\",\n // Aggregation\n \"abs\",\n \"min\",\n \"max\",\n \"sum\",\n \"all\",\n \"any\",\n \"round\",\n // Character/number conversion\n \"ord\",\n \"chr\",\n \"hex\",\n \"oct\",\n \"bin\",\n // Type conversion\n \"int\",\n \"float\",\n \"str\",\n \"bool\",\n \"repr\",\n \"ascii\",\n // Type checking & misc\n \"isinstance\",\n \"type\",\n \"input\",\n \"format\"\n])\n\n/** Mapping of module namespaces that should still use namespace.method() style */\nconst MODULE_NAMESPACES = new Set([\"string\", \"list\", \"dict\", \"set\"])\n\n/**\n * Generate TypeScript code from Python (sync, unformatted)\n * For formatted output, use generateAsync()\n */\nexport function generate(\n input: string | ParseResult,\n options: GeneratorOptions = {}\n): GeneratedCode {\n const opts = { ...defaultOptions, ...options }\n const result: TransformResult = transform(input)\n\n const usedRuntimeFunctions = Array.from(result.usesRuntime).sort()\n\n let runtimeImport: string | null = null\n if (opts.includeRuntime && usedRuntimeFunctions.length > 0) {\n const basePath = opts.runtimeImportPath ?? \"pythonlib\"\n runtimeImport = buildRuntimeImports(usedRuntimeFunctions, basePath)\n }\n\n let code = result.code\n\n // Add runtime import at the top if needed\n if (runtimeImport) {\n code = runtimeImport + \"\\n\\n\" + code\n }\n\n return {\n code,\n runtimeImport,\n usedRuntimeFunctions\n }\n}\n\n/**\n * Build import statements from pythonlib based on what's used.\n *\n * Format of usedFunctions:\n * - Builtins: \"len\", \"range\", \"sorted\"\n * - Core ops: \"floordiv\", \"mod\", \"pow\", \"slice\"\n * - Module functions: \"itertools/chain\", \"json/dump\", \"re/match\"\n * - Namespace methods: \"list.append\", \"dict.get\", \"string.join\"\n */\nfunction buildRuntimeImports(usedFunctions: string[], basePath: string): string {\n // Group imports by module\n const mainImports = new Set<string>()\n const moduleImports = new Map<string, Set<string>>()\n\n for (const func of usedFunctions) {\n // Module function: \"itertools/chain\" -> import { chain } from \"pythonlib/itertools\"\n if (func.includes(\"/\")) {\n const [moduleName, funcName] = func.split(\"/\")\n if (moduleName && funcName) {\n let funcs = moduleImports.get(moduleName)\n if (!funcs) {\n funcs = new Set()\n moduleImports.set(moduleName, funcs)\n }\n funcs.add(funcName)\n }\n continue\n }\n\n // Namespace methods: \"list.append\" -> import { list } from \"pythonlib\"\n if (func.includes(\".\")) {\n const [namespace] = func.split(\".\")\n if (namespace && MODULE_NAMESPACES.has(namespace)) {\n mainImports.add(namespace)\n }\n continue\n }\n\n // Module namespaces used directly (for namespace.method() style)\n if (MODULE_NAMESPACES.has(func)) {\n mainImports.add(func)\n continue\n }\n\n // Builtins and core ops -> import from main \"pythonlib\"\n if (BUILTINS.has(func)) {\n mainImports.add(func)\n continue\n }\n\n // Unknown - add to main imports (for future compatibility)\n mainImports.add(func)\n }\n\n // Build import statements\n const importStatements: string[] = []\n\n // Main pythonlib imports\n if (mainImports.size > 0) {\n const sorted = Array.from(mainImports).sort()\n importStatements.push(`import { ${sorted.join(\", \")} } from \"${basePath}\"`)\n }\n\n // Module-specific imports (sorted by module name)\n const sortedModules = Array.from(moduleImports.keys()).sort()\n for (const moduleName of sortedModules) {\n const funcSet = moduleImports.get(moduleName)\n if (funcSet) {\n const funcs = Array.from(funcSet).sort()\n importStatements.push(`import { ${funcs.join(\", \")} } from \"${basePath}/${moduleName}\"`)\n }\n }\n\n return importStatements.join(\"\\n\")\n}\n\n/**\n * Transpile Python to TypeScript (sync, unformatted)\n * For formatted output, use transpileAsync()\n */\nexport function transpile(python: string, options: GeneratorOptions = {}): string {\n return generate(python, options).code\n}\n\n/**\n * Format TypeScript code using Prettier\n */\nexport async function formatCode(code: string): Promise<string> {\n try {\n return await prettier.format(code, prettierOptions)\n } catch {\n // If formatting fails (e.g., syntax error in generated code), return unformatted\n return code\n }\n}\n\n/**\n * Generate TypeScript code from Python (async, formatted with Prettier)\n */\nexport async function generateAsync(\n input: string | ParseResult,\n options: GeneratorOptions = {}\n): Promise<GeneratedCode> {\n const result = generate(input, options)\n const formattedCode = await formatCode(result.code)\n\n return {\n ...result,\n code: formattedCode\n }\n}\n\n/**\n * Transpile Python to TypeScript (async, formatted with Prettier)\n */\nexport async function transpileAsync(\n python: string,\n options: GeneratorOptions = {}\n): Promise<string> {\n const result = await generateAsync(python, options)\n return result.code\n}\n"],"mappings":"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","names":["source","cursor","indent","source","c","line","indent","rightCode","pos","key","literal","caseValue","targets","target","targetCode","tsType","typeAnnotation","modifiers","prefix","methodDecl","options","i","__export","process2","options","indent2","lineSuffix2","require","__defProp","__export","utils","transform","fill","generate","group","noop2","cursor2","trim","public_exports","line","parse2","require2","OPTIONAL_OBJECT","createMethodShim","stringReplaceAll","replaceAll","method_replace_all_default","OPTION_CR","OPTION_CRLF","CHARACTER_CR","CHARACTER_CRLF","CHARACTER_LF","DEFAULT_EOL","convertEndOfLineOptionToCharacter","stringOrArrayAt","at","method_at_default","noop","noop_default","DOC_TYPE_CURSOR","DOC_TYPE_INDENT","DOC_TYPE_ALIGN","DOC_TYPE_TRIM","DOC_TYPE_GROUP","DOC_TYPE_FILL","DOC_TYPE_IF_BREAK","DOC_TYPE_INDENT_IF_BREAK","DOC_TYPE_LINE_SUFFIX","DOC_TYPE_LINE_SUFFIX_BOUNDARY","DOC_TYPE_LINE","DOC_TYPE_LABEL","DOC_TYPE_BREAK_PARENT","emoji_regex_default","isFullWidth","isWide","narrow_emojis_evaluate_default","notAsciiRegex","narrowEmojisSet","getStringWidth","get_string_width_default","getChildren","breakParent","hardline","indent","line2","lineSuffix","printer","hardline2","markAsRoot","parser","printer","parser","stripTrailingHardline","cursor","getChildren","createMethodShim","addAlignmentToDoc","convertEndOfLineOptionToCharacter","method_replace_all_default","printDocToString","__export","public_exports","get_string_width_default","options"]}
|