{"version":3,"names":["System","register","_export","_context","parseForAST","loadPlugins","babelDefault","__SystemJSRewritingHack","babel","t","parseSource","filename","source","ast","e","console","log","parseModuleSemanticsFromSource","parseModuleSemantics","classes","functions","dependencies","importDeclarations","Map","functionExports","classExports","unboundIdentifiers","comments","traverse","Program","path","ea","node","body","metaInfos","leadingComments","comment","info","start","end","value","lines","split","firstline","line","m","match","key","includes","push","ImportDeclaration","specifierNames","moduleUrl","specifiers","forEach","item","type","set","local","name","dependency","url","names","FunctionDeclaration","id","funcNode","func","loc","kind","static","ClassDeclaration","superClassName","superClassUrl","clazz","superClass","get","methods","method","ExportNamedDeclaration","isFunctionDeclaration","declaration","isClassDeclaration","Identifier","hasASTBinding","getBindingDeclarationIdentifierPath","binding","getFirstSelectedIdentifierWithName","identifier","startPath","isIdentifier","first","stop","scope","hasBinding","getBinding","identifierPaths","Set","referencePaths","constantViolations","map","cv","setters","_srcPluginBabelJs","_srcExternalBabelBabel7defaultJs","default","execute","_recorder_","_src_client_javascript_js","Object","defineProperty","thisIsVererySecretVariableName","enumerable","configurable","types"],"sources":["javascript.js"],"sourcesContent":["\"disable examples\"\n\"enable deepeval\"\n\n/*MD # JavaScript Parsing / Semantics\n\n(used in fileindex etc)\n\nMD*/\n\n/*MD \n\n# Meta Nodes #Babylonian #Programming\n\n- Issue: focus lost while using text elements in widgets ....\n- saving, both losing changes when closing... and no feedback\n  - even if not saving... we need some kind of auto backup for recovery.... maybe in local storage\n- feedback while execution\n- typing stuttering while example execution\n  - Solution: remote/external non-blocking execution.... tools need to work on remote objects (LSP anybody?)\n  - Benefit: might bring Babylonian to other languages + heavy loads... e.g. number crunching examples\n- probes text annotations can extent while writing (probe on m[1]) breaks probe...\n- external tools / UX of \"Customs instance Editor\" bad...\n- shortcut support for probes and example creation? because... my hands are on the keyboard... UX baseline: like select + Ctrl+P\n- multiline text editing in code mirror text widgets (e.g. examples..)\n- long running examples may kill the system\n\nMD*/\n\nimport {parseForAST, loadPlugins} from \"src/plugin-babel.js\"\n\nimport babelDefault from 'src/external/babel/babel7default.js'\nconst babel = babelDefault.babel;\nconst t = babel.types;\n\nexport function parseSource(filename, source) {\n  try {\n    return  parseForAST(source).ast\n  } catch(e) {\n    console.log('FileIndex, could not parse: ' + filename, e)\n    return null\n  }\n}\n\nexport function parseModuleSemanticsFromSource(filename, source) {\n  var ast = parseSource(filename, source)\n  if (ast) {\n    return parseModuleSemantics(ast)\n  }\n}\n\nexport function parseModuleSemantics(ast) {\n  \n\n  let classes = []\n  let functions = []\n  let dependencies = []\n  let importDeclarations = new Map()\n  let functionExports = []\n  let classExports = []\n  let unboundIdentifiers = []\n  let comments = []\n  \n  \n/*MD ## Comments \n\n```javascript\n  import * as javascript from \"https://lively-kernel.org/lively4/lively4-jens/src/client/javascript.js\"\nvar url = \"https://lively-kernel.org/lively4/lively4-jens/src/components/tools/lively-sync.js\";\n(async () => {\n  var source = await fetch(url).then(r => r.text())\n  javascript.parseModuleSemanticsFromSource(url, source)\n\n})()\n```\n\nMD*/\n  \n  babel.traverse(ast,{\n    Program(path) {\n\n      for (let ea of path.node.body) {\n        let metaInfos = ['Keywords', 'Authors']\n        if (ea.leadingComments) {\n          for(let comment of ea.leadingComments) {\n            let info = {\n                start: comment.start,\n                end: comment.end,\n              }\n            \n            if (comment.value) {\n              let lines = comment.value.split(\"\\n\")\n              info.firstline = lines[0] \n              \n              for(let line of lines) {\n                let m = line.match(/([A-Za-z][A-Za-z0-9]*): (.*)/)\n                if (m) {\n                  let key = m[1]\n                  let value = m[2]\n                  if (metaInfos.includes(key)) {\n                    info[key] = value.split(/ +/)\n                  } \n                }\n              }              \n            }\n            comments.push(info)\n          }\n        }\n      }\n    },\n    ImportDeclaration(path) {\n      if (path.node.source && path.node.source.value) {\n        let specifierNames = []\n        let moduleUrl = path.node.source.value\n        if (path.node.specifiers) { \n          path.node.specifiers.forEach(function(item) {\n            if (item.type === \"ImportNamespaceSpecifier\") {\n              specifierNames.push('*')\n              importDeclarations.set('*', moduleUrl)\n            } else {\n              specifierNames.push(item.local.name)\n              importDeclarations.set(item.local.name, moduleUrl)\n            }\n          })\n        }\n        let dependency = {\n          url: path.node.source.value,\n          names: specifierNames\n        }\n         dependencies.push(dependency)\n      }\n    },\n    FunctionDeclaration(path) {\n      if (path.node.id) {\n        let funcNode = path.node\n        let func = {\n            name: funcNode.id.name,\n            start: funcNode.start, // start byte \n            end: funcNode.end,     // end byte\n            loc: funcNode.loc.end.line - funcNode.loc.start.line + 1,\n            kind: funcNode.kind,\n            static: funcNode.static,\n            leadingComments: funcNode.leadingComments\n         }\n         functions.push(func)\n      }\n    },\n    ClassDeclaration(path) {\n      let superClassName = ''\n      let superClassUrl = ''\n      if (path.node.id) {\n        let clazz = {\n          name: path.node.id.name,\n          start: path.node.start, // start byte \n          end: path.node.end,     // end byte\n          loc: path.node.loc.end.line - path.node.loc.start.line + 1\n        }\n        superClassName = (path.node.superClass) ? path.node.superClass.name : ''\n        superClassUrl = importDeclarations.get(superClassName)\n        let methods = []\n\n        if (path.node.body.body) {\n          path.node.body.body.forEach(function(item) {\n            if(item.type === \"ClassMethod\") {\n              let method = {\n                name: item.key.name,\n                loc: item.loc.end.line - item.loc.start.line + 1,\n                start: item.start,\n                kind: item.kind,\n                static: item.static,\n                end: item.end,\n                leadingComments: item.leadingComments\n              }\n              methods.push(method)\n            }              \n          })\n        }\n        clazz.methods = methods\n        clazz.superClassName = superClassName\n        clazz.superClassUrl = superClassUrl\n        classes.push(clazz)\n      } \n    },\n    ExportNamedDeclaration(path) {\n      if(t.isFunctionDeclaration(path.node.declaration)) {\n        functionExports.push(path.node.declaration.id.name)\n      }\n      if(t.isClassDeclaration(path.node.declaration)) {\n        classExports.push(path.node.declaration.id.name)\n      }\n    },\n    Identifier(path) {\n      if (!(hasASTBinding(path))) {\n        unboundIdentifiers.push(path.node.name);\n      }\n    }\n  })\n  // #TODO #BabylonianProgramming #Warning... adding a probe here breaks babylonian programming... because of to much data? \n  // #Research besides time, there are cutoffs needed for to heavy tracing loads.... and one time tasks that are to heavy like serializing the whole world, or going in a cycle? \n  // The bug was caused by stupid client code... (adding to data structure while iterating it) but it should not break the tools\n  return {classes, functions, dependencies, functionExports, classExports, unboundIdentifiers, comments}\n}\n\nfunction getBindingDeclarationIdentifierPath(binding) {\n  return getFirstSelectedIdentifierWithName(binding.path, binding.identifier.name);\n}\n\nfunction getFirstSelectedIdentifierWithName(startPath, name) {\n  \n  if (t.isIdentifier(startPath.node, { name: name })) {\n    return startPath;\n  }\n  var first;\n  startPath.traverse({\n    Identifier(path) {\n      if (!first && t.isIdentifier(path.node, { name: name })) {\n        first = path;\n        path.stop();\n      }\n    }\n  });\n  return first;\n}\n\nfunction hasASTBinding(identifier) {\n  if (!identifier.scope.hasBinding(identifier.node.name)) return false;\n\n  const binding = identifier.scope.getBinding(identifier.node.name);\n  if (!binding) return false;\n\n  const identifierPaths = [...new Set([getBindingDeclarationIdentifierPath(binding), ...binding.referencePaths, ...binding.constantViolations.map(cv => getFirstSelectedIdentifierWithName(cv, binding.identifier.name))])];\n  return identifierPaths.includes(identifier);\n}\n/* Context: {\"context\":{\"prescript\":\"\",\"postscript\":\"\"},\"customInstances\":[{\"id\":\"a009_c6f3_e94e\",\"name\":\"f1\",\"code\":\"return `function f(x) { return x * 2}`;\"},{\"id\":\"bf7e_1c8f_26da\",\"name\":\"metainfo\",\"code\":\"return `/\\\\*\\\\nComponentBin: #Tool #Debugging #bar\\\\n\\\\*\\\\/ class Foo {}`;\"}]} */"],"mappings":"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"}