{"version":3,"sources":["https://lively-kernel.org/lively4/composed-offset/src/external/eslint/eslint-parser.js"],"names":["parse","code","options","parseForESLint","ast","babylonAst","parseForAST","convertNodes","babel","traverse","types","espreeAst","babylonToEspree","tokTypes","scopeManager","visitorKeys","babelTypes","state","source","traverseRules","noScope","enter","path","node","end","range","start","ObjectProperty","kind","type","ObjectMethod","value","id","generator","expression","async","params","body","returnType","typeParameters","ClassMethod","NumericLiteral","raw","toString","NullLiteral","StringLiteral","BooleanLiteral","RegExpLiteral","extra","regex","pattern","flags","VISITOR_KEYS","Property","MethodDefinition","eslintPlugins","babel7","window","lively4babel"],"mappings":"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","file":"eslint-parser.js","sourcesContent":["import {parseForAST, eslintPlugins} from \"src/external/babel/plugin-babel7.js\"\nimport { tokTypes } from \"src/external/eslint/tokTypes.js\";\nimport { babylonToEspree } from \"src/external/eslint/babylon-to-espree7/index.js\"\n\nvar babel7 =  window.lively4babel\nvar babel =  babel7.babel\n\n\nexport function parse(code,options) {\n  // ignore options\n  return parseForESLint(code).ast\n}\n\nexport function parseForESLint(code) {\n  var babylonAst = parseForAST(code).ast;\n  \n  \n  babylonAst = convertNodes(code, babylonAst, babel.traverse, babel.types);\n  var espreeAst = babylonToEspree(babylonAst, babel.traverse, tokTypes, babel.types, code);\n  \n  const scopeManager = null;\n  const visitorKeys = null;\n  return { ast: espreeAst, scopeManager, visitorKeys };\n      \n}\n\nfunction convertNodes(code, ast, traverse, babelTypes) {\n    const state = { source: code };\n    const traverseRules = {\n        noScope: true,\n        enter(path) {\n            if (path.node.end) {\n                path.node.range = [path.node.start, path.node.end];\n            }\n        },\n        ObjectProperty: function(path) {\n            path.node.kind = \"init\";\n            path.node.type = \"Property\";\n        },\n        ObjectMethod: function(path) {\n            if (!path.node || path.node === \"method\") {\n                path.node.kind = \"init\";\n            }\n            path.node.value = {\n                type: \"FunctionExpression\",\n                start: path.node.start,\n                end: path.node.end,\n                range: [path.node.start, path.node.end],\n                id: path.node.id,\n                generator: path.node.generator,\n                expression: path.node.expression,\n                async: path.node.async,\n                params: path.node.params,\n                body: path.node.body\n            };\n            if (path.node.returnType) {\n              path.node.value.returnType = path.node.returnType;\n            }\n            if (path.node.typeParameters) {\n              path.node.value.typeParameters = path.node.typeParameters;\n            }\n            path.node.type = \"Property\";\n        },\n        ClassMethod: function(path) {\n            path.node.value = {\n                type: \"FunctionExpression\",\n                start: path.node.start,\n                end: path.node.end,\n                range: [path.node.start, path.node.end],\n                id: path.node.id,\n                generator: path.node.generator,\n                expression: path.node.expression,\n                async: path.node.async,\n                params: path.node.params,\n                body: path.node.body\n            };\n            if (path.node.returnType) {\n              path.node.value.returnType = path.node.returnType;\n            }\n            if (path.node.typeParameters) {\n              path.node.value.typeParameters = path.node.typeParameters;\n            }\n            path.node.type = \"MethodDefinition\";\n        },\n        NumericLiteral: function(path) {\n            path.node.type = \"Literal\";\n            path.node.raw = path.node.value.toString();\n        },\n        NullLiteral: function(path) {\n            path.node.type = \"Literal\";\n            path.node.value = null;\n            path.node.raw = \"null\";\n        },\n        StringLiteral: function(path) {\n            path.node.type = \"Literal\";\n            path.node.raw = path.node.value.toString();\n        },\n        BooleanLiteral: function(path) {\n            path.node.type = \"Literal\";\n            path.node.raw = path.node.value.toString();\n        },\n        RegExpLiteral : function(path) {\n            path.node.type = \"Literal\";\n            path.node.raw = path.node.extra.raw;\n            path.node.value = {};\n            path.node.regex = {\n              pattern: path.node.pattern,\n              flags: path.node.flags\n            };\n        },\n      \n    };\n  \n     // Monkey patch visitor keys in order to be able to traverse the estree nodes\n    // necessary for a deep traverse\n    babelTypes.VISITOR_KEYS.Property = babelTypes.VISITOR_KEYS.ObjectProperty;\n    babelTypes.VISITOR_KEYS.MethodDefinition = [\n        \"key\",\n        \"value\",\n        \"decorators\",\n        \"returnType\",\n        \"typeParameters\",\n    ];\n\n    ast.range = [ast.start, ast.end];\n    traverse(ast, traverseRules, null, state);\n  \n    delete babelTypes.VISITOR_KEYS.Property;\n    delete babelTypes.VISITOR_KEYS.MethodDefinition;\n  \n  return ast;\n}\n\n"]}