@typespec/prettier-plugin-typespec 0.65.0 → 0.66.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../compiler/dist/src/core/source-file.js","../../compiler/dist/src/core/types.js","../../compiler/dist/src/utils/misc.js","../../compiler/dist/src/core/diagnostic-creator.js","../../compiler/dist/src/core/param-message.js","../../compiler/dist/src/core/messages.js","../../compiler/dist/src/core/diagnostics.js","../../compiler/dist/src/core/nonascii.js","../../compiler/dist/src/core/charcode.js","../../compiler/dist/src/core/scanner.js","../../compiler/dist/src/core/parser.js","../../compiler/dist/src/core/helpers/syntax-utils.js","../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs","../../compiler/dist/src/formatter/parser.js","../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.mjs","../../compiler/dist/src/formatter/print/util.js","../../compiler/dist/src/formatter/print/comment-handler.js","../../compiler/dist/src/formatter/print/needs-parens.js","../../compiler/dist/src/formatter/print/printer.js","../../compiler/dist/src/formatter/index.js","../../compiler/dist/src/index.js","../src/index.mjs"],"sourcesContent":["import { getAnyExtensionFromPath } from \"./path-utils.js\";\nexport function createSourceFile(text, path) {\n let lineStarts = undefined;\n return {\n text,\n path,\n getLineStarts,\n getLineAndCharacterOfPosition,\n };\n function getLineStarts() {\n return (lineStarts = lineStarts ?? scanLineStarts(text));\n }\n function getLineAndCharacterOfPosition(position) {\n const starts = getLineStarts();\n let line = binarySearch(starts, position);\n // When binarySearch returns < 0 indicating that the value was not found, it\n // returns the bitwise complement of the index where the value would need to\n // be inserted to keep the array sorted. So flipping the bits back to this\n // positive index tells us what the line number would be if we were to\n // create a new line starting at the given position, and subtracting 1 from\n // that therefore gives us the line number we're after.\n if (line < 0) {\n line = ~line - 1;\n }\n return {\n line,\n character: position - starts[line],\n };\n }\n}\nexport function getSourceFileKindFromExt(path) {\n const ext = getAnyExtensionFromPath(path);\n if (ext === \".js\" || ext === \".mjs\") {\n return \"js\";\n }\n else if (ext === \".tsp\" || ext === \".cadl\") {\n return \"typespec\";\n }\n else {\n return undefined;\n }\n}\nfunction scanLineStarts(text) {\n const starts = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n pos++;\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos) === 10 /* CharCode.LineFeed */) {\n pos++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n starts.push(start);\n start = pos;\n break;\n }\n }\n starts.push(start);\n return starts;\n}\n/**\n * Search sorted array of numbers for the given value. If found, return index\n * in array where value was found. If not found, return a negative number that\n * is the bitwise complement of the index where value would need to be inserted\n * to keep the array sorted.\n */\nfunction binarySearch(array, value) {\n let low = 0;\n let high = array.length - 1;\n while (low <= high) {\n const middle = low + ((high - low) >> 1);\n const v = array[middle];\n if (v < value) {\n low = middle + 1;\n }\n else if (v > value) {\n high = middle - 1;\n }\n else {\n return middle;\n }\n }\n return ~low;\n}\n//# sourceMappingURL=source-file.js.map","export var ResolutionResultFlags;\n(function (ResolutionResultFlags) {\n ResolutionResultFlags[ResolutionResultFlags[\"None\"] = 0] = \"None\";\n ResolutionResultFlags[ResolutionResultFlags[\"Resolved\"] = 2] = \"Resolved\";\n ResolutionResultFlags[ResolutionResultFlags[\"Unknown\"] = 4] = \"Unknown\";\n ResolutionResultFlags[ResolutionResultFlags[\"Ambiguous\"] = 8] = \"Ambiguous\";\n ResolutionResultFlags[ResolutionResultFlags[\"NotFound\"] = 16] = \"NotFound\";\n ResolutionResultFlags[ResolutionResultFlags[\"ResolutionFailed\"] = 28] = \"ResolutionFailed\";\n})(ResolutionResultFlags || (ResolutionResultFlags = {}));\n/**\n * AST types\n */\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"TypeSpecScript\"] = 0] = \"TypeSpecScript\";\n /** @deprecated Use TypeSpecScript */\n SyntaxKind[SyntaxKind[\"CadlScript\"] = 0] = \"CadlScript\";\n SyntaxKind[SyntaxKind[\"JsSourceFile\"] = 1] = \"JsSourceFile\";\n SyntaxKind[SyntaxKind[\"ImportStatement\"] = 2] = \"ImportStatement\";\n SyntaxKind[SyntaxKind[\"Identifier\"] = 3] = \"Identifier\";\n SyntaxKind[SyntaxKind[\"AugmentDecoratorStatement\"] = 4] = \"AugmentDecoratorStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorExpression\"] = 5] = \"DecoratorExpression\";\n SyntaxKind[SyntaxKind[\"DirectiveExpression\"] = 6] = \"DirectiveExpression\";\n SyntaxKind[SyntaxKind[\"MemberExpression\"] = 7] = \"MemberExpression\";\n SyntaxKind[SyntaxKind[\"NamespaceStatement\"] = 8] = \"NamespaceStatement\";\n SyntaxKind[SyntaxKind[\"UsingStatement\"] = 9] = \"UsingStatement\";\n SyntaxKind[SyntaxKind[\"OperationStatement\"] = 10] = \"OperationStatement\";\n SyntaxKind[SyntaxKind[\"OperationSignatureDeclaration\"] = 11] = \"OperationSignatureDeclaration\";\n SyntaxKind[SyntaxKind[\"OperationSignatureReference\"] = 12] = \"OperationSignatureReference\";\n SyntaxKind[SyntaxKind[\"ModelStatement\"] = 13] = \"ModelStatement\";\n SyntaxKind[SyntaxKind[\"ModelExpression\"] = 14] = \"ModelExpression\";\n SyntaxKind[SyntaxKind[\"ModelProperty\"] = 15] = \"ModelProperty\";\n SyntaxKind[SyntaxKind[\"ModelSpreadProperty\"] = 16] = \"ModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ScalarStatement\"] = 17] = \"ScalarStatement\";\n SyntaxKind[SyntaxKind[\"InterfaceStatement\"] = 18] = \"InterfaceStatement\";\n SyntaxKind[SyntaxKind[\"UnionStatement\"] = 19] = \"UnionStatement\";\n SyntaxKind[SyntaxKind[\"UnionVariant\"] = 20] = \"UnionVariant\";\n SyntaxKind[SyntaxKind[\"EnumStatement\"] = 21] = \"EnumStatement\";\n SyntaxKind[SyntaxKind[\"EnumMember\"] = 22] = \"EnumMember\";\n SyntaxKind[SyntaxKind[\"EnumSpreadMember\"] = 23] = \"EnumSpreadMember\";\n SyntaxKind[SyntaxKind[\"AliasStatement\"] = 24] = \"AliasStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorDeclarationStatement\"] = 25] = \"DecoratorDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionDeclarationStatement\"] = 26] = \"FunctionDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionParameter\"] = 27] = \"FunctionParameter\";\n SyntaxKind[SyntaxKind[\"UnionExpression\"] = 28] = \"UnionExpression\";\n SyntaxKind[SyntaxKind[\"IntersectionExpression\"] = 29] = \"IntersectionExpression\";\n SyntaxKind[SyntaxKind[\"TupleExpression\"] = 30] = \"TupleExpression\";\n SyntaxKind[SyntaxKind[\"ArrayExpression\"] = 31] = \"ArrayExpression\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 32] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 33] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"BooleanLiteral\"] = 34] = \"BooleanLiteral\";\n SyntaxKind[SyntaxKind[\"StringTemplateExpression\"] = 35] = \"StringTemplateExpression\";\n SyntaxKind[SyntaxKind[\"StringTemplateHead\"] = 36] = \"StringTemplateHead\";\n SyntaxKind[SyntaxKind[\"StringTemplateMiddle\"] = 37] = \"StringTemplateMiddle\";\n SyntaxKind[SyntaxKind[\"StringTemplateTail\"] = 38] = \"StringTemplateTail\";\n SyntaxKind[SyntaxKind[\"StringTemplateSpan\"] = 39] = \"StringTemplateSpan\";\n SyntaxKind[SyntaxKind[\"ExternKeyword\"] = 40] = \"ExternKeyword\";\n SyntaxKind[SyntaxKind[\"VoidKeyword\"] = 41] = \"VoidKeyword\";\n SyntaxKind[SyntaxKind[\"NeverKeyword\"] = 42] = \"NeverKeyword\";\n SyntaxKind[SyntaxKind[\"UnknownKeyword\"] = 43] = \"UnknownKeyword\";\n SyntaxKind[SyntaxKind[\"ValueOfExpression\"] = 44] = \"ValueOfExpression\";\n SyntaxKind[SyntaxKind[\"TypeReference\"] = 45] = \"TypeReference\";\n SyntaxKind[SyntaxKind[\"ProjectionReference\"] = 46] = \"ProjectionReference\";\n SyntaxKind[SyntaxKind[\"TemplateParameterDeclaration\"] = 47] = \"TemplateParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"EmptyStatement\"] = 48] = \"EmptyStatement\";\n SyntaxKind[SyntaxKind[\"InvalidStatement\"] = 49] = \"InvalidStatement\";\n SyntaxKind[SyntaxKind[\"LineComment\"] = 50] = \"LineComment\";\n SyntaxKind[SyntaxKind[\"BlockComment\"] = 51] = \"BlockComment\";\n SyntaxKind[SyntaxKind[\"Doc\"] = 52] = \"Doc\";\n SyntaxKind[SyntaxKind[\"DocText\"] = 53] = \"DocText\";\n SyntaxKind[SyntaxKind[\"DocParamTag\"] = 54] = \"DocParamTag\";\n SyntaxKind[SyntaxKind[\"DocPropTag\"] = 55] = \"DocPropTag\";\n SyntaxKind[SyntaxKind[\"DocReturnsTag\"] = 56] = \"DocReturnsTag\";\n SyntaxKind[SyntaxKind[\"DocErrorsTag\"] = 57] = \"DocErrorsTag\";\n SyntaxKind[SyntaxKind[\"DocTemplateTag\"] = 58] = \"DocTemplateTag\";\n SyntaxKind[SyntaxKind[\"DocUnknownTag\"] = 59] = \"DocUnknownTag\";\n SyntaxKind[SyntaxKind[\"Projection\"] = 60] = \"Projection\";\n SyntaxKind[SyntaxKind[\"ProjectionParameterDeclaration\"] = 61] = \"ProjectionParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSelector\"] = 62] = \"ProjectionModelSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionModelPropertySelector\"] = 63] = \"ProjectionModelPropertySelector\";\n SyntaxKind[SyntaxKind[\"ProjectionScalarSelector\"] = 64] = \"ProjectionScalarSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionOperationSelector\"] = 65] = \"ProjectionOperationSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionSelector\"] = 66] = \"ProjectionUnionSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionVariantSelector\"] = 67] = \"ProjectionUnionVariantSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionInterfaceSelector\"] = 68] = \"ProjectionInterfaceSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumSelector\"] = 69] = \"ProjectionEnumSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumMemberSelector\"] = 70] = \"ProjectionEnumMemberSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionExpressionStatement\"] = 71] = \"ProjectionExpressionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionIfExpression\"] = 72] = \"ProjectionIfExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionBlockExpression\"] = 73] = \"ProjectionBlockExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionMemberExpression\"] = 74] = \"ProjectionMemberExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLogicalExpression\"] = 75] = \"ProjectionLogicalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionEqualityExpression\"] = 76] = \"ProjectionEqualityExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionUnaryExpression\"] = 77] = \"ProjectionUnaryExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionRelationalExpression\"] = 78] = \"ProjectionRelationalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionArithmeticExpression\"] = 79] = \"ProjectionArithmeticExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionCallExpression\"] = 80] = \"ProjectionCallExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaExpression\"] = 81] = \"ProjectionLambdaExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaParameterDeclaration\"] = 82] = \"ProjectionLambdaParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelExpression\"] = 83] = \"ProjectionModelExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionModelProperty\"] = 84] = \"ProjectionModelProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSpreadProperty\"] = 85] = \"ProjectionModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionSpreadProperty\"] = 86] = \"ProjectionSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionTupleExpression\"] = 87] = \"ProjectionTupleExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionStatement\"] = 88] = \"ProjectionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionDecoratorReferenceExpression\"] = 89] = \"ProjectionDecoratorReferenceExpression\";\n SyntaxKind[SyntaxKind[\"Return\"] = 90] = \"Return\";\n SyntaxKind[SyntaxKind[\"JsNamespaceDeclaration\"] = 91] = \"JsNamespaceDeclaration\";\n SyntaxKind[SyntaxKind[\"TemplateArgument\"] = 92] = \"TemplateArgument\";\n SyntaxKind[SyntaxKind[\"TypeOfExpression\"] = 93] = \"TypeOfExpression\";\n SyntaxKind[SyntaxKind[\"ObjectLiteral\"] = 94] = \"ObjectLiteral\";\n SyntaxKind[SyntaxKind[\"ObjectLiteralProperty\"] = 95] = \"ObjectLiteralProperty\";\n SyntaxKind[SyntaxKind[\"ObjectLiteralSpreadProperty\"] = 96] = \"ObjectLiteralSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ArrayLiteral\"] = 97] = \"ArrayLiteral\";\n SyntaxKind[SyntaxKind[\"ConstStatement\"] = 98] = \"ConstStatement\";\n SyntaxKind[SyntaxKind[\"CallExpression\"] = 99] = \"CallExpression\";\n SyntaxKind[SyntaxKind[\"ScalarConstructor\"] = 100] = \"ScalarConstructor\";\n})(SyntaxKind || (SyntaxKind = {}));\nexport var IdentifierKind;\n(function (IdentifierKind) {\n IdentifierKind[IdentifierKind[\"TypeReference\"] = 0] = \"TypeReference\";\n IdentifierKind[IdentifierKind[\"TemplateArgument\"] = 1] = \"TemplateArgument\";\n IdentifierKind[IdentifierKind[\"Decorator\"] = 2] = \"Decorator\";\n IdentifierKind[IdentifierKind[\"Function\"] = 3] = \"Function\";\n IdentifierKind[IdentifierKind[\"Using\"] = 4] = \"Using\";\n IdentifierKind[IdentifierKind[\"Declaration\"] = 5] = \"Declaration\";\n IdentifierKind[IdentifierKind[\"ModelExpressionProperty\"] = 6] = \"ModelExpressionProperty\";\n IdentifierKind[IdentifierKind[\"ModelStatementProperty\"] = 7] = \"ModelStatementProperty\";\n IdentifierKind[IdentifierKind[\"ObjectLiteralProperty\"] = 8] = \"ObjectLiteralProperty\";\n IdentifierKind[IdentifierKind[\"Other\"] = 9] = \"Other\";\n})(IdentifierKind || (IdentifierKind = {}));\n/** Used to explicitly specify that a diagnostic has no target. */\nexport const NoTarget = Symbol.for(\"NoTarget\");\nexport var ListenerFlow;\n(function (ListenerFlow) {\n /**\n * Do not navigate any containing or referenced type.\n */\n ListenerFlow[ListenerFlow[\"NoRecursion\"] = 1] = \"NoRecursion\";\n})(ListenerFlow || (ListenerFlow = {}));\n//# sourceMappingURL=types.js.map","import { createDiagnostic } from \"../core/messages.js\";\nimport { getDirectoryPath, isPathAbsolute, isUrl, joinPaths, normalizePath, resolvePath, } from \"../core/path-utils.js\";\nimport { createSourceFile } from \"../core/source-file.js\";\nimport { NoTarget, } from \"../core/types.js\";\nexport { typespecVersion } from \"../manifest.js\";\n/**\n * Recursively calls Object.freeze such that all objects and arrays\n * referenced are frozen.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepFreeze(value) {\n if (Array.isArray(value)) {\n value.forEach(deepFreeze);\n }\n else if (typeof value === \"object\") {\n for (const prop in value) {\n deepFreeze(value[prop]);\n }\n }\n return Object.freeze(value);\n}\n/**\n * Deeply clones an object.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepClone(value) {\n if (Array.isArray(value)) {\n return value.map(deepClone);\n }\n if (typeof value === \"object\") {\n const obj = {};\n for (const prop in value) {\n obj[prop] = deepClone(value[prop]);\n }\n return obj;\n }\n return value;\n}\n/**\n * Checks if two objects are deeply equal.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepEquals(left, right) {\n if (left === right) {\n return true;\n }\n if (left === null || right === null || typeof left !== \"object\" || typeof right !== \"object\") {\n return false;\n }\n if (Array.isArray(left)) {\n return Array.isArray(right) ? arrayEquals(left, right, deepEquals) : false;\n }\n return mapEquals(new Map(Object.entries(left)), new Map(Object.entries(right)), deepEquals);\n}\n/**\n * Check if two arrays have the same elements.\n *\n * @param equals Optional callback for element equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function arrayEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (!equals(left[i], right[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Check if two maps have the same entries.\n *\n * @param equals Optional callback for value equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function mapEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.size !== right.size) {\n return false;\n }\n for (const [key, value] of left) {\n if (!right.has(key) || !equals(value, right.get(key))) {\n return false;\n }\n }\n return true;\n}\nexport async function getNormalizedRealPath(host, path) {\n try {\n return normalizePath(await host.realpath(path));\n }\n catch (error) {\n // This could mean the file got deleted but VSCode still has it in memory. So keep the original path.\n if (error.code === \"ENOENT\") {\n return normalizePath(path);\n }\n throw error;\n }\n}\nexport async function doIO(action, path, reportDiagnostic, options) {\n let result;\n try {\n result = await action(path);\n }\n catch (e) {\n let diagnostic;\n let target = options?.diagnosticTarget ?? NoTarget;\n // blame the JS file, not the TypeSpec import statement for JS syntax errors.\n if (e instanceof SyntaxError && options?.jsDiagnosticTarget) {\n target = options.jsDiagnosticTarget;\n }\n switch (e.code) {\n case \"ENOENT\":\n if (options?.allowFileNotFound) {\n return undefined;\n }\n diagnostic = createDiagnostic({ code: \"file-not-found\", target, format: { path } });\n break;\n default:\n diagnostic = createDiagnostic({\n code: \"file-load\",\n target,\n format: { message: e.message },\n });\n break;\n }\n reportDiagnostic(diagnostic);\n return undefined;\n }\n return result;\n}\nexport async function loadFile(host, path, load, reportDiagnostic, options) {\n const file = await doIO(host.readFile, path, reportDiagnostic, options);\n if (!file) {\n return [undefined, createSourceFile(\"\", path)];\n }\n let data;\n try {\n data = load(file.text);\n }\n catch (e) {\n reportDiagnostic({\n code: \"file-load\",\n message: e.message,\n severity: \"error\",\n target: { file, pos: 1, end: 1 },\n });\n return [undefined, file];\n }\n return [data, file];\n}\nexport async function readUrlOrPath(host, pathOrUrl) {\n if (isUrl(pathOrUrl)) {\n return host.readUrl(pathOrUrl);\n }\n return host.readFile(pathOrUrl);\n}\nexport function resolveRelativeUrlOrPath(base, relativeOrAbsolute) {\n if (isUrl(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isPathAbsolute(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isUrl(base)) {\n return new URL(relativeOrAbsolute, base).href;\n }\n else {\n return resolvePath(base, relativeOrAbsolute);\n }\n}\n/**\n * A specially typed version of `Array.isArray` to work around [this issue](https://github.com/microsoft/TypeScript/issues/17002).\n */\nexport function isArray(arg) {\n return Array.isArray(arg);\n}\n/**\n * Check if argument is not undefined.\n */\nexport function isDefined(arg) {\n return arg !== undefined;\n}\nexport function isWhitespaceStringOrUndefined(str) {\n return !str || /^\\s*$/.test(str);\n}\nexport function firstNonWhitespaceCharacterIndex(line) {\n return line.search(/\\S/);\n}\nexport function distinctArray(arr, keySelector) {\n const map = new Map();\n for (const item of arr) {\n map.set(keySelector(item), item);\n }\n return Array.from(map.values());\n}\nexport function tryParseJson(content) {\n try {\n return JSON.parse(content);\n }\n catch {\n return undefined;\n }\n}\nexport function debounce(fn, delayInMs) {\n let timer;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n fn.apply(this, args);\n }, delayInMs);\n };\n}\n/**\n * Remove undefined properties from object.\n */\nexport function omitUndefined(data) {\n return Object.fromEntries(Object.entries(data).filter(([k, v]) => v !== undefined));\n}\n/**\n * Look for the project root by looking up until a `package.json` is found.\n * @param path Path to start looking\n * @param lookIn\n */\nexport async function findProjectRoot(statFn, path) {\n let current = path;\n while (true) {\n const pkgPath = joinPaths(current, \"package.json\");\n const stat = await doIO(() => statFn(pkgPath), pkgPath, () => { });\n if (stat?.isFile()) {\n return current;\n }\n const parent = getDirectoryPath(current);\n if (parent === current) {\n return undefined;\n }\n current = parent;\n }\n}\n/**\n * Extract package.json's tspMain entry point in a given path. Note, it takes into\n * back compat for deprecated cadlMain\n * @param path Path that contains package.json\n * @param reportDiagnostic optional diagnostic handler.\n */\nexport function resolveTspMain(packageJson) {\n if (packageJson?.tspMain !== undefined) {\n return packageJson.tspMain;\n }\n if (packageJson?.cadlMain !== undefined) {\n return packageJson.cadlMain;\n }\n return undefined;\n}\n/**\n * A map keyed by a set of objects.\n *\n * This is likely non-optimal.\n */\nexport class MultiKeyMap {\n #currentId = 0;\n #idMap = new WeakMap();\n #items = new Map();\n get(items) {\n return this.#items.get(this.compositeKeyFor(items));\n }\n set(items, value) {\n const key = this.compositeKeyFor(items);\n this.#items.set(key, value);\n }\n compositeKeyFor(items) {\n return items.map((i) => this.keyFor(i)).join(\",\");\n }\n keyFor(item) {\n if (this.#idMap.has(item)) {\n return this.#idMap.get(item);\n }\n const id = this.#currentId++;\n this.#idMap.set(item, id);\n return id;\n }\n}\n/**\n * A map with exactly two keys per value.\n *\n * Functionally the same as `MultiKeyMap<[K1, K2], V>`, but more efficient.\n * @hidden bug in typedoc\n */\nexport class TwoLevelMap extends Map {\n /**\n * Get an existing entry in the map or add a new one if not found.\n *\n * @param key1 The first key\n * @param key2 The second key\n * @param create A callback to create the new entry when not found.\n * @param sentinel An optional sentinel value to use to indicate that the\n * entry is being created.\n */\n getOrAdd(key1, key2, create, sentinel) {\n let map = this.get(key1);\n if (map === undefined) {\n map = new Map();\n this.set(key1, map);\n }\n let entry = map.get(key2);\n if (entry === undefined) {\n if (sentinel !== undefined) {\n map.set(key2, sentinel);\n }\n entry = create();\n map.set(key2, entry);\n }\n return entry;\n }\n}\n// Adapted from https://github.com/microsoft/TypeScript/blob/bc52ff6f4be9347981de415a35da90497eae84ac/src/compiler/core.ts#L1507\nexport class Queue {\n #elements;\n #headIndex = 0;\n constructor(elements) {\n this.#elements = elements?.slice() ?? [];\n }\n isEmpty() {\n return this.#headIndex === this.#elements.length;\n }\n enqueue(...items) {\n this.#elements.push(...items);\n }\n dequeue() {\n if (this.isEmpty()) {\n throw new Error(\"Queue is empty.\");\n }\n const result = this.#elements[this.#headIndex];\n this.#elements[this.#headIndex] = undefined; // Don't keep referencing dequeued item\n this.#headIndex++;\n // If more than half of the queue is empty, copy the remaining elements to the\n // front and shrink the array (unless we'd be saving fewer than 100 slots)\n if (this.#headIndex > 100 && this.#headIndex > this.#elements.length >> 1) {\n const newLength = this.#elements.length - this.#headIndex;\n this.#elements.copyWithin(0, this.#headIndex);\n this.#elements.length = newLength;\n this.#headIndex = 0;\n }\n return result;\n }\n}\n/**\n * Casts away readonly typing.\n *\n * Use it like this when it is safe to override readonly typing:\n * mutate(item).prop = value;\n */\nexport function mutate(value) {\n return value;\n}\nexport function createStringMap(caseInsensitive) {\n return caseInsensitive ? new CaseInsensitiveMap() : new Map();\n}\nclass CaseInsensitiveMap extends Map {\n get(key) {\n return super.get(key.toUpperCase());\n }\n set(key, value) {\n return super.set(key.toUpperCase(), value);\n }\n has(key) {\n return super.has(key.toUpperCase());\n }\n delete(key) {\n return super.delete(key.toUpperCase());\n }\n}\nexport function createRekeyableMap(entries) {\n return new RekeyableMapImpl(entries);\n}\nclass RekeyableMapImpl {\n #keys = new Map();\n #values = new Map();\n constructor(entries) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n clear() {\n this.#keys.clear();\n this.#values.clear();\n }\n delete(key) {\n const keyItem = this.#keys.get(key);\n if (keyItem) {\n this.#keys.delete(key);\n return this.#values.delete(keyItem);\n }\n return false;\n }\n forEach(callbackfn, thisArg) {\n this.#values.forEach((value, keyItem) => {\n callbackfn(value, keyItem.key, this);\n }, thisArg);\n }\n get(key) {\n const keyItem = this.#keys.get(key);\n return keyItem ? this.#values.get(keyItem) : undefined;\n }\n has(key) {\n return this.#keys.has(key);\n }\n set(key, value) {\n let keyItem = this.#keys.get(key);\n if (!keyItem) {\n keyItem = { key };\n this.#keys.set(key, keyItem);\n }\n this.#values.set(keyItem, value);\n return this;\n }\n get size() {\n return this.#values.size;\n }\n *entries() {\n for (const [k, v] of this.#values) {\n yield [k.key, v];\n }\n }\n *keys() {\n for (const k of this.#values.keys()) {\n yield k.key;\n }\n }\n values() {\n return this.#values.values();\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n [Symbol.toStringTag] = \"RekeyableMap\";\n rekey(existingKey, newKey) {\n const keyItem = this.#keys.get(existingKey);\n if (!keyItem) {\n return false;\n }\n this.#keys.delete(existingKey);\n const newKeyItem = this.#keys.get(newKey);\n if (newKeyItem) {\n this.#values.delete(newKeyItem);\n }\n keyItem.key = newKey;\n this.#keys.set(newKey, keyItem);\n return true;\n }\n}\n//# sourceMappingURL=misc.js.map","import { mutate } from \"../utils/misc.js\";\n/**\n * Create a new diagnostics creator.\n * @param diagnostics Map of the potential diagnostics.\n * @param libraryName Optional name of the library if in the scope of a library.\n * @returns @see DiagnosticCreator\n */\nexport function createDiagnosticCreator(diagnostics, libraryName) {\n const errorMessage = libraryName\n ? `It must match one of the code defined in the library '${libraryName}'`\n : \"It must match one of the code defined in the compiler.\";\n function createDiagnostic(diagnostic) {\n const diagnosticDef = diagnostics[diagnostic.code];\n if (!diagnosticDef) {\n const codeStr = Object.keys(diagnostics)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const code = String(diagnostic.code);\n throw new Error(`Unexpected diagnostic code '${code}'. ${errorMessage}. Defined codes:\\n${codeStr}`);\n }\n const message = diagnosticDef.messages[diagnostic.messageId ?? \"default\"];\n if (!message) {\n const codeStr = Object.keys(diagnosticDef.messages)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const messageId = String(diagnostic.messageId);\n const code = String(diagnostic.code);\n throw new Error(`Unexpected message id '${messageId}'. ${errorMessage} for code '${code}'. Defined codes:\\n${codeStr}`);\n }\n const messageStr = typeof message === \"string\" ? message : message(diagnostic.format);\n const result = {\n code: libraryName ? `${libraryName}/${String(diagnostic.code)}` : diagnostic.code.toString(),\n severity: diagnosticDef.severity,\n message: messageStr,\n target: diagnostic.target,\n };\n if (diagnosticDef.url) {\n mutate(result).url = diagnosticDef.url;\n }\n if (diagnostic.codefixes) {\n mutate(result).codefixes = diagnostic.codefixes;\n }\n return result;\n }\n function reportDiagnostic(program, diagnostic) {\n const diag = createDiagnostic(diagnostic);\n program.reportDiagnostic(diag);\n }\n return {\n diagnostics,\n createDiagnostic,\n reportDiagnostic,\n };\n}\n//# sourceMappingURL=diagnostic-creator.js.map","export function paramMessage(strings, ...keys) {\n const template = (dict) => {\n const result = [strings[0]];\n keys.forEach((key, i) => {\n const value = dict[key];\n if (value !== undefined) {\n result.push(value);\n }\n result.push(strings[i + 1]);\n });\n return result.join(\"\");\n };\n template.keys = keys;\n return template;\n}\n//# sourceMappingURL=param-message.js.map","// Static assert: this won't compile if one of the entries above is invalid.\nimport { createDiagnosticCreator } from \"./diagnostic-creator.js\";\nimport { paramMessage } from \"./param-message.js\";\nconst diagnostics = {\n /**\n * Scanner errors.\n */\n \"digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Digit expected.\",\n },\n },\n \"hex-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Hexadecimal digit expected.\",\n },\n },\n \"binary-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Binary digit expected.\",\n },\n },\n unterminated: {\n severity: \"error\",\n messages: {\n default: paramMessage `Unterminated ${\"token\"}.`,\n },\n },\n \"creating-file\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Error creating single file: ${\"filename\"}, ${\"error\"}`,\n },\n },\n \"invalid-escape-sequence\": {\n severity: \"error\",\n messages: {\n default: \"Invalid escape sequence.\",\n },\n },\n \"no-new-line-start-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"String content in triple quotes must begin on a new line.\",\n },\n },\n \"no-new-line-end-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"Closing triple quotes must begin on a new line.\",\n },\n },\n \"triple-quote-indent\": {\n severity: \"error\",\n description: \"Report when a triple-quoted string has lines with less indentation as the closing triple quotes.\",\n url: \"https://typespec.io/docs/standard-library/diags/triple-quote-indent\",\n messages: {\n default: \"All lines in triple-quoted string lines must have the same indentation as closing triple quotes.\",\n },\n },\n \"invalid-character\": {\n severity: \"error\",\n messages: {\n default: \"Invalid character.\",\n },\n },\n /**\n * Utils\n */\n \"file-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File ${\"path\"} not found.`,\n },\n },\n \"file-load\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"message\"}`,\n },\n },\n /**\n * Init templates\n */\n \"init-template-invalid-json\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unable to parse ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n \"init-template-download-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to download template from ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n /**\n * Parser errors.\n */\n \"multiple-blockless-namespace\": {\n severity: \"error\",\n messages: {\n default: \"Cannot use multiple blockless namespaces.\",\n },\n },\n \"blockless-namespace-first\": {\n severity: \"error\",\n messages: {\n default: \"Blockless namespaces can't follow other declarations.\",\n topLevel: \"Blockless namespace can only be top-level.\",\n },\n },\n \"import-first\": {\n severity: \"error\",\n messages: {\n default: \"Imports must come prior to namespaces or other declarations.\",\n topLevel: \"Imports must be top-level and come prior to namespaces or other declarations.\",\n },\n },\n \"token-expected\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"token\"} expected.`,\n unexpected: paramMessage `Unexpected token ${\"token\"}`,\n numericOrStringLiteral: \"Expected numeric or string literal.\",\n identifier: \"Identifier expected.\",\n projectionDirection: \"from or to expected.\",\n expression: \"Expression expected.\",\n statement: \"Statement expected.\",\n property: \"Property expected.\",\n enumMember: \"Enum member expected.\",\n typeofTarget: \"Typeof expects a value literal or value reference.\",\n },\n },\n \"unknown-directive\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown directive '#${\"id\"}'`,\n },\n },\n \"augment-decorator-target\": {\n severity: \"error\",\n messages: {\n default: `Augment decorator first argument must be a type reference.`,\n noInstance: `Cannot reference template instances`,\n },\n },\n \"duplicate-decorator\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used twice on the same declaration.`,\n },\n },\n \"decorator-conflict\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used with decorator ${\"otherDecoratorName\"} on the same declaration.`,\n },\n },\n \"reserved-identifier\": {\n severity: \"error\",\n messages: {\n default: \"Keyword cannot be used as identifier.\",\n },\n },\n \"invalid-directive-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot place directive on ${\"nodeName\"}.`,\n },\n },\n \"invalid-decorator-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot decorate ${\"nodeName\"}.`,\n },\n },\n \"invalid-projection\": {\n severity: \"error\",\n messages: {\n default: \"Invalid projection\",\n wrongType: \"Non-projection can't be used to project\",\n noTo: \"Projection missing to projection\",\n projectionError: paramMessage `An error occurred when projecting this type: ${\"message\"}`,\n },\n },\n \"default-required\": {\n severity: \"error\",\n messages: {\n default: \"Required template parameters must not follow optional template parameters\",\n },\n },\n \"invalid-template-argument-name\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter argument names must be valid, bare identifiers.\",\n },\n },\n \"invalid-template-default\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter defaults can only reference previously declared type parameters.\",\n },\n },\n \"required-parameter-first\": {\n severity: \"error\",\n messages: {\n default: \"A required parameter cannot follow an optional parameter.\",\n },\n },\n \"rest-parameter-last\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be last in a parameter list.\",\n },\n },\n \"rest-parameter-required\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter cannot be optional.\",\n },\n },\n /**\n * Parser doc comment warnings.\n * Design goal: Malformed doc comments should only produce warnings, not errors.\n */\n \"doc-invalid-identifier\": {\n severity: \"warning\",\n messages: {\n default: \"Invalid identifier.\",\n tag: \"Invalid tag name. Use backticks around code if this was not meant to be a tag.\",\n param: \"Invalid parameter name.\",\n prop: \"Invalid property name.\",\n templateParam: \"Invalid template parameter name.\",\n },\n },\n /**\n * Checker\n */\n \"using-invalid-ref\": {\n severity: \"error\",\n messages: {\n default: \"Using must refer to a namespace\",\n },\n },\n \"invalid-type-ref\": {\n severity: \"error\",\n messages: {\n default: \"Invalid type reference\",\n decorator: \"Can't put a decorator in a type\",\n function: \"Can't use a function as a type\",\n },\n },\n \"invalid-template-args\": {\n severity: \"error\",\n messages: {\n default: \"Invalid template arguments.\",\n notTemplate: \"Can't pass template arguments to non-templated type\",\n tooMany: \"Too many template arguments provided.\",\n unknownName: paramMessage `No parameter named '${\"name\"}' exists in the target template.`,\n positionalAfterNamed: \"Positional template arguments cannot follow named arguments in the same argument list.\",\n missing: paramMessage `Template argument '${\"name\"}' is required and not specified.`,\n specifiedAgain: paramMessage `Cannot specify template argument '${\"name\"}' again.`,\n },\n },\n \"intersect-non-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect non-model types (including union types).\",\n },\n },\n \"intersect-invalid-index\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect incompatible models.\",\n never: \"Cannot intersect a model that cannot hold properties.\",\n array: \"Cannot intersect an array model.\",\n },\n },\n \"incompatible-indexer\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property is incompatible with indexer:\\n${\"message\"}`,\n },\n },\n \"no-array-properties\": {\n severity: \"error\",\n messages: {\n default: \"Array models cannot have any properties.\",\n },\n },\n \"intersect-duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Intersection contains duplicate property definitions for ${\"propName\"}`,\n },\n },\n \"invalid-decorator\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"id\"} is not a decorator`,\n },\n },\n \"invalid-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot resolve ${\"id\"}`,\n identifier: paramMessage `Unknown identifier ${\"id\"}`,\n decorator: paramMessage `Unknown decorator @${\"id\"}`,\n inDecorator: paramMessage `Cannot resolve ${\"id\"} in decorator`,\n underNamespace: paramMessage `Namespace ${\"namespace\"} doesn't have member ${\"id\"}`,\n member: paramMessage `${\"kind\"} doesn't have member ${\"id\"}`,\n metaProperty: paramMessage `${\"kind\"} doesn't have meta property ${\"id\"}`,\n node: paramMessage `Cannot resolve '${\"id\"}' in node ${\"nodeName\"} since it has no members. Did you mean to use \"::\" instead of \".\"?`,\n },\n },\n \"duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model already has a property named ${\"propName\"}`,\n },\n },\n \"override-property-mismatch\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model has an inherited property named ${\"propName\"} of type ${\"propType\"} which cannot override type ${\"parentType\"}`,\n disallowedOptionalOverride: paramMessage `Model has a required inherited property named ${\"propName\"} which cannot be overridden as optional`,\n },\n },\n \"extend-scalar\": {\n severity: \"error\",\n messages: {\n default: \"Scalar must extend other scalars.\",\n },\n },\n \"extend-model\": {\n severity: \"error\",\n messages: {\n default: \"Models must extend other models.\",\n modelExpression: \"Models cannot extend model expressions.\",\n },\n },\n \"is-model\": {\n severity: \"error\",\n messages: {\n default: \"Model `is` must specify another model.\",\n modelExpression: \"Model `is` cannot specify a model expression.\",\n },\n },\n \"is-operation\": {\n severity: \"error\",\n messages: {\n default: \"Operation can only reuse the signature of another operation.\",\n },\n },\n \"spread-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-model type.\",\n neverIndex: \"Cannot spread type because it cannot hold properties.\",\n selfSpread: \"Cannot spread type within its own declaration.\",\n },\n },\n \"unsupported-default\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Default must be have a value type but has type '${\"type\"}'.`,\n },\n },\n \"spread-object\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-object type.\",\n },\n },\n \"expect-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"name\"} refers to a type, but is being used as a value here.`,\n model: paramMessage `${\"name\"} refers to a model type, but is being used as a value here. Use #{} to create an object value.`,\n tuple: paramMessage `${\"name\"} refers to a tuple type, but is being used as a value here. Use #[] to create an array value.`,\n templateConstraint: paramMessage `${\"name\"} template parameter can be a type but is being used as a value here.`,\n },\n },\n \"non-callable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type ${\"type\"} is not is not callable.`,\n },\n },\n \"named-init-required\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Only scalar deriving from 'string', 'numeric' or 'boolean' can be instantited without a named constructor.`,\n },\n },\n \"invalid-primitive-init\": {\n severity: \"error\",\n messages: {\n default: `Instantiating scalar deriving from 'string', 'numeric' or 'boolean' can only take a single argument.`,\n invalidArg: paramMessage `Expected a single argument of type ${\"expected\"} but got ${\"actual\"}.`,\n },\n },\n \"ambiguous-scalar-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Value ${\"value\"} type is ambiguous between ${\"types\"}. To resolve be explicit when instantiating this value(e.g. '${\"example\"}(${\"value\"})').`,\n },\n },\n unassignable: {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"sourceType\"}' is not assignable to type '${\"targetType\"}'`,\n },\n },\n \"property-unassignable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Types of property '${\"propName\"}' are incompatible`,\n },\n },\n \"property-required\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' is required in type '${\"targetType\"}' but here is optional.`,\n },\n },\n \"value-in-type\": {\n severity: \"error\",\n messages: {\n default: \"A value cannot be used as a type.\",\n referenceTemplate: \"Template parameter can be passed values but is used as a type.\",\n noTemplateConstraint: \"Template parameter has no constraint but a value is passed. Add `extends valueof unknown` to accept any value.\",\n },\n },\n \"no-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' cannot be defined because model cannot hold properties.`,\n },\n },\n \"missing-index\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Index signature for type '${\"indexType\"}' is missing in type '${\"sourceType\"}'.`,\n },\n },\n \"missing-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' is missing on type '${\"sourceType\"}' but required in '${\"targetType\"}'`,\n },\n },\n \"unexpected-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Object value may only specify known properties, and '${\"propertyName\"}' does not exist in type '${\"type\"}'.`,\n },\n },\n \"extends-interface\": {\n severity: \"error\",\n messages: {\n default: \"Interfaces can only extend other interfaces\",\n },\n },\n \"extends-interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface extends cannot have duplicate members. The duplicate member is named ${\"name\"}`,\n },\n },\n \"interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface already has a member named ${\"name\"}`,\n },\n },\n \"union-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union already has a variant named ${\"name\"}`,\n },\n },\n \"enum-member-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum already has a member named ${\"name\"}`,\n },\n },\n \"constructor-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `A constructor already exists with name ${\"name\"}`,\n },\n },\n \"spread-enum\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread members of non-enum type.\",\n },\n },\n \"decorator-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} failed!\\n\\n${\"error\"}`,\n },\n },\n \"rest-parameter-array\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be of an array type.\",\n },\n },\n \"decorator-extern\": {\n severity: \"error\",\n messages: {\n default: \"A decorator declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"function-extern\": {\n severity: \"error\",\n messages: {\n default: \"A function declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"missing-implementation\": {\n severity: \"error\",\n messages: {\n default: \"Extern declaration must have an implementation in JS file.\",\n },\n },\n \"overload-same-parent\": {\n severity: \"error\",\n messages: {\n default: `Overload must be in the same interface or namespace.`,\n },\n },\n shadow: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Shadowing parent template parameter with the same name \"${\"name\"}\"`,\n },\n },\n \"invalid-deprecation-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `#deprecation directive is expecting a string literal as the message but got a \"${\"kind\"}\"`,\n missing: \"#deprecation directive is expecting a message argument but none was provided.\",\n },\n },\n \"duplicate-deprecation\": {\n severity: \"warning\",\n messages: {\n default: \"The #deprecated directive cannot be used more than once on the same declaration.\",\n },\n },\n /**\n * Configuration\n */\n \"config-invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument \"${\"name\"}\" is not defined as a parameter in the config.`,\n },\n },\n \"config-circular-variable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `There is a circular reference to variable \"${\"name\"}\" in the cli configuration or arguments.`,\n },\n },\n \"config-path-absolute\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Path \"${\"path\"}\" cannot be relative. Use {cwd} or {project-root} to specify what the path should be relative to.`,\n },\n },\n \"config-invalid-name\": {\n severity: \"error\",\n messages: {\n default: paramMessage `The configuration name \"${\"name\"}\" is invalid because it contains a dot (\".\"). Using a dot will conflict with using nested configuration values.`,\n },\n },\n \"path-unix-style\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Path should use unix style separators. Use \"/\" instead of \"\\\\\".`,\n },\n },\n \"config-path-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `No configuration file found at config path \"${\"path\"}\".`,\n },\n },\n /**\n * Program\n */\n \"dynamic-import\": {\n severity: \"error\",\n messages: {\n default: \"Dynamically generated TypeSpec cannot have imports\",\n },\n },\n \"invalid-import\": {\n severity: \"error\",\n messages: {\n default: \"Import paths must reference either a directory, a .tsp file, or .js file\",\n },\n },\n \"invalid-main\": {\n severity: \"error\",\n messages: {\n default: \"Main file must either be a .tsp file or a .js file.\",\n },\n },\n \"import-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Couldn't resolve import \"${\"path\"}\"`,\n },\n },\n \"library-invalid\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Library \"${\"path\"}\" is invalid: ${\"message\"}`,\n },\n },\n \"incompatible-library\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Multiple versions of \"${\"name\"}\" library were loaded:\\n${\"versionMap\"}`,\n },\n },\n \"compiler-version-mismatch\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Current TypeSpec compiler conflicts with local version of @typespec/compiler referenced in ${\"basedir\"}. \\nIf this warning occurs on the command line, try running \\`typespec\\` with a working directory of ${\"basedir\"}. \\nIf this warning occurs in the IDE, try configuring the \\`tsp-server\\` path to ${\"betterTypeSpecServerPath\"}.\\n Expected: ${\"expected\"}\\n Resolved: ${\"actual\"}`,\n },\n },\n \"duplicate-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate name: \"${\"name\"}\"`,\n },\n },\n \"decorator-decl-target\": {\n severity: \"error\",\n messages: {\n default: \"dec must have at least one parameter.\",\n required: \"dec first parameter must be required.\",\n },\n },\n \"mixed-string-template\": {\n severity: \"error\",\n messages: {\n default: \"String template is interpolating values and types. It must be either all values to produce a string value or or all types for string template type.\",\n },\n },\n \"non-literal-string-template\": {\n severity: \"error\",\n messages: {\n default: \"Value interpolated in this string template cannot be converted to a string. Only literal types can be automatically interpolated.\",\n },\n },\n /**\n * Binder\n */\n \"ambiguous-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `\"${\"name\"}\" is an ambiguous name between ${\"duplicateNames\"}. Try using fully qualified name instead: ${\"duplicateNames\"}`,\n },\n },\n \"duplicate-using\": {\n severity: \"error\",\n messages: {\n default: paramMessage `duplicate using of \"${\"usingName\"}\" namespace`,\n },\n },\n /**\n * Library\n */\n \"on-validate-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `onValidate failed with errors. ${\"error\"}`,\n },\n },\n \"invalid-emitter\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Requested emitter package ${\"emitterPackage\"} does not provide an \"$onEmit\" function.`,\n },\n },\n \"js-error\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to load ${\"specifier\"} due to the following JS error: ${\"error\"}`,\n },\n },\n \"missing-import\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Emitter '${\"emitterName\"}' requires '${\"requiredImport\"}' to be imported. Add 'import \"${\"requiredImport\"}\".`,\n },\n },\n /**\n * Linter\n */\n \"invalid-rule-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Reference \"${\"ref\"}\" is not a valid reference to a rule or ruleset. It must be in the following format: \"<library-name>:<rule-name>\"`,\n },\n },\n \"unknown-rule\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"unknown-rule-set\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule set \"${\"ruleSetName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"rule-enabled-disabled\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" has been enabled and disabled in the same ruleset.`,\n },\n },\n /**\n * Formatter\n */\n \"format-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File '${\"file\"}' failed to format. ${\"details\"}`,\n },\n },\n /**\n * Decorator\n */\n \"invalid-pattern-regex\": {\n severity: \"warning\",\n messages: {\n default: \"@pattern decorator expects a valid regular expression pattern.\",\n },\n },\n \"decorator-wrong-target\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"}`,\n withExpected: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"} since it is not assignable to ${\"expected\"}`,\n },\n },\n \"invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument of type '${\"value\"}' is not assignable to parameter of type '${\"expected\"}'`,\n },\n },\n \"invalid-argument-count\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Expected ${\"expected\"} arguments, but got ${\"actual\"}.`,\n atLeast: paramMessage `Expected at least ${\"expected\"} arguments, but got ${\"actual\"}.`,\n },\n },\n \"known-values-invalid-enum\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum cannot be used on this type. Member ${\"member\"} is not assignable to type ${\"type\"}.`,\n },\n },\n \"invalid-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"kind\"}' is not a value type.`,\n atPath: paramMessage `Type '${\"kind\"}' of '${\"path\"}' is not a value type.`,\n },\n },\n deprecated: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Deprecated: ${\"message\"}`,\n },\n },\n \"no-optional-key\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' marked as key cannot be optional.`,\n },\n },\n \"invalid-discriminated-union\": {\n severity: \"error\",\n messages: {\n default: \"\",\n noAnonVariants: \"Unions with anonymous variants cannot be discriminated\",\n },\n },\n \"invalid-discriminated-union-variant\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union variant \"${\"name\"}\" must be a model type.`,\n noDiscriminant: paramMessage `Variant \"${\"name\"}\" type is missing the discriminant property \"${\"discriminant\"}\".`,\n wrongDiscriminantType: paramMessage `Variant \"${\"name\"}\" type's discriminant property \"${\"discriminant\"}\" must be a string literal or string enum member.`,\n },\n },\n \"missing-discriminator-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Each derived model of a discriminated model type should have set the discriminator property(\"${\"discriminator\"}\") or have a derived model which has. Add \\`${\"discriminator\"}: \"<discriminator-value>\"\\``,\n },\n },\n \"invalid-discriminator-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Discriminator value should be a string, union of string or string enum but was ${\"kind\"}.`,\n required: \"The discriminator property must be a required property.\",\n duplicate: paramMessage `Discriminator value \"${\"discriminator\"}\" is already used in another variant.`,\n },\n },\n \"invalid-encode\": {\n severity: \"error\",\n messages: {\n default: \"Invalid encoding\",\n wrongType: paramMessage `Encoding '${\"encoding\"}' cannot be used on type '${\"type\"}'. Expected: ${\"expected\"}.`,\n wrongEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'.`,\n wrongNumericEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'. Set '@encode' 2nd parameter to be of type ${\"expected\"}. e.g. '@encode(\"${\"encoding\"}\", int32)'`,\n firstArg: `First argument of \"@encode\" must be the encoding name or the string type when encoding numeric types.`,\n },\n },\n \"invalid-mime-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Invalid mime type '${\"mimeType\"}'`,\n },\n },\n \"no-mime-type-suffix\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot use mime type '${\"mimeType\"}' with suffix '${\"suffix\"}'. Use a simple mime \\`type/subtype\\` instead.`,\n },\n },\n \"encoded-name-conflict\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Encoded name '${\"name\"}' conflicts with existing member name for mime type '${\"mimeType\"}'`,\n duplicate: paramMessage `Same encoded name '${\"name\"}' is used for 2 members '${\"mimeType\"}'`,\n },\n },\n \"incompatible-paging-props\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paging property has multiple types: '${\"kinds\"}'`,\n },\n },\n \"invalid-paging-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paging property '${\"kind\"}' is not valid in this context.`,\n input: paramMessage `Paging property '${\"kind\"}' cannot be used in the parameters of an operation.`,\n output: paramMessage `Paging property '${\"kind\"}' cannot be used in the return type of an operation.`,\n },\n },\n \"duplicate-paging-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate property paging '${\"kind\"}' for operation ${\"operationName\"}.`,\n },\n },\n \"missing-paging-items\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paged operation '${\"operationName\"}' return type must have a property annotated with @pageItems.`,\n },\n },\n /**\n * Service\n */\n \"service-decorator-duplicate\": {\n severity: \"error\",\n messages: {\n default: `@service can only be set once per TypeSpec document.`,\n },\n },\n \"list-type-not-model\": {\n severity: \"error\",\n messages: {\n default: \"@list decorator's parameter must be a model type.\",\n },\n },\n \"invalid-range\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Range \"${\"start\"}..${\"end\"}\" is invalid.`,\n },\n },\n /**\n * Mutator\n */\n \"add-response\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a response to anything except an operation statement.\",\n },\n },\n \"add-parameter\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a parameter to anything except an operation statement.\",\n },\n },\n \"add-model-property\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a model property to anything except a model statement.\",\n },\n },\n \"add-model-property-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add property/parameter \"${\"propertyName\"}\" of type \"${\"propertyTypeName\"}\"`,\n },\n },\n \"add-response-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add response type \"${\"responseTypeName\"}\" to operation ${\"operationName\"}\"`,\n },\n },\n \"circular-base-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"typeName\"}' recursively references itself as a base type.`,\n },\n },\n \"circular-constraint\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type parameter '${\"typeName\"}' has a circular constraint.`,\n },\n },\n \"circular-op-signature\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Operation '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-alias-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Alias type '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-const\": {\n severity: \"error\",\n messages: {\n default: paramMessage `const '${\"name\"}' recursively references itself.`,\n },\n },\n \"circular-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' recursively references itself.`,\n },\n },\n \"conflict-marker\": {\n severity: \"error\",\n messages: {\n default: \"Conflict marker encountered.\",\n },\n },\n // #region Visibility\n \"visibility-sealed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Visibility of property '${\"propName\"}' is sealed and cannot be changed.`,\n },\n },\n \"visibility-mixed-legacy\": {\n severity: \"error\",\n messages: {\n default: \"Cannot apply both string (legacy) visibility modifiers and enum-based visibility modifiers to a property.\",\n },\n },\n \"default-visibility-not-member\": {\n severity: \"error\",\n messages: {\n default: \"The default visibility modifiers of a class must be members of the class enum.\",\n },\n },\n // #endregion\n // #region CLI\n \"no-compatible-vs-installed\": {\n severity: \"error\",\n messages: {\n default: \"No compatible version of Visual Studio found.\",\n },\n },\n \"vs-extension-windows-only\": {\n severity: \"error\",\n messages: {\n default: \"Visual Studio extension is not supported on non-Windows.\",\n },\n },\n \"vscode-in-path\": {\n severity: \"error\",\n messages: {\n default: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\",\n osx: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\\nSee instruction for Mac OS here https://code.visualstudio.com/docs/setup/mac\",\n },\n },\n // #endregion CLI\n};\nexport const { createDiagnostic, reportDiagnostic } = createDiagnosticCreator(diagnostics);\n//# sourceMappingURL=messages.js.map","import { formatLog } from \"./logger/console-sink.js\";\nimport { createSourceFile } from \"./source-file.js\";\nimport { NoTarget, SyntaxKind, } from \"./types.js\";\n/**\n * Represents a failure while interpreting a projection.\n */\nexport class ProjectionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ProjectionError\";\n }\n}\nexport function logDiagnostics(diagnostics, logger) {\n for (const diagnostic of diagnostics) {\n logger.log({\n level: diagnostic.severity,\n message: diagnostic.message,\n code: diagnostic.code,\n url: diagnostic.url,\n sourceLocation: getSourceLocation(diagnostic.target, { locateId: true }),\n related: getRelatedLocations(diagnostic),\n });\n }\n}\nexport function formatDiagnostic(diagnostic, options = {}) {\n return formatLog({\n code: diagnostic.code,\n level: diagnostic.severity,\n message: diagnostic.message,\n url: diagnostic.url,\n sourceLocation: getSourceLocation(diagnostic.target, { locateId: true }),\n related: getRelatedLocations(diagnostic),\n }, { pretty: options?.pretty ?? false, pathRelativeTo: options?.pathRelativeTo });\n}\nfunction getRelatedLocations(diagnostic) {\n return getDiagnosticTemplateInstantitationTrace(diagnostic.target).map((x) => {\n return {\n message: \"occurred while instantiating template\",\n location: getSourceLocation(x),\n };\n });\n}\nexport function getSourceLocation(target, options = {}) {\n if (target === NoTarget || target === undefined) {\n return undefined;\n }\n if (\"file\" in target) {\n return target;\n }\n if (!(\"kind\" in target) && !(\"entityKind\" in target)) {\n // TemplateInstanceTarget\n if (!(\"declarations\" in target)) {\n return getSourceLocationOfNode(target.node, options);\n }\n // symbol\n if (target.flags & 32768 /* SymbolFlags.Using */) {\n target = target.symbolSource;\n }\n if (!target.declarations[0]) {\n return createSyntheticSourceLocation();\n }\n return getSourceLocationOfNode(target.declarations[0], options);\n }\n else if (\"kind\" in target && typeof target.kind === \"number\") {\n // node\n return getSourceLocationOfNode(target, options);\n }\n else {\n // type\n const targetNode = target.node;\n if (targetNode) {\n return getSourceLocationOfNode(targetNode, options);\n }\n return createSyntheticSourceLocation();\n }\n}\n/**\n * @internal\n */\nexport function getDiagnosticTemplateInstantitationTrace(target) {\n if (typeof target !== \"object\" || !(\"templateMapper\" in target)) {\n return [];\n }\n const result = [];\n let current = target.templateMapper;\n while (current) {\n result.push(current.source.node);\n current = current.source.mapper;\n }\n return result;\n}\nfunction createSyntheticSourceLocation(loc = \"<unknown location>\") {\n return {\n file: createSourceFile(\"\", loc),\n pos: 0,\n end: 0,\n isSynthetic: true,\n };\n}\nfunction getSourceLocationOfNode(node, options) {\n let root = node;\n while (root.parent !== undefined) {\n root = root.parent;\n }\n if (root.kind !== SyntaxKind.TypeSpecScript && root.kind !== SyntaxKind.JsSourceFile) {\n return createSyntheticSourceLocation(node.flags & 8 /* NodeFlags.Synthetic */\n ? undefined\n : \"<unknown location - cannot obtain source location of unbound node - file bug at https://github.com/microsoft/typespec>\");\n }\n if (options.locateId && \"id\" in node && node.id !== undefined) {\n node = node.id;\n }\n return {\n file: root.file,\n pos: node.pos,\n end: node.end,\n };\n}\n/**\n * Verbose output is enabled by default for runs in mocha explorer in VS Code,\n * where the output is nicely associated with the individual test, and disabled\n * by default for command line runs where we don't want to spam the console.\n *\n * If the steps taken to produce the message are expensive, pass a callback\n * instead of producing the message then passing it here only to be dropped\n * when verbose output is disabled.\n */\nexport function logVerboseTestOutput(messageOrCallback) {\n if (process.env.TYPESPEC_VERBOSE_TEST_OUTPUT) {\n if (typeof messageOrCallback === \"string\") {\n // eslint-disable-next-line no-console\n console.log(messageOrCallback);\n }\n else {\n // eslint-disable-next-line no-console\n messageOrCallback(console.log);\n }\n }\n}\n/**\n * Use this to report bugs in the compiler, and not errors in the source code\n * being compiled.\n *\n * @param condition Throw if this is not true.\n *\n * @param message Error message.\n *\n * @param target Optional location in source code that might give a clue about\n * what got the compiler off track.\n */\nexport function compilerAssert(condition, message, target) {\n if (condition) {\n return;\n }\n if (target) {\n let location;\n try {\n location = getSourceLocation(target);\n }\n catch (err) { }\n if (location) {\n const pos = location.file.getLineAndCharacterOfPosition(location.pos);\n const file = location.file.path;\n const line = pos.line + 1;\n const col = pos.character + 1;\n message += `\\nOccurred while compiling code in ${file} near line ${line}, column ${col}`;\n }\n }\n throw new Error(message);\n}\n/**\n * Assert that the input type has one of the kinds provided\n */\nexport function assertType(typeDescription, t, ...kinds) {\n if (kinds.indexOf(t.kind) === -1) {\n throw new ProjectionError(`Expected ${typeDescription} to be type ${kinds.join(\", \")}`);\n }\n}\n/**\n * Report a deprecated diagnostic.\n * @param program TypeSpec Program.\n * @param message Message describing the deprecation.\n * @param target Target of the deprecation.\n */\nexport function reportDeprecated(program, message, target) {\n program.reportDiagnostic({\n severity: \"warning\",\n code: \"deprecated\",\n message: `Deprecated: ${message}`,\n target,\n });\n}\n/**\n * Create a new instance of the @see DiagnosticCollector.\n */\nexport function createDiagnosticCollector() {\n const diagnostics = [];\n return {\n diagnostics,\n add,\n pipe,\n wrap,\n };\n function add(diagnostic) {\n diagnostics.push(diagnostic);\n }\n function pipe(result) {\n const [value, diags] = result;\n for (const diag of diags) {\n diagnostics.push(diag);\n }\n return value;\n }\n function wrap(value) {\n return [value, diagnostics];\n }\n}\n/**\n * Ignore the diagnostics emitted by the diagnostic accessor pattern and just return the actual result.\n * @param result Accessor pattern tuple result including the actual result and the list of diagnostics.\n * @returns Actual result.\n */\nexport function ignoreDiagnostics(result) {\n return result[0];\n}\nexport function defineCodeFix(fix) {\n return fix;\n}\n//# sourceMappingURL=diagnostics.js.map","//\n// Generated by scripts/regen-nonascii-map.js\n// on node v18.16.0 with unicode 15.0.\n//\n/**\n * @internal\n *\n * Map of non-ascii characters that are valid in an identifier. Each pair of\n * numbers represents an inclusive range of code points.\n */\n//prettier-ignore\nexport const nonAsciiIdentifierMap = [\n 0xa0, 0x377,\n 0x37a, 0x37f,\n 0x384, 0x38a,\n 0x38c, 0x38c,\n 0x38e, 0x3a1,\n 0x3a3, 0x52f,\n 0x531, 0x556,\n 0x559, 0x58a,\n 0x58d, 0x58f,\n 0x591, 0x5c7,\n 0x5d0, 0x5ea,\n 0x5ef, 0x5f4,\n 0x600, 0x70d,\n 0x70f, 0x74a,\n 0x74d, 0x7b1,\n 0x7c0, 0x7fa,\n 0x7fd, 0x82d,\n 0x830, 0x83e,\n 0x840, 0x85b,\n 0x85e, 0x85e,\n 0x860, 0x86a,\n 0x870, 0x88e,\n 0x890, 0x891,\n 0x898, 0x983,\n 0x985, 0x98c,\n 0x98f, 0x990,\n 0x993, 0x9a8,\n 0x9aa, 0x9b0,\n 0x9b2, 0x9b2,\n 0x9b6, 0x9b9,\n 0x9bc, 0x9c4,\n 0x9c7, 0x9c8,\n 0x9cb, 0x9ce,\n 0x9d7, 0x9d7,\n 0x9dc, 0x9dd,\n 0x9df, 0x9e3,\n 0x9e6, 0x9fe,\n 0xa01, 0xa03,\n 0xa05, 0xa0a,\n 0xa0f, 0xa10,\n 0xa13, 0xa28,\n 0xa2a, 0xa30,\n 0xa32, 0xa33,\n 0xa35, 0xa36,\n 0xa38, 0xa39,\n 0xa3c, 0xa3c,\n 0xa3e, 0xa42,\n 0xa47, 0xa48,\n 0xa4b, 0xa4d,\n 0xa51, 0xa51,\n 0xa59, 0xa5c,\n 0xa5e, 0xa5e,\n 0xa66, 0xa76,\n 0xa81, 0xa83,\n 0xa85, 0xa8d,\n 0xa8f, 0xa91,\n 0xa93, 0xaa8,\n 0xaaa, 0xab0,\n 0xab2, 0xab3,\n 0xab5, 0xab9,\n 0xabc, 0xac5,\n 0xac7, 0xac9,\n 0xacb, 0xacd,\n 0xad0, 0xad0,\n 0xae0, 0xae3,\n 0xae6, 0xaf1,\n 0xaf9, 0xaff,\n 0xb01, 0xb03,\n 0xb05, 0xb0c,\n 0xb0f, 0xb10,\n 0xb13, 0xb28,\n 0xb2a, 0xb30,\n 0xb32, 0xb33,\n 0xb35, 0xb39,\n 0xb3c, 0xb44,\n 0xb47, 0xb48,\n 0xb4b, 0xb4d,\n 0xb55, 0xb57,\n 0xb5c, 0xb5d,\n 0xb5f, 0xb63,\n 0xb66, 0xb77,\n 0xb82, 0xb83,\n 0xb85, 0xb8a,\n 0xb8e, 0xb90,\n 0xb92, 0xb95,\n 0xb99, 0xb9a,\n 0xb9c, 0xb9c,\n 0xb9e, 0xb9f,\n 0xba3, 0xba4,\n 0xba8, 0xbaa,\n 0xbae, 0xbb9,\n 0xbbe, 0xbc2,\n 0xbc6, 0xbc8,\n 0xbca, 0xbcd,\n 0xbd0, 0xbd0,\n 0xbd7, 0xbd7,\n 0xbe6, 0xbfa,\n 0xc00, 0xc0c,\n 0xc0e, 0xc10,\n 0xc12, 0xc28,\n 0xc2a, 0xc39,\n 0xc3c, 0xc44,\n 0xc46, 0xc48,\n 0xc4a, 0xc4d,\n 0xc55, 0xc56,\n 0xc58, 0xc5a,\n 0xc5d, 0xc5d,\n 0xc60, 0xc63,\n 0xc66, 0xc6f,\n 0xc77, 0xc8c,\n 0xc8e, 0xc90,\n 0xc92, 0xca8,\n 0xcaa, 0xcb3,\n 0xcb5, 0xcb9,\n 0xcbc, 0xcc4,\n 0xcc6, 0xcc8,\n 0xcca, 0xccd,\n 0xcd5, 0xcd6,\n 0xcdd, 0xcde,\n 0xce0, 0xce3,\n 0xce6, 0xcef,\n 0xcf1, 0xcf3,\n 0xd00, 0xd0c,\n 0xd0e, 0xd10,\n 0xd12, 0xd44,\n 0xd46, 0xd48,\n 0xd4a, 0xd4f,\n 0xd54, 0xd63,\n 0xd66, 0xd7f,\n 0xd81, 0xd83,\n 0xd85, 0xd96,\n 0xd9a, 0xdb1,\n 0xdb3, 0xdbb,\n 0xdbd, 0xdbd,\n 0xdc0, 0xdc6,\n 0xdca, 0xdca,\n 0xdcf, 0xdd4,\n 0xdd6, 0xdd6,\n 0xdd8, 0xddf,\n 0xde6, 0xdef,\n 0xdf2, 0xdf4,\n 0xe01, 0xe3a,\n 0xe3f, 0xe5b,\n 0xe81, 0xe82,\n 0xe84, 0xe84,\n 0xe86, 0xe8a,\n 0xe8c, 0xea3,\n 0xea5, 0xea5,\n 0xea7, 0xebd,\n 0xec0, 0xec4,\n 0xec6, 0xec6,\n 0xec8, 0xece,\n 0xed0, 0xed9,\n 0xedc, 0xedf,\n 0xf00, 0xf47,\n 0xf49, 0xf6c,\n 0xf71, 0xf97,\n 0xf99, 0xfbc,\n 0xfbe, 0xfcc,\n 0xfce, 0xfda,\n 0x1000, 0x10c5,\n 0x10c7, 0x10c7,\n 0x10cd, 0x10cd,\n 0x10d0, 0x1248,\n 0x124a, 0x124d,\n 0x1250, 0x1256,\n 0x1258, 0x1258,\n 0x125a, 0x125d,\n 0x1260, 0x1288,\n 0x128a, 0x128d,\n 0x1290, 0x12b0,\n 0x12b2, 0x12b5,\n 0x12b8, 0x12be,\n 0x12c0, 0x12c0,\n 0x12c2, 0x12c5,\n 0x12c8, 0x12d6,\n 0x12d8, 0x1310,\n 0x1312, 0x1315,\n 0x1318, 0x135a,\n 0x135d, 0x137c,\n 0x1380, 0x1399,\n 0x13a0, 0x13f5,\n 0x13f8, 0x13fd,\n 0x1400, 0x169c,\n 0x16a0, 0x16f8,\n 0x1700, 0x1715,\n 0x171f, 0x1736,\n 0x1740, 0x1753,\n 0x1760, 0x176c,\n 0x176e, 0x1770,\n 0x1772, 0x1773,\n 0x1780, 0x17dd,\n 0x17e0, 0x17e9,\n 0x17f0, 0x17f9,\n 0x1800, 0x1819,\n 0x1820, 0x1878,\n 0x1880, 0x18aa,\n 0x18b0, 0x18f5,\n 0x1900, 0x191e,\n 0x1920, 0x192b,\n 0x1930, 0x193b,\n 0x1940, 0x1940,\n 0x1944, 0x196d,\n 0x1970, 0x1974,\n 0x1980, 0x19ab,\n 0x19b0, 0x19c9,\n 0x19d0, 0x19da,\n 0x19de, 0x1a1b,\n 0x1a1e, 0x1a5e,\n 0x1a60, 0x1a7c,\n 0x1a7f, 0x1a89,\n 0x1a90, 0x1a99,\n 0x1aa0, 0x1aad,\n 0x1ab0, 0x1ace,\n 0x1b00, 0x1b4c,\n 0x1b50, 0x1b7e,\n 0x1b80, 0x1bf3,\n 0x1bfc, 0x1c37,\n 0x1c3b, 0x1c49,\n 0x1c4d, 0x1c88,\n 0x1c90, 0x1cba,\n 0x1cbd, 0x1cc7,\n 0x1cd0, 0x1cfa,\n 0x1d00, 0x1f15,\n 0x1f18, 0x1f1d,\n 0x1f20, 0x1f45,\n 0x1f48, 0x1f4d,\n 0x1f50, 0x1f57,\n 0x1f59, 0x1f59,\n 0x1f5b, 0x1f5b,\n 0x1f5d, 0x1f5d,\n 0x1f5f, 0x1f7d,\n 0x1f80, 0x1fb4,\n 0x1fb6, 0x1fc4,\n 0x1fc6, 0x1fd3,\n 0x1fd6, 0x1fdb,\n 0x1fdd, 0x1fef,\n 0x1ff2, 0x1ff4,\n 0x1ff6, 0x1ffe,\n 0x2000, 0x200d,\n 0x2010, 0x2027,\n 0x202a, 0x2064,\n 0x2066, 0x2071,\n 0x2074, 0x208e,\n 0x2090, 0x209c,\n 0x20a0, 0x20c0,\n 0x20d0, 0x20f0,\n 0x2100, 0x218b,\n 0x2190, 0x2426,\n 0x2440, 0x244a,\n 0x2460, 0x2b73,\n 0x2b76, 0x2b95,\n 0x2b97, 0x2cf3,\n 0x2cf9, 0x2d25,\n 0x2d27, 0x2d27,\n 0x2d2d, 0x2d2d,\n 0x2d30, 0x2d67,\n 0x2d6f, 0x2d70,\n 0x2d7f, 0x2d96,\n 0x2da0, 0x2da6,\n 0x2da8, 0x2dae,\n 0x2db0, 0x2db6,\n 0x2db8, 0x2dbe,\n 0x2dc0, 0x2dc6,\n 0x2dc8, 0x2dce,\n 0x2dd0, 0x2dd6,\n 0x2dd8, 0x2dde,\n 0x2de0, 0x2e5d,\n 0x2e80, 0x2e99,\n 0x2e9b, 0x2ef3,\n 0x2f00, 0x2fd5,\n 0x2ff0, 0x2ffb,\n 0x3000, 0x303f,\n 0x3041, 0x3096,\n 0x3099, 0x30ff,\n 0x3105, 0x312f,\n 0x3131, 0x318e,\n 0x3190, 0x31e3,\n 0x31f0, 0x321e,\n 0x3220, 0xa48c,\n 0xa490, 0xa4c6,\n 0xa4d0, 0xa62b,\n 0xa640, 0xa6f7,\n 0xa700, 0xa7ca,\n 0xa7d0, 0xa7d1,\n 0xa7d3, 0xa7d3,\n 0xa7d5, 0xa7d9,\n 0xa7f2, 0xa82c,\n 0xa830, 0xa839,\n 0xa840, 0xa877,\n 0xa880, 0xa8c5,\n 0xa8ce, 0xa8d9,\n 0xa8e0, 0xa953,\n 0xa95f, 0xa97c,\n 0xa980, 0xa9cd,\n 0xa9cf, 0xa9d9,\n 0xa9de, 0xa9fe,\n 0xaa00, 0xaa36,\n 0xaa40, 0xaa4d,\n 0xaa50, 0xaa59,\n 0xaa5c, 0xaac2,\n 0xaadb, 0xaaf6,\n 0xab01, 0xab06,\n 0xab09, 0xab0e,\n 0xab11, 0xab16,\n 0xab20, 0xab26,\n 0xab28, 0xab2e,\n 0xab30, 0xab6b,\n 0xab70, 0xabed,\n 0xabf0, 0xabf9,\n 0xac00, 0xd7a3,\n 0xd7b0, 0xd7c6,\n 0xd7cb, 0xd7fb,\n 0xf900, 0xfa6d,\n 0xfa70, 0xfad9,\n 0xfb00, 0xfb06,\n 0xfb13, 0xfb17,\n 0xfb1d, 0xfb36,\n 0xfb38, 0xfb3c,\n 0xfb3e, 0xfb3e,\n 0xfb40, 0xfb41,\n 0xfb43, 0xfb44,\n 0xfb46, 0xfbc2,\n 0xfbd3, 0xfd8f,\n 0xfd92, 0xfdc7,\n 0xfdcf, 0xfdcf,\n 0xfdf0, 0xfe19,\n 0xfe20, 0xfe52,\n 0xfe54, 0xfe66,\n 0xfe68, 0xfe6b,\n 0xfe70, 0xfe74,\n 0xfe76, 0xfefc,\n 0xfeff, 0xfeff,\n 0xff01, 0xffbe,\n 0xffc2, 0xffc7,\n 0xffca, 0xffcf,\n 0xffd2, 0xffd7,\n 0xffda, 0xffdc,\n 0xffe0, 0xffe6,\n 0xffe8, 0xffee,\n 0xfff9, 0xfffc,\n 0x10000, 0x1000b,\n 0x1000d, 0x10026,\n 0x10028, 0x1003a,\n 0x1003c, 0x1003d,\n 0x1003f, 0x1004d,\n 0x10050, 0x1005d,\n 0x10080, 0x100fa,\n 0x10100, 0x10102,\n 0x10107, 0x10133,\n 0x10137, 0x1018e,\n 0x10190, 0x1019c,\n 0x101a0, 0x101a0,\n 0x101d0, 0x101fd,\n 0x10280, 0x1029c,\n 0x102a0, 0x102d0,\n 0x102e0, 0x102fb,\n 0x10300, 0x10323,\n 0x1032d, 0x1034a,\n 0x10350, 0x1037a,\n 0x10380, 0x1039d,\n 0x1039f, 0x103c3,\n 0x103c8, 0x103d5,\n 0x10400, 0x1049d,\n 0x104a0, 0x104a9,\n 0x104b0, 0x104d3,\n 0x104d8, 0x104fb,\n 0x10500, 0x10527,\n 0x10530, 0x10563,\n 0x1056f, 0x1057a,\n 0x1057c, 0x1058a,\n 0x1058c, 0x10592,\n 0x10594, 0x10595,\n 0x10597, 0x105a1,\n 0x105a3, 0x105b1,\n 0x105b3, 0x105b9,\n 0x105bb, 0x105bc,\n 0x10600, 0x10736,\n 0x10740, 0x10755,\n 0x10760, 0x10767,\n 0x10780, 0x10785,\n 0x10787, 0x107b0,\n 0x107b2, 0x107ba,\n 0x10800, 0x10805,\n 0x10808, 0x10808,\n 0x1080a, 0x10835,\n 0x10837, 0x10838,\n 0x1083c, 0x1083c,\n 0x1083f, 0x10855,\n 0x10857, 0x1089e,\n 0x108a7, 0x108af,\n 0x108e0, 0x108f2,\n 0x108f4, 0x108f5,\n 0x108fb, 0x1091b,\n 0x1091f, 0x10939,\n 0x1093f, 0x1093f,\n 0x10980, 0x109b7,\n 0x109bc, 0x109cf,\n 0x109d2, 0x10a03,\n 0x10a05, 0x10a06,\n 0x10a0c, 0x10a13,\n 0x10a15, 0x10a17,\n 0x10a19, 0x10a35,\n 0x10a38, 0x10a3a,\n 0x10a3f, 0x10a48,\n 0x10a50, 0x10a58,\n 0x10a60, 0x10a9f,\n 0x10ac0, 0x10ae6,\n 0x10aeb, 0x10af6,\n 0x10b00, 0x10b35,\n 0x10b39, 0x10b55,\n 0x10b58, 0x10b72,\n 0x10b78, 0x10b91,\n 0x10b99, 0x10b9c,\n 0x10ba9, 0x10baf,\n 0x10c00, 0x10c48,\n 0x10c80, 0x10cb2,\n 0x10cc0, 0x10cf2,\n 0x10cfa, 0x10d27,\n 0x10d30, 0x10d39,\n 0x10e60, 0x10e7e,\n 0x10e80, 0x10ea9,\n 0x10eab, 0x10ead,\n 0x10eb0, 0x10eb1,\n 0x10efd, 0x10f27,\n 0x10f30, 0x10f59,\n 0x10f70, 0x10f89,\n 0x10fb0, 0x10fcb,\n 0x10fe0, 0x10ff6,\n 0x11000, 0x1104d,\n 0x11052, 0x11075,\n 0x1107f, 0x110c2,\n 0x110cd, 0x110cd,\n 0x110d0, 0x110e8,\n 0x110f0, 0x110f9,\n 0x11100, 0x11134,\n 0x11136, 0x11147,\n 0x11150, 0x11176,\n 0x11180, 0x111df,\n 0x111e1, 0x111f4,\n 0x11200, 0x11211,\n 0x11213, 0x11241,\n 0x11280, 0x11286,\n 0x11288, 0x11288,\n 0x1128a, 0x1128d,\n 0x1128f, 0x1129d,\n 0x1129f, 0x112a9,\n 0x112b0, 0x112ea,\n 0x112f0, 0x112f9,\n 0x11300, 0x11303,\n 0x11305, 0x1130c,\n 0x1130f, 0x11310,\n 0x11313, 0x11328,\n 0x1132a, 0x11330,\n 0x11332, 0x11333,\n 0x11335, 0x11339,\n 0x1133b, 0x11344,\n 0x11347, 0x11348,\n 0x1134b, 0x1134d,\n 0x11350, 0x11350,\n 0x11357, 0x11357,\n 0x1135d, 0x11363,\n 0x11366, 0x1136c,\n 0x11370, 0x11374,\n 0x11400, 0x1145b,\n 0x1145d, 0x11461,\n 0x11480, 0x114c7,\n 0x114d0, 0x114d9,\n 0x11580, 0x115b5,\n 0x115b8, 0x115dd,\n 0x11600, 0x11644,\n 0x11650, 0x11659,\n 0x11660, 0x1166c,\n 0x11680, 0x116b9,\n 0x116c0, 0x116c9,\n 0x11700, 0x1171a,\n 0x1171d, 0x1172b,\n 0x11730, 0x11746,\n 0x11800, 0x1183b,\n 0x118a0, 0x118f2,\n 0x118ff, 0x11906,\n 0x11909, 0x11909,\n 0x1190c, 0x11913,\n 0x11915, 0x11916,\n 0x11918, 0x11935,\n 0x11937, 0x11938,\n 0x1193b, 0x11946,\n 0x11950, 0x11959,\n 0x119a0, 0x119a7,\n 0x119aa, 0x119d7,\n 0x119da, 0x119e4,\n 0x11a00, 0x11a47,\n 0x11a50, 0x11aa2,\n 0x11ab0, 0x11af8,\n 0x11b00, 0x11b09,\n 0x11c00, 0x11c08,\n 0x11c0a, 0x11c36,\n 0x11c38, 0x11c45,\n 0x11c50, 0x11c6c,\n 0x11c70, 0x11c8f,\n 0x11c92, 0x11ca7,\n 0x11ca9, 0x11cb6,\n 0x11d00, 0x11d06,\n 0x11d08, 0x11d09,\n 0x11d0b, 0x11d36,\n 0x11d3a, 0x11d3a,\n 0x11d3c, 0x11d3d,\n 0x11d3f, 0x11d47,\n 0x11d50, 0x11d59,\n 0x11d60, 0x11d65,\n 0x11d67, 0x11d68,\n 0x11d6a, 0x11d8e,\n 0x11d90, 0x11d91,\n 0x11d93, 0x11d98,\n 0x11da0, 0x11da9,\n 0x11ee0, 0x11ef8,\n 0x11f00, 0x11f10,\n 0x11f12, 0x11f3a,\n 0x11f3e, 0x11f59,\n 0x11fb0, 0x11fb0,\n 0x11fc0, 0x11ff1,\n 0x11fff, 0x12399,\n 0x12400, 0x1246e,\n 0x12470, 0x12474,\n 0x12480, 0x12543,\n 0x12f90, 0x12ff2,\n 0x13000, 0x13455,\n 0x14400, 0x14646,\n 0x16800, 0x16a38,\n 0x16a40, 0x16a5e,\n 0x16a60, 0x16a69,\n 0x16a6e, 0x16abe,\n 0x16ac0, 0x16ac9,\n 0x16ad0, 0x16aed,\n 0x16af0, 0x16af5,\n 0x16b00, 0x16b45,\n 0x16b50, 0x16b59,\n 0x16b5b, 0x16b61,\n 0x16b63, 0x16b77,\n 0x16b7d, 0x16b8f,\n 0x16e40, 0x16e9a,\n 0x16f00, 0x16f4a,\n 0x16f4f, 0x16f87,\n 0x16f8f, 0x16f9f,\n 0x16fe0, 0x16fe4,\n 0x16ff0, 0x16ff1,\n 0x17000, 0x187f7,\n 0x18800, 0x18cd5,\n 0x18d00, 0x18d08,\n 0x1aff0, 0x1aff3,\n 0x1aff5, 0x1affb,\n 0x1affd, 0x1affe,\n 0x1b000, 0x1b122,\n 0x1b132, 0x1b132,\n 0x1b150, 0x1b152,\n 0x1b155, 0x1b155,\n 0x1b164, 0x1b167,\n 0x1b170, 0x1b2fb,\n 0x1bc00, 0x1bc6a,\n 0x1bc70, 0x1bc7c,\n 0x1bc80, 0x1bc88,\n 0x1bc90, 0x1bc99,\n 0x1bc9c, 0x1bca3,\n 0x1cf00, 0x1cf2d,\n 0x1cf30, 0x1cf46,\n 0x1cf50, 0x1cfc3,\n 0x1d000, 0x1d0f5,\n 0x1d100, 0x1d126,\n 0x1d129, 0x1d1ea,\n 0x1d200, 0x1d245,\n 0x1d2c0, 0x1d2d3,\n 0x1d2e0, 0x1d2f3,\n 0x1d300, 0x1d356,\n 0x1d360, 0x1d378,\n 0x1d400, 0x1d454,\n 0x1d456, 0x1d49c,\n 0x1d49e, 0x1d49f,\n 0x1d4a2, 0x1d4a2,\n 0x1d4a5, 0x1d4a6,\n 0x1d4a9, 0x1d4ac,\n 0x1d4ae, 0x1d4b9,\n 0x1d4bb, 0x1d4bb,\n 0x1d4bd, 0x1d4c3,\n 0x1d4c5, 0x1d505,\n 0x1d507, 0x1d50a,\n 0x1d50d, 0x1d514,\n 0x1d516, 0x1d51c,\n 0x1d51e, 0x1d539,\n 0x1d53b, 0x1d53e,\n 0x1d540, 0x1d544,\n 0x1d546, 0x1d546,\n 0x1d54a, 0x1d550,\n 0x1d552, 0x1d6a5,\n 0x1d6a8, 0x1d7cb,\n 0x1d7ce, 0x1da8b,\n 0x1da9b, 0x1da9f,\n 0x1daa1, 0x1daaf,\n 0x1df00, 0x1df1e,\n 0x1df25, 0x1df2a,\n 0x1e000, 0x1e006,\n 0x1e008, 0x1e018,\n 0x1e01b, 0x1e021,\n 0x1e023, 0x1e024,\n 0x1e026, 0x1e02a,\n 0x1e030, 0x1e06d,\n 0x1e08f, 0x1e08f,\n 0x1e100, 0x1e12c,\n 0x1e130, 0x1e13d,\n 0x1e140, 0x1e149,\n 0x1e14e, 0x1e14f,\n 0x1e290, 0x1e2ae,\n 0x1e2c0, 0x1e2f9,\n 0x1e2ff, 0x1e2ff,\n 0x1e4d0, 0x1e4f9,\n 0x1e7e0, 0x1e7e6,\n 0x1e7e8, 0x1e7eb,\n 0x1e7ed, 0x1e7ee,\n 0x1e7f0, 0x1e7fe,\n 0x1e800, 0x1e8c4,\n 0x1e8c7, 0x1e8d6,\n 0x1e900, 0x1e94b,\n 0x1e950, 0x1e959,\n 0x1e95e, 0x1e95f,\n 0x1ec71, 0x1ecb4,\n 0x1ed01, 0x1ed3d,\n 0x1ee00, 0x1ee03,\n 0x1ee05, 0x1ee1f,\n 0x1ee21, 0x1ee22,\n 0x1ee24, 0x1ee24,\n 0x1ee27, 0x1ee27,\n 0x1ee29, 0x1ee32,\n 0x1ee34, 0x1ee37,\n 0x1ee39, 0x1ee39,\n 0x1ee3b, 0x1ee3b,\n 0x1ee42, 0x1ee42,\n 0x1ee47, 0x1ee47,\n 0x1ee49, 0x1ee49,\n 0x1ee4b, 0x1ee4b,\n 0x1ee4d, 0x1ee4f,\n 0x1ee51, 0x1ee52,\n 0x1ee54, 0x1ee54,\n 0x1ee57, 0x1ee57,\n 0x1ee59, 0x1ee59,\n 0x1ee5b, 0x1ee5b,\n 0x1ee5d, 0x1ee5d,\n 0x1ee5f, 0x1ee5f,\n 0x1ee61, 0x1ee62,\n 0x1ee64, 0x1ee64,\n 0x1ee67, 0x1ee6a,\n 0x1ee6c, 0x1ee72,\n 0x1ee74, 0x1ee77,\n 0x1ee79, 0x1ee7c,\n 0x1ee7e, 0x1ee7e,\n 0x1ee80, 0x1ee89,\n 0x1ee8b, 0x1ee9b,\n 0x1eea1, 0x1eea3,\n 0x1eea5, 0x1eea9,\n 0x1eeab, 0x1eebb,\n 0x1eef0, 0x1eef1,\n 0x1f000, 0x1f02b,\n 0x1f030, 0x1f093,\n 0x1f0a0, 0x1f0ae,\n 0x1f0b1, 0x1f0bf,\n 0x1f0c1, 0x1f0cf,\n 0x1f0d1, 0x1f0f5,\n 0x1f100, 0x1f1ad,\n 0x1f1e6, 0x1f202,\n 0x1f210, 0x1f23b,\n 0x1f240, 0x1f248,\n 0x1f250, 0x1f251,\n 0x1f260, 0x1f265,\n 0x1f300, 0x1f6d7,\n 0x1f6dc, 0x1f6ec,\n 0x1f6f0, 0x1f6fc,\n 0x1f700, 0x1f776,\n 0x1f77b, 0x1f7d9,\n 0x1f7e0, 0x1f7eb,\n 0x1f7f0, 0x1f7f0,\n 0x1f800, 0x1f80b,\n 0x1f810, 0x1f847,\n 0x1f850, 0x1f859,\n 0x1f860, 0x1f887,\n 0x1f890, 0x1f8ad,\n 0x1f8b0, 0x1f8b1,\n 0x1f900, 0x1fa53,\n 0x1fa60, 0x1fa6d,\n 0x1fa70, 0x1fa7c,\n 0x1fa80, 0x1fa88,\n 0x1fa90, 0x1fabd,\n 0x1fabf, 0x1fac5,\n 0x1face, 0x1fadb,\n 0x1fae0, 0x1fae8,\n 0x1faf0, 0x1faf8,\n 0x1fb00, 0x1fb92,\n 0x1fb94, 0x1fbca,\n 0x1fbf0, 0x1fbf9,\n 0x20000, 0x2a6df,\n 0x2a700, 0x2b739,\n 0x2b740, 0x2b81d,\n 0x2b820, 0x2cea1,\n 0x2ceb0, 0x2ebe0,\n 0x2f800, 0x2fa1d,\n 0x30000, 0x3134a,\n 0x31350, 0x323af,\n 0xe0001, 0xe0001,\n 0xe0020, 0xe007f,\n 0xe0100, 0xe01ef,\n];\n//# sourceMappingURL=nonascii.js.map","import { nonAsciiIdentifierMap } from \"./nonascii.js\";\nexport function utf16CodeUnits(codePoint) {\n return codePoint >= 0x10000 ? 2 : 1;\n}\nexport function isHighSurrogate(ch) {\n return ch >= 0xd800 && ch <= 0xdbff;\n}\nexport function isLowSurrogate(ch) {\n return ch >= 0xdc00 && ch <= 0xdfff;\n}\nexport function isLineBreak(ch) {\n return ch === 10 /* CharCode.LineFeed */ || ch === 13 /* CharCode.CarriageReturn */;\n}\nexport function isAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 32 /* CharCode.Space */ ||\n ch === 9 /* CharCode.Tab */ ||\n ch === 11 /* CharCode.VerticalTab */ ||\n ch === 12 /* CharCode.FormFeed */);\n}\nexport function isNonAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 133 /* CharCode.NextLine */ || // not considered a line break\n ch === 8206 /* CharCode.LeftToRightMark */ ||\n ch === 8207 /* CharCode.RightToLeftMark */ ||\n ch === 8232 /* CharCode.LineSeparator */ ||\n ch === 8233 /* CharCode.ParagraphSeparator */);\n}\nexport function isWhiteSpace(ch) {\n return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nexport function isWhiteSpaceSingleLine(ch) {\n return (isAsciiWhiteSpaceSingleLine(ch) ||\n (ch > 127 /* CharCode.MaxAscii */ && isNonAsciiWhiteSpaceSingleLine(ch)));\n}\nexport function trim(str) {\n let start = 0;\n let end = str.length - 1;\n if (!isWhiteSpace(str.charCodeAt(start)) && !isWhiteSpace(str.charCodeAt(end))) {\n return str;\n }\n while (isWhiteSpace(str.charCodeAt(start))) {\n start++;\n }\n while (isWhiteSpace(str.charCodeAt(end))) {\n end--;\n }\n return str.substring(start, end + 1);\n}\nexport function isDigit(ch) {\n return ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */;\n}\nexport function isHexDigit(ch) {\n return (isDigit(ch) || (ch >= 65 /* CharCode.A */ && ch <= 70 /* CharCode.F */) || (ch >= 97 /* CharCode.a */ && ch <= 102 /* CharCode.f */));\n}\nexport function isBinaryDigit(ch) {\n return ch === 48 /* CharCode._0 */ || ch === 49 /* CharCode._1 */;\n}\nexport function isLowercaseAsciiLetter(ch) {\n return ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */;\n}\nexport function isAsciiIdentifierStart(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isAsciiIdentifierContinue(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n (ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isIdentifierStart(codePoint) {\n return (isAsciiIdentifierStart(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isIdentifierContinue(codePoint) {\n return (isAsciiIdentifierContinue(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isNonAsciiIdentifierCharacter(codePoint) {\n return lookupInNonAsciiMap(codePoint, nonAsciiIdentifierMap);\n}\nexport function codePointBefore(text, pos) {\n if (pos <= 0 || pos > text.length) {\n return { char: undefined, size: 0 };\n }\n const ch = text.charCodeAt(pos - 1);\n if (!isLowSurrogate(ch) || !isHighSurrogate(text.charCodeAt(pos - 2))) {\n return { char: ch, size: 1 };\n }\n return { char: text.codePointAt(pos - 2), size: 2 };\n}\nfunction lookupInNonAsciiMap(codePoint, map) {\n // Perform binary search in one of the Unicode range maps\n let lo = 0;\n let hi = map.length;\n let mid;\n while (lo + 1 < hi) {\n mid = lo + (hi - lo) / 2;\n // mid has to be even to catch a range's beginning\n mid -= mid % 2;\n if (map[mid] <= codePoint && codePoint <= map[mid + 1]) {\n return true;\n }\n if (codePoint < map[mid]) {\n hi = mid;\n }\n else {\n lo = mid + 2;\n }\n }\n return false;\n}\n//# sourceMappingURL=charcode.js.map","import { codePointBefore, isAsciiIdentifierContinue, isAsciiIdentifierStart, isBinaryDigit, isDigit, isHexDigit, isIdentifierContinue, isIdentifierStart, isLineBreak, isLowercaseAsciiLetter, isNonAsciiIdentifierCharacter, isNonAsciiWhiteSpaceSingleLine, isWhiteSpace, isWhiteSpaceSingleLine, utf16CodeUnits, } from \"./charcode.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { getCommentAtPosition } from \"./parser-utils.js\";\nimport { createSourceFile } from \"./source-file.js\";\n// All conflict markers consist of the same character repeated seven times. If it is\n// a <<<<<<< or >>>>>>> marker then it is also followed by a space.\nconst mergeConflictMarkerLength = 7;\nexport var Token;\n(function (Token) {\n Token[Token[\"None\"] = 0] = \"None\";\n Token[Token[\"Invalid\"] = 1] = \"Invalid\";\n Token[Token[\"EndOfFile\"] = 2] = \"EndOfFile\";\n Token[Token[\"Identifier\"] = 3] = \"Identifier\";\n Token[Token[\"NumericLiteral\"] = 4] = \"NumericLiteral\";\n Token[Token[\"StringLiteral\"] = 5] = \"StringLiteral\";\n Token[Token[\"StringTemplateHead\"] = 6] = \"StringTemplateHead\";\n Token[Token[\"StringTemplateMiddle\"] = 7] = \"StringTemplateMiddle\";\n Token[Token[\"StringTemplateTail\"] = 8] = \"StringTemplateTail\";\n // Add new tokens above if they don't fit any of the categories below\n ///////////////////////////////////////////////////////////////\n // Trivia\n /** @internal */ Token[Token[\"__StartTrivia\"] = 9] = \"__StartTrivia\";\n Token[Token[\"SingleLineComment\"] = 9] = \"SingleLineComment\";\n Token[Token[\"MultiLineComment\"] = 10] = \"MultiLineComment\";\n Token[Token[\"NewLine\"] = 11] = \"NewLine\";\n Token[Token[\"Whitespace\"] = 12] = \"Whitespace\";\n Token[Token[\"ConflictMarker\"] = 13] = \"ConflictMarker\";\n // Add new trivia above\n /** @internal */ Token[Token[\"__EndTrivia\"] = 14] = \"__EndTrivia\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Doc comment content\n /** @internal */ Token[Token[\"__StartDocComment\"] = 14] = \"__StartDocComment\";\n Token[Token[\"DocText\"] = 14] = \"DocText\";\n Token[Token[\"DocCodeSpan\"] = 15] = \"DocCodeSpan\";\n Token[Token[\"DocCodeFenceDelimiter\"] = 16] = \"DocCodeFenceDelimiter\";\n /** @internal */ Token[Token[\"__EndDocComment\"] = 17] = \"__EndDocComment\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Punctuation\n /** @internal */ Token[Token[\"__StartPunctuation\"] = 17] = \"__StartPunctuation\";\n Token[Token[\"OpenBrace\"] = 17] = \"OpenBrace\";\n Token[Token[\"CloseBrace\"] = 18] = \"CloseBrace\";\n Token[Token[\"OpenParen\"] = 19] = \"OpenParen\";\n Token[Token[\"CloseParen\"] = 20] = \"CloseParen\";\n Token[Token[\"OpenBracket\"] = 21] = \"OpenBracket\";\n Token[Token[\"CloseBracket\"] = 22] = \"CloseBracket\";\n Token[Token[\"Dot\"] = 23] = \"Dot\";\n Token[Token[\"Ellipsis\"] = 24] = \"Ellipsis\";\n Token[Token[\"Semicolon\"] = 25] = \"Semicolon\";\n Token[Token[\"Comma\"] = 26] = \"Comma\";\n Token[Token[\"LessThan\"] = 27] = \"LessThan\";\n Token[Token[\"GreaterThan\"] = 28] = \"GreaterThan\";\n Token[Token[\"Equals\"] = 29] = \"Equals\";\n Token[Token[\"Ampersand\"] = 30] = \"Ampersand\";\n Token[Token[\"Bar\"] = 31] = \"Bar\";\n Token[Token[\"Question\"] = 32] = \"Question\";\n Token[Token[\"Colon\"] = 33] = \"Colon\";\n Token[Token[\"ColonColon\"] = 34] = \"ColonColon\";\n Token[Token[\"At\"] = 35] = \"At\";\n Token[Token[\"AtAt\"] = 36] = \"AtAt\";\n Token[Token[\"Hash\"] = 37] = \"Hash\";\n Token[Token[\"HashBrace\"] = 38] = \"HashBrace\";\n Token[Token[\"HashBracket\"] = 39] = \"HashBracket\";\n Token[Token[\"Star\"] = 40] = \"Star\";\n Token[Token[\"ForwardSlash\"] = 41] = \"ForwardSlash\";\n Token[Token[\"Plus\"] = 42] = \"Plus\";\n Token[Token[\"Hyphen\"] = 43] = \"Hyphen\";\n Token[Token[\"Exclamation\"] = 44] = \"Exclamation\";\n Token[Token[\"LessThanEquals\"] = 45] = \"LessThanEquals\";\n Token[Token[\"GreaterThanEquals\"] = 46] = \"GreaterThanEquals\";\n Token[Token[\"AmpsersandAmpersand\"] = 47] = \"AmpsersandAmpersand\";\n Token[Token[\"BarBar\"] = 48] = \"BarBar\";\n Token[Token[\"EqualsEquals\"] = 49] = \"EqualsEquals\";\n Token[Token[\"ExclamationEquals\"] = 50] = \"ExclamationEquals\";\n Token[Token[\"EqualsGreaterThan\"] = 51] = \"EqualsGreaterThan\";\n // Add new punctuation above\n /** @internal */ Token[Token[\"__EndPunctuation\"] = 52] = \"__EndPunctuation\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Statement keywords\n /** @internal */ Token[Token[\"__StartKeyword\"] = 52] = \"__StartKeyword\";\n /** @internal */ Token[Token[\"__StartStatementKeyword\"] = 52] = \"__StartStatementKeyword\";\n Token[Token[\"ImportKeyword\"] = 52] = \"ImportKeyword\";\n Token[Token[\"ModelKeyword\"] = 53] = \"ModelKeyword\";\n Token[Token[\"ScalarKeyword\"] = 54] = \"ScalarKeyword\";\n Token[Token[\"NamespaceKeyword\"] = 55] = \"NamespaceKeyword\";\n Token[Token[\"UsingKeyword\"] = 56] = \"UsingKeyword\";\n Token[Token[\"OpKeyword\"] = 57] = \"OpKeyword\";\n Token[Token[\"EnumKeyword\"] = 58] = \"EnumKeyword\";\n Token[Token[\"AliasKeyword\"] = 59] = \"AliasKeyword\";\n Token[Token[\"IsKeyword\"] = 60] = \"IsKeyword\";\n Token[Token[\"InterfaceKeyword\"] = 61] = \"InterfaceKeyword\";\n Token[Token[\"UnionKeyword\"] = 62] = \"UnionKeyword\";\n Token[Token[\"ProjectionKeyword\"] = 63] = \"ProjectionKeyword\";\n Token[Token[\"ElseKeyword\"] = 64] = \"ElseKeyword\";\n Token[Token[\"IfKeyword\"] = 65] = \"IfKeyword\";\n Token[Token[\"DecKeyword\"] = 66] = \"DecKeyword\";\n Token[Token[\"FnKeyword\"] = 67] = \"FnKeyword\";\n Token[Token[\"ConstKeyword\"] = 68] = \"ConstKeyword\";\n Token[Token[\"InitKeyword\"] = 69] = \"InitKeyword\";\n // Add new statement keyword above\n /** @internal */ Token[Token[\"__EndStatementKeyword\"] = 70] = \"__EndStatementKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__StartModifierKeyword\"] = 70] = \"__StartModifierKeyword\";\n Token[Token[\"ExternKeyword\"] = 70] = \"ExternKeyword\";\n /** @internal */ Token[Token[\"__EndModifierKeyword\"] = 71] = \"__EndModifierKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Other keywords\n Token[Token[\"ExtendsKeyword\"] = 71] = \"ExtendsKeyword\";\n Token[Token[\"TrueKeyword\"] = 72] = \"TrueKeyword\";\n Token[Token[\"FalseKeyword\"] = 73] = \"FalseKeyword\";\n Token[Token[\"ReturnKeyword\"] = 74] = \"ReturnKeyword\";\n Token[Token[\"VoidKeyword\"] = 75] = \"VoidKeyword\";\n Token[Token[\"NeverKeyword\"] = 76] = \"NeverKeyword\";\n Token[Token[\"UnknownKeyword\"] = 77] = \"UnknownKeyword\";\n Token[Token[\"ValueOfKeyword\"] = 78] = \"ValueOfKeyword\";\n Token[Token[\"TypeOfKeyword\"] = 79] = \"TypeOfKeyword\";\n // Add new non-statement keyword above\n /** @internal */ Token[Token[\"__EndKeyword\"] = 80] = \"__EndKeyword\";\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__Count\"] = 80] = \"__Count\";\n})(Token || (Token = {}));\n/** @internal */\nexport const TokenDisplay = getTokenDisplayTable([\n [Token.None, \"none\"],\n [Token.Invalid, \"invalid\"],\n [Token.EndOfFile, \"end of file\"],\n [Token.SingleLineComment, \"single-line comment\"],\n [Token.MultiLineComment, \"multi-line comment\"],\n [Token.ConflictMarker, \"conflict marker\"],\n [Token.NumericLiteral, \"numeric literal\"],\n [Token.StringLiteral, \"string literal\"],\n [Token.StringTemplateHead, \"string template head\"],\n [Token.StringTemplateMiddle, \"string template middle\"],\n [Token.StringTemplateTail, \"string template tail\"],\n [Token.NewLine, \"newline\"],\n [Token.Whitespace, \"whitespace\"],\n [Token.DocCodeFenceDelimiter, \"doc code fence delimiter\"],\n [Token.DocCodeSpan, \"doc code span\"],\n [Token.DocText, \"doc text\"],\n [Token.OpenBrace, \"'{'\"],\n [Token.CloseBrace, \"'}'\"],\n [Token.OpenParen, \"'('\"],\n [Token.CloseParen, \"')'\"],\n [Token.OpenBracket, \"'['\"],\n [Token.CloseBracket, \"']'\"],\n [Token.Dot, \"'.'\"],\n [Token.Ellipsis, \"'...'\"],\n [Token.Semicolon, \"';'\"],\n [Token.Comma, \"','\"],\n [Token.LessThan, \"'<'\"],\n [Token.GreaterThan, \"'>'\"],\n [Token.Equals, \"'='\"],\n [Token.Ampersand, \"'&'\"],\n [Token.Bar, \"'|'\"],\n [Token.Question, \"'?'\"],\n [Token.Colon, \"':'\"],\n [Token.ColonColon, \"'::'\"],\n [Token.At, \"'@'\"],\n [Token.AtAt, \"'@@'\"],\n [Token.Hash, \"'#'\"],\n [Token.HashBrace, \"'#{'\"],\n [Token.HashBracket, \"'#['\"],\n [Token.Star, \"'*'\"],\n [Token.ForwardSlash, \"'/'\"],\n [Token.Plus, \"'+'\"],\n [Token.Hyphen, \"'-'\"],\n [Token.Exclamation, \"'!'\"],\n [Token.LessThanEquals, \"'<='\"],\n [Token.GreaterThanEquals, \"'>='\"],\n [Token.AmpsersandAmpersand, \"'&&'\"],\n [Token.BarBar, \"'||'\"],\n [Token.EqualsEquals, \"'=='\"],\n [Token.ExclamationEquals, \"'!='\"],\n [Token.EqualsGreaterThan, \"'=>'\"],\n [Token.Identifier, \"identifier\"],\n [Token.ImportKeyword, \"'import'\"],\n [Token.ModelKeyword, \"'model'\"],\n [Token.ScalarKeyword, \"'scalar'\"],\n [Token.NamespaceKeyword, \"'namespace'\"],\n [Token.UsingKeyword, \"'using'\"],\n [Token.OpKeyword, \"'op'\"],\n [Token.EnumKeyword, \"'enum'\"],\n [Token.AliasKeyword, \"'alias'\"],\n [Token.IsKeyword, \"'is'\"],\n [Token.InterfaceKeyword, \"'interface'\"],\n [Token.UnionKeyword, \"'union'\"],\n [Token.ProjectionKeyword, \"'projection'\"],\n [Token.ElseKeyword, \"'else'\"],\n [Token.IfKeyword, \"'if'\"],\n [Token.DecKeyword, \"'dec'\"],\n [Token.FnKeyword, \"'fn'\"],\n [Token.ValueOfKeyword, \"'valueof'\"],\n [Token.TypeOfKeyword, \"'typeof'\"],\n [Token.ConstKeyword, \"'const'\"],\n [Token.InitKeyword, \"'init'\"],\n [Token.ExtendsKeyword, \"'extends'\"],\n [Token.TrueKeyword, \"'true'\"],\n [Token.FalseKeyword, \"'false'\"],\n [Token.ReturnKeyword, \"'return'\"],\n [Token.VoidKeyword, \"'void'\"],\n [Token.NeverKeyword, \"'never'\"],\n [Token.UnknownKeyword, \"'unknown'\"],\n [Token.ExternKeyword, \"'extern'\"],\n]);\n/** @internal */\nexport const Keywords = new Map([\n [\"import\", Token.ImportKeyword],\n [\"model\", Token.ModelKeyword],\n [\"scalar\", Token.ScalarKeyword],\n [\"namespace\", Token.NamespaceKeyword],\n [\"interface\", Token.InterfaceKeyword],\n [\"union\", Token.UnionKeyword],\n [\"if\", Token.IfKeyword],\n [\"else\", Token.ElseKeyword],\n [\"projection\", Token.ProjectionKeyword],\n [\"using\", Token.UsingKeyword],\n [\"op\", Token.OpKeyword],\n [\"extends\", Token.ExtendsKeyword],\n [\"is\", Token.IsKeyword],\n [\"enum\", Token.EnumKeyword],\n [\"alias\", Token.AliasKeyword],\n [\"dec\", Token.DecKeyword],\n [\"fn\", Token.FnKeyword],\n [\"valueof\", Token.ValueOfKeyword],\n [\"typeof\", Token.TypeOfKeyword],\n [\"const\", Token.ConstKeyword],\n [\"init\", Token.InitKeyword],\n [\"true\", Token.TrueKeyword],\n [\"false\", Token.FalseKeyword],\n [\"return\", Token.ReturnKeyword],\n [\"void\", Token.VoidKeyword],\n [\"never\", Token.NeverKeyword],\n [\"unknown\", Token.UnknownKeyword],\n [\"extern\", Token.ExternKeyword],\n]);\nexport var TokenFlags;\n(function (TokenFlags) {\n TokenFlags[TokenFlags[\"None\"] = 0] = \"None\";\n TokenFlags[TokenFlags[\"Escaped\"] = 1] = \"Escaped\";\n TokenFlags[TokenFlags[\"TripleQuoted\"] = 2] = \"TripleQuoted\";\n TokenFlags[TokenFlags[\"Unterminated\"] = 4] = \"Unterminated\";\n TokenFlags[TokenFlags[\"NonAscii\"] = 8] = \"NonAscii\";\n TokenFlags[TokenFlags[\"DocComment\"] = 16] = \"DocComment\";\n TokenFlags[TokenFlags[\"Backticked\"] = 32] = \"Backticked\";\n})(TokenFlags || (TokenFlags = {}));\nexport function isTrivia(token) {\n return token >= Token.__StartTrivia && token < Token.__EndTrivia;\n}\nexport function isComment(token) {\n return token === Token.SingleLineComment || token === Token.MultiLineComment;\n}\nexport function isKeyword(token) {\n return token >= Token.__StartKeyword && token < Token.__EndKeyword;\n}\nexport function isPunctuation(token) {\n return token >= Token.__StartPunctuation && token < Token.__EndPunctuation;\n}\nexport function isModifier(token) {\n return token >= Token.__StartModifierKeyword && token < Token.__EndModifierKeyword;\n}\nexport function isStatementKeyword(token) {\n return token >= Token.__StartStatementKeyword && token < Token.__EndStatementKeyword;\n}\nexport function createScanner(source, diagnosticHandler) {\n const file = typeof source === \"string\" ? createSourceFile(source, \"<anonymous file>\") : source;\n const input = file.text;\n let position = 0;\n let endPosition = input.length;\n let token = Token.None;\n let tokenPosition = -1;\n let tokenFlags = TokenFlags.None;\n // Skip BOM\n if (position < endPosition && input.charCodeAt(position) === 65279 /* CharCode.ByteOrderMark */) {\n position++;\n }\n return {\n get position() {\n return position;\n },\n get token() {\n return token;\n },\n get tokenPosition() {\n return tokenPosition;\n },\n get tokenFlags() {\n return tokenFlags;\n },\n file,\n scan,\n scanRange,\n scanDoc,\n reScanStringTemplate,\n findTripleQuotedStringIndent,\n unindentAndUnescapeTripleQuotedString,\n eof,\n getTokenText,\n getTokenValue,\n };\n function eof() {\n return position >= endPosition;\n }\n function getTokenText() {\n return input.substring(tokenPosition, position);\n }\n function getTokenValue() {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateHead:\n case Token.StringTemplateMiddle:\n case Token.StringTemplateTail:\n return getStringTokenValue(token, tokenFlags);\n case Token.Identifier:\n return getIdentifierTokenValue();\n case Token.DocText:\n return getDocTextValue();\n default:\n return getTokenText();\n }\n }\n function lookAhead(offset) {\n const p = position + offset;\n if (p >= endPosition) {\n return Number.NaN;\n }\n return input.charCodeAt(p);\n }\n function scan() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 40 /* CharCode.OpenParen */:\n return next(Token.OpenParen);\n case 41 /* CharCode.CloseParen */:\n return next(Token.CloseParen);\n case 44 /* CharCode.Comma */:\n return next(Token.Comma);\n case 58 /* CharCode.Colon */:\n return lookAhead(1) === 58 /* CharCode.Colon */ ? next(Token.ColonColon, 2) : next(Token.Colon);\n case 59 /* CharCode.Semicolon */:\n return next(Token.Semicolon);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.OpenBracket);\n case 93 /* CharCode.CloseBracket */:\n return next(Token.CloseBracket);\n case 123 /* CharCode.OpenBrace */:\n return next(Token.OpenBrace);\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return lookAhead(1) === 64 /* CharCode.At */ ? next(Token.AtAt, 2) : next(Token.At);\n case 35 /* CharCode.Hash */:\n const ahead = lookAhead(1);\n switch (ahead) {\n case 123 /* CharCode.OpenBrace */:\n return next(Token.HashBrace, 2);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.HashBracket, 2);\n default:\n return next(Token.Hash);\n }\n case 43 /* CharCode.Plus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Plus);\n case 45 /* CharCode.Minus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Hyphen);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 63 /* CharCode.Question */:\n return next(Token.Question);\n case 38 /* CharCode.Ampersand */:\n return lookAhead(1) === 38 /* CharCode.Ampersand */\n ? next(Token.AmpsersandAmpersand, 2)\n : next(Token.Ampersand);\n case 46 /* CharCode.Dot */:\n return lookAhead(1) === 46 /* CharCode.Dot */ && lookAhead(2) === 46 /* CharCode.Dot */\n ? next(Token.Ellipsis, 3)\n : next(Token.Dot);\n case 47 /* CharCode.Slash */:\n switch (lookAhead(1)) {\n case 47 /* CharCode.Slash */:\n return scanSingleLineComment();\n case 42 /* CharCode.Asterisk */:\n return scanMultiLineComment();\n }\n return next(Token.ForwardSlash);\n case 48 /* CharCode._0 */:\n switch (lookAhead(1)) {\n case 120 /* CharCode.x */:\n return scanHexNumber();\n case 98 /* CharCode.b */:\n return scanBinaryNumber();\n }\n // fallthrough\n case 49 /* CharCode._1 */:\n case 50 /* CharCode._2 */:\n case 51 /* CharCode._3 */:\n case 52 /* CharCode._4 */:\n case 53 /* CharCode._5 */:\n case 54 /* CharCode._6 */:\n case 55 /* CharCode._7 */:\n case 56 /* CharCode._8 */:\n case 57 /* CharCode._9 */:\n return scanNumber();\n case 60 /* CharCode.LessThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.LessThanEquals, 2)\n : next(Token.LessThan);\n case 62 /* CharCode.GreaterThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.GreaterThanEquals, 2)\n : next(Token.GreaterThan);\n case 61 /* CharCode.Equals */:\n if (atConflictMarker())\n return scanConflictMarker();\n switch (lookAhead(1)) {\n case 61 /* CharCode.Equals */:\n return next(Token.EqualsEquals, 2);\n case 62 /* CharCode.GreaterThan */:\n return next(Token.EqualsGreaterThan, 2);\n }\n return next(Token.Equals);\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 124 /* CharCode.Bar */ ? next(Token.BarBar, 2) : next(Token.Bar);\n case 34 /* CharCode.DoubleQuote */:\n return lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */\n ? scanString(TokenFlags.TripleQuoted)\n : scanString(TokenFlags.None);\n case 33 /* CharCode.Exclamation */:\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.ExclamationEquals, 2)\n : next(Token.Exclamation);\n case 96 /* CharCode.Backtick */:\n return scanBacktickedIdentifier();\n default:\n if (isLowercaseAsciiLetter(ch)) {\n return scanIdentifierOrKeyword();\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return scanInvalidCharacter();\n }\n return scanNonAsciiToken();\n }\n }\n return (token = Token.EndOfFile);\n }\n function scanDoc() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 92 /* CharCode.Backslash */:\n if (lookAhead(1) === 64 /* CharCode.At */) {\n tokenFlags |= TokenFlags.Escaped;\n return next(Token.DocText, 2);\n }\n return next(Token.DocText);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return next(Token.At);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 96 /* CharCode.Backtick */:\n return lookAhead(1) === 96 /* CharCode.Backtick */ && lookAhead(2) === 96 /* CharCode.Backtick */\n ? next(Token.DocCodeFenceDelimiter, 3)\n : scanDocCodeSpan();\n case 60 /* CharCode.LessThan */:\n case 62 /* CharCode.GreaterThan */:\n case 61 /* CharCode.Equals */:\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return next(Token.DocText);\n case 45 /* CharCode.Minus */:\n return next(Token.Hyphen);\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return next(Token.DocText);\n }\n const cp = input.codePointAt(position);\n if (isIdentifierStart(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanUnknown(Token.DocText);\n }\n return (token = Token.EndOfFile);\n }\n function reScanStringTemplate(lastTokenFlags) {\n position = tokenPosition;\n tokenFlags = TokenFlags.None;\n return scanStringTemplateSpan(lastTokenFlags);\n }\n function scanRange(range, callback) {\n const savedPosition = position;\n const savedEndPosition = endPosition;\n const savedToken = token;\n const savedTokenPosition = tokenPosition;\n const savedTokenFlags = tokenFlags;\n position = range.pos;\n endPosition = range.end;\n token = Token.None;\n tokenPosition = -1;\n tokenFlags = TokenFlags.None;\n const result = callback();\n position = savedPosition;\n endPosition = savedEndPosition;\n token = savedToken;\n tokenPosition = savedTokenPosition;\n tokenFlags = savedTokenFlags;\n return result;\n }\n function next(t, count = 1) {\n position += count;\n return (token = t);\n }\n function unterminated(t) {\n tokenFlags |= TokenFlags.Unterminated;\n error({ code: \"unterminated\", format: { token: TokenDisplay[t] } });\n return (token = t);\n }\n function scanNonAsciiToken() {\n tokenFlags |= TokenFlags.NonAscii;\n const ch = input.charCodeAt(position);\n if (isNonAsciiWhiteSpaceSingleLine(ch)) {\n return scanWhitespace();\n }\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanInvalidCharacter();\n }\n function scanInvalidCharacter() {\n token = scanUnknown(Token.Invalid);\n error({ code: \"invalid-character\" });\n return token;\n }\n function scanUnknown(t) {\n const codePoint = input.codePointAt(position);\n return (token = next(t, utf16CodeUnits(codePoint)));\n }\n function error(report, pos, end) {\n const diagnostic = createDiagnostic({\n ...report,\n target: { file, pos: pos ?? tokenPosition, end: end ?? position },\n });\n diagnosticHandler(diagnostic);\n }\n function scanWhitespace() {\n do {\n position++;\n } while (!eof() && isWhiteSpaceSingleLine(input.charCodeAt(position)));\n return (token = Token.Whitespace);\n }\n function scanSignedNumber() {\n position++; // consume '+/-'\n return scanNumber();\n }\n function scanNumber() {\n scanKnownDigits();\n if (!eof() && input.charCodeAt(position) === 46 /* CharCode.Dot */) {\n position++;\n scanRequiredDigits();\n }\n if (!eof() && input.charCodeAt(position) === 101 /* CharCode.e */) {\n position++;\n const ch = input.charCodeAt(position);\n if (ch === 43 /* CharCode.Plus */ || ch === 45 /* CharCode.Minus */) {\n position++;\n }\n scanRequiredDigits();\n }\n return (token = Token.NumericLiteral);\n }\n function scanKnownDigits() {\n do {\n position++;\n } while (!eof() && isDigit(input.charCodeAt(position)));\n }\n function scanRequiredDigits() {\n if (eof() || !isDigit(input.charCodeAt(position))) {\n error({ code: \"digit-expected\" });\n return;\n }\n scanKnownDigits();\n }\n function scanHexNumber() {\n position += 2; // consume '0x'\n if (eof() || !isHexDigit(input.charCodeAt(position))) {\n error({ code: \"hex-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isHexDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanBinaryNumber() {\n position += 2; // consume '0b'\n if (eof() || !isBinaryDigit(input.charCodeAt(position))) {\n error({ code: \"binary-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isBinaryDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanSingleLineComment() {\n position = skipSingleLineComment(input, position, endPosition);\n return (token = Token.SingleLineComment);\n }\n function scanMultiLineComment() {\n token = Token.MultiLineComment;\n if (lookAhead(2) === 42 /* CharCode.Asterisk */) {\n tokenFlags |= TokenFlags.DocComment;\n }\n const [newPosition, terminated] = skipMultiLineComment(input, position);\n position = newPosition;\n return terminated ? token : unterminated(token);\n }\n function scanDocCodeSpan() {\n position++; // consume '`'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.DocCodeSpan);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.DocCodeSpan);\n }\n function scanString(tokenFlags) {\n if (tokenFlags & TokenFlags.TripleQuoted) {\n position += 3; // consume '\"\"\"'\n }\n else {\n position++; // consume '\"'\n }\n return scanStringLiteralLike(tokenFlags, Token.StringTemplateHead, Token.StringLiteral);\n }\n function scanStringTemplateSpan(tokenFlags) {\n position++; // consume '{'\n return scanStringLiteralLike(tokenFlags, Token.StringTemplateMiddle, Token.StringTemplateTail);\n }\n function scanStringLiteralLike(requestedTokenFlags, template, tail) {\n const multiLine = requestedTokenFlags & TokenFlags.TripleQuoted;\n tokenFlags = requestedTokenFlags;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n tokenFlags |= TokenFlags.Escaped;\n position++;\n if (eof()) {\n break loop;\n }\n continue;\n case 34 /* CharCode.DoubleQuote */:\n if (multiLine) {\n if (lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */) {\n position += 3;\n token = tail;\n return tail;\n }\n else {\n continue;\n }\n }\n else {\n position++;\n token = tail;\n return tail;\n }\n case 36 /* CharCode.$ */:\n if (lookAhead(1) === 123 /* CharCode.OpenBrace */) {\n position += 2;\n token = template;\n return template;\n }\n continue;\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n if (multiLine) {\n continue;\n }\n else {\n break loop;\n }\n }\n }\n return unterminated(tail);\n }\n function getStringLiteralOffsetStart(token, tokenFlags) {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateHead:\n return tokenFlags & TokenFlags.TripleQuoted ? 3 : 1; // \"\"\" or \"\n default:\n return 1; // {\n }\n }\n function getStringLiteralOffsetEnd(token, tokenFlags) {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateTail:\n return tokenFlags & TokenFlags.TripleQuoted ? 3 : 1; // \"\"\" or \"\n default:\n return 2; // ${\n }\n }\n function getStringTokenValue(token, tokenFlags) {\n if (tokenFlags & TokenFlags.TripleQuoted) {\n const start = tokenPosition;\n const end = position;\n const [indentationStart, indentationEnd] = findTripleQuotedStringIndent(start, end);\n return unindentAndUnescapeTripleQuotedString(start, end, indentationStart, indentationEnd, token, tokenFlags);\n }\n const startOffset = getStringLiteralOffsetStart(token, tokenFlags);\n const endOffset = getStringLiteralOffsetEnd(token, tokenFlags);\n const start = tokenPosition + startOffset;\n const end = tokenFlags & TokenFlags.Unterminated ? position : position - endOffset;\n if (tokenFlags & TokenFlags.Escaped) {\n return unescapeString(start, end);\n }\n return input.substring(start, end);\n }\n function getIdentifierTokenValue() {\n const start = tokenFlags & TokenFlags.Backticked ? tokenPosition + 1 : tokenPosition;\n const end = tokenFlags & TokenFlags.Backticked && !(tokenFlags & TokenFlags.Unterminated)\n ? position - 1\n : position;\n const text = tokenFlags & TokenFlags.Escaped ? unescapeString(start, end) : input.substring(start, end);\n if (tokenFlags & TokenFlags.NonAscii) {\n return text.normalize(\"NFC\");\n }\n return text;\n }\n function getDocTextValue() {\n if (tokenFlags & TokenFlags.Escaped) {\n let start = tokenPosition;\n const end = position;\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n break;\n }\n result += input.substring(start, pos);\n switch (input.charCodeAt(pos + 1)) {\n case 64 /* CharCode.At */:\n result += \"@\";\n break;\n default:\n result += input.substring(pos, pos + 2);\n }\n pos += 2;\n start = pos;\n }\n result += input.substring(start, end);\n return result;\n }\n else {\n return input.substring(tokenPosition, position);\n }\n }\n function findTripleQuotedStringIndent(start, end) {\n end = end - 3; // Remove the \"\"\"\n // remove whitespace before closing delimiter and record it as required\n // indentation for all lines\n const indentationEnd = end;\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n const indentationStart = end;\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, 0, end)) {\n end--;\n }\n end--;\n }\n else {\n error({ code: \"no-new-line-end-triple-quote\" });\n }\n return [indentationStart, indentationEnd];\n }\n function unindentAndUnescapeTripleQuotedString(start, end, indentationStart, indentationEnd, token, tokenFlags) {\n const startOffset = getStringLiteralOffsetStart(token, tokenFlags);\n const endOffset = getStringLiteralOffsetEnd(token, tokenFlags);\n start = start + startOffset;\n end = tokenFlags & TokenFlags.Unterminated ? end : end - endOffset;\n if (token === Token.StringLiteral || token === Token.StringTemplateHead) {\n // ignore leading whitespace before required initial line break\n while (start < end && isWhiteSpaceSingleLine(input.charCodeAt(start))) {\n start++;\n }\n // remove required initial line break\n if (isLineBreak(input.charCodeAt(start))) {\n if (isCrlf(start, start, end)) {\n start++;\n }\n start++;\n }\n else {\n error({ code: \"no-new-line-start-triple-quote\" });\n }\n }\n if (token === Token.StringLiteral || token === Token.StringTemplateTail) {\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, start, end)) {\n end--;\n }\n end--;\n }\n else {\n error({ code: \"no-new-line-end-triple-quote\" });\n }\n }\n let skipUnindentOnce = false;\n // We are resuming from the middle of a line so we want to keep text as it is from there.\n if (token === Token.StringTemplateMiddle || token === Token.StringTemplateTail) {\n skipUnindentOnce = true;\n }\n // remove required matching indentation from each line and unescape in the\n // process of doing so\n let result = \"\";\n let pos = start;\n while (pos < end) {\n if (skipUnindentOnce) {\n skipUnindentOnce = false;\n }\n else {\n // skip indentation at start of line\n start = skipMatchingIndentation(pos, end, indentationStart, indentationEnd);\n }\n let ch;\n while (pos < end && !isLineBreak((ch = input.charCodeAt(pos)))) {\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n result += input.substring(start, pos);\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" }, pos, pos);\n pos++;\n }\n else {\n result += unescapeOne(pos);\n pos += 2;\n }\n start = pos;\n }\n if (pos < end) {\n if (isCrlf(pos, start, end)) {\n // CRLF in multi-line string is normalized to LF in string value.\n // This keeps program behavior unchanged by line-ending conversion.\n result += input.substring(start, pos);\n result += \"\\n\";\n pos += 2;\n }\n else {\n pos++; // include non-CRLF newline\n result += input.substring(start, pos);\n }\n start = pos;\n }\n }\n result += input.substring(start, pos);\n return result;\n }\n function isCrlf(pos, start, end) {\n return (pos >= start &&\n pos < end - 1 &&\n input.charCodeAt(pos) === 13 /* CharCode.CarriageReturn */ &&\n input.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */);\n }\n function skipMatchingIndentation(pos, end, indentationStart, indentationEnd) {\n let indentationPos = indentationStart;\n end = Math.min(end, pos + (indentationEnd - indentationStart));\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (isLineBreak(ch)) {\n // allow subset of indentation if line has only whitespace\n break;\n }\n if (ch !== input.charCodeAt(indentationPos)) {\n error({ code: \"triple-quote-indent\" });\n break;\n }\n indentationPos++;\n pos++;\n }\n return pos;\n }\n function unescapeString(start, end) {\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" }, pos, pos);\n break;\n }\n result += input.substring(start, pos);\n result += unescapeOne(pos);\n pos += 2;\n start = pos;\n }\n result += input.substring(start, pos);\n return result;\n }\n function unescapeOne(pos) {\n const ch = input.charCodeAt(pos + 1);\n switch (ch) {\n case 114 /* CharCode.r */:\n return \"\\r\";\n case 110 /* CharCode.n */:\n return \"\\n\";\n case 116 /* CharCode.t */:\n return \"\\t\";\n case 34 /* CharCode.DoubleQuote */:\n return '\"';\n case 92 /* CharCode.Backslash */:\n return \"\\\\\";\n case 36 /* CharCode.$ */:\n return \"$\";\n case 64 /* CharCode.At */:\n return \"@\";\n case 96 /* CharCode.Backtick */:\n return \"`\";\n default:\n error({ code: \"invalid-escape-sequence\" }, pos, pos + 2);\n return String.fromCharCode(ch);\n }\n }\n function scanIdentifierOrKeyword() {\n let count = 0;\n let ch = input.charCodeAt(position);\n while (true) {\n position++;\n count++;\n if (eof()) {\n break;\n }\n ch = input.charCodeAt(position);\n if (count < 10 /* KeywordLimit.MaxLength */ && isLowercaseAsciiLetter(ch)) {\n continue;\n }\n if (isAsciiIdentifierContinue(ch)) {\n return scanIdentifier();\n }\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n break;\n }\n if (count >= 2 /* KeywordLimit.MinLength */ && count <= 10 /* KeywordLimit.MaxLength */) {\n const keyword = Keywords.get(getTokenText());\n if (keyword) {\n return (token = keyword);\n }\n }\n return (token = Token.Identifier);\n }\n function scanIdentifier() {\n let ch;\n do {\n position++;\n if (eof()) {\n return (token = Token.Identifier);\n }\n } while (isAsciiIdentifierContinue((ch = input.charCodeAt(position))));\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n return (token = Token.Identifier);\n }\n function scanBacktickedIdentifier() {\n position++; // consume '`'\n tokenFlags |= TokenFlags.Backticked;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n position++;\n tokenFlags |= TokenFlags.Escaped;\n continue;\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.Identifier);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n default:\n if (ch > 127 /* CharCode.MaxAscii */) {\n tokenFlags |= TokenFlags.NonAscii;\n }\n }\n }\n return unterminated(Token.Identifier);\n }\n function scanNonAsciiIdentifier(startCodePoint) {\n tokenFlags |= TokenFlags.NonAscii;\n let cp = startCodePoint;\n do {\n position += utf16CodeUnits(cp);\n } while (!eof() && isIdentifierContinue((cp = input.codePointAt(position))));\n return (token = Token.Identifier);\n }\n function atConflictMarker() {\n return isConflictMarker(input, position, endPosition);\n }\n function scanConflictMarker() {\n const marker = input.charCodeAt(position);\n position += mergeConflictMarkerLength;\n error({ code: \"conflict-marker\" });\n if (marker === 60 /* CharCode.LessThan */ || marker === 62 /* CharCode.GreaterThan */) {\n // Consume everything from >>>>>>> or <<<<<<< to the end of the line.\n while (position < endPosition && !isLineBreak(input.charCodeAt(position))) {\n position++;\n }\n }\n else {\n // Consume everything from the start of a ||||||| or =======\n // marker to the start of the next ======= or >>>>>>> marker.\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if ((ch === 61 /* CharCode.Equals */ || ch === 62 /* CharCode.GreaterThan */) &&\n ch !== marker &&\n isConflictMarker(input, position, endPosition)) {\n break;\n }\n position++;\n }\n }\n return (token = Token.ConflictMarker);\n }\n}\n/**\n *\n * @param script\n * @param position\n * @param endPosition exclude\n * @returns return === endPosition (or -1) means not found non-trivia until endPosition + 1\n */\nexport function skipTriviaBackward(script, position, endPosition = -1) {\n endPosition = endPosition < -1 ? -1 : endPosition;\n const input = script.file.text;\n if (position === input.length) {\n // it's possible if the pos is at the end of the file, just treat it as trivia\n position--;\n }\n else if (position > input.length) {\n compilerAssert(false, \"position out of range\");\n }\n while (position > endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position--;\n }\n else {\n const comment = getCommentAtPosition(script, position);\n if (comment) {\n position = comment.pos - 1;\n }\n else {\n break;\n }\n }\n }\n return position;\n}\n/**\n *\n * @param input\n * @param position\n * @param endPosition exclude\n * @returns return === endPosition (or input.length) means not found non-trivia until endPosition - 1\n */\nexport function skipTrivia(input, position, endPosition = input.length) {\n endPosition = endPosition > input.length ? input.length : endPosition;\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position++;\n continue;\n }\n if (ch === 47 /* CharCode.Slash */) {\n switch (input.charCodeAt(position + 1)) {\n case 47 /* CharCode.Slash */:\n position = skipSingleLineComment(input, position, endPosition);\n continue;\n case 42 /* CharCode.Asterisk */:\n position = skipMultiLineComment(input, position, endPosition)[0];\n continue;\n }\n }\n break;\n }\n return position;\n}\nexport function skipWhiteSpace(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (!isWhiteSpace(ch)) {\n break;\n }\n position++;\n }\n return position;\n}\nfunction skipSingleLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '//'\n for (; position < endPosition; position++) {\n if (isLineBreak(input.charCodeAt(position))) {\n break;\n }\n }\n return position;\n}\nfunction skipMultiLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '/*'\n for (; position < endPosition; position++) {\n if (input.charCodeAt(position) === 42 /* CharCode.Asterisk */ &&\n input.charCodeAt(position + 1) === 47 /* CharCode.Slash */) {\n return [position + 2, true];\n }\n }\n return [position, false];\n}\nexport function skipContinuousIdentifier(input, position, isBackward = false) {\n let cur = position;\n const direction = isBackward ? -1 : 1;\n const bar = isBackward ? (p) => p >= 0 : (p) => p < input.length;\n while (bar(cur)) {\n const { char: cp, size } = codePointBefore(input, cur);\n cur += direction * size;\n if (!cp || !isIdentifierContinue(cp)) {\n break;\n }\n }\n return cur;\n}\nfunction isConflictMarker(input, position, endPosition = input.length) {\n // Conflict markers must be at the start of a line.\n const ch = input.charCodeAt(position);\n if (position === 0 || isLineBreak(input.charCodeAt(position - 1))) {\n if (position + mergeConflictMarkerLength < endPosition) {\n for (let i = 0; i < mergeConflictMarkerLength; i++) {\n if (input.charCodeAt(position + i) !== ch) {\n return false;\n }\n }\n return (ch === 61 /* CharCode.Equals */ ||\n input.charCodeAt(position + mergeConflictMarkerLength) === 32 /* CharCode.Space */);\n }\n }\n return false;\n}\nfunction getTokenDisplayTable(entries) {\n const table = new Array(entries.length);\n for (const [token, display] of entries) {\n compilerAssert(token >= 0 && token < Token.__Count, `Invalid entry in token display table, ${token}, ${Token[token]}, ${display}`);\n compilerAssert(!table[token], `Duplicate entry in token display table for: ${token}, ${Token[token]}, ${display}`);\n table[token] = display;\n }\n for (let token = 0; token < Token.__Count; token++) {\n compilerAssert(table[token], `Missing entry in token display table: ${token}, ${Token[token]}`);\n }\n return table;\n}\n//# sourceMappingURL=scanner.js.map","import { isArray, mutate } from \"../utils/misc.js\";\nimport { codePointBefore, isIdentifierContinue, trim } from \"./charcode.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { Token, TokenDisplay, TokenFlags, createScanner, isComment, isKeyword, isPunctuation, isStatementKeyword, isTrivia, skipContinuousIdentifier, skipTrivia, skipTriviaBackward, } from \"./scanner.js\";\nimport { IdentifierKind, SyntaxKind, } from \"./types.js\";\n/**\n * The fixed set of options for each of the kinds of delimited lists in TypeSpec.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nvar ListKind;\n(function (ListKind) {\n const PropertiesBase = {\n allowEmpty: true,\n toleratedDelimiterIsValid: true,\n allowedStatementKeyword: Token.None,\n };\n ListKind.OperationParameters = {\n ...PropertiesBase,\n open: Token.OpenParen,\n close: Token.CloseParen,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n };\n ListKind.DecoratorArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.FunctionArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ModelProperties = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.ObjectLiteralProperties = {\n ...PropertiesBase,\n open: Token.HashBrace,\n close: Token.CloseBrace,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.InterfaceMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.OpKeyword,\n };\n ListKind.ScalarMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.InitKeyword,\n };\n ListKind.UnionVariants = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: true,\n };\n ListKind.EnumMembers = {\n ...ListKind.ModelProperties,\n };\n const ExpresionsBase = {\n allowEmpty: true,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n toleratedDelimiterIsValid: false,\n invalidAnnotationTarget: \"expression\",\n allowedStatementKeyword: Token.None,\n };\n ListKind.TemplateParameters = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.LessThan,\n close: Token.GreaterThan,\n invalidAnnotationTarget: \"template parameter\",\n };\n ListKind.TemplateArguments = {\n ...ListKind.TemplateParameters,\n };\n ListKind.CallArguments = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.Heritage = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.None,\n close: Token.None,\n };\n ListKind.Tuple = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenBracket,\n close: Token.CloseBracket,\n };\n ListKind.ArrayLiteral = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.HashBracket,\n close: Token.CloseBracket,\n };\n ListKind.FunctionParameters = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ProjectionExpression = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.ProjectionParameter = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n})(ListKind || (ListKind = {}));\nexport function parse(code, options = {}) {\n const parser = createParser(code, options);\n return parser.parseTypeSpecScript();\n}\nexport function parseStandaloneTypeReference(code) {\n const parser = createParser(code);\n const node = parser.parseStandaloneReferenceExpression();\n return [node, parser.parseDiagnostics];\n}\nfunction createParser(code, options = {}) {\n let parseErrorInNextFinishedNode = false;\n let previousTokenEnd = -1;\n let realPositionOfLastError = -1;\n let missingIdentifierCounter = 0;\n let treePrintable = true;\n let newLineIsTrivia = true;\n let currentMode = 0 /* ParseMode.Syntax */;\n const parseDiagnostics = [];\n const scanner = createScanner(code, reportDiagnostic);\n const comments = [];\n let docRanges = [];\n nextToken();\n return {\n parseDiagnostics,\n parseTypeSpecScript,\n parseStandaloneReferenceExpression,\n };\n function parseTypeSpecScript() {\n const statements = parseTypeSpecScriptItemList();\n return {\n kind: SyntaxKind.TypeSpecScript,\n statements,\n file: scanner.file,\n id: {\n kind: SyntaxKind.Identifier,\n sv: scanner.file.path,\n pos: 0,\n end: 0,\n flags: 8 /* NodeFlags.Synthetic */,\n },\n namespaces: [],\n usings: [],\n locals: undefined,\n inScopeNamespaces: [],\n parseDiagnostics,\n comments,\n printable: treePrintable,\n parseOptions: options,\n ...finishNode(0),\n };\n }\n /** Try to parse doc comments, directives and decorators in any order. */\n function parseAnnotations({ skipParsingDocNodes } = {}) {\n const directives = [];\n const decorators = [];\n const docs = [];\n let pos = tokenPos();\n if (!skipParsingDocNodes) {\n const [firstPos, addedDocs] = parseDocList();\n pos = firstPos;\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n while (token() === Token.Hash || token() === Token.At) {\n if (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n else if (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n if (!skipParsingDocNodes) {\n const [_, addedDocs] = parseDocList();\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n }\n return { pos, docs, directives, decorators };\n }\n function parseTypeSpecScriptItemList() {\n const stmts = [];\n let seenBlocklessNs = false;\n let seenDecl = false;\n let seenUsing = false;\n while (token() !== Token.EndOfFile) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n item = parseNamespaceStatement(pos, decorators, docs, directives);\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.ConstKeyword:\n reportInvalidDecorators(decorators, \"const statement\");\n item = parseConstStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"projection statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n // Start of declaration with modifiers\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n if (tok !== Token.NamespaceKeyword) {\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n }\n if (isBlocklessNamespace(item)) {\n if (seenBlocklessNs) {\n error({ code: \"multiple-blockless-namespace\", target: item });\n }\n if (seenDecl) {\n error({ code: \"blockless-namespace-first\", target: item });\n }\n seenBlocklessNs = true;\n }\n else if (item.kind === SyntaxKind.ImportStatement) {\n if (seenDecl || seenBlocklessNs || seenUsing) {\n error({ code: \"import-first\", target: item });\n }\n }\n else if (item.kind === SyntaxKind.UsingStatement) {\n seenUsing = true;\n }\n else {\n seenDecl = true;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n error({ code: \"import-first\", messageId: \"topLevel\", target: item });\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n const ns = parseNamespaceStatement(pos, decorators, docs, directives);\n if (isBlocklessNamespace(ns)) {\n error({ code: \"blockless-namespace-first\", messageId: \"topLevel\", target: ns });\n }\n item = ns;\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.ConstKeyword:\n reportInvalidDecorators(decorators, \"const statement\");\n item = parseConstStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"project statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.EndOfFile:\n parseExpected(Token.CloseBrace);\n return stmts;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n if (tok !== Token.NamespaceKeyword) {\n mutate(item).docs = docs;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseDecoratorList() {\n const decorators = [];\n while (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n return decorators;\n }\n function parseDirectiveList() {\n const directives = [];\n while (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n return directives;\n }\n function parseNamespaceStatement(pos, decorators, docs, directives) {\n parseExpected(Token.NamespaceKeyword);\n let currentName = parseIdentifierOrMemberExpression();\n const nsSegments = [];\n while (currentName.kind !== SyntaxKind.Identifier) {\n nsSegments.push(currentName.id);\n currentName = currentName.base;\n }\n nsSegments.push(currentName);\n const nextTok = parseExpectedOneOf(Token.Semicolon, Token.OpenBrace);\n let statements;\n if (nextTok === Token.OpenBrace) {\n statements = parseStatementList();\n parseExpected(Token.CloseBrace);\n }\n let outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators,\n docs: docs,\n id: nsSegments[0],\n locals: undefined,\n statements,\n directives: directives,\n ...finishNode(pos),\n };\n for (let i = 1; i < nsSegments.length; i++) {\n outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators: [],\n directives: [],\n id: nsSegments[i],\n statements: outerNs,\n locals: undefined,\n ...finishNode(pos),\n };\n }\n return outerNs;\n }\n function parseInterfaceStatement(pos, decorators) {\n parseExpected(Token.InterfaceKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n let extendList = createEmptyList();\n if (token() === Token.ExtendsKeyword) {\n nextToken();\n extendList = parseList(ListKind.Heritage, parseReferenceExpression);\n }\n else if (token() === Token.Identifier) {\n error({ code: \"token-expected\", format: { token: \"'extends' or '{'\" } });\n nextToken();\n }\n const { items: operations, range: bodyRange } = parseList(ListKind.InterfaceMembers, (pos, decorators) => parseOperationStatement(pos, decorators, true));\n return {\n kind: SyntaxKind.InterfaceStatement,\n id,\n templateParameters,\n templateParametersRange,\n operations,\n bodyRange,\n extends: extendList.items,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseTemplateParameterList() {\n const detail = parseOptionalList(ListKind.TemplateParameters, parseTemplateParameter);\n let setDefault = false;\n for (const item of detail.items) {\n if (!item.default && setDefault) {\n error({ code: \"default-required\", target: item });\n continue;\n }\n if (item.default) {\n setDefault = true;\n }\n }\n return detail;\n }\n function parseUnionStatement(pos, decorators) {\n parseExpected(Token.UnionKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n const { items: options } = parseList(ListKind.UnionVariants, parseUnionVariant);\n return {\n kind: SyntaxKind.UnionStatement,\n id,\n templateParameters,\n templateParametersRange,\n decorators,\n options,\n ...finishNode(pos),\n };\n }\n function parseUnionVariant(pos, decorators) {\n const idOrExpr = parseExpression();\n if (parseOptional(Token.Colon)) {\n let id = undefined;\n if (idOrExpr.kind !== SyntaxKind.TypeReference &&\n idOrExpr.kind !== SyntaxKind.StringLiteral) {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n else if (idOrExpr.kind === SyntaxKind.StringLiteral) {\n // convert string literal node to identifier node (back compat for string literal quoted properties)\n id = {\n kind: SyntaxKind.Identifier,\n sv: idOrExpr.value,\n ...finishNode(idOrExpr.pos),\n };\n }\n else {\n const target = idOrExpr.target;\n if (target.kind === SyntaxKind.Identifier) {\n id = target;\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n }\n const value = parseExpression();\n return {\n kind: SyntaxKind.UnionVariant,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n return {\n kind: SyntaxKind.UnionVariant,\n id: undefined,\n value: idOrExpr,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseUsingStatement(pos) {\n parseExpected(Token.UsingKeyword);\n const name = parseIdentifierOrMemberExpression(undefined, true);\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.UsingStatement,\n name,\n ...finishNode(pos),\n };\n }\n function parseOperationStatement(pos, decorators, inInterface) {\n if (inInterface) {\n parseOptional(Token.OpKeyword);\n }\n else {\n parseExpected(Token.OpKeyword);\n }\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n // Make sure the next token is one that is expected\n const token = expectTokenIsOneOf(Token.OpenParen, Token.IsKeyword);\n // Check if we're parsing a declaration or reuse of another operation\n let signature;\n const signaturePos = tokenPos();\n if (token === Token.OpenParen) {\n const parameters = parseOperationParameters();\n parseExpected(Token.Colon);\n const returnType = parseExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureDeclaration,\n parameters,\n returnType,\n ...finishNode(signaturePos),\n };\n }\n else {\n parseExpected(Token.IsKeyword);\n const opReference = parseReferenceExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureReference,\n baseOperation: opReference,\n ...finishNode(signaturePos),\n };\n }\n // The interface parser handles semicolon parsing between statements\n if (!inInterface) {\n parseExpected(Token.Semicolon);\n }\n return {\n kind: SyntaxKind.OperationStatement,\n id,\n templateParameters,\n templateParametersRange,\n signature,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOperationParameters() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.OperationParameters, parseModelPropertyOrSpread);\n const parameters = {\n kind: SyntaxKind.ModelExpression,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n return parameters;\n }\n function parseModelStatement(pos, decorators) {\n parseExpected(Token.ModelKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n expectTokenIsOneOf(Token.OpenBrace, Token.Equals, Token.ExtendsKeyword, Token.IsKeyword);\n const optionalExtends = parseOptionalModelExtends();\n const optionalIs = optionalExtends ? undefined : parseOptionalModelIs();\n let propDetail = createEmptyList();\n if (optionalIs) {\n const tok = expectTokenIsOneOf(Token.Semicolon, Token.OpenBrace);\n if (tok === Token.Semicolon) {\n nextToken();\n }\n else {\n propDetail = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n }\n else {\n propDetail = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n return {\n kind: SyntaxKind.ModelStatement,\n id,\n extends: optionalExtends,\n is: optionalIs,\n templateParameters,\n templateParametersRange,\n decorators,\n properties: propDetail.items,\n bodyRange: propDetail.range,\n ...finishNode(pos),\n };\n }\n function parseOptionalModelExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseOptionalModelIs() {\n if (parseOptional(Token.IsKeyword)) {\n return parseExpression();\n }\n return;\n }\n function parseTemplateParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n let constraint;\n if (parseOptional(Token.ExtendsKeyword)) {\n constraint = parseMixedParameterConstraint();\n }\n let def;\n if (parseOptional(Token.Equals)) {\n def = parseExpression();\n }\n return {\n kind: SyntaxKind.TemplateParameterDeclaration,\n id,\n constraint,\n default: def,\n ...finishNode(pos),\n };\n }\n function parseValueOfExpressionOrIntersectionOrHigher() {\n if (token() === Token.ValueOfKeyword) {\n return parseValueOfExpression();\n }\n else if (parseOptional(Token.OpenParen)) {\n const expr = parseMixedParameterConstraint();\n parseExpected(Token.CloseParen);\n return expr;\n }\n return parseIntersectionExpressionOrHigher();\n }\n function parseMixedParameterConstraint() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseValueOfExpressionOrIntersectionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseValueOfExpressionOrIntersectionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseModelSpreadProperty(pos, decorators)\n : parseModelProperty(pos, decorators);\n }\n function parseModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseModelProperty(pos, decorators) {\n const id = parseIdentifier({\n message: \"property\",\n allowStringLiteral: true,\n });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseExpression() : undefined;\n return {\n kind: SyntaxKind.ModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteralPropertyOrSpread(pos, decorators) {\n reportInvalidDecorators(decorators, \"object literal property\");\n return token() === Token.Ellipsis\n ? parseObjectLiteralSpreadProperty(pos)\n : parseObjectLiteralProperty(pos);\n }\n function parseObjectLiteralSpreadProperty(pos) {\n parseExpected(Token.Ellipsis);\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ObjectLiteralSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteralProperty(pos) {\n const id = parseIdentifier({\n message: \"property\",\n });\n parseExpected(Token.Colon);\n const value = parseExpression();\n return {\n kind: SyntaxKind.ObjectLiteralProperty,\n id,\n value,\n ...finishNode(pos),\n };\n }\n function parseScalarStatement(pos, decorators) {\n parseExpected(Token.ScalarKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n const optionalExtends = parseOptionalScalarExtends();\n const { items: members, range: bodyRange } = parseScalarMembers();\n return {\n kind: SyntaxKind.ScalarStatement,\n id,\n templateParameters,\n templateParametersRange,\n extends: optionalExtends,\n members,\n bodyRange,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOptionalScalarExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseReferenceExpression();\n }\n return undefined;\n }\n function parseScalarMembers() {\n if (token() === Token.Semicolon) {\n nextToken();\n return createEmptyList();\n }\n else {\n return parseList(ListKind.ScalarMembers, parseScalarMember);\n }\n }\n function parseScalarMember(pos, decorators) {\n reportInvalidDecorators(decorators, \"scalar member\");\n parseExpected(Token.InitKeyword);\n const id = parseIdentifier();\n const { items: parameters } = parseFunctionParameters();\n return {\n kind: SyntaxKind.ScalarConstructor,\n id,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseEnumStatement(pos, decorators) {\n parseExpected(Token.EnumKeyword);\n const id = parseIdentifier();\n const { items: members } = parseList(ListKind.EnumMembers, parseEnumMemberOrSpread);\n return {\n kind: SyntaxKind.EnumStatement,\n id,\n decorators,\n members,\n ...finishNode(pos),\n };\n }\n function parseEnumMemberOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseEnumSpreadMember(pos, decorators)\n : parseEnumMember(pos, decorators);\n }\n function parseEnumSpreadMember(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread enum\");\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.EnumSpreadMember,\n target,\n ...finishNode(pos),\n };\n }\n function parseEnumMember(pos, decorators) {\n const id = parseIdentifier({\n message: \"enumMember\",\n allowStringLiteral: true,\n });\n let value;\n if (parseOptional(Token.Colon)) {\n const expr = parseExpression();\n if (expr.kind === SyntaxKind.StringLiteral || expr.kind === SyntaxKind.NumericLiteral) {\n value = expr;\n }\n else if (expr.kind === SyntaxKind.TypeReference &&\n expr.target.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n parseErrorInNextFinishedNode = true;\n }\n else {\n error({ code: \"token-expected\", messageId: \"numericOrStringLiteral\", target: expr });\n }\n }\n return {\n kind: SyntaxKind.EnumMember,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseAliasStatement(pos) {\n parseExpected(Token.AliasKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AliasStatement,\n id,\n templateParameters,\n templateParametersRange,\n value,\n ...finishNode(pos),\n };\n }\n function parseConstStatement(pos) {\n parseExpected(Token.ConstKeyword);\n const id = parseIdentifier();\n const type = parseOptionalTypeAnnotation();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ConstStatement,\n id,\n value,\n type,\n ...finishNode(pos),\n };\n }\n function parseOptionalTypeAnnotation() {\n if (parseOptional(Token.Colon)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseExpression() {\n return parseUnionExpressionOrHigher();\n }\n function parseUnionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseIntersectionExpressionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseIntersectionExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseIntersectionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Ampersand);\n const node = parseArrayExpressionOrHigher();\n if (token() !== Token.Ampersand) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Ampersand)) {\n const expr = parseArrayExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.IntersectionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseArrayExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parsePrimaryExpression();\n while (parseOptional(Token.OpenBracket)) {\n parseExpected(Token.CloseBracket);\n expr = {\n kind: SyntaxKind.ArrayExpression,\n elementType: expr,\n ...finishNode(pos),\n };\n }\n return expr;\n }\n function parseStandaloneReferenceExpression() {\n const expr = parseReferenceExpression();\n if (parseDiagnostics.length === 0 && token() !== Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"unexpected\", format: { token: Token[token()] } });\n }\n return expr;\n }\n function parseValueOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.ValueOfKeyword);\n const target = parseExpression();\n return {\n kind: SyntaxKind.ValueOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseTypeOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.TypeOfKeyword);\n const target = parseTypeOfTarget();\n return {\n kind: SyntaxKind.TypeOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseTypeOfTarget() {\n while (true) {\n switch (token()) {\n case Token.TypeOfKeyword:\n return parseTypeOfExpression();\n case Token.Identifier:\n return parseCallOrReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.StringTemplateHead:\n return parseStringTemplateExpression();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenParen:\n parseExpected(Token.OpenParen);\n const target = parseTypeOfTarget();\n parseExpected(Token.CloseParen);\n return target;\n default:\n return parseReferenceExpression(\"typeofTarget\");\n }\n }\n }\n function parseReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n return parseReferenceExpressionInternal(target, pos);\n }\n function parseCallOrReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n if (token() === Token.OpenParen) {\n const { items: args } = parseList(ListKind.FunctionArguments, parseExpression);\n return {\n kind: SyntaxKind.CallExpression,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n return parseReferenceExpressionInternal(target, pos);\n }\n function parseReferenceExpressionInternal(target, pos) {\n const { items: args } = parseOptionalList(ListKind.TemplateArguments, parseTemplateArgument);\n return {\n kind: SyntaxKind.TypeReference,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n function parseTemplateArgument() {\n const pos = tokenPos();\n // Early error recovery for missing identifier followed by eq\n if (token() === Token.Equals) {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n nextToken();\n return {\n kind: SyntaxKind.TemplateArgument,\n name: createMissingIdentifier(),\n argument: parseExpression(),\n ...finishNode(pos),\n };\n }\n const expr = parseExpression();\n const eq = parseOptional(Token.Equals);\n if (eq) {\n const isBareIdentifier = exprIsBareIdentifier(expr);\n if (!isBareIdentifier) {\n error({ code: \"invalid-template-argument-name\", target: expr });\n }\n return {\n kind: SyntaxKind.TemplateArgument,\n name: isBareIdentifier ? expr.target : createMissingIdentifier(),\n argument: parseExpression(),\n ...finishNode(pos),\n };\n }\n else {\n return {\n kind: SyntaxKind.TemplateArgument,\n argument: expr,\n ...finishNode(pos),\n };\n }\n }\n function parseAugmentDecorator() {\n const pos = tokenPos();\n parseExpected(Token.AtAt);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const { items: args } = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n if (args.length === 0) {\n error({ code: \"augment-decorator-target\" });\n const emptyList = createEmptyList();\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: emptyList.items,\n ...finishNode(pos),\n },\n arguments: args,\n ...finishNode(pos),\n };\n }\n let [targetEntity, ...decoratorArgs] = args;\n if (targetEntity.kind !== SyntaxKind.TypeReference) {\n error({ code: \"augment-decorator-target\", target: targetEntity });\n const emptyList = createEmptyList();\n targetEntity = {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: emptyList.items,\n ...finishNode(pos),\n };\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: targetEntity,\n arguments: decoratorArgs,\n ...finishNode(pos),\n };\n }\n function parseImportStatement() {\n const pos = tokenPos();\n parseExpected(Token.ImportKeyword);\n const path = parseStringLiteral();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ImportStatement,\n path,\n ...finishNode(pos),\n };\n }\n function parseDecoratorExpression() {\n const pos = tokenPos();\n parseExpected(Token.At);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const { items: args } = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n return {\n kind: SyntaxKind.DecoratorExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveExpression() {\n const pos = tokenPos();\n parseExpected(Token.Hash);\n const target = parseIdentifier();\n if (target.sv !== \"suppress\" && target.sv !== \"deprecated\") {\n error({\n code: \"unknown-directive\",\n format: { id: target.sv },\n target: { pos, end: pos + target.sv.length },\n printable: true,\n });\n }\n // The newline will mark the end of the directive.\n newLineIsTrivia = false;\n const args = [];\n while (token() !== Token.NewLine && token() !== Token.EndOfFile) {\n const param = parseDirectiveParameter();\n if (param) {\n args.push(param);\n }\n }\n newLineIsTrivia = true;\n nextToken();\n return {\n kind: SyntaxKind.DirectiveExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveParameter() {\n switch (token()) {\n case Token.Identifier:\n return parseIdentifier();\n case Token.StringLiteral:\n return parseStringLiteral();\n default:\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: Token[token()] },\n });\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.NewLine &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n return undefined;\n }\n }\n function parseIdentifierOrMemberExpression(message, recoverFromKeyword = true) {\n const pos = tokenPos();\n let base = parseIdentifier({\n message,\n recoverFromKeyword,\n });\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier after `.` in member expression. Otherwise we will\n // parse `@Outer.<missing identifier> model M{}` as having decorator\n // `@Outer.model` applied to invalid statement `M {}` instead of\n // having incomplete decorator `@Outer.` applied to `model M {}`.\n id: parseIdentifier({\n recoverFromKeyword: false,\n }),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return base;\n }\n function parsePrimaryExpression() {\n while (true) {\n switch (token()) {\n case Token.TypeOfKeyword:\n return parseTypeOfExpression();\n case Token.Identifier:\n return parseCallOrReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.StringTemplateHead:\n return parseStringTemplateExpression();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenBrace:\n return parseModelExpression();\n case Token.OpenBracket:\n return parseTupleExpression();\n case Token.OpenParen:\n return parseParenthesizedExpression();\n case Token.At:\n const decorators = parseDecoratorList();\n reportInvalidDecorators(decorators, \"expression\");\n continue;\n case Token.Hash:\n const directives = parseDirectiveList();\n reportInvalidDirective(directives, \"expression\");\n continue;\n case Token.HashBrace:\n return parseObjectLiteral();\n case Token.HashBracket:\n return parseArrayLiteral();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseReferenceExpression(\"expression\");\n }\n }\n }\n function parseExternKeyword() {\n const pos = tokenPos();\n parseExpected(Token.ExternKeyword);\n return {\n kind: SyntaxKind.ExternKeyword,\n ...finishNode(pos),\n };\n }\n function parseVoidKeyword() {\n const pos = tokenPos();\n parseExpected(Token.VoidKeyword);\n return {\n kind: SyntaxKind.VoidKeyword,\n ...finishNode(pos),\n };\n }\n function parseNeverKeyword() {\n const pos = tokenPos();\n parseExpected(Token.NeverKeyword);\n return {\n kind: SyntaxKind.NeverKeyword,\n ...finishNode(pos),\n };\n }\n function parseUnknownKeyword() {\n const pos = tokenPos();\n parseExpected(Token.UnknownKeyword);\n return {\n kind: SyntaxKind.UnknownKeyword,\n ...finishNode(pos),\n };\n }\n function parseParenthesizedExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenParen);\n const expr = parseExpression();\n parseExpected(Token.CloseParen);\n return { ...expr, ...finishNode(pos) };\n }\n function parseTupleExpression() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.Tuple, parseExpression);\n return {\n kind: SyntaxKind.TupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseModelExpression() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ModelExpression,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteral() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.ObjectLiteralProperties, parseObjectLiteralPropertyOrSpread);\n return {\n kind: SyntaxKind.ObjectLiteral,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n }\n function parseArrayLiteral() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.ArrayLiteral, parseExpression);\n return {\n kind: SyntaxKind.ArrayLiteral,\n values,\n ...finishNode(pos),\n };\n }\n function parseStringLiteral() {\n const pos = tokenPos();\n const value = tokenValue();\n parseExpected(Token.StringLiteral);\n return {\n kind: SyntaxKind.StringLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateExpression() {\n const pos = tokenPos();\n const head = parseStringTemplateHead();\n const spans = parseStringTemplateSpans(head.tokenFlags);\n const last = spans[spans.length - 1];\n if (head.tokenFlags & TokenFlags.TripleQuoted) {\n const [indentationsStart, indentationEnd] = scanner.findTripleQuotedStringIndent(last.literal.pos, last.literal.end);\n mutate(head).value = scanner.unindentAndUnescapeTripleQuotedString(head.pos, head.end, indentationsStart, indentationEnd, Token.StringTemplateHead, head.tokenFlags);\n for (const span of spans) {\n mutate(span.literal).value = scanner.unindentAndUnescapeTripleQuotedString(span.literal.pos, span.literal.end, indentationsStart, indentationEnd, span === last ? Token.StringTemplateTail : Token.StringTemplateMiddle, head.tokenFlags);\n }\n }\n return {\n kind: SyntaxKind.StringTemplateExpression,\n head,\n spans,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateHead() {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n parseExpected(Token.StringTemplateHead);\n return {\n kind: SyntaxKind.StringTemplateHead,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateSpans(tokenFlags) {\n const list = [];\n let node;\n do {\n node = parseTemplateTypeSpan(tokenFlags);\n list.push(node);\n } while (node.literal.kind === SyntaxKind.StringTemplateMiddle);\n return list;\n }\n function parseTemplateTypeSpan(tokenFlags) {\n const pos = tokenPos();\n const expression = parseExpression();\n const literal = parseLiteralOfTemplateSpan(tokenFlags);\n return {\n kind: SyntaxKind.StringTemplateSpan,\n literal,\n expression,\n ...finishNode(pos),\n };\n }\n function parseLiteralOfTemplateSpan(headTokenFlags) {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n if (token() === Token.CloseBrace) {\n nextStringTemplateToken(headTokenFlags);\n return parseTemplateMiddleOrTemplateTail();\n }\n else {\n parseExpected(Token.StringTemplateTail);\n return {\n kind: SyntaxKind.StringTemplateTail,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n }\n function parseTemplateMiddleOrTemplateTail() {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n const kind = token() === Token.StringTemplateMiddle\n ? SyntaxKind.StringTemplateMiddle\n : SyntaxKind.StringTemplateTail;\n nextToken();\n return {\n kind,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n function parseNumericLiteral() {\n const pos = tokenPos();\n const valueAsString = tokenValue();\n const value = Number(valueAsString);\n parseExpected(Token.NumericLiteral);\n return {\n kind: SyntaxKind.NumericLiteral,\n value,\n valueAsString,\n ...finishNode(pos),\n };\n }\n function parseBooleanLiteral() {\n const pos = tokenPos();\n const token = parseExpectedOneOf(Token.TrueKeyword, Token.FalseKeyword);\n const value = token === Token.TrueKeyword;\n return {\n kind: SyntaxKind.BooleanLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseIdentifier(options) {\n if (options?.recoverFromKeyword !== false && isKeyword(token())) {\n error({ code: \"reserved-identifier\" });\n }\n else if (token() !== Token.Identifier &&\n (!options?.allowStringLiteral || token() !== Token.StringLiteral)) {\n // Error recovery: when we fail to parse an identifier or expression,\n // we insert a synthesized identifier with a unique name.\n error({ code: \"token-expected\", messageId: options?.message ?? \"identifier\" });\n return createMissingIdentifier();\n }\n const pos = tokenPos();\n const sv = tokenValue();\n nextToken();\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n function parseDeclaration(pos) {\n const modifiers = parseModifiers();\n switch (token()) {\n case Token.DecKeyword:\n return parseDecoratorDeclarationStatement(pos, modifiers);\n case Token.FnKeyword:\n return parseFunctionDeclarationStatement(pos, modifiers);\n }\n return parseInvalidStatement(pos, []);\n }\n function parseModifiers() {\n const modifiers = [];\n let modifier;\n while ((modifier = parseModifier())) {\n modifiers.push(modifier);\n }\n return modifiers;\n }\n function parseModifier() {\n switch (token()) {\n case Token.ExternKeyword:\n return parseExternKeyword();\n default:\n return undefined;\n }\n }\n function parseDecoratorDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.DecKeyword);\n const id = parseIdentifier();\n const allParamListDetail = parseFunctionParameters();\n let [target, ...parameters] = allParamListDetail.items;\n if (target === undefined) {\n error({ code: \"decorator-decl-target\", target: { pos, end: previousTokenEnd } });\n target = {\n kind: SyntaxKind.FunctionParameter,\n id: createMissingIdentifier(),\n type: createMissingTypeReference(),\n optional: false,\n rest: false,\n ...finishNode(pos),\n };\n }\n if (target.optional) {\n error({ code: \"decorator-decl-target\", messageId: \"required\" });\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.DecoratorDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n target,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseFunctionDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.FnKeyword);\n const id = parseIdentifier();\n const { items: parameters } = parseFunctionParameters();\n let returnType;\n if (parseOptional(Token.Colon)) {\n returnType = parseExpression();\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.FunctionDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n parameters,\n returnType,\n ...finishNode(pos),\n };\n }\n function parseFunctionParameters() {\n const parameters = parseList(ListKind.FunctionParameters, parseFunctionParameter);\n let foundOptional = false;\n for (const [index, item] of parameters.items.entries()) {\n if (!item.optional && foundOptional) {\n error({ code: \"required-parameter-first\", target: item });\n continue;\n }\n if (item.optional) {\n foundOptional = true;\n }\n if (item.rest && item.optional) {\n error({ code: \"rest-parameter-required\", target: item });\n }\n if (item.rest && index !== parameters.items.length - 1) {\n error({ code: \"rest-parameter-last\", target: item });\n }\n }\n return parameters;\n }\n function parseFunctionParameter() {\n const pos = tokenPos();\n const rest = parseOptional(Token.Ellipsis);\n const id = parseIdentifier({ message: \"property\" });\n const optional = parseOptional(Token.Question);\n let type;\n if (parseOptional(Token.Colon)) {\n type = parseMixedParameterConstraint();\n }\n return {\n kind: SyntaxKind.FunctionParameter,\n id,\n type,\n optional,\n rest,\n ...finishNode(pos),\n };\n }\n function modifiersToFlags(modifiers) {\n let flags = 0 /* ModifierFlags.None */;\n for (const modifier of modifiers) {\n switch (modifier.kind) {\n case SyntaxKind.ExternKeyword:\n flags |= 2 /* ModifierFlags.Extern */;\n break;\n }\n }\n return flags;\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n function parseProjectionStatement(pos) {\n parseExpected(Token.ProjectionKeyword);\n const selector = parseProjectionSelector();\n parseExpected(Token.Hash);\n const id = parseIdentifier();\n parseExpected(Token.OpenBrace);\n const projectionMap = new Map();\n const projections = [];\n while (token() === Token.Identifier) {\n const projection = parseProjection();\n if (projection.direction !== \"<error>\") {\n if (projectionMap.has(projection.direction)) {\n error({ code: \"duplicate-symbol\", target: projection, format: { name: \"projection\" } });\n }\n else {\n projectionMap.set(projection.direction, projection);\n }\n }\n // NOTE: Don't drop projections with error in direction definition from the AST.\n projections.push(projection);\n }\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionStatement,\n selector,\n projections,\n preTo: projectionMap.get(\"pre_to\"),\n preFrom: projectionMap.get(\"pre_from\"),\n from: projectionMap.get(\"from\"),\n to: projectionMap.get(\"to\"),\n id,\n ...finishNode(pos),\n };\n }\n function parseProjection() {\n const pos = tokenPos();\n let directionId = parseIdentifier({ message: \"projectionDirection\" });\n let direction;\n const modifierIds = [];\n let isPre = false;\n if (directionId.sv === \"pre\") {\n isPre = true;\n modifierIds.push(directionId);\n directionId = parseIdentifier({ message: \"projectionDirection\" });\n }\n if (directionId.sv !== \"to\" && directionId.sv !== \"from\") {\n error({ code: \"token-expected\", messageId: \"projectionDirection\" });\n direction = \"<error>\";\n }\n else if (isPre) {\n direction = directionId.sv === \"to\" ? \"pre_to\" : \"pre_from\";\n }\n else {\n direction = directionId.sv;\n }\n let parameters;\n if (token() === Token.OpenParen) {\n parameters = parseList(ListKind.ProjectionParameter, parseProjectionParameter).items;\n }\n else {\n parameters = [];\n }\n parseExpected(Token.OpenBrace);\n const body = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.Projection,\n body,\n direction,\n directionId,\n modifierIds,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseProjectionParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n return {\n kind: SyntaxKind.ProjectionParameterDeclaration,\n id,\n ...finishNode(pos),\n };\n }\n function parseProjectionStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const startPos = tokenPos();\n if (token() === Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"default\", format: { token: \"}\" } });\n break;\n }\n const expr = parseProjectionExpressionStatement();\n stmts.push(expr);\n if (tokenPos() === startPos) {\n // we didn't manage to parse anything, so break out\n // and we'll report errors elsewhere.\n break;\n }\n }\n return stmts;\n }\n function parseProjectionExpressionStatement() {\n const pos = tokenPos();\n const expr = parseProjectionExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ProjectionExpressionStatement,\n expr,\n ...finishNode(pos),\n };\n }\n function parseProjectionExpression() {\n return parseProjectionReturnExpressionOrHigher();\n }\n function parseProjectionReturnExpressionOrHigher() {\n if (token() === Token.ReturnKeyword) {\n const pos = tokenPos();\n parseExpected(Token.ReturnKeyword);\n return {\n kind: SyntaxKind.Return,\n value: parseProjectionExpression(),\n ...finishNode(pos),\n };\n }\n return parseProjectionLogicalOrExpressionOrHigher();\n }\n function parseProjectionLogicalOrExpressionOrHigher() {\n let expr = parseProjectionLogicalAndExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.BarBar)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"||\",\n left: expr,\n right: parseProjectionLogicalAndExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionLogicalAndExpressionOrHigher() {\n let expr = parseProjectionEqualityExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.AmpsersandAmpersand)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"&&\",\n left: expr,\n right: parseProjectionEqualityExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionEqualityExpressionOrHigher() {\n let expr = parseProjectionRelationalExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.EqualsEquals || tok === Token.ExclamationEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionEqualityExpression,\n op,\n left: expr,\n right: parseProjectionRelationalExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionRelationalExpressionOrHigher() {\n let expr = parseProjectionAdditiveExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.LessThan ||\n tok === Token.LessThanEquals ||\n tok === Token.GreaterThan ||\n tok === Token.GreaterThanEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionRelationalExpression,\n op,\n left: expr,\n right: parseProjectionAdditiveExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionAdditiveExpressionOrHigher() {\n let expr = parseProjectionMultiplicativeExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.Plus || tok === Token.Hyphen) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionMultiplicativeExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionMultiplicativeExpressionOrHigher() {\n let expr = parseProjectionUnaryExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.ForwardSlash || tok === Token.Star) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionUnaryExpressionOrHigher() {\n if (token() === Token.Exclamation) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnaryExpression,\n op: \"!\",\n target: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n return parseProjectionCallExpressionOrHigher();\n }\n function parseProjectionCallExpressionOrHigher() {\n let expr = parseProjectionDecoratorReferenceExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n expr = parseProjectionMemberExpressionRest(expr, pos);\n if (token() === Token.OpenParen) {\n expr = {\n kind: SyntaxKind.ProjectionCallExpression,\n callKind: \"method\",\n target: expr,\n arguments: parseList(ListKind.CallArguments, parseProjectionExpression).items,\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionDecoratorReferenceExpressionOrHigher() {\n if (token() === Token.At) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionDecoratorReferenceExpression,\n target: parseIdentifierOrMemberExpression(undefined, true),\n ...finishNode(pos),\n };\n }\n return parseProjectionMemberExpressionOrHigher();\n }\n function parseProjectionMemberExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parseProjectionPrimaryExpression();\n expr = parseProjectionMemberExpressionRest(expr, pos);\n return expr;\n }\n function parseProjectionMemberExpressionRest(expr, pos) {\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionPrimaryExpression() {\n switch (token()) {\n case Token.IfKeyword:\n return parseProjectionIfExpression();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.OpenBracket:\n return parseProjectionTupleExpression();\n case Token.OpenBrace:\n return parseProjectionModelExpression();\n case Token.OpenParen:\n return parseProjectionLambdaOrParenthesizedExpression();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseIdentifier({ message: \"expression\" });\n }\n }\n function parseProjectionLambdaOrParenthesizedExpression() {\n const pos = tokenPos();\n const exprs = parseList(ListKind.ProjectionExpression, parseProjectionExpression).items;\n if (token() === Token.EqualsGreaterThan) {\n // unpack the exprs (which should be just identifiers) into a param list\n const params = [];\n for (const expr of exprs) {\n if (expr.kind === SyntaxKind.Identifier) {\n params.push(withSymbol({\n kind: SyntaxKind.ProjectionLambdaParameterDeclaration,\n id: expr,\n pos: expr.pos,\n end: expr.end,\n flags: 0 /* NodeFlags.None */,\n }));\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\", target: expr });\n }\n }\n return parseProjectionLambdaExpressionRest(pos, params);\n }\n else {\n if (exprs.length === 0) {\n error({\n code: \"token-expected\",\n messageId: \"expression\",\n });\n }\n // verify we only have one entry\n for (let i = 1; i < exprs.length; i++) {\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: \"expression\" },\n target: exprs[i],\n });\n }\n return exprs[0];\n }\n }\n function parseProjectionLambdaExpressionRest(pos, parameters) {\n parseExpected(Token.EqualsGreaterThan);\n const body = parseProjectionBlockExpression();\n return {\n kind: SyntaxKind.ProjectionLambdaExpression,\n parameters,\n body,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelExpression() {\n const pos = tokenPos();\n const { items: properties } = parseList(ListKind.ModelProperties, parseProjectionModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ProjectionModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseProjectionModelSpreadProperty(pos, decorators)\n : parseProjectionModelProperty(pos, decorators);\n }\n function parseProjectionModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n const target = parseProjectionExpression();\n return {\n kind: SyntaxKind.ProjectionModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelProperty(pos, decorators) {\n const id = parseIdentifier({ message: \"property\", allowStringLiteral: true });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseProjectionExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseProjectionExpression() : undefined;\n return {\n kind: SyntaxKind.ProjectionModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseProjectionIfExpression() {\n const pos = tokenPos();\n parseExpected(Token.IfKeyword);\n const test = parseProjectionExpression();\n const consequent = parseProjectionBlockExpression();\n let alternate = undefined;\n if (parseOptional(Token.ElseKeyword)) {\n if (token() === Token.IfKeyword) {\n alternate = parseProjectionIfExpression();\n }\n else {\n alternate = parseProjectionBlockExpression();\n }\n }\n return {\n kind: SyntaxKind.ProjectionIfExpression,\n test,\n consequent,\n alternate,\n ...finishNode(pos),\n };\n }\n function parseProjectionBlockExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenBrace);\n const statements = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionBlockExpression,\n statements,\n ...finishNode(pos),\n };\n }\n function parseProjectionTupleExpression() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.Tuple, parseProjectionExpression);\n return {\n kind: SyntaxKind.ProjectionTupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseProjectionSelector() {\n const pos = tokenPos();\n const selectorTok = expectTokenIsOneOf(Token.Identifier, Token.ModelKeyword, Token.OpKeyword, Token.InterfaceKeyword, Token.UnionKeyword, Token.EnumKeyword, Token.ScalarKeyword);\n switch (selectorTok) {\n case Token.Identifier:\n const id = parseIdentifierOrMemberExpression(undefined, true);\n if (id.kind === SyntaxKind.Identifier) {\n switch (id.sv) {\n case \"modelproperty\":\n return {\n kind: SyntaxKind.ProjectionModelPropertySelector,\n ...finishNode(pos),\n };\n case \"unionvariant\":\n return {\n kind: SyntaxKind.ProjectionUnionVariantSelector,\n ...finishNode(pos),\n };\n case \"enummember\":\n return {\n kind: SyntaxKind.ProjectionEnumMemberSelector,\n ...finishNode(pos),\n };\n }\n }\n return id;\n case Token.ModelKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionModelSelector,\n ...finishNode(pos),\n };\n case Token.OpKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionOperationSelector,\n ...finishNode(pos),\n };\n case Token.InterfaceKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionInterfaceSelector,\n ...finishNode(pos),\n };\n case Token.UnionKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnionSelector,\n ...finishNode(pos),\n };\n case Token.EnumKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionEnumSelector,\n ...finishNode(pos),\n };\n case Token.ScalarKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionScalarSelector,\n ...finishNode(pos),\n };\n default:\n // recovery: return a missing identifier to use as the selector\n // we don't need to emit a diagnostic here as the `expectTokenOneOf` above\n // will have done so.\n return createMissingIdentifier();\n }\n }\n function parseRange(mode, range, callback) {\n const savedMode = currentMode;\n const result = scanner.scanRange(range, () => {\n currentMode = mode;\n nextToken();\n return callback();\n });\n currentMode = savedMode;\n return result;\n }\n /** Remove leading slash-star-star and trailing star-slash (if terminated) from doc comment range. */\n function innerDocRange(range) {\n return {\n pos: range.pos + 3,\n end: tokenFlags() & TokenFlags.Unterminated ? range.end : range.end - 2,\n };\n }\n function parseDocList() {\n if (docRanges.length === 0 || options.docs === false) {\n return [tokenPos(), []];\n }\n const docs = [];\n for (const range of docRanges) {\n const doc = parseRange(1 /* ParseMode.Doc */, innerDocRange(range), () => parseDoc(range));\n docs.push(doc);\n if (range.comment) {\n mutate(range.comment).parsedAsDocs = true;\n }\n }\n return [docRanges[0].pos, docs];\n }\n function parseDoc(range) {\n const content = [];\n const tags = [];\n loop: while (true) {\n switch (token()) {\n case Token.EndOfFile:\n break loop;\n case Token.At:\n const tag = parseDocTag();\n tags.push(tag);\n break;\n default:\n content.push(...parseDocContent());\n break;\n }\n }\n return {\n kind: SyntaxKind.Doc,\n content,\n tags,\n ...finishNode(range.pos),\n end: range.end,\n };\n }\n function parseDocContent() {\n const parts = [];\n const source = scanner.file.text;\n const pos = tokenPos();\n let start = pos;\n let inCodeFence = false;\n loop: while (true) {\n switch (token()) {\n case Token.DocCodeFenceDelimiter:\n inCodeFence = !inCodeFence;\n nextToken();\n break;\n case Token.NewLine:\n parts.push(source.substring(start, tokenPos()));\n parts.push(\"\\n\"); // normalize line endings\n nextToken();\n start = tokenPos();\n while (parseOptional(Token.Whitespace))\n ;\n if (!parseOptional(Token.Star)) {\n break;\n }\n if (!inCodeFence) {\n parseOptional(Token.Whitespace);\n start = tokenPos();\n break;\n }\n // If we are in a code fence we want to preserve the leading whitespace\n // except for the first space after the star which is used as indentation.\n const whitespaceStart = tokenPos();\n parseOptional(Token.Whitespace);\n // This `min` handles the case when there is no whitespace after the\n // star e.g. a case like this:\n //\n // /**\n // *```\n // *foo-bar\n // *```\n // */\n //\n // Not having space after the star isn't idiomatic, but we support this.\n // `whitespaceStart + 1` strips the first space before `foo-bar` if there\n // is a space after the star (the idiomatic case).\n start = Math.min(whitespaceStart + 1, tokenPos());\n break;\n case Token.EndOfFile:\n break loop;\n case Token.At:\n if (!inCodeFence) {\n break loop;\n }\n nextToken();\n break;\n case Token.DocText:\n parts.push(source.substring(start, tokenPos()));\n parts.push(tokenValue());\n nextToken();\n start = tokenPos();\n break;\n default:\n nextToken();\n break;\n }\n }\n parts.push(source.substring(start, tokenPos()));\n const text = trim(parts.join(\"\"));\n return [\n {\n kind: SyntaxKind.DocText,\n text,\n ...finishNode(pos),\n },\n ];\n }\n /**\n * Parses a documentation tag.\n *\n * @see <a href=\"https://typespec.io/docs/language-basics/documentation#doc-comments\">TypeSpec documentation docs</a>\n */\n function parseDocTag() {\n const pos = tokenPos();\n parseExpected(Token.At);\n const tagName = parseDocIdentifier(\"tag\");\n switch (tagName.sv) {\n case \"param\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocParamTag, \"param\");\n case \"template\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocTemplateTag, \"templateParam\");\n case \"prop\":\n return parseDocPropTag(pos, tagName);\n case \"return\":\n case \"returns\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocReturnsTag);\n case \"errors\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocErrorsTag);\n default:\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocUnknownTag);\n }\n }\n /**\n * Handles param-like documentation comment tags.\n * For example, `@param` and `@template`.\n */\n function parseDocParamLikeTag(pos, tagName, kind, messageId) {\n const { name, content } = parseDocParamLikeTagInternal(messageId);\n return {\n kind,\n tagName,\n paramName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocPropTag(pos, tagName) {\n const { name, content } = parseDocParamLikeTagInternal(\"prop\");\n return {\n kind: SyntaxKind.DocPropTag,\n tagName,\n propName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocParamLikeTagInternal(messageId) {\n const name = parseDocIdentifier(messageId);\n parseOptionalHyphenDocParamLikeTag();\n const content = parseDocContent();\n return { name, content };\n }\n /**\n * Handles the optional hyphen in param-like documentation comment tags.\n *\n * TypeSpec recommends no hyphen, but supports a hyphen to match TSDoc.\n * (Original design discussion recorded in [2390].)\n *\n * [2390]: https://github.com/microsoft/typespec/issues/2390\n */\n function parseOptionalHyphenDocParamLikeTag() {\n while (parseOptional(Token.Whitespace))\n ; // Skip whitespace\n if (parseOptional(Token.Hyphen)) {\n // The doc content started with a hyphen, so skip subsequent whitespace\n // (The if statement already advanced past the hyphen itself.)\n while (parseOptional(Token.Whitespace))\n ;\n }\n }\n function parseDocSimpleTag(pos, tagName, kind) {\n const content = parseDocContent();\n return {\n kind,\n tagName,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocIdentifier(messageId) {\n // We don't allow whitespace between @ and tag name, but allow\n // whitespace before all other identifiers.\n if (messageId !== \"tag\") {\n while (parseOptional(Token.Whitespace))\n ;\n }\n const pos = tokenPos();\n let sv;\n if (token() === Token.Identifier) {\n sv = tokenValue();\n nextToken();\n }\n else {\n sv = \"\";\n warning({ code: \"doc-invalid-identifier\", messageId });\n }\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n // utility functions\n function token() {\n return scanner.token;\n }\n function tokenFlags() {\n return scanner.tokenFlags;\n }\n function tokenValue() {\n return scanner.getTokenValue();\n }\n function tokenPos() {\n return scanner.tokenPosition;\n }\n function tokenEnd() {\n return scanner.position;\n }\n function nextToken() {\n // keep track of the previous token end separately from the current scanner\n // position as these will differ when the previous token had trailing\n // trivia, and we don't want to squiggle the trivia.\n previousTokenEnd = scanner.position;\n return currentMode === 0 /* ParseMode.Syntax */ ? nextSyntaxToken() : nextDocToken();\n }\n function nextSyntaxToken() {\n docRanges = [];\n for (;;) {\n scanner.scan();\n if (isTrivia(token())) {\n if (!newLineIsTrivia && token() === Token.NewLine) {\n break;\n }\n let comment = undefined;\n if (options.comments && isComment(token())) {\n comment = {\n kind: token() === Token.SingleLineComment\n ? SyntaxKind.LineComment\n : SyntaxKind.BlockComment,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n comments.push(comment);\n }\n if (tokenFlags() & TokenFlags.DocComment) {\n docRanges.push({\n pos: tokenPos(),\n end: tokenEnd(),\n comment: comment,\n });\n }\n }\n else {\n break;\n }\n }\n }\n function nextDocToken() {\n // NOTE: trivia tokens are always significant in doc comments.\n scanner.scanDoc();\n }\n function nextStringTemplateToken(tokenFlags) {\n scanner.reScanStringTemplate(tokenFlags);\n }\n function createMissingIdentifier() {\n const pos = tokenPos();\n previousTokenEnd = pos;\n missingIdentifierCounter++;\n return {\n kind: SyntaxKind.Identifier,\n sv: \"<missing identifier>\" + missingIdentifierCounter,\n ...finishNode(pos),\n };\n }\n function createMissingTypeReference() {\n const pos = tokenPos();\n const { items: args } = createEmptyList();\n return {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: args,\n ...finishNode(pos),\n };\n }\n function finishNode(pos) {\n const flags = parseErrorInNextFinishedNode ? 2 /* NodeFlags.ThisNodeHasError */ : 0 /* NodeFlags.None */;\n parseErrorInNextFinishedNode = false;\n return withSymbol({ pos, end: previousTokenEnd, flags });\n }\n // pretend to add as symbol property, likely to a node that is being created.\n function withSymbol(obj) {\n return obj;\n }\n function createEmptyList(range = { pos: -1, end: -1 }) {\n return {\n items: [],\n range,\n };\n }\n /**\n * Parse a delimited list of elements, including the surrounding open and\n * close punctuation\n *\n * This shared driver function is used to share sensitive error recovery code.\n * In particular, error recovery by inserting tokens deemed missing is\n * susceptible to getting stalled in a loop iteration without making any\n * progress, and we guard against this in a shared place here.\n *\n * Note that statement and decorator lists do not have this issue. We always\n * consume at least a real '@' for a decorator and if the leading token of a\n * statement is not one of our statement keywords, ';', or '@', it is consumed\n * as part of a bad statement. As such, parsing of decorators and statements\n * do not go through here.\n */\n function parseList(kind, parseItem) {\n const r = createEmptyList();\n if (kind.open !== Token.None) {\n const t = tokenPos();\n if (parseExpected(kind.open)) {\n mutate(r.range).pos = t;\n }\n }\n if (kind.allowEmpty && parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n return r;\n }\n while (true) {\n const startingPos = tokenPos();\n const { pos, docs, directives, decorators } = parseAnnotations({\n skipParsingDocNodes: Boolean(kind.invalidAnnotationTarget),\n });\n if (kind.invalidAnnotationTarget) {\n reportInvalidDecorators(decorators, kind.invalidAnnotationTarget);\n reportInvalidDirective(directives, kind.invalidAnnotationTarget);\n }\n if (directives.length === 0 && decorators.length === 0 && atEndOfListWithError(kind)) {\n // Error recovery: end surrounded list at statement keyword or end\n // of file. Note, however, that we must parse a missing element if\n // there were directives or decorators as we cannot drop those from\n // the tree.\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n break;\n }\n let item;\n if (kind.invalidAnnotationTarget) {\n item = parseItem();\n }\n else {\n item = parseItem(pos, decorators);\n mutate(item).docs = docs;\n mutate(item).directives = directives;\n }\n r.items.push(item);\n if (parseOptionalDelimiter(kind)) {\n // Delimiter found: check if it's trailing.\n if (parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n // It was trailing and we've consumed the close token.\n break;\n }\n // Not trailing. We can safely skip the progress check below here\n // because we know that we consumed a real delimiter.\n continue;\n }\n else if (kind.close === Token.None) {\n // If a list is *not* surrounded by punctuation, then the list ends when\n // there's no delimiter after an item.\n break;\n }\n else if (parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n // If a list *is* surrounded by punctuation, then the list ends when we\n // reach the close token.\n break;\n }\n else if (atEndOfListWithError(kind)) {\n // Error recovery: If a list *is* surrounded by punctuation, then\n // the list ends at statement keyword or end-of-file under the\n // assumption that the closing delimiter is missing. This check is\n // duplicated from above to preempt the parseExpected(delimeter)\n // below.\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n break;\n }\n else {\n // Error recovery: if a list kind *is* surrounded by punctuation and we\n // find neither a delimiter nor a close token after an item, then we\n // assume there is a missing delimiter between items.\n //\n // Example: `model M { a: B <missing semicolon> c: D }\n parseExpected(kind.delimiter);\n }\n if (startingPos === tokenPos()) {\n // Error recovery: we've inserted everything during this loop iteration\n // and haven't made any progress. Assume that the current token is a bad\n // representation of the end of the the list that we're trying to get\n // through.\n //\n // Simple repro: `model M { ]` would loop forever without this check.\n //\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n nextToken();\n // remove the item that was entirely inserted by error recovery.\n r.items.pop();\n break;\n }\n }\n return r;\n }\n /**\n * Parse a delimited list with surrounding open and close punctuation if the\n * open token is present. Otherwise, return an empty list.\n */\n function parseOptionalList(kind, parseItem) {\n return token() === kind.open ? parseList(kind, parseItem) : createEmptyList();\n }\n function parseOptionalDelimiter(kind) {\n if (parseOptional(kind.delimiter)) {\n return true;\n }\n if (token() === kind.toleratedDelimiter) {\n if (!kind.toleratedDelimiterIsValid) {\n parseExpected(kind.delimiter);\n }\n nextToken();\n return true;\n }\n return false;\n }\n function atEndOfListWithError(kind) {\n return (kind.close !== Token.None &&\n (isStatementKeyword(token()) || token() === Token.EndOfFile) &&\n token() !== kind.allowedStatementKeyword);\n }\n function parseEmptyStatement(pos) {\n parseExpected(Token.Semicolon);\n return { kind: SyntaxKind.EmptyStatement, ...finishNode(pos) };\n }\n function parseInvalidStatement(pos, decorators) {\n // Error recovery: avoid an avalanche of errors when we get cornered into\n // parsing statements where none exist. Skip until we find a statement\n // keyword or decorator and only report one error for a contiguous range of\n // neither.\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n error({\n code: \"token-expected\",\n messageId: \"statement\",\n target: { pos, end: previousTokenEnd },\n });\n return { kind: SyntaxKind.InvalidStatement, decorators, ...finishNode(pos) };\n }\n function error(report) {\n parseErrorInNextFinishedNode = true;\n const location = {\n file: scanner.file,\n pos: report.target?.pos ?? tokenPos(),\n end: report.target?.end ?? tokenEnd(),\n };\n if (!report.printable) {\n treePrintable = false;\n }\n // Error recovery: don't report more than 1 consecutive error at the same\n // position. The code path taken by error recovery after logging an error\n // can otherwise produce redundant and less decipherable errors, which this\n // suppresses.\n const realPos = report.target?.realPos ?? location.pos;\n if (realPositionOfLastError === realPos) {\n return;\n }\n realPositionOfLastError = realPos;\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"error\", \"This function is for reporting errors. Use warning() for warnings.\");\n parseDiagnostics.push(diagnostic);\n }\n function warning(report) {\n const location = {\n file: scanner.file,\n pos: report.target?.pos ?? tokenPos(),\n end: report.target?.end ?? tokenEnd(),\n };\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"warning\", \"This function is for reporting warnings only. Use error() for errors.\");\n parseDiagnostics.push(diagnostic);\n }\n function reportDiagnostic(diagnostic) {\n if (diagnostic.severity === \"error\") {\n parseErrorInNextFinishedNode = true;\n treePrintable = false;\n }\n parseDiagnostics.push(diagnostic);\n }\n function assert(condition, message) {\n const location = {\n file: scanner.file,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n compilerAssert(condition, message, location);\n }\n function reportInvalidDecorators(decorators, nodeName) {\n for (const decorator of decorators) {\n error({ code: \"invalid-decorator-location\", format: { nodeName }, target: decorator });\n }\n }\n function reportInvalidDirective(directives, nodeName) {\n for (const directive of directives) {\n error({ code: \"invalid-directive-location\", format: { nodeName }, target: directive });\n }\n }\n function parseExpected(expectedToken) {\n if (token() === expectedToken) {\n nextToken();\n return true;\n }\n const location = getAdjustedDefaultLocation(expectedToken);\n error({\n code: \"token-expected\",\n format: { token: TokenDisplay[expectedToken] },\n target: location,\n printable: isPunctuation(expectedToken),\n });\n return false;\n }\n function expectTokenIsOneOf(...args) {\n const tok = token();\n for (const expected of args) {\n if (expected === Token.None) {\n continue;\n }\n if (tok === expected) {\n return tok;\n }\n }\n errorTokenIsNotOneOf(...args);\n return Token.None;\n }\n function parseExpectedOneOf(...args) {\n const tok = expectTokenIsOneOf(...args);\n if (tok !== Token.None) {\n nextToken();\n }\n return tok;\n }\n function errorTokenIsNotOneOf(...args) {\n const location = getAdjustedDefaultLocation(args[0]);\n const displayList = args.map((t, i) => {\n if (i === args.length - 1) {\n return `or ${TokenDisplay[t]}`;\n }\n return TokenDisplay[t];\n });\n error({ code: \"token-expected\", format: { token: displayList.join(\", \") }, target: location });\n }\n function parseOptional(optionalToken) {\n if (token() === optionalToken) {\n nextToken();\n return true;\n }\n return false;\n }\n function getAdjustedDefaultLocation(token) {\n // Put the squiggly immediately after prior token when missing punctuation.\n // Avoids saying ';' is expected far away after a long comment, for example.\n // It's also confusing to squiggle the current token even if its nearby\n // in this case.\n return isPunctuation(token)\n ? { pos: previousTokenEnd, end: previousTokenEnd + 1, realPos: tokenPos() }\n : undefined;\n }\n}\nexport function exprIsBareIdentifier(expr) {\n return (expr.kind === SyntaxKind.TypeReference &&\n expr.target.kind === SyntaxKind.Identifier &&\n expr.arguments.length === 0);\n}\nexport function visitChildren(node, cb) {\n if (node.directives) {\n const result = visitEach(cb, node.directives);\n if (result)\n return result;\n }\n if (node.docs) {\n const result = visitEach(cb, node.docs);\n if (result)\n return result;\n }\n switch (node.kind) {\n case SyntaxKind.TypeSpecScript:\n return visitNode(cb, node.id) || visitEach(cb, node.statements);\n case SyntaxKind.ArrayExpression:\n return visitNode(cb, node.elementType);\n case SyntaxKind.AugmentDecoratorStatement:\n return (visitNode(cb, node.target) ||\n visitNode(cb, node.targetType) ||\n visitEach(cb, node.arguments));\n case SyntaxKind.DecoratorExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.CallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.DirectiveExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ImportStatement:\n return visitNode(cb, node.path);\n case SyntaxKind.OperationStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.signature));\n case SyntaxKind.OperationSignatureDeclaration:\n return visitNode(cb, node.parameters) || visitNode(cb, node.returnType);\n case SyntaxKind.OperationSignatureReference:\n return visitNode(cb, node.baseOperation);\n case SyntaxKind.NamespaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n (isArray(node.statements) ? visitEach(cb, node.statements) : visitNode(cb, node.statements)));\n case SyntaxKind.InterfaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.extends) ||\n visitEach(cb, node.operations));\n case SyntaxKind.UsingStatement:\n return visitNode(cb, node.name);\n case SyntaxKind.IntersectionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.MemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n case SyntaxKind.ModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ModelStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends) ||\n visitNode(cb, node.is) ||\n visitEach(cb, node.properties));\n case SyntaxKind.ScalarStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.members) ||\n visitNode(cb, node.extends));\n case SyntaxKind.ScalarConstructor:\n return visitNode(cb, node.id) || visitEach(cb, node.parameters);\n case SyntaxKind.UnionStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.options));\n case SyntaxKind.UnionVariant:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumStatement:\n return (visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitEach(cb, node.members));\n case SyntaxKind.EnumMember:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumSpreadMember:\n return visitNode(cb, node.target);\n case SyntaxKind.AliasStatement:\n return (visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.value));\n case SyntaxKind.ConstStatement:\n return visitNode(cb, node.id) || visitNode(cb, node.value) || visitNode(cb, node.type);\n case SyntaxKind.DecoratorDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.target) ||\n visitEach(cb, node.parameters));\n case SyntaxKind.FunctionDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.parameters) ||\n visitNode(cb, node.returnType));\n case SyntaxKind.FunctionParameter:\n return visitNode(cb, node.id) || visitNode(cb, node.type);\n case SyntaxKind.TypeReference:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ValueOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TypeOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.UnionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.Projection:\n return (visitNode(cb, node.directionId) ||\n visitEach(cb, node.modifierIds) ||\n visitEach(cb, node.parameters) ||\n visitEach(cb, node.body));\n case SyntaxKind.ProjectionExpressionStatement:\n return visitNode(cb, node.expr);\n case SyntaxKind.ProjectionCallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ProjectionMemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n // binops\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n return visitNode(cb, node.left) || visitNode(cb, node.right);\n case SyntaxKind.ProjectionUnaryExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ProjectionModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ProjectionModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionTupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.ProjectionBlockExpression:\n return visitEach(cb, node.statements);\n case SyntaxKind.ProjectionIfExpression:\n return (visitNode(cb, node.test) || visitNode(cb, node.consequent) || visitNode(cb, node.alternate));\n case SyntaxKind.ProjectionLambdaExpression:\n return visitEach(cb, node.parameters) || visitNode(cb, node.body);\n case SyntaxKind.ProjectionStatement:\n return (visitNode(cb, node.id) || visitNode(cb, node.selector) || visitEach(cb, node.projections));\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.Return:\n return visitNode(cb, node.value);\n case SyntaxKind.InvalidStatement:\n return visitEach(cb, node.decorators);\n case SyntaxKind.TemplateParameterDeclaration:\n return (visitNode(cb, node.id) || visitNode(cb, node.constraint) || visitNode(cb, node.default));\n case SyntaxKind.TemplateArgument:\n return (node.name && visitNode(cb, node.name)) || visitNode(cb, node.argument);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.ProjectionParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.Doc:\n return visitEach(cb, node.content) || visitEach(cb, node.tags);\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.paramName) || visitEach(cb, node.content));\n case SyntaxKind.DocPropTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.propName) || visitEach(cb, node.content));\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocErrorsTag:\n case SyntaxKind.DocUnknownTag:\n return visitNode(cb, node.tagName) || visitEach(cb, node.content);\n case SyntaxKind.StringTemplateExpression:\n return visitNode(cb, node.head) || visitEach(cb, node.spans);\n case SyntaxKind.StringTemplateSpan:\n return visitNode(cb, node.expression) || visitNode(cb, node.literal);\n case SyntaxKind.ObjectLiteral:\n return visitEach(cb, node.properties);\n case SyntaxKind.ObjectLiteralProperty:\n return visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.ObjectLiteralSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ArrayLiteral:\n return visitEach(cb, node.values);\n // no children for the rest of these.\n case SyntaxKind.StringTemplateHead:\n case SyntaxKind.StringTemplateMiddle:\n case SyntaxKind.StringTemplateTail:\n case SyntaxKind.StringLiteral:\n case SyntaxKind.NumericLiteral:\n case SyntaxKind.BooleanLiteral:\n case SyntaxKind.Identifier:\n case SyntaxKind.EmptyStatement:\n case SyntaxKind.ProjectionModelSelector:\n case SyntaxKind.ProjectionModelPropertySelector:\n case SyntaxKind.ProjectionScalarSelector:\n case SyntaxKind.ProjectionUnionSelector:\n case SyntaxKind.ProjectionUnionVariantSelector:\n case SyntaxKind.ProjectionInterfaceSelector:\n case SyntaxKind.ProjectionOperationSelector:\n case SyntaxKind.ProjectionEnumSelector:\n case SyntaxKind.ProjectionEnumMemberSelector:\n case SyntaxKind.VoidKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.ExternKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.JsNamespaceDeclaration:\n case SyntaxKind.DocText:\n return;\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return;\n }\n}\nfunction visitNode(cb, node) {\n return node && cb(node);\n}\nfunction visitEach(cb, nodes) {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n const result = cb(node);\n if (result) {\n return result;\n }\n }\n return;\n}\n/**\n * check whether a position belongs to a range (excluding the start and end pos)\n * i.e. <range.pos>{<start to return true>...<end to return true>}<range.end>\n *\n * remark: if range.pos is -1 means no start point found, so return false\n * if range.end is -1 means no end point found, so return true if position is greater than range.pos\n */\nexport function positionInRange(position, range) {\n return range.pos >= 0 && position > range.pos && (range.end === -1 || position < range.end);\n}\nexport function getNodeAtPositionDetail(script, position, filter = () => true) {\n const cur = getNodeAtPosition(script, position, (n) => filter(n, \"cur\"));\n const input = script.file.text;\n const char = input.charCodeAt(position);\n const preChar = position >= 0 ? input.charCodeAt(position - 1) : NaN;\n const nextChar = position < input.length ? input.charCodeAt(position + 1) : NaN;\n let inTrivia = false;\n let triviaStart;\n let triviaEnd;\n if (!cur || cur.kind !== SyntaxKind.StringLiteral) {\n const { char: cp } = codePointBefore(input, position);\n if (!cp || !isIdentifierContinue(cp)) {\n triviaEnd = skipTrivia(input, position);\n triviaStart = skipTriviaBackward(script, position) + 1;\n inTrivia = triviaEnd !== position;\n }\n }\n if (!inTrivia) {\n const beforeId = skipContinuousIdentifier(input, position, true /*isBackward*/);\n triviaStart = skipTriviaBackward(script, beforeId) + 1;\n const afterId = skipContinuousIdentifier(input, position, false /*isBackward*/);\n triviaEnd = skipTrivia(input, afterId);\n }\n if (triviaStart === undefined || triviaEnd === undefined) {\n compilerAssert(false, \"unexpected, triviaStart and triviaEnd should be defined\");\n }\n return {\n node: cur,\n char,\n preChar,\n nextChar,\n position,\n inTrivia,\n triviaStartPosition: triviaStart,\n triviaEndPosition: triviaEnd,\n getPositionDetailBeforeTrivia: () => {\n // getNodeAtPosition will also include the 'node.end' position which is the triviaStart pos\n return getNodeAtPositionDetail(script, triviaStart, (n) => filter(n, \"pre\"));\n },\n getPositionDetailAfterTrivia: () => {\n return getNodeAtPositionDetail(script, triviaEnd, (n) => filter(n, \"post\"));\n },\n };\n}\nexport function getNodeAtPosition(script, position, filter = (node) => true) {\n return visit(script);\n function visit(node) {\n // We deliberately include the end position here because we need to hit\n // nodes when the cursor is positioned immediately after an identifier.\n // This is especially vital for completion. It's also generally OK\n // because the language doesn't (and should never) have syntax where you\n // could place the cursor ambiguously between two adjacent,\n // non-punctuation, non-trivia tokens that have no punctuation or trivia\n // separating them.\n if (node.pos <= position && position <= node.end) {\n // We only need to recursively visit children of nodes that satisfied\n // the condition above and therefore contain the given position. If a\n // node does not contain a position, then neither do its children.\n const child = visitChildren(node, visit);\n // A child match here is better than a self-match below as we want the\n // deepest (most specific) node. In other words, the search is depth\n // first. For example, consider `A<B<C>>`: If the cursor is on `B`,\n // then prefer B<C> over A<B<C>>.\n if (child) {\n return child;\n }\n if (filter(node)) {\n return node;\n }\n }\n return undefined;\n }\n}\nexport function hasParseError(node) {\n if (node.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n return true;\n }\n checkForDescendantErrors(node);\n return node.flags & 4 /* NodeFlags.DescendantHasError */;\n}\nfunction checkForDescendantErrors(node) {\n if (node.flags & 1 /* NodeFlags.DescendantErrorsExamined */) {\n return;\n }\n mutate(node).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n visitChildren(node, (child) => {\n if (child.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n checkForDescendantErrors(child);\n if (child.flags & 4 /* NodeFlags.DescendantHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n mutate(child).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n return false;\n });\n}\nexport function isImportStatement(node) {\n return node.kind === SyntaxKind.ImportStatement;\n}\nfunction isBlocklessNamespace(node) {\n if (node.kind !== SyntaxKind.NamespaceStatement) {\n return false;\n }\n while (!isArray(node.statements) && node.statements) {\n node = node.statements;\n }\n return node.statements === undefined;\n}\nexport function getFirstAncestor(node, test, includeSelf = false) {\n if (includeSelf && test(node)) {\n return node;\n }\n for (let n = node.parent; n; n = n.parent) {\n if (test(n)) {\n return n;\n }\n }\n return undefined;\n}\nexport function getIdentifierContext(id) {\n const node = getFirstAncestor(id, (n) => n.kind !== SyntaxKind.MemberExpression);\n compilerAssert(node, \"Identifier with no non-member-expression ancestor.\");\n let kind;\n switch (node.kind) {\n case SyntaxKind.TypeReference:\n kind = IdentifierKind.TypeReference;\n break;\n case SyntaxKind.AugmentDecoratorStatement:\n case SyntaxKind.DecoratorExpression:\n kind = IdentifierKind.Decorator;\n break;\n case SyntaxKind.ProjectionCallExpression:\n kind = IdentifierKind.Function;\n break;\n case SyntaxKind.UsingStatement:\n kind = IdentifierKind.Using;\n break;\n case SyntaxKind.TemplateArgument:\n kind = IdentifierKind.TemplateArgument;\n break;\n case SyntaxKind.ObjectLiteralProperty:\n kind = IdentifierKind.ObjectLiteralProperty;\n break;\n case SyntaxKind.ModelProperty:\n switch (node.parent?.kind) {\n case SyntaxKind.ModelExpression:\n kind = IdentifierKind.ModelExpressionProperty;\n break;\n case SyntaxKind.ModelStatement:\n kind = IdentifierKind.ModelStatementProperty;\n break;\n default:\n compilerAssert(\"false\", \"ModelProperty with unexpected parent kind.\");\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n break;\n default:\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n return { node, kind };\n}\n//# sourceMappingURL=parser.js.map","import { isIdentifierContinue, isIdentifierStart, utf16CodeUnits } from \"../charcode.js\";\nimport { Keywords } from \"../scanner.js\";\nimport { SyntaxKind } from \"../types.js\";\n/**\n * Print a string as a TypeSpec identifier. If the string is a valid identifier, return it as is otherwise wrap it into backticks.\n * @param sv Identifier string value.\n * @returns Identifier string as it would be represented in a TypeSpec file.\n *\n * @example\n * ```ts\n * printIdentifier(\"foo\") // foo\n * printIdentifier(\"foo bar\") // `foo bar`\n * ```\n */\nexport function printIdentifier(sv) {\n if (needBacktick(sv)) {\n const escapedString = sv\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/`/g, \"\\\\`\");\n return `\\`${escapedString}\\``;\n }\n else {\n return sv;\n }\n}\nfunction needBacktick(sv) {\n if (sv.length === 0) {\n return false;\n }\n if (Keywords.has(sv)) {\n return true;\n }\n let cp = sv.codePointAt(0);\n if (!isIdentifierStart(cp)) {\n return true;\n }\n let pos = 0;\n do {\n pos += utf16CodeUnits(cp);\n } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));\n return pos < sv.length;\n}\nexport function typeReferenceToString(node) {\n switch (node.kind) {\n case SyntaxKind.MemberExpression:\n return `${typeReferenceToString(node.base)}${node.selector}${typeReferenceToString(node.id)}`;\n case SyntaxKind.TypeReference:\n return typeReferenceToString(node.target);\n case SyntaxKind.Identifier:\n return node.sv;\n }\n}\n//# sourceMappingURL=syntax-utils.js.map","var yu=Object.create;var vt=Object.defineProperty;var Au=Object.getOwnPropertyDescriptor;var vu=Object.getOwnPropertyNames;var Bu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var fr=e=>{throw TypeError(e)};var dr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bt=(e,t)=>{for(var r in t)vt(e,r,{get:t[r],enumerable:!0})},_u=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let u of vu(t))!wu.call(e,u)&&u!==r&&vt(e,u,{get:()=>t[u],enumerable:!(n=Au(t,u))||n.enumerable});return e};var Me=(e,t,r)=>(r=e!=null?yu(Bu(e)):{},_u(t||!e||!e.__esModule?vt(r,\"default\",{value:e,enumerable:!0}):r,e));var xu=(e,t,r)=>t.has(e)||fr(\"Cannot \"+r);var pr=(e,t,r)=>t.has(e)?fr(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,r);var pe=(e,t,r)=>(xu(e,t,\"access private method\"),r);var st=dr((na,Fn)=>{\"use strict\";var pn=new Proxy(String,{get:()=>pn});Fn.exports=pn});var Wn=dr(nr=>{\"use strict\";Object.defineProperty(nr,\"__esModule\",{value:!0});function Bi(){return new Proxy({},{get:()=>e=>e})}var Hn=/\\r\\n|[\\n\\r\\u2028\\u2029]/;function wi(e,t,r){let n=Object.assign({column:0,line:-1},e.start),u=Object.assign({},n,e.end),{linesAbove:i=2,linesBelow:o=3}=r||{},s=n.line,a=n.column,D=u.line,l=u.column,p=Math.max(s-(i+1),0),f=Math.min(t.length,D+o);s===-1&&(p=0),D===-1&&(f=t.length);let d=D-s,c={};if(d)for(let F=0;F<=d;F++){let m=F+s;if(!a)c[m]=!0;else if(F===0){let h=t[m-1].length;c[m]=[a,h-a+1]}else if(F===d)c[m]=[0,l];else{let h=t[m-F].length;c[m]=[0,h]}}else a===l?a?c[s]=[a,0]:c[s]=!0:c[s]=[a,l-a];return{start:p,end:f,markerLines:c}}function _i(e,t,r={}){let u=Bi(!1),i=e.split(Hn),{start:o,end:s,markerLines:a}=wi(t,i,r),D=t.start&&typeof t.start.column==\"number\",l=String(s).length,f=e.split(Hn,s).slice(o,s).map((d,c)=>{let F=o+1+c,h=` ${` ${F}`.slice(-l)} |`,C=a[F],v=!a[F+1];if(C){let E=\"\";if(Array.isArray(C)){let g=d.slice(0,Math.max(C[0]-1,0)).replace(/[^\\t]/g,\" \"),j=C[1]||1;E=[`\n `,u.gutter(h.replace(/\\d/g,\" \")),\" \",g,u.marker(\"^\").repeat(j)].join(\"\"),v&&r.message&&(E+=\" \"+u.message(r.message))}return[u.marker(\">\"),u.gutter(h),d.length>0?` ${d}`:\"\",E].join(\"\")}else return` ${u.gutter(h)}${d.length>0?` ${d}`:\"\"}`}).join(`\n`);return r.message&&!D&&(f=`${\" \".repeat(l+1)}${r.message}\n${f}`),f}nr.codeFrameColumns=_i});var cr={};Bt(cr,{__debug:()=>Do,check:()=>so,doc:()=>ar,format:()=>gu,formatWithCursor:()=>Cu,getSupportInfo:()=>ao,util:()=>lr,version:()=>lu});var bu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ne=bu;function M(){}M.prototype={diff:function(t,r){var n,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=u.callback;typeof u==\"function\"&&(i=u,u={});var o=this;function s(E){return E=o.postProcess(E,u),i?(setTimeout(function(){i(E)},0),!0):E}t=this.castInput(t,u),r=this.castInput(r,u),t=this.removeEmpty(this.tokenize(t,u)),r=this.removeEmpty(this.tokenize(r,u));var a=r.length,D=t.length,l=1,p=a+D;u.maxEditLength!=null&&(p=Math.min(p,u.maxEditLength));var f=(n=u.timeout)!==null&&n!==void 0?n:1/0,d=Date.now()+f,c=[{oldPos:-1,lastComponent:void 0}],F=this.extractCommon(c[0],r,t,0,u);if(c[0].oldPos+1>=D&&F+1>=a)return s(Fr(o,c[0].lastComponent,r,t,o.useLongestToken));var m=-1/0,h=1/0;function C(){for(var E=Math.max(m,-l);E<=Math.min(h,l);E+=2){var g=void 0,j=c[E-1],b=c[E+1];j&&(c[E-1]=void 0);var X=!1;if(b){var ae=b.oldPos-E;X=b&&0<=ae&&ae<a}var $e=j&&j.oldPos+1<D;if(!X&&!$e){c[E]=void 0;continue}if(!$e||X&&j.oldPos<b.oldPos?g=o.addToPath(b,!0,!1,0,u):g=o.addToPath(j,!1,!0,1,u),F=o.extractCommon(g,r,t,E,u),g.oldPos+1>=D&&F+1>=a)return s(Fr(o,g.lastComponent,r,t,o.useLongestToken));c[E]=g,g.oldPos+1>=D&&(h=Math.min(h,E-1)),F+1>=a&&(m=Math.max(m,E+1))}l++}if(i)(function E(){setTimeout(function(){if(l>p||Date.now()>d)return i();C()||E()},0)})();else for(;l<=p&&Date.now()<=d;){var v=C();if(v)return v}},addToPath:function(t,r,n,u,i){var o=t.lastComponent;return o&&!i.oneChangePerToken&&o.added===r&&o.removed===n?{oldPos:t.oldPos+u,lastComponent:{count:o.count+1,added:r,removed:n,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+u,lastComponent:{count:1,added:r,removed:n,previousComponent:o}}},extractCommon:function(t,r,n,u,i){for(var o=r.length,s=n.length,a=t.oldPos,D=a-u,l=0;D+1<o&&a+1<s&&this.equals(n[a+1],r[D+1],i);)D++,a++,l++,i.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(t.lastComponent={count:l,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=a,D},equals:function(t,r,n){return n.comparator?n.comparator(t,r):t===r||n.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return Array.from(t)},join:function(t){return t.join(\"\")},postProcess:function(t){return t}};function Fr(e,t,r,n,u){for(var i=[],o;t;)i.push(t),o=t.previousComponent,delete t.previousComponent,t=o;i.reverse();for(var s=0,a=i.length,D=0,l=0;s<a;s++){var p=i[s];if(p.removed)p.value=e.join(n.slice(l,l+p.count)),l+=p.count;else{if(!p.added&&u){var f=r.slice(D,D+p.count);f=f.map(function(d,c){var F=n[l+c];return F.length>d.length?F:d}),p.value=e.join(f)}else p.value=e.join(r.slice(D,D+p.count));D+=p.count,p.added||(l+=p.count)}}return i}var Fo=new M;function mr(e,t){var r;for(r=0;r<e.length&&r<t.length;r++)if(e[r]!=t[r])return e.slice(0,r);return e.slice(0,r)}function hr(e,t){var r;if(!e||!t||e[e.length-1]!=t[t.length-1])return\"\";for(r=0;r<e.length&&r<t.length;r++)if(e[e.length-(r+1)]!=t[t.length-(r+1)])return e.slice(-r);return e.slice(-r)}function wt(e,t,r){if(e.slice(0,t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't start with prefix \").concat(JSON.stringify(t),\"; this is a bug\"));return r+e.slice(t.length)}function _t(e,t,r){if(!t)return e+r;if(e.slice(-t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't end with suffix \").concat(JSON.stringify(t),\"; this is a bug\"));return e.slice(0,-t.length)+r}function we(e,t){return wt(e,t,\"\")}function Ue(e,t){return _t(e,t,\"\")}function Er(e,t){return t.slice(0,Nu(e,t))}function Nu(e,t){var r=0;e.length>t.length&&(r=e.length-t.length);var n=t.length;e.length<t.length&&(n=e.length);var u=Array(n),i=0;u[0]=0;for(var o=1;o<n;o++){for(t[o]==t[i]?u[o]=u[i]:u[o]=i;i>0&&t[o]!=t[i];)i=u[i];t[o]==t[i]&&i++}i=0;for(var s=r;s<e.length;s++){for(;i>0&&e[s]!=t[i];)i=u[i];e[s]==t[i]&&i++}return i}var Ve=\"a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}\",Ou=new RegExp(\"[\".concat(Ve,\"]+|\\\\s+|[^\").concat(Ve,\"]\"),\"ug\"),Ge=new M;Ge.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};Ge.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!=\"word\")throw new Error('The segmenter passed must have a granularity of \"word\"');r=Array.from(t.intlSegmenter.segment(e),function(i){return i.segment})}else r=e.match(Ou)||[];var n=[],u=null;return r.forEach(function(i){/\\s/.test(i)?u==null?n.push(i):n.push(n.pop()+i):/\\s/.test(u)?n[n.length-1]==u?n.push(n.pop()+i):n.push(u+i):n.push(i),u=i}),n};Ge.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\\s+/,\"\")}).join(\"\")};Ge.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,u=null;return e.forEach(function(i){i.added?n=i:i.removed?u=i:((n||u)&&Cr(r,u,n,i),r=i,n=null,u=null)}),(n||u)&&Cr(r,u,n,null),e};function Cr(e,t,r,n){if(t&&r){var u=t.value.match(/^\\s*/)[0],i=t.value.match(/\\s*$/)[0],o=r.value.match(/^\\s*/)[0],s=r.value.match(/\\s*$/)[0];if(e){var a=mr(u,o);e.value=_t(e.value,o,a),t.value=we(t.value,a),r.value=we(r.value,a)}if(n){var D=hr(i,s);n.value=wt(n.value,s,D),t.value=Ue(t.value,D),r.value=Ue(r.value,D)}}else if(r)e&&(r.value=r.value.replace(/^\\s*/,\"\")),n&&(n.value=n.value.replace(/^\\s*/,\"\"));else if(e&&n){var l=n.value.match(/^\\s*/)[0],p=t.value.match(/^\\s*/)[0],f=t.value.match(/\\s*$/)[0],d=mr(l,p);t.value=we(t.value,d);var c=hr(we(l,d),f);t.value=Ue(t.value,c),n.value=wt(n.value,l,c),e.value=_t(e.value,l,l.slice(0,l.length-c.length))}else if(n){var F=n.value.match(/^\\s*/)[0],m=t.value.match(/\\s*$/)[0],h=Er(m,F);t.value=Ue(t.value,h)}else if(e){var C=e.value.match(/\\s*$/)[0],v=t.value.match(/^\\s*/)[0],E=Er(C,v);t.value=we(t.value,E)}}var Su=new M;Su.tokenize=function(e){var t=new RegExp(\"(\\\\r?\\\\n)|[\".concat(Ve,\"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(Ve,\"]\"),\"ug\");return e.match(t)||[]};var Nt=new M;Nt.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\\r\\n/g,`\n`));var r=[],n=e.split(/(\\n|\\r\\n)/);n[n.length-1]||n.pop();for(var u=0;u<n.length;u++){var i=n[u];u%2&&!t.newlineIsToken?r[r.length-1]+=i:r.push(i)}return r};Nt.equals=function(e,t,r){return r.ignoreWhitespace?((!r.newlineIsToken||!e.includes(`\n`))&&(e=e.trim()),(!r.newlineIsToken||!t.includes(`\n`))&&(t=t.trim())):r.ignoreNewlineAtEof&&!r.newlineIsToken&&(e.endsWith(`\n`)&&(e=e.slice(0,-1)),t.endsWith(`\n`)&&(t=t.slice(0,-1))),M.prototype.equals.call(this,e,t,r)};var Tu=new M;Tu.tokenize=function(e){return e.split(/(\\S.+?[.!?])(?=\\s+|$)/)};var ku=new M;ku.tokenize=function(e){return e.split(/([{}:;,]|\\s+)/)};function xt(e){\"@babel/helpers - typeof\";return xt=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},xt(e)}var _e=new M;_e.useLongestToken=!0;_e.tokenize=Nt.tokenize;_e.castInput=function(e,t){var r=t.undefinedReplacement,n=t.stringifyReplacer,u=n===void 0?function(i,o){return typeof o>\"u\"?r:o}:n;return typeof e==\"string\"?e:JSON.stringify(bt(e,null,null,u),u,\" \")};_e.equals=function(e,t,r){return M.prototype.equals.call(_e,e.replace(/,([\\r\\n])/g,\"$1\"),t.replace(/,([\\r\\n])/g,\"$1\"),r)};function bt(e,t,r,n,u){t=t||[],r=r||[],n&&(e=n(u,e));var i;for(i=0;i<t.length;i+=1)if(t[i]===e)return r[i];var o;if(Object.prototype.toString.call(e)===\"[object Array]\"){for(t.push(e),o=new Array(e.length),r.push(o),i=0;i<e.length;i+=1)o[i]=bt(e[i],t,r,n,u);return t.pop(),r.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),xt(e)===\"object\"&&e!==null){t.push(e),o={},r.push(o);var s=[],a;for(a in e)Object.prototype.hasOwnProperty.call(e,a)&&s.push(a);for(s.sort(),i=0;i<s.length;i+=1)a=s[i],o[a]=bt(e[a],t,r,n,a);t.pop(),r.pop()}else o=e;return o}var ze=new M;ze.tokenize=function(e){return e.slice()};ze.join=ze.removeEmpty=function(e){return e};function gr(e,t,r){return ze.diff(e,t,r)}function yr(e){let t=e.indexOf(\"\\r\");return t!==-1?e.charAt(t+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function xe(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function Ot(e,t){let r;switch(t){case`\n`:r=/\\n/gu;break;case\"\\r\":r=/\\r/gu;break;case`\\r\n`:r=/\\r\\n/gu;break;default:throw new Error(`Unexpected \"eol\" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function Ar(e){return ne(!1,e,/\\r\\n?/gu,`\n`)}var U=\"string\",H=\"array\",V=\"cursor\",T=\"indent\",k=\"align\",L=\"trim\",B=\"group\",N=\"fill\",w=\"if-break\",P=\"indent-if-break\",I=\"line-suffix\",R=\"line-suffix-boundary\",A=\"line\",O=\"label\",_=\"break-parent\",Ke=new Set([V,T,k,L,B,N,w,P,I,R,A,O,_]);function Lu(e){if(typeof e==\"string\")return U;if(Array.isArray(e))return H;if(!e)return;let{type:t}=e;if(Ke.has(t))return t}var z=Lu;var Pu=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function Iu(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(z(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=Pu([...Ke].map(u=>`'${u}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var St=class extends Error{name=\"InvalidDocError\";constructor(t){super(Iu(t)),this.doc=t}},Q=St;var vr={};function Ru(e,t,r,n){let u=[e];for(;u.length>0;){let i=u.pop();if(i===vr){r(u.pop());continue}r&&u.push(i,vr);let o=z(i);if(!o)throw new Q(i);if((t==null?void 0:t(i))!==!1)switch(o){case H:case N:{let s=o===H?i:i.parts;for(let a=s.length,D=a-1;D>=0;--D)u.push(s[D]);break}case w:u.push(i.flatContents,i.breakContents);break;case B:if(n&&i.expandedStates)for(let s=i.expandedStates.length,a=s-1;a>=0;--a)u.push(i.expandedStates[a]);else u.push(i.contents);break;case k:case T:case P:case O:case I:u.push(i.contents);break;case U:case V:case L:case R:case A:case _:break;default:throw new Q(i)}}}var be=Ru;var Br=()=>{},G=Br,Je=Br;function le(e){return G(e),{type:T,contents:e}}function De(e,t){return G(t),{type:k,contents:t,n:e}}function Tt(e,t={}){return G(e),Je(t.expandedStates,!0),{type:B,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function wr(e){return De(Number.NEGATIVE_INFINITY,e)}function _r(e){return De({type:\"root\"},e)}function xr(e){return De(-1,e)}function br(e,t){return Tt(e[0],{...t,expandedStates:e})}function Nr(e){return Je(e),{type:N,parts:e}}function Or(e,t=\"\",r={}){return G(e),t!==\"\"&&G(t),{type:w,breakContents:e,flatContents:t,groupId:r.groupId}}function Sr(e,t){return G(e),{type:P,contents:e,groupId:t.groupId,negate:t.negate}}function Ne(e){return G(e),{type:I,contents:e}}var Tr={type:R},Fe={type:_},kr={type:L},Oe={type:A,hard:!0},kt={type:A,hard:!0,literal:!0},qe={type:A},Lr={type:A,soft:!0},K=[Oe,Fe],Xe=[kt,Fe],Z={type:V};function Se(e,t){G(e),Je(t);let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function Qe(e,t,r){G(e);let n=e;if(t>0){for(let u=0;u<Math.floor(t/r);++u)n=le(n);n=De(t%r,n),n=De(Number.NEGATIVE_INFINITY,n)}return n}function Pr(e,t){return G(t),e?{type:O,label:e,contents:t}:t}function ee(e){var t;if(!e)return\"\";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...ee(n));else{let u=ee(n);u!==\"\"&&r.push(u)}return r}return e.type===w?{...e,breakContents:ee(e.breakContents),flatContents:ee(e.flatContents)}:e.type===B?{...e,contents:ee(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(ee)}:e.type===N?{type:\"fill\",parts:e.parts.map(ee)}:e.contents?{...e,contents:ee(e.contents)}:e}function Ir(e){let t=Object.create(null),r=new Set;return n(ee(e));function n(i,o,s){var a,D;if(typeof i==\"string\")return JSON.stringify(i);if(Array.isArray(i)){let l=i.map(n).filter(Boolean);return l.length===1?l[0]:`[${l.join(\", \")}]`}if(i.type===A){let l=((a=s==null?void 0:s[o+1])==null?void 0:a.type)===_;return i.literal?l?\"literalline\":\"literallineWithoutBreakParent\":i.hard?l?\"hardline\":\"hardlineWithoutBreakParent\":i.soft?\"softline\":\"line\"}if(i.type===_)return((D=s==null?void 0:s[o-1])==null?void 0:D.type)===A&&s[o-1].hard?void 0:\"breakParent\";if(i.type===L)return\"trim\";if(i.type===T)return\"indent(\"+n(i.contents)+\")\";if(i.type===k)return i.n===Number.NEGATIVE_INFINITY?\"dedentToRoot(\"+n(i.contents)+\")\":i.n<0?\"dedent(\"+n(i.contents)+\")\":i.n.type===\"root\"?\"markAsRoot(\"+n(i.contents)+\")\":\"align(\"+JSON.stringify(i.n)+\", \"+n(i.contents)+\")\";if(i.type===w)return\"ifBreak(\"+n(i.breakContents)+(i.flatContents?\", \"+n(i.flatContents):\"\")+(i.groupId?(i.flatContents?\"\":', \"\"')+`, { groupId: ${u(i.groupId)} }`:\"\")+\")\";if(i.type===P){let l=[];i.negate&&l.push(\"negate: true\"),i.groupId&&l.push(`groupId: ${u(i.groupId)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return`indentIfBreak(${n(i.contents)}${p})`}if(i.type===B){let l=[];i.break&&i.break!==\"propagated\"&&l.push(\"shouldBreak: true\"),i.id&&l.push(`id: ${u(i.id)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return i.expandedStates?`conditionalGroup([${i.expandedStates.map(f=>n(f)).join(\",\")}]${p})`:`group(${n(i.contents)}${p})`}if(i.type===N)return`fill([${i.parts.map(l=>n(l)).join(\", \")}])`;if(i.type===I)return\"lineSuffix(\"+n(i.contents)+\")\";if(i.type===R)return\"lineSuffixBoundary\";if(i.type===O)return`label(${JSON.stringify(i.label)}, ${n(i.contents)})`;throw new Error(\"Unknown doc type \"+i.type)}function u(i){if(typeof i!=\"symbol\")return JSON.stringify(String(i));if(i in t)return t[i];let o=i.description||\"symbol\";for(let s=0;;s++){let a=o+(s>0?` #${s}`:\"\");if(!r.has(a))return r.add(a),t[i]=`Symbol.for(${JSON.stringify(a)})`}}}var Yu=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},y=Yu;var Rr=()=>/[#*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\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\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-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\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\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Yr(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function jr(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var Hr=e=>!(Yr(e)||jr(e));var ju=/[^\\x20-\\x7F]/u;function Hu(e){if(!e)return 0;if(!ju.test(e))return e.length;e=e.replace(Rr(),\" \");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=Hr(n)?1:2)}return t}var Te=Hu;function Le(e,t){if(typeof e==\"string\")return t(e);let r=new Map;return n(e);function n(i){if(r.has(i))return r.get(i);let o=u(i);return r.set(i,o),o}function u(i){switch(z(i)){case H:return t(i.map(n));case N:return t({...i,parts:i.parts.map(n)});case w:return t({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case B:{let{expandedStates:o,contents:s}=i;return o?(o=o.map(n),s=o[0]):s=n(s),t({...i,contents:s,expandedStates:o})}case k:case T:case P:case O:case I:return t({...i,contents:n(i.contents)});case U:case V:case L:case R:case A:case _:return t(i);default:throw new Q(i)}}}function Ze(e,t,r){let n=r,u=!1;function i(o){if(u)return!1;let s=t(o);s!==void 0&&(u=!0,n=s)}return be(e,i),n}function Wu(e){if(e.type===B&&e.break||e.type===A&&e.hard||e.type===_)return!0}function Mr(e){return Ze(e,Wu,!1)}function Wr(e){if(e.length>0){let t=y(!1,e,-1);!t.expandedStates&&!t.break&&(t.break=\"propagated\")}return null}function Ur(e){let t=new Set,r=[];function n(i){if(i.type===_&&Wr(r),i.type===B){if(r.push(i),t.has(i))return!1;t.add(i)}}function u(i){i.type===B&&r.pop().break&&Wr(r)}be(e,n,u,!0)}function $u(e){return e.type===A&&!e.hard?e.soft?\"\":\" \":e.type===w?e.flatContents:e}function Vr(e){return Le(e,$u)}function $r(e){for(e=[...e];e.length>=2&&y(!1,e,-2).type===A&&y(!1,e,-1).type===_;)e.length-=2;if(e.length>0){let t=ke(y(!1,e,-1));e[e.length-1]=t}return e}function ke(e){switch(z(e)){case T:case P:case B:case I:case O:{let t=ke(e.contents);return{...e,contents:t}}case w:return{...e,breakContents:ke(e.breakContents),flatContents:ke(e.flatContents)};case N:return{...e,parts:$r(e.parts)};case H:return $r(e);case U:return e.replace(/[\\n\\r]*$/u,\"\");case k:case V:case L:case R:case A:case _:break;default:throw new Q(e)}return e}function et(e){return ke(Uu(e))}function Mu(e){switch(z(e)){case N:if(e.parts.every(t=>t===\"\"))return\"\";break;case B:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return\"\";if(e.contents.type===B&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case k:case T:case P:case I:if(!e.contents)return\"\";break;case w:if(!e.flatContents&&!e.breakContents)return\"\";break;case H:{let t=[];for(let r of e){if(!r)continue;let[n,...u]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof y(!1,t,-1)==\"string\"?t[t.length-1]+=n:t.push(n),t.push(...u)}return t.length===0?\"\":t.length===1?t[0]:t}case U:case V:case L:case R:case A:case O:case _:break;default:throw new Q(e)}return e}function Uu(e){return Le(e,t=>Mu(t))}function zr(e,t=Xe){return Le(e,r=>typeof r==\"string\"?Se(t,r.split(`\n`)):r)}function Vu(e){if(e.type===A)return!0}function Gr(e){return Ze(e,Vu,!1)}function me(e,t){return e.type===O?{...e,contents:t(e.contents)}:t(e)}var Y=Symbol(\"MODE_BREAK\"),J=Symbol(\"MODE_FLAT\"),he=Symbol(\"cursor\"),Lt=Symbol(\"DOC_FILL_PRINTED_LENGTH\");function Kr(){return{value:\"\",length:0,queue:[]}}function zu(e,t){return Pt(e,{type:\"indent\"},t)}function Gu(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Kr():t<0?Pt(e,{type:\"dedent\"},r):t?t.type===\"root\"?{...e,root:e}:Pt(e,{type:typeof t==\"string\"?\"stringAlign\":\"numberAlign\",n:t},r):e}function Pt(e,t,r){let n=t.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,t],u=\"\",i=0,o=0,s=0;for(let c of n)switch(c.type){case\"indent\":l(),r.useTabs?a(1):D(r.tabWidth);break;case\"stringAlign\":l(),u+=c.n,i+=c.n.length;break;case\"numberAlign\":o+=1,s+=c.n;break;default:throw new Error(`Unexpected type '${c.type}'`)}return f(),{...e,value:u,length:i,queue:n};function a(c){u+=\"\t\".repeat(c),i+=r.tabWidth*c}function D(c){u+=\" \".repeat(c),i+=c}function l(){r.useTabs?p():f()}function p(){o>0&&a(o),d()}function f(){s>0&&D(s),d()}function d(){o=0,s=0}}function It(e){let t=0,r=0,n=e.length;e:for(;n--;){let u=e[n];if(u===he){r++;continue}for(let i=u.length-1;i>=0;i--){let o=u[i];if(o===\" \"||o===\"\t\")t++;else{e[n]=u.slice(0,i+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(he);return t}function tt(e,t,r,n,u,i){if(r===Number.POSITIVE_INFINITY)return!0;let o=t.length,s=[e],a=[];for(;r>=0;){if(s.length===0){if(o===0)return!0;s.push(t[--o]);continue}let{mode:D,doc:l}=s.pop(),p=z(l);switch(p){case U:a.push(l),r-=Te(l);break;case H:case N:{let f=p===H?l:l.parts,d=l[Lt]??0;for(let c=f.length-1;c>=d;c--)s.push({mode:D,doc:f[c]});break}case T:case k:case P:case O:s.push({mode:D,doc:l.contents});break;case L:r+=It(a);break;case B:{if(i&&l.break)return!1;let f=l.break?Y:D,d=l.expandedStates&&f===Y?y(!1,l.expandedStates,-1):l.contents;s.push({mode:f,doc:d});break}case w:{let d=(l.groupId?u[l.groupId]||J:D)===Y?l.breakContents:l.flatContents;d&&s.push({mode:D,doc:d});break}case A:if(D===Y||l.hard)return!0;l.soft||(a.push(\" \"),r--);break;case I:n=!0;break;case R:if(n)return!1;break}}return!1}function Ee(e,t){let r={},n=t.printWidth,u=xe(t.endOfLine),i=0,o=[{ind:Kr(),mode:Y,doc:e}],s=[],a=!1,D=[],l=0;for(Ur(e);o.length>0;){let{ind:f,mode:d,doc:c}=o.pop();switch(z(c)){case U:{let F=u!==`\n`?ne(!1,c,`\n`,u):c;s.push(F),o.length>0&&(i+=Te(F));break}case H:for(let F=c.length-1;F>=0;F--)o.push({ind:f,mode:d,doc:c[F]});break;case V:if(l>=2)throw new Error(\"There are too many 'cursor' in doc.\");s.push(he),l++;break;case T:o.push({ind:zu(f,t),mode:d,doc:c.contents});break;case k:o.push({ind:Gu(f,c.n,t),mode:d,doc:c.contents});break;case L:i-=It(s);break;case B:switch(d){case J:if(!a){o.push({ind:f,mode:c.break?Y:J,doc:c.contents});break}case Y:{a=!1;let F={ind:f,mode:J,doc:c.contents},m=n-i,h=D.length>0;if(!c.break&&tt(F,o,m,h,r))o.push(F);else if(c.expandedStates){let C=y(!1,c.expandedStates,-1);if(c.break){o.push({ind:f,mode:Y,doc:C});break}else for(let v=1;v<c.expandedStates.length+1;v++)if(v>=c.expandedStates.length){o.push({ind:f,mode:Y,doc:C});break}else{let E=c.expandedStates[v],g={ind:f,mode:J,doc:E};if(tt(g,o,m,h,r)){o.push(g);break}}}else o.push({ind:f,mode:Y,doc:c.contents});break}}c.id&&(r[c.id]=y(!1,o,-1).mode);break;case N:{let F=n-i,m=c[Lt]??0,{parts:h}=c,C=h.length-m;if(C===0)break;let v=h[m+0],E=h[m+1],g={ind:f,mode:J,doc:v},j={ind:f,mode:Y,doc:v},b=tt(g,[],F,D.length>0,r,!0);if(C===1){b?o.push(g):o.push(j);break}let X={ind:f,mode:J,doc:E},ae={ind:f,mode:Y,doc:E};if(C===2){b?o.push(X,g):o.push(ae,j);break}let $e=h[m+2],At={ind:f,mode:d,doc:{...c,[Lt]:m+2}};tt({ind:f,mode:J,doc:[v,E,$e]},[],F,D.length>0,r,!0)?o.push(At,X,g):b?o.push(At,ae,g):o.push(At,ae,j);break}case w:case P:{let F=c.groupId?r[c.groupId]:d;if(F===Y){let m=c.type===w?c.breakContents:c.negate?c.contents:le(c.contents);m&&o.push({ind:f,mode:d,doc:m})}if(F===J){let m=c.type===w?c.flatContents:c.negate?le(c.contents):c.contents;m&&o.push({ind:f,mode:d,doc:m})}break}case I:D.push({ind:f,mode:d,doc:c.contents});break;case R:D.length>0&&o.push({ind:f,mode:d,doc:Oe});break;case A:switch(d){case J:if(c.hard)a=!0;else{c.soft||(s.push(\" \"),i+=1);break}case Y:if(D.length>0){o.push({ind:f,mode:d,doc:c},...D.reverse()),D.length=0;break}c.literal?f.root?(s.push(u,f.root.value),i=f.root.length):(s.push(u),i=0):(i-=It(s),s.push(u+f.value),i=f.length);break}break;case O:o.push({ind:f,mode:d,doc:c.contents});break;case _:break;default:throw new Q(c)}o.length===0&&D.length>0&&(o.push(...D.reverse()),D.length=0)}let p=s.indexOf(he);if(p!==-1){let f=s.indexOf(he,p+1);if(f===-1)return{formatted:s.filter(m=>m!==he).join(\"\")};let d=s.slice(0,p).join(\"\"),c=s.slice(p+1,f).join(\"\"),F=s.slice(f+1).join(\"\");return{formatted:d+c+F,cursorNodeStart:d.length,cursorNodeText:c}}return{formatted:s.join(\"\")}}function Ku(e,t,r=0){let n=0;for(let u=r;u<e.length;++u)e[u]===\"\t\"?n=n+t-n%t:n++;return n}var Ce=Ku;var te,Yt,rt,Rt=class{constructor(t){pr(this,te);this.stack=[t]}get key(){let{stack:t,siblings:r}=this;return y(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=y(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return[...pe(this,te,rt).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?y(!1,t,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(t=0){let r=pe(this,te,Yt).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{return t(this)}finally{n.length=u}}callParent(t,r=0){let n=pe(this,te,Yt).call(this,r+1),u=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...u)}}each(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{for(let o=0;o<i.length;++o)n.push(o,i[o]),t(this,o,i),n.length-=2}finally{n.length=u}}map(t,...r){let n=[];return this.each((u,i,o)=>{n[i]=t(u,i,o)},...r),n}match(...t){let r=this.stack.length-1,n=null,u=this.stack[r--];for(let i of t){if(u===void 0)return!1;let o=null;if(typeof n==\"number\"&&(o=n,n=this.stack[r--],u=this.stack[r--]),i&&!i(u,n,o))return!1;n=this.stack[r--],u=this.stack[r--]}return!0}findAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return r}hasAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return!0;return!1}};te=new WeakSet,Yt=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return-1},rt=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n)}};var Jr=Rt;var qr=new Proxy(()=>{},{get:()=>qr}),Pe=qr;function Ju(e){return e!==null&&typeof e==\"object\"}var Xr=Ju;function*ge(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,u=i=>Xr(i)&&n(i);for(let i of r(e)){let o=e[i];if(Array.isArray(o))for(let s of o)u(s)&&(yield s);else u(o)&&(yield o)}}function*Qr(e,t){let r=[e];for(let n=0;n<r.length;n++){let u=r[n];for(let i of ge(u,t))yield i,r.push(i)}}function Zr(e,t){return ge(e,t).next().done}function ye(e){return(t,r,n)=>{let u=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:i}=t,o=r;for(;o>=0&&o<i;){let s=t.charAt(o);if(e instanceof RegExp){if(!e.test(s))return o}else if(!e.includes(s))return o;u?o--:o++}return o===-1||o===i?o:!1}}var en=ye(/\\s/u),S=ye(\" \t\"),nt=ye(\",; \t\"),ut=ye(/[^\\n\\r]/u);function qu(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return!1;let u=e.charAt(t);if(n){if(e.charAt(t-1)===\"\\r\"&&u===`\n`)return t-2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t-1}else{if(u===\"\\r\"&&e.charAt(t+1)===`\n`)return t+2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t+1}return t}var W=qu;function Xu(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),u=W(e,n,r);return n!==u}var $=Xu;function Qu(e){return Array.isArray(e)&&e.length>0}var jt=Qu;var tn=new Set([\"tokens\",\"comments\",\"parent\",\"enclosingNode\",\"precedingNode\",\"followingNode\"]),Zu=e=>Object.keys(e).filter(t=>!tn.has(t));function ei(e){return e?t=>e(t,tn):Zu}var q=ei;function ti(e){let t=e.type||e.kind||\"(unknown type)\",r=String(e.name||e.id&&(typeof e.id==\"object\"?e.id.name:e.id)||e.key&&(typeof e.key==\"object\"?e.key.name:e.key)||e.value&&(typeof e.value==\"object\"?\"\":String(e.value))||e.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),t+(r?\" \"+r:\"\")}function Ht(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=ti(e)}function ue(e,t){t.leading=!0,t.trailing=!1,Ht(e,t)}function re(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),Ht(e,t)}function ie(e,t){t.leading=!1,t.trailing=!0,Ht(e,t)}var Wt=new WeakMap;function it(e,t){if(Wt.has(e))return Wt.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:u},locStart:i,locEnd:o}=t;if(!n)return[];let s=((r==null?void 0:r(e,t))??[...ge(e,{getVisitorKeys:q(u)})]).flatMap(a=>n(a)?[a]:it(a,t));return s.sort((a,D)=>i(a)-i(D)||o(a)-o(D)),Wt.set(e,s),s}function nn(e,t,r,n){let{locStart:u,locEnd:i}=r,o=u(t),s=i(t),a=it(e,r),D,l,p=0,f=a.length;for(;p<f;){let d=p+f>>1,c=a[d],F=u(c),m=i(c);if(F<=o&&s<=m)return nn(c,t,r,c);if(m<=o){D=c,p=d+1;continue}if(s<=F){l=c,f=d;continue}throw new Error(\"Comment location overlaps with node location\")}if((n==null?void 0:n.type)===\"TemplateLiteral\"){let{quasis:d}=n,c=Mt(d,t,r);D&&Mt(d,D,r)!==c&&(D=null),l&&Mt(d,l,r)!==c&&(l=null)}return{enclosingNode:n,precedingNode:D,followingNode:l}}var $t=()=>!1;function un(e,t){let{comments:r}=e;if(delete e.comments,!jt(r)||!t.printer.canAttachComment)return;let n=[],{locStart:u,locEnd:i,printer:{experimentalFeatures:{avoidAstMutation:o=!1}={},handleComments:s={}},originalText:a}=t,{ownLine:D=$t,endOfLine:l=$t,remaining:p=$t}=s,f=r.map((d,c)=>({...nn(e,d,t),comment:d,text:a,options:t,ast:e,isLastComment:r.length-1===c}));for(let[d,c]of f.entries()){let{comment:F,precedingNode:m,enclosingNode:h,followingNode:C,text:v,options:E,ast:g,isLastComment:j}=c;if(E.parser===\"json\"||E.parser===\"json5\"||E.parser===\"jsonc\"||E.parser===\"__js_expression\"||E.parser===\"__ts_expression\"||E.parser===\"__vue_expression\"||E.parser===\"__vue_ts_expression\"){if(u(F)-u(g)<=0){ue(g,F);continue}if(i(F)-i(g)>=0){ie(g,F);continue}}let b;if(o?b=[c]:(F.enclosingNode=h,F.precedingNode=m,F.followingNode=C,b=[F,v,E,g,j]),ri(v,E,f,d))F.placement=\"ownLine\",D(...b)||(C?ue(C,F):m?ie(m,F):h?re(h,F):re(g,F));else if(ni(v,E,f,d))F.placement=\"endOfLine\",l(...b)||(m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F));else if(F.placement=\"remaining\",!p(...b))if(m&&C){let X=n.length;X>0&&n[X-1].followingNode!==C&&rn(n,E),n.push(c)}else m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F)}if(rn(n,t),!o)for(let d of r)delete d.precedingNode,delete d.enclosingNode,delete d.followingNode}var on=e=>!/[\\S\\n\\u2028\\u2029]/u.test(e);function ri(e,t,r,n){let{comment:u,precedingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=o(u);if(i)for(let D=n-1;D>=0;D--){let{comment:l,precedingNode:p}=r[D];if(p!==i||!on(e.slice(s(l),a)))break;a=o(l)}return $(e,a,{backwards:!0})}function ni(e,t,r,n){let{comment:u,followingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=s(u);if(i)for(let D=n+1;D<r.length;D++){let{comment:l,followingNode:p}=r[D];if(p!==i||!on(e.slice(a,o(l))))break;a=s(l)}return $(e,a)}function rn(e,t){var s,a;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:u}=e[0],i=t.locStart(u),o;for(o=r;o>0;--o){let{comment:D,precedingNode:l,followingNode:p}=e[o-1];Pe.strictEqual(l,n),Pe.strictEqual(p,u);let f=t.originalText.slice(t.locEnd(D),i);if(((a=(s=t.printer).isGap)==null?void 0:a.call(s,f,t))??/^[\\s(]*$/u.test(f))i=t.locStart(D);else break}for(let[D,{comment:l}]of e.entries())D<o?ie(n,l):ue(u,l);for(let D of[n,u])D.comments&&D.comments.length>1&&D.comments.sort((l,p)=>t.locStart(l)-t.locStart(p));e.length=0}function Mt(e,t,r){let n=r.locStart(t)-1;for(let u=1;u<e.length;++u)if(n<r.locStart(e[u]))return u-1;return 0}function ui(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=W(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=W(e,r,{backwards:!0});return r!==n}var Ie=ui;function sn(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function ii(e,t){var l;let r=e.node,n=[sn(e,t)],{printer:u,originalText:i,locStart:o,locEnd:s}=t;if((l=u.isBlockComment)==null?void 0:l.call(u,r)){let p=$(i,s(r))?$(i,o(r),{backwards:!0})?K:qe:\" \";n.push(p)}else n.push(K);let D=W(i,S(i,s(r)));return D!==!1&&$(i,D)&&n.push(K),n}function oi(e,t,r){var D;let n=e.node,u=sn(e,t),{printer:i,originalText:o,locStart:s}=t,a=(D=i.isBlockComment)==null?void 0:D.call(i,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||$(o,s(n),{backwards:!0})){let l=Ie(o,s(n));return{doc:Ne([K,l?K:\"\",u]),isBlock:a,hasLineSuffix:!0}}return!a||r!=null&&r.hasLineSuffix?{doc:[Ne([\" \",u]),Fe],isBlock:a,hasLineSuffix:!0}:{doc:[\" \",u],isBlock:a,hasLineSuffix:!1}}function si(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(a=>!n.has(a)).length===0)return{leading:\"\",trailing:\"\"};let i=[],o=[],s;return e.each(()=>{let a=e.node;if(n!=null&&n.has(a))return;let{leading:D,trailing:l}=a;D?i.push(ii(e,t)):l&&(s=oi(e,t,s),o.push(s.doc))},\"comments\"),{leading:i,trailing:o}}function an(e,t,r){let{leading:n,trailing:u}=si(e,r);return!n&&!u?t:me(t,i=>[n,i,u])}function Dn(e){let{[Symbol.for(\"comments\")]:t,[Symbol.for(\"printedComments\")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment \"'+n.value.trim()+'\" was not printed. Please report this error!');delete n.printed}}function ai(e){return()=>{}}var ln=ai;var Re=class extends Error{name=\"ConfigError\"},Ye=class extends Error{name=\"UndefinedParserError\"};var cn={cursorOffset:{category:\"Special\",type:\"int\",default:-1,range:{start:-1,end:1/0,step:1},description:\"Print (to stderr) where a cursor at the given position would move to after formatting.\",cliCategory:\"Editor\"},endOfLine:{category:\"Global\",type:\"choice\",default:\"lf\",description:\"Which end of line characters to apply.\",choices:[{value:\"lf\",description:\"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"},{value:\"crlf\",description:\"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"},{value:\"cr\",description:\"Carriage Return character only (\\\\r), used very rarely\"},{value:\"auto\",description:`Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:\"Special\",type:\"path\",description:\"Specify the input filepath. This will be used to do parser inference.\",cliName:\"stdin-filepath\",cliCategory:\"Other\",cliDescription:\"Path to the file to pretend that stdin comes from.\"},insertPragma:{category:\"Special\",type:\"boolean\",default:!1,description:\"Insert @format pragma into file's first docblock comment.\",cliCategory:\"Other\"},parser:{category:\"Global\",type:\"choice\",default:void 0,description:\"Which parser to use.\",exception:e=>typeof e==\"string\"||typeof e==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",description:\"JavaScript\"},{value:\"babel-flow\",description:\"Flow\"},{value:\"babel-ts\",description:\"TypeScript\"},{value:\"typescript\",description:\"TypeScript\"},{value:\"acorn\",description:\"JavaScript\"},{value:\"espree\",description:\"JavaScript\"},{value:\"meriyah\",description:\"JavaScript\"},{value:\"css\",description:\"CSS\"},{value:\"less\",description:\"Less\"},{value:\"scss\",description:\"SCSS\"},{value:\"json\",description:\"JSON\"},{value:\"json5\",description:\"JSON5\"},{value:\"jsonc\",description:\"JSON with Comments\"},{value:\"json-stringify\",description:\"JSON.stringify\"},{value:\"graphql\",description:\"GraphQL\"},{value:\"markdown\",description:\"Markdown\"},{value:\"mdx\",description:\"MDX\"},{value:\"vue\",description:\"Vue\"},{value:\"yaml\",description:\"YAML\"},{value:\"glimmer\",description:\"Ember / Handlebars\"},{value:\"html\",description:\"HTML\"},{value:\"angular\",description:\"Angular\"},{value:\"lwc\",description:\"Lightning Web Components\"}]},plugins:{type:\"path\",array:!0,default:[{value:[]}],category:\"Global\",description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:e=>typeof e==\"string\"||typeof e==\"object\",cliName:\"plugin\",cliCategory:\"Config\"},printWidth:{category:\"Global\",type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:1/0,step:1}},rangeEnd:{category:\"Special\",type:\"int\",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.`,cliCategory:\"Editor\"},rangeStart:{category:\"Special\",type:\"int\",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.`,cliCategory:\"Editor\"},requirePragma:{category:\"Special\",type:\"boolean\",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.`,cliCategory:\"Other\"},tabWidth:{type:\"int\",category:\"Global\",default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:1/0,step:1}},useTabs:{category:\"Global\",type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{category:\"Global\",type:\"choice\",default:\"auto\",description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};function ot({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(u=>u.languages??[]),n=[];for(let u of li(Object.assign({},...e.map(({options:i})=>i),cn)))!t&&u.deprecated||(Array.isArray(u.choices)&&(t||(u.choices=u.choices.filter(i=>!i.deprecated)),u.name===\"parser\"&&(u.choices=[...u.choices,...Di(u.choices,r,e)])),u.pluginDefaults=Object.fromEntries(e.filter(i=>{var o;return((o=i.defaultOptions)==null?void 0:o[u.name])!==void 0}).map(i=>[i.name,i.defaultOptions[u.name]])),n.push(u));return{languages:r,options:n}}function*Di(e,t,r){let n=new Set(e.map(u=>u.value));for(let u of t)if(u.parsers){for(let i of u.parsers)if(!n.has(i)){n.add(i);let o=r.find(a=>a.parsers&&Object.prototype.hasOwnProperty.call(a.parsers,i)),s=u.name;o!=null&&o.name&&(s+=` (plugin: ${o.name})`),yield{value:i,description:s}}}}function li(e){let t=[];for(let[r,n]of Object.entries(e)){let u={name:r,...n};Array.isArray(u.default)&&(u.default=y(!1,u.default,-1).value),t.push(u)}return t}var ci=e=>String(e).split(/[/\\\\]/u).pop();function fn(e,t){if(!t)return;let r=ci(t).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(u=>u.toLowerCase()===r))??e.find(({extensions:n})=>n==null?void 0:n.some(u=>r.endsWith(u)))}function fi(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function di(e,t){let r=e.plugins.flatMap(u=>u.languages??[]),n=fi(r,t.language)??fn(r,t.physicalFile)??fn(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var dn=di;var oe={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!=\"object\")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>oe.value(r)).join(\", \")}]`;let t=Object.keys(e);return t.length===0?\"{}\":`{ ${t.map(r=>`${oe.key(r)}: ${oe.value(e[r])}`).join(\", \")} }`},pair:({key:e,value:t})=>oe.value({[e]:t})};var Ut=Me(st(),1),mn=(e,t,{descriptor:r})=>{let n=[`${Ut.default.yellow(typeof e==\"string\"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${Ut.default.blue(typeof t==\"string\"?r.key(t):r.pair(t))}`),n.join(\"; \")+\".\"};var ce=Me(st(),1);var at=Symbol.for(\"vnopts.VALUE_NOT_EXIST\"),Ae=Symbol.for(\"vnopts.VALUE_UNCHANGED\");var hn=\" \".repeat(2),Cn=(e,t,r)=>{let{text:n,list:u}=r.normalizeExpectedResult(r.schemas[e].expected(r)),i=[];return n&&i.push(En(e,t,n,r.descriptor)),u&&i.push([En(e,t,u.title,r.descriptor)].concat(u.values.map(o=>gn(o,r.loggerPrintWidth))).join(`\n`)),yn(i,r.loggerPrintWidth)};function En(e,t,r,n){return[`Invalid ${ce.default.red(n.key(e))} value.`,`Expected ${ce.default.blue(r)},`,`but received ${t===at?ce.default.gray(\"nothing\"):ce.default.red(n.value(t))}.`].join(\" \")}function gn({text:e,list:t},r){let n=[];return e&&n.push(`- ${ce.default.blue(e)}`),t&&n.push([`- ${ce.default.blue(t.title)}:`].concat(t.values.map(u=>gn(u,r-hn.length).replace(/^|\\n/g,`$&${hn}`))).join(`\n`)),yn(n,r)}function yn(e,t){if(e.length===1)return e[0];let[r,n]=e,[u,i]=e.map(o=>o.split(`\n`,1)[0].length);return u>t&&u>i?n:r}var Gt=Me(st(),1);var Vt=[],An=[];function zt(e,t){if(e===t)return 0;let r=e;e.length>t.length&&(e=t,t=r);let n=e.length,u=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-u);)n--,u--;let i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,u-=i,n===0)return u;let o,s,a,D,l=0,p=0;for(;l<n;)An[l]=e.charCodeAt(i+l),Vt[l]=++l;for(;p<u;)for(o=t.charCodeAt(i+p),a=p++,s=p,l=0;l<n;l++)D=o===An[l]?a:a+1,a=Vt[l],s=Vt[l]=a>s?D>s?s+1:D:D>a?a+1:D;return s}var Dt=(e,t,{descriptor:r,logger:n,schemas:u})=>{let i=[`Ignored unknown option ${Gt.default.yellow(r.pair({key:e,value:t}))}.`],o=Object.keys(u).sort().find(s=>zt(e,s)<3);o&&i.push(`Did you mean ${Gt.default.blue(r.key(o))}?`),n.warn(i.join(\" \"))};var pi=[\"default\",\"expected\",\"validate\",\"deprecated\",\"forward\",\"redirect\",\"overlap\",\"preprocess\",\"postprocess\"];function Fi(e,t){let r=new e(t),n=Object.create(r);for(let u of pi)u in t&&(n[u]=mi(t[u],r,x.prototype[u].length));return n}var x=class{static create(t){return Fi(this,t)}constructor(t){this.name=t.name}default(t){}expected(t){return\"nothing\"}validate(t,r){return!1}deprecated(t,r){return!1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return Ae}};function mi(e,t,r){return typeof e==\"function\"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}var lt=class extends x{constructor(t){super(t),this._sourceName=t.sourceName}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};var ct=class extends x{expected(){return\"anything\"}validate(){return!0}};var ft=class extends x{constructor({valueSchema:t,name:r=t.name,...n}){super({...n,name:r}),this._valueSchema=t}expected(t){let{text:r,list:n}=t.normalizeExpectedResult(this._valueSchema.expected(t));return{text:r&&`an array of ${r}`,list:n&&{title:\"an array of the following values\",values:[{list:n}]}}}validate(t,r){if(!Array.isArray(t))return!1;let n=[];for(let u of t){let i=r.normalizeValidateResult(this._valueSchema.validate(u,r),u);i!==!0&&n.push(i.value)}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let u of t){let i=r.normalizeDeprecatedResult(this._valueSchema.deprecated(u,r),u);i!==!1&&n.push(...i.map(({value:o})=>({value:[o]})))}return n}forward(t,r){let n=[];for(let u of t){let i=r.normalizeForwardResult(this._valueSchema.forward(u,r),u);n.push(...i.map(vn))}return n}redirect(t,r){let n=[],u=[];for(let i of t){let o=r.normalizeRedirectResult(this._valueSchema.redirect(i,r),i);\"remain\"in o&&n.push(o.remain),u.push(...o.redirect.map(vn))}return n.length===0?{redirect:u}:{redirect:u,remain:n}}overlap(t,r){return t.concat(r)}};function vn({from:e,to:t}){return{from:[e],to:t}}var dt=class extends x{expected(){return\"true or false\"}validate(t){return typeof t==\"boolean\"}};function wn(e,t){let r=Object.create(null);for(let n of e){let u=n[t];if(r[u])throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r[u]=n}return r}function _n(e,t){let r=new Map;for(let n of e){let u=n[t];if(r.has(u))throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r.set(u,n)}return r}function xn(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}function bn(e,t){let r=[],n=[];for(let u of e)t(u)?r.push(u):n.push(u);return[r,n]}function Nn(e){return e===Math.floor(e)}function On(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,u=[\"undefined\",\"object\",\"boolean\",\"number\",\"string\"];return r!==n?u.indexOf(r)-u.indexOf(n):r!==\"string\"?Number(e)-Number(t):e.localeCompare(t)}function Sn(e){return(...t)=>{let r=e(...t);return typeof r==\"string\"?new Error(r):r}}function Kt(e){return e===void 0?{}:e}function Jt(e){if(typeof e==\"string\")return{text:e};let{text:t,list:r}=e;return hi((t||r)!==void 0,\"Unexpected `expected` result, there should be at least one field.\"),r?{text:t,list:{title:r.title,values:r.values.map(Jt)}}:{text:t}}function qt(e,t){return e===!0?!0:e===!1?{value:t}:e}function Xt(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:\"value\"in e?[e]:e.length===0?!1:e}function Bn(e,t){return typeof e==\"string\"||\"key\"in e?{from:t,to:e}:\"from\"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}function pt(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>Bn(r,t)):[Bn(e,t)]}function Qt(e,t){let r=pt(typeof e==\"object\"&&\"redirect\"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e==\"object\"&&\"remain\"in e?{remain:e.remain,redirect:r}:{redirect:r}}function hi(e,t){if(!e)throw new Error(t)}var Ft=class extends x{constructor(t){super(t),this._choices=_n(t.choices.map(r=>r&&typeof r==\"object\"?r:{value:r}),\"value\")}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(o=>this._choices.get(o)).filter(({hidden:o})=>!o).map(o=>o.value).sort(On).map(t.value),n=r.slice(0,-2),u=r.slice(-2);return{text:n.concat(u.join(\" or \")).join(\", \"),list:{title:\"one of the following values\",values:r}}}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};var mt=class extends x{expected(){return\"a number\"}validate(t,r){return typeof t==\"number\"}};var ht=class extends mt{expected(){return\"an integer\"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&Nn(t)}};var je=class extends x{expected(){return\"a string\"}validate(t){return typeof t==\"string\"}};var Tn=oe,kn=Dt,Ln=Cn,Pn=mn;var Et=class{constructor(t,r){let{logger:n=console,loggerPrintWidth:u=80,descriptor:i=Tn,unknown:o=kn,invalid:s=Ln,deprecated:a=Pn,missing:D=()=>!1,required:l=()=>!1,preprocess:p=d=>d,postprocess:f=()=>Ae}=r||{};this._utils={descriptor:i,logger:n||{warn:()=>{}},loggerPrintWidth:u,schemas:wn(t,\"name\"),normalizeDefaultResult:Kt,normalizeExpectedResult:Jt,normalizeDeprecatedResult:Xt,normalizeForwardResult:pt,normalizeRedirectResult:Qt,normalizeValidateResult:qt},this._unknownHandler=o,this._invalidHandler=Sn(s),this._deprecatedHandler=a,this._identifyMissing=(d,c)=>!(d in c)||D(d,c),this._identifyRequired=l,this._preprocess=p,this._postprocess=f,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=xn()}normalize(t){let r={},u=[this._preprocess(t,this._utils)],i=()=>{for(;u.length!==0;){let o=u.shift(),s=this._applyNormalization(o,r);u.push(...s)}};i();for(let o of Object.keys(this._utils.schemas)){let s=this._utils.schemas[o];if(!(o in r)){let a=Kt(s.default(this._utils));\"value\"in a&&u.push({[o]:a.value})}}i();for(let o of Object.keys(this._utils.schemas)){if(!(o in r))continue;let s=this._utils.schemas[o],a=r[o],D=s.postprocess(a,this._utils);D!==Ae&&(this._applyValidation(D,o,s),r[o]=D)}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(t,r){let n=[],{knownKeys:u,unknownKeys:i}=this._partitionOptionKeys(t);for(let o of u){let s=this._utils.schemas[o],a=s.preprocess(t[o],this._utils);this._applyValidation(a,o,s);let D=({from:d,to:c})=>{n.push(typeof c==\"string\"?{[c]:d}:{[c.key]:c.value})},l=({value:d,redirectTo:c})=>{let F=Xt(s.deprecated(d,this._utils),a,!0);if(F!==!1)if(F===!0)this._hasDeprecationWarned(o)||this._utils.logger.warn(this._deprecatedHandler(o,c,this._utils));else for(let{value:m}of F){let h={key:o,value:m};if(!this._hasDeprecationWarned(h)){let C=typeof c==\"string\"?{key:c,value:m}:c;this._utils.logger.warn(this._deprecatedHandler(h,C,this._utils))}}};pt(s.forward(a,this._utils),a).forEach(D);let f=Qt(s.redirect(a,this._utils),a);if(f.redirect.forEach(D),\"remain\"in f){let d=f.remain;r[o]=o in r?s.overlap(r[o],d,this._utils):d,l({value:d})}for(let{from:d,to:c}of f.redirect)l({value:d,redirectTo:c})}for(let o of i){let s=t[o];this._applyUnknownHandler(o,s,r,(a,D)=>{n.push({[a]:D})})}return n}_applyRequiredCheck(t){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,t)&&this._identifyRequired(r))throw this._invalidHandler(r,at,this._utils)}_partitionOptionKeys(t){let[r,n]=bn(Object.keys(t).filter(u=>!this._identifyMissing(u,t)),u=>u in this._utils.schemas);return{knownKeys:r,unknownKeys:n}}_applyValidation(t,r,n){let u=qt(n.validate(t,this._utils),t);if(u!==!0)throw this._invalidHandler(r,u.value,this._utils)}_applyUnknownHandler(t,r,n,u){let i=this._unknownHandler(t,r,this._utils);if(i)for(let o of Object.keys(i)){if(this._identifyMissing(o,i))continue;let s=i[o];o in this._utils.schemas?u(o,s):n[o]=s}}_applyPostprocess(t){let r=this._postprocess(t,this._utils);if(r!==Ae){if(r.delete)for(let n of r.delete)delete t[n];if(r.override){let{knownKeys:n,unknownKeys:u}=this._partitionOptionKeys(r.override);for(let i of n){let o=r.override[i];this._applyValidation(o,i,this._utils.schemas[i]),t[i]=o}for(let i of u){let o=r.override[i];this._applyUnknownHandler(i,o,t,(s,a)=>{let D=this._utils.schemas[s];this._applyValidation(a,s,D),t[s]=a})}}}}};var Zt;function Ci(e,t,{logger:r=!1,isCLI:n=!1,passThrough:u=!1,FlagSchema:i,descriptor:o}={}){if(n){if(!i)throw new Error(\"'FlagSchema' option is required.\");if(!o)throw new Error(\"'descriptor' option is required.\")}else o=oe;let s=u?Array.isArray(u)?(f,d)=>u.includes(f)?{[f]:d}:void 0:(f,d)=>({[f]:d}):(f,d,c)=>{let{_:F,...m}=c.schemas;return Dt(f,d,{...c,schemas:m})},a=gi(t,{isCLI:n,FlagSchema:i}),D=new Et(a,{logger:r,unknown:s,descriptor:o}),l=r!==!1;l&&Zt&&(D._hasDeprecationWarned=Zt);let p=D.normalize(e);return l&&(Zt=D._hasDeprecationWarned),p}function gi(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(ct.create({name:\"_\"}));for(let u of e)n.push(yi(u,{isCLI:t,optionInfos:e,FlagSchema:r})),u.alias&&t&&n.push(lt.create({name:u.alias,sourceName:u.name}));return n}function yi(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:u}=e,i={name:u},o,s={};switch(e.type){case\"int\":o=ht,t&&(i.preprocess=Number);break;case\"string\":o=je;break;case\"choice\":o=Ft,i.choices=e.choices.map(a=>a!=null&&a.redirect?{...a,redirect:{to:{key:e.name,value:a.redirect}}}:a);break;case\"boolean\":o=dt;break;case\"flag\":o=n,i.flags=r.flatMap(a=>[a.alias,a.description&&a.name,a.oppositeDescription&&`no-${a.name}`].filter(Boolean));break;case\"path\":o=je;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?i.validate=(a,D,l)=>e.exception(a)||D.validate(a,l):i.validate=(a,D,l)=>a===void 0||D.validate(a,l),e.redirect&&(s.redirect=a=>a?{to:typeof e.redirect==\"string\"?e.redirect:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let a=i.preprocess||(D=>D);i.preprocess=(D,l,p)=>l.preprocess(a(Array.isArray(D)?y(!1,D,-1):D),p)}return e.array?ft.create({...t?{preprocess:a=>Array.isArray(a)?a:[a]}:{},...s,valueSchema:o.create(i)}):o.create({...i,...s})}var In=Ci;var Ai=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return u}}},er=Ai;function tr(e,t){if(!t)throw new Error(\"parserName is required.\");let r=er(!1,e,u=>u.parsers&&Object.prototype.hasOwnProperty.call(u.parsers,t));if(r)return r;let n=`Couldn't resolve parser \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Rn(e,t){if(!t)throw new Error(\"astFormat is required.\");let r=er(!1,e,u=>u.printers&&Object.prototype.hasOwnProperty.call(u.printers,t));if(r)return r;let n=`Couldn't find plugin for AST format \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Ct({plugins:e,parser:t}){let r=tr(e,t);return rr(r,t)}function rr(e,t){let r=e.parsers[t];return typeof r==\"function\"?r():r}function Yn(e,t){let r=e.printers[t];return typeof r==\"function\"?r():r}var jn={astFormat:\"estree\",printer:{},originalText:void 0,locStart:null,locEnd:null};async function vi(e,t={}){var p;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=dn(r,{physicalFile:r.filepath}),!r.parser)throw new Ye(`No parser could be inferred for file \"${r.filepath}\".`)}else throw new Ye(\"No parser and no file path given, couldn't infer a parser.\");let n=ot({plugins:e.plugins,showDeprecated:!0}).options,u={...jn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},i=tr(r.plugins,r.parser),o=await rr(i,r.parser);r.astFormat=o.astFormat,r.locEnd=o.locEnd,r.locStart=o.locStart;let s=(p=i.printers)!=null&&p[o.astFormat]?i:Rn(r.plugins,o.astFormat),a=await Yn(s,o.astFormat);r.printer=a;let D=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},l={...u,...D};for(let[f,d]of Object.entries(l))(r[f]===null||r[f]===void 0)&&(r[f]=d);return r.parser===\"json\"&&(r.trailingComma=\"none\"),In(r,n,{passThrough:Object.keys(jn),...t})}var se=vi;var $n=Me(Wn(),1);async function xi(e,t){let r=await Ct(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let u;try{u=await r.parse(n,t,t)}catch(i){bi(i,e)}return{text:n,ast:u}}function bi(e,t){let{loc:r}=e;if(r){let n=(0,$n.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`\n`+n,e.codeFrame=n,e}throw e}var fe=xi;async function Mn(e,t,r,n,u){let{embeddedLanguageFormatting:i,printer:{embed:o,hasPrettierIgnore:s=()=>!1,getVisitorKeys:a}}=r;if(!o||i!==\"auto\")return;if(o.length>2)throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\");let D=q(o.getVisitorKeys??a),l=[];d();let p=e.stack;for(let{print:c,node:F,pathStack:m}of l)try{e.stack=m;let h=await c(f,t,e,r);h&&u.set(F,h)}catch(h){if(globalThis.PRETTIER_DEBUG)throw h}e.stack=p;function f(c,F){return Ni(c,F,r,n)}function d(){let{node:c}=e;if(c===null||typeof c!=\"object\"||s(e))return;for(let m of D(c))Array.isArray(c[m])?e.each(d,m):e.call(d,m);let F=o(e,r);if(F){if(typeof F==\"function\"){l.push({print:F,node:c,pathStack:[...e.stack]});return}u.set(c,F)}}}async function Ni(e,t,r,n){let u=await se({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:i}=await fe(e,u),o=await n(i,u);return et(o)}function Oi(e,t){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:u,locEnd:i,[Symbol.for(\"printedComments\")]:o}=t,{node:s}=e,a=u(s),D=i(s);for(let l of n)u(l)>=a&&i(l)<=D&&o.add(l);return r.slice(a,D)}var Un=Oi;async function He(e,t){({ast:e}=await ur(e,t));let r=new Map,n=new Jr(e),u=ln(t),i=new Map;await Mn(n,s,t,He,i);let o=await Vn(n,t,s,void 0,i);if(Dn(t),t.nodeAfterCursor&&!t.nodeBeforeCursor)return[Z,o];if(t.nodeBeforeCursor&&!t.nodeAfterCursor)return[o,Z];return o;function s(D,l){return D===void 0||D===n?a(l):Array.isArray(D)?n.call(()=>a(l),...D):n.call(()=>a(l),D)}function a(D){u(n);let l=n.node;if(l==null)return\"\";let p=l&&typeof l==\"object\"&&D===void 0;if(p&&r.has(l))return r.get(l);let f=Vn(n,t,s,D,i);return p&&r.set(l,f),f}}function Vn(e,t,r,n,u){var a;let{node:i}=e,{printer:o}=t,s;switch((a=o.hasPrettierIgnore)!=null&&a.call(o,e)?s=Un(e,t):u.has(i)?s=u.get(i):s=o.print(e,t,r,n),i){case t.cursorNode:s=me(s,D=>[Z,D,Z]);break;case t.nodeBeforeCursor:s=me(s,D=>[D,Z]);break;case t.nodeAfterCursor:s=me(s,D=>[Z,D]);break}return o.printComment&&(!o.willPrintOwnComments||!o.willPrintOwnComments(e,t))&&(s=an(e,s,t)),s}async function ur(e,t){let r=e.comments??[];t[Symbol.for(\"comments\")]=r,t[Symbol.for(\"tokens\")]=e.tokens??[],t[Symbol.for(\"printedComments\")]=new Set,un(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}function Si(e,t){let{cursorOffset:r,locStart:n,locEnd:u}=t,i=q(t.printer.getVisitorKeys),o=d=>n(d)<=r&&u(d)>=r,s=e,a=[e];for(let d of Qr(e,{getVisitorKeys:i,filter:o}))a.push(d),s=d;if(Zr(s,{getVisitorKeys:i}))return{cursorNode:s};let D,l,p=-1,f=Number.POSITIVE_INFINITY;for(;a.length>0&&(D===void 0||l===void 0);){s=a.pop();let d=D!==void 0,c=l!==void 0;for(let F of ge(s,{getVisitorKeys:i})){if(!d){let m=u(F);m<=r&&m>p&&(D=F,p=m)}if(!c){let m=n(F);m>=r&&m<f&&(l=F,f=m)}}}return{nodeBeforeCursor:D,nodeAfterCursor:l}}var zn=Si;function Ti(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let u=q(n),i=r.ignoredProperties??new Set;return o(e);function o(s,a){if(!(s!==null&&typeof s==\"object\"))return s;if(Array.isArray(s))return s.map(f=>o(f,a)).filter(Boolean);let D={},l=new Set(u(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||i.has(f)||(l.has(f)?D[f]=o(s[f],s):D[f]=s[f]);let p=r(s,D,a);if(p!==null)return p??D}}var Gn=Ti;var ki=(e,t,r)=>{if(!(e&&t==null)){if(t.findLastIndex)return t.findLastIndex(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return n}return-1}},Kn=ki;var Li=({parser:e})=>e===\"json\"||e===\"json5\"||e===\"jsonc\"||e===\"json-stringify\";function Pi(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(u=>Xn.has(u.type)&&n.has(u))}function Jn(e){let t=Kn(!1,e,r=>r.type!==\"Program\"&&r.type!==\"File\");return t===-1?e:e.slice(0,t+1)}function Ii(e,t,{locStart:r,locEnd:n}){let u=e.node,i=t.node;if(u===i)return{startNode:u,endNode:i};let o=r(e.node);for(let a of Jn(t.parentNodes))if(r(a)>=o)i=a;else break;let s=n(t.node);for(let a of Jn(e.parentNodes)){if(n(a)<=s)u=a;else break;if(u===i)break}return{startNode:u,endNode:i}}function ir(e,t,r,n,u=[],i){let{locStart:o,locEnd:s}=r,a=o(e),D=s(e);if(!(t>D||t<a||i===\"rangeEnd\"&&t===a||i===\"rangeStart\"&&t===D)){for(let l of it(e,r)){let p=ir(l,t,r,n,[e,...u],i);if(p)return p}if(!n||n(e,u[0]))return{node:e,parentNodes:u}}}function Ri(e,t){return t!==\"DeclareExportDeclaration\"&&e!==\"TypeParameterDeclaration\"&&(e===\"Directive\"||e===\"TypeAlias\"||e===\"TSExportAssignment\"||e.startsWith(\"Declare\")||e.startsWith(\"TSDeclare\")||e.endsWith(\"Statement\")||e.endsWith(\"Declaration\"))}var Xn=new Set([\"JsonRoot\",\"ObjectExpression\",\"ArrayExpression\",\"StringLiteral\",\"NumericLiteral\",\"BooleanLiteral\",\"NullLiteral\",\"UnaryExpression\",\"TemplateLiteral\"]),Yi=new Set([\"OperationDefinition\",\"FragmentDefinition\",\"VariableDefinition\",\"TypeExtensionDefinition\",\"ObjectTypeDefinition\",\"FieldDefinition\",\"DirectiveDefinition\",\"EnumTypeDefinition\",\"EnumValueDefinition\",\"InputValueDefinition\",\"InputObjectTypeDefinition\",\"SchemaDefinition\",\"OperationTypeDefinition\",\"InterfaceTypeDefinition\",\"UnionTypeDefinition\",\"ScalarTypeDefinition\"]);function qn(e,t,r){if(!t)return!1;switch(e.parser){case\"flow\":case\"babel\":case\"babel-flow\":case\"babel-ts\":case\"typescript\":case\"acorn\":case\"espree\":case\"meriyah\":case\"__babel_estree\":return Ri(t.type,r==null?void 0:r.type);case\"json\":case\"json5\":case\"jsonc\":case\"json-stringify\":return Xn.has(t.type);case\"graphql\":return Yi.has(t.kind);case\"vue\":return t.tag!==\"root\"}return!1}function Qn(e,t,r){let{rangeStart:n,rangeEnd:u,locStart:i,locEnd:o}=t;Pe.ok(u>n);let s=e.slice(n,u).search(/\\S/u),a=s===-1;if(!a)for(n+=s;u>n&&!/\\S/u.test(e[u-1]);--u);let D=ir(r,n,t,(d,c)=>qn(t,d,c),[],\"rangeStart\"),l=a?D:ir(r,u,t,d=>qn(t,d),[],\"rangeEnd\");if(!D||!l)return{rangeStart:0,rangeEnd:0};let p,f;if(Li(t)){let d=Pi(D,l);p=d,f=d}else({startNode:p,endNode:f}=Ii(D,l,t));return{rangeStart:Math.min(i(p),i(f)),rangeEnd:Math.max(o(p),o(f))}}var ru=\"\\uFEFF\",Zn=Symbol(\"cursor\");async function nu(e,t,r=0){if(!e||e.trim().length===0)return{formatted:\"\",cursorOffset:-1,comments:[]};let{ast:n,text:u}=await fe(e,t);t.cursorOffset>=0&&(t={...t,...zn(n,t)});let i=await He(n,t,r);r>0&&(i=Qe([K,i],r,t.tabWidth));let o=Ee(i,t);if(r>0){let a=o.formatted.trim();o.cursorNodeStart!==void 0&&(o.cursorNodeStart-=o.formatted.indexOf(a),o.cursorNodeStart<0&&(o.cursorNodeStart=0,o.cursorNodeText=o.cursorNodeText.trimStart()),o.cursorNodeStart+o.cursorNodeText.length>a.length&&(o.cursorNodeText=o.cursorNodeText.trimEnd())),o.formatted=a+xe(t.endOfLine)}let s=t[Symbol.for(\"comments\")];if(t.cursorOffset>=0){let a,D,l,p;if((t.cursorNode||t.nodeBeforeCursor||t.nodeAfterCursor)&&o.cursorNodeText)if(l=o.cursorNodeStart,p=o.cursorNodeText,t.cursorNode)a=t.locStart(t.cursorNode),D=u.slice(a,t.locEnd(t.cursorNode));else{if(!t.nodeBeforeCursor&&!t.nodeAfterCursor)throw new Error(\"Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor\");a=t.nodeBeforeCursor?t.locEnd(t.nodeBeforeCursor):0;let h=t.nodeAfterCursor?t.locStart(t.nodeAfterCursor):u.length;D=u.slice(a,h)}else a=0,D=u,l=0,p=o.formatted;let f=t.cursorOffset-a;if(D===p)return{formatted:o.formatted,cursorOffset:l+f,comments:s};let d=D.split(\"\");d.splice(f,0,Zn);let c=p.split(\"\"),F=gr(d,c),m=l;for(let h of F)if(h.removed){if(h.value.includes(Zn))break}else m+=h.count;return{formatted:o.formatted,cursorOffset:m,comments:s}}return{formatted:o.formatted,cursorOffset:-1,comments:s}}async function ji(e,t){let{ast:r,text:n}=await fe(e,t),{rangeStart:u,rangeEnd:i}=Qn(n,t,r),o=n.slice(u,i),s=Math.min(u,n.lastIndexOf(`\n`,u)+1),a=n.slice(s,u).match(/^\\s*/u)[0],D=Ce(a,t.tabWidth),l=await nu(o,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>u&&t.cursorOffset<=i?t.cursorOffset-u:-1,endOfLine:\"lf\"},D),p=l.formatted.trimEnd(),{cursorOffset:f}=t;f>i?f+=p.length-o.length:l.cursorOffset>=0&&(f=l.cursorOffset+u);let d=n.slice(0,u)+p+n.slice(i);if(t.endOfLine!==\"lf\"){let c=xe(t.endOfLine);f>=0&&c===`\\r\n`&&(f+=Ot(d.slice(0,f),`\n`)),d=ne(!1,d,`\n`,c)}return{formatted:d,cursorOffset:f,comments:l.comments}}function or(e,t,r){return typeof t!=\"number\"||Number.isNaN(t)||t<0||t>e.length?r:t}function eu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u}=t;return r=or(e,r,-1),n=or(e,n,0),u=or(e,u,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:u}}function uu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i}=eu(e,t),o=e.charAt(0)===ru;if(o&&(e=e.slice(1),r--,n--,u--),i===\"auto\"&&(i=yr(e)),e.includes(\"\\r\")){let s=a=>Ot(e.slice(0,Math.max(a,0)),`\\r\n`);r-=s(r),n-=s(n),u-=s(u),e=Ar(e)}return{hasBOM:o,text:e,options:eu(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i})}}async function tu(e,t){let r=await Ct(t);return!r.hasPragma||r.hasPragma(e)}async function sr(e,t){let{hasBOM:r,text:n,options:u}=uu(e,await se(t));if(u.rangeStart>=u.rangeEnd&&n!==\"\"||u.requirePragma&&!await tu(n,u))return{formatted:e,cursorOffset:t.cursorOffset,comments:[]};let i;return u.rangeStart>0||u.rangeEnd<n.length?i=await ji(n,u):(!u.requirePragma&&u.insertPragma&&u.printer.insertPragma&&!await tu(n,u)&&(n=u.printer.insertPragma(n)),i=await nu(n,u)),r&&(i.formatted=ru+i.formatted,i.cursorOffset>=0&&i.cursorOffset++),i}async function iu(e,t,r){let{text:n,options:u}=uu(e,await se(t)),i=await fe(n,u);return r&&(r.preprocessForPrint&&(i.ast=await ur(i.ast,u)),r.massage&&(i.ast=Gn(i.ast,u))),i}async function ou(e,t){t=await se(t);let r=await He(e,t);return Ee(r,t)}async function su(e,t){let r=Ir(e),{formatted:n}=await sr(r,{...t,parser:\"__js_expression\"});return n}async function au(e,t){t=await se(t);let{ast:r}=await fe(e,t);return He(r,t)}async function Du(e,t){return Ee(e,await se(t))}var ar={};Bt(ar,{builders:()=>Wi,printer:()=>$i,utils:()=>Mi});var Wi={join:Se,line:qe,softline:Lr,hardline:K,literalline:Xe,group:Tt,conditionalGroup:br,fill:Nr,lineSuffix:Ne,lineSuffixBoundary:Tr,cursor:Z,breakParent:Fe,ifBreak:Or,trim:kr,indent:le,indentIfBreak:Sr,align:De,addAlignmentToDoc:Qe,markAsRoot:_r,dedentToRoot:wr,dedent:xr,hardlineWithoutBreakParent:Oe,literallineWithoutBreakParent:kt,label:Pr,concat:e=>e},$i={printDocToString:Ee},Mi={willBreak:Mr,traverseDoc:be,findInDoc:Ze,mapDoc:Le,removeLines:Vr,stripTrailingHardline:et,replaceEndOfLine:zr,canBreak:Gr};var lu=\"3.4.2\";var lr={};Bt(lr,{addDanglingComment:()=>re,addLeadingComment:()=>ue,addTrailingComment:()=>ie,getAlignmentSize:()=>Ce,getIndentSize:()=>cu,getMaxContinuousCount:()=>fu,getNextNonSpaceNonCommentCharacter:()=>du,getNextNonSpaceNonCommentCharacterIndex:()=>ro,getPreferredQuote:()=>Fu,getStringWidth:()=>Te,hasNewline:()=>$,hasNewlineInRange:()=>mu,hasSpaces:()=>hu,isNextLineEmpty:()=>oo,isNextLineEmptyAfterIndex:()=>gt,isPreviousLineEmpty:()=>uo,makeString:()=>Eu,skip:()=>ye,skipEverythingButNewLine:()=>ut,skipInlineComment:()=>ve,skipNewline:()=>W,skipSpaces:()=>S,skipToLineEnd:()=>nt,skipTrailingComment:()=>Be,skipWhitespace:()=>en});function Ui(e,t){if(t===!1)return!1;if(e.charAt(t)===\"/\"&&e.charAt(t+1)===\"*\"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)===\"*\"&&e.charAt(r+1)===\"/\")return r+2}return t}var ve=Ui;function Vi(e,t){return t===!1?!1:e.charAt(t)===\"/\"&&e.charAt(t+1)===\"/\"?ut(e,t):t}var Be=Vi;function zi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=ve(e,n),n=Be(e,n),n=W(e,n);return n}var We=zi;function Gi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=nt(e,n),n=ve(e,n),n=S(e,n);return n=Be(e,n),n=W(e,n),n!==!1&&$(e,n)}var gt=Gi;function Ki(e,t){let r=e.lastIndexOf(`\n`);return r===-1?0:Ce(e.slice(r+1).match(/^[\\t ]*/u)[0],t)}var cu=Ki;function Dr(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}function Ji(e,t){let r=e.match(new RegExp(`(${Dr(t)})+`,\"gu\"));return r===null?0:r.reduce((n,u)=>Math.max(n,u.length/t.length),0)}var fu=Ji;function qi(e,t){let r=We(e,t);return r===!1?\"\":e.charAt(r)}var du=qi;var yt=\"'\",pu='\"';function Xi(e,t){let r=t===!0||t===yt?yt:pu,n=r===yt?pu:yt,u=0,i=0;for(let o of e)o===r?u++:o===n&&i++;return u>i?n:r}var Fu=Xi;function Qi(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`\n`)return!0;return!1}var mu=Qi;function Zi(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var hu=Zi;function eo(e,t,r){let n=t==='\"'?\"'\":'\"',i=ne(!1,e,/\\\\(.)|([\"'])/gsu,(o,s,a)=>s===n?s:a===t?\"\\\\\"+a:a||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(s)?s:\"\\\\\"+s));return t+i+t}var Eu=eo;function to(e,t,r){return We(e,r(t))}function ro(e,t){return arguments.length===2||typeof t==\"number\"?We(e,t):to(...arguments)}function no(e,t,r){return Ie(e,r(t))}function uo(e,t){return arguments.length===2||typeof t==\"number\"?Ie(e,t):no(...arguments)}function io(e,t,r){return gt(e,r(t))}function oo(e,t){return arguments.length===2||typeof t==\"number\"?gt(e,t):io(...arguments)}function de(e,t=1){return async(...r)=>{let n=r[t]??{},u=n.plugins??[];return r[t]={...n,plugins:Array.isArray(u)?u:Object.values(u)},e(...r)}}var Cu=de(sr);async function gu(e,t){let{formatted:r}=await Cu(e,{...t,cursorOffset:-1});return r}async function so(e,t){return await gu(e,t)===e}var ao=de(ot,0),Do={parse:de(iu),formatAST:de(ou),formatDoc:de(su),printToDoc:de(au),printDocToString:de(Du)};var lc=cr;export{Do as __debug,so as check,lc as default,ar as doc,gu as format,Cu as formatWithCursor,ao as getSupportInfo,lr as util,lu as version};\n","import { getSourceLocation } from \"../core/diagnostics.js\";\nimport { parse as typespecParse, visitChildren } from \"../core/parser.js\";\nimport { SyntaxKind } from \"../core/types.js\";\nimport { mutate } from \"../utils/misc.js\";\nexport function parse(text, options) {\n const result = typespecParse(text, { comments: true, docs: true });\n flattenNamespaces(result);\n const errors = result.parseDiagnostics.filter((x) => x.severity === \"error\");\n if (errors.length > 0 && !result.printable) {\n throw new PrettierParserError(errors[0]);\n }\n // Remove doc comments as those are handled directly.\n mutate(result).comments = result.comments.filter((x) => !(x.kind === SyntaxKind.BlockComment && x.parsedAsDocs));\n return result;\n}\n/**\n * We are patching the syntax tree to flatten the namespace nodes that are created from namespace Foo.Bar; which have the same pos, end\n * This causes prettier to not know where comments belong.\n * https://github.com/microsoft/typespec/pull/2061\n */\nfunction flattenNamespaces(base) {\n visitChildren(base, (node) => {\n if (node.kind === SyntaxKind.NamespaceStatement) {\n let current = node;\n const ids = [node.id];\n while (current.statements && \"kind\" in current.statements) {\n current = current.statements;\n ids.push(current.id);\n }\n Object.assign(node, current, {\n ids,\n });\n flattenNamespaces(current);\n }\n });\n}\nexport class PrettierParserError extends Error {\n error;\n loc;\n constructor(error) {\n super(error.message);\n this.error = error;\n const location = getSourceLocation(error.target);\n this.loc = {\n start: location?.pos ?? 0,\n end: location?.end ?? 0,\n };\n }\n}\n//# sourceMappingURL=parser.js.map","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// src/document/constants.js\nvar DOC_TYPE_STRING = \"string\";\nvar DOC_TYPE_ARRAY = \"array\";\nvar DOC_TYPE_CURSOR = \"cursor\";\nvar DOC_TYPE_INDENT = \"indent\";\nvar DOC_TYPE_ALIGN = \"align\";\nvar DOC_TYPE_TRIM = \"trim\";\nvar DOC_TYPE_GROUP = \"group\";\nvar DOC_TYPE_FILL = \"fill\";\nvar DOC_TYPE_IF_BREAK = \"if-break\";\nvar DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\nvar DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\nvar DOC_TYPE_LINE = \"line\";\nvar DOC_TYPE_LABEL = \"label\";\nvar DOC_TYPE_BREAK_PARENT = \"break-parent\";\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// src/document/utils/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/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/utils/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 == null ? void 0 : 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/utils/assert-doc.js\nvar noop = () => {\n};\nvar assertDoc = true ? noop : function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (checked.has(doc2)) {\n return false;\n }\n if (typeof doc2 !== \"string\") {\n checked.add(doc2);\n }\n });\n};\nvar assertDocArray = true ? noop : 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\n// src/document/builders.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\nfunction align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n}\nfunction group(contents, opts = {}) {\n assertDoc(contents);\n assertDocArray(\n opts.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\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 conditionalGroup(states, opts) {\n return group(states[0], { ...opts, expandedStates: states });\n}\nfunction fill(parts) {\n assertDocArray(parts);\n return { type: DOC_TYPE_FILL, parts };\n}\nfunction ifBreak(breakContents, flatContents = \"\", opts = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n}\nfunction indentIfBreak(contents, opts) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n}\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\nvar lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\nvar trim = { type: DOC_TYPE_TRIM };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n};\nvar line = { type: DOC_TYPE_LINE };\nvar softline = { type: DOC_TYPE_LINE, soft: true };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar literalline = [literallineWithoutBreakParent, breakParent];\nvar cursor = { type: DOC_TYPE_CURSOR };\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}\nfunction addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\nfunction label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n}\n\n// scripts/build/shims/at.js\nvar at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n};\nvar at_default = at;\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n};\nvar string_replace_all_default = stringReplaceAll;\n\n// src/common/end-of-line.js\nfunction convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\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\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\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-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\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\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\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 === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 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 <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// node_modules/get-east-asian-width/index.js\nvar _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n\n// src/utils/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\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 width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/utils.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({ ...doc2, parts: doc2.parts.map(rec) });\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 { expandedStates, contents } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({ ...doc2, contents, expandedStates });\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({ ...doc2, contents: rec(doc2.contents) });\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 = at_default(\n /* isOptionalObject */\n false,\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 && at_default(\n /* isOptionalObject */\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject */\n false,\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 { ...doc, contents };\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 { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return doc.replace(/[\\n\\r]*$/u, \"\");\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 at_default(\n /* isOptionalObject */\n false,\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(\n doc,\n (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc\n );\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/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar CURSOR_PLACEHOLDER = Symbol(\"cursor\");\nvar DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\nfunction rootIndent() {\n return { value: \"\", length: 0, queue: [] };\n}\nfunction makeIndent(ind, options) {\n return generateInd(ind, { type: \"indent\" }, options);\n}\nfunction makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, { type: \"dedent\" }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);\n}\nfunction generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return { ...ind, 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 trim2(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer: while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n}\nfunction fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const { mode, doc } = cmds.pop();\n const docType = get_doc_type_default(doc);\n switch (docType) {\n case DOC_TYPE_STRING:\n out.push(doc);\n width -= get_string_width_default(doc);\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 i = parts.length - 1; i >= end; i--) {\n cmds.push({ mode, doc: parts[i] });\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 cmds.push({ mode, doc: doc.contents });\n break;\n case DOC_TYPE_TRIM:\n width += trim2(out);\n break;\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 ? at_default(\n /* isOptionalObject */\n false,\n doc.expandedStates,\n -1\n ) : doc.contents;\n cmds.push({ mode: groupMode, doc: contents });\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 cmds.push({ mode, doc: contents });\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 out.push(\" \");\n width--;\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 = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc);\n while (cmds.length > 0) {\n const { ind, mode, doc: doc2 } = cmds.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject */\n false,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n out.push(formatted);\n if (cmds.length > 0) {\n pos += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc2.length - 1; i >= 0; i--) {\n cmds.push({ ind, mode, doc: doc2[i] });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos -= trim2(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\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 = { ind, mode: MODE_FLAT, doc: doc2.contents };\n const rem = width - pos;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject */\n false,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = { ind, mode: MODE_FLAT, doc: state };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = at_default(\n /* isOptionalObject */\n false,\n cmds,\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 rem = width - pos;\n const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const { parts } = 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 contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };\n const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };\n const contentFits = fits(\n contentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };\n const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };\n if (length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCmd = {\n ind,\n mode,\n doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }\n };\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(\n firstAndSecondContentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\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 cmds.push({ ind, mode, doc: breakContents });\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 cmds.push({ ind, mode, doc: flatContents });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim2(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(\n CURSOR_PLACEHOLDER,\n cursorPlaceholderIndex + 1\n );\n if (otherCursorPlaceholderIndex === -1) {\n return {\n formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join(\"\")\n };\n }\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return { formatted: out.join(\"\") };\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};\n\n// with-default-export:src/document/public.js\nvar public_default = public_exports;\nexport {\n builders,\n public_default as default,\n printer,\n utils\n};\n","import * as prettier from \"prettier/standalone\";\nexport const util = prettier.util;\n//# sourceMappingURL=util.js.map","import { SyntaxKind } from \"../../core/types.js\";\nimport { util } from \"./util.js\";\n/**\n * Override the default behavior to attach comments to syntax node.\n */\nexport const commentHandler = {\n ownLine: (comment, text, options, ast, isLastComment) => [\n addEmptyInterfaceComment,\n addEmptyModelComment,\n addEmptyScalarComment,\n addCommentBetweenAnnotationsAndNode,\n handleOnlyComments,\n ].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n remaining: (comment, text, options, ast, isLastComment) => [handleOnlyComments].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n endOfLine: (comment, text, options, ast, isLastComment) => [handleOnlyComments].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n};\n/**\n * When a comment is on an empty interface make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * interface Foo {\n * // My comment\n * }\n */\nfunction addEmptyInterfaceComment({ comment, ast }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.InterfaceStatement &&\n enclosingNode.operations.length === 0 &&\n precedingNode &&\n precedingNode.kind === SyntaxKind.Identifier) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is in between a node and its annotations(Decorator, directives, doc comments).\n *\n * @example\n *\n * @foo\n * // My comment\n * @bar\n * model Foo {\n * }\n */\nfunction addCommentBetweenAnnotationsAndNode({ comment }) {\n const { enclosingNode, precedingNode } = comment;\n if (precedingNode &&\n (precedingNode.kind === SyntaxKind.DecoratorExpression ||\n precedingNode.kind === SyntaxKind.DirectiveExpression ||\n precedingNode.kind === SyntaxKind.Doc) &&\n enclosingNode &&\n (enclosingNode.kind === SyntaxKind.NamespaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelStatement ||\n enclosingNode.kind === SyntaxKind.EnumStatement ||\n enclosingNode.kind === SyntaxKind.OperationStatement ||\n enclosingNode.kind === SyntaxKind.ScalarStatement ||\n enclosingNode.kind === SyntaxKind.InterfaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelProperty ||\n enclosingNode.kind === SyntaxKind.EnumMember ||\n enclosingNode.kind === SyntaxKind.UnionStatement)) {\n util.addTrailingComment(precedingNode, comment);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty model make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * model Foo {\n * // My comment\n * }\n */\nfunction addEmptyModelComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ModelStatement &&\n enclosingNode.properties.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.is ||\n precedingNode === enclosingNode.id ||\n precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty scalar make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * scalar foo {\n * // My comment\n * }\n */\nfunction addEmptyScalarComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ScalarStatement &&\n enclosingNode.members.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.id || precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\nfunction handleOnlyComments({ comment, ast, isLastComment }) {\n const { enclosingNode } = comment;\n if (ast?.statements?.length === 0) {\n if (isLastComment) {\n util.addDanglingComment(ast, comment, undefined);\n }\n else {\n util.addLeadingComment(ast, comment);\n }\n return true;\n }\n if (enclosingNode?.kind === SyntaxKind.TypeSpecScript &&\n enclosingNode.statements.length === 0 &&\n enclosingNode.directives?.length === 0) {\n if (isLastComment) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n }\n else {\n util.addLeadingComment(enclosingNode, comment);\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=comment-handler.js.map","import { SyntaxKind } from \"../../core/types.js\";\n/**\n * Check if the current path should be wrapped in parentheses\n * @param path Prettier print path.\n * @param options Prettier options\n */\nexport function needsParens(path, options) {\n const parent = path.getParentNode();\n if (!parent) {\n return false;\n }\n const node = path.node;\n switch (node.kind) {\n case SyntaxKind.ValueOfExpression:\n return (parent.kind === SyntaxKind.UnionExpression ||\n parent.kind === SyntaxKind.ArrayExpression ||\n parent.kind === SyntaxKind.IntersectionExpression);\n case SyntaxKind.IntersectionExpression:\n return (parent.kind === SyntaxKind.UnionExpression || parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.UnionExpression:\n return (parent.kind === SyntaxKind.IntersectionExpression ||\n parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.ProjectionLogicalExpression:\n return parent.kind === SyntaxKind.ProjectionLogicalExpression;\n case SyntaxKind.ProjectionArithmeticExpression:\n return parent.kind === SyntaxKind.ProjectionArithmeticExpression;\n default:\n return false;\n }\n}\n//# sourceMappingURL=needs-parens.js.map","import { builders } from \"prettier/doc\";\nimport { compilerAssert } from \"../../core/diagnostics.js\";\nimport { printIdentifier as printIdentifierString } from \"../../core/helpers/syntax-utils.js\";\nimport { SyntaxKind, } from \"../../core/types.js\";\nimport { commentHandler } from \"./comment-handler.js\";\nimport { needsParens } from \"./needs-parens.js\";\nimport { util } from \"./util.js\";\nconst { align, breakParent, group, hardline, ifBreak, indent, join, line, softline, literalline, markAsRoot, } = builders;\nconst { isNextLineEmpty } = util;\n/**\n * If the decorators for that node should try to be kept inline.\n */\nconst DecoratorsTryInline = {\n modelProperty: true,\n enumMember: true,\n unionVariant: true,\n};\nexport const typespecPrinter = {\n print: printTypeSpec,\n isBlockComment: (node) => isBlockComment(node),\n canAttachComment: canAttachComment,\n printComment: printComment,\n handleComments: commentHandler,\n};\nexport function printTypeSpec(\n// Path to the AST node to print\npath, options, print) {\n const node = path.node;\n const docs = printDocComments(path, options, print);\n const directives = shouldPrintDirective(node) ? printDirectives(path, options, print) : \"\";\n const printedNode = printNode(path, options, print);\n const value = needsParens(path, options) ? [\"(\", printedNode, \")\"] : printedNode;\n const parts = [docs, directives, value];\n if (node.kind === SyntaxKind.TypeSpecScript) {\n // For TypeSpecScript(root of TypeSpec document) we had a new line at the end.\n // This must be done here so the hardline entry can be the last item of the doc array returned by the printer\n // so the markdown(and other embedded formatter) can omit that extra line.\n parts.push(hardline);\n }\n return parts;\n}\nfunction shouldPrintDirective(node) {\n // Model property handle printing directive itself.\n return node.kind !== SyntaxKind.ModelProperty;\n}\nexport function printNode(\n// Path to the AST node to print\npath, options, print) {\n const node = path.node;\n switch (node.kind) {\n // Root\n case SyntaxKind.TypeSpecScript:\n return printTypeSpecScript(path, options, print);\n // Statements\n case SyntaxKind.ImportStatement:\n return [`import \"${node.path.value}\";`];\n case SyntaxKind.UsingStatement:\n return [`using `, path.call(print, \"name\"), `;`];\n case SyntaxKind.OperationStatement:\n return printOperationStatement(path, options, print);\n case SyntaxKind.OperationSignatureDeclaration:\n return printOperationSignatureDeclaration(path, options, print);\n case SyntaxKind.OperationSignatureReference:\n return printOperationSignatureReference(path, options, print);\n case SyntaxKind.NamespaceStatement:\n return printNamespaceStatement(path, options, print);\n case SyntaxKind.ModelStatement:\n return printModelStatement(path, options, print);\n case SyntaxKind.ScalarStatement:\n return printScalarStatement(path, options, print);\n case SyntaxKind.ScalarConstructor:\n return printScalarConstructor(path, options, print);\n case SyntaxKind.AliasStatement:\n return printAliasStatement(path, options, print);\n case SyntaxKind.EnumStatement:\n return printEnumStatement(path, options, print);\n case SyntaxKind.UnionStatement:\n return printUnionStatement(path, options, print);\n case SyntaxKind.InterfaceStatement:\n return printInterfaceStatement(path, options, print);\n // Others.\n case SyntaxKind.Identifier:\n return printIdentifier(node, options);\n case SyntaxKind.StringLiteral:\n return printStringLiteral(path, options);\n case SyntaxKind.NumericLiteral:\n return printNumberLiteral(path, options);\n case SyntaxKind.BooleanLiteral:\n return printBooleanLiteral(path, options);\n case SyntaxKind.ModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.DecoratorExpression:\n return printDecorator(path, options, print);\n case SyntaxKind.AugmentDecoratorStatement:\n return printAugmentDecorator(path, options, print);\n case SyntaxKind.DirectiveExpression:\n return printDirective(path, options, print);\n case SyntaxKind.UnionExpression:\n return printUnion(path, options, print);\n case SyntaxKind.IntersectionExpression:\n return printIntersection(path, options, print);\n case SyntaxKind.ArrayExpression:\n return printArray(path, options, print);\n case SyntaxKind.TupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.MemberExpression:\n return printMemberExpression(path, options, print);\n case SyntaxKind.EnumMember:\n return printEnumMember(path, options, print);\n case SyntaxKind.EnumSpreadMember:\n return printEnumSpreadMember(path, options, print);\n case SyntaxKind.UnionVariant:\n return printUnionVariant(path, options, print);\n case SyntaxKind.TypeReference:\n return printTypeReference(path, options, print);\n case SyntaxKind.TemplateArgument:\n return printTemplateArgument(path, options, print);\n case SyntaxKind.ValueOfExpression:\n return printValueOfExpression(path, options, print);\n case SyntaxKind.TypeOfExpression:\n return printTypeOfExpression(path, options, print);\n case SyntaxKind.TemplateParameterDeclaration:\n return printTemplateParameterDeclaration(path, options, print);\n case SyntaxKind.ModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.DecoratorDeclarationStatement:\n return printDecoratorDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionDeclarationStatement:\n return printFunctionDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionParameter:\n return printFunctionParameterDeclaration(path, options, print);\n case SyntaxKind.ExternKeyword:\n return \"extern\";\n case SyntaxKind.VoidKeyword:\n return \"void\";\n case SyntaxKind.NeverKeyword:\n return \"never\";\n case SyntaxKind.UnknownKeyword:\n return \"unknown\";\n case SyntaxKind.ProjectionStatement:\n return printProjectionStatement(path, options, print);\n case SyntaxKind.ProjectionModelSelector:\n return \"model\";\n case SyntaxKind.ProjectionModelPropertySelector:\n return \"modelproperty\";\n case SyntaxKind.ProjectionScalarSelector:\n return \"scalar\";\n case SyntaxKind.ProjectionOperationSelector:\n return \"op\";\n case SyntaxKind.ProjectionUnionSelector:\n return \"union\";\n case SyntaxKind.ProjectionUnionVariantSelector:\n return \"unionvariant\";\n case SyntaxKind.ProjectionInterfaceSelector:\n return \"interface\";\n case SyntaxKind.ProjectionEnumSelector:\n return \"enum\";\n case SyntaxKind.ProjectionEnumMemberSelector:\n return \"enummember\";\n case SyntaxKind.Projection:\n return printProjection(path, options, print);\n case SyntaxKind.ProjectionParameterDeclaration:\n return printProjectionParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionExpressionStatement:\n return printProjectionExpressionStatement(path, options, print);\n case SyntaxKind.ProjectionIfExpression:\n return printProjectionIfExpressionNode(path, options, print);\n case SyntaxKind.ProjectionBlockExpression:\n return printProjectionBlockExpressionNode(path, options, print);\n case SyntaxKind.ProjectionMemberExpression:\n return printProjectionMemberExpression(path, options, print);\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n return printProjectionLeftRightExpression(path, options, print);\n case SyntaxKind.ProjectionUnaryExpression:\n return printProjectionUnaryExpression(path, options, print);\n case SyntaxKind.ProjectionCallExpression:\n return printProjectionCallExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaExpression:\n return printProjectionLambdaExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return printProjectionLambdaParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ProjectionModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.ProjectionModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.ProjectionTupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return path.call(print, \"target\");\n case SyntaxKind.Return:\n return printReturnExpression(path, options, print);\n case SyntaxKind.Doc:\n return printDoc(path, options, print);\n case SyntaxKind.DocText:\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocPropTag:\n case SyntaxKind.DocTemplateTag:\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocErrorsTag:\n case SyntaxKind.DocUnknownTag:\n // https://github.com/microsoft/typespec/issues/1319 Tracks pretty-printing doc comments.\n compilerAssert(false, \"Currently, doc comments are only handled as regular comments and we do not opt in to parsing them so we shouldn't reach here.\");\n return \"\";\n case SyntaxKind.EmptyStatement:\n return \"\";\n case SyntaxKind.StringTemplateExpression:\n return printStringTemplateExpression(path, options, print);\n case SyntaxKind.ObjectLiteral:\n return printObjectLiteral(path, options, print);\n case SyntaxKind.ObjectLiteralProperty:\n return printObjectLiteralProperty(path, options, print);\n case SyntaxKind.ObjectLiteralSpreadProperty:\n return printObjectLiteralSpreadProperty(path, options, print);\n case SyntaxKind.ArrayLiteral:\n return printArrayLiteral(path, options, print);\n case SyntaxKind.ConstStatement:\n return printConstStatement(path, options, print);\n case SyntaxKind.CallExpression:\n return printCallExpression(path, options, print);\n case SyntaxKind.StringTemplateSpan:\n case SyntaxKind.StringTemplateHead:\n case SyntaxKind.StringTemplateMiddle:\n case SyntaxKind.StringTemplateTail:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.JsNamespaceDeclaration:\n case SyntaxKind.InvalidStatement:\n return getRawText(node, options);\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return getRawText(node, options);\n }\n}\nexport function printTypeSpecScript(path, options, print) {\n const node = path.node;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const body = [];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n body.push(printStatementSequence(path, options, print, \"statements\"));\n return body;\n}\nexport function printAliasStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n return [\"alias \", id, template, \" = \", path.call(print, \"value\"), \";\"];\n}\nexport function printConstStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\"const \", id, type, \" = \", path.call(print, \"value\"), \";\"];\n}\nexport function printCallExpression(path, options, print) {\n const args = printCallLikeArgs(path, options, print);\n return [path.call(print, \"target\"), args];\n}\nfunction printTemplateParameters(path, options, print, propertyName) {\n const node = path.node;\n const args = node[propertyName];\n if (args.length === 0) {\n return \"\";\n }\n const shouldHug = args.length === 1;\n if (shouldHug) {\n return [\"<\", join(\", \", path.map(print, propertyName)), \">\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, propertyName))]);\n return group([\"<\", body, softline, \">\"]);\n }\n}\nexport function canAttachComment(node) {\n const kind = node.kind;\n return Boolean(kind &&\n kind !== SyntaxKind.LineComment &&\n kind !== SyntaxKind.BlockComment &&\n kind !== SyntaxKind.EmptyStatement &&\n kind !== SyntaxKind.DocParamTag &&\n kind !== SyntaxKind.DocReturnsTag &&\n kind !== SyntaxKind.DocTemplateTag &&\n kind !== SyntaxKind.DocText &&\n kind !== SyntaxKind.DocUnknownTag &&\n !(node.flags & 8 /* NodeFlags.Synthetic */));\n}\nexport function printComment(commentPath, options) {\n const comment = commentPath.node;\n comment.printed = true;\n switch (comment.kind) {\n case SyntaxKind.BlockComment:\n return printBlockComment(commentPath, options);\n case SyntaxKind.LineComment:\n return `${options.originalText.slice(comment.pos, comment.end).trimEnd()}`;\n default:\n throw new Error(`Not a comment: ${JSON.stringify(comment)}`);\n }\n}\nfunction printBlockComment(commentPath, options) {\n const comment = commentPath.node;\n const rawComment = options.originalText.slice(comment.pos + 2, comment.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment;\n return [\"/*\", printed, \"*/\"];\n}\nfunction isIndentableBlockComment(rawComment) {\n // If the comment has multiple lines and every line starts with a star\n // we can fix the indentation of each line. The stars in the `/*` and\n // `*/` delimiters are not included in the comment value, so add them\n // back first.\n const lines = `*${rawComment}*`.split(\"\\n\");\n return lines.length > 1 && lines.every((line) => line.trim()[0] === \"*\");\n}\nfunction printIndentableBlockCommentContent(rawComment) {\n const lines = rawComment.split(\"\\n\");\n return [\n join(hardline, lines.map((line, index) => index === 0\n ? line.trimEnd()\n : \" \" + (index < lines.length - 1 ? line.trim() : line.trimStart()))),\n ];\n}\n/** Print a doc comment. */\nfunction printDoc(path, options, print) {\n const node = path.node;\n const rawComment = options.originalText.slice(node.pos + 3, node.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment.includes(\"\\n\")\n ? rawComment\n : ` ${rawComment.trim()} `;\n return [\"/**\", printed, \"*/\"];\n}\nexport function printDecorators(path, options, print, { tryInline }) {\n const node = path.node;\n if (node.decorators.length === 0) {\n return { decorators: \"\", multiline: false };\n }\n const shouldBreak = shouldDecoratorBreakLine(path, options, { tryInline });\n const decorators = path.map((x) => [print(x), ifBreak(line, \" \")], \"decorators\");\n return {\n decorators: group([shouldBreak ? breakParent : \"\", decorators]),\n multiline: shouldBreak,\n };\n}\n/** Check if the decorators of the given node should be broken in sparate line */\nfunction shouldDecoratorBreakLine(path, options, { tryInline }) {\n const node = path.node;\n return (!tryInline || node.decorators.length >= 3 || hasNewlineBetweenOrAfterDecorators(node, options));\n}\n/**\n * Check if there is already new lines in between the decorators of the node.\n */\nfunction hasNewlineBetweenOrAfterDecorators(node, options) {\n return node.decorators.some((decorator) => util.hasNewline(options.originalText, decorator.end));\n}\nexport function printDecorator(path, options, print) {\n const args = printDecoratorArgs(path, options, print);\n return [\"@\", path.call(print, \"target\"), args];\n}\nexport function printAugmentDecorator(path, options, print) {\n const args = printAugmentDecoratorArgs(path, options, print);\n return [\"@@\", path.call(print, \"target\"), args, \";\"];\n}\nfunction printAugmentDecoratorArgs(path, options, print) {\n return [\n \"(\",\n group([\n indent(join(\", \", [\n path.call(print, \"targetType\"),\n ...path.map((arg) => [softline, print(arg)], \"arguments\"),\n ])),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDocComments(path, options, print) {\n const node = path.node;\n if (node.docs === undefined || node.docs.length === 0) {\n return \"\";\n }\n const docs = path.map((x) => [print(x), line], \"docs\");\n return group([...docs, breakParent]);\n}\nexport function printDirectives(path, options, print) {\n const node = path.node;\n if (node.directives === undefined || node.directives.length === 0) {\n return \"\";\n }\n const directives = path.map((x) => [print(x), line], \"directives\");\n return group([...directives, breakParent]);\n}\nexport function printDirective(path, options, print) {\n const args = printDirectiveArgs(path, options, print);\n return [\"#\", path.call(print, \"target\"), \" \", args];\n}\nfunction printDecoratorArgs(path, options, print) {\n const node = path.node;\n if (node.arguments.length === 0) {\n return \"\";\n }\n return printCallLikeArgs(path, options, print);\n}\nfunction printCallLikeArgs(path, options, print) {\n const node = path.node;\n // So that decorator with single object arguments have ( and { hugging.\n // @deco(#{\n // value: \"foo\"\n // })\n const shouldHug = node.arguments.length === 1 &&\n (node.arguments[0].kind === SyntaxKind.ModelExpression ||\n node.arguments[0].kind === SyntaxKind.ObjectLiteral ||\n node.arguments[0].kind === SyntaxKind.ArrayLiteral ||\n node.arguments[0].kind === SyntaxKind.StringLiteral ||\n node.arguments[0].kind === SyntaxKind.StringTemplateExpression);\n if (shouldHug) {\n return [\n \"(\",\n join(\", \", path.map((arg) => [print(arg)], \"arguments\")),\n \")\",\n ];\n }\n return [\n \"(\",\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"arguments\"))),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDirectiveArgs(path, options, print) {\n const node = path.node;\n if (node.arguments.length === 0) {\n return \"\";\n }\n return join(\" \", path.map((arg) => [print(arg)], \"arguments\"));\n}\nexport function printEnumStatement(path, options, print) {\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const id = path.call(print, \"id\");\n return [decorators, \"enum \", id, \" \", printEnumBlock(path, options, print)];\n}\nfunction printEnumBlock(path, options, print) {\n const node = path.node;\n if (node.members.length === 0) {\n return \"{}\";\n }\n const body = joinMembersInBlock(path, \"members\", options, print, \",\", hardline);\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nexport function printEnumMember(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const value = node.value ? [\": \", path.call(print, \"value\")] : \"\";\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.enumMember,\n });\n return [decorators, id, value];\n}\nfunction printEnumSpreadMember(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nexport function printUnionStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n return [decorators, \"union \", id, generic, \" \", printUnionVariantsBlock(path, options, print)];\n}\nexport function printUnionVariantsBlock(path, options, print) {\n const node = path.node;\n if (node.options.length === 0) {\n return \"{}\";\n }\n const body = joinMembersInBlock(path, \"options\", options, print, \",\", hardline);\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nexport function printUnionVariant(path, options, print) {\n const id = path.node.id === undefined ? \"\" : [path.call(print, \"id\"), \": \"];\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.unionVariant,\n });\n return [decorators, id, path.call(print, \"value\")];\n}\nexport function printInterfaceStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const extendList = printInterfaceExtends(path, options, print);\n return [\n decorators,\n \"interface \",\n id,\n generic,\n extendList,\n \" \",\n printInterfaceMembers(path, options, print),\n ];\n}\nfunction printInterfaceExtends(path, options, print) {\n const node = path.node;\n if (node.extends.length === 0) {\n return \"\";\n }\n const keyword = \"extends \";\n return [group(indent([line, keyword, indent(join([\",\", line], path.map(print, \"extends\")))]))];\n}\nexport function printInterfaceMembers(path, options, print) {\n const node = path.node;\n const hasOperations = node.operations.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasOperations && !nodeHasComments) {\n return \"{}\";\n }\n const lastOperation = node.operations[node.operations.length - 1];\n const parts = [];\n path.each((operationPath) => {\n const node = operationPath.node;\n const printed = print(operationPath);\n parts.push(printed);\n if (node !== lastOperation) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, \"operations\");\n const body = [hardline, parts];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printDanglingComments(path, options, { sameIndent }) {\n const node = path.node;\n const parts = [];\n if (!node || !node.comments) {\n return \"\";\n }\n path.each((commentPath) => {\n const comment = commentPath.node;\n if (!comment.leading && !comment.trailing) {\n parts.push(printComment(path, options));\n }\n }, \"comments\");\n if (parts.length === 0) {\n return \"\";\n }\n if (sameIndent) {\n return join(hardline, parts);\n }\n return indent([hardline, join(hardline, parts)]);\n}\n/**\n * Handle printing an intersection node.\n * @example `Foo & Bar` or `{foo: string} & {bar: string}`\n *\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier child print callback.\n * @returns Prettier document.\n */\nexport function printIntersection(path, options, print) {\n const node = path.node;\n const types = path.map(print, \"options\");\n const result = [];\n let wasIndented = false;\n for (let i = 0; i < types.length; ++i) {\n if (i === 0) {\n result.push(types[i]);\n }\n else if (isModelNode(node.options[i - 1]) && isModelNode(node.options[i])) {\n // If both are objects, don't indent\n result.push([\" & \", wasIndented ? indent(types[i]) : types[i]]);\n }\n else if (!isModelNode(node.options[i - 1]) && !isModelNode(node.options[i])) {\n // If no object is involved, go to the next line if it breaks\n result.push(indent([\" &\", line, types[i]]));\n }\n else {\n // If you go from object to non-object or vis-versa, then inline it\n if (i > 1) {\n wasIndented = true;\n }\n result.push(\" & \", i > 1 ? indent(types[i]) : types[i]);\n }\n }\n return group(result);\n}\nfunction isModelNode(node) {\n return node.kind === SyntaxKind.ModelExpression;\n}\nexport function printArray(path, options, print) {\n return [path.call(print, \"elementType\"), \"[]\"];\n}\nexport function printTuple(path, options, print) {\n return group([\n \"[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printMemberExpression(path, options, print) {\n const node = path.node;\n return [node.base ? [path.call(print, \"base\"), node.selector] : \"\", path.call(print, \"id\")];\n}\nexport function printModelExpression(path, options, print) {\n const inBlock = isModelExpressionInBlock(path);\n const node = path.node;\n if (inBlock) {\n return group(printModelPropertiesBlock(path, options, print));\n }\n else {\n const properties = node.properties.length === 0\n ? \"\"\n : indent(joinMembersInBlock(path, \"properties\", options, print, ifBreak(\",\", \", \"), softline));\n return group([properties, softline]);\n }\n}\nexport function printObjectLiteral(path, options, print) {\n const node = path.node;\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"#{}\";\n }\n const lineDoc = softline;\n const body = [\n joinMembersInBlock(path, \"properties\", options, print, ifBreak(\",\", \", \"), softline),\n ];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"#{\", ifBreak(\"\", \" \"), indent(body), lineDoc, ifBreak(\"\", \" \"), \"}\"]);\n}\nexport function printObjectLiteralProperty(path, options, print) {\n const node = path.node;\n const id = printIdentifier(node.id, options);\n return [printDirectives(path, options, print), id, \": \", path.call(print, \"value\")];\n}\nexport function printObjectLiteralSpreadProperty(path, options, print) {\n return [printDirectives(path, options, print), \"...\", path.call(print, \"target\")];\n}\nexport function printArrayLiteral(path, options, print) {\n return group([\n \"#[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printModelStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const isBase = node.is ? [ifBreak(line, \" \"), \"is \", path.call(print, \"is\")] : \"\";\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.properties.length === 0 && node.is);\n const body = shouldPrintBody ? [\" \", printModelPropertiesBlock(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"model \",\n id,\n generic,\n group(indent([\"\", heritage, isBase])),\n body,\n ];\n}\nfunction printModelPropertiesBlock(path, options, print) {\n const node = path.node;\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const tryInline = path.getParentNode()?.kind === SyntaxKind.TemplateParameterDeclaration;\n const lineDoc = tryInline ? softline : hardline;\n const seperator = isModelAValue(path) ? \",\" : \";\";\n const body = [joinMembersInBlock(path, \"properties\", options, print, seperator, lineDoc)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), lineDoc, \"}\"]);\n}\n/**\n * Join members nodes that are in a block by adding extra new lines when needed.(e.g. when there are decorators or doc comments )\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier print callback\n * @param separator Separator\n * @param regularLine What line to use when we should split lines\n * @returns\n */\nfunction joinMembersInBlock(path, member, options, print, separator, regularLine = hardline) {\n const doc = [regularLine];\n const propertyContainerNode = path.node;\n let newLineBeforeNextProp = false;\n path.each((item, propertyIndex) => {\n const isFirst = propertyIndex === 0;\n const isLast = propertyIndex === propertyContainerNode[member].length - 1;\n const shouldWrapInNewLines = shouldWrapMemberInNewLines(item, options);\n if ((newLineBeforeNextProp || shouldWrapInNewLines) && !isFirst) {\n doc.push(hardline);\n newLineBeforeNextProp = false;\n }\n doc.push(print(item));\n if (isLast) {\n doc.push(ifBreak(separator));\n }\n else {\n doc.push(separator);\n doc.push(regularLine);\n if (shouldWrapInNewLines) {\n newLineBeforeNextProp = true;\n }\n }\n }, member);\n return doc;\n}\n/**\n * Check if property item (PropertyNode, SpreadProperty) should be wrapped in new lines.\n * It can be wrapped for the following reasons:\n * - has decorators on lines above\n * - has leading comments\n */\nfunction shouldWrapMemberInNewLines(path, options) {\n const node = path.node;\n return ((node.kind !== SyntaxKind.ModelSpreadProperty &&\n node.kind !== SyntaxKind.ProjectionModelSpreadProperty &&\n node.kind !== SyntaxKind.EnumSpreadMember &&\n node.kind !== SyntaxKind.ScalarConstructor &&\n node.kind !== SyntaxKind.ObjectLiteralProperty &&\n node.kind !== SyntaxKind.ObjectLiteralSpreadProperty &&\n shouldDecoratorBreakLine(path, options, {\n tryInline: DecoratorsTryInline.modelProperty,\n })) ||\n hasComments(node, CommentCheckFlags.Leading) ||\n (node.docs && node.docs?.length > 0));\n}\n/**\n * Figure out if this model is being used as a definition or value.\n * @returns true if the model is used as a value(e.g. decorator value), false if it is used as a model definition.\n */\nfunction isModelAValue(path) {\n let count = 0;\n let node = path.node;\n do {\n switch (node.kind) {\n case SyntaxKind.ModelStatement:\n case SyntaxKind.AliasStatement:\n case SyntaxKind.OperationStatement:\n return false;\n case SyntaxKind.DecoratorExpression:\n return true;\n }\n } while ((node = path.getParentNode(count++)));\n return true;\n}\nexport function printModelProperty(path, options, print) {\n const node = path.node;\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.modelProperty,\n });\n const id = printIdentifier(node.id, options);\n return [\n printDirectives(path, options, print),\n decorators,\n id,\n node.optional ? \"?: \" : \": \",\n path.call(print, \"value\"),\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printIdentifier(id, options) {\n return printIdentifierString(id.sv);\n}\nfunction isModelExpressionInBlock(path) {\n const parent = path.getParentNode();\n switch (parent?.kind) {\n case SyntaxKind.OperationSignatureDeclaration:\n return parent.parameters !== path.getNode();\n default:\n return true;\n }\n}\nfunction printScalarStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.members.length === 0);\n const members = shouldPrintBody ? [\" \", printScalarBody(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"scalar \",\n id,\n template,\n group(indent([\"\", heritage])),\n members,\n ];\n}\nfunction printScalarBody(path, options, print) {\n const node = path.node;\n const hasProperties = node.members && node.members.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const body = [joinMembersInBlock(path, \"members\", options, print, \";\", hardline)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printScalarConstructor(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n return [\"init \", id, \"(\", parameters, \")\"];\n}\nexport function printNamespaceStatement(path, options, print) {\n const names = path.map(print, \"ids\");\n const currentNode = path.getNode();\n const suffix = currentNode?.statements === undefined\n ? \";\"\n : [\n \" {\",\n indent([hardline, printStatementSequence(path, options, print, \"statements\")]),\n hardline,\n \"}\",\n ];\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n return [decorators, `namespace `, join(\".\", names), suffix];\n}\nexport function printOperationSignatureDeclaration(path, options, print) {\n return [\"(\", path.call(print, \"parameters\"), \"): \", path.call(print, \"returnType\")];\n}\nexport function printOperationSignatureReference(path, options, print) {\n return [\" is \", path.call(print, \"baseOperation\")];\n}\nexport function printOperationStatement(path, options, print) {\n const inInterface = path.getParentNode()?.kind === SyntaxKind.InterfaceStatement;\n const templateParams = printTemplateParameters(path, options, print, \"templateParameters\");\n const { decorators } = printDecorators(path, options, print, {\n tryInline: true,\n });\n return [\n decorators,\n inInterface ? \"\" : \"op \",\n path.call(print, \"id\"),\n templateParams,\n path.call(print, \"signature\"),\n `;`,\n ];\n}\nexport function printStatementSequence(path, options, print, property) {\n const node = path.node;\n const parts = [];\n const lastStatement = getLastStatement(node[property]);\n path.each((statementPath) => {\n const node = path.node;\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n if (node !== lastStatement) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, property);\n return parts;\n}\nfunction getLastStatement(statements) {\n for (let i = statements.length - 1; i >= 0; i--) {\n const statement = statements[i];\n if (statement.kind !== SyntaxKind.EmptyStatement) {\n return statement;\n }\n }\n return undefined;\n}\nexport function printUnion(path, options, print) {\n const node = path.node;\n const shouldHug = shouldHugType(node);\n const types = path.map((typePath) => {\n let printedType = print(typePath);\n if (!shouldHug) {\n printedType = align(2, printedType);\n }\n return printedType;\n }, \"options\");\n if (shouldHug) {\n return join(\" | \", types);\n }\n const shouldAddStartLine = true;\n const code = [ifBreak([shouldAddStartLine ? line : \"\", \"| \"], \"\"), join([line, \"| \"], types)];\n return group(indent(code));\n}\nfunction shouldHugType(node) {\n if (node.kind === SyntaxKind.UnionExpression || node.kind === SyntaxKind.IntersectionExpression) {\n return node.options.length < 4;\n }\n return false;\n}\nexport function printTypeReference(path, options, print) {\n const type = path.call(print, \"target\");\n const template = printTemplateParameters(path, options, print, \"arguments\");\n return [type, template];\n}\nexport function printTemplateArgument(path, _options, print) {\n if (path.node.name !== undefined) {\n const name = path.call(print, \"name\");\n const argument = path.call(print, \"argument\");\n return group([name, \" = \", argument]);\n }\n else {\n return path.call(print, \"argument\");\n }\n}\nexport function printValueOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"valueof \", type];\n}\nexport function printTypeOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"typeof \", type];\n}\nfunction printTemplateParameterDeclaration(path, options, print) {\n const node = path.node;\n return [\n path.call(print, \"id\"),\n node.constraint ? [\" extends \", path.call(print, \"constraint\")] : \"\",\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printModelSpread(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nfunction printDecoratorDeclarationStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", [\n [softline, path.call(print, \"target\")],\n ...path.map((arg) => [softline, print(arg)], \"parameters\"),\n ])),\n softline,\n ]),\n ];\n return [printModifiers(path, options, print), \"dec \", id, \"(\", parameters, \")\", \";\"];\n}\nfunction printFunctionDeclarationStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n const returnType = node.returnType ? [\": \", path.call(print, \"returnType\")] : \"\";\n return [printModifiers(path, options, print), \"fn \", id, \"(\", parameters, \")\", returnType, \";\"];\n}\nfunction printFunctionParameterDeclaration(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\n node.rest ? \"...\" : \"\",\n printDirectives(path, options, print),\n id,\n node.optional ? \"?\" : \"\",\n type,\n ];\n}\nexport function printModifiers(path, options, print) {\n const node = path.node;\n if (node.modifiers.length === 0) {\n return \"\";\n }\n return path.map((x) => [print(x), \" \"], \"modifiers\");\n}\nfunction printStringLiteral(path, options) {\n const node = path.node;\n const multiline = isMultiline(node, options);\n const raw = getRawText(node, options);\n if (multiline) {\n const lines = splitLines(raw.slice(3));\n const whitespaceIndent = lines[lines.length - 1].length - 3;\n const newLines = trimMultilineString(lines, whitespaceIndent);\n return [`\"\"\"`, indent(markAsRoot(newLines))];\n }\n else {\n return raw;\n }\n}\nfunction isMultiline(node, options) {\n return (options.originalText[node.pos] &&\n options.originalText[node.pos + 1] === `\"` &&\n options.originalText[node.pos + 2] === `\"`);\n}\nfunction printNumberLiteral(path, options) {\n const node = path.node;\n return getRawText(node, options);\n}\nfunction printBooleanLiteral(path, options) {\n const node = path.node;\n return node.value ? \"true\" : \"false\";\n}\nfunction printProjectionStatement(path, options, print) {\n const selector = path.call(print, \"selector\");\n const id = path.call(print, \"id\");\n const projections = path.map(print, \"projections\").flatMap((x) => [hardline, x]);\n return [\n \"projection \",\n selector,\n \"#\",\n id,\n \" {\",\n indent(projections),\n projections.length > 0 ? hardline : \"\",\n \"}\",\n ];\n}\nfunction printProjection(path, options, print) {\n const node = path.node;\n const params = printProjectionParameters(path, options, print);\n const body = printProjectionExpressionStatements(path, options, print, \"body\");\n return [\n ...node.modifierIds.flatMap((i) => [i.sv, \" \"]),\n node.directionId.sv,\n params,\n \" {\",\n indent(body),\n hardline,\n \"}\",\n ];\n}\nfunction printProjectionParameters(path, options, print) {\n const node = path.node;\n const params = node.parameters;\n if (params.length === 0) {\n return \"\";\n }\n const shouldHug = params.length === 1;\n if (shouldHug) {\n return [\"(\", printItemList(path, options, print, \"parameters\"), \")\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, \"parameters\"))]);\n return group([\"(\", body, softline, \")\"]);\n }\n}\nfunction printProjectionExpressionStatements(path, options, print, key) {\n const parts = [hardline];\n const lastIndex = path.node[key].length - 1;\n path.each((statementPath, index) => {\n const node = path.node;\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n parts.push(\";\");\n if (index < lastIndex) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, key);\n return parts;\n}\nfunction printProjectionParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nfunction printProjectionExpressionStatement(path, options, print) {\n return path.call(print, \"expr\");\n}\nfunction printProjectionIfExpressionNode(path, options, print) {\n const node = path.node;\n const test = path.call(print, \"test\");\n const consequent = path.call(print, \"consequent\");\n const alternate = node.alternate ? [\" else \", path.call(print, \"alternate\")] : \"\";\n return [\"if \", test, \" \", consequent, alternate];\n}\nexport function printProjectionBlockExpressionNode(path, options, print) {\n const node = path.node;\n if (node.statements.length === 0) {\n return \"{}\";\n }\n return [\n \"{\",\n indent(printProjectionExpressionStatements(path, options, print, \"statements\")),\n hardline,\n \"}\",\n ];\n}\nexport function printProjectionMemberExpression(path, options, print) {\n const node = path.node;\n return [path.call(print, \"base\"), node.selector, path.call(print, \"id\")];\n}\nexport function printProjectionLeftRightExpression(path, options, print) {\n const node = path.node;\n return [path.call(print, \"left\"), \" \", node.op, \" \", path.call(print, \"right\")];\n}\nexport function printProjectionUnaryExpression(path, options, print) {\n return [\"!\", path.call(print, \"target\")];\n}\nexport function printProjectionCallExpression(path, options, print) {\n const node = path.node;\n const target = path.call(print, \"target\");\n const params = printItemList(path, options, print, \"arguments\");\n if (node.callKind === \"method\") {\n return [target, \"(\", params, \")\"];\n }\n else {\n return [target, \"<\", params, \">\"];\n }\n}\nexport function printProjectionLambdaExpression(path, options, print) {\n return [\n \"(\",\n printItemList(path, options, print, \"parameters\"),\n \")\",\n \" => \",\n path.call(print, \"body\"),\n ];\n}\nexport function printProjectionLambdaParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nexport function printReturnExpression(path, options, print) {\n return [\"return \", path.call(print, \"value\")];\n}\nexport function printStringTemplateExpression(path, options, print) {\n const node = path.node;\n const multiline = isMultiline(node, options);\n const rawHead = getRawText(node.head, options);\n if (multiline) {\n const lastSpan = node.spans[node.spans.length - 1];\n const lastLines = splitLines(getRawText(lastSpan.literal, options));\n const whitespaceIndent = lastLines[lastLines.length - 1].length - 3;\n const content = [\n trimMultilineString(splitLines(rawHead.slice(3)), whitespaceIndent),\n path.map((span) => {\n const expression = span.call(print, \"expression\");\n const spanRawText = getRawText(span.node.literal, options);\n const spanLines = splitLines(spanRawText);\n return [\n expression,\n spanLines[0],\n literalline,\n trimMultilineString(spanLines.slice(1), whitespaceIndent),\n ];\n }, \"spans\"),\n ];\n return [`\"\"\"`, indent(markAsRoot([content]))];\n }\n else {\n const content = [\n rawHead,\n path.map((span) => {\n const expression = span.call(print, \"expression\");\n return [expression, getRawText(span.node.literal, options)];\n }, \"spans\"),\n ];\n return content;\n }\n}\nfunction splitLines(text) {\n const lines = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */) {\n lines.push(text.slice(start, pos));\n start = pos;\n pos++;\n }\n else {\n lines.push(text.slice(start, pos));\n start = pos;\n }\n break;\n case 10 /* CharCode.LineFeed */:\n lines.push(text.slice(start, pos));\n start = pos;\n break;\n }\n pos++;\n }\n lines.push(text.slice(start));\n return lines;\n}\nfunction trimMultilineString(lines, whitespaceIndent) {\n const newLines = [];\n for (let i = 0; i < lines.length; i++) {\n newLines.push(lines[i].slice(whitespaceIndent));\n if (i < lines.length - 1) {\n newLines.push(literalline);\n }\n }\n return newLines;\n}\nfunction printItemList(path, options, print, key) {\n return join(\", \", path.map(print, key));\n}\n/**\n * @param node Node that has postition information.\n * @param options Prettier options\n * @returns Raw text in the file for the given node.\n */\nfunction getRawText(node, options) {\n return options.originalText.slice(node.pos, node.end);\n}\nfunction hasComments(node, flags) {\n if (!node.comments || node.comments.length === 0) {\n return false;\n }\n const test = getCommentTestFunction(flags);\n return test ? node.comments.some(test) : true;\n}\nvar CommentCheckFlags;\n(function (CommentCheckFlags) {\n /** Check comment is a leading comment */\n CommentCheckFlags[CommentCheckFlags[\"Leading\"] = 2] = \"Leading\";\n /** Check comment is a trailing comment */\n CommentCheckFlags[CommentCheckFlags[\"Trailing\"] = 4] = \"Trailing\";\n /** Check comment is a dangling comment */\n CommentCheckFlags[CommentCheckFlags[\"Dangling\"] = 8] = \"Dangling\";\n /** Check comment is a block comment */\n CommentCheckFlags[CommentCheckFlags[\"Block\"] = 16] = \"Block\";\n /** Check comment is a line comment */\n CommentCheckFlags[CommentCheckFlags[\"Line\"] = 32] = \"Line\";\n /** Check comment is a `prettier-ignore` comment */\n CommentCheckFlags[CommentCheckFlags[\"PrettierIgnore\"] = 64] = \"PrettierIgnore\";\n /** Check comment is the first attached comment */\n CommentCheckFlags[CommentCheckFlags[\"First\"] = 128] = \"First\";\n /** Check comment is the last attached comment */\n CommentCheckFlags[CommentCheckFlags[\"Last\"] = 256] = \"Last\";\n})(CommentCheckFlags || (CommentCheckFlags = {}));\nfunction getCommentTestFunction(flags) {\n if (flags) {\n return (comment, index, comments) => !((flags & CommentCheckFlags.Leading && !comment.leading) ||\n (flags & CommentCheckFlags.Trailing && !comment.trailing) ||\n (flags & CommentCheckFlags.Dangling && (comment.leading || comment.trailing)) ||\n (flags & CommentCheckFlags.Block && !isBlockComment(comment)) ||\n (flags & CommentCheckFlags.Line && !isLineComment(comment)) ||\n (flags & CommentCheckFlags.First && index !== 0) ||\n (flags & CommentCheckFlags.Last && index !== comments.length - 1));\n }\n return undefined;\n}\nfunction isBlockComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\nfunction isLineComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\n//# sourceMappingURL=printer.js.map","import { parse } from \"./parser.js\";\nimport { typespecPrinter } from \"./print/index.js\";\nexport const defaultOptions = {};\nexport const languages = [\n {\n name: \"TypeSpec\",\n parsers: [\"typespec\"],\n extensions: [\".tsp\", \".cadl\"],\n vscodeLanguageIds: [\"typespec\"],\n },\n];\nconst TypeSpecParser = {\n parse,\n astFormat: \"typespec-format\",\n locStart(node) {\n return node.pos;\n },\n locEnd(node) {\n return node.end;\n },\n};\nexport const parsers = {\n typespec: TypeSpecParser,\n};\nexport const printers = {\n \"typespec-format\": typespecPrinter,\n};\n//# sourceMappingURL=index.js.map","export { resolveCompilerOptions } from \"./config/index.js\";\nexport * from \"./core/index.js\";\nexport * from \"./lib/decorators.js\";\nexport * from \"./server/index.js\";\nimport * as formatter from \"./formatter/index.js\";\nexport const TypeSpecPrettierPlugin = formatter;\n// DO NOT ADD ANYMORE EXPORTS HERE, this is for backcompat. Utils should be exported from the utils folder.\nexport { \n/** @deprecated use import from @typespec/compiler/utils */\ncreateRekeyableMap, \n/** @deprecated use import from @typespec/compiler/utils */\nDuplicateTracker, \n/** @deprecated use import from @typespec/compiler/utils */\nQueue, \n/** @deprecated use import from @typespec/compiler/utils */\nTwoLevelMap, } from \"./utils/index.js\";\n/** @deprecated Use TypeSpecPrettierPlugin */\nexport const CadlPrettierPlugin = TypeSpecPrettierPlugin;\nimport { $decorators as intrinsicDecorators } from \"./lib/intrinsic/tsp-index.js\";\nimport { $decorators as stdDecorators } from \"./lib/tsp-index.js\";\n/** @internal for Typespec compiler */\nexport const $decorators = {\n TypeSpec: {\n ...stdDecorators.TypeSpec,\n },\n \"TypeSpec.Prototypes\": {\n ...intrinsicDecorators[\"TypeSpec.Prototypes\"],\n },\n};\n//# sourceMappingURL=index.js.map","/**\n * Reexport the bare minimum for rollup to do the tree shaking.\n */\nimport { TypeSpecPrettierPlugin } from \"@typespec/compiler\";\nexport default TypeSpecPrettierPlugin;\n"],"names":["trim","parse","printIdentifier","at","typespecParse","indent","align","group","markAsRoot","ifBreak","breakParent","line","softline","hardline","literalline","join","prettier.util","printIdentifierString"],"mappings":"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AAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;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G,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,KAAK,GAA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AG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CA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AK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CA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K,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAA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","x_google_ignoreList":[12,14]}
1
+ {"version":3,"file":"index.js","sources":["../../compiler/dist/src/core/source-file.js","../../compiler/dist/src/core/types.js","../../compiler/dist/src/utils/misc.js","../../compiler/dist/src/core/diagnostic-creator.js","../../compiler/dist/src/core/param-message.js","../../compiler/dist/src/core/messages.js","../../compiler/dist/src/core/diagnostics.js","../../compiler/dist/src/core/nonascii.js","../../compiler/dist/src/core/charcode.js","../../compiler/dist/src/core/compiler-code-fixes/triple-quote-indent.codefix.js","../../compiler/dist/src/core/scanner.js","../../compiler/dist/src/core/helpers/syntax-utils.js","../../compiler/dist/src/core/parser.js","../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs","../../compiler/dist/src/formatter/parser.js","../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/doc.mjs","../../compiler/dist/src/formatter/print/util.js","../../compiler/dist/src/formatter/print/comment-handler.js","../../compiler/dist/src/formatter/print/needs-parens.js","../../compiler/dist/src/formatter/print/printer.js","../../compiler/dist/src/formatter/index.js","../../compiler/dist/src/index.js","../src/index.mjs"],"sourcesContent":["import { getAnyExtensionFromPath } from \"./path-utils.js\";\nexport function createSourceFile(text, path) {\n let lineStarts = undefined;\n return {\n text,\n path,\n getLineStarts,\n getLineAndCharacterOfPosition,\n };\n function getLineStarts() {\n return (lineStarts = lineStarts ?? scanLineStarts(text));\n }\n function getLineAndCharacterOfPosition(position) {\n const starts = getLineStarts();\n let line = binarySearch(starts, position);\n // When binarySearch returns < 0 indicating that the value was not found, it\n // returns the bitwise complement of the index where the value would need to\n // be inserted to keep the array sorted. So flipping the bits back to this\n // positive index tells us what the line number would be if we were to\n // create a new line starting at the given position, and subtracting 1 from\n // that therefore gives us the line number we're after.\n if (line < 0) {\n line = ~line - 1;\n }\n return {\n line,\n character: position - starts[line],\n };\n }\n}\nexport function getSourceFileKindFromExt(path) {\n const ext = getAnyExtensionFromPath(path);\n if (ext === \".js\" || ext === \".mjs\") {\n return \"js\";\n }\n else if (ext === \".tsp\" || ext === \".cadl\") {\n return \"typespec\";\n }\n else {\n return undefined;\n }\n}\nfunction scanLineStarts(text) {\n const starts = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n pos++;\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos) === 10 /* CharCode.LineFeed */) {\n pos++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n starts.push(start);\n start = pos;\n break;\n }\n }\n starts.push(start);\n return starts;\n}\n/**\n * Search sorted array of numbers for the given value. If found, return index\n * in array where value was found. If not found, return a negative number that\n * is the bitwise complement of the index where value would need to be inserted\n * to keep the array sorted.\n */\nfunction binarySearch(array, value) {\n let low = 0;\n let high = array.length - 1;\n while (low <= high) {\n const middle = low + ((high - low) >> 1);\n const v = array[middle];\n if (v < value) {\n low = middle + 1;\n }\n else if (v > value) {\n high = middle - 1;\n }\n else {\n return middle;\n }\n }\n return ~low;\n}\n//# sourceMappingURL=source-file.js.map","export var ResolutionResultFlags;\n(function (ResolutionResultFlags) {\n ResolutionResultFlags[ResolutionResultFlags[\"None\"] = 0] = \"None\";\n ResolutionResultFlags[ResolutionResultFlags[\"Resolved\"] = 2] = \"Resolved\";\n ResolutionResultFlags[ResolutionResultFlags[\"Unknown\"] = 4] = \"Unknown\";\n ResolutionResultFlags[ResolutionResultFlags[\"Ambiguous\"] = 8] = \"Ambiguous\";\n ResolutionResultFlags[ResolutionResultFlags[\"NotFound\"] = 16] = \"NotFound\";\n ResolutionResultFlags[ResolutionResultFlags[\"ResolutionFailed\"] = 28] = \"ResolutionFailed\";\n})(ResolutionResultFlags || (ResolutionResultFlags = {}));\n/**\n * AST types\n */\nexport var SyntaxKind;\n(function (SyntaxKind) {\n SyntaxKind[SyntaxKind[\"TypeSpecScript\"] = 0] = \"TypeSpecScript\";\n /** @deprecated Use TypeSpecScript */\n SyntaxKind[SyntaxKind[\"CadlScript\"] = 0] = \"CadlScript\";\n SyntaxKind[SyntaxKind[\"JsSourceFile\"] = 1] = \"JsSourceFile\";\n SyntaxKind[SyntaxKind[\"ImportStatement\"] = 2] = \"ImportStatement\";\n SyntaxKind[SyntaxKind[\"Identifier\"] = 3] = \"Identifier\";\n SyntaxKind[SyntaxKind[\"AugmentDecoratorStatement\"] = 4] = \"AugmentDecoratorStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorExpression\"] = 5] = \"DecoratorExpression\";\n SyntaxKind[SyntaxKind[\"DirectiveExpression\"] = 6] = \"DirectiveExpression\";\n SyntaxKind[SyntaxKind[\"MemberExpression\"] = 7] = \"MemberExpression\";\n SyntaxKind[SyntaxKind[\"NamespaceStatement\"] = 8] = \"NamespaceStatement\";\n SyntaxKind[SyntaxKind[\"UsingStatement\"] = 9] = \"UsingStatement\";\n SyntaxKind[SyntaxKind[\"OperationStatement\"] = 10] = \"OperationStatement\";\n SyntaxKind[SyntaxKind[\"OperationSignatureDeclaration\"] = 11] = \"OperationSignatureDeclaration\";\n SyntaxKind[SyntaxKind[\"OperationSignatureReference\"] = 12] = \"OperationSignatureReference\";\n SyntaxKind[SyntaxKind[\"ModelStatement\"] = 13] = \"ModelStatement\";\n SyntaxKind[SyntaxKind[\"ModelExpression\"] = 14] = \"ModelExpression\";\n SyntaxKind[SyntaxKind[\"ModelProperty\"] = 15] = \"ModelProperty\";\n SyntaxKind[SyntaxKind[\"ModelSpreadProperty\"] = 16] = \"ModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ScalarStatement\"] = 17] = \"ScalarStatement\";\n SyntaxKind[SyntaxKind[\"InterfaceStatement\"] = 18] = \"InterfaceStatement\";\n SyntaxKind[SyntaxKind[\"UnionStatement\"] = 19] = \"UnionStatement\";\n SyntaxKind[SyntaxKind[\"UnionVariant\"] = 20] = \"UnionVariant\";\n SyntaxKind[SyntaxKind[\"EnumStatement\"] = 21] = \"EnumStatement\";\n SyntaxKind[SyntaxKind[\"EnumMember\"] = 22] = \"EnumMember\";\n SyntaxKind[SyntaxKind[\"EnumSpreadMember\"] = 23] = \"EnumSpreadMember\";\n SyntaxKind[SyntaxKind[\"AliasStatement\"] = 24] = \"AliasStatement\";\n SyntaxKind[SyntaxKind[\"DecoratorDeclarationStatement\"] = 25] = \"DecoratorDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionDeclarationStatement\"] = 26] = \"FunctionDeclarationStatement\";\n SyntaxKind[SyntaxKind[\"FunctionParameter\"] = 27] = \"FunctionParameter\";\n SyntaxKind[SyntaxKind[\"UnionExpression\"] = 28] = \"UnionExpression\";\n SyntaxKind[SyntaxKind[\"IntersectionExpression\"] = 29] = \"IntersectionExpression\";\n SyntaxKind[SyntaxKind[\"TupleExpression\"] = 30] = \"TupleExpression\";\n SyntaxKind[SyntaxKind[\"ArrayExpression\"] = 31] = \"ArrayExpression\";\n SyntaxKind[SyntaxKind[\"StringLiteral\"] = 32] = \"StringLiteral\";\n SyntaxKind[SyntaxKind[\"NumericLiteral\"] = 33] = \"NumericLiteral\";\n SyntaxKind[SyntaxKind[\"BooleanLiteral\"] = 34] = \"BooleanLiteral\";\n SyntaxKind[SyntaxKind[\"StringTemplateExpression\"] = 35] = \"StringTemplateExpression\";\n SyntaxKind[SyntaxKind[\"StringTemplateHead\"] = 36] = \"StringTemplateHead\";\n SyntaxKind[SyntaxKind[\"StringTemplateMiddle\"] = 37] = \"StringTemplateMiddle\";\n SyntaxKind[SyntaxKind[\"StringTemplateTail\"] = 38] = \"StringTemplateTail\";\n SyntaxKind[SyntaxKind[\"StringTemplateSpan\"] = 39] = \"StringTemplateSpan\";\n SyntaxKind[SyntaxKind[\"ExternKeyword\"] = 40] = \"ExternKeyword\";\n SyntaxKind[SyntaxKind[\"VoidKeyword\"] = 41] = \"VoidKeyword\";\n SyntaxKind[SyntaxKind[\"NeverKeyword\"] = 42] = \"NeverKeyword\";\n SyntaxKind[SyntaxKind[\"UnknownKeyword\"] = 43] = \"UnknownKeyword\";\n SyntaxKind[SyntaxKind[\"ValueOfExpression\"] = 44] = \"ValueOfExpression\";\n SyntaxKind[SyntaxKind[\"TypeReference\"] = 45] = \"TypeReference\";\n SyntaxKind[SyntaxKind[\"ProjectionReference\"] = 46] = \"ProjectionReference\";\n SyntaxKind[SyntaxKind[\"TemplateParameterDeclaration\"] = 47] = \"TemplateParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"EmptyStatement\"] = 48] = \"EmptyStatement\";\n SyntaxKind[SyntaxKind[\"InvalidStatement\"] = 49] = \"InvalidStatement\";\n SyntaxKind[SyntaxKind[\"LineComment\"] = 50] = \"LineComment\";\n SyntaxKind[SyntaxKind[\"BlockComment\"] = 51] = \"BlockComment\";\n SyntaxKind[SyntaxKind[\"Doc\"] = 52] = \"Doc\";\n SyntaxKind[SyntaxKind[\"DocText\"] = 53] = \"DocText\";\n SyntaxKind[SyntaxKind[\"DocParamTag\"] = 54] = \"DocParamTag\";\n SyntaxKind[SyntaxKind[\"DocPropTag\"] = 55] = \"DocPropTag\";\n SyntaxKind[SyntaxKind[\"DocReturnsTag\"] = 56] = \"DocReturnsTag\";\n SyntaxKind[SyntaxKind[\"DocErrorsTag\"] = 57] = \"DocErrorsTag\";\n SyntaxKind[SyntaxKind[\"DocTemplateTag\"] = 58] = \"DocTemplateTag\";\n SyntaxKind[SyntaxKind[\"DocUnknownTag\"] = 59] = \"DocUnknownTag\";\n SyntaxKind[SyntaxKind[\"Projection\"] = 60] = \"Projection\";\n SyntaxKind[SyntaxKind[\"ProjectionParameterDeclaration\"] = 61] = \"ProjectionParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSelector\"] = 62] = \"ProjectionModelSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionModelPropertySelector\"] = 63] = \"ProjectionModelPropertySelector\";\n SyntaxKind[SyntaxKind[\"ProjectionScalarSelector\"] = 64] = \"ProjectionScalarSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionOperationSelector\"] = 65] = \"ProjectionOperationSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionSelector\"] = 66] = \"ProjectionUnionSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionUnionVariantSelector\"] = 67] = \"ProjectionUnionVariantSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionInterfaceSelector\"] = 68] = \"ProjectionInterfaceSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumSelector\"] = 69] = \"ProjectionEnumSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionEnumMemberSelector\"] = 70] = \"ProjectionEnumMemberSelector\";\n SyntaxKind[SyntaxKind[\"ProjectionExpressionStatement\"] = 71] = \"ProjectionExpressionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionIfExpression\"] = 72] = \"ProjectionIfExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionBlockExpression\"] = 73] = \"ProjectionBlockExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionMemberExpression\"] = 74] = \"ProjectionMemberExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLogicalExpression\"] = 75] = \"ProjectionLogicalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionEqualityExpression\"] = 76] = \"ProjectionEqualityExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionUnaryExpression\"] = 77] = \"ProjectionUnaryExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionRelationalExpression\"] = 78] = \"ProjectionRelationalExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionArithmeticExpression\"] = 79] = \"ProjectionArithmeticExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionCallExpression\"] = 80] = \"ProjectionCallExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaExpression\"] = 81] = \"ProjectionLambdaExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionLambdaParameterDeclaration\"] = 82] = \"ProjectionLambdaParameterDeclaration\";\n SyntaxKind[SyntaxKind[\"ProjectionModelExpression\"] = 83] = \"ProjectionModelExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionModelProperty\"] = 84] = \"ProjectionModelProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionModelSpreadProperty\"] = 85] = \"ProjectionModelSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionSpreadProperty\"] = 86] = \"ProjectionSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ProjectionTupleExpression\"] = 87] = \"ProjectionTupleExpression\";\n SyntaxKind[SyntaxKind[\"ProjectionStatement\"] = 88] = \"ProjectionStatement\";\n SyntaxKind[SyntaxKind[\"ProjectionDecoratorReferenceExpression\"] = 89] = \"ProjectionDecoratorReferenceExpression\";\n SyntaxKind[SyntaxKind[\"Return\"] = 90] = \"Return\";\n SyntaxKind[SyntaxKind[\"JsNamespaceDeclaration\"] = 91] = \"JsNamespaceDeclaration\";\n SyntaxKind[SyntaxKind[\"TemplateArgument\"] = 92] = \"TemplateArgument\";\n SyntaxKind[SyntaxKind[\"TypeOfExpression\"] = 93] = \"TypeOfExpression\";\n SyntaxKind[SyntaxKind[\"ObjectLiteral\"] = 94] = \"ObjectLiteral\";\n SyntaxKind[SyntaxKind[\"ObjectLiteralProperty\"] = 95] = \"ObjectLiteralProperty\";\n SyntaxKind[SyntaxKind[\"ObjectLiteralSpreadProperty\"] = 96] = \"ObjectLiteralSpreadProperty\";\n SyntaxKind[SyntaxKind[\"ArrayLiteral\"] = 97] = \"ArrayLiteral\";\n SyntaxKind[SyntaxKind[\"ConstStatement\"] = 98] = \"ConstStatement\";\n SyntaxKind[SyntaxKind[\"CallExpression\"] = 99] = \"CallExpression\";\n SyntaxKind[SyntaxKind[\"ScalarConstructor\"] = 100] = \"ScalarConstructor\";\n})(SyntaxKind || (SyntaxKind = {}));\nexport var IdentifierKind;\n(function (IdentifierKind) {\n IdentifierKind[IdentifierKind[\"TypeReference\"] = 0] = \"TypeReference\";\n IdentifierKind[IdentifierKind[\"TemplateArgument\"] = 1] = \"TemplateArgument\";\n IdentifierKind[IdentifierKind[\"Decorator\"] = 2] = \"Decorator\";\n IdentifierKind[IdentifierKind[\"Function\"] = 3] = \"Function\";\n IdentifierKind[IdentifierKind[\"Using\"] = 4] = \"Using\";\n IdentifierKind[IdentifierKind[\"Declaration\"] = 5] = \"Declaration\";\n IdentifierKind[IdentifierKind[\"ModelExpressionProperty\"] = 6] = \"ModelExpressionProperty\";\n IdentifierKind[IdentifierKind[\"ModelStatementProperty\"] = 7] = \"ModelStatementProperty\";\n IdentifierKind[IdentifierKind[\"ObjectLiteralProperty\"] = 8] = \"ObjectLiteralProperty\";\n IdentifierKind[IdentifierKind[\"Other\"] = 9] = \"Other\";\n})(IdentifierKind || (IdentifierKind = {}));\n/** Used to explicitly specify that a diagnostic has no target. */\nexport const NoTarget = Symbol.for(\"NoTarget\");\nexport var ListenerFlow;\n(function (ListenerFlow) {\n /**\n * Do not navigate any containing or referenced type.\n */\n ListenerFlow[ListenerFlow[\"NoRecursion\"] = 1] = \"NoRecursion\";\n})(ListenerFlow || (ListenerFlow = {}));\n//# sourceMappingURL=types.js.map","import { createDiagnostic } from \"../core/messages.js\";\nimport { getDirectoryPath, isPathAbsolute, isUrl, joinPaths, normalizePath, resolvePath, } from \"../core/path-utils.js\";\nimport { createSourceFile } from \"../core/source-file.js\";\nimport { NoTarget, } from \"../core/types.js\";\nexport { typespecVersion } from \"../manifest.js\";\n/**\n * Recursively calls Object.freeze such that all objects and arrays\n * referenced are frozen.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepFreeze(value) {\n if (Array.isArray(value)) {\n value.forEach(deepFreeze);\n }\n else if (typeof value === \"object\") {\n for (const prop in value) {\n deepFreeze(value[prop]);\n }\n }\n return Object.freeze(value);\n}\n/**\n * Deeply clones an object.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepClone(value) {\n if (Array.isArray(value)) {\n return value.map(deepClone);\n }\n if (typeof value === \"object\") {\n const obj = {};\n for (const prop in value) {\n obj[prop] = deepClone(value[prop]);\n }\n return obj;\n }\n return value;\n}\n/**\n * Checks if two objects are deeply equal.\n *\n * Does not support cycles. Intended to be used only on plain data that can\n * be directly represented in JSON.\n */\nexport function deepEquals(left, right) {\n if (left === right) {\n return true;\n }\n if (left === null || right === null || typeof left !== \"object\" || typeof right !== \"object\") {\n return false;\n }\n if (Array.isArray(left)) {\n return Array.isArray(right) ? arrayEquals(left, right, deepEquals) : false;\n }\n return mapEquals(new Map(Object.entries(left)), new Map(Object.entries(right)), deepEquals);\n}\n/**\n * Check if two arrays have the same elements.\n *\n * @param equals Optional callback for element equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function arrayEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.length !== right.length) {\n return false;\n }\n for (let i = 0; i < left.length; i++) {\n if (!equals(left[i], right[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Check if two maps have the same entries.\n *\n * @param equals Optional callback for value equality comparison.\n * Default is to compare by identity using `===`.\n */\nexport function mapEquals(left, right, equals = (x, y) => x === y) {\n if (left === right) {\n return true;\n }\n if (left.size !== right.size) {\n return false;\n }\n for (const [key, value] of left) {\n if (!right.has(key) || !equals(value, right.get(key))) {\n return false;\n }\n }\n return true;\n}\nexport async function getNormalizedRealPath(host, path) {\n try {\n return normalizePath(await host.realpath(path));\n }\n catch (error) {\n // This could mean the file got deleted but VSCode still has it in memory. So keep the original path.\n if (error.code === \"ENOENT\") {\n return normalizePath(path);\n }\n throw error;\n }\n}\nexport async function doIO(action, path, reportDiagnostic, options) {\n let result;\n try {\n result = await action(path);\n }\n catch (e) {\n let diagnostic;\n let target = options?.diagnosticTarget ?? NoTarget;\n // blame the JS file, not the TypeSpec import statement for JS syntax errors.\n if (e instanceof SyntaxError && options?.jsDiagnosticTarget) {\n target = options.jsDiagnosticTarget;\n }\n switch (e.code) {\n case \"ENOENT\":\n if (options?.allowFileNotFound) {\n return undefined;\n }\n diagnostic = createDiagnostic({ code: \"file-not-found\", target, format: { path } });\n break;\n default:\n diagnostic = createDiagnostic({\n code: \"file-load\",\n target,\n format: { message: e.message },\n });\n break;\n }\n reportDiagnostic(diagnostic);\n return undefined;\n }\n return result;\n}\nexport async function loadFile(host, path, load, reportDiagnostic, options) {\n const file = await doIO(host.readFile, path, reportDiagnostic, options);\n if (!file) {\n return [undefined, createSourceFile(\"\", path)];\n }\n let data;\n try {\n data = load(file.text);\n }\n catch (e) {\n reportDiagnostic({\n code: \"file-load\",\n message: e.message,\n severity: \"error\",\n target: { file, pos: 1, end: 1 },\n });\n return [undefined, file];\n }\n return [data, file];\n}\nexport async function readUrlOrPath(host, pathOrUrl) {\n if (isUrl(pathOrUrl)) {\n return host.readUrl(pathOrUrl);\n }\n return host.readFile(pathOrUrl);\n}\nexport function resolveRelativeUrlOrPath(base, relativeOrAbsolute) {\n if (isUrl(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isPathAbsolute(relativeOrAbsolute)) {\n return relativeOrAbsolute;\n }\n else if (isUrl(base)) {\n return new URL(relativeOrAbsolute, base).href;\n }\n else {\n return resolvePath(base, relativeOrAbsolute);\n }\n}\n/**\n * A specially typed version of `Array.isArray` to work around [this issue](https://github.com/microsoft/TypeScript/issues/17002).\n */\nexport function isArray(arg) {\n return Array.isArray(arg);\n}\n/**\n * Check if argument is not undefined.\n */\nexport function isDefined(arg) {\n return arg !== undefined;\n}\nexport function isWhitespaceStringOrUndefined(str) {\n return !str || /^\\s*$/.test(str);\n}\nexport function firstNonWhitespaceCharacterIndex(line) {\n return line.search(/\\S/);\n}\nexport function distinctArray(arr, keySelector) {\n const map = new Map();\n for (const item of arr) {\n map.set(keySelector(item), item);\n }\n return Array.from(map.values());\n}\nexport function tryParseJson(content) {\n try {\n return JSON.parse(content);\n }\n catch {\n return undefined;\n }\n}\nexport function debounce(fn, delayInMs) {\n let timer;\n return function (...args) {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n fn.apply(this, args);\n }, delayInMs);\n };\n}\n/**\n * Remove undefined properties from object.\n */\nexport function omitUndefined(data) {\n return Object.fromEntries(Object.entries(data).filter(([k, v]) => v !== undefined));\n}\n/**\n * Look for the project root by looking up until a `package.json` is found.\n * @param path Path to start looking\n * @param lookIn\n */\nexport async function findProjectRoot(statFn, path) {\n let current = path;\n while (true) {\n const pkgPath = joinPaths(current, \"package.json\");\n const stat = await doIO(() => statFn(pkgPath), pkgPath, () => { });\n if (stat?.isFile()) {\n return current;\n }\n const parent = getDirectoryPath(current);\n if (parent === current) {\n return undefined;\n }\n current = parent;\n }\n}\n/**\n * Extract package.json's tspMain entry point in a given path. Note, it takes into\n * back compat for deprecated cadlMain\n * @param path Path that contains package.json\n * @param reportDiagnostic optional diagnostic handler.\n */\nexport function resolveTspMain(packageJson) {\n if (packageJson?.tspMain !== undefined) {\n return packageJson.tspMain;\n }\n if (packageJson?.cadlMain !== undefined) {\n return packageJson.cadlMain;\n }\n return undefined;\n}\n/**\n * A map keyed by a set of objects.\n *\n * This is likely non-optimal.\n */\nexport class MultiKeyMap {\n #currentId = 0;\n #idMap = new WeakMap();\n #items = new Map();\n get(items) {\n return this.#items.get(this.compositeKeyFor(items));\n }\n set(items, value) {\n const key = this.compositeKeyFor(items);\n this.#items.set(key, value);\n }\n compositeKeyFor(items) {\n return items.map((i) => this.keyFor(i)).join(\",\");\n }\n keyFor(item) {\n if (this.#idMap.has(item)) {\n return this.#idMap.get(item);\n }\n const id = this.#currentId++;\n this.#idMap.set(item, id);\n return id;\n }\n}\n/**\n * A map with exactly two keys per value.\n *\n * Functionally the same as `MultiKeyMap<[K1, K2], V>`, but more efficient.\n * @hidden bug in typedoc\n */\nexport class TwoLevelMap extends Map {\n /**\n * Get an existing entry in the map or add a new one if not found.\n *\n * @param key1 The first key\n * @param key2 The second key\n * @param create A callback to create the new entry when not found.\n * @param sentinel An optional sentinel value to use to indicate that the\n * entry is being created.\n */\n getOrAdd(key1, key2, create, sentinel) {\n let map = this.get(key1);\n if (map === undefined) {\n map = new Map();\n this.set(key1, map);\n }\n let entry = map.get(key2);\n if (entry === undefined) {\n if (sentinel !== undefined) {\n map.set(key2, sentinel);\n }\n entry = create();\n map.set(key2, entry);\n }\n return entry;\n }\n}\n// Adapted from https://github.com/microsoft/TypeScript/blob/bc52ff6f4be9347981de415a35da90497eae84ac/src/compiler/core.ts#L1507\nexport class Queue {\n #elements;\n #headIndex = 0;\n constructor(elements) {\n this.#elements = elements?.slice() ?? [];\n }\n isEmpty() {\n return this.#headIndex === this.#elements.length;\n }\n enqueue(...items) {\n this.#elements.push(...items);\n }\n dequeue() {\n if (this.isEmpty()) {\n throw new Error(\"Queue is empty.\");\n }\n const result = this.#elements[this.#headIndex];\n this.#elements[this.#headIndex] = undefined; // Don't keep referencing dequeued item\n this.#headIndex++;\n // If more than half of the queue is empty, copy the remaining elements to the\n // front and shrink the array (unless we'd be saving fewer than 100 slots)\n if (this.#headIndex > 100 && this.#headIndex > this.#elements.length >> 1) {\n const newLength = this.#elements.length - this.#headIndex;\n this.#elements.copyWithin(0, this.#headIndex);\n this.#elements.length = newLength;\n this.#headIndex = 0;\n }\n return result;\n }\n}\n/**\n * Casts away readonly typing.\n *\n * Use it like this when it is safe to override readonly typing:\n * mutate(item).prop = value;\n */\nexport function mutate(value) {\n return value;\n}\nexport function createStringMap(caseInsensitive) {\n return caseInsensitive ? new CaseInsensitiveMap() : new Map();\n}\nclass CaseInsensitiveMap extends Map {\n get(key) {\n return super.get(key.toUpperCase());\n }\n set(key, value) {\n return super.set(key.toUpperCase(), value);\n }\n has(key) {\n return super.has(key.toUpperCase());\n }\n delete(key) {\n return super.delete(key.toUpperCase());\n }\n}\nexport function createRekeyableMap(entries) {\n return new RekeyableMapImpl(entries);\n}\nclass RekeyableMapImpl {\n #keys = new Map();\n #values = new Map();\n constructor(entries) {\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n clear() {\n this.#keys.clear();\n this.#values.clear();\n }\n delete(key) {\n const keyItem = this.#keys.get(key);\n if (keyItem) {\n this.#keys.delete(key);\n return this.#values.delete(keyItem);\n }\n return false;\n }\n forEach(callbackfn, thisArg) {\n this.#values.forEach((value, keyItem) => {\n callbackfn(value, keyItem.key, this);\n }, thisArg);\n }\n get(key) {\n const keyItem = this.#keys.get(key);\n return keyItem ? this.#values.get(keyItem) : undefined;\n }\n has(key) {\n return this.#keys.has(key);\n }\n set(key, value) {\n let keyItem = this.#keys.get(key);\n if (!keyItem) {\n keyItem = { key };\n this.#keys.set(key, keyItem);\n }\n this.#values.set(keyItem, value);\n return this;\n }\n get size() {\n return this.#values.size;\n }\n *entries() {\n for (const [k, v] of this.#values) {\n yield [k.key, v];\n }\n }\n *keys() {\n for (const k of this.#values.keys()) {\n yield k.key;\n }\n }\n values() {\n return this.#values.values();\n }\n [Symbol.iterator]() {\n return this.entries();\n }\n [Symbol.toStringTag] = \"RekeyableMap\";\n rekey(existingKey, newKey) {\n const keyItem = this.#keys.get(existingKey);\n if (!keyItem) {\n return false;\n }\n this.#keys.delete(existingKey);\n const newKeyItem = this.#keys.get(newKey);\n if (newKeyItem) {\n this.#values.delete(newKeyItem);\n }\n keyItem.key = newKey;\n this.#keys.set(newKey, keyItem);\n return true;\n }\n}\n//# sourceMappingURL=misc.js.map","import { mutate } from \"../utils/misc.js\";\n/**\n * Create a new diagnostics creator.\n * @param diagnostics Map of the potential diagnostics.\n * @param libraryName Optional name of the library if in the scope of a library.\n * @returns @see DiagnosticCreator\n */\nexport function createDiagnosticCreator(diagnostics, libraryName) {\n const errorMessage = libraryName\n ? `It must match one of the code defined in the library '${libraryName}'`\n : \"It must match one of the code defined in the compiler.\";\n function createDiagnostic(diagnostic) {\n const diagnosticDef = diagnostics[diagnostic.code];\n if (!diagnosticDef) {\n const codeStr = Object.keys(diagnostics)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const code = String(diagnostic.code);\n throw new Error(`Unexpected diagnostic code '${code}'. ${errorMessage}. Defined codes:\\n${codeStr}`);\n }\n const message = diagnosticDef.messages[diagnostic.messageId ?? \"default\"];\n if (!message) {\n const codeStr = Object.keys(diagnosticDef.messages)\n .map((x) => ` - ${x}`)\n .join(\"\\n\");\n const messageId = String(diagnostic.messageId);\n const code = String(diagnostic.code);\n throw new Error(`Unexpected message id '${messageId}'. ${errorMessage} for code '${code}'. Defined codes:\\n${codeStr}`);\n }\n const messageStr = typeof message === \"string\" ? message : message(diagnostic.format);\n const result = {\n code: libraryName ? `${libraryName}/${String(diagnostic.code)}` : diagnostic.code.toString(),\n severity: diagnosticDef.severity,\n message: messageStr,\n target: diagnostic.target,\n };\n if (diagnosticDef.url) {\n mutate(result).url = diagnosticDef.url;\n }\n if (diagnostic.codefixes) {\n mutate(result).codefixes = diagnostic.codefixes;\n }\n return result;\n }\n function reportDiagnostic(program, diagnostic) {\n const diag = createDiagnostic(diagnostic);\n program.reportDiagnostic(diag);\n }\n return {\n diagnostics,\n createDiagnostic,\n reportDiagnostic,\n };\n}\n//# sourceMappingURL=diagnostic-creator.js.map","export function paramMessage(strings, ...keys) {\n const template = (dict) => {\n const result = [strings[0]];\n keys.forEach((key, i) => {\n const value = dict[key];\n if (value !== undefined) {\n result.push(value);\n }\n result.push(strings[i + 1]);\n });\n return result.join(\"\");\n };\n template.keys = keys;\n return template;\n}\n//# sourceMappingURL=param-message.js.map","// Static assert: this won't compile if one of the entries above is invalid.\nimport { createDiagnosticCreator } from \"./diagnostic-creator.js\";\nimport { paramMessage } from \"./param-message.js\";\nconst diagnostics = {\n /**\n * Scanner errors.\n */\n \"digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Digit expected.\",\n },\n },\n \"hex-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Hexadecimal digit expected.\",\n },\n },\n \"binary-digit-expected\": {\n severity: \"error\",\n messages: {\n default: \"Binary digit expected.\",\n },\n },\n unterminated: {\n severity: \"error\",\n messages: {\n default: paramMessage `Unterminated ${\"token\"}.`,\n },\n },\n \"creating-file\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Error creating single file: ${\"filename\"}, ${\"error\"}`,\n },\n },\n \"invalid-escape-sequence\": {\n severity: \"error\",\n messages: {\n default: \"Invalid escape sequence.\",\n },\n },\n \"no-new-line-start-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"String content in triple quotes must begin on a new line.\",\n },\n },\n \"no-new-line-end-triple-quote\": {\n severity: \"error\",\n messages: {\n default: \"Closing triple quotes must begin on a new line.\",\n },\n },\n \"triple-quote-indent\": {\n severity: \"error\",\n description: \"Report when a triple-quoted string has lines with less indentation as the closing triple quotes.\",\n url: \"https://typespec.io/docs/standard-library/diags/triple-quote-indent\",\n messages: {\n default: \"All lines in triple-quoted string lines must have the same indentation as closing triple quotes.\",\n },\n },\n \"invalid-character\": {\n severity: \"error\",\n messages: {\n default: \"Invalid character.\",\n },\n },\n /**\n * Utils\n */\n \"file-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File ${\"path\"} not found.`,\n },\n },\n \"file-load\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"message\"}`,\n },\n },\n /**\n * Init templates\n */\n \"init-template-invalid-json\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unable to parse ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n \"init-template-download-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to download template from ${\"url\"}: ${\"message\"}. Check that the template URL is correct.`,\n },\n },\n /**\n * Parser errors.\n */\n \"multiple-blockless-namespace\": {\n severity: \"error\",\n messages: {\n default: \"Cannot use multiple blockless namespaces.\",\n },\n },\n \"blockless-namespace-first\": {\n severity: \"error\",\n messages: {\n default: \"Blockless namespaces can't follow other declarations.\",\n topLevel: \"Blockless namespace can only be top-level.\",\n },\n },\n \"import-first\": {\n severity: \"error\",\n messages: {\n default: \"Imports must come prior to namespaces or other declarations.\",\n topLevel: \"Imports must be top-level and come prior to namespaces or other declarations.\",\n },\n },\n \"token-expected\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"token\"} expected.`,\n unexpected: paramMessage `Unexpected token ${\"token\"}`,\n numericOrStringLiteral: \"Expected numeric or string literal.\",\n identifier: \"Identifier expected.\",\n projectionDirection: \"from or to expected.\",\n expression: \"Expression expected.\",\n statement: \"Statement expected.\",\n property: \"Property expected.\",\n enumMember: \"Enum member expected.\",\n typeofTarget: \"Typeof expects a value literal or value reference.\",\n },\n },\n \"unknown-directive\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Unknown directive '#${\"id\"}'`,\n },\n },\n \"augment-decorator-target\": {\n severity: \"error\",\n messages: {\n default: `Augment decorator first argument must be a type reference.`,\n noInstance: `Cannot reference template instances.`,\n noModelExpression: `Cannot augment model expressions.`,\n noUnionExpression: `Cannot augment union expressions.`,\n },\n },\n \"duplicate-decorator\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used twice on the same declaration.`,\n },\n },\n \"decorator-conflict\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} cannot be used with decorator ${\"otherDecoratorName\"} on the same declaration.`,\n },\n },\n \"reserved-identifier\": {\n severity: \"error\",\n messages: {\n default: \"Keyword cannot be used as identifier.\",\n },\n },\n \"invalid-directive-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot place directive on ${\"nodeName\"}.`,\n },\n },\n \"invalid-decorator-location\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot decorate ${\"nodeName\"}.`,\n },\n },\n \"invalid-projection\": {\n severity: \"error\",\n messages: {\n default: \"Invalid projection\",\n wrongType: \"Non-projection can't be used to project\",\n noTo: \"Projection missing to projection\",\n projectionError: paramMessage `An error occurred when projecting this type: ${\"message\"}`,\n },\n },\n \"default-required\": {\n severity: \"error\",\n messages: {\n default: \"Required template parameters must not follow optional template parameters\",\n },\n },\n \"invalid-template-argument-name\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter argument names must be valid, bare identifiers.\",\n },\n },\n \"invalid-template-default\": {\n severity: \"error\",\n messages: {\n default: \"Template parameter defaults can only reference previously declared type parameters.\",\n },\n },\n \"required-parameter-first\": {\n severity: \"error\",\n messages: {\n default: \"A required parameter cannot follow an optional parameter.\",\n },\n },\n \"rest-parameter-last\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be last in a parameter list.\",\n },\n },\n \"rest-parameter-required\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter cannot be optional.\",\n },\n },\n /**\n * Parser doc comment warnings.\n * Design goal: Malformed doc comments should only produce warnings, not errors.\n */\n \"doc-invalid-identifier\": {\n severity: \"warning\",\n messages: {\n default: \"Invalid identifier.\",\n tag: \"Invalid tag name. Use backticks around code if this was not meant to be a tag.\",\n param: \"Invalid parameter name.\",\n prop: \"Invalid property name.\",\n templateParam: \"Invalid template parameter name.\",\n },\n },\n /**\n * Checker\n */\n \"using-invalid-ref\": {\n severity: \"error\",\n messages: {\n default: \"Using must refer to a namespace\",\n },\n },\n \"invalid-type-ref\": {\n severity: \"error\",\n messages: {\n default: \"Invalid type reference\",\n decorator: \"Can't put a decorator in a type\",\n function: \"Can't use a function as a type\",\n },\n },\n \"invalid-template-args\": {\n severity: \"error\",\n messages: {\n default: \"Invalid template arguments.\",\n notTemplate: \"Can't pass template arguments to non-templated type\",\n tooMany: \"Too many template arguments provided.\",\n unknownName: paramMessage `No parameter named '${\"name\"}' exists in the target template.`,\n positionalAfterNamed: \"Positional template arguments cannot follow named arguments in the same argument list.\",\n missing: paramMessage `Template argument '${\"name\"}' is required and not specified.`,\n specifiedAgain: paramMessage `Cannot specify template argument '${\"name\"}' again.`,\n },\n },\n \"intersect-non-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect non-model types (including union types).\",\n },\n },\n \"intersect-invalid-index\": {\n severity: \"error\",\n messages: {\n default: \"Cannot intersect incompatible models.\",\n never: \"Cannot intersect a model that cannot hold properties.\",\n array: \"Cannot intersect an array model.\",\n },\n },\n \"incompatible-indexer\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property is incompatible with indexer:\\n${\"message\"}`,\n },\n },\n \"no-array-properties\": {\n severity: \"error\",\n messages: {\n default: \"Array models cannot have any properties.\",\n },\n },\n \"intersect-duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Intersection contains duplicate property definitions for ${\"propName\"}`,\n },\n },\n \"invalid-decorator\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"id\"} is not a decorator`,\n },\n },\n \"invalid-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot resolve ${\"id\"}`,\n identifier: paramMessage `Unknown identifier ${\"id\"}`,\n decorator: paramMessage `Unknown decorator @${\"id\"}`,\n inDecorator: paramMessage `Cannot resolve ${\"id\"} in decorator`,\n underNamespace: paramMessage `Namespace ${\"namespace\"} doesn't have member ${\"id\"}`,\n member: paramMessage `${\"kind\"} doesn't have member ${\"id\"}`,\n metaProperty: paramMessage `${\"kind\"} doesn't have meta property ${\"id\"}`,\n node: paramMessage `Cannot resolve '${\"id\"}' in node ${\"nodeName\"} since it has no members. Did you mean to use \"::\" instead of \".\"?`,\n },\n },\n \"duplicate-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model already has a property named ${\"propName\"}`,\n },\n },\n \"override-property-mismatch\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Model has an inherited property named ${\"propName\"} of type ${\"propType\"} which cannot override type ${\"parentType\"}`,\n disallowedOptionalOverride: paramMessage `Model has a required inherited property named ${\"propName\"} which cannot be overridden as optional`,\n },\n },\n \"extend-scalar\": {\n severity: \"error\",\n messages: {\n default: \"Scalar must extend other scalars.\",\n },\n },\n \"extend-model\": {\n severity: \"error\",\n messages: {\n default: \"Models must extend other models.\",\n modelExpression: \"Models cannot extend model expressions.\",\n },\n },\n \"is-model\": {\n severity: \"error\",\n messages: {\n default: \"Model `is` must specify another model.\",\n modelExpression: \"Model `is` cannot specify a model expression.\",\n },\n },\n \"is-operation\": {\n severity: \"error\",\n messages: {\n default: \"Operation can only reuse the signature of another operation.\",\n },\n },\n \"spread-model\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-model type.\",\n neverIndex: \"Cannot spread type because it cannot hold properties.\",\n selfSpread: \"Cannot spread type within its own declaration.\",\n },\n },\n \"unsupported-default\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Default must be have a value type but has type '${\"type\"}'.`,\n },\n },\n \"spread-object\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread properties of non-object type.\",\n },\n },\n \"expect-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `${\"name\"} refers to a type, but is being used as a value here.`,\n model: paramMessage `${\"name\"} refers to a model type, but is being used as a value here. Use #{} to create an object value.`,\n tuple: paramMessage `${\"name\"} refers to a tuple type, but is being used as a value here. Use #[] to create an array value.`,\n templateConstraint: paramMessage `${\"name\"} template parameter can be a type but is being used as a value here.`,\n },\n },\n \"non-callable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type ${\"type\"} is not is not callable.`,\n },\n },\n \"named-init-required\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Only scalar deriving from 'string', 'numeric' or 'boolean' can be instantited without a named constructor.`,\n },\n },\n \"invalid-primitive-init\": {\n severity: \"error\",\n messages: {\n default: `Instantiating scalar deriving from 'string', 'numeric' or 'boolean' can only take a single argument.`,\n invalidArg: paramMessage `Expected a single argument of type ${\"expected\"} but got ${\"actual\"}.`,\n },\n },\n \"ambiguous-scalar-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Value ${\"value\"} type is ambiguous between ${\"types\"}. To resolve be explicit when instantiating this value(e.g. '${\"example\"}(${\"value\"})').`,\n },\n },\n unassignable: {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"sourceType\"}' is not assignable to type '${\"targetType\"}'`,\n },\n },\n \"property-unassignable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Types of property '${\"propName\"}' are incompatible`,\n },\n },\n \"property-required\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' is required in type '${\"targetType\"}' but here is optional.`,\n },\n },\n \"value-in-type\": {\n severity: \"error\",\n messages: {\n default: \"A value cannot be used as a type.\",\n referenceTemplate: \"Template parameter can be passed values but is used as a type.\",\n noTemplateConstraint: \"Template parameter has no constraint but a value is passed. Add `extends valueof unknown` to accept any value.\",\n },\n },\n \"no-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' cannot be defined because model cannot hold properties.`,\n },\n },\n \"missing-index\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Index signature for type '${\"indexType\"}' is missing in type '${\"sourceType\"}'.`,\n },\n },\n \"missing-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' is missing on type '${\"sourceType\"}' but required in '${\"targetType\"}'`,\n },\n },\n \"unexpected-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Object value may only specify known properties, and '${\"propertyName\"}' does not exist in type '${\"type\"}'.`,\n },\n },\n \"extends-interface\": {\n severity: \"error\",\n messages: {\n default: \"Interfaces can only extend other interfaces\",\n },\n },\n \"extends-interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface extends cannot have duplicate members. The duplicate member is named ${\"name\"}`,\n },\n },\n \"interface-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Interface already has a member named ${\"name\"}`,\n },\n },\n \"union-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union already has a variant named ${\"name\"}`,\n },\n },\n \"enum-member-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum already has a member named ${\"name\"}`,\n },\n },\n \"constructor-duplicate\": {\n severity: \"error\",\n messages: {\n default: paramMessage `A constructor already exists with name ${\"name\"}`,\n },\n },\n \"spread-enum\": {\n severity: \"error\",\n messages: {\n default: \"Cannot spread members of non-enum type.\",\n },\n },\n \"decorator-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Decorator ${\"decoratorName\"} failed!\\n\\n${\"error\"}`,\n },\n },\n \"rest-parameter-array\": {\n severity: \"error\",\n messages: {\n default: \"A rest parameter must be of an array type.\",\n },\n },\n \"decorator-extern\": {\n severity: \"error\",\n messages: {\n default: \"A decorator declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"function-extern\": {\n severity: \"error\",\n messages: {\n default: \"A function declaration must be prefixed with the 'extern' modifier.\",\n },\n },\n \"missing-implementation\": {\n severity: \"error\",\n messages: {\n default: \"Extern declaration must have an implementation in JS file.\",\n },\n },\n \"overload-same-parent\": {\n severity: \"error\",\n messages: {\n default: `Overload must be in the same interface or namespace.`,\n },\n },\n shadow: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Shadowing parent template parameter with the same name \"${\"name\"}\"`,\n },\n },\n \"invalid-deprecation-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `#deprecation directive is expecting a string literal as the message but got a \"${\"kind\"}\"`,\n missing: \"#deprecation directive is expecting a message argument but none was provided.\",\n },\n },\n \"duplicate-deprecation\": {\n severity: \"warning\",\n messages: {\n default: \"The #deprecated directive cannot be used more than once on the same declaration.\",\n },\n },\n /**\n * Configuration\n */\n \"config-invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument \"${\"name\"}\" is not defined as a parameter in the config.`,\n },\n },\n \"config-circular-variable\": {\n severity: \"error\",\n messages: {\n default: paramMessage `There is a circular reference to variable \"${\"name\"}\" in the cli configuration or arguments.`,\n },\n },\n \"config-path-absolute\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Path \"${\"path\"}\" cannot be relative. Use {cwd} or {project-root} to specify what the path should be relative to.`,\n },\n },\n \"config-invalid-name\": {\n severity: \"error\",\n messages: {\n default: paramMessage `The configuration name \"${\"name\"}\" is invalid because it contains a dot (\".\"). Using a dot will conflict with using nested configuration values.`,\n },\n },\n \"path-unix-style\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Path should use unix style separators. Use \"/\" instead of \"\\\\\".`,\n },\n },\n \"config-path-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `No configuration file found at config path \"${\"path\"}\".`,\n },\n },\n /**\n * Program\n */\n \"dynamic-import\": {\n severity: \"error\",\n messages: {\n default: \"Dynamically generated TypeSpec cannot have imports\",\n },\n },\n \"invalid-import\": {\n severity: \"error\",\n messages: {\n default: \"Import paths must reference either a directory, a .tsp file, or .js file\",\n },\n },\n \"invalid-main\": {\n severity: \"error\",\n messages: {\n default: \"Main file must either be a .tsp file or a .js file.\",\n },\n },\n \"import-not-found\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Couldn't resolve import \"${\"path\"}\"`,\n },\n },\n \"library-invalid\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Library \"${\"path\"}\" is invalid: ${\"message\"}`,\n },\n },\n \"incompatible-library\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Multiple versions of \"${\"name\"}\" library were loaded:\\n${\"versionMap\"}`,\n },\n },\n \"compiler-version-mismatch\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `Current TypeSpec compiler conflicts with local version of @typespec/compiler referenced in ${\"basedir\"}. \\nIf this warning occurs on the command line, try running \\`typespec\\` with a working directory of ${\"basedir\"}. \\nIf this warning occurs in the IDE, try configuring the \\`tsp-server\\` path to ${\"betterTypeSpecServerPath\"}.\\n Expected: ${\"expected\"}\\n Resolved: ${\"actual\"}`,\n },\n },\n \"duplicate-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate name: \"${\"name\"}\"`,\n },\n },\n \"decorator-decl-target\": {\n severity: \"error\",\n messages: {\n default: \"dec must have at least one parameter.\",\n required: \"dec first parameter must be required.\",\n },\n },\n \"mixed-string-template\": {\n severity: \"error\",\n messages: {\n default: \"String template is interpolating values and types. It must be either all values to produce a string value or or all types for string template type.\",\n },\n },\n \"non-literal-string-template\": {\n severity: \"error\",\n messages: {\n default: \"Value interpolated in this string template cannot be converted to a string. Only literal types can be automatically interpolated.\",\n },\n },\n /**\n * Binder\n */\n \"ambiguous-symbol\": {\n severity: \"error\",\n messages: {\n default: paramMessage `\"${\"name\"}\" is an ambiguous name between ${\"duplicateNames\"}. Try using fully qualified name instead: ${\"duplicateNames\"}`,\n },\n },\n \"duplicate-using\": {\n severity: \"error\",\n messages: {\n default: paramMessage `duplicate using of \"${\"usingName\"}\" namespace`,\n },\n },\n /**\n * Library\n */\n \"on-validate-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `onValidate failed with errors. ${\"error\"}`,\n },\n },\n \"invalid-emitter\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Requested emitter package ${\"emitterPackage\"} does not provide an \"$onEmit\" function.`,\n },\n },\n \"js-error\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Failed to load ${\"specifier\"} due to the following JS error: ${\"error\"}`,\n },\n },\n \"missing-import\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Emitter '${\"emitterName\"}' requires '${\"requiredImport\"}' to be imported. Add 'import \"${\"requiredImport\"}\".`,\n },\n },\n /**\n * Linter\n */\n \"invalid-rule-ref\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Reference \"${\"ref\"}\" is not a valid reference to a rule or ruleset. It must be in the following format: \"<library-name>:<rule-name>\"`,\n },\n },\n \"unknown-rule\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"unknown-rule-set\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule set \"${\"ruleSetName\"}\" is not found in library \"${\"libraryName\"}\"`,\n },\n },\n \"rule-enabled-disabled\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Rule \"${\"ruleName\"}\" has been enabled and disabled in the same ruleset.`,\n },\n },\n /**\n * Formatter\n */\n \"format-failed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `File '${\"file\"}' failed to format. ${\"details\"}`,\n },\n },\n /**\n * Decorator\n */\n \"invalid-pattern-regex\": {\n severity: \"warning\",\n messages: {\n default: \"@pattern decorator expects a valid regular expression pattern.\",\n },\n },\n \"decorator-wrong-target\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"}`,\n withExpected: paramMessage `Cannot apply ${\"decorator\"} decorator to ${\"to\"} since it is not assignable to ${\"expected\"}`,\n },\n },\n \"invalid-argument\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Argument of type '${\"value\"}' is not assignable to parameter of type '${\"expected\"}'`,\n },\n },\n \"invalid-argument-count\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Expected ${\"expected\"} arguments, but got ${\"actual\"}.`,\n atLeast: paramMessage `Expected at least ${\"expected\"} arguments, but got ${\"actual\"}.`,\n },\n },\n \"known-values-invalid-enum\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Enum cannot be used on this type. Member ${\"member\"} is not assignable to type ${\"type\"}.`,\n },\n },\n \"invalid-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"kind\"}' is not a value type.`,\n atPath: paramMessage `Type '${\"kind\"}' of '${\"path\"}' is not a value type.`,\n },\n },\n deprecated: {\n severity: \"warning\",\n messages: {\n default: paramMessage `Deprecated: ${\"message\"}`,\n },\n },\n \"no-optional-key\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propertyName\"}' marked as key cannot be optional.`,\n },\n },\n \"invalid-discriminated-union\": {\n severity: \"error\",\n messages: {\n default: \"\",\n noAnonVariants: \"Unions with anonymous variants cannot be discriminated\",\n },\n },\n \"invalid-discriminated-union-variant\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Union variant \"${\"name\"}\" must be a model type.`,\n noEnvelopeModel: paramMessage `Union variant \"${\"name\"}\" must be a model type when the union has envelope: none.`,\n discriminantMismatch: paramMessage `Variant \"${\"name\"}\" explicitly defines the discriminator property \"${\"discriminant\"}\" but the value \"${\"propertyValue\"}\" do not match the variant name \"${\"variantName\"}\".`,\n duplicateDefaultVariant: `Discriminated union only allow a single default variant(Without a variant name).`,\n noDiscriminant: paramMessage `Variant \"${\"name\"}\" type is missing the discriminant property \"${\"discriminant\"}\".`,\n wrongDiscriminantType: paramMessage `Variant \"${\"name\"}\" type's discriminant property \"${\"discriminant\"}\" must be a string literal or string enum member.`,\n },\n },\n \"missing-discriminator-property\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Each derived model of a discriminated model type should have set the discriminator property(\"${\"discriminator\"}\") or have a derived model which has. Add \\`${\"discriminator\"}: \"<discriminator-value>\"\\``,\n },\n },\n \"invalid-discriminator-value\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Discriminator value should be a string, union of string or string enum but was ${\"kind\"}.`,\n required: \"The discriminator property must be a required property.\",\n duplicate: paramMessage `Discriminator value \"${\"discriminator\"}\" is already used in another variant.`,\n },\n },\n \"invalid-encode\": {\n severity: \"error\",\n messages: {\n default: \"Invalid encoding\",\n wrongType: paramMessage `Encoding '${\"encoding\"}' cannot be used on type '${\"type\"}'. Expected: ${\"expected\"}.`,\n wrongEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'.`,\n wrongNumericEncodingType: paramMessage `Encoding '${\"encoding\"}' on type '${\"type\"}' is expected to be serialized as '${\"expected\"}' but got '${\"actual\"}'. Set '@encode' 2nd parameter to be of type ${\"expected\"}. e.g. '@encode(\"${\"encoding\"}\", int32)'`,\n firstArg: `First argument of \"@encode\" must be the encoding name or the string type when encoding numeric types.`,\n },\n },\n \"invalid-mime-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Invalid mime type '${\"mimeType\"}'`,\n },\n },\n \"no-mime-type-suffix\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Cannot use mime type '${\"mimeType\"}' with suffix '${\"suffix\"}'. Use a simple mime \\`type/subtype\\` instead.`,\n },\n },\n \"encoded-name-conflict\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Encoded name '${\"name\"}' conflicts with existing member name for mime type '${\"mimeType\"}'`,\n duplicate: paramMessage `Same encoded name '${\"name\"}' is used for 2 members '${\"mimeType\"}'`,\n },\n },\n \"incompatible-paging-props\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paging property has multiple types: '${\"kinds\"}'`,\n },\n },\n \"invalid-paging-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paging property '${\"kind\"}' is not valid in this context.`,\n input: paramMessage `Paging property '${\"kind\"}' cannot be used in the parameters of an operation.`,\n output: paramMessage `Paging property '${\"kind\"}' cannot be used in the return type of an operation.`,\n },\n },\n \"duplicate-paging-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Duplicate property paging '${\"kind\"}' for operation ${\"operationName\"}.`,\n },\n },\n \"missing-paging-items\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Paged operation '${\"operationName\"}' return type must have a property annotated with @pageItems.`,\n },\n },\n /**\n * Service\n */\n \"service-decorator-duplicate\": {\n severity: \"error\",\n messages: {\n default: `@service can only be set once per TypeSpec document.`,\n },\n },\n \"list-type-not-model\": {\n severity: \"error\",\n messages: {\n default: \"@list decorator's parameter must be a model type.\",\n },\n },\n \"invalid-range\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Range \"${\"start\"}..${\"end\"}\" is invalid.`,\n },\n },\n /**\n * Mutator\n */\n \"add-response\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a response to anything except an operation statement.\",\n },\n },\n \"add-parameter\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a parameter to anything except an operation statement.\",\n },\n },\n \"add-model-property\": {\n severity: \"error\",\n messages: {\n default: \"Cannot add a model property to anything except a model statement.\",\n },\n },\n \"add-model-property-fail\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add property/parameter \"${\"propertyName\"}\" of type \"${\"propertyTypeName\"}\"`,\n },\n },\n \"add-response-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Could not add response type \"${\"responseTypeName\"}\" to operation ${\"operationName\"}\"`,\n },\n },\n \"circular-base-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type '${\"typeName\"}' recursively references itself as a base type.`,\n },\n },\n \"circular-constraint\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Type parameter '${\"typeName\"}' has a circular constraint.`,\n },\n },\n \"circular-op-signature\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Operation '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-alias-type\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Alias type '${\"typeName\"}' recursively references itself.`,\n },\n },\n \"circular-const\": {\n severity: \"error\",\n messages: {\n default: paramMessage `const '${\"name\"}' recursively references itself.`,\n },\n },\n \"circular-prop\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Property '${\"propName\"}' recursively references itself.`,\n },\n },\n \"conflict-marker\": {\n severity: \"error\",\n messages: {\n default: \"Conflict marker encountered.\",\n },\n },\n // #region Visibility\n \"visibility-sealed\": {\n severity: \"error\",\n messages: {\n default: paramMessage `Visibility of property '${\"propName\"}' is sealed and cannot be changed.`,\n },\n },\n \"visibility-mixed-legacy\": {\n severity: \"error\",\n messages: {\n default: \"Cannot apply both string (legacy) visibility modifiers and enum-based visibility modifiers to a property.\",\n },\n },\n \"visibility-legacy\": {\n severity: \"warning\",\n messages: {\n default: paramMessage `String (legacy) visibility modifier '${\"modifier\"}' is deprecated and will be removed in TypeSpec version 1.0-rc. Use '${\"newModifier\"}' instead.`,\n unrecognized: paramMessage `String (legacy) visibility modifier '${\"modifier\"}' is not recognized. This warning will become an error in TypeSpec 1.0-rc.`,\n none: \"String (legacy) visibility modifier 'none' should be replaced with '@invisible(Lifecycle)'. This warning will become an error in TypeSpec 1.0-rc.\",\n },\n },\n \"default-visibility-not-member\": {\n severity: \"error\",\n messages: {\n default: \"The default visibility modifiers of a class must be members of the class enum.\",\n },\n },\n \"operation-visibility-constraint-empty\": {\n severity: \"warning\",\n messages: {\n default: \"Operation visibility constraints with no arguments are deprecated and will become an error in TypeSpec version 1.0-rc.\",\n returnType: \"Return type visibility constraints with no arguments are deprecated and will become an error in TypeSpec version 1.0-rc.\",\n parameter: \"Parameter visibility constraints with no arguments are deprecated and will become an error in TypeSpec version 1.0-rc. To disable effective PATCH optionality, use @patch(#{ implicitOptionality: false }) instead.\",\n },\n },\n // #endregion\n // #region CLI\n \"no-compatible-vs-installed\": {\n severity: \"error\",\n messages: {\n default: \"No compatible version of Visual Studio found.\",\n },\n },\n \"vs-extension-windows-only\": {\n severity: \"error\",\n messages: {\n default: \"Visual Studio extension is not supported on non-Windows.\",\n },\n },\n \"vscode-in-path\": {\n severity: \"error\",\n messages: {\n default: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\",\n osx: \"Couldn't find VS Code 'code' command in PATH. Make sure you have the VS Code executable added to the system PATH.\\nSee instruction for Mac OS here https://code.visualstudio.com/docs/setup/mac\",\n },\n },\n // #endregion CLI\n};\nexport const { createDiagnostic, reportDiagnostic } = createDiagnosticCreator(diagnostics);\n//# sourceMappingURL=messages.js.map","import { formatLog } from \"./logger/console-sink.js\";\nimport { createSourceFile } from \"./source-file.js\";\nimport { NoTarget, SyntaxKind, } from \"./types.js\";\n/**\n * Represents a failure while interpreting a projection.\n */\nexport class ProjectionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ProjectionError\";\n }\n}\nexport function logDiagnostics(diagnostics, logger) {\n for (const diagnostic of diagnostics) {\n logger.log({\n level: diagnostic.severity,\n message: diagnostic.message,\n code: diagnostic.code,\n url: diagnostic.url,\n sourceLocation: getSourceLocation(diagnostic.target, { locateId: true }),\n related: getRelatedLocations(diagnostic),\n });\n }\n}\nexport function formatDiagnostic(diagnostic, options = {}) {\n return formatLog({\n code: diagnostic.code,\n level: diagnostic.severity,\n message: diagnostic.message,\n url: diagnostic.url,\n sourceLocation: getSourceLocation(diagnostic.target, { locateId: true }),\n related: getRelatedLocations(diagnostic),\n }, { pretty: options?.pretty ?? false, pathRelativeTo: options?.pathRelativeTo });\n}\nfunction getRelatedLocations(diagnostic) {\n return getDiagnosticTemplateInstantitationTrace(diagnostic.target).map((x) => {\n return {\n message: \"occurred while instantiating template\",\n location: getSourceLocation(x),\n };\n });\n}\nexport function getSourceLocation(target, options = {}) {\n if (target === NoTarget || target === undefined) {\n return undefined;\n }\n if (\"file\" in target) {\n return target;\n }\n if (!(\"kind\" in target) && !(\"entityKind\" in target)) {\n // TemplateInstanceTarget\n if (!(\"declarations\" in target)) {\n return getSourceLocationOfNode(target.node, options);\n }\n // symbol\n if (target.flags & 32768 /* SymbolFlags.Using */) {\n target = target.symbolSource;\n }\n if (!target.declarations[0]) {\n return createSyntheticSourceLocation();\n }\n return getSourceLocationOfNode(target.declarations[0], options);\n }\n else if (\"kind\" in target && typeof target.kind === \"number\") {\n // node\n return getSourceLocationOfNode(target, options);\n }\n else {\n // type\n const targetNode = target.node;\n if (targetNode) {\n return getSourceLocationOfNode(targetNode, options);\n }\n return createSyntheticSourceLocation();\n }\n}\n/**\n * @internal\n */\nexport function getDiagnosticTemplateInstantitationTrace(target) {\n if (typeof target !== \"object\" || !(\"templateMapper\" in target)) {\n return [];\n }\n const result = [];\n let current = target.templateMapper;\n while (current) {\n result.push(current.source.node);\n current = current.source.mapper;\n }\n return result;\n}\nfunction createSyntheticSourceLocation(loc = \"<unknown location>\") {\n return {\n file: createSourceFile(\"\", loc),\n pos: 0,\n end: 0,\n isSynthetic: true,\n };\n}\nfunction getSourceLocationOfNode(node, options) {\n let root = node;\n while (root.parent !== undefined) {\n root = root.parent;\n }\n if (root.kind !== SyntaxKind.TypeSpecScript && root.kind !== SyntaxKind.JsSourceFile) {\n return createSyntheticSourceLocation(node.flags & 8 /* NodeFlags.Synthetic */\n ? undefined\n : \"<unknown location - cannot obtain source location of unbound node - file bug at https://github.com/microsoft/typespec>\");\n }\n if (options.locateId && \"id\" in node && node.id !== undefined) {\n node = node.id;\n }\n return {\n file: root.file,\n pos: node.pos,\n end: node.end,\n };\n}\n/**\n * Verbose output is enabled by default for runs in mocha explorer in VS Code,\n * where the output is nicely associated with the individual test, and disabled\n * by default for command line runs where we don't want to spam the console.\n *\n * If the steps taken to produce the message are expensive, pass a callback\n * instead of producing the message then passing it here only to be dropped\n * when verbose output is disabled.\n */\nexport function logVerboseTestOutput(messageOrCallback) {\n if (process.env.TYPESPEC_VERBOSE_TEST_OUTPUT) {\n if (typeof messageOrCallback === \"string\") {\n // eslint-disable-next-line no-console\n console.log(messageOrCallback);\n }\n else {\n // eslint-disable-next-line no-console\n messageOrCallback(console.log);\n }\n }\n}\n/**\n * Use this to report bugs in the compiler, and not errors in the source code\n * being compiled.\n *\n * @param condition Throw if this is not true.\n *\n * @param message Error message.\n *\n * @param target Optional location in source code that might give a clue about\n * what got the compiler off track.\n */\nexport function compilerAssert(condition, message, target) {\n if (condition) {\n return;\n }\n if (target) {\n let location;\n try {\n location = getSourceLocation(target);\n }\n catch (err) { }\n if (location) {\n const pos = location.file.getLineAndCharacterOfPosition(location.pos);\n const file = location.file.path;\n const line = pos.line + 1;\n const col = pos.character + 1;\n message += `\\nOccurred while compiling code in ${file} near line ${line}, column ${col}`;\n }\n }\n throw new Error(message);\n}\n/**\n * Assert that the input type has one of the kinds provided\n */\nexport function assertType(typeDescription, t, ...kinds) {\n if (kinds.indexOf(t.kind) === -1) {\n throw new ProjectionError(`Expected ${typeDescription} to be type ${kinds.join(\", \")}`);\n }\n}\n/**\n * Report a deprecated diagnostic.\n * @param program TypeSpec Program.\n * @param message Message describing the deprecation.\n * @param target Target of the deprecation.\n */\nexport function reportDeprecated(program, message, target) {\n program.reportDiagnostic({\n severity: \"warning\",\n code: \"deprecated\",\n message: `Deprecated: ${message}`,\n target,\n });\n}\n/**\n * Create a new instance of the @see DiagnosticCollector.\n */\nexport function createDiagnosticCollector() {\n const diagnostics = [];\n return {\n diagnostics,\n add,\n pipe,\n wrap,\n };\n function add(diagnostic) {\n diagnostics.push(diagnostic);\n }\n function pipe(result) {\n const [value, diags] = result;\n for (const diag of diags) {\n diagnostics.push(diag);\n }\n return value;\n }\n function wrap(value) {\n return [value, diagnostics];\n }\n}\n/**\n * Ignore the diagnostics emitted by the diagnostic accessor pattern and just return the actual result.\n * @param result Accessor pattern tuple result including the actual result and the list of diagnostics.\n * @returns Actual result.\n */\nexport function ignoreDiagnostics(result) {\n return result[0];\n}\nexport function defineCodeFix(fix) {\n return fix;\n}\n//# sourceMappingURL=diagnostics.js.map","//\n// Generated by scripts/regen-nonascii-map.js\n// on node v18.16.0 with unicode 15.0.\n//\n/**\n * @internal\n *\n * Map of non-ascii characters that are valid in an identifier. Each pair of\n * numbers represents an inclusive range of code points.\n */\n//prettier-ignore\nexport const nonAsciiIdentifierMap = [\n 0xa0, 0x377,\n 0x37a, 0x37f,\n 0x384, 0x38a,\n 0x38c, 0x38c,\n 0x38e, 0x3a1,\n 0x3a3, 0x52f,\n 0x531, 0x556,\n 0x559, 0x58a,\n 0x58d, 0x58f,\n 0x591, 0x5c7,\n 0x5d0, 0x5ea,\n 0x5ef, 0x5f4,\n 0x600, 0x70d,\n 0x70f, 0x74a,\n 0x74d, 0x7b1,\n 0x7c0, 0x7fa,\n 0x7fd, 0x82d,\n 0x830, 0x83e,\n 0x840, 0x85b,\n 0x85e, 0x85e,\n 0x860, 0x86a,\n 0x870, 0x88e,\n 0x890, 0x891,\n 0x898, 0x983,\n 0x985, 0x98c,\n 0x98f, 0x990,\n 0x993, 0x9a8,\n 0x9aa, 0x9b0,\n 0x9b2, 0x9b2,\n 0x9b6, 0x9b9,\n 0x9bc, 0x9c4,\n 0x9c7, 0x9c8,\n 0x9cb, 0x9ce,\n 0x9d7, 0x9d7,\n 0x9dc, 0x9dd,\n 0x9df, 0x9e3,\n 0x9e6, 0x9fe,\n 0xa01, 0xa03,\n 0xa05, 0xa0a,\n 0xa0f, 0xa10,\n 0xa13, 0xa28,\n 0xa2a, 0xa30,\n 0xa32, 0xa33,\n 0xa35, 0xa36,\n 0xa38, 0xa39,\n 0xa3c, 0xa3c,\n 0xa3e, 0xa42,\n 0xa47, 0xa48,\n 0xa4b, 0xa4d,\n 0xa51, 0xa51,\n 0xa59, 0xa5c,\n 0xa5e, 0xa5e,\n 0xa66, 0xa76,\n 0xa81, 0xa83,\n 0xa85, 0xa8d,\n 0xa8f, 0xa91,\n 0xa93, 0xaa8,\n 0xaaa, 0xab0,\n 0xab2, 0xab3,\n 0xab5, 0xab9,\n 0xabc, 0xac5,\n 0xac7, 0xac9,\n 0xacb, 0xacd,\n 0xad0, 0xad0,\n 0xae0, 0xae3,\n 0xae6, 0xaf1,\n 0xaf9, 0xaff,\n 0xb01, 0xb03,\n 0xb05, 0xb0c,\n 0xb0f, 0xb10,\n 0xb13, 0xb28,\n 0xb2a, 0xb30,\n 0xb32, 0xb33,\n 0xb35, 0xb39,\n 0xb3c, 0xb44,\n 0xb47, 0xb48,\n 0xb4b, 0xb4d,\n 0xb55, 0xb57,\n 0xb5c, 0xb5d,\n 0xb5f, 0xb63,\n 0xb66, 0xb77,\n 0xb82, 0xb83,\n 0xb85, 0xb8a,\n 0xb8e, 0xb90,\n 0xb92, 0xb95,\n 0xb99, 0xb9a,\n 0xb9c, 0xb9c,\n 0xb9e, 0xb9f,\n 0xba3, 0xba4,\n 0xba8, 0xbaa,\n 0xbae, 0xbb9,\n 0xbbe, 0xbc2,\n 0xbc6, 0xbc8,\n 0xbca, 0xbcd,\n 0xbd0, 0xbd0,\n 0xbd7, 0xbd7,\n 0xbe6, 0xbfa,\n 0xc00, 0xc0c,\n 0xc0e, 0xc10,\n 0xc12, 0xc28,\n 0xc2a, 0xc39,\n 0xc3c, 0xc44,\n 0xc46, 0xc48,\n 0xc4a, 0xc4d,\n 0xc55, 0xc56,\n 0xc58, 0xc5a,\n 0xc5d, 0xc5d,\n 0xc60, 0xc63,\n 0xc66, 0xc6f,\n 0xc77, 0xc8c,\n 0xc8e, 0xc90,\n 0xc92, 0xca8,\n 0xcaa, 0xcb3,\n 0xcb5, 0xcb9,\n 0xcbc, 0xcc4,\n 0xcc6, 0xcc8,\n 0xcca, 0xccd,\n 0xcd5, 0xcd6,\n 0xcdd, 0xcde,\n 0xce0, 0xce3,\n 0xce6, 0xcef,\n 0xcf1, 0xcf3,\n 0xd00, 0xd0c,\n 0xd0e, 0xd10,\n 0xd12, 0xd44,\n 0xd46, 0xd48,\n 0xd4a, 0xd4f,\n 0xd54, 0xd63,\n 0xd66, 0xd7f,\n 0xd81, 0xd83,\n 0xd85, 0xd96,\n 0xd9a, 0xdb1,\n 0xdb3, 0xdbb,\n 0xdbd, 0xdbd,\n 0xdc0, 0xdc6,\n 0xdca, 0xdca,\n 0xdcf, 0xdd4,\n 0xdd6, 0xdd6,\n 0xdd8, 0xddf,\n 0xde6, 0xdef,\n 0xdf2, 0xdf4,\n 0xe01, 0xe3a,\n 0xe3f, 0xe5b,\n 0xe81, 0xe82,\n 0xe84, 0xe84,\n 0xe86, 0xe8a,\n 0xe8c, 0xea3,\n 0xea5, 0xea5,\n 0xea7, 0xebd,\n 0xec0, 0xec4,\n 0xec6, 0xec6,\n 0xec8, 0xece,\n 0xed0, 0xed9,\n 0xedc, 0xedf,\n 0xf00, 0xf47,\n 0xf49, 0xf6c,\n 0xf71, 0xf97,\n 0xf99, 0xfbc,\n 0xfbe, 0xfcc,\n 0xfce, 0xfda,\n 0x1000, 0x10c5,\n 0x10c7, 0x10c7,\n 0x10cd, 0x10cd,\n 0x10d0, 0x1248,\n 0x124a, 0x124d,\n 0x1250, 0x1256,\n 0x1258, 0x1258,\n 0x125a, 0x125d,\n 0x1260, 0x1288,\n 0x128a, 0x128d,\n 0x1290, 0x12b0,\n 0x12b2, 0x12b5,\n 0x12b8, 0x12be,\n 0x12c0, 0x12c0,\n 0x12c2, 0x12c5,\n 0x12c8, 0x12d6,\n 0x12d8, 0x1310,\n 0x1312, 0x1315,\n 0x1318, 0x135a,\n 0x135d, 0x137c,\n 0x1380, 0x1399,\n 0x13a0, 0x13f5,\n 0x13f8, 0x13fd,\n 0x1400, 0x169c,\n 0x16a0, 0x16f8,\n 0x1700, 0x1715,\n 0x171f, 0x1736,\n 0x1740, 0x1753,\n 0x1760, 0x176c,\n 0x176e, 0x1770,\n 0x1772, 0x1773,\n 0x1780, 0x17dd,\n 0x17e0, 0x17e9,\n 0x17f0, 0x17f9,\n 0x1800, 0x1819,\n 0x1820, 0x1878,\n 0x1880, 0x18aa,\n 0x18b0, 0x18f5,\n 0x1900, 0x191e,\n 0x1920, 0x192b,\n 0x1930, 0x193b,\n 0x1940, 0x1940,\n 0x1944, 0x196d,\n 0x1970, 0x1974,\n 0x1980, 0x19ab,\n 0x19b0, 0x19c9,\n 0x19d0, 0x19da,\n 0x19de, 0x1a1b,\n 0x1a1e, 0x1a5e,\n 0x1a60, 0x1a7c,\n 0x1a7f, 0x1a89,\n 0x1a90, 0x1a99,\n 0x1aa0, 0x1aad,\n 0x1ab0, 0x1ace,\n 0x1b00, 0x1b4c,\n 0x1b50, 0x1b7e,\n 0x1b80, 0x1bf3,\n 0x1bfc, 0x1c37,\n 0x1c3b, 0x1c49,\n 0x1c4d, 0x1c88,\n 0x1c90, 0x1cba,\n 0x1cbd, 0x1cc7,\n 0x1cd0, 0x1cfa,\n 0x1d00, 0x1f15,\n 0x1f18, 0x1f1d,\n 0x1f20, 0x1f45,\n 0x1f48, 0x1f4d,\n 0x1f50, 0x1f57,\n 0x1f59, 0x1f59,\n 0x1f5b, 0x1f5b,\n 0x1f5d, 0x1f5d,\n 0x1f5f, 0x1f7d,\n 0x1f80, 0x1fb4,\n 0x1fb6, 0x1fc4,\n 0x1fc6, 0x1fd3,\n 0x1fd6, 0x1fdb,\n 0x1fdd, 0x1fef,\n 0x1ff2, 0x1ff4,\n 0x1ff6, 0x1ffe,\n 0x2000, 0x200d,\n 0x2010, 0x2027,\n 0x202a, 0x2064,\n 0x2066, 0x2071,\n 0x2074, 0x208e,\n 0x2090, 0x209c,\n 0x20a0, 0x20c0,\n 0x20d0, 0x20f0,\n 0x2100, 0x218b,\n 0x2190, 0x2426,\n 0x2440, 0x244a,\n 0x2460, 0x2b73,\n 0x2b76, 0x2b95,\n 0x2b97, 0x2cf3,\n 0x2cf9, 0x2d25,\n 0x2d27, 0x2d27,\n 0x2d2d, 0x2d2d,\n 0x2d30, 0x2d67,\n 0x2d6f, 0x2d70,\n 0x2d7f, 0x2d96,\n 0x2da0, 0x2da6,\n 0x2da8, 0x2dae,\n 0x2db0, 0x2db6,\n 0x2db8, 0x2dbe,\n 0x2dc0, 0x2dc6,\n 0x2dc8, 0x2dce,\n 0x2dd0, 0x2dd6,\n 0x2dd8, 0x2dde,\n 0x2de0, 0x2e5d,\n 0x2e80, 0x2e99,\n 0x2e9b, 0x2ef3,\n 0x2f00, 0x2fd5,\n 0x2ff0, 0x2ffb,\n 0x3000, 0x303f,\n 0x3041, 0x3096,\n 0x3099, 0x30ff,\n 0x3105, 0x312f,\n 0x3131, 0x318e,\n 0x3190, 0x31e3,\n 0x31f0, 0x321e,\n 0x3220, 0xa48c,\n 0xa490, 0xa4c6,\n 0xa4d0, 0xa62b,\n 0xa640, 0xa6f7,\n 0xa700, 0xa7ca,\n 0xa7d0, 0xa7d1,\n 0xa7d3, 0xa7d3,\n 0xa7d5, 0xa7d9,\n 0xa7f2, 0xa82c,\n 0xa830, 0xa839,\n 0xa840, 0xa877,\n 0xa880, 0xa8c5,\n 0xa8ce, 0xa8d9,\n 0xa8e0, 0xa953,\n 0xa95f, 0xa97c,\n 0xa980, 0xa9cd,\n 0xa9cf, 0xa9d9,\n 0xa9de, 0xa9fe,\n 0xaa00, 0xaa36,\n 0xaa40, 0xaa4d,\n 0xaa50, 0xaa59,\n 0xaa5c, 0xaac2,\n 0xaadb, 0xaaf6,\n 0xab01, 0xab06,\n 0xab09, 0xab0e,\n 0xab11, 0xab16,\n 0xab20, 0xab26,\n 0xab28, 0xab2e,\n 0xab30, 0xab6b,\n 0xab70, 0xabed,\n 0xabf0, 0xabf9,\n 0xac00, 0xd7a3,\n 0xd7b0, 0xd7c6,\n 0xd7cb, 0xd7fb,\n 0xf900, 0xfa6d,\n 0xfa70, 0xfad9,\n 0xfb00, 0xfb06,\n 0xfb13, 0xfb17,\n 0xfb1d, 0xfb36,\n 0xfb38, 0xfb3c,\n 0xfb3e, 0xfb3e,\n 0xfb40, 0xfb41,\n 0xfb43, 0xfb44,\n 0xfb46, 0xfbc2,\n 0xfbd3, 0xfd8f,\n 0xfd92, 0xfdc7,\n 0xfdcf, 0xfdcf,\n 0xfdf0, 0xfe19,\n 0xfe20, 0xfe52,\n 0xfe54, 0xfe66,\n 0xfe68, 0xfe6b,\n 0xfe70, 0xfe74,\n 0xfe76, 0xfefc,\n 0xfeff, 0xfeff,\n 0xff01, 0xffbe,\n 0xffc2, 0xffc7,\n 0xffca, 0xffcf,\n 0xffd2, 0xffd7,\n 0xffda, 0xffdc,\n 0xffe0, 0xffe6,\n 0xffe8, 0xffee,\n 0xfff9, 0xfffc,\n 0x10000, 0x1000b,\n 0x1000d, 0x10026,\n 0x10028, 0x1003a,\n 0x1003c, 0x1003d,\n 0x1003f, 0x1004d,\n 0x10050, 0x1005d,\n 0x10080, 0x100fa,\n 0x10100, 0x10102,\n 0x10107, 0x10133,\n 0x10137, 0x1018e,\n 0x10190, 0x1019c,\n 0x101a0, 0x101a0,\n 0x101d0, 0x101fd,\n 0x10280, 0x1029c,\n 0x102a0, 0x102d0,\n 0x102e0, 0x102fb,\n 0x10300, 0x10323,\n 0x1032d, 0x1034a,\n 0x10350, 0x1037a,\n 0x10380, 0x1039d,\n 0x1039f, 0x103c3,\n 0x103c8, 0x103d5,\n 0x10400, 0x1049d,\n 0x104a0, 0x104a9,\n 0x104b0, 0x104d3,\n 0x104d8, 0x104fb,\n 0x10500, 0x10527,\n 0x10530, 0x10563,\n 0x1056f, 0x1057a,\n 0x1057c, 0x1058a,\n 0x1058c, 0x10592,\n 0x10594, 0x10595,\n 0x10597, 0x105a1,\n 0x105a3, 0x105b1,\n 0x105b3, 0x105b9,\n 0x105bb, 0x105bc,\n 0x10600, 0x10736,\n 0x10740, 0x10755,\n 0x10760, 0x10767,\n 0x10780, 0x10785,\n 0x10787, 0x107b0,\n 0x107b2, 0x107ba,\n 0x10800, 0x10805,\n 0x10808, 0x10808,\n 0x1080a, 0x10835,\n 0x10837, 0x10838,\n 0x1083c, 0x1083c,\n 0x1083f, 0x10855,\n 0x10857, 0x1089e,\n 0x108a7, 0x108af,\n 0x108e0, 0x108f2,\n 0x108f4, 0x108f5,\n 0x108fb, 0x1091b,\n 0x1091f, 0x10939,\n 0x1093f, 0x1093f,\n 0x10980, 0x109b7,\n 0x109bc, 0x109cf,\n 0x109d2, 0x10a03,\n 0x10a05, 0x10a06,\n 0x10a0c, 0x10a13,\n 0x10a15, 0x10a17,\n 0x10a19, 0x10a35,\n 0x10a38, 0x10a3a,\n 0x10a3f, 0x10a48,\n 0x10a50, 0x10a58,\n 0x10a60, 0x10a9f,\n 0x10ac0, 0x10ae6,\n 0x10aeb, 0x10af6,\n 0x10b00, 0x10b35,\n 0x10b39, 0x10b55,\n 0x10b58, 0x10b72,\n 0x10b78, 0x10b91,\n 0x10b99, 0x10b9c,\n 0x10ba9, 0x10baf,\n 0x10c00, 0x10c48,\n 0x10c80, 0x10cb2,\n 0x10cc0, 0x10cf2,\n 0x10cfa, 0x10d27,\n 0x10d30, 0x10d39,\n 0x10e60, 0x10e7e,\n 0x10e80, 0x10ea9,\n 0x10eab, 0x10ead,\n 0x10eb0, 0x10eb1,\n 0x10efd, 0x10f27,\n 0x10f30, 0x10f59,\n 0x10f70, 0x10f89,\n 0x10fb0, 0x10fcb,\n 0x10fe0, 0x10ff6,\n 0x11000, 0x1104d,\n 0x11052, 0x11075,\n 0x1107f, 0x110c2,\n 0x110cd, 0x110cd,\n 0x110d0, 0x110e8,\n 0x110f0, 0x110f9,\n 0x11100, 0x11134,\n 0x11136, 0x11147,\n 0x11150, 0x11176,\n 0x11180, 0x111df,\n 0x111e1, 0x111f4,\n 0x11200, 0x11211,\n 0x11213, 0x11241,\n 0x11280, 0x11286,\n 0x11288, 0x11288,\n 0x1128a, 0x1128d,\n 0x1128f, 0x1129d,\n 0x1129f, 0x112a9,\n 0x112b0, 0x112ea,\n 0x112f0, 0x112f9,\n 0x11300, 0x11303,\n 0x11305, 0x1130c,\n 0x1130f, 0x11310,\n 0x11313, 0x11328,\n 0x1132a, 0x11330,\n 0x11332, 0x11333,\n 0x11335, 0x11339,\n 0x1133b, 0x11344,\n 0x11347, 0x11348,\n 0x1134b, 0x1134d,\n 0x11350, 0x11350,\n 0x11357, 0x11357,\n 0x1135d, 0x11363,\n 0x11366, 0x1136c,\n 0x11370, 0x11374,\n 0x11400, 0x1145b,\n 0x1145d, 0x11461,\n 0x11480, 0x114c7,\n 0x114d0, 0x114d9,\n 0x11580, 0x115b5,\n 0x115b8, 0x115dd,\n 0x11600, 0x11644,\n 0x11650, 0x11659,\n 0x11660, 0x1166c,\n 0x11680, 0x116b9,\n 0x116c0, 0x116c9,\n 0x11700, 0x1171a,\n 0x1171d, 0x1172b,\n 0x11730, 0x11746,\n 0x11800, 0x1183b,\n 0x118a0, 0x118f2,\n 0x118ff, 0x11906,\n 0x11909, 0x11909,\n 0x1190c, 0x11913,\n 0x11915, 0x11916,\n 0x11918, 0x11935,\n 0x11937, 0x11938,\n 0x1193b, 0x11946,\n 0x11950, 0x11959,\n 0x119a0, 0x119a7,\n 0x119aa, 0x119d7,\n 0x119da, 0x119e4,\n 0x11a00, 0x11a47,\n 0x11a50, 0x11aa2,\n 0x11ab0, 0x11af8,\n 0x11b00, 0x11b09,\n 0x11c00, 0x11c08,\n 0x11c0a, 0x11c36,\n 0x11c38, 0x11c45,\n 0x11c50, 0x11c6c,\n 0x11c70, 0x11c8f,\n 0x11c92, 0x11ca7,\n 0x11ca9, 0x11cb6,\n 0x11d00, 0x11d06,\n 0x11d08, 0x11d09,\n 0x11d0b, 0x11d36,\n 0x11d3a, 0x11d3a,\n 0x11d3c, 0x11d3d,\n 0x11d3f, 0x11d47,\n 0x11d50, 0x11d59,\n 0x11d60, 0x11d65,\n 0x11d67, 0x11d68,\n 0x11d6a, 0x11d8e,\n 0x11d90, 0x11d91,\n 0x11d93, 0x11d98,\n 0x11da0, 0x11da9,\n 0x11ee0, 0x11ef8,\n 0x11f00, 0x11f10,\n 0x11f12, 0x11f3a,\n 0x11f3e, 0x11f59,\n 0x11fb0, 0x11fb0,\n 0x11fc0, 0x11ff1,\n 0x11fff, 0x12399,\n 0x12400, 0x1246e,\n 0x12470, 0x12474,\n 0x12480, 0x12543,\n 0x12f90, 0x12ff2,\n 0x13000, 0x13455,\n 0x14400, 0x14646,\n 0x16800, 0x16a38,\n 0x16a40, 0x16a5e,\n 0x16a60, 0x16a69,\n 0x16a6e, 0x16abe,\n 0x16ac0, 0x16ac9,\n 0x16ad0, 0x16aed,\n 0x16af0, 0x16af5,\n 0x16b00, 0x16b45,\n 0x16b50, 0x16b59,\n 0x16b5b, 0x16b61,\n 0x16b63, 0x16b77,\n 0x16b7d, 0x16b8f,\n 0x16e40, 0x16e9a,\n 0x16f00, 0x16f4a,\n 0x16f4f, 0x16f87,\n 0x16f8f, 0x16f9f,\n 0x16fe0, 0x16fe4,\n 0x16ff0, 0x16ff1,\n 0x17000, 0x187f7,\n 0x18800, 0x18cd5,\n 0x18d00, 0x18d08,\n 0x1aff0, 0x1aff3,\n 0x1aff5, 0x1affb,\n 0x1affd, 0x1affe,\n 0x1b000, 0x1b122,\n 0x1b132, 0x1b132,\n 0x1b150, 0x1b152,\n 0x1b155, 0x1b155,\n 0x1b164, 0x1b167,\n 0x1b170, 0x1b2fb,\n 0x1bc00, 0x1bc6a,\n 0x1bc70, 0x1bc7c,\n 0x1bc80, 0x1bc88,\n 0x1bc90, 0x1bc99,\n 0x1bc9c, 0x1bca3,\n 0x1cf00, 0x1cf2d,\n 0x1cf30, 0x1cf46,\n 0x1cf50, 0x1cfc3,\n 0x1d000, 0x1d0f5,\n 0x1d100, 0x1d126,\n 0x1d129, 0x1d1ea,\n 0x1d200, 0x1d245,\n 0x1d2c0, 0x1d2d3,\n 0x1d2e0, 0x1d2f3,\n 0x1d300, 0x1d356,\n 0x1d360, 0x1d378,\n 0x1d400, 0x1d454,\n 0x1d456, 0x1d49c,\n 0x1d49e, 0x1d49f,\n 0x1d4a2, 0x1d4a2,\n 0x1d4a5, 0x1d4a6,\n 0x1d4a9, 0x1d4ac,\n 0x1d4ae, 0x1d4b9,\n 0x1d4bb, 0x1d4bb,\n 0x1d4bd, 0x1d4c3,\n 0x1d4c5, 0x1d505,\n 0x1d507, 0x1d50a,\n 0x1d50d, 0x1d514,\n 0x1d516, 0x1d51c,\n 0x1d51e, 0x1d539,\n 0x1d53b, 0x1d53e,\n 0x1d540, 0x1d544,\n 0x1d546, 0x1d546,\n 0x1d54a, 0x1d550,\n 0x1d552, 0x1d6a5,\n 0x1d6a8, 0x1d7cb,\n 0x1d7ce, 0x1da8b,\n 0x1da9b, 0x1da9f,\n 0x1daa1, 0x1daaf,\n 0x1df00, 0x1df1e,\n 0x1df25, 0x1df2a,\n 0x1e000, 0x1e006,\n 0x1e008, 0x1e018,\n 0x1e01b, 0x1e021,\n 0x1e023, 0x1e024,\n 0x1e026, 0x1e02a,\n 0x1e030, 0x1e06d,\n 0x1e08f, 0x1e08f,\n 0x1e100, 0x1e12c,\n 0x1e130, 0x1e13d,\n 0x1e140, 0x1e149,\n 0x1e14e, 0x1e14f,\n 0x1e290, 0x1e2ae,\n 0x1e2c0, 0x1e2f9,\n 0x1e2ff, 0x1e2ff,\n 0x1e4d0, 0x1e4f9,\n 0x1e7e0, 0x1e7e6,\n 0x1e7e8, 0x1e7eb,\n 0x1e7ed, 0x1e7ee,\n 0x1e7f0, 0x1e7fe,\n 0x1e800, 0x1e8c4,\n 0x1e8c7, 0x1e8d6,\n 0x1e900, 0x1e94b,\n 0x1e950, 0x1e959,\n 0x1e95e, 0x1e95f,\n 0x1ec71, 0x1ecb4,\n 0x1ed01, 0x1ed3d,\n 0x1ee00, 0x1ee03,\n 0x1ee05, 0x1ee1f,\n 0x1ee21, 0x1ee22,\n 0x1ee24, 0x1ee24,\n 0x1ee27, 0x1ee27,\n 0x1ee29, 0x1ee32,\n 0x1ee34, 0x1ee37,\n 0x1ee39, 0x1ee39,\n 0x1ee3b, 0x1ee3b,\n 0x1ee42, 0x1ee42,\n 0x1ee47, 0x1ee47,\n 0x1ee49, 0x1ee49,\n 0x1ee4b, 0x1ee4b,\n 0x1ee4d, 0x1ee4f,\n 0x1ee51, 0x1ee52,\n 0x1ee54, 0x1ee54,\n 0x1ee57, 0x1ee57,\n 0x1ee59, 0x1ee59,\n 0x1ee5b, 0x1ee5b,\n 0x1ee5d, 0x1ee5d,\n 0x1ee5f, 0x1ee5f,\n 0x1ee61, 0x1ee62,\n 0x1ee64, 0x1ee64,\n 0x1ee67, 0x1ee6a,\n 0x1ee6c, 0x1ee72,\n 0x1ee74, 0x1ee77,\n 0x1ee79, 0x1ee7c,\n 0x1ee7e, 0x1ee7e,\n 0x1ee80, 0x1ee89,\n 0x1ee8b, 0x1ee9b,\n 0x1eea1, 0x1eea3,\n 0x1eea5, 0x1eea9,\n 0x1eeab, 0x1eebb,\n 0x1eef0, 0x1eef1,\n 0x1f000, 0x1f02b,\n 0x1f030, 0x1f093,\n 0x1f0a0, 0x1f0ae,\n 0x1f0b1, 0x1f0bf,\n 0x1f0c1, 0x1f0cf,\n 0x1f0d1, 0x1f0f5,\n 0x1f100, 0x1f1ad,\n 0x1f1e6, 0x1f202,\n 0x1f210, 0x1f23b,\n 0x1f240, 0x1f248,\n 0x1f250, 0x1f251,\n 0x1f260, 0x1f265,\n 0x1f300, 0x1f6d7,\n 0x1f6dc, 0x1f6ec,\n 0x1f6f0, 0x1f6fc,\n 0x1f700, 0x1f776,\n 0x1f77b, 0x1f7d9,\n 0x1f7e0, 0x1f7eb,\n 0x1f7f0, 0x1f7f0,\n 0x1f800, 0x1f80b,\n 0x1f810, 0x1f847,\n 0x1f850, 0x1f859,\n 0x1f860, 0x1f887,\n 0x1f890, 0x1f8ad,\n 0x1f8b0, 0x1f8b1,\n 0x1f900, 0x1fa53,\n 0x1fa60, 0x1fa6d,\n 0x1fa70, 0x1fa7c,\n 0x1fa80, 0x1fa88,\n 0x1fa90, 0x1fabd,\n 0x1fabf, 0x1fac5,\n 0x1face, 0x1fadb,\n 0x1fae0, 0x1fae8,\n 0x1faf0, 0x1faf8,\n 0x1fb00, 0x1fb92,\n 0x1fb94, 0x1fbca,\n 0x1fbf0, 0x1fbf9,\n 0x20000, 0x2a6df,\n 0x2a700, 0x2b739,\n 0x2b740, 0x2b81d,\n 0x2b820, 0x2cea1,\n 0x2ceb0, 0x2ebe0,\n 0x2f800, 0x2fa1d,\n 0x30000, 0x3134a,\n 0x31350, 0x323af,\n 0xe0001, 0xe0001,\n 0xe0020, 0xe007f,\n 0xe0100, 0xe01ef,\n];\n//# sourceMappingURL=nonascii.js.map","import { nonAsciiIdentifierMap } from \"./nonascii.js\";\nexport function utf16CodeUnits(codePoint) {\n return codePoint >= 0x10000 ? 2 : 1;\n}\nexport function isHighSurrogate(ch) {\n return ch >= 0xd800 && ch <= 0xdbff;\n}\nexport function isLowSurrogate(ch) {\n return ch >= 0xdc00 && ch <= 0xdfff;\n}\nexport function isLineBreak(ch) {\n return ch === 10 /* CharCode.LineFeed */ || ch === 13 /* CharCode.CarriageReturn */;\n}\nexport function isAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 32 /* CharCode.Space */ ||\n ch === 9 /* CharCode.Tab */ ||\n ch === 11 /* CharCode.VerticalTab */ ||\n ch === 12 /* CharCode.FormFeed */);\n}\nexport function isNonAsciiWhiteSpaceSingleLine(ch) {\n return (ch === 133 /* CharCode.NextLine */ || // not considered a line break\n ch === 8206 /* CharCode.LeftToRightMark */ ||\n ch === 8207 /* CharCode.RightToLeftMark */ ||\n ch === 8232 /* CharCode.LineSeparator */ ||\n ch === 8233 /* CharCode.ParagraphSeparator */);\n}\nexport function isWhiteSpace(ch) {\n return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nexport function isWhiteSpaceSingleLine(ch) {\n return (isAsciiWhiteSpaceSingleLine(ch) ||\n (ch > 127 /* CharCode.MaxAscii */ && isNonAsciiWhiteSpaceSingleLine(ch)));\n}\nexport function trim(str) {\n let start = 0;\n let end = str.length - 1;\n if (!isWhiteSpace(str.charCodeAt(start)) && !isWhiteSpace(str.charCodeAt(end))) {\n return str;\n }\n while (isWhiteSpace(str.charCodeAt(start))) {\n start++;\n }\n while (isWhiteSpace(str.charCodeAt(end))) {\n end--;\n }\n return str.substring(start, end + 1);\n}\nexport function isDigit(ch) {\n return ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */;\n}\nexport function isHexDigit(ch) {\n return (isDigit(ch) || (ch >= 65 /* CharCode.A */ && ch <= 70 /* CharCode.F */) || (ch >= 97 /* CharCode.a */ && ch <= 102 /* CharCode.f */));\n}\nexport function isBinaryDigit(ch) {\n return ch === 48 /* CharCode._0 */ || ch === 49 /* CharCode._1 */;\n}\nexport function isLowercaseAsciiLetter(ch) {\n return ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */;\n}\nexport function isAsciiIdentifierStart(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isAsciiIdentifierContinue(ch) {\n return ((ch >= 65 /* CharCode.A */ && ch <= 90 /* CharCode.Z */) ||\n (ch >= 97 /* CharCode.a */ && ch <= 122 /* CharCode.z */) ||\n (ch >= 48 /* CharCode._0 */ && ch <= 57 /* CharCode._9 */) ||\n ch === 36 /* CharCode.$ */ ||\n ch === 95 /* CharCode._ */);\n}\nexport function isIdentifierStart(codePoint) {\n return (isAsciiIdentifierStart(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isIdentifierContinue(codePoint) {\n return (isAsciiIdentifierContinue(codePoint) ||\n (codePoint > 127 /* CharCode.MaxAscii */ && isNonAsciiIdentifierCharacter(codePoint)));\n}\nexport function isNonAsciiIdentifierCharacter(codePoint) {\n return lookupInNonAsciiMap(codePoint, nonAsciiIdentifierMap);\n}\nexport function codePointBefore(text, pos) {\n if (pos <= 0 || pos > text.length) {\n return { char: undefined, size: 0 };\n }\n const ch = text.charCodeAt(pos - 1);\n if (!isLowSurrogate(ch) || !isHighSurrogate(text.charCodeAt(pos - 2))) {\n return { char: ch, size: 1 };\n }\n return { char: text.codePointAt(pos - 2), size: 2 };\n}\nfunction lookupInNonAsciiMap(codePoint, map) {\n // Perform binary search in one of the Unicode range maps\n let lo = 0;\n let hi = map.length;\n let mid;\n while (lo + 1 < hi) {\n mid = lo + (hi - lo) / 2;\n // mid has to be even to catch a range's beginning\n mid -= mid % 2;\n if (map[mid] <= codePoint && codePoint <= map[mid + 1]) {\n return true;\n }\n if (codePoint < map[mid]) {\n hi = mid;\n }\n else {\n lo = mid + 2;\n }\n }\n return false;\n}\n//# sourceMappingURL=charcode.js.map","import { isWhiteSpaceSingleLine } from \"../charcode.js\";\nimport { defineCodeFix } from \"../diagnostics.js\";\nimport { splitLines } from \"../helpers/syntax-utils.js\";\nexport function createTripleQuoteIndentCodeFix(location) {\n return defineCodeFix({\n id: \"triple-quote-indent\",\n label: \"Format triple-quote-indent\",\n fix: (context) => {\n const splitStr = \"\\n\";\n const tripleQuote = '\"\"\"';\n const tripleQuoteLen = tripleQuote.length;\n const text = location.file.text.slice(location.pos + tripleQuoteLen, location.end - tripleQuoteLen);\n const lines = splitLines(text);\n if (lines.length === 0) {\n return;\n }\n if (lines.length === 1) {\n const indentNumb = getIndentNumbInLine(lines[0]);\n const prefix = \" \".repeat(indentNumb);\n return context.replaceText(location, [tripleQuote, lines[0], `${prefix}${tripleQuote}`].join(splitStr));\n }\n if (lines[0].trim() === \"\") {\n lines.shift();\n }\n const lastLine = lines[lines.length - 1];\n if (lastLine.trim() === \"\") {\n lines.pop();\n }\n let prefix = \"\";\n const minIndentNumb = Math.min(...lines.map((line) => getIndentNumbInLine(line)));\n const lastLineIndentNumb = getIndentNumbInLine(lastLine);\n if (minIndentNumb < lastLineIndentNumb) {\n const indentDiff = lastLineIndentNumb - minIndentNumb;\n prefix = \" \".repeat(indentDiff);\n }\n const middle = lines.map((line) => `${prefix}${line}`).join(splitStr);\n return context.replaceText(location, `${tripleQuote}${splitStr}${middle}${splitStr}${\" \".repeat(lastLineIndentNumb)}${tripleQuote}`);\n function getIndentNumbInLine(lineText) {\n let curStart = 0;\n while (curStart < lineText.length &&\n isWhiteSpaceSingleLine(lineText.charCodeAt(curStart))) {\n curStart++;\n }\n return curStart;\n }\n },\n });\n}\n//# sourceMappingURL=triple-quote-indent.codefix.js.map","import { codePointBefore, isAsciiIdentifierContinue, isAsciiIdentifierStart, isBinaryDigit, isDigit, isHexDigit, isIdentifierContinue, isIdentifierStart, isLineBreak, isLowercaseAsciiLetter, isNonAsciiIdentifierCharacter, isNonAsciiWhiteSpaceSingleLine, isWhiteSpace, isWhiteSpaceSingleLine, utf16CodeUnits, } from \"./charcode.js\";\nimport { createTripleQuoteIndentCodeFix } from \"./compiler-code-fixes/triple-quote-indent.codefix.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { getCommentAtPosition } from \"./parser-utils.js\";\nimport { createSourceFile } from \"./source-file.js\";\n// All conflict markers consist of the same character repeated seven times. If it is\n// a <<<<<<< or >>>>>>> marker then it is also followed by a space.\nconst mergeConflictMarkerLength = 7;\nexport var Token;\n(function (Token) {\n Token[Token[\"None\"] = 0] = \"None\";\n Token[Token[\"Invalid\"] = 1] = \"Invalid\";\n Token[Token[\"EndOfFile\"] = 2] = \"EndOfFile\";\n Token[Token[\"Identifier\"] = 3] = \"Identifier\";\n Token[Token[\"NumericLiteral\"] = 4] = \"NumericLiteral\";\n Token[Token[\"StringLiteral\"] = 5] = \"StringLiteral\";\n Token[Token[\"StringTemplateHead\"] = 6] = \"StringTemplateHead\";\n Token[Token[\"StringTemplateMiddle\"] = 7] = \"StringTemplateMiddle\";\n Token[Token[\"StringTemplateTail\"] = 8] = \"StringTemplateTail\";\n // Add new tokens above if they don't fit any of the categories below\n ///////////////////////////////////////////////////////////////\n // Trivia\n /** @internal */ Token[Token[\"__StartTrivia\"] = 9] = \"__StartTrivia\";\n Token[Token[\"SingleLineComment\"] = 9] = \"SingleLineComment\";\n Token[Token[\"MultiLineComment\"] = 10] = \"MultiLineComment\";\n Token[Token[\"NewLine\"] = 11] = \"NewLine\";\n Token[Token[\"Whitespace\"] = 12] = \"Whitespace\";\n Token[Token[\"ConflictMarker\"] = 13] = \"ConflictMarker\";\n // Add new trivia above\n /** @internal */ Token[Token[\"__EndTrivia\"] = 14] = \"__EndTrivia\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Doc comment content\n /** @internal */ Token[Token[\"__StartDocComment\"] = 14] = \"__StartDocComment\";\n Token[Token[\"DocText\"] = 14] = \"DocText\";\n Token[Token[\"DocCodeSpan\"] = 15] = \"DocCodeSpan\";\n Token[Token[\"DocCodeFenceDelimiter\"] = 16] = \"DocCodeFenceDelimiter\";\n /** @internal */ Token[Token[\"__EndDocComment\"] = 17] = \"__EndDocComment\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Punctuation\n /** @internal */ Token[Token[\"__StartPunctuation\"] = 17] = \"__StartPunctuation\";\n Token[Token[\"OpenBrace\"] = 17] = \"OpenBrace\";\n Token[Token[\"CloseBrace\"] = 18] = \"CloseBrace\";\n Token[Token[\"OpenParen\"] = 19] = \"OpenParen\";\n Token[Token[\"CloseParen\"] = 20] = \"CloseParen\";\n Token[Token[\"OpenBracket\"] = 21] = \"OpenBracket\";\n Token[Token[\"CloseBracket\"] = 22] = \"CloseBracket\";\n Token[Token[\"Dot\"] = 23] = \"Dot\";\n Token[Token[\"Ellipsis\"] = 24] = \"Ellipsis\";\n Token[Token[\"Semicolon\"] = 25] = \"Semicolon\";\n Token[Token[\"Comma\"] = 26] = \"Comma\";\n Token[Token[\"LessThan\"] = 27] = \"LessThan\";\n Token[Token[\"GreaterThan\"] = 28] = \"GreaterThan\";\n Token[Token[\"Equals\"] = 29] = \"Equals\";\n Token[Token[\"Ampersand\"] = 30] = \"Ampersand\";\n Token[Token[\"Bar\"] = 31] = \"Bar\";\n Token[Token[\"Question\"] = 32] = \"Question\";\n Token[Token[\"Colon\"] = 33] = \"Colon\";\n Token[Token[\"ColonColon\"] = 34] = \"ColonColon\";\n Token[Token[\"At\"] = 35] = \"At\";\n Token[Token[\"AtAt\"] = 36] = \"AtAt\";\n Token[Token[\"Hash\"] = 37] = \"Hash\";\n Token[Token[\"HashBrace\"] = 38] = \"HashBrace\";\n Token[Token[\"HashBracket\"] = 39] = \"HashBracket\";\n Token[Token[\"Star\"] = 40] = \"Star\";\n Token[Token[\"ForwardSlash\"] = 41] = \"ForwardSlash\";\n Token[Token[\"Plus\"] = 42] = \"Plus\";\n Token[Token[\"Hyphen\"] = 43] = \"Hyphen\";\n Token[Token[\"Exclamation\"] = 44] = \"Exclamation\";\n Token[Token[\"LessThanEquals\"] = 45] = \"LessThanEquals\";\n Token[Token[\"GreaterThanEquals\"] = 46] = \"GreaterThanEquals\";\n Token[Token[\"AmpsersandAmpersand\"] = 47] = \"AmpsersandAmpersand\";\n Token[Token[\"BarBar\"] = 48] = \"BarBar\";\n Token[Token[\"EqualsEquals\"] = 49] = \"EqualsEquals\";\n Token[Token[\"ExclamationEquals\"] = 50] = \"ExclamationEquals\";\n Token[Token[\"EqualsGreaterThan\"] = 51] = \"EqualsGreaterThan\";\n // Add new punctuation above\n /** @internal */ Token[Token[\"__EndPunctuation\"] = 52] = \"__EndPunctuation\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Statement keywords\n /** @internal */ Token[Token[\"__StartKeyword\"] = 52] = \"__StartKeyword\";\n /** @internal */ Token[Token[\"__StartStatementKeyword\"] = 52] = \"__StartStatementKeyword\";\n Token[Token[\"ImportKeyword\"] = 52] = \"ImportKeyword\";\n Token[Token[\"ModelKeyword\"] = 53] = \"ModelKeyword\";\n Token[Token[\"ScalarKeyword\"] = 54] = \"ScalarKeyword\";\n Token[Token[\"NamespaceKeyword\"] = 55] = \"NamespaceKeyword\";\n Token[Token[\"UsingKeyword\"] = 56] = \"UsingKeyword\";\n Token[Token[\"OpKeyword\"] = 57] = \"OpKeyword\";\n Token[Token[\"EnumKeyword\"] = 58] = \"EnumKeyword\";\n Token[Token[\"AliasKeyword\"] = 59] = \"AliasKeyword\";\n Token[Token[\"IsKeyword\"] = 60] = \"IsKeyword\";\n Token[Token[\"InterfaceKeyword\"] = 61] = \"InterfaceKeyword\";\n Token[Token[\"UnionKeyword\"] = 62] = \"UnionKeyword\";\n Token[Token[\"ProjectionKeyword\"] = 63] = \"ProjectionKeyword\";\n Token[Token[\"ElseKeyword\"] = 64] = \"ElseKeyword\";\n Token[Token[\"IfKeyword\"] = 65] = \"IfKeyword\";\n Token[Token[\"DecKeyword\"] = 66] = \"DecKeyword\";\n Token[Token[\"FnKeyword\"] = 67] = \"FnKeyword\";\n Token[Token[\"ConstKeyword\"] = 68] = \"ConstKeyword\";\n Token[Token[\"InitKeyword\"] = 69] = \"InitKeyword\";\n // Add new statement keyword above\n /** @internal */ Token[Token[\"__EndStatementKeyword\"] = 70] = \"__EndStatementKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__StartModifierKeyword\"] = 70] = \"__StartModifierKeyword\";\n Token[Token[\"ExternKeyword\"] = 70] = \"ExternKeyword\";\n /** @internal */ Token[Token[\"__EndModifierKeyword\"] = 71] = \"__EndModifierKeyword\";\n ///////////////////////////////////////////////////////////////\n ///////////////////////////////////////////////////////////////\n // Other keywords\n Token[Token[\"ExtendsKeyword\"] = 71] = \"ExtendsKeyword\";\n Token[Token[\"TrueKeyword\"] = 72] = \"TrueKeyword\";\n Token[Token[\"FalseKeyword\"] = 73] = \"FalseKeyword\";\n Token[Token[\"ReturnKeyword\"] = 74] = \"ReturnKeyword\";\n Token[Token[\"VoidKeyword\"] = 75] = \"VoidKeyword\";\n Token[Token[\"NeverKeyword\"] = 76] = \"NeverKeyword\";\n Token[Token[\"UnknownKeyword\"] = 77] = \"UnknownKeyword\";\n Token[Token[\"ValueOfKeyword\"] = 78] = \"ValueOfKeyword\";\n Token[Token[\"TypeOfKeyword\"] = 79] = \"TypeOfKeyword\";\n // Add new non-statement keyword above\n /** @internal */ Token[Token[\"__EndKeyword\"] = 80] = \"__EndKeyword\";\n ///////////////////////////////////////////////////////////////\n /** @internal */ Token[Token[\"__Count\"] = 80] = \"__Count\";\n})(Token || (Token = {}));\n/** @internal */\nexport const TokenDisplay = getTokenDisplayTable([\n [Token.None, \"none\"],\n [Token.Invalid, \"invalid\"],\n [Token.EndOfFile, \"end of file\"],\n [Token.SingleLineComment, \"single-line comment\"],\n [Token.MultiLineComment, \"multi-line comment\"],\n [Token.ConflictMarker, \"conflict marker\"],\n [Token.NumericLiteral, \"numeric literal\"],\n [Token.StringLiteral, \"string literal\"],\n [Token.StringTemplateHead, \"string template head\"],\n [Token.StringTemplateMiddle, \"string template middle\"],\n [Token.StringTemplateTail, \"string template tail\"],\n [Token.NewLine, \"newline\"],\n [Token.Whitespace, \"whitespace\"],\n [Token.DocCodeFenceDelimiter, \"doc code fence delimiter\"],\n [Token.DocCodeSpan, \"doc code span\"],\n [Token.DocText, \"doc text\"],\n [Token.OpenBrace, \"'{'\"],\n [Token.CloseBrace, \"'}'\"],\n [Token.OpenParen, \"'('\"],\n [Token.CloseParen, \"')'\"],\n [Token.OpenBracket, \"'['\"],\n [Token.CloseBracket, \"']'\"],\n [Token.Dot, \"'.'\"],\n [Token.Ellipsis, \"'...'\"],\n [Token.Semicolon, \"';'\"],\n [Token.Comma, \"','\"],\n [Token.LessThan, \"'<'\"],\n [Token.GreaterThan, \"'>'\"],\n [Token.Equals, \"'='\"],\n [Token.Ampersand, \"'&'\"],\n [Token.Bar, \"'|'\"],\n [Token.Question, \"'?'\"],\n [Token.Colon, \"':'\"],\n [Token.ColonColon, \"'::'\"],\n [Token.At, \"'@'\"],\n [Token.AtAt, \"'@@'\"],\n [Token.Hash, \"'#'\"],\n [Token.HashBrace, \"'#{'\"],\n [Token.HashBracket, \"'#['\"],\n [Token.Star, \"'*'\"],\n [Token.ForwardSlash, \"'/'\"],\n [Token.Plus, \"'+'\"],\n [Token.Hyphen, \"'-'\"],\n [Token.Exclamation, \"'!'\"],\n [Token.LessThanEquals, \"'<='\"],\n [Token.GreaterThanEquals, \"'>='\"],\n [Token.AmpsersandAmpersand, \"'&&'\"],\n [Token.BarBar, \"'||'\"],\n [Token.EqualsEquals, \"'=='\"],\n [Token.ExclamationEquals, \"'!='\"],\n [Token.EqualsGreaterThan, \"'=>'\"],\n [Token.Identifier, \"identifier\"],\n [Token.ImportKeyword, \"'import'\"],\n [Token.ModelKeyword, \"'model'\"],\n [Token.ScalarKeyword, \"'scalar'\"],\n [Token.NamespaceKeyword, \"'namespace'\"],\n [Token.UsingKeyword, \"'using'\"],\n [Token.OpKeyword, \"'op'\"],\n [Token.EnumKeyword, \"'enum'\"],\n [Token.AliasKeyword, \"'alias'\"],\n [Token.IsKeyword, \"'is'\"],\n [Token.InterfaceKeyword, \"'interface'\"],\n [Token.UnionKeyword, \"'union'\"],\n [Token.ProjectionKeyword, \"'projection'\"],\n [Token.ElseKeyword, \"'else'\"],\n [Token.IfKeyword, \"'if'\"],\n [Token.DecKeyword, \"'dec'\"],\n [Token.FnKeyword, \"'fn'\"],\n [Token.ValueOfKeyword, \"'valueof'\"],\n [Token.TypeOfKeyword, \"'typeof'\"],\n [Token.ConstKeyword, \"'const'\"],\n [Token.InitKeyword, \"'init'\"],\n [Token.ExtendsKeyword, \"'extends'\"],\n [Token.TrueKeyword, \"'true'\"],\n [Token.FalseKeyword, \"'false'\"],\n [Token.ReturnKeyword, \"'return'\"],\n [Token.VoidKeyword, \"'void'\"],\n [Token.NeverKeyword, \"'never'\"],\n [Token.UnknownKeyword, \"'unknown'\"],\n [Token.ExternKeyword, \"'extern'\"],\n]);\n/** @internal */\nexport const Keywords = new Map([\n [\"import\", Token.ImportKeyword],\n [\"model\", Token.ModelKeyword],\n [\"scalar\", Token.ScalarKeyword],\n [\"namespace\", Token.NamespaceKeyword],\n [\"interface\", Token.InterfaceKeyword],\n [\"union\", Token.UnionKeyword],\n [\"if\", Token.IfKeyword],\n [\"else\", Token.ElseKeyword],\n [\"projection\", Token.ProjectionKeyword],\n [\"using\", Token.UsingKeyword],\n [\"op\", Token.OpKeyword],\n [\"extends\", Token.ExtendsKeyword],\n [\"is\", Token.IsKeyword],\n [\"enum\", Token.EnumKeyword],\n [\"alias\", Token.AliasKeyword],\n [\"dec\", Token.DecKeyword],\n [\"fn\", Token.FnKeyword],\n [\"valueof\", Token.ValueOfKeyword],\n [\"typeof\", Token.TypeOfKeyword],\n [\"const\", Token.ConstKeyword],\n [\"init\", Token.InitKeyword],\n [\"true\", Token.TrueKeyword],\n [\"false\", Token.FalseKeyword],\n [\"return\", Token.ReturnKeyword],\n [\"void\", Token.VoidKeyword],\n [\"never\", Token.NeverKeyword],\n [\"unknown\", Token.UnknownKeyword],\n [\"extern\", Token.ExternKeyword],\n]);\nexport var TokenFlags;\n(function (TokenFlags) {\n TokenFlags[TokenFlags[\"None\"] = 0] = \"None\";\n TokenFlags[TokenFlags[\"Escaped\"] = 1] = \"Escaped\";\n TokenFlags[TokenFlags[\"TripleQuoted\"] = 2] = \"TripleQuoted\";\n TokenFlags[TokenFlags[\"Unterminated\"] = 4] = \"Unterminated\";\n TokenFlags[TokenFlags[\"NonAscii\"] = 8] = \"NonAscii\";\n TokenFlags[TokenFlags[\"DocComment\"] = 16] = \"DocComment\";\n TokenFlags[TokenFlags[\"Backticked\"] = 32] = \"Backticked\";\n})(TokenFlags || (TokenFlags = {}));\nexport function isTrivia(token) {\n return token >= Token.__StartTrivia && token < Token.__EndTrivia;\n}\nexport function isComment(token) {\n return token === Token.SingleLineComment || token === Token.MultiLineComment;\n}\nexport function isKeyword(token) {\n return token >= Token.__StartKeyword && token < Token.__EndKeyword;\n}\nexport function isPunctuation(token) {\n return token >= Token.__StartPunctuation && token < Token.__EndPunctuation;\n}\nexport function isModifier(token) {\n return token >= Token.__StartModifierKeyword && token < Token.__EndModifierKeyword;\n}\nexport function isStatementKeyword(token) {\n return token >= Token.__StartStatementKeyword && token < Token.__EndStatementKeyword;\n}\nexport function createScanner(source, diagnosticHandler) {\n const file = typeof source === \"string\" ? createSourceFile(source, \"<anonymous file>\") : source;\n const input = file.text;\n let position = 0;\n let endPosition = input.length;\n let token = Token.None;\n let tokenPosition = -1;\n let tokenFlags = TokenFlags.None;\n // Skip BOM\n if (position < endPosition && input.charCodeAt(position) === 65279 /* CharCode.ByteOrderMark */) {\n position++;\n }\n return {\n get position() {\n return position;\n },\n get token() {\n return token;\n },\n get tokenPosition() {\n return tokenPosition;\n },\n get tokenFlags() {\n return tokenFlags;\n },\n file,\n scan,\n scanRange,\n scanDoc,\n reScanStringTemplate,\n findTripleQuotedStringIndent,\n unindentAndUnescapeTripleQuotedString,\n eof,\n getTokenText,\n getTokenValue,\n };\n function eof() {\n return position >= endPosition;\n }\n function getTokenText() {\n return input.substring(tokenPosition, position);\n }\n function getTokenValue() {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateHead:\n case Token.StringTemplateMiddle:\n case Token.StringTemplateTail:\n return getStringTokenValue(token, tokenFlags);\n case Token.Identifier:\n return getIdentifierTokenValue();\n case Token.DocText:\n return getDocTextValue();\n default:\n return getTokenText();\n }\n }\n function lookAhead(offset) {\n const p = position + offset;\n if (p >= endPosition) {\n return Number.NaN;\n }\n return input.charCodeAt(p);\n }\n function scan() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 40 /* CharCode.OpenParen */:\n return next(Token.OpenParen);\n case 41 /* CharCode.CloseParen */:\n return next(Token.CloseParen);\n case 44 /* CharCode.Comma */:\n return next(Token.Comma);\n case 58 /* CharCode.Colon */:\n return lookAhead(1) === 58 /* CharCode.Colon */ ? next(Token.ColonColon, 2) : next(Token.Colon);\n case 59 /* CharCode.Semicolon */:\n return next(Token.Semicolon);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.OpenBracket);\n case 93 /* CharCode.CloseBracket */:\n return next(Token.CloseBracket);\n case 123 /* CharCode.OpenBrace */:\n return next(Token.OpenBrace);\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return lookAhead(1) === 64 /* CharCode.At */ ? next(Token.AtAt, 2) : next(Token.At);\n case 35 /* CharCode.Hash */:\n const ahead = lookAhead(1);\n switch (ahead) {\n case 123 /* CharCode.OpenBrace */:\n return next(Token.HashBrace, 2);\n case 91 /* CharCode.OpenBracket */:\n return next(Token.HashBracket, 2);\n default:\n return next(Token.Hash);\n }\n case 43 /* CharCode.Plus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Plus);\n case 45 /* CharCode.Minus */:\n return isDigit(lookAhead(1)) ? scanSignedNumber() : next(Token.Hyphen);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 63 /* CharCode.Question */:\n return next(Token.Question);\n case 38 /* CharCode.Ampersand */:\n return lookAhead(1) === 38 /* CharCode.Ampersand */\n ? next(Token.AmpsersandAmpersand, 2)\n : next(Token.Ampersand);\n case 46 /* CharCode.Dot */:\n return lookAhead(1) === 46 /* CharCode.Dot */ && lookAhead(2) === 46 /* CharCode.Dot */\n ? next(Token.Ellipsis, 3)\n : next(Token.Dot);\n case 47 /* CharCode.Slash */:\n switch (lookAhead(1)) {\n case 47 /* CharCode.Slash */:\n return scanSingleLineComment();\n case 42 /* CharCode.Asterisk */:\n return scanMultiLineComment();\n }\n return next(Token.ForwardSlash);\n case 48 /* CharCode._0 */:\n switch (lookAhead(1)) {\n case 120 /* CharCode.x */:\n return scanHexNumber();\n case 98 /* CharCode.b */:\n return scanBinaryNumber();\n }\n // fallthrough\n case 49 /* CharCode._1 */:\n case 50 /* CharCode._2 */:\n case 51 /* CharCode._3 */:\n case 52 /* CharCode._4 */:\n case 53 /* CharCode._5 */:\n case 54 /* CharCode._6 */:\n case 55 /* CharCode._7 */:\n case 56 /* CharCode._8 */:\n case 57 /* CharCode._9 */:\n return scanNumber();\n case 60 /* CharCode.LessThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.LessThanEquals, 2)\n : next(Token.LessThan);\n case 62 /* CharCode.GreaterThan */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.GreaterThanEquals, 2)\n : next(Token.GreaterThan);\n case 61 /* CharCode.Equals */:\n if (atConflictMarker())\n return scanConflictMarker();\n switch (lookAhead(1)) {\n case 61 /* CharCode.Equals */:\n return next(Token.EqualsEquals, 2);\n case 62 /* CharCode.GreaterThan */:\n return next(Token.EqualsGreaterThan, 2);\n }\n return next(Token.Equals);\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return lookAhead(1) === 124 /* CharCode.Bar */ ? next(Token.BarBar, 2) : next(Token.Bar);\n case 34 /* CharCode.DoubleQuote */:\n return lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */\n ? scanString(TokenFlags.TripleQuoted)\n : scanString(TokenFlags.None);\n case 33 /* CharCode.Exclamation */:\n return lookAhead(1) === 61 /* CharCode.Equals */\n ? next(Token.ExclamationEquals, 2)\n : next(Token.Exclamation);\n case 96 /* CharCode.Backtick */:\n return scanBacktickedIdentifier();\n default:\n if (isLowercaseAsciiLetter(ch)) {\n return scanIdentifierOrKeyword();\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return scanInvalidCharacter();\n }\n return scanNonAsciiToken();\n }\n }\n return (token = Token.EndOfFile);\n }\n function scanDoc() {\n tokenPosition = position;\n tokenFlags = TokenFlags.None;\n if (!eof()) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (lookAhead(1) === 10 /* CharCode.LineFeed */) {\n position++;\n }\n // fallthrough\n case 10 /* CharCode.LineFeed */:\n return next(Token.NewLine);\n case 92 /* CharCode.Backslash */:\n if (lookAhead(1) === 64 /* CharCode.At */) {\n tokenFlags |= TokenFlags.Escaped;\n return next(Token.DocText, 2);\n }\n return next(Token.DocText);\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n case 11 /* CharCode.VerticalTab */:\n case 12 /* CharCode.FormFeed */:\n return scanWhitespace();\n case 125 /* CharCode.CloseBrace */:\n return next(Token.CloseBrace);\n case 64 /* CharCode.At */:\n return next(Token.At);\n case 42 /* CharCode.Asterisk */:\n return next(Token.Star);\n case 96 /* CharCode.Backtick */:\n return lookAhead(1) === 96 /* CharCode.Backtick */ && lookAhead(2) === 96 /* CharCode.Backtick */\n ? next(Token.DocCodeFenceDelimiter, 3)\n : scanDocCodeSpan();\n case 60 /* CharCode.LessThan */:\n case 62 /* CharCode.GreaterThan */:\n case 61 /* CharCode.Equals */:\n case 124 /* CharCode.Bar */:\n if (atConflictMarker())\n return scanConflictMarker();\n return next(Token.DocText);\n case 45 /* CharCode.Minus */:\n return next(Token.Hyphen);\n }\n if (isAsciiIdentifierStart(ch)) {\n return scanIdentifier();\n }\n if (ch <= 127 /* CharCode.MaxAscii */) {\n return next(Token.DocText);\n }\n const cp = input.codePointAt(position);\n if (isIdentifierStart(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanUnknown(Token.DocText);\n }\n return (token = Token.EndOfFile);\n }\n function reScanStringTemplate(lastTokenFlags) {\n position = tokenPosition;\n tokenFlags = TokenFlags.None;\n return scanStringTemplateSpan(lastTokenFlags);\n }\n function scanRange(range, callback) {\n const savedPosition = position;\n const savedEndPosition = endPosition;\n const savedToken = token;\n const savedTokenPosition = tokenPosition;\n const savedTokenFlags = tokenFlags;\n position = range.pos;\n endPosition = range.end;\n token = Token.None;\n tokenPosition = -1;\n tokenFlags = TokenFlags.None;\n const result = callback();\n position = savedPosition;\n endPosition = savedEndPosition;\n token = savedToken;\n tokenPosition = savedTokenPosition;\n tokenFlags = savedTokenFlags;\n return result;\n }\n function next(t, count = 1) {\n position += count;\n return (token = t);\n }\n function unterminated(t) {\n tokenFlags |= TokenFlags.Unterminated;\n error({ code: \"unterminated\", format: { token: TokenDisplay[t] } });\n return (token = t);\n }\n function scanNonAsciiToken() {\n tokenFlags |= TokenFlags.NonAscii;\n const ch = input.charCodeAt(position);\n if (isNonAsciiWhiteSpaceSingleLine(ch)) {\n return scanWhitespace();\n }\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n return scanInvalidCharacter();\n }\n function scanInvalidCharacter() {\n token = scanUnknown(Token.Invalid);\n error({ code: \"invalid-character\" });\n return token;\n }\n function scanUnknown(t) {\n const codePoint = input.codePointAt(position);\n return (token = next(t, utf16CodeUnits(codePoint)));\n }\n function error(report, pos, end) {\n const diagnostic = createDiagnostic({\n ...report,\n target: { file, pos: pos ?? tokenPosition, end: end ?? position },\n });\n diagnosticHandler(diagnostic);\n }\n function scanWhitespace() {\n do {\n position++;\n } while (!eof() && isWhiteSpaceSingleLine(input.charCodeAt(position)));\n return (token = Token.Whitespace);\n }\n function scanSignedNumber() {\n position++; // consume '+/-'\n return scanNumber();\n }\n function scanNumber() {\n scanKnownDigits();\n if (!eof() && input.charCodeAt(position) === 46 /* CharCode.Dot */) {\n position++;\n scanRequiredDigits();\n }\n if (!eof() && input.charCodeAt(position) === 101 /* CharCode.e */) {\n position++;\n const ch = input.charCodeAt(position);\n if (ch === 43 /* CharCode.Plus */ || ch === 45 /* CharCode.Minus */) {\n position++;\n }\n scanRequiredDigits();\n }\n return (token = Token.NumericLiteral);\n }\n function scanKnownDigits() {\n do {\n position++;\n } while (!eof() && isDigit(input.charCodeAt(position)));\n }\n function scanRequiredDigits() {\n if (eof() || !isDigit(input.charCodeAt(position))) {\n error({ code: \"digit-expected\" });\n return;\n }\n scanKnownDigits();\n }\n function scanHexNumber() {\n position += 2; // consume '0x'\n if (eof() || !isHexDigit(input.charCodeAt(position))) {\n error({ code: \"hex-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isHexDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanBinaryNumber() {\n position += 2; // consume '0b'\n if (eof() || !isBinaryDigit(input.charCodeAt(position))) {\n error({ code: \"binary-digit-expected\" });\n return (token = Token.NumericLiteral);\n }\n do {\n position++;\n } while (!eof() && isBinaryDigit(input.charCodeAt(position)));\n return (token = Token.NumericLiteral);\n }\n function scanSingleLineComment() {\n position = skipSingleLineComment(input, position, endPosition);\n return (token = Token.SingleLineComment);\n }\n function scanMultiLineComment() {\n token = Token.MultiLineComment;\n if (lookAhead(2) === 42 /* CharCode.Asterisk */) {\n tokenFlags |= TokenFlags.DocComment;\n }\n const [newPosition, terminated] = skipMultiLineComment(input, position);\n position = newPosition;\n return terminated ? token : unterminated(token);\n }\n function scanDocCodeSpan() {\n position++; // consume '`'\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.DocCodeSpan);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n }\n }\n return unterminated(Token.DocCodeSpan);\n }\n function scanString(tokenFlags) {\n if (tokenFlags & TokenFlags.TripleQuoted) {\n position += 3; // consume '\"\"\"'\n }\n else {\n position++; // consume '\"'\n }\n return scanStringLiteralLike(tokenFlags, Token.StringTemplateHead, Token.StringLiteral);\n }\n function scanStringTemplateSpan(tokenFlags) {\n position++; // consume '{'\n return scanStringLiteralLike(tokenFlags, Token.StringTemplateMiddle, Token.StringTemplateTail);\n }\n function scanStringLiteralLike(requestedTokenFlags, template, tail) {\n const multiLine = requestedTokenFlags & TokenFlags.TripleQuoted;\n tokenFlags = requestedTokenFlags;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n tokenFlags |= TokenFlags.Escaped;\n position++;\n if (eof()) {\n break loop;\n }\n continue;\n case 34 /* CharCode.DoubleQuote */:\n if (multiLine) {\n if (lookAhead(1) === 34 /* CharCode.DoubleQuote */ && lookAhead(2) === 34 /* CharCode.DoubleQuote */) {\n position += 3;\n token = tail;\n return tail;\n }\n else {\n continue;\n }\n }\n else {\n position++;\n token = tail;\n return tail;\n }\n case 36 /* CharCode.$ */:\n if (lookAhead(1) === 123 /* CharCode.OpenBrace */) {\n position += 2;\n token = template;\n return template;\n }\n continue;\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n if (multiLine) {\n continue;\n }\n else {\n break loop;\n }\n }\n }\n return unterminated(tail);\n }\n function getStringLiteralOffsetStart(token, tokenFlags) {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateHead:\n return tokenFlags & TokenFlags.TripleQuoted ? 3 : 1; // \"\"\" or \"\n default:\n return 1; // {\n }\n }\n function getStringLiteralOffsetEnd(token, tokenFlags) {\n switch (token) {\n case Token.StringLiteral:\n case Token.StringTemplateTail:\n return tokenFlags & TokenFlags.TripleQuoted ? 3 : 1; // \"\"\" or \"\n default:\n return 2; // ${\n }\n }\n function getStringTokenValue(token, tokenFlags) {\n if (tokenFlags & TokenFlags.TripleQuoted) {\n const start = tokenPosition;\n const end = position;\n const [indentationStart, indentationEnd] = findTripleQuotedStringIndent(start, end);\n return unindentAndUnescapeTripleQuotedString(start, end, indentationStart, indentationEnd, token, tokenFlags);\n }\n const startOffset = getStringLiteralOffsetStart(token, tokenFlags);\n const endOffset = getStringLiteralOffsetEnd(token, tokenFlags);\n const start = tokenPosition + startOffset;\n const end = tokenFlags & TokenFlags.Unterminated ? position : position - endOffset;\n if (tokenFlags & TokenFlags.Escaped) {\n return unescapeString(start, end);\n }\n return input.substring(start, end);\n }\n function getIdentifierTokenValue() {\n const start = tokenFlags & TokenFlags.Backticked ? tokenPosition + 1 : tokenPosition;\n const end = tokenFlags & TokenFlags.Backticked && !(tokenFlags & TokenFlags.Unterminated)\n ? position - 1\n : position;\n const text = tokenFlags & TokenFlags.Escaped ? unescapeString(start, end) : input.substring(start, end);\n if (tokenFlags & TokenFlags.NonAscii) {\n return text.normalize(\"NFC\");\n }\n return text;\n }\n function getDocTextValue() {\n if (tokenFlags & TokenFlags.Escaped) {\n let start = tokenPosition;\n const end = position;\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n break;\n }\n result += input.substring(start, pos);\n switch (input.charCodeAt(pos + 1)) {\n case 64 /* CharCode.At */:\n result += \"@\";\n break;\n default:\n result += input.substring(pos, pos + 2);\n }\n pos += 2;\n start = pos;\n }\n result += input.substring(start, end);\n return result;\n }\n else {\n return input.substring(tokenPosition, position);\n }\n }\n function findTripleQuotedStringIndent(start, end) {\n end = end - 3; // Remove the \"\"\"\n // remove whitespace before closing delimiter and record it as required\n // indentation for all lines\n const indentationEnd = end;\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n const indentationStart = end;\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, 0, end)) {\n end--;\n }\n end--;\n }\n return [indentationStart, indentationEnd];\n }\n function unindentAndUnescapeTripleQuotedString(start, end, indentationStart, indentationEnd, token, tokenFlags) {\n const startOffset = getStringLiteralOffsetStart(token, tokenFlags);\n const endOffset = getStringLiteralOffsetEnd(token, tokenFlags);\n start = start + startOffset;\n end = tokenFlags & TokenFlags.Unterminated ? end : end - endOffset;\n if (token === Token.StringLiteral || token === Token.StringTemplateHead) {\n // ignore leading whitespace before required initial line break\n while (start < end && isWhiteSpaceSingleLine(input.charCodeAt(start))) {\n start++;\n }\n // remove required initial line break\n if (isLineBreak(input.charCodeAt(start))) {\n if (isCrlf(start, start, end)) {\n start++;\n }\n start++;\n }\n else {\n error({\n code: \"no-new-line-start-triple-quote\",\n codefixes: [createTripleQuoteIndentCodeFix({ file, pos: tokenPosition, end: position })],\n });\n }\n }\n if (token === Token.StringLiteral || token === Token.StringTemplateTail) {\n while (end > start && isWhiteSpaceSingleLine(input.charCodeAt(end - 1))) {\n end--;\n }\n // remove required final line break\n if (isLineBreak(input.charCodeAt(end - 1))) {\n if (isCrlf(end - 2, start, end)) {\n end--;\n }\n end--;\n }\n else {\n error({\n code: \"no-new-line-end-triple-quote\",\n codefixes: [createTripleQuoteIndentCodeFix({ file, pos: tokenPosition, end: position })],\n });\n }\n }\n let skipUnindentOnce = false;\n // We are resuming from the middle of a line so we want to keep text as it is from there.\n if (token === Token.StringTemplateMiddle || token === Token.StringTemplateTail) {\n skipUnindentOnce = true;\n }\n // remove required matching indentation from each line and unescape in the\n // process of doing so\n let result = \"\";\n let pos = start;\n while (pos < end) {\n if (skipUnindentOnce) {\n skipUnindentOnce = false;\n }\n else {\n // skip indentation at start of line\n start = skipMatchingIndentation(pos, end, indentationStart, indentationEnd);\n }\n let ch;\n while (pos < end && !isLineBreak((ch = input.charCodeAt(pos)))) {\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n result += input.substring(start, pos);\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" }, pos, pos);\n pos++;\n }\n else {\n result += unescapeOne(pos);\n pos += 2;\n }\n start = pos;\n }\n if (pos < end) {\n if (isCrlf(pos, start, end)) {\n // CRLF in multi-line string is normalized to LF in string value.\n // This keeps program behavior unchanged by line-ending conversion.\n result += input.substring(start, pos);\n result += \"\\n\";\n pos += 2;\n }\n else {\n pos++; // include non-CRLF newline\n result += input.substring(start, pos);\n }\n start = pos;\n }\n }\n result += input.substring(start, pos);\n return result;\n }\n function isCrlf(pos, start, end) {\n return (pos >= start &&\n pos < end - 1 &&\n input.charCodeAt(pos) === 13 /* CharCode.CarriageReturn */ &&\n input.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */);\n }\n function skipMatchingIndentation(pos, end, indentationStart, indentationEnd) {\n let indentationPos = indentationStart;\n end = Math.min(end, pos + (indentationEnd - indentationStart));\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (isLineBreak(ch)) {\n // allow subset of indentation if line has only whitespace\n break;\n }\n if (ch !== input.charCodeAt(indentationPos)) {\n error({\n code: \"triple-quote-indent\",\n codefixes: [createTripleQuoteIndentCodeFix({ file, pos: tokenPosition, end: position })],\n });\n break;\n }\n indentationPos++;\n pos++;\n }\n return pos;\n }\n function unescapeString(start, end) {\n let result = \"\";\n let pos = start;\n while (pos < end) {\n const ch = input.charCodeAt(pos);\n if (ch !== 92 /* CharCode.Backslash */) {\n pos++;\n continue;\n }\n if (pos === end - 1) {\n error({ code: \"invalid-escape-sequence\" }, pos, pos);\n break;\n }\n result += input.substring(start, pos);\n result += unescapeOne(pos);\n pos += 2;\n start = pos;\n }\n result += input.substring(start, pos);\n return result;\n }\n function unescapeOne(pos) {\n const ch = input.charCodeAt(pos + 1);\n switch (ch) {\n case 114 /* CharCode.r */:\n return \"\\r\";\n case 110 /* CharCode.n */:\n return \"\\n\";\n case 116 /* CharCode.t */:\n return \"\\t\";\n case 34 /* CharCode.DoubleQuote */:\n return '\"';\n case 92 /* CharCode.Backslash */:\n return \"\\\\\";\n case 36 /* CharCode.$ */:\n return \"$\";\n case 64 /* CharCode.At */:\n return \"@\";\n case 96 /* CharCode.Backtick */:\n return \"`\";\n default:\n error({ code: \"invalid-escape-sequence\" }, pos, pos + 2);\n return String.fromCharCode(ch);\n }\n }\n function scanIdentifierOrKeyword() {\n let count = 0;\n let ch = input.charCodeAt(position);\n while (true) {\n position++;\n count++;\n if (eof()) {\n break;\n }\n ch = input.charCodeAt(position);\n if (count < 10 /* KeywordLimit.MaxLength */ && isLowercaseAsciiLetter(ch)) {\n continue;\n }\n if (isAsciiIdentifierContinue(ch)) {\n return scanIdentifier();\n }\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n break;\n }\n if (count >= 2 /* KeywordLimit.MinLength */ && count <= 10 /* KeywordLimit.MaxLength */) {\n const keyword = Keywords.get(getTokenText());\n if (keyword) {\n return (token = keyword);\n }\n }\n return (token = Token.Identifier);\n }\n function scanIdentifier() {\n let ch;\n do {\n position++;\n if (eof()) {\n return (token = Token.Identifier);\n }\n } while (isAsciiIdentifierContinue((ch = input.charCodeAt(position))));\n if (ch > 127 /* CharCode.MaxAscii */) {\n const cp = input.codePointAt(position);\n if (isNonAsciiIdentifierCharacter(cp)) {\n return scanNonAsciiIdentifier(cp);\n }\n }\n return (token = Token.Identifier);\n }\n function scanBacktickedIdentifier() {\n position++; // consume '`'\n tokenFlags |= TokenFlags.Backticked;\n loop: for (; !eof(); position++) {\n const ch = input.charCodeAt(position);\n switch (ch) {\n case 92 /* CharCode.Backslash */:\n position++;\n tokenFlags |= TokenFlags.Escaped;\n continue;\n case 96 /* CharCode.Backtick */:\n position++;\n return (token = Token.Identifier);\n case 13 /* CharCode.CarriageReturn */:\n case 10 /* CharCode.LineFeed */:\n break loop;\n default:\n if (ch > 127 /* CharCode.MaxAscii */) {\n tokenFlags |= TokenFlags.NonAscii;\n }\n }\n }\n return unterminated(Token.Identifier);\n }\n function scanNonAsciiIdentifier(startCodePoint) {\n tokenFlags |= TokenFlags.NonAscii;\n let cp = startCodePoint;\n do {\n position += utf16CodeUnits(cp);\n } while (!eof() && isIdentifierContinue((cp = input.codePointAt(position))));\n return (token = Token.Identifier);\n }\n function atConflictMarker() {\n return isConflictMarker(input, position, endPosition);\n }\n function scanConflictMarker() {\n const marker = input.charCodeAt(position);\n position += mergeConflictMarkerLength;\n error({ code: \"conflict-marker\" });\n if (marker === 60 /* CharCode.LessThan */ || marker === 62 /* CharCode.GreaterThan */) {\n // Consume everything from >>>>>>> or <<<<<<< to the end of the line.\n while (position < endPosition && !isLineBreak(input.charCodeAt(position))) {\n position++;\n }\n }\n else {\n // Consume everything from the start of a ||||||| or =======\n // marker to the start of the next ======= or >>>>>>> marker.\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if ((ch === 61 /* CharCode.Equals */ || ch === 62 /* CharCode.GreaterThan */) &&\n ch !== marker &&\n isConflictMarker(input, position, endPosition)) {\n break;\n }\n position++;\n }\n }\n return (token = Token.ConflictMarker);\n }\n}\n/**\n *\n * @param script\n * @param position\n * @param endPosition exclude\n * @returns return === endPosition (or -1) means not found non-trivia until endPosition + 1\n */\nexport function skipTriviaBackward(script, position, endPosition = -1) {\n endPosition = endPosition < -1 ? -1 : endPosition;\n const input = script.file.text;\n if (position === input.length) {\n // it's possible if the pos is at the end of the file, just treat it as trivia\n position--;\n }\n else if (position > input.length) {\n compilerAssert(false, \"position out of range\");\n }\n while (position > endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position--;\n }\n else {\n const comment = getCommentAtPosition(script, position);\n if (comment) {\n position = comment.pos - 1;\n }\n else {\n break;\n }\n }\n }\n return position;\n}\n/**\n *\n * @param input\n * @param position\n * @param endPosition exclude\n * @returns return === endPosition (or input.length) means not found non-trivia until endPosition - 1\n */\nexport function skipTrivia(input, position, endPosition = input.length) {\n endPosition = endPosition > input.length ? input.length : endPosition;\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (isWhiteSpace(ch)) {\n position++;\n continue;\n }\n if (ch === 47 /* CharCode.Slash */) {\n switch (input.charCodeAt(position + 1)) {\n case 47 /* CharCode.Slash */:\n position = skipSingleLineComment(input, position, endPosition);\n continue;\n case 42 /* CharCode.Asterisk */:\n position = skipMultiLineComment(input, position, endPosition)[0];\n continue;\n }\n }\n break;\n }\n return position;\n}\nexport function skipWhiteSpace(input, position, endPosition = input.length) {\n while (position < endPosition) {\n const ch = input.charCodeAt(position);\n if (!isWhiteSpace(ch)) {\n break;\n }\n position++;\n }\n return position;\n}\nfunction skipSingleLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '//'\n for (; position < endPosition; position++) {\n if (isLineBreak(input.charCodeAt(position))) {\n break;\n }\n }\n return position;\n}\nfunction skipMultiLineComment(input, position, endPosition = input.length) {\n position += 2; // consume '/*'\n for (; position < endPosition; position++) {\n if (input.charCodeAt(position) === 42 /* CharCode.Asterisk */ &&\n input.charCodeAt(position + 1) === 47 /* CharCode.Slash */) {\n return [position + 2, true];\n }\n }\n return [position, false];\n}\nexport function skipContinuousIdentifier(input, position, isBackward = false) {\n let cur = position;\n const direction = isBackward ? -1 : 1;\n const bar = isBackward ? (p) => p >= 0 : (p) => p < input.length;\n while (bar(cur)) {\n const { char: cp, size } = codePointBefore(input, cur);\n cur += direction * size;\n if (!cp || !isIdentifierContinue(cp)) {\n break;\n }\n }\n return cur;\n}\nfunction isConflictMarker(input, position, endPosition = input.length) {\n // Conflict markers must be at the start of a line.\n const ch = input.charCodeAt(position);\n if (position === 0 || isLineBreak(input.charCodeAt(position - 1))) {\n if (position + mergeConflictMarkerLength < endPosition) {\n for (let i = 0; i < mergeConflictMarkerLength; i++) {\n if (input.charCodeAt(position + i) !== ch) {\n return false;\n }\n }\n return (ch === 61 /* CharCode.Equals */ ||\n input.charCodeAt(position + mergeConflictMarkerLength) === 32 /* CharCode.Space */);\n }\n }\n return false;\n}\nfunction getTokenDisplayTable(entries) {\n const table = new Array(entries.length);\n for (const [token, display] of entries) {\n compilerAssert(token >= 0 && token < Token.__Count, `Invalid entry in token display table, ${token}, ${Token[token]}, ${display}`);\n compilerAssert(!table[token], `Duplicate entry in token display table for: ${token}, ${Token[token]}, ${display}`);\n table[token] = display;\n }\n for (let token = 0; token < Token.__Count; token++) {\n compilerAssert(table[token], `Missing entry in token display table: ${token}, ${Token[token]}`);\n }\n return table;\n}\n//# sourceMappingURL=scanner.js.map","import { isIdentifierContinue, isIdentifierStart, utf16CodeUnits } from \"../charcode.js\";\nimport { Keywords } from \"../scanner.js\";\nimport { SyntaxKind } from \"../types.js\";\n/**\n * Print a string as a TypeSpec identifier. If the string is a valid identifier, return it as is otherwise wrap it into backticks.\n * @param sv Identifier string value.\n * @returns Identifier string as it would be represented in a TypeSpec file.\n *\n * @example\n * ```ts\n * printIdentifier(\"foo\") // foo\n * printIdentifier(\"foo bar\") // `foo bar`\n * ```\n */\nexport function printIdentifier(sv) {\n if (needBacktick(sv)) {\n const escapedString = sv\n .replace(/\\\\/g, \"\\\\\\\\\")\n .replace(/\\n/g, \"\\\\n\")\n .replace(/\\r/g, \"\\\\r\")\n .replace(/\\t/g, \"\\\\t\")\n .replace(/`/g, \"\\\\`\");\n return `\\`${escapedString}\\``;\n }\n else {\n return sv;\n }\n}\nfunction needBacktick(sv) {\n if (sv.length === 0) {\n return false;\n }\n if (Keywords.has(sv)) {\n return true;\n }\n let cp = sv.codePointAt(0);\n if (!isIdentifierStart(cp)) {\n return true;\n }\n let pos = 0;\n do {\n pos += utf16CodeUnits(cp);\n } while (pos < sv.length && isIdentifierContinue((cp = sv.codePointAt(pos))));\n return pos < sv.length;\n}\nexport function typeReferenceToString(node) {\n switch (node.kind) {\n case SyntaxKind.MemberExpression:\n return `${typeReferenceToString(node.base)}${node.selector}${typeReferenceToString(node.id)}`;\n case SyntaxKind.TypeReference:\n return typeReferenceToString(node.target);\n case SyntaxKind.Identifier:\n return node.sv;\n }\n}\nexport function splitLines(text) {\n const lines = [];\n let start = 0;\n let pos = 0;\n while (pos < text.length) {\n const ch = text.charCodeAt(pos);\n switch (ch) {\n case 13 /* CharCode.CarriageReturn */:\n if (text.charCodeAt(pos + 1) === 10 /* CharCode.LineFeed */) {\n lines.push(text.slice(start, pos));\n start = pos + 2;\n pos++;\n }\n else {\n lines.push(text.slice(start, pos));\n start = pos + 1;\n }\n break;\n case 10 /* CharCode.LineFeed */:\n lines.push(text.slice(start, pos));\n start = pos + 1;\n break;\n }\n pos++;\n }\n lines.push(text.slice(start));\n return lines;\n}\n//# sourceMappingURL=syntax-utils.js.map","import { isArray, mutate } from \"../utils/misc.js\";\nimport { codePointBefore, isIdentifierContinue, trim } from \"./charcode.js\";\nimport { compilerAssert } from \"./diagnostics.js\";\nimport { createDiagnostic } from \"./messages.js\";\nimport { createScanner, isComment, isKeyword, isPunctuation, isStatementKeyword, isTrivia, skipContinuousIdentifier, skipTrivia, skipTriviaBackward, Token, TokenDisplay, TokenFlags, } from \"./scanner.js\";\nimport { IdentifierKind, SyntaxKind, } from \"./types.js\";\n/**\n * The fixed set of options for each of the kinds of delimited lists in TypeSpec.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nvar ListKind;\n(function (ListKind) {\n const PropertiesBase = {\n allowEmpty: true,\n toleratedDelimiterIsValid: true,\n allowedStatementKeyword: Token.None,\n };\n ListKind.OperationParameters = {\n ...PropertiesBase,\n open: Token.OpenParen,\n close: Token.CloseParen,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n };\n ListKind.DecoratorArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.FunctionArguments = {\n ...ListKind.OperationParameters,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ModelProperties = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.ObjectLiteralProperties = {\n ...PropertiesBase,\n open: Token.HashBrace,\n close: Token.CloseBrace,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Comma,\n };\n ListKind.InterfaceMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.OpKeyword,\n };\n ListKind.ScalarMembers = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: false,\n allowedStatementKeyword: Token.InitKeyword,\n };\n ListKind.UnionVariants = {\n ...PropertiesBase,\n open: Token.OpenBrace,\n close: Token.CloseBrace,\n delimiter: Token.Semicolon,\n toleratedDelimiter: Token.Comma,\n toleratedDelimiterIsValid: true,\n };\n ListKind.EnumMembers = {\n ...ListKind.ModelProperties,\n };\n const ExpresionsBase = {\n allowEmpty: true,\n delimiter: Token.Comma,\n toleratedDelimiter: Token.Semicolon,\n toleratedDelimiterIsValid: false,\n invalidAnnotationTarget: \"expression\",\n allowedStatementKeyword: Token.None,\n };\n ListKind.TemplateParameters = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.LessThan,\n close: Token.GreaterThan,\n invalidAnnotationTarget: \"template parameter\",\n };\n ListKind.TemplateArguments = {\n ...ListKind.TemplateParameters,\n };\n ListKind.CallArguments = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.Heritage = {\n ...ExpresionsBase,\n allowEmpty: false,\n open: Token.None,\n close: Token.None,\n };\n ListKind.Tuple = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenBracket,\n close: Token.CloseBracket,\n };\n ListKind.ArrayLiteral = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.HashBracket,\n close: Token.CloseBracket,\n };\n ListKind.FunctionParameters = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n invalidAnnotationTarget: \"expression\",\n };\n ListKind.ProjectionExpression = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n ListKind.ProjectionParameter = {\n ...ExpresionsBase,\n allowEmpty: true,\n open: Token.OpenParen,\n close: Token.CloseParen,\n };\n})(ListKind || (ListKind = {}));\nexport function parse(code, options = {}) {\n const parser = createParser(code, options);\n return parser.parseTypeSpecScript();\n}\nexport function parseStandaloneTypeReference(code) {\n const parser = createParser(code);\n const node = parser.parseStandaloneReferenceExpression();\n return [node, parser.parseDiagnostics];\n}\nfunction createParser(code, options = {}) {\n let parseErrorInNextFinishedNode = false;\n let previousTokenEnd = -1;\n let realPositionOfLastError = -1;\n let missingIdentifierCounter = 0;\n let treePrintable = true;\n let newLineIsTrivia = true;\n let currentMode = 0 /* ParseMode.Syntax */;\n const parseDiagnostics = [];\n const scanner = createScanner(code, reportDiagnostic);\n const comments = [];\n let docRanges = [];\n nextToken();\n return {\n parseDiagnostics,\n parseTypeSpecScript,\n parseStandaloneReferenceExpression,\n };\n function parseTypeSpecScript() {\n const statements = parseTypeSpecScriptItemList();\n return {\n kind: SyntaxKind.TypeSpecScript,\n statements,\n file: scanner.file,\n id: {\n kind: SyntaxKind.Identifier,\n sv: scanner.file.path,\n pos: 0,\n end: 0,\n flags: 8 /* NodeFlags.Synthetic */,\n },\n namespaces: [],\n usings: [],\n locals: undefined,\n inScopeNamespaces: [],\n parseDiagnostics,\n comments,\n printable: treePrintable,\n parseOptions: options,\n ...finishNode(0),\n };\n }\n /** Try to parse doc comments, directives and decorators in any order. */\n function parseAnnotations({ skipParsingDocNodes } = {}) {\n const directives = [];\n const decorators = [];\n const docs = [];\n let pos = tokenPos();\n if (!skipParsingDocNodes) {\n const [firstPos, addedDocs] = parseDocList();\n pos = firstPos;\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n while (token() === Token.Hash || token() === Token.At) {\n if (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n else if (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n if (!skipParsingDocNodes) {\n const [_, addedDocs] = parseDocList();\n for (const doc of addedDocs) {\n docs.push(doc);\n }\n }\n }\n return { pos, docs, directives, decorators };\n }\n function parseTypeSpecScriptItemList() {\n const stmts = [];\n let seenBlocklessNs = false;\n let seenDecl = false;\n let seenUsing = false;\n while (token() !== Token.EndOfFile) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n item = parseNamespaceStatement(pos, decorators, docs, directives);\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.ConstKeyword:\n reportInvalidDecorators(decorators, \"const statement\");\n item = parseConstStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"projection statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n // Start of declaration with modifiers\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n if (tok !== Token.NamespaceKeyword) {\n mutate(item).directives = directives;\n mutate(item).docs = docs;\n }\n if (isBlocklessNamespace(item)) {\n if (seenBlocklessNs) {\n error({ code: \"multiple-blockless-namespace\", target: item });\n }\n if (seenDecl) {\n error({ code: \"blockless-namespace-first\", target: item });\n }\n seenBlocklessNs = true;\n }\n else if (item.kind === SyntaxKind.ImportStatement) {\n if (seenDecl || seenBlocklessNs || seenUsing) {\n error({ code: \"import-first\", target: item });\n }\n }\n else if (item.kind === SyntaxKind.UsingStatement) {\n seenUsing = true;\n }\n else {\n seenDecl = true;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const { pos, docs, directives, decorators } = parseAnnotations();\n const tok = token();\n let item;\n switch (tok) {\n case Token.AtAt:\n reportInvalidDecorators(decorators, \"augment decorator statement\");\n item = parseAugmentDecorator();\n break;\n case Token.ImportKeyword:\n reportInvalidDecorators(decorators, \"import statement\");\n item = parseImportStatement();\n error({ code: \"import-first\", messageId: \"topLevel\", target: item });\n break;\n case Token.ModelKeyword:\n item = parseModelStatement(pos, decorators);\n break;\n case Token.ScalarKeyword:\n item = parseScalarStatement(pos, decorators);\n break;\n case Token.NamespaceKeyword:\n const ns = parseNamespaceStatement(pos, decorators, docs, directives);\n if (isBlocklessNamespace(ns)) {\n error({ code: \"blockless-namespace-first\", messageId: \"topLevel\", target: ns });\n }\n item = ns;\n break;\n case Token.InterfaceKeyword:\n item = parseInterfaceStatement(pos, decorators);\n break;\n case Token.UnionKeyword:\n item = parseUnionStatement(pos, decorators);\n break;\n case Token.OpKeyword:\n item = parseOperationStatement(pos, decorators);\n break;\n case Token.EnumKeyword:\n item = parseEnumStatement(pos, decorators);\n break;\n case Token.AliasKeyword:\n reportInvalidDecorators(decorators, \"alias statement\");\n item = parseAliasStatement(pos);\n break;\n case Token.ConstKeyword:\n reportInvalidDecorators(decorators, \"const statement\");\n item = parseConstStatement(pos);\n break;\n case Token.UsingKeyword:\n reportInvalidDecorators(decorators, \"using statement\");\n item = parseUsingStatement(pos);\n break;\n case Token.ExternKeyword:\n case Token.FnKeyword:\n case Token.DecKeyword:\n item = parseDeclaration(pos);\n break;\n case Token.ProjectionKeyword:\n reportInvalidDecorators(decorators, \"project statement\");\n item = parseProjectionStatement(pos);\n break;\n case Token.EndOfFile:\n parseExpected(Token.CloseBrace);\n return stmts;\n case Token.Semicolon:\n reportInvalidDecorators(decorators, \"empty statement\");\n item = parseEmptyStatement(pos);\n break;\n default:\n item = parseInvalidStatement(pos, decorators);\n break;\n }\n mutate(item).directives = directives;\n if (tok !== Token.NamespaceKeyword) {\n mutate(item).docs = docs;\n }\n stmts.push(item);\n }\n return stmts;\n }\n function parseDecoratorList() {\n const decorators = [];\n while (token() === Token.At) {\n decorators.push(parseDecoratorExpression());\n }\n return decorators;\n }\n function parseDirectiveList() {\n const directives = [];\n while (token() === Token.Hash) {\n directives.push(parseDirectiveExpression());\n }\n return directives;\n }\n function parseNamespaceStatement(pos, decorators, docs, directives) {\n parseExpected(Token.NamespaceKeyword);\n let currentName = parseIdentifierOrMemberExpression();\n const nsSegments = [];\n while (currentName.kind !== SyntaxKind.Identifier) {\n nsSegments.push(currentName.id);\n currentName = currentName.base;\n }\n nsSegments.push(currentName);\n const nextTok = parseExpectedOneOf(Token.Semicolon, Token.OpenBrace);\n let statements;\n if (nextTok === Token.OpenBrace) {\n statements = parseStatementList();\n parseExpected(Token.CloseBrace);\n }\n let outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators,\n docs: docs,\n id: nsSegments[0],\n locals: undefined,\n statements,\n directives: directives,\n ...finishNode(pos),\n };\n for (let i = 1; i < nsSegments.length; i++) {\n outerNs = {\n kind: SyntaxKind.NamespaceStatement,\n decorators: [],\n directives: [],\n id: nsSegments[i],\n statements: outerNs,\n locals: undefined,\n ...finishNode(pos),\n };\n }\n return outerNs;\n }\n function parseInterfaceStatement(pos, decorators) {\n parseExpected(Token.InterfaceKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n let extendList = createEmptyList();\n if (token() === Token.ExtendsKeyword) {\n nextToken();\n extendList = parseList(ListKind.Heritage, parseReferenceExpression);\n }\n else if (token() === Token.Identifier) {\n error({ code: \"token-expected\", format: { token: \"'extends' or '{'\" } });\n nextToken();\n }\n const { items: operations, range: bodyRange } = parseList(ListKind.InterfaceMembers, (pos, decorators) => parseOperationStatement(pos, decorators, true));\n return {\n kind: SyntaxKind.InterfaceStatement,\n id,\n templateParameters,\n templateParametersRange,\n operations,\n bodyRange,\n extends: extendList.items,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseTemplateParameterList() {\n const detail = parseOptionalList(ListKind.TemplateParameters, parseTemplateParameter);\n let setDefault = false;\n for (const item of detail.items) {\n if (!item.default && setDefault) {\n error({ code: \"default-required\", target: item });\n continue;\n }\n if (item.default) {\n setDefault = true;\n }\n }\n return detail;\n }\n function parseUnionStatement(pos, decorators) {\n parseExpected(Token.UnionKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n const { items: options } = parseList(ListKind.UnionVariants, parseUnionVariant);\n return {\n kind: SyntaxKind.UnionStatement,\n id,\n templateParameters,\n templateParametersRange,\n decorators,\n options,\n ...finishNode(pos),\n };\n }\n function parseUnionVariant(pos, decorators) {\n const idOrExpr = parseExpression();\n if (parseOptional(Token.Colon)) {\n let id = undefined;\n if (idOrExpr.kind !== SyntaxKind.TypeReference &&\n idOrExpr.kind !== SyntaxKind.StringLiteral) {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n else if (idOrExpr.kind === SyntaxKind.StringLiteral) {\n // convert string literal node to identifier node (back compat for string literal quoted properties)\n id = {\n kind: SyntaxKind.Identifier,\n sv: idOrExpr.value,\n ...finishNode(idOrExpr.pos),\n };\n }\n else {\n const target = idOrExpr.target;\n if (target.kind === SyntaxKind.Identifier) {\n id = target;\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n }\n }\n const value = parseExpression();\n return {\n kind: SyntaxKind.UnionVariant,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n return {\n kind: SyntaxKind.UnionVariant,\n id: undefined,\n value: idOrExpr,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseUsingStatement(pos) {\n parseExpected(Token.UsingKeyword);\n const name = parseIdentifierOrMemberExpression(undefined, true);\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.UsingStatement,\n name,\n ...finishNode(pos),\n };\n }\n function parseOperationStatement(pos, decorators, inInterface) {\n if (inInterface) {\n parseOptional(Token.OpKeyword);\n }\n else {\n parseExpected(Token.OpKeyword);\n }\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n // Make sure the next token is one that is expected\n const token = expectTokenIsOneOf(Token.OpenParen, Token.IsKeyword);\n // Check if we're parsing a declaration or reuse of another operation\n let signature;\n const signaturePos = tokenPos();\n if (token === Token.OpenParen) {\n const parameters = parseOperationParameters();\n parseExpected(Token.Colon);\n const returnType = parseExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureDeclaration,\n parameters,\n returnType,\n ...finishNode(signaturePos),\n };\n }\n else {\n parseExpected(Token.IsKeyword);\n const opReference = parseReferenceExpression();\n signature = {\n kind: SyntaxKind.OperationSignatureReference,\n baseOperation: opReference,\n ...finishNode(signaturePos),\n };\n }\n // The interface parser handles semicolon parsing between statements\n if (!inInterface) {\n parseExpected(Token.Semicolon);\n }\n return {\n kind: SyntaxKind.OperationStatement,\n id,\n templateParameters,\n templateParametersRange,\n signature,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOperationParameters() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.OperationParameters, parseModelPropertyOrSpread);\n const parameters = {\n kind: SyntaxKind.ModelExpression,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n return parameters;\n }\n function parseModelStatement(pos, decorators) {\n parseExpected(Token.ModelKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n expectTokenIsOneOf(Token.OpenBrace, Token.Equals, Token.ExtendsKeyword, Token.IsKeyword);\n const optionalExtends = parseOptionalModelExtends();\n const optionalIs = optionalExtends ? undefined : parseOptionalModelIs();\n let propDetail = createEmptyList();\n if (optionalIs) {\n const tok = expectTokenIsOneOf(Token.Semicolon, Token.OpenBrace);\n if (tok === Token.Semicolon) {\n nextToken();\n }\n else {\n propDetail = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n }\n else {\n propDetail = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n }\n return {\n kind: SyntaxKind.ModelStatement,\n id,\n extends: optionalExtends,\n is: optionalIs,\n templateParameters,\n templateParametersRange,\n decorators,\n properties: propDetail.items,\n bodyRange: propDetail.range,\n ...finishNode(pos),\n };\n }\n function parseOptionalModelExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseOptionalModelIs() {\n if (parseOptional(Token.IsKeyword)) {\n return parseExpression();\n }\n return;\n }\n function parseTemplateParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n let constraint;\n if (parseOptional(Token.ExtendsKeyword)) {\n constraint = parseMixedParameterConstraint();\n }\n let def;\n if (parseOptional(Token.Equals)) {\n def = parseExpression();\n }\n return {\n kind: SyntaxKind.TemplateParameterDeclaration,\n id,\n constraint,\n default: def,\n ...finishNode(pos),\n };\n }\n function parseValueOfExpressionOrIntersectionOrHigher() {\n if (token() === Token.ValueOfKeyword) {\n return parseValueOfExpression();\n }\n else if (parseOptional(Token.OpenParen)) {\n const expr = parseMixedParameterConstraint();\n parseExpected(Token.CloseParen);\n return expr;\n }\n return parseIntersectionExpressionOrHigher();\n }\n function parseMixedParameterConstraint() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseValueOfExpressionOrIntersectionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseValueOfExpressionOrIntersectionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseModelSpreadProperty(pos, decorators)\n : parseModelProperty(pos, decorators);\n }\n function parseModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseModelProperty(pos, decorators) {\n const id = parseIdentifier({\n message: \"property\",\n allowStringLiteral: true,\n });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseExpression() : undefined;\n return {\n kind: SyntaxKind.ModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteralPropertyOrSpread(pos, decorators) {\n reportInvalidDecorators(decorators, \"object literal property\");\n return token() === Token.Ellipsis\n ? parseObjectLiteralSpreadProperty(pos)\n : parseObjectLiteralProperty(pos);\n }\n function parseObjectLiteralSpreadProperty(pos) {\n parseExpected(Token.Ellipsis);\n // This could be broadened to allow any type expression\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.ObjectLiteralSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteralProperty(pos) {\n const id = parseIdentifier({\n message: \"property\",\n });\n parseExpected(Token.Colon);\n const value = parseExpression();\n return {\n kind: SyntaxKind.ObjectLiteralProperty,\n id,\n value,\n ...finishNode(pos),\n };\n }\n function parseScalarStatement(pos, decorators) {\n parseExpected(Token.ScalarKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n const optionalExtends = parseOptionalScalarExtends();\n const { items: members, range: bodyRange } = parseScalarMembers();\n return {\n kind: SyntaxKind.ScalarStatement,\n id,\n templateParameters,\n templateParametersRange,\n extends: optionalExtends,\n members,\n bodyRange,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseOptionalScalarExtends() {\n if (parseOptional(Token.ExtendsKeyword)) {\n return parseReferenceExpression();\n }\n return undefined;\n }\n function parseScalarMembers() {\n if (token() === Token.Semicolon) {\n nextToken();\n return createEmptyList();\n }\n else {\n return parseList(ListKind.ScalarMembers, parseScalarMember);\n }\n }\n function parseScalarMember(pos, decorators) {\n reportInvalidDecorators(decorators, \"scalar member\");\n parseExpected(Token.InitKeyword);\n const id = parseIdentifier();\n const { items: parameters } = parseFunctionParameters();\n return {\n kind: SyntaxKind.ScalarConstructor,\n id,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseEnumStatement(pos, decorators) {\n parseExpected(Token.EnumKeyword);\n const id = parseIdentifier();\n const { items: members } = parseList(ListKind.EnumMembers, parseEnumMemberOrSpread);\n return {\n kind: SyntaxKind.EnumStatement,\n id,\n decorators,\n members,\n ...finishNode(pos),\n };\n }\n function parseEnumMemberOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseEnumSpreadMember(pos, decorators)\n : parseEnumMember(pos, decorators);\n }\n function parseEnumSpreadMember(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread enum\");\n const target = parseReferenceExpression();\n return {\n kind: SyntaxKind.EnumSpreadMember,\n target,\n ...finishNode(pos),\n };\n }\n function parseEnumMember(pos, decorators) {\n const id = parseIdentifier({\n message: \"enumMember\",\n allowStringLiteral: true,\n });\n let value;\n if (parseOptional(Token.Colon)) {\n const expr = parseExpression();\n if (expr.kind === SyntaxKind.StringLiteral || expr.kind === SyntaxKind.NumericLiteral) {\n value = expr;\n }\n else if (expr.kind === SyntaxKind.TypeReference &&\n expr.target.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n parseErrorInNextFinishedNode = true;\n }\n else {\n error({ code: \"token-expected\", messageId: \"numericOrStringLiteral\", target: expr });\n }\n }\n return {\n kind: SyntaxKind.EnumMember,\n id,\n value,\n decorators,\n ...finishNode(pos),\n };\n }\n function parseAliasStatement(pos) {\n parseExpected(Token.AliasKeyword);\n const id = parseIdentifier();\n const { items: templateParameters, range: templateParametersRange } = parseTemplateParameterList();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AliasStatement,\n id,\n templateParameters,\n templateParametersRange,\n value,\n ...finishNode(pos),\n };\n }\n function parseConstStatement(pos) {\n parseExpected(Token.ConstKeyword);\n const id = parseIdentifier();\n const type = parseOptionalTypeAnnotation();\n parseExpected(Token.Equals);\n const value = parseExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ConstStatement,\n id,\n value,\n type,\n ...finishNode(pos),\n };\n }\n function parseOptionalTypeAnnotation() {\n if (parseOptional(Token.Colon)) {\n return parseExpression();\n }\n return undefined;\n }\n function parseExpression() {\n return parseUnionExpressionOrHigher();\n }\n function parseUnionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Bar);\n const node = parseIntersectionExpressionOrHigher();\n if (token() !== Token.Bar) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Bar)) {\n const expr = parseIntersectionExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.UnionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseIntersectionExpressionOrHigher() {\n const pos = tokenPos();\n parseOptional(Token.Ampersand);\n const node = parseArrayExpressionOrHigher();\n if (token() !== Token.Ampersand) {\n return node;\n }\n const options = [node];\n while (parseOptional(Token.Ampersand)) {\n const expr = parseArrayExpressionOrHigher();\n options.push(expr);\n }\n return {\n kind: SyntaxKind.IntersectionExpression,\n options,\n ...finishNode(pos),\n };\n }\n function parseArrayExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parsePrimaryExpression();\n while (parseOptional(Token.OpenBracket)) {\n parseExpected(Token.CloseBracket);\n expr = {\n kind: SyntaxKind.ArrayExpression,\n elementType: expr,\n ...finishNode(pos),\n };\n }\n return expr;\n }\n function parseStandaloneReferenceExpression() {\n const expr = parseReferenceExpression();\n if (parseDiagnostics.length === 0 && token() !== Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"unexpected\", format: { token: Token[token()] } });\n }\n return expr;\n }\n function parseValueOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.ValueOfKeyword);\n const target = parseExpression();\n return {\n kind: SyntaxKind.ValueOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseTypeOfExpression() {\n const pos = tokenPos();\n parseExpected(Token.TypeOfKeyword);\n const target = parseTypeOfTarget();\n return {\n kind: SyntaxKind.TypeOfExpression,\n target,\n ...finishNode(pos),\n };\n }\n function parseTypeOfTarget() {\n while (true) {\n switch (token()) {\n case Token.TypeOfKeyword:\n return parseTypeOfExpression();\n case Token.Identifier:\n return parseCallOrReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.StringTemplateHead:\n return parseStringTemplateExpression();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenParen:\n parseExpected(Token.OpenParen);\n const target = parseTypeOfTarget();\n parseExpected(Token.CloseParen);\n return target;\n default:\n return parseReferenceExpression(\"typeofTarget\");\n }\n }\n }\n function parseReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n return parseReferenceExpressionInternal(target, pos);\n }\n function parseCallOrReferenceExpression(message) {\n const pos = tokenPos();\n const target = parseIdentifierOrMemberExpression(message);\n if (token() === Token.OpenParen) {\n const { items: args } = parseList(ListKind.FunctionArguments, parseExpression);\n return {\n kind: SyntaxKind.CallExpression,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n return parseReferenceExpressionInternal(target, pos);\n }\n function parseReferenceExpressionInternal(target, pos) {\n const { items: args } = parseOptionalList(ListKind.TemplateArguments, parseTemplateArgument);\n return {\n kind: SyntaxKind.TypeReference,\n target,\n arguments: args,\n ...finishNode(pos),\n };\n }\n function parseTemplateArgument() {\n const pos = tokenPos();\n // Early error recovery for missing identifier followed by eq\n if (token() === Token.Equals) {\n error({ code: \"token-expected\", messageId: \"identifier\" });\n nextToken();\n return {\n kind: SyntaxKind.TemplateArgument,\n name: createMissingIdentifier(),\n argument: parseExpression(),\n ...finishNode(pos),\n };\n }\n const expr = parseExpression();\n const eq = parseOptional(Token.Equals);\n if (eq) {\n const isBareIdentifier = exprIsBareIdentifier(expr);\n if (!isBareIdentifier) {\n error({ code: \"invalid-template-argument-name\", target: expr });\n }\n return {\n kind: SyntaxKind.TemplateArgument,\n name: isBareIdentifier ? expr.target : createMissingIdentifier(),\n argument: parseExpression(),\n ...finishNode(pos),\n };\n }\n else {\n return {\n kind: SyntaxKind.TemplateArgument,\n argument: expr,\n ...finishNode(pos),\n };\n }\n }\n function parseAugmentDecorator() {\n const pos = tokenPos();\n parseExpected(Token.AtAt);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const { items: args } = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n if (args.length === 0) {\n error({ code: \"augment-decorator-target\" });\n const emptyList = createEmptyList();\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: emptyList.items,\n ...finishNode(pos),\n },\n arguments: args,\n ...finishNode(pos),\n };\n }\n let [targetEntity, ...decoratorArgs] = args;\n if (targetEntity.kind !== SyntaxKind.TypeReference) {\n error({ code: \"augment-decorator-target\", target: targetEntity });\n const emptyList = createEmptyList();\n targetEntity = {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: emptyList.items,\n ...finishNode(pos),\n };\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.AugmentDecoratorStatement,\n target,\n targetType: targetEntity,\n arguments: decoratorArgs,\n ...finishNode(pos),\n };\n }\n function parseImportStatement() {\n const pos = tokenPos();\n parseExpected(Token.ImportKeyword);\n const path = parseStringLiteral();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ImportStatement,\n path,\n ...finishNode(pos),\n };\n }\n function parseDecoratorExpression() {\n const pos = tokenPos();\n parseExpected(Token.At);\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier. We want to parse `@ model Foo` as invalid decorator\n // `@<missing identifier>` applied to `model Foo`, and not as `@model`\n // applied to invalid statement `Foo`.\n const target = parseIdentifierOrMemberExpression(undefined, false);\n const { items: args } = parseOptionalList(ListKind.DecoratorArguments, parseExpression);\n return {\n kind: SyntaxKind.DecoratorExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveExpression() {\n const pos = tokenPos();\n parseExpected(Token.Hash);\n const target = parseIdentifier();\n if (target.sv !== \"suppress\" && target.sv !== \"deprecated\") {\n error({\n code: \"unknown-directive\",\n format: { id: target.sv },\n target: { pos, end: pos + target.sv.length },\n printable: true,\n });\n }\n // The newline will mark the end of the directive.\n newLineIsTrivia = false;\n const args = [];\n while (token() !== Token.NewLine && token() !== Token.EndOfFile) {\n const param = parseDirectiveParameter();\n if (param) {\n args.push(param);\n }\n }\n newLineIsTrivia = true;\n nextToken();\n return {\n kind: SyntaxKind.DirectiveExpression,\n arguments: args,\n target,\n ...finishNode(pos),\n };\n }\n function parseDirectiveParameter() {\n switch (token()) {\n case Token.Identifier:\n return parseIdentifier();\n case Token.StringLiteral:\n return parseStringLiteral();\n default:\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: Token[token()] },\n });\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.NewLine &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n return undefined;\n }\n }\n function parseIdentifierOrMemberExpression(message, recoverFromKeyword = true) {\n const pos = tokenPos();\n let base = parseIdentifier({\n message,\n recoverFromKeyword,\n });\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n // Error recovery: false arg here means don't treat a keyword as an\n // identifier after `.` in member expression. Otherwise we will\n // parse `@Outer.<missing identifier> model M{}` as having decorator\n // `@Outer.model` applied to invalid statement `M {}` instead of\n // having incomplete decorator `@Outer.` applied to `model M {}`.\n id: parseIdentifier({\n recoverFromKeyword: false,\n }),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n base = {\n kind: SyntaxKind.MemberExpression,\n base,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return base;\n }\n function parsePrimaryExpression() {\n while (true) {\n switch (token()) {\n case Token.TypeOfKeyword:\n return parseTypeOfExpression();\n case Token.Identifier:\n return parseCallOrReferenceExpression();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.StringTemplateHead:\n return parseStringTemplateExpression();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.OpenBrace:\n return parseModelExpression();\n case Token.OpenBracket:\n return parseTupleExpression();\n case Token.OpenParen:\n return parseParenthesizedExpression();\n case Token.At:\n const decorators = parseDecoratorList();\n reportInvalidDecorators(decorators, \"expression\");\n continue;\n case Token.Hash:\n const directives = parseDirectiveList();\n reportInvalidDirective(directives, \"expression\");\n continue;\n case Token.HashBrace:\n return parseObjectLiteral();\n case Token.HashBracket:\n return parseArrayLiteral();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseReferenceExpression(\"expression\");\n }\n }\n }\n function parseExternKeyword() {\n const pos = tokenPos();\n parseExpected(Token.ExternKeyword);\n return {\n kind: SyntaxKind.ExternKeyword,\n ...finishNode(pos),\n };\n }\n function parseVoidKeyword() {\n const pos = tokenPos();\n parseExpected(Token.VoidKeyword);\n return {\n kind: SyntaxKind.VoidKeyword,\n ...finishNode(pos),\n };\n }\n function parseNeverKeyword() {\n const pos = tokenPos();\n parseExpected(Token.NeverKeyword);\n return {\n kind: SyntaxKind.NeverKeyword,\n ...finishNode(pos),\n };\n }\n function parseUnknownKeyword() {\n const pos = tokenPos();\n parseExpected(Token.UnknownKeyword);\n return {\n kind: SyntaxKind.UnknownKeyword,\n ...finishNode(pos),\n };\n }\n function parseParenthesizedExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenParen);\n const expr = parseExpression();\n parseExpected(Token.CloseParen);\n return { ...expr, ...finishNode(pos) };\n }\n function parseTupleExpression() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.Tuple, parseExpression);\n return {\n kind: SyntaxKind.TupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseModelExpression() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.ModelProperties, parseModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ModelExpression,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n }\n function parseObjectLiteral() {\n const pos = tokenPos();\n const { items: properties, range: bodyRange } = parseList(ListKind.ObjectLiteralProperties, parseObjectLiteralPropertyOrSpread);\n return {\n kind: SyntaxKind.ObjectLiteral,\n properties,\n bodyRange,\n ...finishNode(pos),\n };\n }\n function parseArrayLiteral() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.ArrayLiteral, parseExpression);\n return {\n kind: SyntaxKind.ArrayLiteral,\n values,\n ...finishNode(pos),\n };\n }\n function parseStringLiteral() {\n const pos = tokenPos();\n const value = tokenValue();\n parseExpected(Token.StringLiteral);\n return {\n kind: SyntaxKind.StringLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateExpression() {\n const pos = tokenPos();\n const head = parseStringTemplateHead();\n const spans = parseStringTemplateSpans(head.tokenFlags);\n const last = spans[spans.length - 1];\n if (head.tokenFlags & TokenFlags.TripleQuoted) {\n const [indentationsStart, indentationEnd] = scanner.findTripleQuotedStringIndent(last.literal.pos, last.literal.end);\n mutate(head).value = scanner.unindentAndUnescapeTripleQuotedString(head.pos, head.end, indentationsStart, indentationEnd, Token.StringTemplateHead, head.tokenFlags);\n for (const span of spans) {\n mutate(span.literal).value = scanner.unindentAndUnescapeTripleQuotedString(span.literal.pos, span.literal.end, indentationsStart, indentationEnd, span === last ? Token.StringTemplateTail : Token.StringTemplateMiddle, head.tokenFlags);\n }\n }\n return {\n kind: SyntaxKind.StringTemplateExpression,\n head,\n spans,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateHead() {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n parseExpected(Token.StringTemplateHead);\n return {\n kind: SyntaxKind.StringTemplateHead,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n function parseStringTemplateSpans(tokenFlags) {\n const list = [];\n let node;\n do {\n node = parseTemplateTypeSpan(tokenFlags);\n list.push(node);\n } while (node.literal.kind === SyntaxKind.StringTemplateMiddle);\n return list;\n }\n function parseTemplateTypeSpan(tokenFlags) {\n const pos = tokenPos();\n const expression = parseExpression();\n const literal = parseLiteralOfTemplateSpan(tokenFlags);\n return {\n kind: SyntaxKind.StringTemplateSpan,\n literal,\n expression,\n ...finishNode(pos),\n };\n }\n function parseLiteralOfTemplateSpan(headTokenFlags) {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n if (token() === Token.CloseBrace) {\n nextStringTemplateToken(headTokenFlags);\n return parseTemplateMiddleOrTemplateTail();\n }\n else {\n parseExpected(Token.StringTemplateTail);\n return {\n kind: SyntaxKind.StringTemplateTail,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n }\n function parseTemplateMiddleOrTemplateTail() {\n const pos = tokenPos();\n const flags = tokenFlags();\n const text = flags & TokenFlags.TripleQuoted ? \"\" : tokenValue();\n const kind = token() === Token.StringTemplateMiddle\n ? SyntaxKind.StringTemplateMiddle\n : SyntaxKind.StringTemplateTail;\n nextToken();\n return {\n kind,\n value: text,\n tokenFlags: flags,\n ...finishNode(pos),\n };\n }\n function parseNumericLiteral() {\n const pos = tokenPos();\n const valueAsString = tokenValue();\n const value = Number(valueAsString);\n parseExpected(Token.NumericLiteral);\n return {\n kind: SyntaxKind.NumericLiteral,\n value,\n valueAsString,\n ...finishNode(pos),\n };\n }\n function parseBooleanLiteral() {\n const pos = tokenPos();\n const token = parseExpectedOneOf(Token.TrueKeyword, Token.FalseKeyword);\n const value = token === Token.TrueKeyword;\n return {\n kind: SyntaxKind.BooleanLiteral,\n value,\n ...finishNode(pos),\n };\n }\n function parseIdentifier(options) {\n if (options?.recoverFromKeyword !== false && isKeyword(token())) {\n error({ code: \"reserved-identifier\" });\n }\n else if (token() !== Token.Identifier &&\n (!options?.allowStringLiteral || token() !== Token.StringLiteral)) {\n // Error recovery: when we fail to parse an identifier or expression,\n // we insert a synthesized identifier with a unique name.\n error({ code: \"token-expected\", messageId: options?.message ?? \"identifier\" });\n return createMissingIdentifier();\n }\n const pos = tokenPos();\n const sv = tokenValue();\n nextToken();\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n function parseDeclaration(pos) {\n const modifiers = parseModifiers();\n switch (token()) {\n case Token.DecKeyword:\n return parseDecoratorDeclarationStatement(pos, modifiers);\n case Token.FnKeyword:\n return parseFunctionDeclarationStatement(pos, modifiers);\n }\n return parseInvalidStatement(pos, []);\n }\n function parseModifiers() {\n const modifiers = [];\n let modifier;\n while ((modifier = parseModifier())) {\n modifiers.push(modifier);\n }\n return modifiers;\n }\n function parseModifier() {\n switch (token()) {\n case Token.ExternKeyword:\n return parseExternKeyword();\n default:\n return undefined;\n }\n }\n function parseDecoratorDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.DecKeyword);\n const id = parseIdentifier();\n const allParamListDetail = parseFunctionParameters();\n let [target, ...parameters] = allParamListDetail.items;\n if (target === undefined) {\n error({ code: \"decorator-decl-target\", target: { pos, end: previousTokenEnd } });\n target = {\n kind: SyntaxKind.FunctionParameter,\n id: createMissingIdentifier(),\n type: createMissingTypeReference(),\n optional: false,\n rest: false,\n ...finishNode(pos),\n };\n }\n if (target.optional) {\n error({ code: \"decorator-decl-target\", messageId: \"required\" });\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.DecoratorDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n target,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseFunctionDeclarationStatement(pos, modifiers) {\n const modifierFlags = modifiersToFlags(modifiers);\n parseExpected(Token.FnKeyword);\n const id = parseIdentifier();\n const { items: parameters } = parseFunctionParameters();\n let returnType;\n if (parseOptional(Token.Colon)) {\n returnType = parseExpression();\n }\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.FunctionDeclarationStatement,\n modifiers,\n modifierFlags,\n id,\n parameters,\n returnType,\n ...finishNode(pos),\n };\n }\n function parseFunctionParameters() {\n const parameters = parseList(ListKind.FunctionParameters, parseFunctionParameter);\n let foundOptional = false;\n for (const [index, item] of parameters.items.entries()) {\n if (!item.optional && foundOptional) {\n error({ code: \"required-parameter-first\", target: item });\n continue;\n }\n if (item.optional) {\n foundOptional = true;\n }\n if (item.rest && item.optional) {\n error({ code: \"rest-parameter-required\", target: item });\n }\n if (item.rest && index !== parameters.items.length - 1) {\n error({ code: \"rest-parameter-last\", target: item });\n }\n }\n return parameters;\n }\n function parseFunctionParameter() {\n const pos = tokenPos();\n const rest = parseOptional(Token.Ellipsis);\n const id = parseIdentifier({ message: \"property\" });\n const optional = parseOptional(Token.Question);\n let type;\n if (parseOptional(Token.Colon)) {\n type = parseMixedParameterConstraint();\n }\n return {\n kind: SyntaxKind.FunctionParameter,\n id,\n type,\n optional,\n rest,\n ...finishNode(pos),\n };\n }\n function modifiersToFlags(modifiers) {\n let flags = 0 /* ModifierFlags.None */;\n for (const modifier of modifiers) {\n switch (modifier.kind) {\n case SyntaxKind.ExternKeyword:\n flags |= 2 /* ModifierFlags.Extern */;\n break;\n }\n }\n return flags;\n }\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n function parseProjectionStatement(pos) {\n parseExpected(Token.ProjectionKeyword);\n const selector = parseProjectionSelector();\n parseExpected(Token.Hash);\n const id = parseIdentifier();\n parseExpected(Token.OpenBrace);\n const projectionMap = new Map();\n const projections = [];\n while (token() === Token.Identifier) {\n const projection = parseProjection();\n if (projection.direction !== \"<error>\") {\n if (projectionMap.has(projection.direction)) {\n error({ code: \"duplicate-symbol\", target: projection, format: { name: \"projection\" } });\n }\n else {\n projectionMap.set(projection.direction, projection);\n }\n }\n // NOTE: Don't drop projections with error in direction definition from the AST.\n projections.push(projection);\n }\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionStatement,\n selector,\n projections,\n preTo: projectionMap.get(\"pre_to\"),\n preFrom: projectionMap.get(\"pre_from\"),\n from: projectionMap.get(\"from\"),\n to: projectionMap.get(\"to\"),\n id,\n ...finishNode(pos),\n };\n }\n function parseProjection() {\n const pos = tokenPos();\n let directionId = parseIdentifier({ message: \"projectionDirection\" });\n let direction;\n const modifierIds = [];\n let isPre = false;\n if (directionId.sv === \"pre\") {\n isPre = true;\n modifierIds.push(directionId);\n directionId = parseIdentifier({ message: \"projectionDirection\" });\n }\n if (directionId.sv !== \"to\" && directionId.sv !== \"from\") {\n error({ code: \"token-expected\", messageId: \"projectionDirection\" });\n direction = \"<error>\";\n }\n else if (isPre) {\n direction = directionId.sv === \"to\" ? \"pre_to\" : \"pre_from\";\n }\n else {\n direction = directionId.sv;\n }\n let parameters;\n if (token() === Token.OpenParen) {\n parameters = parseList(ListKind.ProjectionParameter, parseProjectionParameter).items;\n }\n else {\n parameters = [];\n }\n parseExpected(Token.OpenBrace);\n const body = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.Projection,\n body,\n direction,\n directionId,\n modifierIds,\n parameters,\n ...finishNode(pos),\n };\n }\n function parseProjectionParameter() {\n const pos = tokenPos();\n const id = parseIdentifier();\n return {\n kind: SyntaxKind.ProjectionParameterDeclaration,\n id,\n ...finishNode(pos),\n };\n }\n function parseProjectionStatementList() {\n const stmts = [];\n while (token() !== Token.CloseBrace) {\n const startPos = tokenPos();\n if (token() === Token.EndOfFile) {\n error({ code: \"token-expected\", messageId: \"default\", format: { token: \"}\" } });\n break;\n }\n const expr = parseProjectionExpressionStatement();\n stmts.push(expr);\n if (tokenPos() === startPos) {\n // we didn't manage to parse anything, so break out\n // and we'll report errors elsewhere.\n break;\n }\n }\n return stmts;\n }\n function parseProjectionExpressionStatement() {\n const pos = tokenPos();\n const expr = parseProjectionExpression();\n parseExpected(Token.Semicolon);\n return {\n kind: SyntaxKind.ProjectionExpressionStatement,\n expr,\n ...finishNode(pos),\n };\n }\n function parseProjectionExpression() {\n return parseProjectionReturnExpressionOrHigher();\n }\n function parseProjectionReturnExpressionOrHigher() {\n if (token() === Token.ReturnKeyword) {\n const pos = tokenPos();\n parseExpected(Token.ReturnKeyword);\n return {\n kind: SyntaxKind.Return,\n value: parseProjectionExpression(),\n ...finishNode(pos),\n };\n }\n return parseProjectionLogicalOrExpressionOrHigher();\n }\n function parseProjectionLogicalOrExpressionOrHigher() {\n let expr = parseProjectionLogicalAndExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.BarBar)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"||\",\n left: expr,\n right: parseProjectionLogicalAndExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionLogicalAndExpressionOrHigher() {\n let expr = parseProjectionEqualityExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n if (parseOptional(Token.AmpsersandAmpersand)) {\n expr = {\n kind: SyntaxKind.ProjectionLogicalExpression,\n op: \"&&\",\n left: expr,\n right: parseProjectionEqualityExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionEqualityExpressionOrHigher() {\n let expr = parseProjectionRelationalExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.EqualsEquals || tok === Token.ExclamationEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionEqualityExpression,\n op,\n left: expr,\n right: parseProjectionRelationalExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionRelationalExpressionOrHigher() {\n let expr = parseProjectionAdditiveExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.LessThan ||\n tok === Token.LessThanEquals ||\n tok === Token.GreaterThan ||\n tok === Token.GreaterThanEquals) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionRelationalExpression,\n op,\n left: expr,\n right: parseProjectionAdditiveExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionAdditiveExpressionOrHigher() {\n let expr = parseProjectionMultiplicativeExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.Plus || tok === Token.Hyphen) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionMultiplicativeExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionMultiplicativeExpressionOrHigher() {\n let expr = parseProjectionUnaryExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n const tok = token();\n if (tok === Token.ForwardSlash || tok === Token.Star) {\n const op = tokenValue();\n nextToken();\n expr = {\n kind: SyntaxKind.ProjectionArithmeticExpression,\n op,\n left: expr,\n right: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionUnaryExpressionOrHigher() {\n if (token() === Token.Exclamation) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnaryExpression,\n op: \"!\",\n target: parseProjectionUnaryExpressionOrHigher(),\n ...finishNode(pos),\n };\n }\n return parseProjectionCallExpressionOrHigher();\n }\n function parseProjectionCallExpressionOrHigher() {\n let expr = parseProjectionDecoratorReferenceExpressionOrHigher();\n while (token() !== Token.EndOfFile) {\n const pos = expr.pos;\n expr = parseProjectionMemberExpressionRest(expr, pos);\n if (token() === Token.OpenParen) {\n expr = {\n kind: SyntaxKind.ProjectionCallExpression,\n callKind: \"method\",\n target: expr,\n arguments: parseList(ListKind.CallArguments, parseProjectionExpression).items,\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionDecoratorReferenceExpressionOrHigher() {\n if (token() === Token.At) {\n const pos = tokenPos();\n nextToken();\n return {\n kind: SyntaxKind.ProjectionDecoratorReferenceExpression,\n target: parseIdentifierOrMemberExpression(undefined, true),\n ...finishNode(pos),\n };\n }\n return parseProjectionMemberExpressionOrHigher();\n }\n function parseProjectionMemberExpressionOrHigher() {\n const pos = tokenPos();\n let expr = parseProjectionPrimaryExpression();\n expr = parseProjectionMemberExpressionRest(expr, pos);\n return expr;\n }\n function parseProjectionMemberExpressionRest(expr, pos) {\n while (token() !== Token.EndOfFile) {\n if (parseOptional(Token.Dot)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \".\",\n ...finishNode(pos),\n };\n }\n else if (parseOptional(Token.ColonColon)) {\n expr = {\n kind: SyntaxKind.ProjectionMemberExpression,\n base: expr,\n id: parseIdentifier(),\n selector: \"::\",\n ...finishNode(pos),\n };\n }\n else {\n break;\n }\n }\n return expr;\n }\n function parseProjectionPrimaryExpression() {\n switch (token()) {\n case Token.IfKeyword:\n return parseProjectionIfExpression();\n case Token.NumericLiteral:\n return parseNumericLiteral();\n case Token.StringLiteral:\n return parseStringLiteral();\n case Token.TrueKeyword:\n case Token.FalseKeyword:\n return parseBooleanLiteral();\n case Token.OpenBracket:\n return parseProjectionTupleExpression();\n case Token.OpenBrace:\n return parseProjectionModelExpression();\n case Token.OpenParen:\n return parseProjectionLambdaOrParenthesizedExpression();\n case Token.VoidKeyword:\n return parseVoidKeyword();\n case Token.NeverKeyword:\n return parseNeverKeyword();\n case Token.UnknownKeyword:\n return parseUnknownKeyword();\n default:\n return parseIdentifier({ message: \"expression\" });\n }\n }\n function parseProjectionLambdaOrParenthesizedExpression() {\n const pos = tokenPos();\n const exprs = parseList(ListKind.ProjectionExpression, parseProjectionExpression).items;\n if (token() === Token.EqualsGreaterThan) {\n // unpack the exprs (which should be just identifiers) into a param list\n const params = [];\n for (const expr of exprs) {\n if (expr.kind === SyntaxKind.Identifier) {\n params.push(withSymbol({\n kind: SyntaxKind.ProjectionLambdaParameterDeclaration,\n id: expr,\n pos: expr.pos,\n end: expr.end,\n flags: 0 /* NodeFlags.None */,\n }));\n }\n else {\n error({ code: \"token-expected\", messageId: \"identifier\", target: expr });\n }\n }\n return parseProjectionLambdaExpressionRest(pos, params);\n }\n else {\n if (exprs.length === 0) {\n error({\n code: \"token-expected\",\n messageId: \"expression\",\n });\n }\n // verify we only have one entry\n for (let i = 1; i < exprs.length; i++) {\n error({\n code: \"token-expected\",\n messageId: \"unexpected\",\n format: { token: \"expression\" },\n target: exprs[i],\n });\n }\n return exprs[0];\n }\n }\n function parseProjectionLambdaExpressionRest(pos, parameters) {\n parseExpected(Token.EqualsGreaterThan);\n const body = parseProjectionBlockExpression();\n return {\n kind: SyntaxKind.ProjectionLambdaExpression,\n parameters,\n body,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelExpression() {\n const pos = tokenPos();\n const { items: properties } = parseList(ListKind.ModelProperties, parseProjectionModelPropertyOrSpread);\n return {\n kind: SyntaxKind.ProjectionModelExpression,\n properties,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelPropertyOrSpread(pos, decorators) {\n return token() === Token.Ellipsis\n ? parseProjectionModelSpreadProperty(pos, decorators)\n : parseProjectionModelProperty(pos, decorators);\n }\n function parseProjectionModelSpreadProperty(pos, decorators) {\n parseExpected(Token.Ellipsis);\n reportInvalidDecorators(decorators, \"spread property\");\n const target = parseProjectionExpression();\n return {\n kind: SyntaxKind.ProjectionModelSpreadProperty,\n target,\n ...finishNode(pos),\n };\n }\n function parseProjectionModelProperty(pos, decorators) {\n const id = parseIdentifier({ message: \"property\", allowStringLiteral: true });\n const optional = parseOptional(Token.Question);\n parseExpected(Token.Colon);\n const value = parseProjectionExpression();\n const hasDefault = parseOptional(Token.Equals);\n const defaultValue = hasDefault ? parseProjectionExpression() : undefined;\n return {\n kind: SyntaxKind.ProjectionModelProperty,\n id,\n decorators,\n value,\n optional,\n default: defaultValue,\n ...finishNode(pos),\n };\n }\n function parseProjectionIfExpression() {\n const pos = tokenPos();\n parseExpected(Token.IfKeyword);\n const test = parseProjectionExpression();\n const consequent = parseProjectionBlockExpression();\n let alternate = undefined;\n if (parseOptional(Token.ElseKeyword)) {\n if (token() === Token.IfKeyword) {\n alternate = parseProjectionIfExpression();\n }\n else {\n alternate = parseProjectionBlockExpression();\n }\n }\n return {\n kind: SyntaxKind.ProjectionIfExpression,\n test,\n consequent,\n alternate,\n ...finishNode(pos),\n };\n }\n function parseProjectionBlockExpression() {\n const pos = tokenPos();\n parseExpected(Token.OpenBrace);\n const statements = parseProjectionStatementList();\n parseExpected(Token.CloseBrace);\n return {\n kind: SyntaxKind.ProjectionBlockExpression,\n statements,\n ...finishNode(pos),\n };\n }\n function parseProjectionTupleExpression() {\n const pos = tokenPos();\n const { items: values } = parseList(ListKind.Tuple, parseProjectionExpression);\n return {\n kind: SyntaxKind.ProjectionTupleExpression,\n values,\n ...finishNode(pos),\n };\n }\n function parseProjectionSelector() {\n const pos = tokenPos();\n const selectorTok = expectTokenIsOneOf(Token.Identifier, Token.ModelKeyword, Token.OpKeyword, Token.InterfaceKeyword, Token.UnionKeyword, Token.EnumKeyword, Token.ScalarKeyword);\n switch (selectorTok) {\n case Token.Identifier:\n const id = parseIdentifierOrMemberExpression(undefined, true);\n if (id.kind === SyntaxKind.Identifier) {\n switch (id.sv) {\n case \"modelproperty\":\n return {\n kind: SyntaxKind.ProjectionModelPropertySelector,\n ...finishNode(pos),\n };\n case \"unionvariant\":\n return {\n kind: SyntaxKind.ProjectionUnionVariantSelector,\n ...finishNode(pos),\n };\n case \"enummember\":\n return {\n kind: SyntaxKind.ProjectionEnumMemberSelector,\n ...finishNode(pos),\n };\n }\n }\n return id;\n case Token.ModelKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionModelSelector,\n ...finishNode(pos),\n };\n case Token.OpKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionOperationSelector,\n ...finishNode(pos),\n };\n case Token.InterfaceKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionInterfaceSelector,\n ...finishNode(pos),\n };\n case Token.UnionKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionUnionSelector,\n ...finishNode(pos),\n };\n case Token.EnumKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionEnumSelector,\n ...finishNode(pos),\n };\n case Token.ScalarKeyword:\n nextToken();\n return {\n kind: SyntaxKind.ProjectionScalarSelector,\n ...finishNode(pos),\n };\n default:\n // recovery: return a missing identifier to use as the selector\n // we don't need to emit a diagnostic here as the `expectTokenOneOf` above\n // will have done so.\n return createMissingIdentifier();\n }\n }\n function parseRange(mode, range, callback) {\n const savedMode = currentMode;\n const result = scanner.scanRange(range, () => {\n currentMode = mode;\n nextToken();\n return callback();\n });\n currentMode = savedMode;\n return result;\n }\n /** Remove leading slash-star-star and trailing star-slash (if terminated) from doc comment range. */\n function innerDocRange(range) {\n return {\n pos: range.pos + 3,\n end: tokenFlags() & TokenFlags.Unterminated ? range.end : range.end - 2,\n };\n }\n function parseDocList() {\n if (docRanges.length === 0 || options.docs === false) {\n return [tokenPos(), []];\n }\n const docs = [];\n for (const range of docRanges) {\n const doc = parseRange(1 /* ParseMode.Doc */, innerDocRange(range), () => parseDoc(range));\n docs.push(doc);\n if (range.comment) {\n mutate(range.comment).parsedAsDocs = true;\n }\n }\n return [docRanges[0].pos, docs];\n }\n function parseDoc(range) {\n const content = [];\n const tags = [];\n loop: while (true) {\n switch (token()) {\n case Token.EndOfFile:\n break loop;\n case Token.At:\n const tag = parseDocTag();\n tags.push(tag);\n break;\n default:\n content.push(...parseDocContent());\n break;\n }\n }\n return {\n kind: SyntaxKind.Doc,\n content,\n tags,\n ...finishNode(range.pos),\n end: range.end,\n };\n }\n function parseDocContent() {\n const parts = [];\n const source = scanner.file.text;\n const pos = tokenPos();\n let start = pos;\n let inCodeFence = false;\n loop: while (true) {\n switch (token()) {\n case Token.DocCodeFenceDelimiter:\n inCodeFence = !inCodeFence;\n nextToken();\n break;\n case Token.NewLine:\n parts.push(source.substring(start, tokenPos()));\n parts.push(\"\\n\"); // normalize line endings\n nextToken();\n start = tokenPos();\n while (parseOptional(Token.Whitespace))\n ;\n if (!parseOptional(Token.Star)) {\n break;\n }\n if (!inCodeFence) {\n parseOptional(Token.Whitespace);\n start = tokenPos();\n break;\n }\n // If we are in a code fence we want to preserve the leading whitespace\n // except for the first space after the star which is used as indentation.\n const whitespaceStart = tokenPos();\n parseOptional(Token.Whitespace);\n // This `min` handles the case when there is no whitespace after the\n // star e.g. a case like this:\n //\n // /**\n // *```\n // *foo-bar\n // *```\n // */\n //\n // Not having space after the star isn't idiomatic, but we support this.\n // `whitespaceStart + 1` strips the first space before `foo-bar` if there\n // is a space after the star (the idiomatic case).\n start = Math.min(whitespaceStart + 1, tokenPos());\n break;\n case Token.EndOfFile:\n break loop;\n case Token.At:\n if (!inCodeFence) {\n break loop;\n }\n nextToken();\n break;\n case Token.DocText:\n parts.push(source.substring(start, tokenPos()));\n parts.push(tokenValue());\n nextToken();\n start = tokenPos();\n break;\n default:\n nextToken();\n break;\n }\n }\n parts.push(source.substring(start, tokenPos()));\n const text = trim(parts.join(\"\"));\n return [\n {\n kind: SyntaxKind.DocText,\n text,\n ...finishNode(pos),\n },\n ];\n }\n /**\n * Parses a documentation tag.\n *\n * @see <a href=\"https://typespec.io/docs/language-basics/documentation#doc-comments\">TypeSpec documentation docs</a>\n */\n function parseDocTag() {\n const pos = tokenPos();\n parseExpected(Token.At);\n const tagName = parseDocIdentifier(\"tag\");\n switch (tagName.sv) {\n case \"param\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocParamTag, \"param\");\n case \"template\":\n return parseDocParamLikeTag(pos, tagName, SyntaxKind.DocTemplateTag, \"templateParam\");\n case \"prop\":\n return parseDocPropTag(pos, tagName);\n case \"return\":\n case \"returns\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocReturnsTag);\n case \"errors\":\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocErrorsTag);\n default:\n return parseDocSimpleTag(pos, tagName, SyntaxKind.DocUnknownTag);\n }\n }\n /**\n * Handles param-like documentation comment tags.\n * For example, `@param` and `@template`.\n */\n function parseDocParamLikeTag(pos, tagName, kind, messageId) {\n const { name, content } = parseDocParamLikeTagInternal(messageId);\n return {\n kind,\n tagName,\n paramName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocPropTag(pos, tagName) {\n const { name, content } = parseDocParamLikeTagInternal(\"prop\");\n return {\n kind: SyntaxKind.DocPropTag,\n tagName,\n propName: name,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocParamLikeTagInternal(messageId) {\n const name = parseDocIdentifier(messageId);\n parseOptionalHyphenDocParamLikeTag();\n const content = parseDocContent();\n return { name, content };\n }\n /**\n * Handles the optional hyphen in param-like documentation comment tags.\n *\n * TypeSpec recommends no hyphen, but supports a hyphen to match TSDoc.\n * (Original design discussion recorded in [2390].)\n *\n * [2390]: https://github.com/microsoft/typespec/issues/2390\n */\n function parseOptionalHyphenDocParamLikeTag() {\n while (parseOptional(Token.Whitespace))\n ; // Skip whitespace\n if (parseOptional(Token.Hyphen)) {\n // The doc content started with a hyphen, so skip subsequent whitespace\n // (The if statement already advanced past the hyphen itself.)\n while (parseOptional(Token.Whitespace))\n ;\n }\n }\n function parseDocSimpleTag(pos, tagName, kind) {\n const content = parseDocContent();\n return {\n kind,\n tagName,\n content,\n ...finishNode(pos),\n };\n }\n function parseDocIdentifier(messageId) {\n // We don't allow whitespace between @ and tag name, but allow\n // whitespace before all other identifiers.\n if (messageId !== \"tag\") {\n while (parseOptional(Token.Whitespace))\n ;\n }\n const pos = tokenPos();\n let sv;\n if (token() === Token.Identifier) {\n sv = tokenValue();\n nextToken();\n }\n else {\n sv = \"\";\n warning({ code: \"doc-invalid-identifier\", messageId });\n }\n return {\n kind: SyntaxKind.Identifier,\n sv,\n ...finishNode(pos),\n };\n }\n // utility functions\n function token() {\n return scanner.token;\n }\n function tokenFlags() {\n return scanner.tokenFlags;\n }\n function tokenValue() {\n return scanner.getTokenValue();\n }\n function tokenPos() {\n return scanner.tokenPosition;\n }\n function tokenEnd() {\n return scanner.position;\n }\n function nextToken() {\n // keep track of the previous token end separately from the current scanner\n // position as these will differ when the previous token had trailing\n // trivia, and we don't want to squiggle the trivia.\n previousTokenEnd = scanner.position;\n return currentMode === 0 /* ParseMode.Syntax */ ? nextSyntaxToken() : nextDocToken();\n }\n function nextSyntaxToken() {\n docRanges = [];\n for (;;) {\n scanner.scan();\n if (isTrivia(token())) {\n if (!newLineIsTrivia && token() === Token.NewLine) {\n break;\n }\n let comment = undefined;\n if (options.comments && isComment(token())) {\n comment = {\n kind: token() === Token.SingleLineComment\n ? SyntaxKind.LineComment\n : SyntaxKind.BlockComment,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n comments.push(comment);\n }\n if (tokenFlags() & TokenFlags.DocComment) {\n docRanges.push({\n pos: tokenPos(),\n end: tokenEnd(),\n comment: comment,\n });\n }\n }\n else {\n break;\n }\n }\n }\n function nextDocToken() {\n // NOTE: trivia tokens are always significant in doc comments.\n scanner.scanDoc();\n }\n function nextStringTemplateToken(tokenFlags) {\n scanner.reScanStringTemplate(tokenFlags);\n }\n function createMissingIdentifier() {\n const pos = tokenPos();\n previousTokenEnd = pos;\n missingIdentifierCounter++;\n return {\n kind: SyntaxKind.Identifier,\n sv: \"<missing identifier>\" + missingIdentifierCounter,\n ...finishNode(pos),\n };\n }\n function createMissingTypeReference() {\n const pos = tokenPos();\n const { items: args } = createEmptyList();\n return {\n kind: SyntaxKind.TypeReference,\n target: createMissingIdentifier(),\n arguments: args,\n ...finishNode(pos),\n };\n }\n function finishNode(pos) {\n const flags = parseErrorInNextFinishedNode ? 2 /* NodeFlags.ThisNodeHasError */ : 0 /* NodeFlags.None */;\n parseErrorInNextFinishedNode = false;\n return withSymbol({ pos, end: previousTokenEnd, flags });\n }\n // pretend to add as symbol property, likely to a node that is being created.\n function withSymbol(obj) {\n return obj;\n }\n function createEmptyList(range = { pos: -1, end: -1 }) {\n return {\n items: [],\n range,\n };\n }\n /**\n * Parse a delimited list of elements, including the surrounding open and\n * close punctuation\n *\n * This shared driver function is used to share sensitive error recovery code.\n * In particular, error recovery by inserting tokens deemed missing is\n * susceptible to getting stalled in a loop iteration without making any\n * progress, and we guard against this in a shared place here.\n *\n * Note that statement and decorator lists do not have this issue. We always\n * consume at least a real '@' for a decorator and if the leading token of a\n * statement is not one of our statement keywords, ';', or '@', it is consumed\n * as part of a bad statement. As such, parsing of decorators and statements\n * do not go through here.\n */\n function parseList(kind, parseItem) {\n const r = createEmptyList();\n if (kind.open !== Token.None) {\n const t = tokenPos();\n if (parseExpected(kind.open)) {\n mutate(r.range).pos = t;\n }\n }\n if (kind.allowEmpty && parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n return r;\n }\n while (true) {\n const startingPos = tokenPos();\n const { pos, docs, directives, decorators } = parseAnnotations({\n skipParsingDocNodes: Boolean(kind.invalidAnnotationTarget),\n });\n if (kind.invalidAnnotationTarget) {\n reportInvalidDecorators(decorators, kind.invalidAnnotationTarget);\n reportInvalidDirective(directives, kind.invalidAnnotationTarget);\n }\n if (directives.length === 0 && decorators.length === 0 && atEndOfListWithError(kind)) {\n // Error recovery: end surrounded list at statement keyword or end\n // of file. Note, however, that we must parse a missing element if\n // there were directives or decorators as we cannot drop those from\n // the tree.\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n break;\n }\n let item;\n if (kind.invalidAnnotationTarget) {\n item = parseItem();\n }\n else {\n item = parseItem(pos, decorators);\n mutate(item).docs = docs;\n mutate(item).directives = directives;\n }\n r.items.push(item);\n if (parseOptionalDelimiter(kind)) {\n // Delimiter found: check if it's trailing.\n if (parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n // It was trailing and we've consumed the close token.\n break;\n }\n // Not trailing. We can safely skip the progress check below here\n // because we know that we consumed a real delimiter.\n continue;\n }\n else if (kind.close === Token.None) {\n // If a list is *not* surrounded by punctuation, then the list ends when\n // there's no delimiter after an item.\n break;\n }\n else if (parseOptional(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n // If a list *is* surrounded by punctuation, then the list ends when we\n // reach the close token.\n break;\n }\n else if (atEndOfListWithError(kind)) {\n // Error recovery: If a list *is* surrounded by punctuation, then\n // the list ends at statement keyword or end-of-file under the\n // assumption that the closing delimiter is missing. This check is\n // duplicated from above to preempt the parseExpected(delimeter)\n // below.\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n break;\n }\n else {\n // Error recovery: if a list kind *is* surrounded by punctuation and we\n // find neither a delimiter nor a close token after an item, then we\n // assume there is a missing delimiter between items.\n //\n // Example: `model M { a: B <missing semicolon> c: D }\n parseExpected(kind.delimiter);\n }\n if (startingPos === tokenPos()) {\n // Error recovery: we've inserted everything during this loop iteration\n // and haven't made any progress. Assume that the current token is a bad\n // representation of the end of the the list that we're trying to get\n // through.\n //\n // Simple repro: `model M { ]` would loop forever without this check.\n //\n if (parseExpected(kind.close)) {\n mutate(r.range).end = previousTokenEnd;\n }\n nextToken();\n // remove the item that was entirely inserted by error recovery.\n r.items.pop();\n break;\n }\n }\n return r;\n }\n /**\n * Parse a delimited list with surrounding open and close punctuation if the\n * open token is present. Otherwise, return an empty list.\n */\n function parseOptionalList(kind, parseItem) {\n return token() === kind.open ? parseList(kind, parseItem) : createEmptyList();\n }\n function parseOptionalDelimiter(kind) {\n if (parseOptional(kind.delimiter)) {\n return true;\n }\n if (token() === kind.toleratedDelimiter) {\n if (!kind.toleratedDelimiterIsValid) {\n parseExpected(kind.delimiter);\n }\n nextToken();\n return true;\n }\n return false;\n }\n function atEndOfListWithError(kind) {\n return (kind.close !== Token.None &&\n (isStatementKeyword(token()) || token() === Token.EndOfFile) &&\n token() !== kind.allowedStatementKeyword);\n }\n function parseEmptyStatement(pos) {\n parseExpected(Token.Semicolon);\n return { kind: SyntaxKind.EmptyStatement, ...finishNode(pos) };\n }\n function parseInvalidStatement(pos, decorators) {\n // Error recovery: avoid an avalanche of errors when we get cornered into\n // parsing statements where none exist. Skip until we find a statement\n // keyword or decorator and only report one error for a contiguous range of\n // neither.\n do {\n nextToken();\n } while (!isStatementKeyword(token()) &&\n token() !== Token.At &&\n token() !== Token.Semicolon &&\n token() !== Token.EndOfFile);\n error({\n code: \"token-expected\",\n messageId: \"statement\",\n target: { pos, end: previousTokenEnd },\n });\n return { kind: SyntaxKind.InvalidStatement, decorators, ...finishNode(pos) };\n }\n function error(report) {\n parseErrorInNextFinishedNode = true;\n const location = {\n file: scanner.file,\n pos: report.target?.pos ?? tokenPos(),\n end: report.target?.end ?? tokenEnd(),\n };\n if (!report.printable) {\n treePrintable = false;\n }\n // Error recovery: don't report more than 1 consecutive error at the same\n // position. The code path taken by error recovery after logging an error\n // can otherwise produce redundant and less decipherable errors, which this\n // suppresses.\n const realPos = report.target?.realPos ?? location.pos;\n if (realPositionOfLastError === realPos) {\n return;\n }\n realPositionOfLastError = realPos;\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"error\", \"This function is for reporting errors. Use warning() for warnings.\");\n parseDiagnostics.push(diagnostic);\n }\n function warning(report) {\n const location = {\n file: scanner.file,\n pos: report.target?.pos ?? tokenPos(),\n end: report.target?.end ?? tokenEnd(),\n };\n const diagnostic = createDiagnostic({\n ...report,\n target: location,\n });\n assert(diagnostic.severity === \"warning\", \"This function is for reporting warnings only. Use error() for errors.\");\n parseDiagnostics.push(diagnostic);\n }\n function reportDiagnostic(diagnostic) {\n if (diagnostic.severity === \"error\") {\n parseErrorInNextFinishedNode = true;\n treePrintable = false;\n }\n parseDiagnostics.push(diagnostic);\n }\n function assert(condition, message) {\n const location = {\n file: scanner.file,\n pos: tokenPos(),\n end: tokenEnd(),\n };\n compilerAssert(condition, message, location);\n }\n function reportInvalidDecorators(decorators, nodeName) {\n for (const decorator of decorators) {\n error({ code: \"invalid-decorator-location\", format: { nodeName }, target: decorator });\n }\n }\n function reportInvalidDirective(directives, nodeName) {\n for (const directive of directives) {\n error({ code: \"invalid-directive-location\", format: { nodeName }, target: directive });\n }\n }\n function parseExpected(expectedToken) {\n if (token() === expectedToken) {\n nextToken();\n return true;\n }\n const location = getAdjustedDefaultLocation(expectedToken);\n error({\n code: \"token-expected\",\n format: { token: TokenDisplay[expectedToken] },\n target: location,\n printable: isPunctuation(expectedToken),\n });\n return false;\n }\n function expectTokenIsOneOf(...args) {\n const tok = token();\n for (const expected of args) {\n if (expected === Token.None) {\n continue;\n }\n if (tok === expected) {\n return tok;\n }\n }\n errorTokenIsNotOneOf(...args);\n return Token.None;\n }\n function parseExpectedOneOf(...args) {\n const tok = expectTokenIsOneOf(...args);\n if (tok !== Token.None) {\n nextToken();\n }\n return tok;\n }\n function errorTokenIsNotOneOf(...args) {\n const location = getAdjustedDefaultLocation(args[0]);\n const displayList = args.map((t, i) => {\n if (i === args.length - 1) {\n return `or ${TokenDisplay[t]}`;\n }\n return TokenDisplay[t];\n });\n error({ code: \"token-expected\", format: { token: displayList.join(\", \") }, target: location });\n }\n function parseOptional(optionalToken) {\n if (token() === optionalToken) {\n nextToken();\n return true;\n }\n return false;\n }\n function getAdjustedDefaultLocation(token) {\n // Put the squiggly immediately after prior token when missing punctuation.\n // Avoids saying ';' is expected far away after a long comment, for example.\n // It's also confusing to squiggle the current token even if its nearby\n // in this case.\n return isPunctuation(token)\n ? { pos: previousTokenEnd, end: previousTokenEnd + 1, realPos: tokenPos() }\n : undefined;\n }\n}\nexport function exprIsBareIdentifier(expr) {\n return (expr.kind === SyntaxKind.TypeReference &&\n expr.target.kind === SyntaxKind.Identifier &&\n expr.arguments.length === 0);\n}\nexport function visitChildren(node, cb) {\n if (node.directives) {\n const result = visitEach(cb, node.directives);\n if (result)\n return result;\n }\n if (node.docs) {\n const result = visitEach(cb, node.docs);\n if (result)\n return result;\n }\n switch (node.kind) {\n case SyntaxKind.TypeSpecScript:\n return visitNode(cb, node.id) || visitEach(cb, node.statements);\n case SyntaxKind.ArrayExpression:\n return visitNode(cb, node.elementType);\n case SyntaxKind.AugmentDecoratorStatement:\n return (visitNode(cb, node.target) ||\n visitNode(cb, node.targetType) ||\n visitEach(cb, node.arguments));\n case SyntaxKind.DecoratorExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.CallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.DirectiveExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ImportStatement:\n return visitNode(cb, node.path);\n case SyntaxKind.OperationStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.signature));\n case SyntaxKind.OperationSignatureDeclaration:\n return visitNode(cb, node.parameters) || visitNode(cb, node.returnType);\n case SyntaxKind.OperationSignatureReference:\n return visitNode(cb, node.baseOperation);\n case SyntaxKind.NamespaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n (isArray(node.statements) ? visitEach(cb, node.statements) : visitNode(cb, node.statements)));\n case SyntaxKind.InterfaceStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.extends) ||\n visitEach(cb, node.operations));\n case SyntaxKind.UsingStatement:\n return visitNode(cb, node.name);\n case SyntaxKind.IntersectionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.MemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n case SyntaxKind.ModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ModelStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.extends) ||\n visitNode(cb, node.is) ||\n visitEach(cb, node.properties));\n case SyntaxKind.ScalarStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.members) ||\n visitNode(cb, node.extends));\n case SyntaxKind.ScalarConstructor:\n return visitNode(cb, node.id) || visitEach(cb, node.parameters);\n case SyntaxKind.UnionStatement:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitEach(cb, node.options));\n case SyntaxKind.UnionVariant:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumStatement:\n return (visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitEach(cb, node.members));\n case SyntaxKind.EnumMember:\n return visitEach(cb, node.decorators) || visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.EnumSpreadMember:\n return visitNode(cb, node.target);\n case SyntaxKind.AliasStatement:\n return (visitNode(cb, node.id) ||\n visitEach(cb, node.templateParameters) ||\n visitNode(cb, node.value));\n case SyntaxKind.ConstStatement:\n return visitNode(cb, node.id) || visitNode(cb, node.value) || visitNode(cb, node.type);\n case SyntaxKind.DecoratorDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.target) ||\n visitEach(cb, node.parameters));\n case SyntaxKind.FunctionDeclarationStatement:\n return (visitEach(cb, node.modifiers) ||\n visitNode(cb, node.id) ||\n visitEach(cb, node.parameters) ||\n visitNode(cb, node.returnType));\n case SyntaxKind.FunctionParameter:\n return visitNode(cb, node.id) || visitNode(cb, node.type);\n case SyntaxKind.TypeReference:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ValueOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TypeOfExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.TupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.UnionExpression:\n return visitEach(cb, node.options);\n case SyntaxKind.Projection:\n return (visitNode(cb, node.directionId) ||\n visitEach(cb, node.modifierIds) ||\n visitEach(cb, node.parameters) ||\n visitEach(cb, node.body));\n case SyntaxKind.ProjectionExpressionStatement:\n return visitNode(cb, node.expr);\n case SyntaxKind.ProjectionCallExpression:\n return visitNode(cb, node.target) || visitEach(cb, node.arguments);\n case SyntaxKind.ProjectionMemberExpression:\n return visitNode(cb, node.base) || visitNode(cb, node.id);\n // binops\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n return visitNode(cb, node.left) || visitNode(cb, node.right);\n case SyntaxKind.ProjectionUnaryExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionModelExpression:\n return visitEach(cb, node.properties);\n case SyntaxKind.ProjectionModelProperty:\n return (visitEach(cb, node.decorators) ||\n visitNode(cb, node.id) ||\n visitNode(cb, node.value) ||\n visitNode(cb, node.default));\n case SyntaxKind.ProjectionModelSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ProjectionTupleExpression:\n return visitEach(cb, node.values);\n case SyntaxKind.ProjectionBlockExpression:\n return visitEach(cb, node.statements);\n case SyntaxKind.ProjectionIfExpression:\n return (visitNode(cb, node.test) || visitNode(cb, node.consequent) || visitNode(cb, node.alternate));\n case SyntaxKind.ProjectionLambdaExpression:\n return visitEach(cb, node.parameters) || visitNode(cb, node.body);\n case SyntaxKind.ProjectionStatement:\n return (visitNode(cb, node.id) || visitNode(cb, node.selector) || visitEach(cb, node.projections));\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return visitNode(cb, node.target);\n case SyntaxKind.Return:\n return visitNode(cb, node.value);\n case SyntaxKind.InvalidStatement:\n return visitEach(cb, node.decorators);\n case SyntaxKind.TemplateParameterDeclaration:\n return (visitNode(cb, node.id) || visitNode(cb, node.constraint) || visitNode(cb, node.default));\n case SyntaxKind.TemplateArgument:\n return (node.name && visitNode(cb, node.name)) || visitNode(cb, node.argument);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.ProjectionParameterDeclaration:\n return visitNode(cb, node.id);\n case SyntaxKind.Doc:\n return visitEach(cb, node.content) || visitEach(cb, node.tags);\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocTemplateTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.paramName) || visitEach(cb, node.content));\n case SyntaxKind.DocPropTag:\n return (visitNode(cb, node.tagName) || visitNode(cb, node.propName) || visitEach(cb, node.content));\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocErrorsTag:\n case SyntaxKind.DocUnknownTag:\n return visitNode(cb, node.tagName) || visitEach(cb, node.content);\n case SyntaxKind.StringTemplateExpression:\n return visitNode(cb, node.head) || visitEach(cb, node.spans);\n case SyntaxKind.StringTemplateSpan:\n return visitNode(cb, node.expression) || visitNode(cb, node.literal);\n case SyntaxKind.ObjectLiteral:\n return visitEach(cb, node.properties);\n case SyntaxKind.ObjectLiteralProperty:\n return visitNode(cb, node.id) || visitNode(cb, node.value);\n case SyntaxKind.ObjectLiteralSpreadProperty:\n return visitNode(cb, node.target);\n case SyntaxKind.ArrayLiteral:\n return visitEach(cb, node.values);\n // no children for the rest of these.\n case SyntaxKind.StringTemplateHead:\n case SyntaxKind.StringTemplateMiddle:\n case SyntaxKind.StringTemplateTail:\n case SyntaxKind.StringLiteral:\n case SyntaxKind.NumericLiteral:\n case SyntaxKind.BooleanLiteral:\n case SyntaxKind.Identifier:\n case SyntaxKind.EmptyStatement:\n case SyntaxKind.ProjectionModelSelector:\n case SyntaxKind.ProjectionModelPropertySelector:\n case SyntaxKind.ProjectionScalarSelector:\n case SyntaxKind.ProjectionUnionSelector:\n case SyntaxKind.ProjectionUnionVariantSelector:\n case SyntaxKind.ProjectionInterfaceSelector:\n case SyntaxKind.ProjectionOperationSelector:\n case SyntaxKind.ProjectionEnumSelector:\n case SyntaxKind.ProjectionEnumMemberSelector:\n case SyntaxKind.VoidKeyword:\n case SyntaxKind.NeverKeyword:\n case SyntaxKind.ExternKeyword:\n case SyntaxKind.UnknownKeyword:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.JsNamespaceDeclaration:\n case SyntaxKind.DocText:\n return;\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return;\n }\n}\nfunction visitNode(cb, node) {\n return node && cb(node);\n}\nfunction visitEach(cb, nodes) {\n if (!nodes) {\n return;\n }\n for (const node of nodes) {\n const result = cb(node);\n if (result) {\n return result;\n }\n }\n return;\n}\n/**\n * check whether a position belongs to a range (excluding the start and end pos)\n * i.e. <range.pos>{<start to return true>...<end to return true>}<range.end>\n *\n * remark: if range.pos is -1 means no start point found, so return false\n * if range.end is -1 means no end point found, so return true if position is greater than range.pos\n */\nexport function positionInRange(position, range) {\n return range.pos >= 0 && position > range.pos && (range.end === -1 || position < range.end);\n}\nexport function getNodeAtPositionDetail(script, position, filter = () => true) {\n const cur = getNodeAtPosition(script, position, (n) => filter(n, \"cur\"));\n const input = script.file.text;\n const char = input.charCodeAt(position);\n const preChar = position >= 0 ? input.charCodeAt(position - 1) : NaN;\n const nextChar = position < input.length ? input.charCodeAt(position + 1) : NaN;\n let inTrivia = false;\n let triviaStart;\n let triviaEnd;\n if (!cur || cur.kind !== SyntaxKind.StringLiteral) {\n const { char: cp } = codePointBefore(input, position);\n if (!cp || !isIdentifierContinue(cp)) {\n triviaEnd = skipTrivia(input, position);\n triviaStart = skipTriviaBackward(script, position) + 1;\n inTrivia = triviaEnd !== position;\n }\n }\n if (!inTrivia) {\n const beforeId = skipContinuousIdentifier(input, position, true /*isBackward*/);\n triviaStart = skipTriviaBackward(script, beforeId) + 1;\n const afterId = skipContinuousIdentifier(input, position, false /*isBackward*/);\n triviaEnd = skipTrivia(input, afterId);\n }\n if (triviaStart === undefined || triviaEnd === undefined) {\n compilerAssert(false, \"unexpected, triviaStart and triviaEnd should be defined\");\n }\n return {\n node: cur,\n char,\n preChar,\n nextChar,\n position,\n inTrivia,\n triviaStartPosition: triviaStart,\n triviaEndPosition: triviaEnd,\n getPositionDetailBeforeTrivia: () => {\n // getNodeAtPosition will also include the 'node.end' position which is the triviaStart pos\n return getNodeAtPositionDetail(script, triviaStart, (n) => filter(n, \"pre\"));\n },\n getPositionDetailAfterTrivia: () => {\n return getNodeAtPositionDetail(script, triviaEnd, (n) => filter(n, \"post\"));\n },\n };\n}\nexport function getNodeAtPosition(script, position, filter = (node) => true) {\n return visit(script);\n function visit(node) {\n // We deliberately include the end position here because we need to hit\n // nodes when the cursor is positioned immediately after an identifier.\n // This is especially vital for completion. It's also generally OK\n // because the language doesn't (and should never) have syntax where you\n // could place the cursor ambiguously between two adjacent,\n // non-punctuation, non-trivia tokens that have no punctuation or trivia\n // separating them.\n if (node.pos <= position && position <= node.end) {\n // We only need to recursively visit children of nodes that satisfied\n // the condition above and therefore contain the given position. If a\n // node does not contain a position, then neither do its children.\n const child = visitChildren(node, visit);\n // A child match here is better than a self-match below as we want the\n // deepest (most specific) node. In other words, the search is depth\n // first. For example, consider `A<B<C>>`: If the cursor is on `B`,\n // then prefer B<C> over A<B<C>>.\n if (child) {\n return child;\n }\n if (filter(node)) {\n return node;\n }\n }\n return undefined;\n }\n}\nexport function hasParseError(node) {\n if (node.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n return true;\n }\n checkForDescendantErrors(node);\n return node.flags & 4 /* NodeFlags.DescendantHasError */;\n}\nfunction checkForDescendantErrors(node) {\n if (node.flags & 1 /* NodeFlags.DescendantErrorsExamined */) {\n return;\n }\n mutate(node).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n visitChildren(node, (child) => {\n if (child.flags & 2 /* NodeFlags.ThisNodeHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n checkForDescendantErrors(child);\n if (child.flags & 4 /* NodeFlags.DescendantHasError */) {\n mutate(node).flags |= 4 /* NodeFlags.DescendantHasError */ | 1 /* NodeFlags.DescendantErrorsExamined */;\n return true;\n }\n mutate(child).flags |= 1 /* NodeFlags.DescendantErrorsExamined */;\n return false;\n });\n}\nexport function isImportStatement(node) {\n return node.kind === SyntaxKind.ImportStatement;\n}\nfunction isBlocklessNamespace(node) {\n if (node.kind !== SyntaxKind.NamespaceStatement) {\n return false;\n }\n while (!isArray(node.statements) && node.statements) {\n node = node.statements;\n }\n return node.statements === undefined;\n}\nexport function getFirstAncestor(node, test, includeSelf = false) {\n if (includeSelf && test(node)) {\n return node;\n }\n for (let n = node.parent; n; n = n.parent) {\n if (test(n)) {\n return n;\n }\n }\n return undefined;\n}\nexport function getIdentifierContext(id) {\n const node = getFirstAncestor(id, (n) => n.kind !== SyntaxKind.MemberExpression);\n compilerAssert(node, \"Identifier with no non-member-expression ancestor.\");\n let kind;\n switch (node.kind) {\n case SyntaxKind.TypeReference:\n kind = IdentifierKind.TypeReference;\n break;\n case SyntaxKind.AugmentDecoratorStatement:\n case SyntaxKind.DecoratorExpression:\n kind = IdentifierKind.Decorator;\n break;\n case SyntaxKind.ProjectionCallExpression:\n kind = IdentifierKind.Function;\n break;\n case SyntaxKind.UsingStatement:\n kind = IdentifierKind.Using;\n break;\n case SyntaxKind.TemplateArgument:\n kind = IdentifierKind.TemplateArgument;\n break;\n case SyntaxKind.ObjectLiteralProperty:\n kind = IdentifierKind.ObjectLiteralProperty;\n break;\n case SyntaxKind.ModelProperty:\n switch (node.parent?.kind) {\n case SyntaxKind.ModelExpression:\n kind = IdentifierKind.ModelExpressionProperty;\n break;\n case SyntaxKind.ModelStatement:\n kind = IdentifierKind.ModelStatementProperty;\n break;\n default:\n compilerAssert(\"false\", \"ModelProperty with unexpected parent kind.\");\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n break;\n default:\n kind =\n id.parent.id === id\n ? IdentifierKind.Declaration\n : IdentifierKind.Other;\n break;\n }\n return { node, kind };\n}\n//# sourceMappingURL=parser.js.map","var yu=Object.create;var vt=Object.defineProperty;var Au=Object.getOwnPropertyDescriptor;var vu=Object.getOwnPropertyNames;var Bu=Object.getPrototypeOf,wu=Object.prototype.hasOwnProperty;var fr=e=>{throw TypeError(e)};var dr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bt=(e,t)=>{for(var r in t)vt(e,r,{get:t[r],enumerable:!0})},_u=(e,t,r,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let u of vu(t))!wu.call(e,u)&&u!==r&&vt(e,u,{get:()=>t[u],enumerable:!(n=Au(t,u))||n.enumerable});return e};var Me=(e,t,r)=>(r=e!=null?yu(Bu(e)):{},_u(t||!e||!e.__esModule?vt(r,\"default\",{value:e,enumerable:!0}):r,e));var xu=(e,t,r)=>t.has(e)||fr(\"Cannot \"+r);var pr=(e,t,r)=>t.has(e)?fr(\"Cannot add the same private member more than once\"):t instanceof WeakSet?t.add(e):t.set(e,r);var pe=(e,t,r)=>(xu(e,t,\"access private method\"),r);var st=dr((na,Fn)=>{\"use strict\";var pn=new Proxy(String,{get:()=>pn});Fn.exports=pn});var Wn=dr(nr=>{\"use strict\";Object.defineProperty(nr,\"__esModule\",{value:!0});function Bi(){return new Proxy({},{get:()=>e=>e})}var Hn=/\\r\\n|[\\n\\r\\u2028\\u2029]/;function wi(e,t,r){let n=Object.assign({column:0,line:-1},e.start),u=Object.assign({},n,e.end),{linesAbove:i=2,linesBelow:o=3}=r||{},s=n.line,a=n.column,D=u.line,l=u.column,p=Math.max(s-(i+1),0),f=Math.min(t.length,D+o);s===-1&&(p=0),D===-1&&(f=t.length);let d=D-s,c={};if(d)for(let F=0;F<=d;F++){let m=F+s;if(!a)c[m]=!0;else if(F===0){let h=t[m-1].length;c[m]=[a,h-a+1]}else if(F===d)c[m]=[0,l];else{let h=t[m-F].length;c[m]=[0,h]}}else a===l?a?c[s]=[a,0]:c[s]=!0:c[s]=[a,l-a];return{start:p,end:f,markerLines:c}}function _i(e,t,r={}){let u=Bi(!1),i=e.split(Hn),{start:o,end:s,markerLines:a}=wi(t,i,r),D=t.start&&typeof t.start.column==\"number\",l=String(s).length,f=e.split(Hn,s).slice(o,s).map((d,c)=>{let F=o+1+c,h=` ${` ${F}`.slice(-l)} |`,C=a[F],v=!a[F+1];if(C){let E=\"\";if(Array.isArray(C)){let g=d.slice(0,Math.max(C[0]-1,0)).replace(/[^\\t]/g,\" \"),j=C[1]||1;E=[`\n `,u.gutter(h.replace(/\\d/g,\" \")),\" \",g,u.marker(\"^\").repeat(j)].join(\"\"),v&&r.message&&(E+=\" \"+u.message(r.message))}return[u.marker(\">\"),u.gutter(h),d.length>0?` ${d}`:\"\",E].join(\"\")}else return` ${u.gutter(h)}${d.length>0?` ${d}`:\"\"}`}).join(`\n`);return r.message&&!D&&(f=`${\" \".repeat(l+1)}${r.message}\n${f}`),f}nr.codeFrameColumns=_i});var cr={};Bt(cr,{__debug:()=>Do,check:()=>so,doc:()=>ar,format:()=>gu,formatWithCursor:()=>Cu,getSupportInfo:()=>ao,util:()=>lr,version:()=>lu});var bu=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ne=bu;function M(){}M.prototype={diff:function(t,r){var n,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=u.callback;typeof u==\"function\"&&(i=u,u={});var o=this;function s(E){return E=o.postProcess(E,u),i?(setTimeout(function(){i(E)},0),!0):E}t=this.castInput(t,u),r=this.castInput(r,u),t=this.removeEmpty(this.tokenize(t,u)),r=this.removeEmpty(this.tokenize(r,u));var a=r.length,D=t.length,l=1,p=a+D;u.maxEditLength!=null&&(p=Math.min(p,u.maxEditLength));var f=(n=u.timeout)!==null&&n!==void 0?n:1/0,d=Date.now()+f,c=[{oldPos:-1,lastComponent:void 0}],F=this.extractCommon(c[0],r,t,0,u);if(c[0].oldPos+1>=D&&F+1>=a)return s(Fr(o,c[0].lastComponent,r,t,o.useLongestToken));var m=-1/0,h=1/0;function C(){for(var E=Math.max(m,-l);E<=Math.min(h,l);E+=2){var g=void 0,j=c[E-1],b=c[E+1];j&&(c[E-1]=void 0);var X=!1;if(b){var ae=b.oldPos-E;X=b&&0<=ae&&ae<a}var $e=j&&j.oldPos+1<D;if(!X&&!$e){c[E]=void 0;continue}if(!$e||X&&j.oldPos<b.oldPos?g=o.addToPath(b,!0,!1,0,u):g=o.addToPath(j,!1,!0,1,u),F=o.extractCommon(g,r,t,E,u),g.oldPos+1>=D&&F+1>=a)return s(Fr(o,g.lastComponent,r,t,o.useLongestToken));c[E]=g,g.oldPos+1>=D&&(h=Math.min(h,E-1)),F+1>=a&&(m=Math.max(m,E+1))}l++}if(i)(function E(){setTimeout(function(){if(l>p||Date.now()>d)return i();C()||E()},0)})();else for(;l<=p&&Date.now()<=d;){var v=C();if(v)return v}},addToPath:function(t,r,n,u,i){var o=t.lastComponent;return o&&!i.oneChangePerToken&&o.added===r&&o.removed===n?{oldPos:t.oldPos+u,lastComponent:{count:o.count+1,added:r,removed:n,previousComponent:o.previousComponent}}:{oldPos:t.oldPos+u,lastComponent:{count:1,added:r,removed:n,previousComponent:o}}},extractCommon:function(t,r,n,u,i){for(var o=r.length,s=n.length,a=t.oldPos,D=a-u,l=0;D+1<o&&a+1<s&&this.equals(n[a+1],r[D+1],i);)D++,a++,l++,i.oneChangePerToken&&(t.lastComponent={count:1,previousComponent:t.lastComponent,added:!1,removed:!1});return l&&!i.oneChangePerToken&&(t.lastComponent={count:l,previousComponent:t.lastComponent,added:!1,removed:!1}),t.oldPos=a,D},equals:function(t,r,n){return n.comparator?n.comparator(t,r):t===r||n.ignoreCase&&t.toLowerCase()===r.toLowerCase()},removeEmpty:function(t){for(var r=[],n=0;n<t.length;n++)t[n]&&r.push(t[n]);return r},castInput:function(t){return t},tokenize:function(t){return Array.from(t)},join:function(t){return t.join(\"\")},postProcess:function(t){return t}};function Fr(e,t,r,n,u){for(var i=[],o;t;)i.push(t),o=t.previousComponent,delete t.previousComponent,t=o;i.reverse();for(var s=0,a=i.length,D=0,l=0;s<a;s++){var p=i[s];if(p.removed)p.value=e.join(n.slice(l,l+p.count)),l+=p.count;else{if(!p.added&&u){var f=r.slice(D,D+p.count);f=f.map(function(d,c){var F=n[l+c];return F.length>d.length?F:d}),p.value=e.join(f)}else p.value=e.join(r.slice(D,D+p.count));D+=p.count,p.added||(l+=p.count)}}return i}var Fo=new M;function mr(e,t){var r;for(r=0;r<e.length&&r<t.length;r++)if(e[r]!=t[r])return e.slice(0,r);return e.slice(0,r)}function hr(e,t){var r;if(!e||!t||e[e.length-1]!=t[t.length-1])return\"\";for(r=0;r<e.length&&r<t.length;r++)if(e[e.length-(r+1)]!=t[t.length-(r+1)])return e.slice(-r);return e.slice(-r)}function wt(e,t,r){if(e.slice(0,t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't start with prefix \").concat(JSON.stringify(t),\"; this is a bug\"));return r+e.slice(t.length)}function _t(e,t,r){if(!t)return e+r;if(e.slice(-t.length)!=t)throw Error(\"string \".concat(JSON.stringify(e),\" doesn't end with suffix \").concat(JSON.stringify(t),\"; this is a bug\"));return e.slice(0,-t.length)+r}function we(e,t){return wt(e,t,\"\")}function Ue(e,t){return _t(e,t,\"\")}function Er(e,t){return t.slice(0,Nu(e,t))}function Nu(e,t){var r=0;e.length>t.length&&(r=e.length-t.length);var n=t.length;e.length<t.length&&(n=e.length);var u=Array(n),i=0;u[0]=0;for(var o=1;o<n;o++){for(t[o]==t[i]?u[o]=u[i]:u[o]=i;i>0&&t[o]!=t[i];)i=u[i];t[o]==t[i]&&i++}i=0;for(var s=r;s<e.length;s++){for(;i>0&&e[s]!=t[i];)i=u[i];e[s]==t[i]&&i++}return i}var Ve=\"a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}\",Ou=new RegExp(\"[\".concat(Ve,\"]+|\\\\s+|[^\").concat(Ve,\"]\"),\"ug\"),Ge=new M;Ge.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};Ge.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!=\"word\")throw new Error('The segmenter passed must have a granularity of \"word\"');r=Array.from(t.intlSegmenter.segment(e),function(i){return i.segment})}else r=e.match(Ou)||[];var n=[],u=null;return r.forEach(function(i){/\\s/.test(i)?u==null?n.push(i):n.push(n.pop()+i):/\\s/.test(u)?n[n.length-1]==u?n.push(n.pop()+i):n.push(u+i):n.push(i),u=i}),n};Ge.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\\s+/,\"\")}).join(\"\")};Ge.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,u=null;return e.forEach(function(i){i.added?n=i:i.removed?u=i:((n||u)&&Cr(r,u,n,i),r=i,n=null,u=null)}),(n||u)&&Cr(r,u,n,null),e};function Cr(e,t,r,n){if(t&&r){var u=t.value.match(/^\\s*/)[0],i=t.value.match(/\\s*$/)[0],o=r.value.match(/^\\s*/)[0],s=r.value.match(/\\s*$/)[0];if(e){var a=mr(u,o);e.value=_t(e.value,o,a),t.value=we(t.value,a),r.value=we(r.value,a)}if(n){var D=hr(i,s);n.value=wt(n.value,s,D),t.value=Ue(t.value,D),r.value=Ue(r.value,D)}}else if(r)e&&(r.value=r.value.replace(/^\\s*/,\"\")),n&&(n.value=n.value.replace(/^\\s*/,\"\"));else if(e&&n){var l=n.value.match(/^\\s*/)[0],p=t.value.match(/^\\s*/)[0],f=t.value.match(/\\s*$/)[0],d=mr(l,p);t.value=we(t.value,d);var c=hr(we(l,d),f);t.value=Ue(t.value,c),n.value=wt(n.value,l,c),e.value=_t(e.value,l,l.slice(0,l.length-c.length))}else if(n){var F=n.value.match(/^\\s*/)[0],m=t.value.match(/\\s*$/)[0],h=Er(m,F);t.value=Ue(t.value,h)}else if(e){var C=e.value.match(/\\s*$/)[0],v=t.value.match(/^\\s*/)[0],E=Er(C,v);t.value=we(t.value,E)}}var Su=new M;Su.tokenize=function(e){var t=new RegExp(\"(\\\\r?\\\\n)|[\".concat(Ve,\"]+|[^\\\\S\\\\n\\\\r]+|[^\").concat(Ve,\"]\"),\"ug\");return e.match(t)||[]};var Nt=new M;Nt.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\\r\\n/g,`\n`));var r=[],n=e.split(/(\\n|\\r\\n)/);n[n.length-1]||n.pop();for(var u=0;u<n.length;u++){var i=n[u];u%2&&!t.newlineIsToken?r[r.length-1]+=i:r.push(i)}return r};Nt.equals=function(e,t,r){return r.ignoreWhitespace?((!r.newlineIsToken||!e.includes(`\n`))&&(e=e.trim()),(!r.newlineIsToken||!t.includes(`\n`))&&(t=t.trim())):r.ignoreNewlineAtEof&&!r.newlineIsToken&&(e.endsWith(`\n`)&&(e=e.slice(0,-1)),t.endsWith(`\n`)&&(t=t.slice(0,-1))),M.prototype.equals.call(this,e,t,r)};var Tu=new M;Tu.tokenize=function(e){return e.split(/(\\S.+?[.!?])(?=\\s+|$)/)};var ku=new M;ku.tokenize=function(e){return e.split(/([{}:;,]|\\s+)/)};function xt(e){\"@babel/helpers - typeof\";return xt=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(t){return typeof t}:function(t){return t&&typeof Symbol==\"function\"&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},xt(e)}var _e=new M;_e.useLongestToken=!0;_e.tokenize=Nt.tokenize;_e.castInput=function(e,t){var r=t.undefinedReplacement,n=t.stringifyReplacer,u=n===void 0?function(i,o){return typeof o>\"u\"?r:o}:n;return typeof e==\"string\"?e:JSON.stringify(bt(e,null,null,u),u,\" \")};_e.equals=function(e,t,r){return M.prototype.equals.call(_e,e.replace(/,([\\r\\n])/g,\"$1\"),t.replace(/,([\\r\\n])/g,\"$1\"),r)};function bt(e,t,r,n,u){t=t||[],r=r||[],n&&(e=n(u,e));var i;for(i=0;i<t.length;i+=1)if(t[i]===e)return r[i];var o;if(Object.prototype.toString.call(e)===\"[object Array]\"){for(t.push(e),o=new Array(e.length),r.push(o),i=0;i<e.length;i+=1)o[i]=bt(e[i],t,r,n,u);return t.pop(),r.pop(),o}if(e&&e.toJSON&&(e=e.toJSON()),xt(e)===\"object\"&&e!==null){t.push(e),o={},r.push(o);var s=[],a;for(a in e)Object.prototype.hasOwnProperty.call(e,a)&&s.push(a);for(s.sort(),i=0;i<s.length;i+=1)a=s[i],o[a]=bt(e[a],t,r,n,a);t.pop(),r.pop()}else o=e;return o}var ze=new M;ze.tokenize=function(e){return e.slice()};ze.join=ze.removeEmpty=function(e){return e};function gr(e,t,r){return ze.diff(e,t,r)}function yr(e){let t=e.indexOf(\"\\r\");return t!==-1?e.charAt(t+1)===`\n`?\"crlf\":\"cr\":\"lf\"}function xe(e){switch(e){case\"cr\":return\"\\r\";case\"crlf\":return`\\r\n`;default:return`\n`}}function Ot(e,t){let r;switch(t){case`\n`:r=/\\n/gu;break;case\"\\r\":r=/\\r/gu;break;case`\\r\n`:r=/\\r\\n/gu;break;default:throw new Error(`Unexpected \"eol\" ${JSON.stringify(t)}.`)}let n=e.match(r);return n?n.length:0}function Ar(e){return ne(!1,e,/\\r\\n?/gu,`\n`)}var U=\"string\",H=\"array\",V=\"cursor\",T=\"indent\",k=\"align\",L=\"trim\",B=\"group\",N=\"fill\",w=\"if-break\",P=\"indent-if-break\",I=\"line-suffix\",R=\"line-suffix-boundary\",A=\"line\",O=\"label\",_=\"break-parent\",Ke=new Set([V,T,k,L,B,N,w,P,I,R,A,O,_]);function Lu(e){if(typeof e==\"string\")return U;if(Array.isArray(e))return H;if(!e)return;let{type:t}=e;if(Ke.has(t))return t}var z=Lu;var Pu=e=>new Intl.ListFormat(\"en-US\",{type:\"disjunction\"}).format(e);function Iu(e){let t=e===null?\"null\":typeof e;if(t!==\"string\"&&t!==\"object\")return`Unexpected doc '${t}', \nExpected it to be 'string' or 'object'.`;if(z(e))throw new Error(\"doc is valid.\");let r=Object.prototype.toString.call(e);if(r!==\"[object Object]\")return`Unexpected doc '${r}'.`;let n=Pu([...Ke].map(u=>`'${u}'`));return`Unexpected doc.type '${e.type}'.\nExpected it to be ${n}.`}var St=class extends Error{name=\"InvalidDocError\";constructor(t){super(Iu(t)),this.doc=t}},Q=St;var vr={};function Ru(e,t,r,n){let u=[e];for(;u.length>0;){let i=u.pop();if(i===vr){r(u.pop());continue}r&&u.push(i,vr);let o=z(i);if(!o)throw new Q(i);if((t==null?void 0:t(i))!==!1)switch(o){case H:case N:{let s=o===H?i:i.parts;for(let a=s.length,D=a-1;D>=0;--D)u.push(s[D]);break}case w:u.push(i.flatContents,i.breakContents);break;case B:if(n&&i.expandedStates)for(let s=i.expandedStates.length,a=s-1;a>=0;--a)u.push(i.expandedStates[a]);else u.push(i.contents);break;case k:case T:case P:case O:case I:u.push(i.contents);break;case U:case V:case L:case R:case A:case _:break;default:throw new Q(i)}}}var be=Ru;var Br=()=>{},G=Br,Je=Br;function le(e){return G(e),{type:T,contents:e}}function De(e,t){return G(t),{type:k,contents:t,n:e}}function Tt(e,t={}){return G(e),Je(t.expandedStates,!0),{type:B,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function wr(e){return De(Number.NEGATIVE_INFINITY,e)}function _r(e){return De({type:\"root\"},e)}function xr(e){return De(-1,e)}function br(e,t){return Tt(e[0],{...t,expandedStates:e})}function Nr(e){return Je(e),{type:N,parts:e}}function Or(e,t=\"\",r={}){return G(e),t!==\"\"&&G(t),{type:w,breakContents:e,flatContents:t,groupId:r.groupId}}function Sr(e,t){return G(e),{type:P,contents:e,groupId:t.groupId,negate:t.negate}}function Ne(e){return G(e),{type:I,contents:e}}var Tr={type:R},Fe={type:_},kr={type:L},Oe={type:A,hard:!0},kt={type:A,hard:!0,literal:!0},qe={type:A},Lr={type:A,soft:!0},K=[Oe,Fe],Xe=[kt,Fe],Z={type:V};function Se(e,t){G(e),Je(t);let r=[];for(let n=0;n<t.length;n++)n!==0&&r.push(e),r.push(t[n]);return r}function Qe(e,t,r){G(e);let n=e;if(t>0){for(let u=0;u<Math.floor(t/r);++u)n=le(n);n=De(t%r,n),n=De(Number.NEGATIVE_INFINITY,n)}return n}function Pr(e,t){return G(t),e?{type:O,label:e,contents:t}:t}function ee(e){var t;if(!e)return\"\";if(Array.isArray(e)){let r=[];for(let n of e)if(Array.isArray(n))r.push(...ee(n));else{let u=ee(n);u!==\"\"&&r.push(u)}return r}return e.type===w?{...e,breakContents:ee(e.breakContents),flatContents:ee(e.flatContents)}:e.type===B?{...e,contents:ee(e.contents),expandedStates:(t=e.expandedStates)==null?void 0:t.map(ee)}:e.type===N?{type:\"fill\",parts:e.parts.map(ee)}:e.contents?{...e,contents:ee(e.contents)}:e}function Ir(e){let t=Object.create(null),r=new Set;return n(ee(e));function n(i,o,s){var a,D;if(typeof i==\"string\")return JSON.stringify(i);if(Array.isArray(i)){let l=i.map(n).filter(Boolean);return l.length===1?l[0]:`[${l.join(\", \")}]`}if(i.type===A){let l=((a=s==null?void 0:s[o+1])==null?void 0:a.type)===_;return i.literal?l?\"literalline\":\"literallineWithoutBreakParent\":i.hard?l?\"hardline\":\"hardlineWithoutBreakParent\":i.soft?\"softline\":\"line\"}if(i.type===_)return((D=s==null?void 0:s[o-1])==null?void 0:D.type)===A&&s[o-1].hard?void 0:\"breakParent\";if(i.type===L)return\"trim\";if(i.type===T)return\"indent(\"+n(i.contents)+\")\";if(i.type===k)return i.n===Number.NEGATIVE_INFINITY?\"dedentToRoot(\"+n(i.contents)+\")\":i.n<0?\"dedent(\"+n(i.contents)+\")\":i.n.type===\"root\"?\"markAsRoot(\"+n(i.contents)+\")\":\"align(\"+JSON.stringify(i.n)+\", \"+n(i.contents)+\")\";if(i.type===w)return\"ifBreak(\"+n(i.breakContents)+(i.flatContents?\", \"+n(i.flatContents):\"\")+(i.groupId?(i.flatContents?\"\":', \"\"')+`, { groupId: ${u(i.groupId)} }`:\"\")+\")\";if(i.type===P){let l=[];i.negate&&l.push(\"negate: true\"),i.groupId&&l.push(`groupId: ${u(i.groupId)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return`indentIfBreak(${n(i.contents)}${p})`}if(i.type===B){let l=[];i.break&&i.break!==\"propagated\"&&l.push(\"shouldBreak: true\"),i.id&&l.push(`id: ${u(i.id)}`);let p=l.length>0?`, { ${l.join(\", \")} }`:\"\";return i.expandedStates?`conditionalGroup([${i.expandedStates.map(f=>n(f)).join(\",\")}]${p})`:`group(${n(i.contents)}${p})`}if(i.type===N)return`fill([${i.parts.map(l=>n(l)).join(\", \")}])`;if(i.type===I)return\"lineSuffix(\"+n(i.contents)+\")\";if(i.type===R)return\"lineSuffixBoundary\";if(i.type===O)return`label(${JSON.stringify(i.label)}, ${n(i.contents)})`;throw new Error(\"Unknown doc type \"+i.type)}function u(i){if(typeof i!=\"symbol\")return JSON.stringify(String(i));if(i in t)return t[i];let o=i.description||\"symbol\";for(let s=0;;s++){let a=o+(s>0?` #${s}`:\"\");if(!r.has(a))return r.add(a),t[i]=`Symbol.for(${JSON.stringify(a)})`}}}var Yu=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t==\"string\"?t[r<0?t.length+r:r]:t.at(r)},y=Yu;var Rr=()=>/[#*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\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\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-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\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\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;function Yr(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function jr(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var Hr=e=>!(Yr(e)||jr(e));var ju=/[^\\x20-\\x7F]/u;function Hu(e){if(!e)return 0;if(!ju.test(e))return e.length;e=e.replace(Rr(),\" \");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=Hr(n)?1:2)}return t}var Te=Hu;function Le(e,t){if(typeof e==\"string\")return t(e);let r=new Map;return n(e);function n(i){if(r.has(i))return r.get(i);let o=u(i);return r.set(i,o),o}function u(i){switch(z(i)){case H:return t(i.map(n));case N:return t({...i,parts:i.parts.map(n)});case w:return t({...i,breakContents:n(i.breakContents),flatContents:n(i.flatContents)});case B:{let{expandedStates:o,contents:s}=i;return o?(o=o.map(n),s=o[0]):s=n(s),t({...i,contents:s,expandedStates:o})}case k:case T:case P:case O:case I:return t({...i,contents:n(i.contents)});case U:case V:case L:case R:case A:case _:return t(i);default:throw new Q(i)}}}function Ze(e,t,r){let n=r,u=!1;function i(o){if(u)return!1;let s=t(o);s!==void 0&&(u=!0,n=s)}return be(e,i),n}function Wu(e){if(e.type===B&&e.break||e.type===A&&e.hard||e.type===_)return!0}function Mr(e){return Ze(e,Wu,!1)}function Wr(e){if(e.length>0){let t=y(!1,e,-1);!t.expandedStates&&!t.break&&(t.break=\"propagated\")}return null}function Ur(e){let t=new Set,r=[];function n(i){if(i.type===_&&Wr(r),i.type===B){if(r.push(i),t.has(i))return!1;t.add(i)}}function u(i){i.type===B&&r.pop().break&&Wr(r)}be(e,n,u,!0)}function $u(e){return e.type===A&&!e.hard?e.soft?\"\":\" \":e.type===w?e.flatContents:e}function Vr(e){return Le(e,$u)}function $r(e){for(e=[...e];e.length>=2&&y(!1,e,-2).type===A&&y(!1,e,-1).type===_;)e.length-=2;if(e.length>0){let t=ke(y(!1,e,-1));e[e.length-1]=t}return e}function ke(e){switch(z(e)){case T:case P:case B:case I:case O:{let t=ke(e.contents);return{...e,contents:t}}case w:return{...e,breakContents:ke(e.breakContents),flatContents:ke(e.flatContents)};case N:return{...e,parts:$r(e.parts)};case H:return $r(e);case U:return e.replace(/[\\n\\r]*$/u,\"\");case k:case V:case L:case R:case A:case _:break;default:throw new Q(e)}return e}function et(e){return ke(Uu(e))}function Mu(e){switch(z(e)){case N:if(e.parts.every(t=>t===\"\"))return\"\";break;case B:if(!e.contents&&!e.id&&!e.break&&!e.expandedStates)return\"\";if(e.contents.type===B&&e.contents.id===e.id&&e.contents.break===e.break&&e.contents.expandedStates===e.expandedStates)return e.contents;break;case k:case T:case P:case I:if(!e.contents)return\"\";break;case w:if(!e.flatContents&&!e.breakContents)return\"\";break;case H:{let t=[];for(let r of e){if(!r)continue;let[n,...u]=Array.isArray(r)?r:[r];typeof n==\"string\"&&typeof y(!1,t,-1)==\"string\"?t[t.length-1]+=n:t.push(n),t.push(...u)}return t.length===0?\"\":t.length===1?t[0]:t}case U:case V:case L:case R:case A:case O:case _:break;default:throw new Q(e)}return e}function Uu(e){return Le(e,t=>Mu(t))}function zr(e,t=Xe){return Le(e,r=>typeof r==\"string\"?Se(t,r.split(`\n`)):r)}function Vu(e){if(e.type===A)return!0}function Gr(e){return Ze(e,Vu,!1)}function me(e,t){return e.type===O?{...e,contents:t(e.contents)}:t(e)}var Y=Symbol(\"MODE_BREAK\"),J=Symbol(\"MODE_FLAT\"),he=Symbol(\"cursor\"),Lt=Symbol(\"DOC_FILL_PRINTED_LENGTH\");function Kr(){return{value:\"\",length:0,queue:[]}}function zu(e,t){return Pt(e,{type:\"indent\"},t)}function Gu(e,t,r){return t===Number.NEGATIVE_INFINITY?e.root||Kr():t<0?Pt(e,{type:\"dedent\"},r):t?t.type===\"root\"?{...e,root:e}:Pt(e,{type:typeof t==\"string\"?\"stringAlign\":\"numberAlign\",n:t},r):e}function Pt(e,t,r){let n=t.type===\"dedent\"?e.queue.slice(0,-1):[...e.queue,t],u=\"\",i=0,o=0,s=0;for(let c of n)switch(c.type){case\"indent\":l(),r.useTabs?a(1):D(r.tabWidth);break;case\"stringAlign\":l(),u+=c.n,i+=c.n.length;break;case\"numberAlign\":o+=1,s+=c.n;break;default:throw new Error(`Unexpected type '${c.type}'`)}return f(),{...e,value:u,length:i,queue:n};function a(c){u+=\"\t\".repeat(c),i+=r.tabWidth*c}function D(c){u+=\" \".repeat(c),i+=c}function l(){r.useTabs?p():f()}function p(){o>0&&a(o),d()}function f(){s>0&&D(s),d()}function d(){o=0,s=0}}function It(e){let t=0,r=0,n=e.length;e:for(;n--;){let u=e[n];if(u===he){r++;continue}for(let i=u.length-1;i>=0;i--){let o=u[i];if(o===\" \"||o===\"\t\")t++;else{e[n]=u.slice(0,i+1);break e}}}if(t>0||r>0)for(e.length=n+1;r-- >0;)e.push(he);return t}function tt(e,t,r,n,u,i){if(r===Number.POSITIVE_INFINITY)return!0;let o=t.length,s=[e],a=[];for(;r>=0;){if(s.length===0){if(o===0)return!0;s.push(t[--o]);continue}let{mode:D,doc:l}=s.pop(),p=z(l);switch(p){case U:a.push(l),r-=Te(l);break;case H:case N:{let f=p===H?l:l.parts,d=l[Lt]??0;for(let c=f.length-1;c>=d;c--)s.push({mode:D,doc:f[c]});break}case T:case k:case P:case O:s.push({mode:D,doc:l.contents});break;case L:r+=It(a);break;case B:{if(i&&l.break)return!1;let f=l.break?Y:D,d=l.expandedStates&&f===Y?y(!1,l.expandedStates,-1):l.contents;s.push({mode:f,doc:d});break}case w:{let d=(l.groupId?u[l.groupId]||J:D)===Y?l.breakContents:l.flatContents;d&&s.push({mode:D,doc:d});break}case A:if(D===Y||l.hard)return!0;l.soft||(a.push(\" \"),r--);break;case I:n=!0;break;case R:if(n)return!1;break}}return!1}function Ee(e,t){let r={},n=t.printWidth,u=xe(t.endOfLine),i=0,o=[{ind:Kr(),mode:Y,doc:e}],s=[],a=!1,D=[],l=0;for(Ur(e);o.length>0;){let{ind:f,mode:d,doc:c}=o.pop();switch(z(c)){case U:{let F=u!==`\n`?ne(!1,c,`\n`,u):c;s.push(F),o.length>0&&(i+=Te(F));break}case H:for(let F=c.length-1;F>=0;F--)o.push({ind:f,mode:d,doc:c[F]});break;case V:if(l>=2)throw new Error(\"There are too many 'cursor' in doc.\");s.push(he),l++;break;case T:o.push({ind:zu(f,t),mode:d,doc:c.contents});break;case k:o.push({ind:Gu(f,c.n,t),mode:d,doc:c.contents});break;case L:i-=It(s);break;case B:switch(d){case J:if(!a){o.push({ind:f,mode:c.break?Y:J,doc:c.contents});break}case Y:{a=!1;let F={ind:f,mode:J,doc:c.contents},m=n-i,h=D.length>0;if(!c.break&&tt(F,o,m,h,r))o.push(F);else if(c.expandedStates){let C=y(!1,c.expandedStates,-1);if(c.break){o.push({ind:f,mode:Y,doc:C});break}else for(let v=1;v<c.expandedStates.length+1;v++)if(v>=c.expandedStates.length){o.push({ind:f,mode:Y,doc:C});break}else{let E=c.expandedStates[v],g={ind:f,mode:J,doc:E};if(tt(g,o,m,h,r)){o.push(g);break}}}else o.push({ind:f,mode:Y,doc:c.contents});break}}c.id&&(r[c.id]=y(!1,o,-1).mode);break;case N:{let F=n-i,m=c[Lt]??0,{parts:h}=c,C=h.length-m;if(C===0)break;let v=h[m+0],E=h[m+1],g={ind:f,mode:J,doc:v},j={ind:f,mode:Y,doc:v},b=tt(g,[],F,D.length>0,r,!0);if(C===1){b?o.push(g):o.push(j);break}let X={ind:f,mode:J,doc:E},ae={ind:f,mode:Y,doc:E};if(C===2){b?o.push(X,g):o.push(ae,j);break}let $e=h[m+2],At={ind:f,mode:d,doc:{...c,[Lt]:m+2}};tt({ind:f,mode:J,doc:[v,E,$e]},[],F,D.length>0,r,!0)?o.push(At,X,g):b?o.push(At,ae,g):o.push(At,ae,j);break}case w:case P:{let F=c.groupId?r[c.groupId]:d;if(F===Y){let m=c.type===w?c.breakContents:c.negate?c.contents:le(c.contents);m&&o.push({ind:f,mode:d,doc:m})}if(F===J){let m=c.type===w?c.flatContents:c.negate?le(c.contents):c.contents;m&&o.push({ind:f,mode:d,doc:m})}break}case I:D.push({ind:f,mode:d,doc:c.contents});break;case R:D.length>0&&o.push({ind:f,mode:d,doc:Oe});break;case A:switch(d){case J:if(c.hard)a=!0;else{c.soft||(s.push(\" \"),i+=1);break}case Y:if(D.length>0){o.push({ind:f,mode:d,doc:c},...D.reverse()),D.length=0;break}c.literal?f.root?(s.push(u,f.root.value),i=f.root.length):(s.push(u),i=0):(i-=It(s),s.push(u+f.value),i=f.length);break}break;case O:o.push({ind:f,mode:d,doc:c.contents});break;case _:break;default:throw new Q(c)}o.length===0&&D.length>0&&(o.push(...D.reverse()),D.length=0)}let p=s.indexOf(he);if(p!==-1){let f=s.indexOf(he,p+1);if(f===-1)return{formatted:s.filter(m=>m!==he).join(\"\")};let d=s.slice(0,p).join(\"\"),c=s.slice(p+1,f).join(\"\"),F=s.slice(f+1).join(\"\");return{formatted:d+c+F,cursorNodeStart:d.length,cursorNodeText:c}}return{formatted:s.join(\"\")}}function Ku(e,t,r=0){let n=0;for(let u=r;u<e.length;++u)e[u]===\"\t\"?n=n+t-n%t:n++;return n}var Ce=Ku;var te,Yt,rt,Rt=class{constructor(t){pr(this,te);this.stack=[t]}get key(){let{stack:t,siblings:r}=this;return y(!1,t,r===null?-2:-4)??null}get index(){return this.siblings===null?null:y(!1,this.stack,-2)}get node(){return y(!1,this.stack,-1)}get parent(){return this.getNode(1)}get grandparent(){return this.getNode(2)}get isInArray(){return this.siblings!==null}get siblings(){let{stack:t}=this,r=y(!1,t,-3);return Array.isArray(r)?r:null}get next(){let{siblings:t}=this;return t===null?null:t[this.index+1]}get previous(){let{siblings:t}=this;return t===null?null:t[this.index-1]}get isFirst(){return this.index===0}get isLast(){let{siblings:t,index:r}=this;return t!==null&&r===t.length-1}get isRoot(){return this.stack.length===1}get root(){return this.stack[0]}get ancestors(){return[...pe(this,te,rt).call(this)]}getName(){let{stack:t}=this,{length:r}=t;return r>1?y(!1,t,-2):null}getValue(){return y(!1,this.stack,-1)}getNode(t=0){let r=pe(this,te,Yt).call(this,t);return r===-1?null:this.stack[r]}getParentNode(t=0){return this.getNode(t+1)}call(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{return t(this)}finally{n.length=u}}callParent(t,r=0){let n=pe(this,te,Yt).call(this,r+1),u=this.stack.splice(n+1);try{return t(this)}finally{this.stack.push(...u)}}each(t,...r){let{stack:n}=this,{length:u}=n,i=y(!1,n,-1);for(let o of r)i=i[o],n.push(o,i);try{for(let o=0;o<i.length;++o)n.push(o,i[o]),t(this,o,i),n.length-=2}finally{n.length=u}}map(t,...r){let n=[];return this.each((u,i,o)=>{n[i]=t(u,i,o)},...r),n}match(...t){let r=this.stack.length-1,n=null,u=this.stack[r--];for(let i of t){if(u===void 0)return!1;let o=null;if(typeof n==\"number\"&&(o=n,n=this.stack[r--],u=this.stack[r--]),i&&!i(u,n,o))return!1;n=this.stack[r--],u=this.stack[r--]}return!0}findAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return r}hasAncestor(t){for(let r of pe(this,te,rt).call(this))if(t(r))return!0;return!1}};te=new WeakSet,Yt=function(t){let{stack:r}=this;for(let n=r.length-1;n>=0;n-=2)if(!Array.isArray(r[n])&&--t<0)return n;return-1},rt=function*(){let{stack:t}=this;for(let r=t.length-3;r>=0;r-=2){let n=t[r];Array.isArray(n)||(yield n)}};var Jr=Rt;var qr=new Proxy(()=>{},{get:()=>qr}),Pe=qr;function Ju(e){return e!==null&&typeof e==\"object\"}var Xr=Ju;function*ge(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,u=i=>Xr(i)&&n(i);for(let i of r(e)){let o=e[i];if(Array.isArray(o))for(let s of o)u(s)&&(yield s);else u(o)&&(yield o)}}function*Qr(e,t){let r=[e];for(let n=0;n<r.length;n++){let u=r[n];for(let i of ge(u,t))yield i,r.push(i)}}function Zr(e,t){return ge(e,t).next().done}function ye(e){return(t,r,n)=>{let u=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:i}=t,o=r;for(;o>=0&&o<i;){let s=t.charAt(o);if(e instanceof RegExp){if(!e.test(s))return o}else if(!e.includes(s))return o;u?o--:o++}return o===-1||o===i?o:!1}}var en=ye(/\\s/u),S=ye(\" \t\"),nt=ye(\",; \t\"),ut=ye(/[^\\n\\r]/u);function qu(e,t,r){let n=!!(r!=null&&r.backwards);if(t===!1)return!1;let u=e.charAt(t);if(n){if(e.charAt(t-1)===\"\\r\"&&u===`\n`)return t-2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t-1}else{if(u===\"\\r\"&&e.charAt(t+1)===`\n`)return t+2;if(u===`\n`||u===\"\\r\"||u===\"\\u2028\"||u===\"\\u2029\")return t+1}return t}var W=qu;function Xu(e,t,r={}){let n=S(e,r.backwards?t-1:t,r),u=W(e,n,r);return n!==u}var $=Xu;function Qu(e){return Array.isArray(e)&&e.length>0}var jt=Qu;var tn=new Set([\"tokens\",\"comments\",\"parent\",\"enclosingNode\",\"precedingNode\",\"followingNode\"]),Zu=e=>Object.keys(e).filter(t=>!tn.has(t));function ei(e){return e?t=>e(t,tn):Zu}var q=ei;function ti(e){let t=e.type||e.kind||\"(unknown type)\",r=String(e.name||e.id&&(typeof e.id==\"object\"?e.id.name:e.id)||e.key&&(typeof e.key==\"object\"?e.key.name:e.key)||e.value&&(typeof e.value==\"object\"?\"\":String(e.value))||e.operator||\"\");return r.length>20&&(r=r.slice(0,19)+\"\\u2026\"),t+(r?\" \"+r:\"\")}function Ht(e,t){(e.comments??(e.comments=[])).push(t),t.printed=!1,t.nodeDescription=ti(e)}function ue(e,t){t.leading=!0,t.trailing=!1,Ht(e,t)}function re(e,t,r){t.leading=!1,t.trailing=!1,r&&(t.marker=r),Ht(e,t)}function ie(e,t){t.leading=!1,t.trailing=!0,Ht(e,t)}var Wt=new WeakMap;function it(e,t){if(Wt.has(e))return Wt.get(e);let{printer:{getCommentChildNodes:r,canAttachComment:n,getVisitorKeys:u},locStart:i,locEnd:o}=t;if(!n)return[];let s=((r==null?void 0:r(e,t))??[...ge(e,{getVisitorKeys:q(u)})]).flatMap(a=>n(a)?[a]:it(a,t));return s.sort((a,D)=>i(a)-i(D)||o(a)-o(D)),Wt.set(e,s),s}function nn(e,t,r,n){let{locStart:u,locEnd:i}=r,o=u(t),s=i(t),a=it(e,r),D,l,p=0,f=a.length;for(;p<f;){let d=p+f>>1,c=a[d],F=u(c),m=i(c);if(F<=o&&s<=m)return nn(c,t,r,c);if(m<=o){D=c,p=d+1;continue}if(s<=F){l=c,f=d;continue}throw new Error(\"Comment location overlaps with node location\")}if((n==null?void 0:n.type)===\"TemplateLiteral\"){let{quasis:d}=n,c=Mt(d,t,r);D&&Mt(d,D,r)!==c&&(D=null),l&&Mt(d,l,r)!==c&&(l=null)}return{enclosingNode:n,precedingNode:D,followingNode:l}}var $t=()=>!1;function un(e,t){let{comments:r}=e;if(delete e.comments,!jt(r)||!t.printer.canAttachComment)return;let n=[],{locStart:u,locEnd:i,printer:{experimentalFeatures:{avoidAstMutation:o=!1}={},handleComments:s={}},originalText:a}=t,{ownLine:D=$t,endOfLine:l=$t,remaining:p=$t}=s,f=r.map((d,c)=>({...nn(e,d,t),comment:d,text:a,options:t,ast:e,isLastComment:r.length-1===c}));for(let[d,c]of f.entries()){let{comment:F,precedingNode:m,enclosingNode:h,followingNode:C,text:v,options:E,ast:g,isLastComment:j}=c;if(E.parser===\"json\"||E.parser===\"json5\"||E.parser===\"jsonc\"||E.parser===\"__js_expression\"||E.parser===\"__ts_expression\"||E.parser===\"__vue_expression\"||E.parser===\"__vue_ts_expression\"){if(u(F)-u(g)<=0){ue(g,F);continue}if(i(F)-i(g)>=0){ie(g,F);continue}}let b;if(o?b=[c]:(F.enclosingNode=h,F.precedingNode=m,F.followingNode=C,b=[F,v,E,g,j]),ri(v,E,f,d))F.placement=\"ownLine\",D(...b)||(C?ue(C,F):m?ie(m,F):h?re(h,F):re(g,F));else if(ni(v,E,f,d))F.placement=\"endOfLine\",l(...b)||(m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F));else if(F.placement=\"remaining\",!p(...b))if(m&&C){let X=n.length;X>0&&n[X-1].followingNode!==C&&rn(n,E),n.push(c)}else m?ie(m,F):C?ue(C,F):h?re(h,F):re(g,F)}if(rn(n,t),!o)for(let d of r)delete d.precedingNode,delete d.enclosingNode,delete d.followingNode}var on=e=>!/[\\S\\n\\u2028\\u2029]/u.test(e);function ri(e,t,r,n){let{comment:u,precedingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=o(u);if(i)for(let D=n-1;D>=0;D--){let{comment:l,precedingNode:p}=r[D];if(p!==i||!on(e.slice(s(l),a)))break;a=o(l)}return $(e,a,{backwards:!0})}function ni(e,t,r,n){let{comment:u,followingNode:i}=r[n],{locStart:o,locEnd:s}=t,a=s(u);if(i)for(let D=n+1;D<r.length;D++){let{comment:l,followingNode:p}=r[D];if(p!==i||!on(e.slice(a,o(l))))break;a=s(l)}return $(e,a)}function rn(e,t){var s,a;let r=e.length;if(r===0)return;let{precedingNode:n,followingNode:u}=e[0],i=t.locStart(u),o;for(o=r;o>0;--o){let{comment:D,precedingNode:l,followingNode:p}=e[o-1];Pe.strictEqual(l,n),Pe.strictEqual(p,u);let f=t.originalText.slice(t.locEnd(D),i);if(((a=(s=t.printer).isGap)==null?void 0:a.call(s,f,t))??/^[\\s(]*$/u.test(f))i=t.locStart(D);else break}for(let[D,{comment:l}]of e.entries())D<o?ie(n,l):ue(u,l);for(let D of[n,u])D.comments&&D.comments.length>1&&D.comments.sort((l,p)=>t.locStart(l)-t.locStart(p));e.length=0}function Mt(e,t,r){let n=r.locStart(t)-1;for(let u=1;u<e.length;++u)if(n<r.locStart(e[u]))return u-1;return 0}function ui(e,t){let r=t-1;r=S(e,r,{backwards:!0}),r=W(e,r,{backwards:!0}),r=S(e,r,{backwards:!0});let n=W(e,r,{backwards:!0});return r!==n}var Ie=ui;function sn(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function ii(e,t){var l;let r=e.node,n=[sn(e,t)],{printer:u,originalText:i,locStart:o,locEnd:s}=t;if((l=u.isBlockComment)==null?void 0:l.call(u,r)){let p=$(i,s(r))?$(i,o(r),{backwards:!0})?K:qe:\" \";n.push(p)}else n.push(K);let D=W(i,S(i,s(r)));return D!==!1&&$(i,D)&&n.push(K),n}function oi(e,t,r){var D;let n=e.node,u=sn(e,t),{printer:i,originalText:o,locStart:s}=t,a=(D=i.isBlockComment)==null?void 0:D.call(i,n);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||$(o,s(n),{backwards:!0})){let l=Ie(o,s(n));return{doc:Ne([K,l?K:\"\",u]),isBlock:a,hasLineSuffix:!0}}return!a||r!=null&&r.hasLineSuffix?{doc:[Ne([\" \",u]),Fe],isBlock:a,hasLineSuffix:!0}:{doc:[\" \",u],isBlock:a,hasLineSuffix:!1}}function si(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for(\"printedComments\")];if((r.comments||[]).filter(a=>!n.has(a)).length===0)return{leading:\"\",trailing:\"\"};let i=[],o=[],s;return e.each(()=>{let a=e.node;if(n!=null&&n.has(a))return;let{leading:D,trailing:l}=a;D?i.push(ii(e,t)):l&&(s=oi(e,t,s),o.push(s.doc))},\"comments\"),{leading:i,trailing:o}}function an(e,t,r){let{leading:n,trailing:u}=si(e,r);return!n&&!u?t:me(t,i=>[n,i,u])}function Dn(e){let{[Symbol.for(\"comments\")]:t,[Symbol.for(\"printedComments\")]:r}=e;for(let n of t){if(!n.printed&&!r.has(n))throw new Error('Comment \"'+n.value.trim()+'\" was not printed. Please report this error!');delete n.printed}}function ai(e){return()=>{}}var ln=ai;var Re=class extends Error{name=\"ConfigError\"},Ye=class extends Error{name=\"UndefinedParserError\"};var cn={cursorOffset:{category:\"Special\",type:\"int\",default:-1,range:{start:-1,end:1/0,step:1},description:\"Print (to stderr) where a cursor at the given position would move to after formatting.\",cliCategory:\"Editor\"},endOfLine:{category:\"Global\",type:\"choice\",default:\"lf\",description:\"Which end of line characters to apply.\",choices:[{value:\"lf\",description:\"Line Feed only (\\\\n), common on Linux and macOS as well as inside git repos\"},{value:\"crlf\",description:\"Carriage Return + Line Feed characters (\\\\r\\\\n), common on Windows\"},{value:\"cr\",description:\"Carriage Return character only (\\\\r), used very rarely\"},{value:\"auto\",description:`Maintain existing\n(mixed values within one file are normalised by looking at what's used after the first line)`}]},filepath:{category:\"Special\",type:\"path\",description:\"Specify the input filepath. This will be used to do parser inference.\",cliName:\"stdin-filepath\",cliCategory:\"Other\",cliDescription:\"Path to the file to pretend that stdin comes from.\"},insertPragma:{category:\"Special\",type:\"boolean\",default:!1,description:\"Insert @format pragma into file's first docblock comment.\",cliCategory:\"Other\"},parser:{category:\"Global\",type:\"choice\",default:void 0,description:\"Which parser to use.\",exception:e=>typeof e==\"string\"||typeof e==\"function\",choices:[{value:\"flow\",description:\"Flow\"},{value:\"babel\",description:\"JavaScript\"},{value:\"babel-flow\",description:\"Flow\"},{value:\"babel-ts\",description:\"TypeScript\"},{value:\"typescript\",description:\"TypeScript\"},{value:\"acorn\",description:\"JavaScript\"},{value:\"espree\",description:\"JavaScript\"},{value:\"meriyah\",description:\"JavaScript\"},{value:\"css\",description:\"CSS\"},{value:\"less\",description:\"Less\"},{value:\"scss\",description:\"SCSS\"},{value:\"json\",description:\"JSON\"},{value:\"json5\",description:\"JSON5\"},{value:\"jsonc\",description:\"JSON with Comments\"},{value:\"json-stringify\",description:\"JSON.stringify\"},{value:\"graphql\",description:\"GraphQL\"},{value:\"markdown\",description:\"Markdown\"},{value:\"mdx\",description:\"MDX\"},{value:\"vue\",description:\"Vue\"},{value:\"yaml\",description:\"YAML\"},{value:\"glimmer\",description:\"Ember / Handlebars\"},{value:\"html\",description:\"HTML\"},{value:\"angular\",description:\"Angular\"},{value:\"lwc\",description:\"Lightning Web Components\"}]},plugins:{type:\"path\",array:!0,default:[{value:[]}],category:\"Global\",description:\"Add a plugin. Multiple plugins can be passed as separate `--plugin`s.\",exception:e=>typeof e==\"string\"||typeof e==\"object\",cliName:\"plugin\",cliCategory:\"Config\"},printWidth:{category:\"Global\",type:\"int\",default:80,description:\"The line length where Prettier will try wrap.\",range:{start:0,end:1/0,step:1}},rangeEnd:{category:\"Special\",type:\"int\",default:1/0,range:{start:0,end:1/0,step:1},description:`Format code ending at a given character offset (exclusive).\nThe range will extend forwards to the end of the selected statement.`,cliCategory:\"Editor\"},rangeStart:{category:\"Special\",type:\"int\",default:0,range:{start:0,end:1/0,step:1},description:`Format code starting at a given character offset.\nThe range will extend backwards to the start of the first line containing the selected statement.`,cliCategory:\"Editor\"},requirePragma:{category:\"Special\",type:\"boolean\",default:!1,description:`Require either '@prettier' or '@format' to be present in the file's first docblock comment\nin order for it to be formatted.`,cliCategory:\"Other\"},tabWidth:{type:\"int\",category:\"Global\",default:2,description:\"Number of spaces per indentation level.\",range:{start:0,end:1/0,step:1}},useTabs:{category:\"Global\",type:\"boolean\",default:!1,description:\"Indent with tabs instead of spaces.\"},embeddedLanguageFormatting:{category:\"Global\",type:\"choice\",default:\"auto\",description:\"Control how Prettier formats quoted code embedded in the file.\",choices:[{value:\"auto\",description:\"Format embedded code if Prettier can automatically identify it.\"},{value:\"off\",description:\"Never automatically format embedded code.\"}]}};function ot({plugins:e=[],showDeprecated:t=!1}={}){let r=e.flatMap(u=>u.languages??[]),n=[];for(let u of li(Object.assign({},...e.map(({options:i})=>i),cn)))!t&&u.deprecated||(Array.isArray(u.choices)&&(t||(u.choices=u.choices.filter(i=>!i.deprecated)),u.name===\"parser\"&&(u.choices=[...u.choices,...Di(u.choices,r,e)])),u.pluginDefaults=Object.fromEntries(e.filter(i=>{var o;return((o=i.defaultOptions)==null?void 0:o[u.name])!==void 0}).map(i=>[i.name,i.defaultOptions[u.name]])),n.push(u));return{languages:r,options:n}}function*Di(e,t,r){let n=new Set(e.map(u=>u.value));for(let u of t)if(u.parsers){for(let i of u.parsers)if(!n.has(i)){n.add(i);let o=r.find(a=>a.parsers&&Object.prototype.hasOwnProperty.call(a.parsers,i)),s=u.name;o!=null&&o.name&&(s+=` (plugin: ${o.name})`),yield{value:i,description:s}}}}function li(e){let t=[];for(let[r,n]of Object.entries(e)){let u={name:r,...n};Array.isArray(u.default)&&(u.default=y(!1,u.default,-1).value),t.push(u)}return t}var ci=e=>String(e).split(/[/\\\\]/u).pop();function fn(e,t){if(!t)return;let r=ci(t).toLowerCase();return e.find(({filenames:n})=>n==null?void 0:n.some(u=>u.toLowerCase()===r))??e.find(({extensions:n})=>n==null?void 0:n.some(u=>r.endsWith(u)))}function fi(e,t){if(t)return e.find(({name:r})=>r.toLowerCase()===t)??e.find(({aliases:r})=>r==null?void 0:r.includes(t))??e.find(({extensions:r})=>r==null?void 0:r.includes(`.${t}`))}function di(e,t){let r=e.plugins.flatMap(u=>u.languages??[]),n=fi(r,t.language)??fn(r,t.physicalFile)??fn(r,t.file)??(t.physicalFile,void 0);return n==null?void 0:n.parsers[0]}var dn=di;var oe={key:e=>/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(e)?e:JSON.stringify(e),value(e){if(e===null||typeof e!=\"object\")return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(r=>oe.value(r)).join(\", \")}]`;let t=Object.keys(e);return t.length===0?\"{}\":`{ ${t.map(r=>`${oe.key(r)}: ${oe.value(e[r])}`).join(\", \")} }`},pair:({key:e,value:t})=>oe.value({[e]:t})};var Ut=Me(st(),1),mn=(e,t,{descriptor:r})=>{let n=[`${Ut.default.yellow(typeof e==\"string\"?r.key(e):r.pair(e))} is deprecated`];return t&&n.push(`we now treat it as ${Ut.default.blue(typeof t==\"string\"?r.key(t):r.pair(t))}`),n.join(\"; \")+\".\"};var ce=Me(st(),1);var at=Symbol.for(\"vnopts.VALUE_NOT_EXIST\"),Ae=Symbol.for(\"vnopts.VALUE_UNCHANGED\");var hn=\" \".repeat(2),Cn=(e,t,r)=>{let{text:n,list:u}=r.normalizeExpectedResult(r.schemas[e].expected(r)),i=[];return n&&i.push(En(e,t,n,r.descriptor)),u&&i.push([En(e,t,u.title,r.descriptor)].concat(u.values.map(o=>gn(o,r.loggerPrintWidth))).join(`\n`)),yn(i,r.loggerPrintWidth)};function En(e,t,r,n){return[`Invalid ${ce.default.red(n.key(e))} value.`,`Expected ${ce.default.blue(r)},`,`but received ${t===at?ce.default.gray(\"nothing\"):ce.default.red(n.value(t))}.`].join(\" \")}function gn({text:e,list:t},r){let n=[];return e&&n.push(`- ${ce.default.blue(e)}`),t&&n.push([`- ${ce.default.blue(t.title)}:`].concat(t.values.map(u=>gn(u,r-hn.length).replace(/^|\\n/g,`$&${hn}`))).join(`\n`)),yn(n,r)}function yn(e,t){if(e.length===1)return e[0];let[r,n]=e,[u,i]=e.map(o=>o.split(`\n`,1)[0].length);return u>t&&u>i?n:r}var Gt=Me(st(),1);var Vt=[],An=[];function zt(e,t){if(e===t)return 0;let r=e;e.length>t.length&&(e=t,t=r);let n=e.length,u=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-u);)n--,u--;let i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,u-=i,n===0)return u;let o,s,a,D,l=0,p=0;for(;l<n;)An[l]=e.charCodeAt(i+l),Vt[l]=++l;for(;p<u;)for(o=t.charCodeAt(i+p),a=p++,s=p,l=0;l<n;l++)D=o===An[l]?a:a+1,a=Vt[l],s=Vt[l]=a>s?D>s?s+1:D:D>a?a+1:D;return s}var Dt=(e,t,{descriptor:r,logger:n,schemas:u})=>{let i=[`Ignored unknown option ${Gt.default.yellow(r.pair({key:e,value:t}))}.`],o=Object.keys(u).sort().find(s=>zt(e,s)<3);o&&i.push(`Did you mean ${Gt.default.blue(r.key(o))}?`),n.warn(i.join(\" \"))};var pi=[\"default\",\"expected\",\"validate\",\"deprecated\",\"forward\",\"redirect\",\"overlap\",\"preprocess\",\"postprocess\"];function Fi(e,t){let r=new e(t),n=Object.create(r);for(let u of pi)u in t&&(n[u]=mi(t[u],r,x.prototype[u].length));return n}var x=class{static create(t){return Fi(this,t)}constructor(t){this.name=t.name}default(t){}expected(t){return\"nothing\"}validate(t,r){return!1}deprecated(t,r){return!1}forward(t,r){}redirect(t,r){}overlap(t,r,n){return t}preprocess(t,r){return t}postprocess(t,r){return Ae}};function mi(e,t,r){return typeof e==\"function\"?(...n)=>e(...n.slice(0,r-1),t,...n.slice(r-1)):()=>e}var lt=class extends x{constructor(t){super(t),this._sourceName=t.sourceName}expected(t){return t.schemas[this._sourceName].expected(t)}validate(t,r){return r.schemas[this._sourceName].validate(t,r)}redirect(t,r){return this._sourceName}};var ct=class extends x{expected(){return\"anything\"}validate(){return!0}};var ft=class extends x{constructor({valueSchema:t,name:r=t.name,...n}){super({...n,name:r}),this._valueSchema=t}expected(t){let{text:r,list:n}=t.normalizeExpectedResult(this._valueSchema.expected(t));return{text:r&&`an array of ${r}`,list:n&&{title:\"an array of the following values\",values:[{list:n}]}}}validate(t,r){if(!Array.isArray(t))return!1;let n=[];for(let u of t){let i=r.normalizeValidateResult(this._valueSchema.validate(u,r),u);i!==!0&&n.push(i.value)}return n.length===0?!0:{value:n}}deprecated(t,r){let n=[];for(let u of t){let i=r.normalizeDeprecatedResult(this._valueSchema.deprecated(u,r),u);i!==!1&&n.push(...i.map(({value:o})=>({value:[o]})))}return n}forward(t,r){let n=[];for(let u of t){let i=r.normalizeForwardResult(this._valueSchema.forward(u,r),u);n.push(...i.map(vn))}return n}redirect(t,r){let n=[],u=[];for(let i of t){let o=r.normalizeRedirectResult(this._valueSchema.redirect(i,r),i);\"remain\"in o&&n.push(o.remain),u.push(...o.redirect.map(vn))}return n.length===0?{redirect:u}:{redirect:u,remain:n}}overlap(t,r){return t.concat(r)}};function vn({from:e,to:t}){return{from:[e],to:t}}var dt=class extends x{expected(){return\"true or false\"}validate(t){return typeof t==\"boolean\"}};function wn(e,t){let r=Object.create(null);for(let n of e){let u=n[t];if(r[u])throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r[u]=n}return r}function _n(e,t){let r=new Map;for(let n of e){let u=n[t];if(r.has(u))throw new Error(`Duplicate ${t} ${JSON.stringify(u)}`);r.set(u,n)}return r}function xn(){let e=Object.create(null);return t=>{let r=JSON.stringify(t);return e[r]?!0:(e[r]=!0,!1)}}function bn(e,t){let r=[],n=[];for(let u of e)t(u)?r.push(u):n.push(u);return[r,n]}function Nn(e){return e===Math.floor(e)}function On(e,t){if(e===t)return 0;let r=typeof e,n=typeof t,u=[\"undefined\",\"object\",\"boolean\",\"number\",\"string\"];return r!==n?u.indexOf(r)-u.indexOf(n):r!==\"string\"?Number(e)-Number(t):e.localeCompare(t)}function Sn(e){return(...t)=>{let r=e(...t);return typeof r==\"string\"?new Error(r):r}}function Kt(e){return e===void 0?{}:e}function Jt(e){if(typeof e==\"string\")return{text:e};let{text:t,list:r}=e;return hi((t||r)!==void 0,\"Unexpected `expected` result, there should be at least one field.\"),r?{text:t,list:{title:r.title,values:r.values.map(Jt)}}:{text:t}}function qt(e,t){return e===!0?!0:e===!1?{value:t}:e}function Xt(e,t,r=!1){return e===!1?!1:e===!0?r?!0:[{value:t}]:\"value\"in e?[e]:e.length===0?!1:e}function Bn(e,t){return typeof e==\"string\"||\"key\"in e?{from:t,to:e}:\"from\"in e?{from:e.from,to:e.to}:{from:t,to:e.to}}function pt(e,t){return e===void 0?[]:Array.isArray(e)?e.map(r=>Bn(r,t)):[Bn(e,t)]}function Qt(e,t){let r=pt(typeof e==\"object\"&&\"redirect\"in e?e.redirect:e,t);return r.length===0?{remain:t,redirect:r}:typeof e==\"object\"&&\"remain\"in e?{remain:e.remain,redirect:r}:{redirect:r}}function hi(e,t){if(!e)throw new Error(t)}var Ft=class extends x{constructor(t){super(t),this._choices=_n(t.choices.map(r=>r&&typeof r==\"object\"?r:{value:r}),\"value\")}expected({descriptor:t}){let r=Array.from(this._choices.keys()).map(o=>this._choices.get(o)).filter(({hidden:o})=>!o).map(o=>o.value).sort(On).map(t.value),n=r.slice(0,-2),u=r.slice(-2);return{text:n.concat(u.join(\" or \")).join(\", \"),list:{title:\"one of the following values\",values:r}}}validate(t){return this._choices.has(t)}deprecated(t){let r=this._choices.get(t);return r&&r.deprecated?{value:t}:!1}forward(t){let r=this._choices.get(t);return r?r.forward:void 0}redirect(t){let r=this._choices.get(t);return r?r.redirect:void 0}};var mt=class extends x{expected(){return\"a number\"}validate(t,r){return typeof t==\"number\"}};var ht=class extends mt{expected(){return\"an integer\"}validate(t,r){return r.normalizeValidateResult(super.validate(t,r),t)===!0&&Nn(t)}};var je=class extends x{expected(){return\"a string\"}validate(t){return typeof t==\"string\"}};var Tn=oe,kn=Dt,Ln=Cn,Pn=mn;var Et=class{constructor(t,r){let{logger:n=console,loggerPrintWidth:u=80,descriptor:i=Tn,unknown:o=kn,invalid:s=Ln,deprecated:a=Pn,missing:D=()=>!1,required:l=()=>!1,preprocess:p=d=>d,postprocess:f=()=>Ae}=r||{};this._utils={descriptor:i,logger:n||{warn:()=>{}},loggerPrintWidth:u,schemas:wn(t,\"name\"),normalizeDefaultResult:Kt,normalizeExpectedResult:Jt,normalizeDeprecatedResult:Xt,normalizeForwardResult:pt,normalizeRedirectResult:Qt,normalizeValidateResult:qt},this._unknownHandler=o,this._invalidHandler=Sn(s),this._deprecatedHandler=a,this._identifyMissing=(d,c)=>!(d in c)||D(d,c),this._identifyRequired=l,this._preprocess=p,this._postprocess=f,this.cleanHistory()}cleanHistory(){this._hasDeprecationWarned=xn()}normalize(t){let r={},u=[this._preprocess(t,this._utils)],i=()=>{for(;u.length!==0;){let o=u.shift(),s=this._applyNormalization(o,r);u.push(...s)}};i();for(let o of Object.keys(this._utils.schemas)){let s=this._utils.schemas[o];if(!(o in r)){let a=Kt(s.default(this._utils));\"value\"in a&&u.push({[o]:a.value})}}i();for(let o of Object.keys(this._utils.schemas)){if(!(o in r))continue;let s=this._utils.schemas[o],a=r[o],D=s.postprocess(a,this._utils);D!==Ae&&(this._applyValidation(D,o,s),r[o]=D)}return this._applyPostprocess(r),this._applyRequiredCheck(r),r}_applyNormalization(t,r){let n=[],{knownKeys:u,unknownKeys:i}=this._partitionOptionKeys(t);for(let o of u){let s=this._utils.schemas[o],a=s.preprocess(t[o],this._utils);this._applyValidation(a,o,s);let D=({from:d,to:c})=>{n.push(typeof c==\"string\"?{[c]:d}:{[c.key]:c.value})},l=({value:d,redirectTo:c})=>{let F=Xt(s.deprecated(d,this._utils),a,!0);if(F!==!1)if(F===!0)this._hasDeprecationWarned(o)||this._utils.logger.warn(this._deprecatedHandler(o,c,this._utils));else for(let{value:m}of F){let h={key:o,value:m};if(!this._hasDeprecationWarned(h)){let C=typeof c==\"string\"?{key:c,value:m}:c;this._utils.logger.warn(this._deprecatedHandler(h,C,this._utils))}}};pt(s.forward(a,this._utils),a).forEach(D);let f=Qt(s.redirect(a,this._utils),a);if(f.redirect.forEach(D),\"remain\"in f){let d=f.remain;r[o]=o in r?s.overlap(r[o],d,this._utils):d,l({value:d})}for(let{from:d,to:c}of f.redirect)l({value:d,redirectTo:c})}for(let o of i){let s=t[o];this._applyUnknownHandler(o,s,r,(a,D)=>{n.push({[a]:D})})}return n}_applyRequiredCheck(t){for(let r of Object.keys(this._utils.schemas))if(this._identifyMissing(r,t)&&this._identifyRequired(r))throw this._invalidHandler(r,at,this._utils)}_partitionOptionKeys(t){let[r,n]=bn(Object.keys(t).filter(u=>!this._identifyMissing(u,t)),u=>u in this._utils.schemas);return{knownKeys:r,unknownKeys:n}}_applyValidation(t,r,n){let u=qt(n.validate(t,this._utils),t);if(u!==!0)throw this._invalidHandler(r,u.value,this._utils)}_applyUnknownHandler(t,r,n,u){let i=this._unknownHandler(t,r,this._utils);if(i)for(let o of Object.keys(i)){if(this._identifyMissing(o,i))continue;let s=i[o];o in this._utils.schemas?u(o,s):n[o]=s}}_applyPostprocess(t){let r=this._postprocess(t,this._utils);if(r!==Ae){if(r.delete)for(let n of r.delete)delete t[n];if(r.override){let{knownKeys:n,unknownKeys:u}=this._partitionOptionKeys(r.override);for(let i of n){let o=r.override[i];this._applyValidation(o,i,this._utils.schemas[i]),t[i]=o}for(let i of u){let o=r.override[i];this._applyUnknownHandler(i,o,t,(s,a)=>{let D=this._utils.schemas[s];this._applyValidation(a,s,D),t[s]=a})}}}}};var Zt;function Ci(e,t,{logger:r=!1,isCLI:n=!1,passThrough:u=!1,FlagSchema:i,descriptor:o}={}){if(n){if(!i)throw new Error(\"'FlagSchema' option is required.\");if(!o)throw new Error(\"'descriptor' option is required.\")}else o=oe;let s=u?Array.isArray(u)?(f,d)=>u.includes(f)?{[f]:d}:void 0:(f,d)=>({[f]:d}):(f,d,c)=>{let{_:F,...m}=c.schemas;return Dt(f,d,{...c,schemas:m})},a=gi(t,{isCLI:n,FlagSchema:i}),D=new Et(a,{logger:r,unknown:s,descriptor:o}),l=r!==!1;l&&Zt&&(D._hasDeprecationWarned=Zt);let p=D.normalize(e);return l&&(Zt=D._hasDeprecationWarned),p}function gi(e,{isCLI:t,FlagSchema:r}){let n=[];t&&n.push(ct.create({name:\"_\"}));for(let u of e)n.push(yi(u,{isCLI:t,optionInfos:e,FlagSchema:r})),u.alias&&t&&n.push(lt.create({name:u.alias,sourceName:u.name}));return n}function yi(e,{isCLI:t,optionInfos:r,FlagSchema:n}){let{name:u}=e,i={name:u},o,s={};switch(e.type){case\"int\":o=ht,t&&(i.preprocess=Number);break;case\"string\":o=je;break;case\"choice\":o=Ft,i.choices=e.choices.map(a=>a!=null&&a.redirect?{...a,redirect:{to:{key:e.name,value:a.redirect}}}:a);break;case\"boolean\":o=dt;break;case\"flag\":o=n,i.flags=r.flatMap(a=>[a.alias,a.description&&a.name,a.oppositeDescription&&`no-${a.name}`].filter(Boolean));break;case\"path\":o=je;break;default:throw new Error(`Unexpected type ${e.type}`)}if(e.exception?i.validate=(a,D,l)=>e.exception(a)||D.validate(a,l):i.validate=(a,D,l)=>a===void 0||D.validate(a,l),e.redirect&&(s.redirect=a=>a?{to:typeof e.redirect==\"string\"?e.redirect:{key:e.redirect.option,value:e.redirect.value}}:void 0),e.deprecated&&(s.deprecated=!0),t&&!e.array){let a=i.preprocess||(D=>D);i.preprocess=(D,l,p)=>l.preprocess(a(Array.isArray(D)?y(!1,D,-1):D),p)}return e.array?ft.create({...t?{preprocess:a=>Array.isArray(a)?a:[a]}:{},...s,valueSchema:o.create(i)}):o.create({...i,...s})}var In=Ci;var Ai=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return u}}},er=Ai;function tr(e,t){if(!t)throw new Error(\"parserName is required.\");let r=er(!1,e,u=>u.parsers&&Object.prototype.hasOwnProperty.call(u.parsers,t));if(r)return r;let n=`Couldn't resolve parser \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Rn(e,t){if(!t)throw new Error(\"astFormat is required.\");let r=er(!1,e,u=>u.printers&&Object.prototype.hasOwnProperty.call(u.printers,t));if(r)return r;let n=`Couldn't find plugin for AST format \"${t}\".`;throw n+=\" Plugins must be explicitly added to the standalone bundle.\",new Re(n)}function Ct({plugins:e,parser:t}){let r=tr(e,t);return rr(r,t)}function rr(e,t){let r=e.parsers[t];return typeof r==\"function\"?r():r}function Yn(e,t){let r=e.printers[t];return typeof r==\"function\"?r():r}var jn={astFormat:\"estree\",printer:{},originalText:void 0,locStart:null,locEnd:null};async function vi(e,t={}){var p;let r={...e};if(!r.parser)if(r.filepath){if(r.parser=dn(r,{physicalFile:r.filepath}),!r.parser)throw new Ye(`No parser could be inferred for file \"${r.filepath}\".`)}else throw new Ye(\"No parser and no file path given, couldn't infer a parser.\");let n=ot({plugins:e.plugins,showDeprecated:!0}).options,u={...jn,...Object.fromEntries(n.filter(f=>f.default!==void 0).map(f=>[f.name,f.default]))},i=tr(r.plugins,r.parser),o=await rr(i,r.parser);r.astFormat=o.astFormat,r.locEnd=o.locEnd,r.locStart=o.locStart;let s=(p=i.printers)!=null&&p[o.astFormat]?i:Rn(r.plugins,o.astFormat),a=await Yn(s,o.astFormat);r.printer=a;let D=s.defaultOptions?Object.fromEntries(Object.entries(s.defaultOptions).filter(([,f])=>f!==void 0)):{},l={...u,...D};for(let[f,d]of Object.entries(l))(r[f]===null||r[f]===void 0)&&(r[f]=d);return r.parser===\"json\"&&(r.trailingComma=\"none\"),In(r,n,{passThrough:Object.keys(jn),...t})}var se=vi;var $n=Me(Wn(),1);async function xi(e,t){let r=await Ct(t),n=r.preprocess?r.preprocess(e,t):e;t.originalText=n;let u;try{u=await r.parse(n,t,t)}catch(i){bi(i,e)}return{text:n,ast:u}}function bi(e,t){let{loc:r}=e;if(r){let n=(0,$n.codeFrameColumns)(t,r,{highlightCode:!0});throw e.message+=`\n`+n,e.codeFrame=n,e}throw e}var fe=xi;async function Mn(e,t,r,n,u){let{embeddedLanguageFormatting:i,printer:{embed:o,hasPrettierIgnore:s=()=>!1,getVisitorKeys:a}}=r;if(!o||i!==\"auto\")return;if(o.length>2)throw new Error(\"printer.embed has too many parameters. The API changed in Prettier v3. Please update your plugin. See https://prettier.io/docs/en/plugins.html#optional-embed\");let D=q(o.getVisitorKeys??a),l=[];d();let p=e.stack;for(let{print:c,node:F,pathStack:m}of l)try{e.stack=m;let h=await c(f,t,e,r);h&&u.set(F,h)}catch(h){if(globalThis.PRETTIER_DEBUG)throw h}e.stack=p;function f(c,F){return Ni(c,F,r,n)}function d(){let{node:c}=e;if(c===null||typeof c!=\"object\"||s(e))return;for(let m of D(c))Array.isArray(c[m])?e.each(d,m):e.call(d,m);let F=o(e,r);if(F){if(typeof F==\"function\"){l.push({print:F,node:c,pathStack:[...e.stack]});return}u.set(c,F)}}}async function Ni(e,t,r,n){let u=await se({...r,...t,parentParser:r.parser,originalText:e},{passThrough:!0}),{ast:i}=await fe(e,u),o=await n(i,u);return et(o)}function Oi(e,t){let{originalText:r,[Symbol.for(\"comments\")]:n,locStart:u,locEnd:i,[Symbol.for(\"printedComments\")]:o}=t,{node:s}=e,a=u(s),D=i(s);for(let l of n)u(l)>=a&&i(l)<=D&&o.add(l);return r.slice(a,D)}var Un=Oi;async function He(e,t){({ast:e}=await ur(e,t));let r=new Map,n=new Jr(e),u=ln(t),i=new Map;await Mn(n,s,t,He,i);let o=await Vn(n,t,s,void 0,i);if(Dn(t),t.nodeAfterCursor&&!t.nodeBeforeCursor)return[Z,o];if(t.nodeBeforeCursor&&!t.nodeAfterCursor)return[o,Z];return o;function s(D,l){return D===void 0||D===n?a(l):Array.isArray(D)?n.call(()=>a(l),...D):n.call(()=>a(l),D)}function a(D){u(n);let l=n.node;if(l==null)return\"\";let p=l&&typeof l==\"object\"&&D===void 0;if(p&&r.has(l))return r.get(l);let f=Vn(n,t,s,D,i);return p&&r.set(l,f),f}}function Vn(e,t,r,n,u){var a;let{node:i}=e,{printer:o}=t,s;switch((a=o.hasPrettierIgnore)!=null&&a.call(o,e)?s=Un(e,t):u.has(i)?s=u.get(i):s=o.print(e,t,r,n),i){case t.cursorNode:s=me(s,D=>[Z,D,Z]);break;case t.nodeBeforeCursor:s=me(s,D=>[D,Z]);break;case t.nodeAfterCursor:s=me(s,D=>[Z,D]);break}return o.printComment&&(!o.willPrintOwnComments||!o.willPrintOwnComments(e,t))&&(s=an(e,s,t)),s}async function ur(e,t){let r=e.comments??[];t[Symbol.for(\"comments\")]=r,t[Symbol.for(\"tokens\")]=e.tokens??[],t[Symbol.for(\"printedComments\")]=new Set,un(e,t);let{printer:{preprocess:n}}=t;return e=n?await n(e,t):e,{ast:e,comments:r}}function Si(e,t){let{cursorOffset:r,locStart:n,locEnd:u}=t,i=q(t.printer.getVisitorKeys),o=d=>n(d)<=r&&u(d)>=r,s=e,a=[e];for(let d of Qr(e,{getVisitorKeys:i,filter:o}))a.push(d),s=d;if(Zr(s,{getVisitorKeys:i}))return{cursorNode:s};let D,l,p=-1,f=Number.POSITIVE_INFINITY;for(;a.length>0&&(D===void 0||l===void 0);){s=a.pop();let d=D!==void 0,c=l!==void 0;for(let F of ge(s,{getVisitorKeys:i})){if(!d){let m=u(F);m<=r&&m>p&&(D=F,p=m)}if(!c){let m=n(F);m>=r&&m<f&&(l=F,f=m)}}}return{nodeBeforeCursor:D,nodeAfterCursor:l}}var zn=Si;function Ti(e,t){let{printer:{massageAstNode:r,getVisitorKeys:n}}=t;if(!r)return e;let u=q(n),i=r.ignoredProperties??new Set;return o(e);function o(s,a){if(!(s!==null&&typeof s==\"object\"))return s;if(Array.isArray(s))return s.map(f=>o(f,a)).filter(Boolean);let D={},l=new Set(u(s));for(let f in s)!Object.prototype.hasOwnProperty.call(s,f)||i.has(f)||(l.has(f)?D[f]=o(s[f],s):D[f]=s[f]);let p=r(s,D,a);if(p!==null)return p??D}}var Gn=Ti;var ki=(e,t,r)=>{if(!(e&&t==null)){if(t.findLastIndex)return t.findLastIndex(r);for(let n=t.length-1;n>=0;n--){let u=t[n];if(r(u,n,t))return n}return-1}},Kn=ki;var Li=({parser:e})=>e===\"json\"||e===\"json5\"||e===\"jsonc\"||e===\"json-stringify\";function Pi(e,t){let r=[e.node,...e.parentNodes],n=new Set([t.node,...t.parentNodes]);return r.find(u=>Xn.has(u.type)&&n.has(u))}function Jn(e){let t=Kn(!1,e,r=>r.type!==\"Program\"&&r.type!==\"File\");return t===-1?e:e.slice(0,t+1)}function Ii(e,t,{locStart:r,locEnd:n}){let u=e.node,i=t.node;if(u===i)return{startNode:u,endNode:i};let o=r(e.node);for(let a of Jn(t.parentNodes))if(r(a)>=o)i=a;else break;let s=n(t.node);for(let a of Jn(e.parentNodes)){if(n(a)<=s)u=a;else break;if(u===i)break}return{startNode:u,endNode:i}}function ir(e,t,r,n,u=[],i){let{locStart:o,locEnd:s}=r,a=o(e),D=s(e);if(!(t>D||t<a||i===\"rangeEnd\"&&t===a||i===\"rangeStart\"&&t===D)){for(let l of it(e,r)){let p=ir(l,t,r,n,[e,...u],i);if(p)return p}if(!n||n(e,u[0]))return{node:e,parentNodes:u}}}function Ri(e,t){return t!==\"DeclareExportDeclaration\"&&e!==\"TypeParameterDeclaration\"&&(e===\"Directive\"||e===\"TypeAlias\"||e===\"TSExportAssignment\"||e.startsWith(\"Declare\")||e.startsWith(\"TSDeclare\")||e.endsWith(\"Statement\")||e.endsWith(\"Declaration\"))}var Xn=new Set([\"JsonRoot\",\"ObjectExpression\",\"ArrayExpression\",\"StringLiteral\",\"NumericLiteral\",\"BooleanLiteral\",\"NullLiteral\",\"UnaryExpression\",\"TemplateLiteral\"]),Yi=new Set([\"OperationDefinition\",\"FragmentDefinition\",\"VariableDefinition\",\"TypeExtensionDefinition\",\"ObjectTypeDefinition\",\"FieldDefinition\",\"DirectiveDefinition\",\"EnumTypeDefinition\",\"EnumValueDefinition\",\"InputValueDefinition\",\"InputObjectTypeDefinition\",\"SchemaDefinition\",\"OperationTypeDefinition\",\"InterfaceTypeDefinition\",\"UnionTypeDefinition\",\"ScalarTypeDefinition\"]);function qn(e,t,r){if(!t)return!1;switch(e.parser){case\"flow\":case\"babel\":case\"babel-flow\":case\"babel-ts\":case\"typescript\":case\"acorn\":case\"espree\":case\"meriyah\":case\"__babel_estree\":return Ri(t.type,r==null?void 0:r.type);case\"json\":case\"json5\":case\"jsonc\":case\"json-stringify\":return Xn.has(t.type);case\"graphql\":return Yi.has(t.kind);case\"vue\":return t.tag!==\"root\"}return!1}function Qn(e,t,r){let{rangeStart:n,rangeEnd:u,locStart:i,locEnd:o}=t;Pe.ok(u>n);let s=e.slice(n,u).search(/\\S/u),a=s===-1;if(!a)for(n+=s;u>n&&!/\\S/u.test(e[u-1]);--u);let D=ir(r,n,t,(d,c)=>qn(t,d,c),[],\"rangeStart\"),l=a?D:ir(r,u,t,d=>qn(t,d),[],\"rangeEnd\");if(!D||!l)return{rangeStart:0,rangeEnd:0};let p,f;if(Li(t)){let d=Pi(D,l);p=d,f=d}else({startNode:p,endNode:f}=Ii(D,l,t));return{rangeStart:Math.min(i(p),i(f)),rangeEnd:Math.max(o(p),o(f))}}var ru=\"\\uFEFF\",Zn=Symbol(\"cursor\");async function nu(e,t,r=0){if(!e||e.trim().length===0)return{formatted:\"\",cursorOffset:-1,comments:[]};let{ast:n,text:u}=await fe(e,t);t.cursorOffset>=0&&(t={...t,...zn(n,t)});let i=await He(n,t,r);r>0&&(i=Qe([K,i],r,t.tabWidth));let o=Ee(i,t);if(r>0){let a=o.formatted.trim();o.cursorNodeStart!==void 0&&(o.cursorNodeStart-=o.formatted.indexOf(a),o.cursorNodeStart<0&&(o.cursorNodeStart=0,o.cursorNodeText=o.cursorNodeText.trimStart()),o.cursorNodeStart+o.cursorNodeText.length>a.length&&(o.cursorNodeText=o.cursorNodeText.trimEnd())),o.formatted=a+xe(t.endOfLine)}let s=t[Symbol.for(\"comments\")];if(t.cursorOffset>=0){let a,D,l,p;if((t.cursorNode||t.nodeBeforeCursor||t.nodeAfterCursor)&&o.cursorNodeText)if(l=o.cursorNodeStart,p=o.cursorNodeText,t.cursorNode)a=t.locStart(t.cursorNode),D=u.slice(a,t.locEnd(t.cursorNode));else{if(!t.nodeBeforeCursor&&!t.nodeAfterCursor)throw new Error(\"Cursor location must contain at least one of cursorNode, nodeBeforeCursor, nodeAfterCursor\");a=t.nodeBeforeCursor?t.locEnd(t.nodeBeforeCursor):0;let h=t.nodeAfterCursor?t.locStart(t.nodeAfterCursor):u.length;D=u.slice(a,h)}else a=0,D=u,l=0,p=o.formatted;let f=t.cursorOffset-a;if(D===p)return{formatted:o.formatted,cursorOffset:l+f,comments:s};let d=D.split(\"\");d.splice(f,0,Zn);let c=p.split(\"\"),F=gr(d,c),m=l;for(let h of F)if(h.removed){if(h.value.includes(Zn))break}else m+=h.count;return{formatted:o.formatted,cursorOffset:m,comments:s}}return{formatted:o.formatted,cursorOffset:-1,comments:s}}async function ji(e,t){let{ast:r,text:n}=await fe(e,t),{rangeStart:u,rangeEnd:i}=Qn(n,t,r),o=n.slice(u,i),s=Math.min(u,n.lastIndexOf(`\n`,u)+1),a=n.slice(s,u).match(/^\\s*/u)[0],D=Ce(a,t.tabWidth),l=await nu(o,{...t,rangeStart:0,rangeEnd:Number.POSITIVE_INFINITY,cursorOffset:t.cursorOffset>u&&t.cursorOffset<=i?t.cursorOffset-u:-1,endOfLine:\"lf\"},D),p=l.formatted.trimEnd(),{cursorOffset:f}=t;f>i?f+=p.length-o.length:l.cursorOffset>=0&&(f=l.cursorOffset+u);let d=n.slice(0,u)+p+n.slice(i);if(t.endOfLine!==\"lf\"){let c=xe(t.endOfLine);f>=0&&c===`\\r\n`&&(f+=Ot(d.slice(0,f),`\n`)),d=ne(!1,d,`\n`,c)}return{formatted:d,cursorOffset:f,comments:l.comments}}function or(e,t,r){return typeof t!=\"number\"||Number.isNaN(t)||t<0||t>e.length?r:t}function eu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u}=t;return r=or(e,r,-1),n=or(e,n,0),u=or(e,u,e.length),{...t,cursorOffset:r,rangeStart:n,rangeEnd:u}}function uu(e,t){let{cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i}=eu(e,t),o=e.charAt(0)===ru;if(o&&(e=e.slice(1),r--,n--,u--),i===\"auto\"&&(i=yr(e)),e.includes(\"\\r\")){let s=a=>Ot(e.slice(0,Math.max(a,0)),`\\r\n`);r-=s(r),n-=s(n),u-=s(u),e=Ar(e)}return{hasBOM:o,text:e,options:eu(e,{...t,cursorOffset:r,rangeStart:n,rangeEnd:u,endOfLine:i})}}async function tu(e,t){let r=await Ct(t);return!r.hasPragma||r.hasPragma(e)}async function sr(e,t){let{hasBOM:r,text:n,options:u}=uu(e,await se(t));if(u.rangeStart>=u.rangeEnd&&n!==\"\"||u.requirePragma&&!await tu(n,u))return{formatted:e,cursorOffset:t.cursorOffset,comments:[]};let i;return u.rangeStart>0||u.rangeEnd<n.length?i=await ji(n,u):(!u.requirePragma&&u.insertPragma&&u.printer.insertPragma&&!await tu(n,u)&&(n=u.printer.insertPragma(n)),i=await nu(n,u)),r&&(i.formatted=ru+i.formatted,i.cursorOffset>=0&&i.cursorOffset++),i}async function iu(e,t,r){let{text:n,options:u}=uu(e,await se(t)),i=await fe(n,u);return r&&(r.preprocessForPrint&&(i.ast=await ur(i.ast,u)),r.massage&&(i.ast=Gn(i.ast,u))),i}async function ou(e,t){t=await se(t);let r=await He(e,t);return Ee(r,t)}async function su(e,t){let r=Ir(e),{formatted:n}=await sr(r,{...t,parser:\"__js_expression\"});return n}async function au(e,t){t=await se(t);let{ast:r}=await fe(e,t);return He(r,t)}async function Du(e,t){return Ee(e,await se(t))}var ar={};Bt(ar,{builders:()=>Wi,printer:()=>$i,utils:()=>Mi});var Wi={join:Se,line:qe,softline:Lr,hardline:K,literalline:Xe,group:Tt,conditionalGroup:br,fill:Nr,lineSuffix:Ne,lineSuffixBoundary:Tr,cursor:Z,breakParent:Fe,ifBreak:Or,trim:kr,indent:le,indentIfBreak:Sr,align:De,addAlignmentToDoc:Qe,markAsRoot:_r,dedentToRoot:wr,dedent:xr,hardlineWithoutBreakParent:Oe,literallineWithoutBreakParent:kt,label:Pr,concat:e=>e},$i={printDocToString:Ee},Mi={willBreak:Mr,traverseDoc:be,findInDoc:Ze,mapDoc:Le,removeLines:Vr,stripTrailingHardline:et,replaceEndOfLine:zr,canBreak:Gr};var lu=\"3.4.2\";var lr={};Bt(lr,{addDanglingComment:()=>re,addLeadingComment:()=>ue,addTrailingComment:()=>ie,getAlignmentSize:()=>Ce,getIndentSize:()=>cu,getMaxContinuousCount:()=>fu,getNextNonSpaceNonCommentCharacter:()=>du,getNextNonSpaceNonCommentCharacterIndex:()=>ro,getPreferredQuote:()=>Fu,getStringWidth:()=>Te,hasNewline:()=>$,hasNewlineInRange:()=>mu,hasSpaces:()=>hu,isNextLineEmpty:()=>oo,isNextLineEmptyAfterIndex:()=>gt,isPreviousLineEmpty:()=>uo,makeString:()=>Eu,skip:()=>ye,skipEverythingButNewLine:()=>ut,skipInlineComment:()=>ve,skipNewline:()=>W,skipSpaces:()=>S,skipToLineEnd:()=>nt,skipTrailingComment:()=>Be,skipWhitespace:()=>en});function Ui(e,t){if(t===!1)return!1;if(e.charAt(t)===\"/\"&&e.charAt(t+1)===\"*\"){for(let r=t+2;r<e.length;++r)if(e.charAt(r)===\"*\"&&e.charAt(r+1)===\"/\")return r+2}return t}var ve=Ui;function Vi(e,t){return t===!1?!1:e.charAt(t)===\"/\"&&e.charAt(t+1)===\"/\"?ut(e,t):t}var Be=Vi;function zi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=S(e,n),n=ve(e,n),n=Be(e,n),n=W(e,n);return n}var We=zi;function Gi(e,t){let r=null,n=t;for(;n!==r;)r=n,n=nt(e,n),n=ve(e,n),n=S(e,n);return n=Be(e,n),n=W(e,n),n!==!1&&$(e,n)}var gt=Gi;function Ki(e,t){let r=e.lastIndexOf(`\n`);return r===-1?0:Ce(e.slice(r+1).match(/^[\\t ]*/u)[0],t)}var cu=Ki;function Dr(e){if(typeof e!=\"string\")throw new TypeError(\"Expected a string\");return e.replace(/[|\\\\{}()[\\]^$+*?.]/g,\"\\\\$&\").replace(/-/g,\"\\\\x2d\")}function Ji(e,t){let r=e.match(new RegExp(`(${Dr(t)})+`,\"gu\"));return r===null?0:r.reduce((n,u)=>Math.max(n,u.length/t.length),0)}var fu=Ji;function qi(e,t){let r=We(e,t);return r===!1?\"\":e.charAt(r)}var du=qi;var yt=\"'\",pu='\"';function Xi(e,t){let r=t===!0||t===yt?yt:pu,n=r===yt?pu:yt,u=0,i=0;for(let o of e)o===r?u++:o===n&&i++;return u>i?n:r}var Fu=Xi;function Qi(e,t,r){for(let n=t;n<r;++n)if(e.charAt(n)===`\n`)return!0;return!1}var mu=Qi;function Zi(e,t,r={}){return S(e,r.backwards?t-1:t,r)!==t}var hu=Zi;function eo(e,t,r){let n=t==='\"'?\"'\":'\"',i=ne(!1,e,/\\\\(.)|([\"'])/gsu,(o,s,a)=>s===n?s:a===t?\"\\\\\"+a:a||(r&&/^[^\\n\\r\"'0-7\\\\bfnrt-vx\\u2028\\u2029]$/u.test(s)?s:\"\\\\\"+s));return t+i+t}var Eu=eo;function to(e,t,r){return We(e,r(t))}function ro(e,t){return arguments.length===2||typeof t==\"number\"?We(e,t):to(...arguments)}function no(e,t,r){return Ie(e,r(t))}function uo(e,t){return arguments.length===2||typeof t==\"number\"?Ie(e,t):no(...arguments)}function io(e,t,r){return gt(e,r(t))}function oo(e,t){return arguments.length===2||typeof t==\"number\"?gt(e,t):io(...arguments)}function de(e,t=1){return async(...r)=>{let n=r[t]??{},u=n.plugins??[];return r[t]={...n,plugins:Array.isArray(u)?u:Object.values(u)},e(...r)}}var Cu=de(sr);async function gu(e,t){let{formatted:r}=await Cu(e,{...t,cursorOffset:-1});return r}async function so(e,t){return await gu(e,t)===e}var ao=de(ot,0),Do={parse:de(iu),formatAST:de(ou),formatDoc:de(su),printToDoc:de(au),printDocToString:de(Du)};var lc=cr;export{Do as __debug,so as check,lc as default,ar as doc,gu as format,Cu as formatWithCursor,ao as getSupportInfo,lr as util,lu as version};\n","import { getSourceLocation } from \"../core/diagnostics.js\";\nimport { parse as typespecParse, visitChildren } from \"../core/parser.js\";\nimport { SyntaxKind } from \"../core/types.js\";\nimport { mutate } from \"../utils/misc.js\";\nexport function parse(text, options) {\n const result = typespecParse(text, { comments: true, docs: true });\n flattenNamespaces(result);\n const errors = result.parseDiagnostics.filter((x) => x.severity === \"error\");\n if (errors.length > 0 && !result.printable) {\n throw new PrettierParserError(errors[0]);\n }\n // Remove doc comments as those are handled directly.\n mutate(result).comments = result.comments.filter((x) => !(x.kind === SyntaxKind.BlockComment && x.parsedAsDocs));\n return result;\n}\n/**\n * We are patching the syntax tree to flatten the namespace nodes that are created from namespace Foo.Bar; which have the same pos, end\n * This causes prettier to not know where comments belong.\n * https://github.com/microsoft/typespec/pull/2061\n */\nfunction flattenNamespaces(base) {\n visitChildren(base, (node) => {\n if (node.kind === SyntaxKind.NamespaceStatement) {\n let current = node;\n const ids = [node.id];\n while (current.statements && \"kind\" in current.statements) {\n current = current.statements;\n ids.push(current.id);\n }\n Object.assign(node, current, {\n ids,\n });\n flattenNamespaces(current);\n }\n });\n}\nexport class PrettierParserError extends Error {\n error;\n loc;\n constructor(error) {\n super(error.message);\n this.error = error;\n const location = getSourceLocation(error.target);\n this.loc = {\n start: location?.pos ?? 0,\n end: location?.end ?? 0,\n };\n }\n}\n//# sourceMappingURL=parser.js.map","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// src/document/constants.js\nvar DOC_TYPE_STRING = \"string\";\nvar DOC_TYPE_ARRAY = \"array\";\nvar DOC_TYPE_CURSOR = \"cursor\";\nvar DOC_TYPE_INDENT = \"indent\";\nvar DOC_TYPE_ALIGN = \"align\";\nvar DOC_TYPE_TRIM = \"trim\";\nvar DOC_TYPE_GROUP = \"group\";\nvar DOC_TYPE_FILL = \"fill\";\nvar DOC_TYPE_IF_BREAK = \"if-break\";\nvar DOC_TYPE_INDENT_IF_BREAK = \"indent-if-break\";\nvar DOC_TYPE_LINE_SUFFIX = \"line-suffix\";\nvar DOC_TYPE_LINE_SUFFIX_BOUNDARY = \"line-suffix-boundary\";\nvar DOC_TYPE_LINE = \"line\";\nvar DOC_TYPE_LABEL = \"label\";\nvar DOC_TYPE_BREAK_PARENT = \"break-parent\";\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// src/document/utils/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/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/utils/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 == null ? void 0 : 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/utils/assert-doc.js\nvar noop = () => {\n};\nvar assertDoc = true ? noop : function(doc) {\n traverse_doc_default(doc, (doc2) => {\n if (checked.has(doc2)) {\n return false;\n }\n if (typeof doc2 !== \"string\") {\n checked.add(doc2);\n }\n });\n};\nvar assertDocArray = true ? noop : 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\n// src/document/builders.js\nfunction indent(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_INDENT, contents };\n}\nfunction align(widthOrString, contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_ALIGN, contents, n: widthOrString };\n}\nfunction group(contents, opts = {}) {\n assertDoc(contents);\n assertDocArray(\n opts.expandedStates,\n /* optional */\n true\n );\n return {\n type: DOC_TYPE_GROUP,\n id: opts.id,\n contents,\n break: Boolean(opts.shouldBreak),\n expandedStates: opts.expandedStates\n };\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 conditionalGroup(states, opts) {\n return group(states[0], { ...opts, expandedStates: states });\n}\nfunction fill(parts) {\n assertDocArray(parts);\n return { type: DOC_TYPE_FILL, parts };\n}\nfunction ifBreak(breakContents, flatContents = \"\", opts = {}) {\n assertDoc(breakContents);\n if (flatContents !== \"\") {\n assertDoc(flatContents);\n }\n return {\n type: DOC_TYPE_IF_BREAK,\n breakContents,\n flatContents,\n groupId: opts.groupId\n };\n}\nfunction indentIfBreak(contents, opts) {\n assertDoc(contents);\n return {\n type: DOC_TYPE_INDENT_IF_BREAK,\n contents,\n groupId: opts.groupId,\n negate: opts.negate\n };\n}\nfunction lineSuffix(contents) {\n assertDoc(contents);\n return { type: DOC_TYPE_LINE_SUFFIX, contents };\n}\nvar lineSuffixBoundary = { type: DOC_TYPE_LINE_SUFFIX_BOUNDARY };\nvar breakParent = { type: DOC_TYPE_BREAK_PARENT };\nvar trim = { type: DOC_TYPE_TRIM };\nvar hardlineWithoutBreakParent = { type: DOC_TYPE_LINE, hard: true };\nvar literallineWithoutBreakParent = {\n type: DOC_TYPE_LINE,\n hard: true,\n literal: true\n};\nvar line = { type: DOC_TYPE_LINE };\nvar softline = { type: DOC_TYPE_LINE, soft: true };\nvar hardline = [hardlineWithoutBreakParent, breakParent];\nvar literalline = [literallineWithoutBreakParent, breakParent];\nvar cursor = { type: DOC_TYPE_CURSOR };\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}\nfunction addAlignmentToDoc(doc, size, tabWidth) {\n assertDoc(doc);\n let aligned = doc;\n if (size > 0) {\n for (let i = 0; i < Math.floor(size / tabWidth); ++i) {\n aligned = indent(aligned);\n }\n aligned = align(size % tabWidth, aligned);\n aligned = align(Number.NEGATIVE_INFINITY, aligned);\n }\n return aligned;\n}\nfunction label(label2, contents) {\n assertDoc(contents);\n return label2 ? { type: DOC_TYPE_LABEL, label: label2, contents } : contents;\n}\n\n// scripts/build/shims/at.js\nvar at = (isOptionalObject, object, index) => {\n if (isOptionalObject && (object === void 0 || object === null)) {\n return;\n }\n if (Array.isArray(object) || typeof object === \"string\") {\n return object[index < 0 ? object.length + index : index];\n }\n return object.at(index);\n};\nvar at_default = at;\n\n// scripts/build/shims/string-replace-all.js\nvar stringReplaceAll = (isOptionalObject, original, pattern, replacement) => {\n if (isOptionalObject && (original === void 0 || original === null)) {\n return;\n }\n if (original.replaceAll) {\n return original.replaceAll(pattern, replacement);\n }\n if (pattern.global) {\n return original.replace(pattern, replacement);\n }\n return original.split(pattern).join(replacement);\n};\nvar string_replace_all_default = stringReplaceAll;\n\n// src/common/end-of-line.js\nfunction convertEndOfLineToChars(value) {\n switch (value) {\n case \"cr\":\n return \"\\r\";\n case \"crlf\":\n return \"\\r\\n\";\n default:\n return \"\\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\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\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-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\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\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\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 === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 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 <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;\n}\n\n// node_modules/get-east-asian-width/index.js\nvar _isNarrowWidth = (codePoint) => !(isFullWidth(codePoint) || isWide(codePoint));\n\n// src/utils/get-string-width.js\nvar notAsciiRegex = /[^\\x20-\\x7F]/u;\nfunction getStringWidth(text) {\n if (!text) {\n return 0;\n }\n if (!notAsciiRegex.test(text)) {\n return text.length;\n }\n text = text.replace(emoji_regex_default(), \" \");\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 width += _isNarrowWidth(codePoint) ? 1 : 2;\n }\n return width;\n}\nvar get_string_width_default = getStringWidth;\n\n// src/document/utils.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({ ...doc2, parts: doc2.parts.map(rec) });\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 { expandedStates, contents } = doc2;\n if (expandedStates) {\n expandedStates = expandedStates.map(rec);\n contents = expandedStates[0];\n } else {\n contents = rec(contents);\n }\n return cb({ ...doc2, contents, expandedStates });\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({ ...doc2, contents: rec(doc2.contents) });\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 = at_default(\n /* isOptionalObject */\n false,\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 && at_default(\n /* isOptionalObject */\n false,\n parts,\n -2\n ).type === DOC_TYPE_LINE && at_default(\n /* isOptionalObject */\n false,\n parts,\n -1\n ).type === DOC_TYPE_BREAK_PARENT) {\n parts.length -= 2;\n }\n if (parts.length > 0) {\n const lastPart = stripTrailingHardlineFromDoc(at_default(\n /* isOptionalObject */\n false,\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 { ...doc, contents };\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 { ...doc, parts: stripTrailingHardlineFromParts(doc.parts) };\n case DOC_TYPE_ARRAY:\n return stripTrailingHardlineFromParts(doc);\n case DOC_TYPE_STRING:\n return doc.replace(/[\\n\\r]*$/u, \"\");\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 at_default(\n /* isOptionalObject */\n false,\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(\n doc,\n (currentDoc) => typeof currentDoc === \"string\" ? join(replacement, currentDoc.split(\"\\n\")) : currentDoc\n );\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/printer.js\nvar MODE_BREAK = Symbol(\"MODE_BREAK\");\nvar MODE_FLAT = Symbol(\"MODE_FLAT\");\nvar CURSOR_PLACEHOLDER = Symbol(\"cursor\");\nvar DOC_FILL_PRINTED_LENGTH = Symbol(\"DOC_FILL_PRINTED_LENGTH\");\nfunction rootIndent() {\n return { value: \"\", length: 0, queue: [] };\n}\nfunction makeIndent(ind, options) {\n return generateInd(ind, { type: \"indent\" }, options);\n}\nfunction makeAlign(indent2, widthOrDoc, options) {\n if (widthOrDoc === Number.NEGATIVE_INFINITY) {\n return indent2.root || rootIndent();\n }\n if (widthOrDoc < 0) {\n return generateInd(indent2, { type: \"dedent\" }, options);\n }\n if (!widthOrDoc) {\n return indent2;\n }\n if (widthOrDoc.type === \"root\") {\n return { ...indent2, root: indent2 };\n }\n const alignType = typeof widthOrDoc === \"string\" ? \"stringAlign\" : \"numberAlign\";\n return generateInd(indent2, { type: alignType, n: widthOrDoc }, options);\n}\nfunction generateInd(ind, newPart, options) {\n const queue = newPart.type === \"dedent\" ? ind.queue.slice(0, -1) : [...ind.queue, newPart];\n let value = \"\";\n let length = 0;\n let lastTabs = 0;\n let lastSpaces = 0;\n for (const part of queue) {\n switch (part.type) {\n case \"indent\":\n flush();\n if (options.useTabs) {\n addTabs(1);\n } else {\n addSpaces(options.tabWidth);\n }\n break;\n case \"stringAlign\":\n flush();\n value += part.n;\n length += part.n.length;\n break;\n case \"numberAlign\":\n lastTabs += 1;\n lastSpaces += part.n;\n break;\n default:\n throw new Error(`Unexpected type '${part.type}'`);\n }\n }\n flushSpaces();\n return { ...ind, 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 trim2(out) {\n let trimCount = 0;\n let cursorCount = 0;\n let outIndex = out.length;\n outer: while (outIndex--) {\n const last = out[outIndex];\n if (last === CURSOR_PLACEHOLDER) {\n cursorCount++;\n continue;\n }\n if (false) {\n throw new Error(`Unexpected value in trim: '${typeof last}'`);\n }\n for (let charIndex = last.length - 1; charIndex >= 0; charIndex--) {\n const char = last[charIndex];\n if (char === \" \" || char === \"\t\") {\n trimCount++;\n } else {\n out[outIndex] = last.slice(0, charIndex + 1);\n break outer;\n }\n }\n }\n if (trimCount > 0 || cursorCount > 0) {\n out.length = outIndex + 1;\n while (cursorCount-- > 0) {\n out.push(CURSOR_PLACEHOLDER);\n }\n }\n return trimCount;\n}\nfunction fits(next, restCommands, width, hasLineSuffix, groupModeMap, mustBeFlat) {\n if (width === Number.POSITIVE_INFINITY) {\n return true;\n }\n let restIdx = restCommands.length;\n const cmds = [next];\n const out = [];\n while (width >= 0) {\n if (cmds.length === 0) {\n if (restIdx === 0) {\n return true;\n }\n cmds.push(restCommands[--restIdx]);\n continue;\n }\n const { mode, doc } = cmds.pop();\n const docType = get_doc_type_default(doc);\n switch (docType) {\n case DOC_TYPE_STRING:\n out.push(doc);\n width -= get_string_width_default(doc);\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 i = parts.length - 1; i >= end; i--) {\n cmds.push({ mode, doc: parts[i] });\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 cmds.push({ mode, doc: doc.contents });\n break;\n case DOC_TYPE_TRIM:\n width += trim2(out);\n break;\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 ? at_default(\n /* isOptionalObject */\n false,\n doc.expandedStates,\n -1\n ) : doc.contents;\n cmds.push({ mode: groupMode, doc: contents });\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 cmds.push({ mode, doc: contents });\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 out.push(\" \");\n width--;\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 = {};\n const width = options.printWidth;\n const newLine = convertEndOfLineToChars(options.endOfLine);\n let pos = 0;\n const cmds = [{ ind: rootIndent(), mode: MODE_BREAK, doc }];\n const out = [];\n let shouldRemeasure = false;\n const lineSuffix2 = [];\n let printedCursorCount = 0;\n propagateBreaks(doc);\n while (cmds.length > 0) {\n const { ind, mode, doc: doc2 } = cmds.pop();\n switch (get_doc_type_default(doc2)) {\n case DOC_TYPE_STRING: {\n const formatted = newLine !== \"\\n\" ? string_replace_all_default(\n /* isOptionalObject */\n false,\n doc2,\n \"\\n\",\n newLine\n ) : doc2;\n out.push(formatted);\n if (cmds.length > 0) {\n pos += get_string_width_default(formatted);\n }\n break;\n }\n case DOC_TYPE_ARRAY:\n for (let i = doc2.length - 1; i >= 0; i--) {\n cmds.push({ ind, mode, doc: doc2[i] });\n }\n break;\n case DOC_TYPE_CURSOR:\n if (printedCursorCount >= 2) {\n throw new Error(\"There are too many 'cursor' in doc.\");\n }\n out.push(CURSOR_PLACEHOLDER);\n printedCursorCount++;\n break;\n case DOC_TYPE_INDENT:\n cmds.push({ ind: makeIndent(ind, options), mode, doc: doc2.contents });\n break;\n case DOC_TYPE_ALIGN:\n cmds.push({\n ind: makeAlign(ind, doc2.n, options),\n mode,\n doc: doc2.contents\n });\n break;\n case DOC_TYPE_TRIM:\n pos -= trim2(out);\n break;\n case DOC_TYPE_GROUP:\n switch (mode) {\n case MODE_FLAT:\n if (!shouldRemeasure) {\n cmds.push({\n ind,\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 = { ind, mode: MODE_FLAT, doc: doc2.contents };\n const rem = width - pos;\n const hasLineSuffix = lineSuffix2.length > 0;\n if (!doc2.break && fits(next, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(next);\n } else {\n if (doc2.expandedStates) {\n const mostExpanded = at_default(\n /* isOptionalObject */\n false,\n doc2.expandedStates,\n -1\n );\n if (doc2.break) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n for (let i = 1; i < doc2.expandedStates.length + 1; i++) {\n if (i >= doc2.expandedStates.length) {\n cmds.push({ ind, mode: MODE_BREAK, doc: mostExpanded });\n break;\n } else {\n const state = doc2.expandedStates[i];\n const cmd = { ind, mode: MODE_FLAT, doc: state };\n if (fits(cmd, cmds, rem, hasLineSuffix, groupModeMap)) {\n cmds.push(cmd);\n break;\n }\n }\n }\n }\n } else {\n cmds.push({ ind, mode: MODE_BREAK, doc: doc2.contents });\n }\n }\n break;\n }\n }\n if (doc2.id) {\n groupModeMap[doc2.id] = at_default(\n /* isOptionalObject */\n false,\n cmds,\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 rem = width - pos;\n const offset = doc2[DOC_FILL_PRINTED_LENGTH] ?? 0;\n const { parts } = 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 contentFlatCmd = { ind, mode: MODE_FLAT, doc: content };\n const contentBreakCmd = { ind, mode: MODE_BREAK, doc: content };\n const contentFits = fits(\n contentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (length === 1) {\n if (contentFits) {\n cmds.push(contentFlatCmd);\n } else {\n cmds.push(contentBreakCmd);\n }\n break;\n }\n const whitespaceFlatCmd = { ind, mode: MODE_FLAT, doc: whitespace };\n const whitespaceBreakCmd = { ind, mode: MODE_BREAK, doc: whitespace };\n if (length === 2) {\n if (contentFits) {\n cmds.push(whitespaceFlatCmd, contentFlatCmd);\n } else {\n cmds.push(whitespaceBreakCmd, contentBreakCmd);\n }\n break;\n }\n const secondContent = parts[offset + 2];\n const remainingCmd = {\n ind,\n mode,\n doc: { ...doc2, [DOC_FILL_PRINTED_LENGTH]: offset + 2 }\n };\n const firstAndSecondContentFlatCmd = {\n ind,\n mode: MODE_FLAT,\n doc: [content, whitespace, secondContent]\n };\n const firstAndSecondContentFits = fits(\n firstAndSecondContentFlatCmd,\n [],\n rem,\n lineSuffix2.length > 0,\n groupModeMap,\n true\n );\n if (firstAndSecondContentFits) {\n cmds.push(remainingCmd, whitespaceFlatCmd, contentFlatCmd);\n } else if (contentFits) {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentFlatCmd);\n } else {\n cmds.push(remainingCmd, whitespaceBreakCmd, contentBreakCmd);\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 cmds.push({ ind, mode, doc: breakContents });\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 cmds.push({ ind, mode, doc: flatContents });\n }\n }\n break;\n }\n case DOC_TYPE_LINE_SUFFIX:\n lineSuffix2.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_LINE_SUFFIX_BOUNDARY:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: hardlineWithoutBreakParent });\n }\n break;\n case DOC_TYPE_LINE:\n switch (mode) {\n case MODE_FLAT:\n if (!doc2.hard) {\n if (!doc2.soft) {\n out.push(\" \");\n pos += 1;\n }\n break;\n } else {\n shouldRemeasure = true;\n }\n // fallthrough\n case MODE_BREAK:\n if (lineSuffix2.length > 0) {\n cmds.push({ ind, mode, doc: doc2 }, ...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n break;\n }\n if (doc2.literal) {\n if (ind.root) {\n out.push(newLine, ind.root.value);\n pos = ind.root.length;\n } else {\n out.push(newLine);\n pos = 0;\n }\n } else {\n pos -= trim2(out);\n out.push(newLine + ind.value);\n pos = ind.length;\n }\n break;\n }\n break;\n case DOC_TYPE_LABEL:\n cmds.push({ ind, mode, doc: doc2.contents });\n break;\n case DOC_TYPE_BREAK_PARENT:\n break;\n default:\n throw new invalid_doc_error_default(doc2);\n }\n if (cmds.length === 0 && lineSuffix2.length > 0) {\n cmds.push(...lineSuffix2.reverse());\n lineSuffix2.length = 0;\n }\n }\n const cursorPlaceholderIndex = out.indexOf(CURSOR_PLACEHOLDER);\n if (cursorPlaceholderIndex !== -1) {\n const otherCursorPlaceholderIndex = out.indexOf(\n CURSOR_PLACEHOLDER,\n cursorPlaceholderIndex + 1\n );\n if (otherCursorPlaceholderIndex === -1) {\n return {\n formatted: out.filter((char) => char !== CURSOR_PLACEHOLDER).join(\"\")\n };\n }\n const beforeCursor = out.slice(0, cursorPlaceholderIndex).join(\"\");\n const aroundCursor = out.slice(cursorPlaceholderIndex + 1, otherCursorPlaceholderIndex).join(\"\");\n const afterCursor = out.slice(otherCursorPlaceholderIndex + 1).join(\"\");\n return {\n formatted: beforeCursor + aroundCursor + afterCursor,\n cursorNodeStart: beforeCursor.length,\n cursorNodeText: aroundCursor\n };\n }\n return { formatted: out.join(\"\") };\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};\n\n// with-default-export:src/document/public.js\nvar public_default = public_exports;\nexport {\n builders,\n public_default as default,\n printer,\n utils\n};\n","import * as prettier from \"prettier/standalone\";\nexport const util = prettier.util;\n//# sourceMappingURL=util.js.map","import { SyntaxKind } from \"../../core/types.js\";\nimport { util } from \"./util.js\";\n/**\n * Override the default behavior to attach comments to syntax node.\n */\nexport const commentHandler = {\n ownLine: (comment, text, options, ast, isLastComment) => [\n addEmptyInterfaceComment,\n addEmptyModelComment,\n addEmptyScalarComment,\n addCommentBetweenAnnotationsAndNode,\n handleOnlyComments,\n ].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n remaining: (comment, text, options, ast, isLastComment) => [handleOnlyComments].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n endOfLine: (comment, text, options, ast, isLastComment) => [handleOnlyComments].some((x) => x({ comment, text, options, ast: ast, isLastComment })),\n};\n/**\n * When a comment is on an empty interface make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * interface Foo {\n * // My comment\n * }\n */\nfunction addEmptyInterfaceComment({ comment, ast }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.InterfaceStatement &&\n enclosingNode.operations.length === 0 &&\n precedingNode &&\n precedingNode.kind === SyntaxKind.Identifier) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is in between a node and its annotations(Decorator, directives, doc comments).\n *\n * @example\n *\n * @foo\n * // My comment\n * @bar\n * model Foo {\n * }\n */\nfunction addCommentBetweenAnnotationsAndNode({ comment }) {\n const { enclosingNode, precedingNode } = comment;\n if (precedingNode &&\n (precedingNode.kind === SyntaxKind.DecoratorExpression ||\n precedingNode.kind === SyntaxKind.DirectiveExpression ||\n precedingNode.kind === SyntaxKind.Doc) &&\n enclosingNode &&\n (enclosingNode.kind === SyntaxKind.NamespaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelStatement ||\n enclosingNode.kind === SyntaxKind.EnumStatement ||\n enclosingNode.kind === SyntaxKind.OperationStatement ||\n enclosingNode.kind === SyntaxKind.ScalarStatement ||\n enclosingNode.kind === SyntaxKind.InterfaceStatement ||\n enclosingNode.kind === SyntaxKind.ModelProperty ||\n enclosingNode.kind === SyntaxKind.EnumMember ||\n enclosingNode.kind === SyntaxKind.UnionStatement)) {\n util.addTrailingComment(precedingNode, comment);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty model make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * model Foo {\n * // My comment\n * }\n */\nfunction addEmptyModelComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ModelStatement &&\n enclosingNode.properties.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.is ||\n precedingNode === enclosingNode.id ||\n precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\n/**\n * When a comment is on an empty scalar make sure it gets added as a dangling comment on it and not on the identifier.\n *\n * @example\n *\n * scalar foo {\n * // My comment\n * }\n */\nfunction addEmptyScalarComment({ comment }) {\n const { precedingNode, enclosingNode } = comment;\n if (enclosingNode &&\n enclosingNode.kind === SyntaxKind.ScalarStatement &&\n enclosingNode.members.length === 0 &&\n precedingNode &&\n (precedingNode === enclosingNode.id || precedingNode === enclosingNode.extends)) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n return true;\n }\n return false;\n}\nfunction handleOnlyComments({ comment, ast, isLastComment }) {\n const { enclosingNode } = comment;\n if (ast?.statements?.length === 0) {\n if (isLastComment) {\n util.addDanglingComment(ast, comment, undefined);\n }\n else {\n util.addLeadingComment(ast, comment);\n }\n return true;\n }\n if (enclosingNode?.kind === SyntaxKind.TypeSpecScript &&\n enclosingNode.statements.length === 0 &&\n enclosingNode.directives?.length === 0) {\n if (isLastComment) {\n util.addDanglingComment(enclosingNode, comment, undefined);\n }\n else {\n util.addLeadingComment(enclosingNode, comment);\n }\n return true;\n }\n return false;\n}\n//# sourceMappingURL=comment-handler.js.map","import { SyntaxKind } from \"../../core/types.js\";\n/**\n * Check if the current path should be wrapped in parentheses\n * @param path Prettier print path.\n * @param options Prettier options\n */\nexport function needsParens(path, options) {\n const parent = path.getParentNode();\n if (!parent) {\n return false;\n }\n const node = path.node;\n switch (node.kind) {\n case SyntaxKind.ValueOfExpression:\n return (parent.kind === SyntaxKind.UnionExpression ||\n parent.kind === SyntaxKind.ArrayExpression ||\n parent.kind === SyntaxKind.IntersectionExpression);\n case SyntaxKind.IntersectionExpression:\n return (parent.kind === SyntaxKind.UnionExpression || parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.UnionExpression:\n return (parent.kind === SyntaxKind.IntersectionExpression ||\n parent.kind === SyntaxKind.ArrayExpression);\n case SyntaxKind.ProjectionLogicalExpression:\n return parent.kind === SyntaxKind.ProjectionLogicalExpression;\n case SyntaxKind.ProjectionArithmeticExpression:\n return parent.kind === SyntaxKind.ProjectionArithmeticExpression;\n default:\n return false;\n }\n}\n//# sourceMappingURL=needs-parens.js.map","import { builders } from \"prettier/doc\";\nimport { compilerAssert } from \"../../core/diagnostics.js\";\nimport { printIdentifier as printIdentifierString, splitLines, } from \"../../core/helpers/syntax-utils.js\";\nimport { SyntaxKind, } from \"../../core/types.js\";\nimport { commentHandler } from \"./comment-handler.js\";\nimport { needsParens } from \"./needs-parens.js\";\nimport { util } from \"./util.js\";\nconst { align, breakParent, group, hardline, ifBreak, indent, join, line, softline, literalline, markAsRoot, } = builders;\nconst { isNextLineEmpty } = util;\n/**\n * If the decorators for that node should try to be kept inline.\n */\nconst DecoratorsTryInline = {\n modelProperty: true,\n enumMember: true,\n unionVariant: true,\n};\nexport const typespecPrinter = {\n print: printTypeSpec,\n isBlockComment: (node) => isBlockComment(node),\n canAttachComment: canAttachComment,\n printComment: printComment,\n handleComments: commentHandler,\n};\nexport function printTypeSpec(\n// Path to the AST node to print\npath, options, print) {\n const node = path.node;\n const docs = printDocComments(path, options, print);\n const directives = shouldPrintDirective(node) ? printDirectives(path, options, print) : \"\";\n const printedNode = printNode(path, options, print);\n const value = needsParens(path, options) ? [\"(\", printedNode, \")\"] : printedNode;\n const parts = [docs, directives, value];\n if (node.kind === SyntaxKind.TypeSpecScript) {\n // For TypeSpecScript(root of TypeSpec document) we had a new line at the end.\n // This must be done here so the hardline entry can be the last item of the doc array returned by the printer\n // so the markdown(and other embedded formatter) can omit that extra line.\n parts.push(hardline);\n }\n return parts;\n}\nfunction shouldPrintDirective(node) {\n // Model property handle printing directive itself.\n return node.kind !== SyntaxKind.ModelProperty;\n}\nexport function printNode(\n// Path to the AST node to print\npath, options, print) {\n const node = path.node;\n switch (node.kind) {\n // Root\n case SyntaxKind.TypeSpecScript:\n return printTypeSpecScript(path, options, print);\n // Statements\n case SyntaxKind.ImportStatement:\n return [`import \"${node.path.value}\";`];\n case SyntaxKind.UsingStatement:\n return [`using `, path.call(print, \"name\"), `;`];\n case SyntaxKind.OperationStatement:\n return printOperationStatement(path, options, print);\n case SyntaxKind.OperationSignatureDeclaration:\n return printOperationSignatureDeclaration(path, options, print);\n case SyntaxKind.OperationSignatureReference:\n return printOperationSignatureReference(path, options, print);\n case SyntaxKind.NamespaceStatement:\n return printNamespaceStatement(path, options, print);\n case SyntaxKind.ModelStatement:\n return printModelStatement(path, options, print);\n case SyntaxKind.ScalarStatement:\n return printScalarStatement(path, options, print);\n case SyntaxKind.ScalarConstructor:\n return printScalarConstructor(path, options, print);\n case SyntaxKind.AliasStatement:\n return printAliasStatement(path, options, print);\n case SyntaxKind.EnumStatement:\n return printEnumStatement(path, options, print);\n case SyntaxKind.UnionStatement:\n return printUnionStatement(path, options, print);\n case SyntaxKind.InterfaceStatement:\n return printInterfaceStatement(path, options, print);\n // Others.\n case SyntaxKind.Identifier:\n return printIdentifier(node, options);\n case SyntaxKind.StringLiteral:\n return printStringLiteral(path, options);\n case SyntaxKind.NumericLiteral:\n return printNumberLiteral(path, options);\n case SyntaxKind.BooleanLiteral:\n return printBooleanLiteral(path, options);\n case SyntaxKind.ModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.DecoratorExpression:\n return printDecorator(path, options, print);\n case SyntaxKind.AugmentDecoratorStatement:\n return printAugmentDecorator(path, options, print);\n case SyntaxKind.DirectiveExpression:\n return printDirective(path, options, print);\n case SyntaxKind.UnionExpression:\n return printUnion(path, options, print);\n case SyntaxKind.IntersectionExpression:\n return printIntersection(path, options, print);\n case SyntaxKind.ArrayExpression:\n return printArray(path, options, print);\n case SyntaxKind.TupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.MemberExpression:\n return printMemberExpression(path, options, print);\n case SyntaxKind.EnumMember:\n return printEnumMember(path, options, print);\n case SyntaxKind.EnumSpreadMember:\n return printEnumSpreadMember(path, options, print);\n case SyntaxKind.UnionVariant:\n return printUnionVariant(path, options, print);\n case SyntaxKind.TypeReference:\n return printTypeReference(path, options, print);\n case SyntaxKind.TemplateArgument:\n return printTemplateArgument(path, options, print);\n case SyntaxKind.ValueOfExpression:\n return printValueOfExpression(path, options, print);\n case SyntaxKind.TypeOfExpression:\n return printTypeOfExpression(path, options, print);\n case SyntaxKind.TemplateParameterDeclaration:\n return printTemplateParameterDeclaration(path, options, print);\n case SyntaxKind.ModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.DecoratorDeclarationStatement:\n return printDecoratorDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionDeclarationStatement:\n return printFunctionDeclarationStatement(path, options, print);\n case SyntaxKind.FunctionParameter:\n return printFunctionParameterDeclaration(path, options, print);\n case SyntaxKind.ExternKeyword:\n return \"extern\";\n case SyntaxKind.VoidKeyword:\n return \"void\";\n case SyntaxKind.NeverKeyword:\n return \"never\";\n case SyntaxKind.UnknownKeyword:\n return \"unknown\";\n case SyntaxKind.ProjectionStatement:\n return printProjectionStatement(path, options, print);\n case SyntaxKind.ProjectionModelSelector:\n return \"model\";\n case SyntaxKind.ProjectionModelPropertySelector:\n return \"modelproperty\";\n case SyntaxKind.ProjectionScalarSelector:\n return \"scalar\";\n case SyntaxKind.ProjectionOperationSelector:\n return \"op\";\n case SyntaxKind.ProjectionUnionSelector:\n return \"union\";\n case SyntaxKind.ProjectionUnionVariantSelector:\n return \"unionvariant\";\n case SyntaxKind.ProjectionInterfaceSelector:\n return \"interface\";\n case SyntaxKind.ProjectionEnumSelector:\n return \"enum\";\n case SyntaxKind.ProjectionEnumMemberSelector:\n return \"enummember\";\n case SyntaxKind.Projection:\n return printProjection(path, options, print);\n case SyntaxKind.ProjectionParameterDeclaration:\n return printProjectionParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionExpressionStatement:\n return printProjectionExpressionStatement(path, options, print);\n case SyntaxKind.ProjectionIfExpression:\n return printProjectionIfExpressionNode(path, options, print);\n case SyntaxKind.ProjectionBlockExpression:\n return printProjectionBlockExpressionNode(path, options, print);\n case SyntaxKind.ProjectionMemberExpression:\n return printProjectionMemberExpression(path, options, print);\n case SyntaxKind.ProjectionLogicalExpression:\n case SyntaxKind.ProjectionEqualityExpression:\n case SyntaxKind.ProjectionRelationalExpression:\n case SyntaxKind.ProjectionArithmeticExpression:\n return printProjectionLeftRightExpression(path, options, print);\n case SyntaxKind.ProjectionUnaryExpression:\n return printProjectionUnaryExpression(path, options, print);\n case SyntaxKind.ProjectionCallExpression:\n return printProjectionCallExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaExpression:\n return printProjectionLambdaExpression(path, options, print);\n case SyntaxKind.ProjectionLambdaParameterDeclaration:\n return printProjectionLambdaParameterDeclaration(path, options, print);\n case SyntaxKind.ProjectionModelExpression:\n return printModelExpression(path, options, print);\n case SyntaxKind.ProjectionModelProperty:\n return printModelProperty(path, options, print);\n case SyntaxKind.ProjectionModelSpreadProperty:\n return printModelSpread(path, options, print);\n case SyntaxKind.ProjectionTupleExpression:\n return printTuple(path, options, print);\n case SyntaxKind.ProjectionDecoratorReferenceExpression:\n return path.call(print, \"target\");\n case SyntaxKind.Return:\n return printReturnExpression(path, options, print);\n case SyntaxKind.Doc:\n return printDoc(path, options, print);\n case SyntaxKind.DocText:\n case SyntaxKind.DocParamTag:\n case SyntaxKind.DocPropTag:\n case SyntaxKind.DocTemplateTag:\n case SyntaxKind.DocReturnsTag:\n case SyntaxKind.DocErrorsTag:\n case SyntaxKind.DocUnknownTag:\n // https://github.com/microsoft/typespec/issues/1319 Tracks pretty-printing doc comments.\n compilerAssert(false, \"Currently, doc comments are only handled as regular comments and we do not opt in to parsing them so we shouldn't reach here.\");\n return \"\";\n case SyntaxKind.EmptyStatement:\n return \"\";\n case SyntaxKind.StringTemplateExpression:\n return printStringTemplateExpression(path, options, print);\n case SyntaxKind.ObjectLiteral:\n return printObjectLiteral(path, options, print);\n case SyntaxKind.ObjectLiteralProperty:\n return printObjectLiteralProperty(path, options, print);\n case SyntaxKind.ObjectLiteralSpreadProperty:\n return printObjectLiteralSpreadProperty(path, options, print);\n case SyntaxKind.ArrayLiteral:\n return printArrayLiteral(path, options, print);\n case SyntaxKind.ConstStatement:\n return printConstStatement(path, options, print);\n case SyntaxKind.CallExpression:\n return printCallExpression(path, options, print);\n case SyntaxKind.StringTemplateSpan:\n case SyntaxKind.StringTemplateHead:\n case SyntaxKind.StringTemplateMiddle:\n case SyntaxKind.StringTemplateTail:\n case SyntaxKind.JsSourceFile:\n case SyntaxKind.JsNamespaceDeclaration:\n case SyntaxKind.InvalidStatement:\n return getRawText(node, options);\n default:\n // Dummy const to ensure we handle all node types.\n // If you get an error here, add a case for the new node type\n // you added..\n const _assertNever = node;\n return getRawText(node, options);\n }\n}\nexport function printTypeSpecScript(path, options, print) {\n const node = path.node;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const body = [];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n body.push(printStatementSequence(path, options, print, \"statements\"));\n return body;\n}\nexport function printAliasStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n return [\"alias \", id, template, \" = \", path.call(print, \"value\"), \";\"];\n}\nexport function printConstStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\"const \", id, type, \" = \", path.call(print, \"value\"), \";\"];\n}\nexport function printCallExpression(path, options, print) {\n const args = printCallLikeArgs(path, options, print);\n return [path.call(print, \"target\"), args];\n}\nfunction printTemplateParameters(path, options, print, propertyName) {\n const node = path.node;\n const args = node[propertyName];\n if (args.length === 0) {\n return \"\";\n }\n const shouldHug = args.length === 1;\n if (shouldHug) {\n return [\"<\", join(\", \", path.map(print, propertyName)), \">\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, propertyName))]);\n return group([\"<\", body, softline, \">\"]);\n }\n}\nexport function canAttachComment(node) {\n const kind = node.kind;\n return Boolean(kind &&\n kind !== SyntaxKind.LineComment &&\n kind !== SyntaxKind.BlockComment &&\n kind !== SyntaxKind.EmptyStatement &&\n kind !== SyntaxKind.DocParamTag &&\n kind !== SyntaxKind.DocReturnsTag &&\n kind !== SyntaxKind.DocTemplateTag &&\n kind !== SyntaxKind.DocText &&\n kind !== SyntaxKind.DocUnknownTag &&\n !(node.flags & 8 /* NodeFlags.Synthetic */));\n}\nexport function printComment(commentPath, options) {\n const comment = commentPath.node;\n comment.printed = true;\n switch (comment.kind) {\n case SyntaxKind.BlockComment:\n return printBlockComment(commentPath, options);\n case SyntaxKind.LineComment:\n return `${options.originalText.slice(comment.pos, comment.end).trimEnd()}`;\n default:\n throw new Error(`Not a comment: ${JSON.stringify(comment)}`);\n }\n}\nfunction printBlockComment(commentPath, options) {\n const comment = commentPath.node;\n const rawComment = options.originalText.slice(comment.pos + 2, comment.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment;\n return [\"/*\", printed, \"*/\"];\n}\nfunction isIndentableBlockComment(rawComment) {\n // If the comment has multiple lines and every line starts with a star\n // we can fix the indentation of each line. The stars in the `/*` and\n // `*/` delimiters are not included in the comment value, so add them\n // back first.\n const lines = `*${rawComment}*`.split(\"\\n\");\n return lines.length > 1 && lines.every((line) => line.trim()[0] === \"*\");\n}\nfunction printIndentableBlockCommentContent(rawComment) {\n const lines = rawComment.split(\"\\n\");\n return [\n join(hardline, lines.map((line, index) => index === 0\n ? line.trimEnd()\n : \" \" + (index < lines.length - 1 ? line.trim() : line.trimStart()))),\n ];\n}\n/** Print a doc comment. */\nfunction printDoc(path, options, print) {\n const node = path.node;\n const rawComment = options.originalText.slice(node.pos + 3, node.end - 2);\n const printed = isIndentableBlockComment(rawComment)\n ? printIndentableBlockCommentContent(rawComment)\n : rawComment.includes(\"\\n\")\n ? rawComment\n : ` ${rawComment.trim()} `;\n return [\"/**\", printed, \"*/\"];\n}\nexport function printDecorators(path, options, print, { tryInline }) {\n const node = path.node;\n if (node.decorators.length === 0) {\n return { decorators: \"\", multiline: false };\n }\n const shouldBreak = shouldDecoratorBreakLine(path, options, { tryInline });\n const decorators = path.map((x) => [print(x), ifBreak(line, \" \")], \"decorators\");\n return {\n decorators: group([shouldBreak ? breakParent : \"\", decorators]),\n multiline: shouldBreak,\n };\n}\n/** Check if the decorators of the given node should be broken in sparate line */\nfunction shouldDecoratorBreakLine(path, options, { tryInline }) {\n const node = path.node;\n return (!tryInline || node.decorators.length >= 3 || hasNewlineBetweenOrAfterDecorators(node, options));\n}\n/**\n * Check if there is already new lines in between the decorators of the node.\n */\nfunction hasNewlineBetweenOrAfterDecorators(node, options) {\n return node.decorators.some((decorator) => util.hasNewline(options.originalText, decorator.end));\n}\nexport function printDecorator(path, options, print) {\n const args = printDecoratorArgs(path, options, print);\n return [\"@\", path.call(print, \"target\"), args];\n}\nexport function printAugmentDecorator(path, options, print) {\n const args = printAugmentDecoratorArgs(path, options, print);\n return [\"@@\", path.call(print, \"target\"), args, \";\"];\n}\nfunction printAugmentDecoratorArgs(path, options, print) {\n return [\n \"(\",\n group([\n indent(join(\", \", [\n path.call(print, \"targetType\"),\n ...path.map((arg) => [softline, print(arg)], \"arguments\"),\n ])),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDocComments(path, options, print) {\n const node = path.node;\n if (node.docs === undefined || node.docs.length === 0) {\n return \"\";\n }\n const docs = path.map((x) => [print(x), line], \"docs\");\n return group([...docs, breakParent]);\n}\nexport function printDirectives(path, options, print) {\n const node = path.node;\n if (node.directives === undefined || node.directives.length === 0) {\n return \"\";\n }\n const directives = path.map((x) => [print(x), line], \"directives\");\n return group([...directives, breakParent]);\n}\nexport function printDirective(path, options, print) {\n const args = printDirectiveArgs(path, options, print);\n return [\"#\", path.call(print, \"target\"), \" \", args];\n}\nfunction printDecoratorArgs(path, options, print) {\n const node = path.node;\n if (node.arguments.length === 0) {\n return \"\";\n }\n return printCallLikeArgs(path, options, print);\n}\nfunction printCallLikeArgs(path, options, print) {\n const node = path.node;\n // So that decorator with single object arguments have ( and { hugging.\n // @deco(#{\n // value: \"foo\"\n // })\n const shouldHug = node.arguments.length === 1 &&\n (node.arguments[0].kind === SyntaxKind.ModelExpression ||\n node.arguments[0].kind === SyntaxKind.ObjectLiteral ||\n node.arguments[0].kind === SyntaxKind.ArrayLiteral ||\n node.arguments[0].kind === SyntaxKind.StringLiteral ||\n node.arguments[0].kind === SyntaxKind.StringTemplateExpression);\n if (shouldHug) {\n return [\n \"(\",\n join(\", \", path.map((arg) => [print(arg)], \"arguments\")),\n \")\",\n ];\n }\n return [\n \"(\",\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"arguments\"))),\n softline,\n ]),\n \")\",\n ];\n}\nexport function printDirectiveArgs(path, options, print) {\n const node = path.node;\n if (node.arguments.length === 0) {\n return \"\";\n }\n return join(\" \", path.map((arg) => [print(arg)], \"arguments\"));\n}\nexport function printEnumStatement(path, options, print) {\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const id = path.call(print, \"id\");\n return [decorators, \"enum \", id, \" \", printEnumBlock(path, options, print)];\n}\nfunction printEnumBlock(path, options, print) {\n const node = path.node;\n if (node.members.length === 0) {\n return \"{}\";\n }\n const body = joinMembersInBlock(path, \"members\", options, print, \",\", hardline);\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nexport function printEnumMember(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const value = node.value ? [\": \", path.call(print, \"value\")] : \"\";\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.enumMember,\n });\n return [decorators, id, value];\n}\nfunction printEnumSpreadMember(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nexport function printUnionStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n return [decorators, \"union \", id, generic, \" \", printUnionVariantsBlock(path, options, print)];\n}\nexport function printUnionVariantsBlock(path, options, print) {\n const node = path.node;\n if (node.options.length === 0) {\n return \"{}\";\n }\n const body = joinMembersInBlock(path, \"options\", options, print, \",\", hardline);\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nexport function printUnionVariant(path, options, print) {\n const id = path.node.id === undefined ? \"\" : [path.call(print, \"id\"), \": \"];\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.unionVariant,\n });\n return [decorators, id, path.call(print, \"value\")];\n}\nexport function printInterfaceStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const extendList = printInterfaceExtends(path, options, print);\n return [\n decorators,\n \"interface \",\n id,\n generic,\n extendList,\n \" \",\n printInterfaceMembers(path, options, print),\n ];\n}\nfunction printInterfaceExtends(path, options, print) {\n const node = path.node;\n if (node.extends.length === 0) {\n return \"\";\n }\n const keyword = \"extends \";\n return [group(indent([line, keyword, indent(join([\",\", line], path.map(print, \"extends\")))]))];\n}\nexport function printInterfaceMembers(path, options, print) {\n const node = path.node;\n const hasOperations = node.operations.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasOperations && !nodeHasComments) {\n return \"{}\";\n }\n const lastOperation = node.operations[node.operations.length - 1];\n const parts = [];\n path.each((operationPath) => {\n const node = operationPath.node;\n const printed = print(operationPath);\n parts.push(printed);\n if (node !== lastOperation) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, \"operations\");\n const body = [hardline, parts];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printDanglingComments(path, options, { sameIndent }) {\n const node = path.node;\n const parts = [];\n if (!node || !node.comments) {\n return \"\";\n }\n path.each((commentPath) => {\n const comment = commentPath.node;\n if (!comment.leading && !comment.trailing) {\n parts.push(printComment(path, options));\n }\n }, \"comments\");\n if (parts.length === 0) {\n return \"\";\n }\n if (sameIndent) {\n return join(hardline, parts);\n }\n return indent([hardline, join(hardline, parts)]);\n}\n/**\n * Handle printing an intersection node.\n * @example `Foo & Bar` or `{foo: string} & {bar: string}`\n *\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier child print callback.\n * @returns Prettier document.\n */\nexport function printIntersection(path, options, print) {\n const node = path.node;\n const types = path.map(print, \"options\");\n const result = [];\n let wasIndented = false;\n for (let i = 0; i < types.length; ++i) {\n if (i === 0) {\n result.push(types[i]);\n }\n else if (isModelNode(node.options[i - 1]) && isModelNode(node.options[i])) {\n // If both are objects, don't indent\n result.push([\" & \", wasIndented ? indent(types[i]) : types[i]]);\n }\n else if (!isModelNode(node.options[i - 1]) && !isModelNode(node.options[i])) {\n // If no object is involved, go to the next line if it breaks\n result.push(indent([\" &\", line, types[i]]));\n }\n else {\n // If you go from object to non-object or vis-versa, then inline it\n if (i > 1) {\n wasIndented = true;\n }\n result.push(\" & \", i > 1 ? indent(types[i]) : types[i]);\n }\n }\n return group(result);\n}\nfunction isModelNode(node) {\n return node.kind === SyntaxKind.ModelExpression;\n}\nexport function printArray(path, options, print) {\n return [path.call(print, \"elementType\"), \"[]\"];\n}\nexport function printTuple(path, options, print) {\n return group([\n \"[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printMemberExpression(path, options, print) {\n const node = path.node;\n return [node.base ? [path.call(print, \"base\"), node.selector] : \"\", path.call(print, \"id\")];\n}\nexport function printModelExpression(path, options, print) {\n const inBlock = isModelExpressionInBlock(path);\n const node = path.node;\n if (inBlock) {\n return group(printModelPropertiesBlock(path, options, print));\n }\n else {\n const properties = node.properties.length === 0\n ? \"\"\n : indent(joinMembersInBlock(path, \"properties\", options, print, ifBreak(\",\", \", \"), softline));\n return group([properties, softline]);\n }\n}\nexport function printObjectLiteral(path, options, print) {\n const node = path.node;\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"#{}\";\n }\n const lineDoc = softline;\n const body = [\n joinMembersInBlock(path, \"properties\", options, print, ifBreak(\",\", \", \"), softline),\n ];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"#{\", ifBreak(\"\", \" \"), indent(body), lineDoc, ifBreak(\"\", \" \"), \"}\"]);\n}\nexport function printObjectLiteralProperty(path, options, print) {\n const node = path.node;\n const id = printIdentifier(node.id, options);\n return [printDirectives(path, options, print), id, \": \", path.call(print, \"value\")];\n}\nexport function printObjectLiteralSpreadProperty(path, options, print) {\n return [printDirectives(path, options, print), \"...\", path.call(print, \"target\")];\n}\nexport function printArrayLiteral(path, options, print) {\n return group([\n \"#[\",\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"values\"))),\n softline,\n \"]\",\n ]);\n}\nexport function printModelStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const isBase = node.is ? [ifBreak(line, \" \"), \"is \", path.call(print, \"is\")] : \"\";\n const generic = printTemplateParameters(path, options, print, \"templateParameters\");\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.properties.length === 0 && node.is);\n const body = shouldPrintBody ? [\" \", printModelPropertiesBlock(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"model \",\n id,\n generic,\n group(indent([\"\", heritage, isBase])),\n body,\n ];\n}\nfunction printModelPropertiesBlock(path, options, print) {\n const node = path.node;\n const hasProperties = node.properties && node.properties.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const tryInline = path.getParentNode()?.kind === SyntaxKind.TemplateParameterDeclaration;\n const lineDoc = tryInline ? softline : hardline;\n const seperator = isModelAValue(path) ? \",\" : \";\";\n const body = [joinMembersInBlock(path, \"properties\", options, print, seperator, lineDoc)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), lineDoc, \"}\"]);\n}\n/**\n * Join members nodes that are in a block by adding extra new lines when needed.(e.g. when there are decorators or doc comments )\n * @param path Prettier AST Path.\n * @param options Prettier options\n * @param print Prettier print callback\n * @param separator Separator\n * @param regularLine What line to use when we should split lines\n * @returns\n */\nfunction joinMembersInBlock(path, member, options, print, separator, regularLine = hardline) {\n const doc = [regularLine];\n const propertyContainerNode = path.node;\n let newLineBeforeNextProp = false;\n path.each((item, propertyIndex) => {\n const isFirst = propertyIndex === 0;\n const isLast = propertyIndex === propertyContainerNode[member].length - 1;\n const shouldWrapInNewLines = shouldWrapMemberInNewLines(item, options);\n if ((newLineBeforeNextProp || shouldWrapInNewLines) && !isFirst) {\n doc.push(hardline);\n newLineBeforeNextProp = false;\n }\n doc.push(print(item));\n if (isLast) {\n doc.push(ifBreak(separator));\n }\n else {\n doc.push(separator);\n doc.push(regularLine);\n if (shouldWrapInNewLines) {\n newLineBeforeNextProp = true;\n }\n }\n }, member);\n return doc;\n}\n/**\n * Check if property item (PropertyNode, SpreadProperty) should be wrapped in new lines.\n * It can be wrapped for the following reasons:\n * - has decorators on lines above\n * - has leading comments\n */\nfunction shouldWrapMemberInNewLines(path, options) {\n const node = path.node;\n return ((node.kind !== SyntaxKind.ModelSpreadProperty &&\n node.kind !== SyntaxKind.ProjectionModelSpreadProperty &&\n node.kind !== SyntaxKind.EnumSpreadMember &&\n node.kind !== SyntaxKind.ScalarConstructor &&\n node.kind !== SyntaxKind.ObjectLiteralProperty &&\n node.kind !== SyntaxKind.ObjectLiteralSpreadProperty &&\n shouldDecoratorBreakLine(path, options, {\n tryInline: DecoratorsTryInline.modelProperty,\n })) ||\n hasComments(node, CommentCheckFlags.Leading) ||\n (node.docs && node.docs?.length > 0));\n}\n/**\n * Figure out if this model is being used as a definition or value.\n * @returns true if the model is used as a value(e.g. decorator value), false if it is used as a model definition.\n */\nfunction isModelAValue(path) {\n let count = 0;\n let node = path.node;\n do {\n switch (node.kind) {\n case SyntaxKind.ModelStatement:\n case SyntaxKind.AliasStatement:\n case SyntaxKind.OperationStatement:\n return false;\n case SyntaxKind.DecoratorExpression:\n return true;\n }\n } while ((node = path.getParentNode(count++)));\n return true;\n}\nexport function printModelProperty(path, options, print) {\n const node = path.node;\n const { decorators } = printDecorators(path, options, print, {\n tryInline: DecoratorsTryInline.modelProperty,\n });\n const id = printIdentifier(node.id, options);\n return [\n printDirectives(path, options, print),\n decorators,\n id,\n node.optional ? \"?: \" : \": \",\n path.call(print, \"value\"),\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printIdentifier(id, options) {\n return printIdentifierString(id.sv);\n}\nfunction isModelExpressionInBlock(path) {\n const parent = path.getParentNode();\n switch (parent?.kind) {\n case SyntaxKind.OperationSignatureDeclaration:\n return parent.parameters !== path.getNode();\n default:\n return true;\n }\n}\nfunction printScalarStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const template = printTemplateParameters(path, options, print, \"templateParameters\");\n const heritage = node.extends\n ? [ifBreak(line, \" \"), \"extends \", path.call(print, \"extends\")]\n : \"\";\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n const shouldPrintBody = nodeHasComments || !(node.members.length === 0);\n const members = shouldPrintBody ? [\" \", printScalarBody(path, options, print)] : \";\";\n return [\n printDecorators(path, options, print, { tryInline: false }).decorators,\n \"scalar \",\n id,\n template,\n group(indent([\"\", heritage])),\n members,\n ];\n}\nfunction printScalarBody(path, options, print) {\n const node = path.node;\n const hasProperties = node.members && node.members.length > 0;\n const nodeHasComments = hasComments(node, CommentCheckFlags.Dangling);\n if (!hasProperties && !nodeHasComments) {\n return \"{}\";\n }\n const body = [joinMembersInBlock(path, \"members\", options, print, \";\", hardline)];\n if (nodeHasComments) {\n body.push(printDanglingComments(path, options, { sameIndent: true }));\n }\n return group([\"{\", indent(body), hardline, \"}\"]);\n}\nfunction printScalarConstructor(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n return [\"init \", id, \"(\", parameters, \")\"];\n}\nexport function printNamespaceStatement(path, options, print) {\n const names = path.map(print, \"ids\");\n const currentNode = path.getNode();\n const suffix = currentNode?.statements === undefined\n ? \";\"\n : [\n \" {\",\n indent([hardline, printStatementSequence(path, options, print, \"statements\")]),\n hardline,\n \"}\",\n ];\n const { decorators } = printDecorators(path, options, print, { tryInline: false });\n return [decorators, `namespace `, join(\".\", names), suffix];\n}\nexport function printOperationSignatureDeclaration(path, options, print) {\n return [\"(\", path.call(print, \"parameters\"), \"): \", path.call(print, \"returnType\")];\n}\nexport function printOperationSignatureReference(path, options, print) {\n return [\" is \", path.call(print, \"baseOperation\")];\n}\nexport function printOperationStatement(path, options, print) {\n const inInterface = path.getParentNode()?.kind === SyntaxKind.InterfaceStatement;\n const templateParams = printTemplateParameters(path, options, print, \"templateParameters\");\n const { decorators } = printDecorators(path, options, print, {\n tryInline: true,\n });\n return [\n decorators,\n inInterface ? \"\" : \"op \",\n path.call(print, \"id\"),\n templateParams,\n path.call(print, \"signature\"),\n `;`,\n ];\n}\nexport function printStatementSequence(path, options, print, property) {\n const node = path.node;\n const parts = [];\n const lastStatement = getLastStatement(node[property]);\n path.each((statementPath) => {\n const node = path.node;\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n if (node !== lastStatement) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, property);\n return parts;\n}\nfunction getLastStatement(statements) {\n for (let i = statements.length - 1; i >= 0; i--) {\n const statement = statements[i];\n if (statement.kind !== SyntaxKind.EmptyStatement) {\n return statement;\n }\n }\n return undefined;\n}\nexport function printUnion(path, options, print) {\n const node = path.node;\n const shouldHug = shouldHugType(node);\n const types = path.map((typePath) => {\n let printedType = print(typePath);\n if (!shouldHug) {\n printedType = align(2, printedType);\n }\n return printedType;\n }, \"options\");\n if (shouldHug) {\n return join(\" | \", types);\n }\n const shouldAddStartLine = true;\n const code = [ifBreak([shouldAddStartLine ? line : \"\", \"| \"], \"\"), join([line, \"| \"], types)];\n return group(indent(code));\n}\nfunction shouldHugType(node) {\n if (node.kind === SyntaxKind.UnionExpression || node.kind === SyntaxKind.IntersectionExpression) {\n return node.options.length < 4;\n }\n return false;\n}\nexport function printTypeReference(path, options, print) {\n const type = path.call(print, \"target\");\n const template = printTemplateParameters(path, options, print, \"arguments\");\n return [type, template];\n}\nexport function printTemplateArgument(path, _options, print) {\n if (path.node.name !== undefined) {\n const name = path.call(print, \"name\");\n const argument = path.call(print, \"argument\");\n return group([name, \" = \", argument]);\n }\n else {\n return path.call(print, \"argument\");\n }\n}\nexport function printValueOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"valueof \", type];\n}\nexport function printTypeOfExpression(path, options, print) {\n const type = path.call(print, \"target\");\n return [\"typeof \", type];\n}\nfunction printTemplateParameterDeclaration(path, options, print) {\n const node = path.node;\n return [\n path.call(print, \"id\"),\n node.constraint ? [\" extends \", path.call(print, \"constraint\")] : \"\",\n node.default ? [\" = \", path.call(print, \"default\")] : \"\",\n ];\n}\nfunction printModelSpread(path, options, print) {\n return [\"...\", path.call(print, \"target\")];\n}\nfunction printDecoratorDeclarationStatement(path, options, print) {\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", [\n [softline, path.call(print, \"target\")],\n ...path.map((arg) => [softline, print(arg)], \"parameters\"),\n ])),\n softline,\n ]),\n ];\n return [printModifiers(path, options, print), \"dec \", id, \"(\", parameters, \")\", \";\"];\n}\nfunction printFunctionDeclarationStatement(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const parameters = [\n group([\n indent(join(\", \", path.map((arg) => [softline, print(arg)], \"parameters\"))),\n softline,\n ]),\n ];\n const returnType = node.returnType ? [\": \", path.call(print, \"returnType\")] : \"\";\n return [printModifiers(path, options, print), \"fn \", id, \"(\", parameters, \")\", returnType, \";\"];\n}\nfunction printFunctionParameterDeclaration(path, options, print) {\n const node = path.node;\n const id = path.call(print, \"id\");\n const type = node.type ? [\": \", path.call(print, \"type\")] : \"\";\n return [\n node.rest ? \"...\" : \"\",\n printDirectives(path, options, print),\n id,\n node.optional ? \"?\" : \"\",\n type,\n ];\n}\nexport function printModifiers(path, options, print) {\n const node = path.node;\n if (node.modifiers.length === 0) {\n return \"\";\n }\n return path.map((x) => [print(x), \" \"], \"modifiers\");\n}\nfunction printStringLiteral(path, options) {\n const node = path.node;\n const multiline = isMultiline(node, options);\n const raw = getRawText(node, options);\n if (multiline) {\n const lines = splitLines(raw.slice(3));\n const whitespaceIndent = lines[lines.length - 1].length - 3;\n const newLines = trimMultilineString(lines, whitespaceIndent);\n return [`\"\"\"`, indent(markAsRoot(newLines))];\n }\n else {\n return raw;\n }\n}\nfunction isMultiline(node, options) {\n return (options.originalText[node.pos] &&\n options.originalText[node.pos + 1] === `\"` &&\n options.originalText[node.pos + 2] === `\"`);\n}\nfunction printNumberLiteral(path, options) {\n const node = path.node;\n return getRawText(node, options);\n}\nfunction printBooleanLiteral(path, options) {\n const node = path.node;\n return node.value ? \"true\" : \"false\";\n}\nfunction printProjectionStatement(path, options, print) {\n const selector = path.call(print, \"selector\");\n const id = path.call(print, \"id\");\n const projections = path.map(print, \"projections\").flatMap((x) => [hardline, x]);\n return [\n \"projection \",\n selector,\n \"#\",\n id,\n \" {\",\n indent(projections),\n projections.length > 0 ? hardline : \"\",\n \"}\",\n ];\n}\nfunction printProjection(path, options, print) {\n const node = path.node;\n const params = printProjectionParameters(path, options, print);\n const body = printProjectionExpressionStatements(path, options, print, \"body\");\n return [\n ...node.modifierIds.flatMap((i) => [i.sv, \" \"]),\n node.directionId.sv,\n params,\n \" {\",\n indent(body),\n hardline,\n \"}\",\n ];\n}\nfunction printProjectionParameters(path, options, print) {\n const node = path.node;\n const params = node.parameters;\n if (params.length === 0) {\n return \"\";\n }\n const shouldHug = params.length === 1;\n if (shouldHug) {\n return [\"(\", printItemList(path, options, print, \"parameters\"), \")\"];\n }\n else {\n const body = indent([softline, join([\", \", softline], path.map(print, \"parameters\"))]);\n return group([\"(\", body, softline, \")\"]);\n }\n}\nfunction printProjectionExpressionStatements(path, options, print, key) {\n const parts = [hardline];\n const lastIndex = path.node[key].length - 1;\n path.each((statementPath, index) => {\n const node = path.node;\n if (node.kind === SyntaxKind.EmptyStatement) {\n return;\n }\n const printed = print(statementPath);\n parts.push(printed);\n parts.push(\";\");\n if (index < lastIndex) {\n parts.push(hardline);\n if (isNextLineEmpty(options.originalText, node, options.locEnd)) {\n parts.push(hardline);\n }\n }\n }, key);\n return parts;\n}\nfunction printProjectionParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nfunction printProjectionExpressionStatement(path, options, print) {\n return path.call(print, \"expr\");\n}\nfunction printProjectionIfExpressionNode(path, options, print) {\n const node = path.node;\n const test = path.call(print, \"test\");\n const consequent = path.call(print, \"consequent\");\n const alternate = node.alternate ? [\" else \", path.call(print, \"alternate\")] : \"\";\n return [\"if \", test, \" \", consequent, alternate];\n}\nexport function printProjectionBlockExpressionNode(path, options, print) {\n const node = path.node;\n if (node.statements.length === 0) {\n return \"{}\";\n }\n return [\n \"{\",\n indent(printProjectionExpressionStatements(path, options, print, \"statements\")),\n hardline,\n \"}\",\n ];\n}\nexport function printProjectionMemberExpression(path, options, print) {\n const node = path.node;\n return [path.call(print, \"base\"), node.selector, path.call(print, \"id\")];\n}\nexport function printProjectionLeftRightExpression(path, options, print) {\n const node = path.node;\n return [path.call(print, \"left\"), \" \", node.op, \" \", path.call(print, \"right\")];\n}\nexport function printProjectionUnaryExpression(path, options, print) {\n return [\"!\", path.call(print, \"target\")];\n}\nexport function printProjectionCallExpression(path, options, print) {\n const node = path.node;\n const target = path.call(print, \"target\");\n const params = printItemList(path, options, print, \"arguments\");\n if (node.callKind === \"method\") {\n return [target, \"(\", params, \")\"];\n }\n else {\n return [target, \"<\", params, \">\"];\n }\n}\nexport function printProjectionLambdaExpression(path, options, print) {\n return [\n \"(\",\n printItemList(path, options, print, \"parameters\"),\n \")\",\n \" => \",\n path.call(print, \"body\"),\n ];\n}\nexport function printProjectionLambdaParameterDeclaration(path, options, print) {\n return path.call(print, \"id\");\n}\nexport function printReturnExpression(path, options, print) {\n return [\"return \", path.call(print, \"value\")];\n}\nexport function printStringTemplateExpression(path, options, print) {\n const node = path.node;\n const multiline = isMultiline(node, options);\n const rawHead = getRawText(node.head, options);\n if (multiline) {\n const lastSpan = node.spans[node.spans.length - 1];\n const lastLines = splitLines(getRawText(lastSpan.literal, options));\n const whitespaceIndent = lastLines[lastLines.length - 1].length - 3;\n const content = [\n trimMultilineString(splitLines(rawHead.slice(3)), whitespaceIndent),\n path.map((span) => {\n const expression = span.call(print, \"expression\");\n const spanRawText = getRawText(span.node.literal, options);\n const spanLines = splitLines(spanRawText);\n return [\n expression,\n spanLines[0],\n literalline,\n trimMultilineString(spanLines.slice(1), whitespaceIndent),\n ];\n }, \"spans\"),\n ];\n return [`\"\"\"`, indent(markAsRoot([content]))];\n }\n else {\n const content = [\n rawHead,\n path.map((span) => {\n const expression = span.call(print, \"expression\");\n return [expression, getRawText(span.node.literal, options)];\n }, \"spans\"),\n ];\n return content;\n }\n}\nfunction trimMultilineString(lines, whitespaceIndent) {\n const newLines = [];\n for (let i = 0; i < lines.length; i++) {\n newLines.push(lines[i].slice(whitespaceIndent));\n if (i < lines.length - 1) {\n newLines.push(literalline);\n }\n }\n return newLines;\n}\nfunction printItemList(path, options, print, key) {\n return join(\", \", path.map(print, key));\n}\n/**\n * @param node Node that has postition information.\n * @param options Prettier options\n * @returns Raw text in the file for the given node.\n */\nfunction getRawText(node, options) {\n return options.originalText.slice(node.pos, node.end);\n}\nfunction hasComments(node, flags) {\n if (!node.comments || node.comments.length === 0) {\n return false;\n }\n const test = getCommentTestFunction(flags);\n return test ? node.comments.some(test) : true;\n}\nvar CommentCheckFlags;\n(function (CommentCheckFlags) {\n /** Check comment is a leading comment */\n CommentCheckFlags[CommentCheckFlags[\"Leading\"] = 2] = \"Leading\";\n /** Check comment is a trailing comment */\n CommentCheckFlags[CommentCheckFlags[\"Trailing\"] = 4] = \"Trailing\";\n /** Check comment is a dangling comment */\n CommentCheckFlags[CommentCheckFlags[\"Dangling\"] = 8] = \"Dangling\";\n /** Check comment is a block comment */\n CommentCheckFlags[CommentCheckFlags[\"Block\"] = 16] = \"Block\";\n /** Check comment is a line comment */\n CommentCheckFlags[CommentCheckFlags[\"Line\"] = 32] = \"Line\";\n /** Check comment is a `prettier-ignore` comment */\n CommentCheckFlags[CommentCheckFlags[\"PrettierIgnore\"] = 64] = \"PrettierIgnore\";\n /** Check comment is the first attached comment */\n CommentCheckFlags[CommentCheckFlags[\"First\"] = 128] = \"First\";\n /** Check comment is the last attached comment */\n CommentCheckFlags[CommentCheckFlags[\"Last\"] = 256] = \"Last\";\n})(CommentCheckFlags || (CommentCheckFlags = {}));\nfunction getCommentTestFunction(flags) {\n if (flags) {\n return (comment, index, comments) => !((flags & CommentCheckFlags.Leading && !comment.leading) ||\n (flags & CommentCheckFlags.Trailing && !comment.trailing) ||\n (flags & CommentCheckFlags.Dangling && (comment.leading || comment.trailing)) ||\n (flags & CommentCheckFlags.Block && !isBlockComment(comment)) ||\n (flags & CommentCheckFlags.Line && !isLineComment(comment)) ||\n (flags & CommentCheckFlags.First && index !== 0) ||\n (flags & CommentCheckFlags.Last && index !== comments.length - 1));\n }\n return undefined;\n}\nfunction isBlockComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\nfunction isLineComment(comment) {\n return comment.kind === SyntaxKind.BlockComment;\n}\n//# sourceMappingURL=printer.js.map","import { parse } from \"./parser.js\";\nimport { typespecPrinter } from \"./print/index.js\";\nexport const defaultOptions = {};\nexport const languages = [\n {\n name: \"TypeSpec\",\n parsers: [\"typespec\"],\n extensions: [\".tsp\", \".cadl\"],\n vscodeLanguageIds: [\"typespec\"],\n },\n];\nconst TypeSpecParser = {\n parse,\n astFormat: \"typespec-format\",\n locStart(node) {\n return node.pos;\n },\n locEnd(node) {\n return node.end;\n },\n};\nexport const parsers = {\n typespec: TypeSpecParser,\n};\nexport const printers = {\n \"typespec-format\": typespecPrinter,\n};\n//# sourceMappingURL=index.js.map","export { resolveCompilerOptions } from \"./config/index.js\";\nexport * from \"./core/index.js\";\nexport * from \"./lib/decorators.js\";\nexport * from \"./server/index.js\";\nimport * as formatter from \"./formatter/index.js\";\nexport const TypeSpecPrettierPlugin = formatter;\n// DO NOT ADD ANYMORE EXPORTS HERE, this is for backcompat. Utils should be exported from the utils folder.\nexport { \n/** @deprecated use import from @typespec/compiler/utils */\ncreateRekeyableMap, \n/** @deprecated use import from @typespec/compiler/utils */\nDuplicateTracker, \n/** @deprecated use import from @typespec/compiler/utils */\nQueue, \n/** @deprecated use import from @typespec/compiler/utils */\nTwoLevelMap, } from \"./utils/index.js\";\n/** @deprecated Use TypeSpecPrettierPlugin */\nexport const CadlPrettierPlugin = TypeSpecPrettierPlugin;\nimport { $decorators as intrinsicDecorators } from \"./lib/intrinsic/tsp-index.js\";\nimport { $decorators as stdDecorators } from \"./lib/tsp-index.js\";\n/** @internal for Typespec compiler */\nexport const $decorators = {\n TypeSpec: {\n ...stdDecorators.TypeSpec,\n },\n \"TypeSpec.Prototypes\": {\n ...intrinsicDecorators[\"TypeSpec.Prototypes\"],\n },\n};\n//# sourceMappingURL=index.js.map","/**\n * Reexport the bare minimum for rollup to do the tree shaking.\n */\nimport { TypeSpecPrettierPlugin } from \"@typespec/compiler\";\nexport default TypeSpecPrettierPlugin;\n"],"names":["trim","printIdentifier","parse","at","typespecParse","indent","align","group","markAsRoot","ifBreak","breakParent","line","softline","hardline","literalline","join","prettier.util","printIdentifierString"],"mappings":"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AK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,MAAM,EAAE,MAAM;AAClB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB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AAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,+GAA+G,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,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,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM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,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC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,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,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","x_google_ignoreList":[13,15]}