{"version":3,"sources":["https://lively-kernel.org/lively4/lively4-eventsourcing/src/external/eslint/eslint-parser.js"],"names":["babelDefault","babelPluginSyntaxJSX","babelPluginSyntaxDoExpressions","babelPluginSyntaxFunctionBind","babelPluginSyntaxGenerators","tokTypes","babylonToEspree","babel","syntaxPlugins","parse","code","options","parseForESLint","ast","babylonAst","transform","babelrc","plugins","presets","filename","undefined","sourceFileName","moduleIds","sourceMaps","compact","comments","resolveModuleSource","convertNodes","traverse","types","espreeAst","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"],"mappings":"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","file":"eslint-parser.js","sourcesContent":["import babelDefault from 'systemjs-babel-build';\nconst babel = babelDefault.babel;\n\nimport babelPluginSyntaxJSX from 'babel-plugin-syntax-jsx';\nimport babelPluginSyntaxDoExpressions from  'babel-plugin-syntax-do-expressions';\nimport babelPluginSyntaxFunctionBind from 'babel-plugin-syntax-function-bind';\nimport babelPluginSyntaxGenerators from 'babel-plugin-syntax-async-generators';\n\nimport { tokTypes } from \"src/external/eslint/tokTypes.js\";\nimport { babylonToEspree } from \"src/external/eslint/babylon-to-espree7/index.js\"\n\nconst syntaxPlugins = [\n  babelPluginSyntaxJSX,\n  babelPluginSyntaxDoExpressions,\n  babelPluginSyntaxFunctionBind,\n  babelPluginSyntaxGenerators\n];\n\nexport function parse(\n    code,\n    options\n) {\n    return parseForESLint(code, options).ast;\n}\n\nexport function parseForESLint (\n    code,\n    options,\n) {\n  var babylonAst = babel.transform(code, {\n          babelrc: false,\n          plugins: syntaxPlugins,\n          presets: [],\n          filename: undefined,\n          sourceFileName: undefined,\n          moduleIds: false,\n          sourceMaps: false,\n          compact: false,\n          comments: true,\n          code: true,\n          ast: true,\n          resolveModuleSource: undefined\n        }).ast;\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"]}