{"version":3,"names":["ESLINT_VERSION","require","convertTemplateType","tokens","tl","curlyBrace","templateTokens","result","addTemplateType","start","end","length","value","reduce","token","type","label","template","push","loc","forEach","backQuote","dollarBraceL","braceR","convertToken","source","range","name","semi","comma","parenL","parenR","braceL","slash","dot","bracketL","bracketR","ellipsis","arrow","pipeline","star","incDec","colon","question","at","logicalOR","logicalAND","nullishCoalescing","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","exponent","bang","tilde","doubleColon","hash","questionDot","braceHashL","braceBarL","braceBarR","bracketHashL","bracketBarL","bracketBarR","doubleCaret","doubleAt","isAssign","_token$value","jsxTagStart","jsxTagEnd","jsxName","jsxText","keyword","num","slice","string","regexp","regex","pattern","flags","bigint","privateName","templateNonTail","templateTail","rightAssociative","module","exports","convertTokens","code","templateTypeMergedTokens","i","tokenType","nextToken","column"],"sources":["../../src/convert/convertTokens.cjs"],"sourcesContent":["const ESLINT_VERSION = require(\"../utils/eslint-version.cjs\");\n\nfunction convertTemplateType(tokens, tl) {\n let curlyBrace = null;\n let templateTokens = [];\n const result = [];\n\n function addTemplateType() {\n const start = templateTokens[0];\n const end = templateTokens[templateTokens.length - 1];\n\n const value = templateTokens.reduce((result, token) => {\n if (token.value) {\n result += token.value;\n } else if (token.type.label !== tl.template) {\n result += token.type.label;\n }\n\n return result;\n }, \"\");\n\n result.push({\n type: \"Template\",\n value: value,\n start: start.start,\n end: end.end,\n loc: {\n start: start.loc.start,\n end: end.loc.end,\n },\n });\n\n templateTokens = [];\n }\n\n tokens.forEach(token => {\n switch (token.type.label) {\n case tl.backQuote:\n if (curlyBrace) {\n result.push(curlyBrace);\n curlyBrace = null;\n }\n\n templateTokens.push(token);\n\n if (templateTokens.length > 1) {\n addTemplateType();\n }\n\n break;\n\n case tl.dollarBraceL:\n templateTokens.push(token);\n addTemplateType();\n break;\n\n case tl.braceR:\n if (curlyBrace) {\n result.push(curlyBrace);\n }\n\n curlyBrace = token;\n break;\n\n case tl.template:\n if (curlyBrace) {\n templateTokens.push(curlyBrace);\n curlyBrace = null;\n }\n\n templateTokens.push(token);\n break;\n\n default:\n if (curlyBrace) {\n result.push(curlyBrace);\n curlyBrace = null;\n }\n\n result.push(token);\n }\n });\n\n return result;\n}\n\nfunction convertToken(token, source, tl) {\n const { type } = token;\n const { label } = type;\n token.range = [token.start, token.end];\n\n if (label === tl.name) {\n if (token.value === \"static\") {\n token.type = \"Keyword\";\n } else {\n token.type = \"Identifier\";\n }\n } else if (\n label === tl.semi ||\n label === tl.comma ||\n label === tl.parenL ||\n label === tl.parenR ||\n label === tl.braceL ||\n label === tl.braceR ||\n label === tl.slash ||\n label === tl.dot ||\n label === tl.bracketL ||\n label === tl.bracketR ||\n label === tl.ellipsis ||\n label === tl.arrow ||\n label === tl.pipeline ||\n label === tl.star ||\n label === tl.incDec ||\n label === tl.colon ||\n label === tl.question ||\n label === tl.template ||\n label === tl.backQuote ||\n label === tl.dollarBraceL ||\n label === tl.at ||\n label === tl.logicalOR ||\n label === tl.logicalAND ||\n label === tl.nullishCoalescing ||\n label === tl.bitwiseOR ||\n label === tl.bitwiseXOR ||\n label === tl.bitwiseAND ||\n label === tl.equality ||\n label === tl.relational ||\n label === tl.bitShift ||\n label === tl.plusMin ||\n label === tl.modulo ||\n label === tl.exponent ||\n label === tl.bang ||\n label === tl.tilde ||\n label === tl.doubleColon ||\n label === tl.hash ||\n label === tl.questionDot ||\n label === tl.braceHashL ||\n label === tl.braceBarL ||\n label === tl.braceBarR ||\n label === tl.bracketHashL ||\n label === tl.bracketBarL ||\n label === tl.bracketBarR ||\n label === tl.doubleCaret ||\n label === tl.doubleAt ||\n type.isAssign\n ) {\n token.type = \"Punctuator\";\n token.value ??= label;\n } else if (label === tl.jsxTagStart) {\n token.type = \"Punctuator\";\n token.value = \"<\";\n } else if (label === tl.jsxTagEnd) {\n token.type = \"Punctuator\";\n token.value = \">\";\n } else if (label === tl.jsxName) {\n token.type = \"JSXIdentifier\";\n } else if (label === tl.jsxText) {\n token.type = \"JSXText\";\n } else if (type.keyword === \"null\") {\n token.type = \"Null\";\n } else if (type.keyword === \"false\" || type.keyword === \"true\") {\n token.type = \"Boolean\";\n } else if (type.keyword) {\n token.type = \"Keyword\";\n } else if (label === tl.num) {\n token.type = \"Numeric\";\n token.value = source.slice(token.start, token.end);\n } else if (label === tl.string) {\n token.type = \"String\";\n token.value = source.slice(token.start, token.end);\n } else if (label === tl.regexp) {\n token.type = \"RegularExpression\";\n const value = token.value;\n token.regex = {\n pattern: value.pattern,\n flags: value.flags,\n };\n token.value = `/${value.pattern}/${value.flags}`;\n } else if (label === tl.bigint) {\n token.type = \"Numeric\";\n token.value = `${token.value}n`;\n } else if (label === tl.privateName) {\n token.type = \"PrivateIdentifier\";\n } else if (label === tl.templateNonTail || label === tl.templateTail) {\n token.type = \"Template\";\n }\n\n if (typeof token.type !== \"string\") {\n // Acorn does not have rightAssociative\n delete token.type.rightAssociative;\n }\n}\n\nmodule.exports = function convertTokens(tokens, code, tl) {\n const result = [];\n const templateTypeMergedTokens = process.env.BABEL_8_BREAKING\n ? tokens\n : convertTemplateType(tokens, tl);\n // The last token is always tt.eof and should be skipped\n for (let i = 0, { length } = templateTypeMergedTokens; i < length - 1; i++) {\n const token = templateTypeMergedTokens[i];\n const tokenType = token.type;\n if (tokenType === \"CommentLine\" || tokenType === \"CommentBlock\") {\n continue;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Babel 8 already produces a single token\n\n if (\n ESLINT_VERSION >= 8 &&\n i + 1 < length &&\n tokenType.label === tl.hash\n ) {\n const nextToken = templateTypeMergedTokens[i + 1];\n\n // We must disambiguate private identifier from the hack pipes topic token\n if (nextToken.type.label === tl.name && token.end === nextToken.start) {\n i++;\n\n nextToken.type = \"PrivateIdentifier\";\n nextToken.start -= 1;\n nextToken.loc.start.column -= 1;\n nextToken.range = [nextToken.start, nextToken.end];\n\n result.push(nextToken);\n continue;\n }\n }\n }\n\n convertToken(token, code, tl);\n result.push(token);\n }\n\n return result;\n};\n"],"mappings":"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"}