{"version":3,"sources":["https://lively-kernel.org/lively4/swd21-pipes-and-filters/src/external/eslint/babylon-to-espree7/toAST.js"],"names":["toAST","ast","traverse","t","code","state","source","VISITOR_KEYS","Property","ObjectProperty","MethodDefinition","astTransformVisitor","convertComments","noScope","enter","path","node","_babelType","type","innerComments","trailingComments","leadingComments","exit","isJSXText","isRestElement","parent","isSpreadElement","isTypeParameter","typeAnnotation","bound","isQualifiedTypeIdentifier","id","isObjectTypeProperty","key","isObjectTypeIndexer","isFunctionTypeParam","name","isImportDeclaration","isType","isTemplateLiteral","j","quasis","length","q","range","tail","loc","start","column","end"],"mappings":"AAAA;;;;;;AAIO,WAASA,KAAT,CAAeC,GAAf,EAAoBC,QAApB,EAA8BC,CAA9B,EAAiCC,IAAjC,EAAuC;AAC5C,QAAIC,QAAQ,EAAEC,QAAQF,IAAV,EAAZ;;AAEA;AACA;AACAD,MAAEI,YAAF,CAAeC,QAAf,GAA0BL,EAAEI,YAAF,CAAeE,cAAzC;AACAN,MAAEI,YAAF,CAAeG,gBAAf,GAAkC,CAC9B,KAD8B,EAE9B,OAF8B,EAG9B,YAH8B,EAI9B,YAJ8B,EAK9B,gBAL8B,CAAlC;;AAQAR,aAASD,GAAT,EAAcU,mBAAd,EAAmC,IAAnC,EAAyCN,KAAzC;;AAEA,WAAOF,EAAEI,YAAF,CAAeC,QAAtB;AACA,WAAOL,EAAEI,YAAF,CAAeG,gBAAtB;AACD;;mBAlBeV,K;;;;AAFPY,qB,sBAAAA,e;;;AAsBLD,yB,GAAsB;AACxBE,iBAAS,IADe;AAExBC,cAAMC,IAAN,EAAY;AACV,cAAIC,OAAOD,KAAKC,IAAhB;;AAEA;AACAA,eAAKC,UAAL,GAAkBD,KAAKE,IAAvB;;AAEA,cAAIF,KAAKG,aAAT,EAAwB;AACtBH,iBAAKI,gBAAL,GAAwBJ,KAAKG,aAA7B;AACA,mBAAOH,KAAKG,aAAZ;AACD;;AAED,cAAIH,KAAKI,gBAAT,EAA2B;AACzBR,4BAAgBI,KAAKI,gBAArB;AACD;;AAED,cAAIJ,KAAKK,eAAT,EAA0B;AACxBT,4BAAgBI,KAAKK,eAArB;AACD;AACF,SApBuB;AAqBxBC,aAAKP,IAAL,EAAW;AACT,cAAIC,OAAOD,KAAKC,IAAhB;;AAEA,cAAID,KAAKQ,SAAL,EAAJ,EAAsB;AACpBP,iBAAKE,IAAL,GAAY,SAAZ;AACD;;AAED,cACEH,KAAKS,aAAL,MACAT,KAAKU,MADL,IAEAV,KAAKU,MAAL,CAAYP,IAAZ,KAAqB,eAHvB,EAIE;AACAF,iBAAKE,IAAL,GAAY,0BAAZ;AACD;;AAED,cACEH,KAAKW,eAAL,MACAX,KAAKU,MADL,IAEAV,KAAKU,MAAL,CAAYP,IAAZ,KAAqB,kBAHvB,EAIE;AACAF,iBAAKE,IAAL,GAAY,4BAAZ;AACD;;AAED,cAAIH,KAAKY,eAAL,EAAJ,EAA4B;AAC1BX,iBAAKE,IAAL,GAAY,YAAZ;AACAF,iBAAKY,cAAL,GAAsBZ,KAAKa,KAA3B;AACA,mBAAOb,KAAKa,KAAZ;AACD;;AAED;AACA;AACA,cAAId,KAAKe,yBAAL,EAAJ,EAAsC;AACpC,mBAAOd,KAAKe,EAAZ;AACD;AACD;AACA,cAAIhB,KAAKiB,oBAAL,EAAJ,EAAiC;AAC/B,mBAAOhB,KAAKiB,GAAZ;AACD;AACD;AACA,cAAIlB,KAAKmB,mBAAL,EAAJ,EAAgC;AAC9B,mBAAOlB,KAAKe,EAAZ;AACD;AACD;AACA,cAAIhB,KAAKoB,mBAAL,EAAJ,EAAgC;AAC9B,mBAAOnB,KAAKoB,IAAZ;AACD;;AAED;;AAEA,cAAIrB,KAAKsB,mBAAL,EAAJ,EAAgC;AAC9B,mBAAOrB,KAAKsB,MAAZ;AACD;;AAED;AACA,cAAIvB,KAAKwB,iBAAL,EAAJ,EAA8B;AAC5B,iBAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIxB,KAAKyB,MAAL,CAAYC,MAAhC,EAAwCF,GAAxC,EAA6C;AAC3C,kBAAIG,IAAI3B,KAAKyB,MAAL,CAAYD,CAAZ,CAAR;AACAG,gBAAEC,KAAF,CAAQ,CAAR,KAAc,CAAd;AACA,kBAAID,EAAEE,IAAN,EAAY;AACVF,kBAAEC,KAAF,CAAQ,CAAR,KAAc,CAAd;AACD,eAFD,MAEO;AACLD,kBAAEC,KAAF,CAAQ,CAAR,KAAc,CAAd;AACD;AACDD,gBAAEG,GAAF,CAAMC,KAAN,CAAYC,MAAZ,IAAsB,CAAtB;AACA,kBAAIL,EAAEE,IAAN,EAAY;AACVF,kBAAEG,GAAF,CAAMG,GAAN,CAAUD,MAAV,IAAoB,CAApB;AACD,eAFD,MAEO;AACLL,kBAAEG,GAAF,CAAMG,GAAN,CAAUD,MAAV,IAAoB,CAApB;AACD;AACF;AACF;AACF;AA5FuB,O","file":"toAST.js","sourcesContent":["\"use strict\";\n\nimport { convertComments } from \"./convertComments.js\";\n\nexport function toAST(ast, traverse, t, code) {\n  var state = { source: code };\n  \n  // Monkey patch visitor keys in order to be able to traverse the estree nodes\n  // necessary for a deep traverse\n  t.VISITOR_KEYS.Property = t.VISITOR_KEYS.ObjectProperty;\n  t.VISITOR_KEYS.MethodDefinition = [\n      \"key\",\n      \"value\",\n      \"decorators\",\n      \"returnType\",\n      \"typeParameters\",\n  ];\n  \n  traverse(ast, astTransformVisitor, null, state);\n  \n  delete t.VISITOR_KEYS.Property;\n  delete t.VISITOR_KEYS.MethodDefinition;\n}\n\nvar astTransformVisitor = {\n  noScope: true,\n  enter(path) {\n    var node = path.node;\n\n    // private var to track original node type\n    node._babelType = node.type;\n\n    if (node.innerComments) {\n      node.trailingComments = node.innerComments;\n      delete node.innerComments;\n    }\n\n    if (node.trailingComments) {\n      convertComments(node.trailingComments);\n    }\n\n    if (node.leadingComments) {\n      convertComments(node.leadingComments);\n    }\n  },\n  exit(path) {\n    var node = path.node;\n\n    if (path.isJSXText()) {\n      node.type = \"Literal\";\n    }\n\n    if (\n      path.isRestElement() &&\n      path.parent &&\n      path.parent.type === \"ObjectPattern\"\n    ) {\n      node.type = \"ExperimentalRestProperty\";\n    }\n\n    if (\n      path.isSpreadElement() &&\n      path.parent &&\n      path.parent.type === \"ObjectExpression\"\n    ) {\n      node.type = \"ExperimentalSpreadProperty\";\n    }\n\n    if (path.isTypeParameter()) {\n      node.type = \"Identifier\";\n      node.typeAnnotation = node.bound;\n      delete node.bound;\n    }\n\n    // flow: prevent \"no-undef\"\n    // for \"Component\" in: \"let x: React.Component\"\n    if (path.isQualifiedTypeIdentifier()) {\n      delete node.id;\n    }\n    // for \"b\" in: \"var a: { b: Foo }\"\n    if (path.isObjectTypeProperty()) {\n      delete node.key;\n    }\n    // for \"indexer\" in: \"var a: {[indexer: string]: number}\"\n    if (path.isObjectTypeIndexer()) {\n      delete node.id;\n    }\n    // for \"param\" in: \"var a: { func(param: Foo): Bar };\"\n    if (path.isFunctionTypeParam()) {\n      delete node.name;\n    }\n\n    // modules\n\n    if (path.isImportDeclaration()) {\n      delete node.isType;\n    }\n\n    // template string range fixes\n    if (path.isTemplateLiteral()) {\n      for (var j = 0; j < node.quasis.length; j++) {\n        var q = node.quasis[j];\n        q.range[0] -= 1;\n        if (q.tail) {\n          q.range[1] += 1;\n        } else {\n          q.range[1] += 2;\n        }\n        q.loc.start.column -= 1;\n        if (q.tail) {\n          q.loc.end.column += 1;\n        } else {\n          q.loc.end.column += 2;\n        }\n      }\n    }\n  },\n}\n"]}