UNPKG

57.3 kBJSONView Raw
1{"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/index.ts":{"path":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/index.ts","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":33}},"3":{"start":{"line":4,"column":4},"end":{"line":4,"column":89}},"4":{"start":{"line":4,"column":71},"end":{"line":4,"column":83}},"5":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"6":{"start":{"line":6,"column":26},"end":{"line":6,"column":33}},"7":{"start":{"line":7,"column":4},"end":{"line":7,"column":17}},"8":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"9":{"start":{"line":10,"column":4},"end":{"line":10,"column":126}},"10":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"11":{"start":{"line":10,"column":95},"end":{"line":10,"column":126}},"12":{"start":{"line":12,"column":0},"end":{"line":12,"column":62}},"13":{"start":{"line":13,"column":0},"end":{"line":13,"column":50}},"14":{"start":{"line":14,"column":0},"end":{"line":14,"column":50}},"15":{"start":{"line":15,"column":0},"end":{"line":15,"column":45}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":74},"end":{"line":2,"column":75}},"loc":{"start":{"line":2,"column":96},"end":{"line":5,"column":1}},"line":2},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":58},"end":{"line":4,"column":59}},"loc":{"start":{"line":4,"column":69},"end":{"line":4,"column":85}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":6},"end":{"line":5,"column":7}},"loc":{"start":{"line":5,"column":28},"end":{"line":8,"column":1}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":50},"end":{"line":9,"column":51}},"loc":{"start":{"line":9,"column":71},"end":{"line":11,"column":1}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":22},"end":{"line":8,"column":3}},"type":"binary-expr","locations":[{"start":{"line":2,"column":23},"end":{"line":2,"column":27}},{"start":{"line":2,"column":31},"end":{"line":2,"column":51}},{"start":{"line":2,"column":57},"end":{"line":8,"column":2}}],"line":2},"1":{"loc":{"start":{"line":2,"column":57},"end":{"line":8,"column":2}},"type":"cond-expr","locations":[{"start":{"line":2,"column":74},"end":{"line":5,"column":1}},{"start":{"line":5,"column":6},"end":{"line":8,"column":1}}],"line":2},"2":{"loc":{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},"type":"if","locations":[{"start":{"line":3,"column":4},"end":{"line":3,"column":33}},{"start":{"line":3,"column":4},"end":{"line":3,"column":33}}],"line":3},"3":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},"type":"if","locations":[{"start":{"line":6,"column":4},"end":{"line":6,"column":33}},{"start":{"line":6,"column":4},"end":{"line":6,"column":33}}],"line":6},"4":{"loc":{"start":{"line":9,"column":19},"end":{"line":11,"column":1}},"type":"binary-expr","locations":[{"start":{"line":9,"column":20},"end":{"line":9,"column":24}},{"start":{"line":9,"column":28},"end":{"line":9,"column":45}},{"start":{"line":9,"column":50},"end":{"line":11,"column":1}}],"line":9},"5":{"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},"type":"if","locations":[{"start":{"line":10,"column":21},"end":{"line":10,"column":126}},{"start":{"line":10,"column":21},"end":{"line":10,"column":126}}],"line":10},"6":{"loc":{"start":{"line":10,"column":25},"end":{"line":10,"column":93}},"type":"binary-expr","locations":[{"start":{"line":10,"column":25},"end":{"line":10,"column":40}},{"start":{"line":10,"column":44},"end":{"line":10,"column":93}}],"line":10}},"s":{"0":1,"1":2,"2":2,"3":2,"4":1,"5":0,"6":0,"7":0,"8":1,"9":3,"10":2,"11":2,"12":1,"13":1,"14":1,"15":1},"f":{"0":2,"1":1,"2":0,"3":3},"b":{"0":[1,1,1],"1":[1,0],"2":[2,0],"3":[0,0],"4":[1,1,1],"5":[2,0],"6":[2,2]},"inputSourceMap":{"version":3,"file":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/index.ts","sources":["/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kDAAgC;AAChC,kDAAgC;AAChC,6CAA2B","sourcesContent":["export * from './core/compiler';\nexport * from './core/reporter';\nexport * from './lib/solc';\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"edf6e482c0b78884d5e5fc9ad362ac51cefc94f0","contentHash":"ecad93b7dfaa5395d442d634b1ad349151502fc3f4bfaedbe024375d37f71955"},"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/compiler.ts":{"path":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/compiler.ts","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":3,"column":28},"end":{"line":3,"column":110}},"2":{"start":{"line":3,"column":91},"end":{"line":3,"column":106}},"3":{"start":{"line":4,"column":4},"end":{"line":9,"column":7}},"4":{"start":{"line":5,"column":36},"end":{"line":5,"column":97}},"5":{"start":{"line":5,"column":42},"end":{"line":5,"column":70}},"6":{"start":{"line":5,"column":85},"end":{"line":5,"column":95}},"7":{"start":{"line":6,"column":35},"end":{"line":6,"column":100}},"8":{"start":{"line":6,"column":41},"end":{"line":6,"column":73}},"9":{"start":{"line":6,"column":88},"end":{"line":6,"column":98}},"10":{"start":{"line":7,"column":32},"end":{"line":7,"column":116}},"11":{"start":{"line":8,"column":8},"end":{"line":8,"column":78}},"12":{"start":{"line":11,"column":0},"end":{"line":11,"column":62}},"13":{"start":{"line":12,"column":0},"end":{"line":12,"column":26}},"14":{"start":{"line":13,"column":13},"end":{"line":13,"column":28}},"15":{"start":{"line":14,"column":11},"end":{"line":14,"column":24}},"16":{"start":{"line":15,"column":12},"end":{"line":15,"column":31}},"17":{"start":{"line":16,"column":12},"end":{"line":16,"column":27}},"18":{"start":{"line":17,"column":20},"end":{"line":17,"column":49}},"19":{"start":{"line":20,"column":8},"end":{"line":20,"column":25}},"20":{"start":{"line":21,"column":8},"end":{"line":31,"column":10}},"21":{"start":{"line":32,"column":8},"end":{"line":32,"column":69}},"22":{"start":{"line":33,"column":8},"end":{"line":33,"column":75}},"23":{"start":{"line":36,"column":8},"end":{"line":47,"column":11}},"24":{"start":{"line":37,"column":30},"end":{"line":37,"column":57}},"25":{"start":{"line":38,"column":12},"end":{"line":38,"column":42}},"26":{"start":{"line":39,"column":12},"end":{"line":39,"column":38}},"27":{"start":{"line":40,"column":25},"end":{"line":40,"column":62}},"28":{"start":{"line":41,"column":12},"end":{"line":45,"column":15}},"29":{"start":{"line":42,"column":16},"end":{"line":44,"column":18}},"30":{"start":{"line":46,"column":12},"end":{"line":46,"column":31}},"31":{"start":{"line":50,"column":8},"end":{"line":50,"column":74}},"32":{"start":{"line":51,"column":8},"end":{"line":53,"column":10}},"33":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"34":{"start":{"line":57,"column":12},"end":{"line":57,"column":47}},"35":{"start":{"line":59,"column":22},"end":{"line":59,"column":48}},"36":{"start":{"line":60,"column":8},"end":{"line":60,"column":84}},"37":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"38":{"start":{"line":62,"column":12},"end":{"line":62,"column":45}},"39":{"start":{"line":64,"column":8},"end":{"line":64,"column":50}},"40":{"start":{"line":67,"column":8},"end":{"line":84,"column":22}},"41":{"start":{"line":68,"column":12},"end":{"line":82,"column":15}},"42":{"start":{"line":69,"column":35},"end":{"line":69,"column":59}},"43":{"start":{"line":70,"column":33},"end":{"line":70,"column":75}},"44":{"start":{"line":71,"column":16},"end":{"line":73,"column":17}},"45":{"start":{"line":72,"column":20},"end":{"line":72,"column":27}},"46":{"start":{"line":74,"column":32},"end":{"line":74,"column":82}},"47":{"start":{"line":75,"column":34},"end":{"line":75,"column":87}},"48":{"start":{"line":76,"column":29},"end":{"line":76,"column":56}},"49":{"start":{"line":77,"column":16},"end":{"line":81,"column":19}},"50":{"start":{"line":78,"column":20},"end":{"line":80,"column":21}},"51":{"start":{"line":79,"column":24},"end":{"line":79,"column":69}},"52":{"start":{"line":87,"column":8},"end":{"line":89,"column":9}},"53":{"start":{"line":88,"column":12},"end":{"line":88,"column":44}},"54":{"start":{"line":90,"column":23},"end":{"line":90,"column":50}},"55":{"start":{"line":91,"column":8},"end":{"line":91,"column":34}},"56":{"start":{"line":92,"column":20},"end":{"line":92,"column":21}},"57":{"start":{"line":93,"column":8},"end":{"line":111,"column":11}},"58":{"start":{"line":94,"column":31},"end":{"line":94,"column":55}},"59":{"start":{"line":95,"column":29},"end":{"line":95,"column":71}},"60":{"start":{"line":96,"column":12},"end":{"line":98,"column":13}},"61":{"start":{"line":97,"column":16},"end":{"line":97,"column":23}},"62":{"start":{"line":99,"column":29},"end":{"line":99,"column":53}},"63":{"start":{"line":100,"column":33},"end":{"line":100,"column":75}},"64":{"start":{"line":101,"column":29},"end":{"line":101,"column":69}},"65":{"start":{"line":102,"column":25},"end":{"line":102,"column":52}},"66":{"start":{"line":103,"column":12},"end":{"line":107,"column":15}},"67":{"start":{"line":104,"column":16},"end":{"line":106,"column":17}},"68":{"start":{"line":105,"column":20},"end":{"line":105,"column":82}},"69":{"start":{"line":108,"column":25},"end":{"line":108,"column":54}},"70":{"start":{"line":109,"column":12},"end":{"line":109,"column":45}},"71":{"start":{"line":110,"column":12},"end":{"line":110,"column":20}},"72":{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},"73":{"start":{"line":113,"column":12},"end":{"line":113,"column":42}},"74":{"start":{"line":115,"column":8},"end":{"line":115,"column":21}},"75":{"start":{"line":118,"column":8},"end":{"line":118,"column":25}},"76":{"start":{"line":119,"column":8},"end":{"line":119,"column":20}},"77":{"start":{"line":122,"column":8},"end":{"line":122,"column":74}},"78":{"start":{"line":125,"column":0},"end":{"line":125,"column":28}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":2,"column":44},"end":{"line":2,"column":45}},"loc":{"start":{"line":2,"column":89},"end":{"line":10,"column":1}},"line":2},"1":{"name":"adopt","decl":{"start":{"line":3,"column":13},"end":{"line":3,"column":18}},"loc":{"start":{"line":3,"column":26},"end":{"line":3,"column":112}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":3,"column":70},"end":{"line":3,"column":71}},"loc":{"start":{"line":3,"column":89},"end":{"line":3,"column":108}},"line":3},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":36},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":63},"end":{"line":9,"column":5}},"line":4},"4":{"name":"fulfilled","decl":{"start":{"line":5,"column":17},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":99}},"line":5},"5":{"name":"rejected","decl":{"start":{"line":6,"column":17},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":33},"end":{"line":6,"column":102}},"line":6},"6":{"name":"step","decl":{"start":{"line":7,"column":17},"end":{"line":7,"column":21}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":118}},"line":7},"7":{"name":"(anonymous_7)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":5}},"loc":{"start":{"line":19,"column":24},"end":{"line":34,"column":5}},"line":19},"8":{"name":"(anonymous_8)","decl":{"start":{"line":35,"column":4},"end":{"line":35,"column":5}},"loc":{"start":{"line":35,"column":24},"end":{"line":48,"column":5}},"line":35},"9":{"name":"(anonymous_9)","decl":{"start":{"line":36,"column":47},"end":{"line":36,"column":48}},"loc":{"start":{"line":36,"column":60},"end":{"line":47,"column":9}},"line":36},"10":{"name":"(anonymous_10)","decl":{"start":{"line":41,"column":25},"end":{"line":41,"column":26}},"loc":{"start":{"line":41,"column":36},"end":{"line":45,"column":13}},"line":41},"11":{"name":"(anonymous_11)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":22},"end":{"line":54,"column":5}},"line":49},"12":{"name":"(anonymous_12)","decl":{"start":{"line":55,"column":4},"end":{"line":55,"column":5}},"loc":{"start":{"line":55,"column":14},"end":{"line":65,"column":5}},"line":55},"13":{"name":"(anonymous_13)","decl":{"start":{"line":66,"column":4},"end":{"line":66,"column":5}},"loc":{"start":{"line":66,"column":12},"end":{"line":85,"column":5}},"line":66},"14":{"name":"(anonymous_14)","decl":{"start":{"line":68,"column":61},"end":{"line":68,"column":62}},"loc":{"start":{"line":68,"column":71},"end":{"line":82,"column":13}},"line":68},"15":{"name":"(anonymous_15)","decl":{"start":{"line":77,"column":42},"end":{"line":77,"column":43}},"loc":{"start":{"line":77,"column":56},"end":{"line":81,"column":17}},"line":77},"16":{"name":"(anonymous_16)","decl":{"start":{"line":86,"column":4},"end":{"line":86,"column":5}},"loc":{"start":{"line":86,"column":15},"end":{"line":116,"column":5}},"line":86},"17":{"name":"(anonymous_17)","decl":{"start":{"line":93,"column":57},"end":{"line":93,"column":58}},"loc":{"start":{"line":93,"column":67},"end":{"line":111,"column":9}},"line":93},"18":{"name":"(anonymous_18)","decl":{"start":{"line":103,"column":38},"end":{"line":103,"column":39}},"loc":{"start":{"line":103,"column":52},"end":{"line":107,"column":13}},"line":103},"19":{"name":"(anonymous_19)","decl":{"start":{"line":117,"column":4},"end":{"line":117,"column":5}},"loc":{"start":{"line":117,"column":12},"end":{"line":120,"column":5}},"line":117},"20":{"name":"(anonymous_20)","decl":{"start":{"line":121,"column":4},"end":{"line":121,"column":5}},"loc":{"start":{"line":121,"column":24},"end":{"line":123,"column":5}},"line":121}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":16},"end":{"line":10,"column":1}},"type":"binary-expr","locations":[{"start":{"line":2,"column":17},"end":{"line":2,"column":21}},{"start":{"line":2,"column":25},"end":{"line":2,"column":39}},{"start":{"line":2,"column":44},"end":{"line":10,"column":1}}],"line":2},"1":{"loc":{"start":{"line":3,"column":35},"end":{"line":3,"column":109}},"type":"cond-expr","locations":[{"start":{"line":3,"column":56},"end":{"line":3,"column":61}},{"start":{"line":3,"column":64},"end":{"line":3,"column":109}}],"line":3},"2":{"loc":{"start":{"line":4,"column":16},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},{"start":{"line":4,"column":22},"end":{"line":4,"column":33}}],"line":4},"3":{"loc":{"start":{"line":7,"column":32},"end":{"line":7,"column":115}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":67}},{"start":{"line":7,"column":70},"end":{"line":7,"column":115}}],"line":7},"4":{"loc":{"start":{"line":8,"column":51},"end":{"line":8,"column":67}},"type":"binary-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":61}},{"start":{"line":8,"column":65},"end":{"line":8,"column":67}}],"line":8},"5":{"loc":{"start":{"line":22,"column":40},"end":{"line":22,"column":68}},"type":"cond-expr","locations":[{"start":{"line":22,"column":49},"end":{"line":22,"column":63}},{"start":{"line":22,"column":66},"end":{"line":22,"column":68}}],"line":22},"6":{"loc":{"start":{"line":23,"column":22},"end":{"line":23,"column":78}},"type":"cond-expr","locations":[{"start":{"line":23,"column":50},"end":{"line":23,"column":65}},{"start":{"line":23,"column":68},"end":{"line":23,"column":78}}],"line":23},"7":{"loc":{"start":{"line":23,"column":22},"end":{"line":23,"column":47}},"type":"binary-expr","locations":[{"start":{"line":23,"column":22},"end":{"line":23,"column":28}},{"start":{"line":23,"column":32},"end":{"line":23,"column":47}}],"line":23},"8":{"loc":{"start":{"line":30,"column":22},"end":{"line":30,"column":51}},"type":"cond-expr","locations":[{"start":{"line":30,"column":31},"end":{"line":30,"column":46}},{"start":{"line":30,"column":49},"end":{"line":30,"column":51}}],"line":30},"9":{"loc":{"start":{"line":32,"column":19},"end":{"line":32,"column":68}},"type":"cond-expr","locations":[{"start":{"line":32,"column":42},"end":{"line":32,"column":52}},{"start":{"line":32,"column":55},"end":{"line":32,"column":68}}],"line":32},"10":{"loc":{"start":{"line":32,"column":19},"end":{"line":32,"column":39}},"type":"binary-expr","locations":[{"start":{"line":32,"column":19},"end":{"line":32,"column":25}},{"start":{"line":32,"column":29},"end":{"line":32,"column":39}}],"line":32},"11":{"loc":{"start":{"line":33,"column":24},"end":{"line":33,"column":74}},"type":"cond-expr","locations":[{"start":{"line":33,"column":52},"end":{"line":33,"column":67}},{"start":{"line":33,"column":70},"end":{"line":33,"column":74}}],"line":33},"12":{"loc":{"start":{"line":33,"column":24},"end":{"line":33,"column":49}},"type":"binary-expr","locations":[{"start":{"line":33,"column":24},"end":{"line":33,"column":30}},{"start":{"line":33,"column":34},"end":{"line":33,"column":49}}],"line":33},"13":{"loc":{"start":{"line":50,"column":15},"end":{"line":50,"column":73}},"type":"cond-expr","locations":[{"start":{"line":50,"column":42},"end":{"line":50,"column":66}},{"start":{"line":50,"column":69},"end":{"line":50,"column":73}}],"line":50},"14":{"loc":{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":58,"column":9}},{"start":{"line":56,"column":8},"end":{"line":58,"column":9}}],"line":56},"15":{"loc":{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":63,"column":9}},{"start":{"line":61,"column":8},"end":{"line":63,"column":9}}],"line":61},"16":{"loc":{"start":{"line":68,"column":24},"end":{"line":68,"column":51}},"type":"binary-expr","locations":[{"start":{"line":68,"column":24},"end":{"line":68,"column":45}},{"start":{"line":68,"column":49},"end":{"line":68,"column":51}}],"line":68},"17":{"loc":{"start":{"line":71,"column":16},"end":{"line":73,"column":17}},"type":"if","locations":[{"start":{"line":71,"column":16},"end":{"line":73,"column":17}},{"start":{"line":71,"column":16},"end":{"line":73,"column":17}}],"line":71},"18":{"loc":{"start":{"line":78,"column":20},"end":{"line":80,"column":21}},"type":"if","locations":[{"start":{"line":78,"column":20},"end":{"line":80,"column":21}},{"start":{"line":78,"column":20},"end":{"line":80,"column":21}}],"line":78},"19":{"loc":{"start":{"line":78,"column":24},"end":{"line":78,"column":71}},"type":"binary-expr","locations":[{"start":{"line":78,"column":24},"end":{"line":78,"column":33}},{"start":{"line":78,"column":37},"end":{"line":78,"column":71}}],"line":78},"20":{"loc":{"start":{"line":87,"column":8},"end":{"line":89,"column":9}},"type":"if","locations":[{"start":{"line":87,"column":8},"end":{"line":89,"column":9}},{"start":{"line":87,"column":8},"end":{"line":89,"column":9}}],"line":87},"21":{"loc":{"start":{"line":93,"column":20},"end":{"line":93,"column":47}},"type":"binary-expr","locations":[{"start":{"line":93,"column":20},"end":{"line":93,"column":41}},{"start":{"line":93,"column":45},"end":{"line":93,"column":47}}],"line":93},"22":{"loc":{"start":{"line":96,"column":12},"end":{"line":98,"column":13}},"type":"if","locations":[{"start":{"line":96,"column":12},"end":{"line":98,"column":13}},{"start":{"line":96,"column":12},"end":{"line":98,"column":13}}],"line":96},"23":{"loc":{"start":{"line":104,"column":16},"end":{"line":106,"column":17}},"type":"if","locations":[{"start":{"line":104,"column":16},"end":{"line":106,"column":17}},{"start":{"line":104,"column":16},"end":{"line":106,"column":17}}],"line":104},"24":{"loc":{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},"type":"if","locations":[{"start":{"line":112,"column":8},"end":{"line":114,"column":9}},{"start":{"line":112,"column":8},"end":{"line":114,"column":9}}],"line":112},"25":{"loc":{"start":{"line":122,"column":15},"end":{"line":122,"column":73}},"type":"cond-expr","locations":[{"start":{"line":122,"column":42},"end":{"line":122,"column":66}},{"start":{"line":122,"column":69},"end":{"line":122,"column":73}}],"line":122}},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0},"b":{"0":[1,1,1],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/compiler.ts","sources":["/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/compiler.ts"],"names":[],"mappings":"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","sourcesContent":["import * as solc from 'solc';\nimport * as fs from 'fs';\nimport * as fsx from 'fs-extra';\nimport * as pth from 'path';\nimport { SolcInput, SolcOutput } from '../lib/solc';\nimport { DefaultReporter } from './reporter';\nimport { Flattener } from '@specron/flattener';\n\n/**\n * Solidity compiler configuration object.\n */\nexport interface CompilerRecipe extends SolcInput {\n cwd?: string;\n reporter?: DefaultReporter;\n}\n\n/**\n * Solidity compiler.\n */\nexport class Compiler {\n protected reporter: DefaultReporter;\n public cwd: string;\n public input: SolcInput;\n public output: SolcOutput = {};\n \n /**\n * Class constructor.\n * @param recipe Compiler configuration object.\n */\n public constructor(recipe?: CompilerRecipe) {\n this.input = {\n sources: {\n ...(recipe ? recipe.sources : {}),\n },\n language: recipe && recipe.language ? recipe.language : 'Solidity',\n settings: {\n evmVersion: 'istanbul',\n outputSelection: {\n '*': {\n '*': [\n 'ast', 'abi', 'metadata', 'evm.bytecode.object', 'evm.methodIdentifiers',\n ],\n },\n },\n ...(recipe ? recipe.settings : {}),\n },\n };\n this.cwd = recipe && recipe.cwd ? recipe.cwd : process.cwd();\n this.reporter = recipe && recipe.reporter ? recipe.reporter : null;\n }\n\n /**\n * Loads sources by pattern.\n * @param patterns File search patterns.\n */\n public async source(...patterns: string[]) {\n const flattener = new Flattener();\n flattener.source(...patterns);\n await flattener.flatten();\n\n const keys = Object.keys(flattener.output.sources);\n keys.forEach(element => {\n this.input.sources[element] = {\n content: flattener.output.sources[element]\n }\n });\n\n return keys.length;\n }\n\n /**\n * Finds and reads imports.\n * @param path Path to file.\n */\n public findImports(path) {\n path = path.indexOf('./') !== 0 ? `./node_modules/${path}` : path;\n return {\n contents: fs.readFileSync(path).toString(),\n };\n }\n\n /**\n * Compiles the solc input and memorizes the output.\n */\n public compile() {\n if (this.reporter) {\n this.reporter.onCompileStart(this);\n }\n \n const input = JSON.stringify(this.input);\n\n this.output = JSON.parse(\n solc.compile(input, { import: this.findImports })\n );\n\n if (this.reporter) {\n this.reporter.onCompileEnd(this);\n }\n\n return !Array.isArray(this.output.errors);\n }\n\n /**\n * Cleans output of unnecessary contracts.\n */\n public clean() {\n try {\n Object.keys(this.output.contracts || {}).forEach((file) => {\n const sourcePath = this.normalizePath(file);\n const isModule = sourcePath.indexOf('./node_modules') === 0;\n if (isModule) {\n return;\n }\n const matcher = new RegExp('(?<=^contract )(.*?)(?= |{|\\n)','gm');\n const contracts = fs.readFileSync(sourcePath).toString().match(matcher);\n const json = this.output.contracts[file];\n Object.keys(json).forEach((contract) => {\n if (contracts && contracts.indexOf(contract) === -1) {\n delete this.output.contracts[file][contract];\n }\n });\n });\n } catch {}\n }\n \n /**\n * Saves memorized compiler output to destination folder.\n * @param dist Destination folder.\n */\n public save(dist: string) {\n if (this.reporter) {\n this.reporter.onSaveStart(this);\n }\n\n const target = pth.resolve(this.cwd, dist);\n fsx.ensureDirSync(target);\n\n let count = 0;\n Object.keys(this.output.contracts || {}).forEach((file) => {\n const sourcePath = this.normalizePath(file);\n\n const isModule = sourcePath.indexOf('./node_modules') === 0;\n if (isModule) {\n return;\n }\n\n const fileName = pth.basename(sourcePath);\n const contractName = fileName.split('.').slice(0, -1).join('.');\n const destPath = pth.join(target, `${contractName}.json`);\n\n const json = this.output.contracts[file];\n Object.keys(json).forEach((contract) => {\n if (json[contract].metadata) {\n json[contract].metadata = JSON.parse(json[contract].metadata);\n }\n });\n\n const data = JSON.stringify(json, null, 2);\n fs.writeFileSync(destPath, data);\n\n count++;\n });\n\n if (this.reporter) {\n this.reporter.onSaveEnd(this);\n }\n\n return count;\n }\n\n /**\n * Reinitializes the class.\n */\n public clear() {\n this.output = {};\n return this;\n }\n\n /**\n * Converts a file path not starting with a dot to match node_modules.\n * @param path File path.\n */\n protected normalizePath(path: string) {\n return path.indexOf('./') !== 0 ? `./node_modules/${path}` : path;\n }\n\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"9f5bdd8816ab210bbf1cc26d0454abe4ba3f44e2","contentHash":"b70ba9d1db778d837e56f59a2d238834dcd3065f8ef3a57437b40759304d41ac"},"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/reporter.ts":{"path":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/reporter.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":19},"end":{"line":4,"column":47}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":48}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":61}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":29}},"6":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"7":{"start":{"line":15,"column":12},"end":{"line":15,"column":36}},"8":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"9":{"start":{"line":20,"column":12},"end":{"line":20,"column":39}},"10":{"start":{"line":24,"column":8},"end":{"line":24,"column":34}},"11":{"start":{"line":25,"column":8},"end":{"line":25,"column":29}},"12":{"start":{"line":28,"column":8},"end":{"line":38,"column":11}},"13":{"start":{"line":29,"column":29},"end":{"line":30,"column":55}},"14":{"start":{"line":30,"column":31},"end":{"line":30,"column":54}},"15":{"start":{"line":31,"column":12},"end":{"line":37,"column":13}},"16":{"start":{"line":32,"column":16},"end":{"line":32,"column":107}},"17":{"start":{"line":33,"column":16},"end":{"line":36,"column":19}},"18":{"start":{"line":33,"column":39},"end":{"line":33,"column":57}},"19":{"start":{"line":34,"column":34},"end":{"line":34,"column":61}},"20":{"start":{"line":35,"column":20},"end":{"line":35,"column":128}},"21":{"start":{"line":41,"column":26},"end":{"line":41,"column":70}},"22":{"start":{"line":42,"column":8},"end":{"line":47,"column":9}},"23":{"start":{"line":43,"column":12},"end":{"line":43,"column":70}},"24":{"start":{"line":44,"column":12},"end":{"line":46,"column":15}},"25":{"start":{"line":45,"column":16},"end":{"line":45,"column":102}},"26":{"start":{"line":50,"column":8},"end":{"line":50,"column":27}},"27":{"start":{"line":51,"column":25},"end":{"line":51,"column":27}},"28":{"start":{"line":52,"column":26},"end":{"line":52,"column":77}},"29":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"30":{"start":{"line":54,"column":12},"end":{"line":54,"column":117}},"31":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"32":{"start":{"line":57,"column":27},"end":{"line":57,"column":102}},"33":{"start":{"line":57,"column":72},"end":{"line":57,"column":94}},"34":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"35":{"start":{"line":59,"column":16},"end":{"line":59,"column":113}},"36":{"start":{"line":62,"column":8},"end":{"line":67,"column":9}},"37":{"start":{"line":63,"column":29},"end":{"line":63,"column":106}},"38":{"start":{"line":63,"column":74},"end":{"line":63,"column":98}},"39":{"start":{"line":64,"column":12},"end":{"line":66,"column":13}},"40":{"start":{"line":65,"column":16},"end":{"line":65,"column":120}},"41":{"start":{"line":68,"column":8},"end":{"line":70,"column":9}},"42":{"start":{"line":69,"column":12},"end":{"line":69,"column":42}},"43":{"start":{"line":73,"column":8},"end":{"line":78,"column":9}},"44":{"start":{"line":74,"column":12},"end":{"line":74,"column":31}},"45":{"start":{"line":77,"column":12},"end":{"line":77,"column":34}},"46":{"start":{"line":81,"column":0},"end":{"line":81,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":28},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":29},"end":{"line":12,"column":5}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":27},"end":{"line":17,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":18,"column":4},"end":{"line":18,"column":5}},"loc":{"start":{"line":18,"column":26},"end":{"line":22,"column":5}},"line":18},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":4},"end":{"line":23,"column":5}},"loc":{"start":{"line":23,"column":24},"end":{"line":26,"column":5}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":4},"end":{"line":27,"column":5}},"loc":{"start":{"line":27,"column":23},"end":{"line":39,"column":5}},"line":27},"6":{"name":"(anonymous_6)","decl":{"start":{"line":28,"column":32},"end":{"line":28,"column":33}},"loc":{"start":{"line":28,"column":46},"end":{"line":38,"column":9}},"line":28},"7":{"name":"(anonymous_7)","decl":{"start":{"line":30,"column":24},"end":{"line":30,"column":25}},"loc":{"start":{"line":30,"column":31},"end":{"line":30,"column":54}},"line":30},"8":{"name":"(anonymous_8)","decl":{"start":{"line":33,"column":32},"end":{"line":33,"column":33}},"loc":{"start":{"line":33,"column":39},"end":{"line":33,"column":57}},"line":33},"9":{"name":"(anonymous_9)","decl":{"start":{"line":33,"column":67},"end":{"line":33,"column":68}},"loc":{"start":{"line":33,"column":80},"end":{"line":36,"column":17}},"line":33},"10":{"name":"(anonymous_10)","decl":{"start":{"line":40,"column":4},"end":{"line":40,"column":5}},"loc":{"start":{"line":40,"column":26},"end":{"line":48,"column":5}},"line":40},"11":{"name":"(anonymous_11)","decl":{"start":{"line":44,"column":30},"end":{"line":44,"column":31}},"loc":{"start":{"line":44,"column":44},"end":{"line":46,"column":13}},"line":44},"12":{"name":"(anonymous_12)","decl":{"start":{"line":49,"column":4},"end":{"line":49,"column":5}},"loc":{"start":{"line":49,"column":25},"end":{"line":71,"column":5}},"line":49},"13":{"name":"(anonymous_13)","decl":{"start":{"line":57,"column":65},"end":{"line":57,"column":66}},"loc":{"start":{"line":57,"column":72},"end":{"line":57,"column":94}},"line":57},"14":{"name":"(anonymous_14)","decl":{"start":{"line":63,"column":67},"end":{"line":63,"column":68}},"loc":{"start":{"line":63,"column":74},"end":{"line":63,"column":98}},"line":63},"15":{"name":"(anonymous_15)","decl":{"start":{"line":72,"column":4},"end":{"line":72,"column":5}},"loc":{"start":{"line":72,"column":25},"end":{"line":79,"column":5}},"line":72}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":26},"end":{"line":8,"column":60}},"type":"binary-expr","locations":[{"start":{"line":8,"column":26},"end":{"line":8,"column":36}},{"start":{"line":8,"column":40},"end":{"line":8,"column":60}}],"line":8},"1":{"loc":{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},"type":"if","locations":[{"start":{"line":14,"column":8},"end":{"line":16,"column":9}},{"start":{"line":14,"column":8},"end":{"line":16,"column":9}}],"line":14},"2":{"loc":{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},"type":"if","locations":[{"start":{"line":19,"column":8},"end":{"line":21,"column":9}},{"start":{"line":19,"column":8},"end":{"line":21,"column":9}}],"line":19},"3":{"loc":{"start":{"line":31,"column":12},"end":{"line":37,"column":13}},"type":"if","locations":[{"start":{"line":31,"column":12},"end":{"line":37,"column":13}},{"start":{"line":31,"column":12},"end":{"line":37,"column":13}}],"line":31},"4":{"loc":{"start":{"line":32,"column":61},"end":{"line":32,"column":105}},"type":"cond-expr","locations":[{"start":{"line":32,"column":84},"end":{"line":32,"column":92}},{"start":{"line":32,"column":95},"end":{"line":32,"column":105}}],"line":32},"5":{"loc":{"start":{"line":41,"column":38},"end":{"line":41,"column":69}},"type":"binary-expr","locations":[{"start":{"line":41,"column":38},"end":{"line":41,"column":63}},{"start":{"line":41,"column":67},"end":{"line":41,"column":69}}],"line":41},"6":{"loc":{"start":{"line":42,"column":8},"end":{"line":47,"column":9}},"type":"if","locations":[{"start":{"line":42,"column":8},"end":{"line":47,"column":9}},{"start":{"line":42,"column":8},"end":{"line":47,"column":9}}],"line":42},"7":{"loc":{"start":{"line":52,"column":38},"end":{"line":52,"column":69}},"type":"binary-expr","locations":[{"start":{"line":52,"column":38},"end":{"line":52,"column":63}},{"start":{"line":52,"column":67},"end":{"line":52,"column":69}}],"line":52},"8":{"loc":{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},"type":"if","locations":[{"start":{"line":53,"column":8},"end":{"line":55,"column":9}},{"start":{"line":53,"column":8},"end":{"line":55,"column":9}}],"line":53},"9":{"loc":{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},"type":"if","locations":[{"start":{"line":56,"column":8},"end":{"line":61,"column":9}},{"start":{"line":56,"column":8},"end":{"line":61,"column":9}}],"line":56},"10":{"loc":{"start":{"line":57,"column":28},"end":{"line":57,"column":56}},"type":"binary-expr","locations":[{"start":{"line":57,"column":28},"end":{"line":57,"column":50}},{"start":{"line":57,"column":54},"end":{"line":57,"column":56}}],"line":57},"11":{"loc":{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},"type":"if","locations":[{"start":{"line":58,"column":12},"end":{"line":60,"column":13}},{"start":{"line":58,"column":12},"end":{"line":60,"column":13}}],"line":58},"12":{"loc":{"start":{"line":62,"column":8},"end":{"line":67,"column":9}},"type":"if","locations":[{"start":{"line":62,"column":8},"end":{"line":67,"column":9}},{"start":{"line":62,"column":8},"end":{"line":67,"column":9}}],"line":62},"13":{"loc":{"start":{"line":63,"column":30},"end":{"line":63,"column":58}},"type":"binary-expr","locations":[{"start":{"line":63,"column":30},"end":{"line":63,"column":52}},{"start":{"line":63,"column":56},"end":{"line":63,"column":58}}],"line":63},"14":{"loc":{"start":{"line":64,"column":12},"end":{"line":66,"column":13}},"type":"if","locations":[{"start":{"line":64,"column":12},"end":{"line":66,"column":13}},{"start":{"line":64,"column":12},"end":{"line":66,"column":13}}],"line":64},"15":{"loc":{"start":{"line":68,"column":8},"end":{"line":70,"column":9}},"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":70,"column":9}},{"start":{"line":68,"column":8},"end":{"line":70,"column":9}}],"line":68},"16":{"loc":{"start":{"line":73,"column":8},"end":{"line":78,"column":9}},"type":"if","locations":[{"start":{"line":73,"column":8},"end":{"line":78,"column":9}},{"start":{"line":73,"column":8},"end":{"line":78,"column":9}}],"line":73}},"s":{"0":1,"1":1,"2":1,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":1},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0]},"inputSourceMap":{"version":3,"file":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/reporter.ts","sources":["/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/core/reporter.ts"],"names":[],"mappings":"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","sourcesContent":["import { Printer } from '@hayspec/reporter';\nimport { Compiler } from './compiler';\n\n/**\n * \n */\nexport type Severity = 'error' | 'warning';\n\n/**\n * \n */\nexport class DefaultReporter {\n protected printer: Printer;\n protected severities: Severity[];\n public constructor(severities?: Severity[]) {\n this.printer = new Printer();\n this.severities = severities || ['error', 'warning'];\n }\n\n /**\n * \n */\n public onCompileStart(compiler: Compiler) {\n this.printer.end('');\n }\n\n /**\n * \n */\n public onCompileEnd(compiler: Compiler) {\n if (compiler.output.errors) {\n this.onErrors(compiler);\n }\n }\n\n /**\n * \n */\n public onSaveStart(compiler: Compiler) {\n if (!compiler.output.errors) {\n this.onContracts(compiler);\n }\n }\n\n /**\n * \n */\n public onSaveEnd(compiler: Compiler) {\n this.onOverview(compiler);\n this.printer.end('');\n }\n\n /**\n * \n */\n protected onErrors(compiler: Compiler) {\n \n this.severities.forEach((severity) => {\n const failures = compiler.output.errors\n .filter((e) => e.severity === severity);\n \n if (failures.length) {\n this.printer.end(\n this.printer.indent(1, ''),\n severity === 'error' ? 'Errors' : 'Warnings'\n );\n\n failures.filter((e) => e.formattedMessage).forEach((failure) => {\n const color = this.getErrorColor(failure);\n this.printer.end(\n this.printer.indent(2, ''),\n this.printer.colorize(color, failure.formattedMessage.trim())\n );\n });\n }\n });\n }\n\n /**\n * \n */\n protected onContracts(compiler: Compiler) {\n const contracts = Object.keys(compiler.output.contracts || {});\n\n if (contracts.length) {\n this.printer.end(\n this.printer.indent(1, ''),\n 'Contracts'\n );\n contracts.forEach((contract) => {\n this.printer.end(\n this.printer.indent(2, ''),\n this.printer.colorize('gray', contract)\n );\n });\n }\n }\n\n /**\n * \n */\n protected onOverview(compiler: Compiler) {\n this.printer.end();\n\n const messages = [];\n\n const contracts = Object.keys(compiler.output.contracts || {}).length;\n if (contracts) {\n messages.push(\n this.printer.indent(1, ''),\n this.printer.colorize('greenBright', contracts),\n ' contracts',\n );\n }\n\n if (this.severities.indexOf('error') !== -1) {\n const errors = (compiler.output.errors || []).filter((e) => e.severity === 'error').length;\n\n if (errors) {\n messages.push(\n this.printer.indent(1, ''),\n this.printer.colorize('redBright', errors),\n ' errors',\n );\n }\n }\n\n if (this.severities.indexOf('warning') !== -1) {\n const warnings = (compiler.output.errors || []).filter((e) => e.severity === 'warning').length;\n\n if (warnings) {\n messages.push(\n this.printer.indent(1, ''),\n this.printer.colorize('yellowBright', warnings),\n ' warnings',\n );\n }\n }\n if (messages.length) {\n this.printer.end(...messages);\n }\n }\n\n /**\n * \n */\n protected getErrorColor(error: any) {\n if (error.severity === 'error') {\n return 'redBright';\n } else {\n return 'yellowBright';\n }\n }\n}\n\n\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c2a866bb7f52cc19d80e24e91264a2734eb5fb61","contentHash":"408f1c88284d4ce6e5306d41e53ee311f79b6250483b432d8c31b5c90a0e52f3"},"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/lib/solc.ts":{"path":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/lib/solc.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"inputSourceMap":{"version":3,"file":"/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/lib/solc.ts","sources":["/Users/xpepermint/Work/specron/framework/packages/specron-compiler/src/lib/solc.ts"],"names":[],"mappings":";;AA+EC,CAAC","sourcesContent":["/**\n * Solc compiler configuration input.\n * @see http://solidity.readthedocs.io/en/v0.5.11/using-the-compiler.html\n */\nexport interface SolcInput {\n // Source code language.\n language?: 'Solidity' | 'Yul';\n // Source.\n sources?: {\n [file: string]: {\n // Hash of the source file.\n keccak256?: string;\n // Source file URL.\n urls?: string[];\n // Source code.\n content?: string;\n };\n };\n // Compiler options.\n settings?: {\n // Sorted list of remappings\n remappings?: string[];\n // Optimizer settings (enabled defaults to false)\n optimizer?: {\n // Disabled by default\n enabled?: boolean;\n // Lower values will optimize more.\n runs?: number;\n // Switch optimizer components on or off in detail.\n details?: {\n // The peephole optimizer is always on if no details are given.\n peephole?: boolean;\n // The unused jumpdest remover is always on if no details.\n jumpdestRemover?: boolean;\n // Sometimes re-orders literals in commutative operations.\n orderLiterals?: boolean;\n // Removes duplicate code blocks.\n deduplicate?: boolean;\n // Common subexpression elimination.\n cse?: boolean;\n // Optimize representation of literal numbers and strings in code.\n constantOptimizer?: boolean;\n // The new Yul optimizer.\n yul?: boolean,\n // Tuning options for the Yul optimizer.\n yulDetails?: {\n // Improve allocation of stack slots for variables.\n stackAllocation?: boolean;\n };\n };\n };\n // Version of the EVM to compile for. Affects type checking and code generation.\n evmVersion?: 'homestead' | 'tangerineWhistle' | 'spuriousDragon' | 'byzantium' | 'constantinople' | 'petersburg' | 'istanbul' | 'berlin';\n // Metadata settings (optional)\n metadata?: {\n // Use only literal content and not URLs (false by default)\n useLiteralContent?: boolean;\n };\n // Addresses of the libraries. If not all libraries are given here, it can result in unlinked objects whose output data is different.\n libraries?: {\n [file: string]: {\n [contract: string]: string;\n };\n };\n // The available output types.\n outputSelection?: {\n [file: string]: {\n [contract: string]: (\n 'ast' | 'legacyAST' | 'abi' | 'devdoc' | 'userdoc' | 'metadata' \n | 'ir' | 'irOptimized' | 'evm.assembly' | 'evm.legacyAssembly'\n | 'evm.bytecode.object' | 'evm.bytecode.opcodes'\n | 'evm.bytecode.sourceMap' | 'evm.bytecode.linkReferences'\n | 'evm.deployedBytecode*' | 'evm.methodIdentifiers'\n | 'evm.gasEstimates'\n // | 'ewasm.wast' | 'ewasm.wasm' (not implemented)\n )[];\n };\n };\n };\n};\n\n/**\n * Solc compiler output object.\n * @see http://solidity.readthedocs.io/en/v0.4.31/using-the-compiler.html\n */\nexport interface SolcOutput {\n // Optional: not present if no errors/warnings were encountered\n errors?: {\n // Optional: Location within the source file.\n sourceLocation?: {\n file: string;\n start: number;\n end: number;\n };\n // Optional: Further locations (e.g. places of conflicting declarations)\n secondarySourceLocations?: {\n file: string;\n start: number;\n end: number;\n message: string;\n }[],\n // Error type.\n type: 'TypeError' | 'InternalCompilerError' | 'Exception';\n // Component where the error originated.\n component: 'general' | 'ewasm';\n // Severity level.\n severity: 'error' | 'warning';\n // Error message.\n message: string;\n // Message formatted with source location.\n formattedMessage?: string;\n }[];\n // This contains the file-level outputs. In can be limited/filtered by the outputSelection settings.\n sources?: {\n [file: string]: {\n // Identifier (used in source maps).\n id: number;\n // The AST object.\n ast: any;\n // The legacy AST object.\n legacyAST: any;\n };\n };\n // This contains the contract-level outputs. It can be limited/filtered by the outputSelection settings.\n contracts?: {\n [file: string]: {\n // If the language used has no contract names, this field should equal to an empty string.\n [contract: string]: {\n // The Ethereum Contract ABI. If empty, it is represented as an empty array.\n // See https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\n abi: any[],\n // See the Metadata Output documentation (serialised JSON string).\n metadata: string;\n // User documentation (natspec).\n userdoc: any;\n // Developer documentation (natspec).\n devdoc: any;\n // Intermediate representation (string).\n ir: string;\n // EVM-related outputs.\n evm: {\n // Assembly (string).\n assembly: string;\n // Old-style assembly (object).\n legacyAssembly?: any;\n // Bytecode and related details.\n bytecode?: {\n // The bytecode as a hex string.\n object: string;\n // Opcodes list (string)\n opcodes: string;\n // The source mapping as a string. See the source mapping definition.\n sourceMap: string;\n // If given, this is an unlinked object.\n linkReferences: {\n [file: string]: {\n [lib: string]: {\n start: number;\n length: number;\n }[];\n };\n };\n };\n // The same layout as above.\n deployedBytecode?: {\n // The bytecode as a hex string.\n object: string;\n // Opcodes list (string)\n opcodes: string;\n // The source mapping as a string. See the source mapping definition.\n sourceMap: string;\n // If given, this is an unlinked object.\n linkReferences: {\n [file: string]: {\n [lib: string]: {\n start: number;\n length: number;\n }[];\n };\n };\n };\n // The list of function hashes\n methodIdentifiers?: {\n [fn: string]: string;\n };\n // Function gas estimates.\n gasEstimates?: {\n creation?: {\n codeDepositCost: string;\n executionCost: string;\n totalCost: string;\n };\n external?: {\n [fn: string]: string;\n };\n internal?: {\n [fn: string]: string;\n };\n };\n };\n // eWASM related outputs.\n ewasm?: {\n // S-expressions format.\n wast?: string;\n // Binary format (hex string).\n wasm?: string;\n };\n };\n };\n };\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"8da4d725aff1921354087cb15b17abe9b8955a4c","contentHash":"6ac56a7a42871f04845ff9c780bb867d04fb129d5fa6c40da17d1d3994cf958a"}}
\No newline at end of file