@aiready/testability 0.6.22 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- {"/Users/pengcao/projects/aiready/packages/testability/src/analyzer.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/analyzer.ts","statementMap":{"0":{"start":{"line":33,"column":31},"end":{"line":41,"column":null}},"1":{"start":{"line":43,"column":8},"end":{"line":43,"column":null}},"2":{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},"3":{"start":{"line":44,"column":15},"end":{"line":44,"column":null}},"4":{"start":{"line":47,"column":2},"end":{"line":51,"column":null}},"5":{"start":{"line":48,"column":4},"end":{"line":48,"column":null}},"6":{"start":{"line":50,"column":4},"end":{"line":50,"column":null}},"7":{"start":{"line":53,"column":2},"end":{"line":88,"column":null}},"8":{"start":{"line":54,"column":4},"end":{"line":54,"column":null}},"9":{"start":{"line":55,"column":24},"end":{"line":55,"column":null}},"10":{"start":{"line":57,"column":4},"end":{"line":85,"column":null}},"11":{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},"12":{"start":{"line":59,"column":8},"end":{"line":59,"column":null}},"13":{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},"14":{"start":{"line":60,"column":24},"end":{"line":60,"column":null}},"15":{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},"16":{"start":{"line":61,"column":32},"end":{"line":61,"column":null}},"17":{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},"18":{"start":{"line":65,"column":8},"end":{"line":65,"column":null}},"19":{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},"20":{"start":{"line":68,"column":10},"end":{"line":68,"column":null}},"21":{"start":{"line":71,"column":14},"end":{"line":71,"column":null}},"22":{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},"23":{"start":{"line":73,"column":10},"end":{"line":73,"column":null}},"24":{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},"25":{"start":{"line":78,"column":8},"end":{"line":78,"column":null}},"26":{"start":{"line":80,"column":14},"end":{"line":80,"column":null}},"27":{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},"28":{"start":{"line":82,"column":10},"end":{"line":82,"column":null}},"29":{"start":{"line":87,"column":4},"end":{"line":87,"column":null}},"30":{"start":{"line":90,"column":2},"end":{"line":90,"column":null}},"31":{"start":{"line":99,"column":20},"end":{"line":109,"column":null}},"32":{"start":{"line":111,"column":2},"end":{"line":120,"column":null}},"33":{"start":{"line":112,"column":10},"end":{"line":112,"column":null}},"34":{"start":{"line":113,"column":4},"end":{"line":119,"column":null}},"35":{"start":{"line":114,"column":6},"end":{"line":114,"column":null}},"36":{"start":{"line":114,"column":31},"end":{"line":114,"column":null}},"37":{"start":{"line":115,"column":6},"end":{"line":118,"column":null}},"38":{"start":{"line":116,"column":14},"end":{"line":116,"column":null}},"39":{"start":{"line":117,"column":8},"end":{"line":117,"column":null}},"40":{"start":{"line":117,"column":31},"end":{"line":117,"column":50}},"41":{"start":{"line":117,"column":53},"end":{"line":117,"column":null}},"42":{"start":{"line":121,"column":2},"end":{"line":121,"column":null}},"43":{"start":{"line":128,"column":22},"end":{"line":139,"column":null}},"44":{"start":{"line":142,"column":2},"end":{"line":142,"column":null}},"45":{"start":{"line":142,"column":32},"end":{"line":142,"column":48}},"46":{"start":{"line":142,"column":51},"end":{"line":142,"column":null}},"47":{"start":{"line":143,"column":2},"end":{"line":143,"column":null}},"48":{"start":{"line":143,"column":13},"end":{"line":143,"column":null}},"49":{"start":{"line":143,"column":38},"end":{"line":143,"column":58}},"50":{"start":{"line":144,"column":2},"end":{"line":144,"column":null}},"51":{"start":{"line":151,"column":19},"end":{"line":155,"column":null}},"52":{"start":{"line":157,"column":22},"end":{"line":159,"column":null}},"53":{"start":{"line":158,"column":11},"end":{"line":158,"column":null}},"54":{"start":{"line":160,"column":20},"end":{"line":160,"column":null}},"55":{"start":{"line":160,"column":43},"end":{"line":160,"column":78}},"56":{"start":{"line":162,"column":35},"end":{"line":170,"column":null}},"57":{"start":{"line":172,"column":18},"end":{"line":172,"column":null}},"58":{"start":{"line":173,"column":2},"end":{"line":187,"column":null}},"59":{"start":{"line":174,"column":4},"end":{"line":174,"column":null}},"60":{"start":{"line":175,"column":4},"end":{"line":181,"column":null}},"61":{"start":{"line":183,"column":14},"end":{"line":183,"column":null}},"62":{"start":{"line":184,"column":4},"end":{"line":186,"column":null}},"63":{"start":{"line":185,"column":6},"end":{"line":185,"column":null}},"64":{"start":{"line":189,"column":27},"end":{"line":189,"column":null}},"65":{"start":{"line":191,"column":8},"end":{"line":202,"column":null}},"66":{"start":{"line":205,"column":37},"end":{"line":205,"column":null}},"67":{"start":{"line":206,"column":22},"end":{"line":206,"column":null}},"68":{"start":{"line":208,"column":4},"end":{"line":208,"column":null}},"69":{"start":{"line":210,"column":2},"end":{"line":221,"column":null}},"70":{"start":{"line":211,"column":4},"end":{"line":220,"column":null}},"71":{"start":{"line":223,"column":2},"end":{"line":234,"column":null}},"72":{"start":{"line":225,"column":6},"end":{"line":225,"column":null}},"73":{"start":{"line":226,"column":4},"end":{"line":233,"column":null}},"74":{"start":{"line":236,"column":2},"end":{"line":246,"column":null}},"75":{"start":{"line":237,"column":4},"end":{"line":245,"column":null}},"76":{"start":{"line":248,"column":2},"end":{"line":266,"column":null}}},"fnMap":{"0":{"name":"analyzeFileTestability","decl":{"start":{"line":32,"column":15},"end":{"line":32,"column":38}},"loc":{"start":{"line":32,"column":79},"end":{"line":91,"column":null}},"line":32},"1":{"name":"detectTestFramework","decl":{"start":{"line":97,"column":9},"end":{"line":97,"column":29}},"loc":{"start":{"line":97,"column":55},"end":{"line":122,"column":null}},"line":97},"2":{"name":"(anonymous_2)","decl":{"start":{"line":117,"column":24},"end":{"line":117,"column":25}},"loc":{"start":{"line":117,"column":31},"end":{"line":117,"column":50}},"line":117},"3":{"name":"isTestFile","decl":{"start":{"line":141,"column":9},"end":{"line":141,"column":20}},"loc":{"start":{"line":141,"column":65},"end":{"line":145,"column":null}},"line":141},"4":{"name":"(anonymous_4)","decl":{"start":{"line":142,"column":25},"end":{"line":142,"column":26}},"loc":{"start":{"line":142,"column":32},"end":{"line":142,"column":48}},"line":142},"5":{"name":"(anonymous_5)","decl":{"start":{"line":143,"column":31},"end":{"line":143,"column":32}},"loc":{"start":{"line":143,"column":38},"end":{"line":143,"column":58}},"line":143},"6":{"name":"analyzeTestability","decl":{"start":{"line":147,"column":22},"end":{"line":147,"column":null}},"loc":{"start":{"line":149,"column":30},"end":{"line":267,"column":null}},"line":149},"7":{"name":"(anonymous_7)","decl":{"start":{"line":158,"column":4},"end":{"line":158,"column":5}},"loc":{"start":{"line":158,"column":11},"end":{"line":158,"column":null}},"line":158},"8":{"name":"(anonymous_8)","decl":{"start":{"line":160,"column":36},"end":{"line":160,"column":37}},"loc":{"start":{"line":160,"column":43},"end":{"line":160,"column":78}},"line":160}},"branchMap":{"0":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},{"start":{},"end":{}}],"line":44},"1":{"loc":{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},"type":"if","locations":[{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},{"start":{},"end":{}}],"line":58},"2":{"loc":{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},{"start":{},"end":{}}],"line":60},"3":{"loc":{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},{"start":{},"end":{}}],"line":61},"4":{"loc":{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},{"start":{},"end":{}}],"line":64},"5":{"loc":{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},{"start":{},"end":{}}],"line":67},"6":{"loc":{"start":{"line":67,"column":12},"end":{"line":67,"column":57}},"type":"binary-expr","locations":[{"start":{"line":67,"column":12},"end":{"line":67,"column":30}},{"start":{"line":67,"column":30},"end":{"line":67,"column":57}}],"line":67},"7":{"loc":{"start":{"line":71,"column":23},"end":{"line":71,"column":48}},"type":"binary-expr","locations":[{"start":{"line":71,"column":23},"end":{"line":71,"column":42}},{"start":{"line":71,"column":42},"end":{"line":71,"column":48}}],"line":71},"8":{"loc":{"start":{"line":71,"column":48},"end":{"line":71,"column":null}},"type":"binary-expr","locations":[{"start":{"line":71,"column":48},"end":{"line":71,"column":69}},{"start":{"line":71,"column":69},"end":{"line":71,"column":null}}],"line":71},"9":{"loc":{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},{"start":{},"end":{}}],"line":72},"10":{"loc":{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},"type":"if","locations":[{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},{"start":{},"end":{}}],"line":77},"11":{"loc":{"start":{"line":80,"column":23},"end":{"line":80,"column":48}},"type":"binary-expr","locations":[{"start":{"line":80,"column":23},"end":{"line":80,"column":42}},{"start":{"line":80,"column":42},"end":{"line":80,"column":48}}],"line":80},"12":{"loc":{"start":{"line":80,"column":48},"end":{"line":80,"column":null}},"type":"binary-expr","locations":[{"start":{"line":80,"column":48},"end":{"line":80,"column":69}},{"start":{"line":80,"column":69},"end":{"line":80,"column":null}}],"line":80},"13":{"loc":{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},"type":"if","locations":[{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},{"start":{},"end":{}}],"line":81},"14":{"loc":{"start":{"line":113,"column":4},"end":{"line":119,"column":null}},"type":"if","locations":[{"start":{"line":113,"column":4},"end":{"line":119,"column":null}},{"start":{},"end":{}}],"line":113},"15":{"loc":{"start":{"line":114,"column":6},"end":{"line":114,"column":null}},"type":"if","locations":[{"start":{"line":114,"column":6},"end":{"line":114,"column":null}},{"start":{},"end":{}}],"line":114},"16":{"loc":{"start":{"line":117,"column":8},"end":{"line":117,"column":null}},"type":"if","locations":[{"start":{"line":117,"column":8},"end":{"line":117,"column":null}},{"start":{},"end":{}}],"line":117},"17":{"loc":{"start":{"line":142,"column":2},"end":{"line":142,"column":null}},"type":"if","locations":[{"start":{"line":142,"column":2},"end":{"line":142,"column":null}},{"start":{},"end":{}}],"line":142},"18":{"loc":{"start":{"line":143,"column":2},"end":{"line":143,"column":null}},"type":"if","locations":[{"start":{"line":143,"column":2},"end":{"line":143,"column":null}},{"start":{},"end":{}}],"line":143},"19":{"loc":{"start":{"line":153,"column":13},"end":{"line":153,"column":null}},"type":"binary-expr","locations":[{"start":{"line":153,"column":13},"end":{"line":153,"column":32}},{"start":{"line":153,"column":32},"end":{"line":153,"column":null}}],"line":153},"20":{"loc":{"start":{"line":206,"column":22},"end":{"line":206,"column":null}},"type":"binary-expr","locations":[{"start":{"line":206,"column":22},"end":{"line":206,"column":50}},{"start":{"line":206,"column":50},"end":{"line":206,"column":null}}],"line":206},"21":{"loc":{"start":{"line":208,"column":4},"end":{"line":208,"column":null}},"type":"cond-expr","locations":[{"start":{"line":208,"column":29},"end":{"line":208,"column":69}},{"start":{"line":208,"column":69},"end":{"line":208,"column":null}}],"line":208},"22":{"loc":{"start":{"line":210,"column":2},"end":{"line":221,"column":null}},"type":"if","locations":[{"start":{"line":210,"column":2},"end":{"line":221,"column":null}},{"start":{},"end":{}}],"line":210},"23":{"loc":{"start":{"line":223,"column":2},"end":{"line":234,"column":null}},"type":"if","locations":[{"start":{"line":223,"column":2},"end":{"line":234,"column":null}},{"start":{},"end":{}}],"line":223},"24":{"loc":{"start":{"line":229,"column":16},"end":{"line":229,"column":null}},"type":"cond-expr","locations":[{"start":{"line":229,"column":36},"end":{"line":229,"column":56}},{"start":{"line":229,"column":56},"end":{"line":229,"column":null}}],"line":229},"25":{"loc":{"start":{"line":236,"column":2},"end":{"line":246,"column":null}},"type":"if","locations":[{"start":{"line":236,"column":2},"end":{"line":246,"column":null}},{"start":{},"end":{}}],"line":236}},"s":{"0":21,"1":21,"2":21,"3":0,"4":21,"5":21,"6":0,"7":21,"8":21,"9":21,"10":21,"11":17,"12":4,"13":4,"14":4,"15":4,"16":0,"17":17,"18":7,"19":7,"20":3,"21":7,"22":7,"23":0,"24":17,"25":2,"26":2,"27":2,"28":2,"29":0,"30":21,"31":7,"32":7,"33":36,"34":36,"35":3,"36":1,"37":2,"38":2,"39":2,"40":2,"41":2,"42":4,"43":1,"44":50,"45":444,"46":8,"47":42,"48":42,"49":0,"50":42,"51":7,"52":7,"53":25,"54":7,"55":25,"56":7,"57":7,"58":7,"59":21,"60":21,"61":21,"62":21,"63":147,"64":7,"65":7,"66":7,"67":7,"68":7,"69":7,"70":4,"71":7,"72":6,"73":6,"74":7,"75":3,"76":7},"f":{"0":21,"1":7,"2":2,"3":50,"4":444,"5":0,"6":7,"7":25,"8":25},"b":{"0":[0,21],"1":[4,13],"2":[4,0],"3":[0,4],"4":[7,10],"5":[3,4],"6":[7,3],"7":[7,4],"8":[7,7],"9":[0,7],"10":[2,15],"11":[2,0],"12":[2,0],"13":[2,0],"14":[3,33],"15":[1,2],"16":[2,0],"17":[8,42],"18":[0,42],"19":[7,7],"20":[7,7],"21":[7,0],"22":[4,3],"23":[6,1],"24":[3,3],"25":[3,4]},"meta":{"lastBranch":26,"lastFunction":9,"lastStatement":77,"seen":{"f:32:15:32:38":0,"s:33:31:41:Infinity":0,"s:43:8:43:Infinity":1,"b:44:2:44:Infinity:undefined:undefined:undefined:undefined":0,"s:44:2:44:Infinity":2,"s:44:15:44:Infinity":3,"s:47:2:51:Infinity":4,"s:48:4:48:Infinity":5,"s:50:4:50:Infinity":6,"s:53:2:88:Infinity":7,"s:54:4:54:Infinity":8,"s:55:24:55:Infinity":9,"s:57:4:85:Infinity":10,"b:58:6:62:Infinity:undefined:undefined:undefined:undefined":1,"s:58:6:62:Infinity":11,"s:59:8:59:Infinity":12,"b:60:8:60:Infinity:undefined:undefined:undefined:undefined":2,"s:60:8:60:Infinity":13,"s:60:24:60:Infinity":14,"b:61:8:61:Infinity:undefined:undefined:undefined:undefined":3,"s:61:8:61:Infinity":15,"s:61:32:61:Infinity":16,"b:64:6:75:Infinity:undefined:undefined:undefined:undefined":4,"s:64:6:75:Infinity":17,"s:65:8:65:Infinity":18,"b:67:8:69:Infinity:undefined:undefined:undefined:undefined":5,"s:67:8:69:Infinity":19,"b:67:12:67:30:67:30:67:57":6,"s:68:10:68:Infinity":20,"s:71:14:71:Infinity":21,"b:71:23:71:42:71:42:71:48":7,"b:71:48:71:69:71:69:71:Infinity":8,"b:72:8:74:Infinity:undefined:undefined:undefined:undefined":9,"s:72:8:74:Infinity":22,"s:73:10:73:Infinity":23,"b:77:6:84:Infinity:undefined:undefined:undefined:undefined":10,"s:77:6:84:Infinity":24,"s:78:8:78:Infinity":25,"s:80:14:80:Infinity":26,"b:80:23:80:42:80:42:80:48":11,"b:80:48:80:69:80:69:80:Infinity":12,"b:81:8:83:Infinity:undefined:undefined:undefined:undefined":13,"s:81:8:83:Infinity":27,"s:82:10:82:Infinity":28,"s:87:4:87:Infinity":29,"s:90:2:90:Infinity":30,"f:97:9:97:29":1,"s:99:20:109:Infinity":31,"s:111:2:120:Infinity":32,"s:112:10:112:Infinity":33,"b:113:4:119:Infinity:undefined:undefined:undefined:undefined":14,"s:113:4:119:Infinity":34,"b:114:6:114:Infinity:undefined:undefined:undefined:undefined":15,"s:114:6:114:Infinity":35,"s:114:31:114:Infinity":36,"s:115:6:118:Infinity":37,"s:116:14:116:Infinity":38,"b:117:8:117:Infinity:undefined:undefined:undefined:undefined":16,"s:117:8:117:Infinity":39,"f:117:24:117:25":2,"s:117:31:117:50":40,"s:117:53:117:Infinity":41,"s:121:2:121:Infinity":42,"s:128:22:139:Infinity":43,"f:141:9:141:20":3,"b:142:2:142:Infinity:undefined:undefined:undefined:undefined":17,"s:142:2:142:Infinity":44,"f:142:25:142:26":4,"s:142:32:142:48":45,"s:142:51:142:Infinity":46,"b:143:2:143:Infinity:undefined:undefined:undefined:undefined":18,"s:143:2:143:Infinity":47,"s:143:13:143:Infinity":48,"f:143:31:143:32":5,"s:143:38:143:58":49,"s:144:2:144:Infinity":50,"f:147:22:147:Infinity":6,"s:151:19:155:Infinity":51,"b:153:13:153:32:153:32:153:Infinity":19,"s:157:22:159:Infinity":52,"f:158:4:158:5":7,"s:158:11:158:Infinity":53,"s:160:20:160:Infinity":54,"f:160:36:160:37":8,"s:160:43:160:78":55,"s:162:35:170:Infinity":56,"s:172:18:172:Infinity":57,"s:173:2:187:Infinity":58,"s:174:4:174:Infinity":59,"s:175:4:181:Infinity":60,"s:183:14:183:Infinity":61,"s:184:4:186:Infinity":62,"s:185:6:185:Infinity":63,"s:189:27:189:Infinity":64,"s:191:8:202:Infinity":65,"s:205:37:205:Infinity":66,"s:206:22:206:Infinity":67,"b:206:22:206:50:206:50:206:Infinity":20,"s:208:4:208:Infinity":68,"b:208:29:208:69:208:69:208:Infinity":21,"b:210:2:221:Infinity:undefined:undefined:undefined:undefined":22,"s:210:2:221:Infinity":69,"s:211:4:220:Infinity":70,"b:223:2:234:Infinity:undefined:undefined:undefined:undefined":23,"s:223:2:234:Infinity":71,"s:225:6:225:Infinity":72,"s:226:4:233:Infinity":73,"b:229:36:229:56:229:56:229:Infinity":24,"b:236:2:246:Infinity:undefined:undefined:undefined:undefined":25,"s:236:2:246:Infinity":74,"s:237:4:245:Infinity":75,"s:248:2:266:Infinity":76}}}
2
- ,"/Users/pengcao/projects/aiready/packages/testability/src/provider.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/provider.ts","statementMap":{"0":{"start":{"line":17,"column":49},"end":{"line":55,"column":null}},"1":{"start":{"line":22,"column":19},"end":{"line":22,"column":null}},"2":{"start":{"line":24,"column":38},"end":{"line":30,"column":null}},"3":{"start":{"line":24,"column":64},"end":{"line":30,"column":6}},"4":{"start":{"line":32,"column":4},"end":{"line":41,"column":null}},"5":{"start":{"line":45,"column":19},"end":{"line":49,"column":null}},"6":{"start":{"line":51,"column":4},"end":{"line":51,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":21,"column":8},"end":{"line":21,"column":16}},"loc":{"start":{"line":21,"column":60},"end":{"line":42,"column":null}},"line":21},"1":{"name":"(anonymous_1)","decl":{"start":{"line":24,"column":56},"end":{"line":24,"column":57}},"loc":{"start":{"line":24,"column":64},"end":{"line":30,"column":6}},"line":24},"2":{"name":"(anonymous_2)","decl":{"start":{"line":44,"column":2},"end":{"line":44,"column":8}},"loc":{"start":{"line":44,"column":70},"end":{"line":52,"column":null}},"line":44}},"branchMap":{"0":{"loc":{"start":{"line":48,"column":24},"end":{"line":48,"column":null}},"type":"binary-expr","locations":[{"start":{"line":48,"column":24},"end":{"line":48,"column":66}},{"start":{"line":48,"column":66},"end":{"line":48,"column":null}}],"line":48}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":1,"6":1},"f":{"0":1,"1":0,"2":1},"b":{"0":[1,1]},"meta":{"lastBranch":1,"lastFunction":3,"lastStatement":7,"seen":{"s:17:49:55:Infinity":0,"f:21:8:21:16":0,"s:22:19:22:Infinity":1,"s:24:38:30:Infinity":2,"f:24:56:24:57":1,"s:24:64:30:6":3,"s:32:4:41:Infinity":4,"f:44:2:44:8":2,"s:45:19:49:Infinity":5,"b:48:24:48:66:48:66:48:Infinity":0,"s:51:4:51:Infinity":6}}}
3
- ,"/Users/pengcao/projects/aiready/packages/testability/src/scoring.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/scoring.ts","statementMap":{"0":{"start":{"line":10,"column":48},"end":{"line":10,"column":null}},"1":{"start":{"line":12,"column":48},"end":{"line":38,"column":null}},"2":{"start":{"line":40,"column":53},"end":{"line":50,"column":null}},"3":{"start":{"line":41,"column":17},"end":{"line":49,"column":null}},"4":{"start":{"line":52,"column":2},"end":{"line":63,"column":null}}},"fnMap":{"0":{"name":"calculateTestabilityScore","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":null}},"loc":{"start":{"line":9,"column":21},"end":{"line":64,"column":null}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":41,"column":4},"end":{"line":41,"column":5}},"loc":{"start":{"line":41,"column":17},"end":{"line":49,"column":null}},"line":41}},"branchMap":{"0":{"loc":{"start":{"line":43,"column":23},"end":{"line":43,"column":null}},"type":"cond-expr","locations":[{"start":{"line":43,"column":71},"end":{"line":43,"column":76}},{"start":{"line":43,"column":76},"end":{"line":43,"column":null}}],"line":43},"1":{"loc":{"start":{"line":45,"column":8},"end":{"line":48,"column":null}},"type":"cond-expr","locations":[{"start":{"line":47,"column":12},"end":{"line":47,"column":null}},{"start":{"line":48,"column":12},"end":{"line":48,"column":null}}],"line":45},"2":{"loc":{"start":{"line":45,"column":8},"end":{"line":46,"column":null}},"type":"binary-expr","locations":[{"start":{"line":45,"column":8},"end":{"line":45,"column":null}},{"start":{"line":46,"column":8},"end":{"line":46,"column":null}}],"line":45}},"s":{"0":4,"1":4,"2":4,"3":3,"4":4},"f":{"0":4,"1":3},"b":{"0":[1,2],"1":[2,1],"2":[3,2]},"meta":{"lastBranch":3,"lastFunction":2,"lastStatement":5,"seen":{"f:7:16:7:Infinity":0,"s:10:48:10:Infinity":0,"s:12:48:38:Infinity":1,"s:40:53:50:Infinity":2,"f:41:4:41:5":1,"s:41:17:49:Infinity":3,"b:43:71:43:76:43:76:43:Infinity":0,"b:47:12:47:Infinity:48:12:48:Infinity":1,"b:45:8:45:Infinity:46:8:46:Infinity":2,"s:52:2:63:Infinity":4}}}
1
+ {"/Users/pengcao/projects/aiready/packages/testability/src/analyzer.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/analyzer.ts","statementMap":{"0":{"start":{"line":33,"column":31},"end":{"line":41,"column":null}},"1":{"start":{"line":43,"column":17},"end":{"line":43,"column":null}},"2":{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},"3":{"start":{"line":44,"column":15},"end":{"line":44,"column":null}},"4":{"start":{"line":47,"column":2},"end":{"line":51,"column":null}},"5":{"start":{"line":48,"column":4},"end":{"line":48,"column":null}},"6":{"start":{"line":50,"column":4},"end":{"line":50,"column":null}},"7":{"start":{"line":53,"column":2},"end":{"line":88,"column":null}},"8":{"start":{"line":54,"column":4},"end":{"line":54,"column":null}},"9":{"start":{"line":55,"column":24},"end":{"line":55,"column":null}},"10":{"start":{"line":57,"column":4},"end":{"line":85,"column":null}},"11":{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},"12":{"start":{"line":59,"column":8},"end":{"line":59,"column":null}},"13":{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},"14":{"start":{"line":60,"column":24},"end":{"line":60,"column":null}},"15":{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},"16":{"start":{"line":61,"column":32},"end":{"line":61,"column":null}},"17":{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},"18":{"start":{"line":65,"column":8},"end":{"line":65,"column":null}},"19":{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},"20":{"start":{"line":68,"column":10},"end":{"line":68,"column":null}},"21":{"start":{"line":71,"column":14},"end":{"line":71,"column":null}},"22":{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},"23":{"start":{"line":73,"column":10},"end":{"line":73,"column":null}},"24":{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},"25":{"start":{"line":78,"column":8},"end":{"line":78,"column":null}},"26":{"start":{"line":80,"column":14},"end":{"line":80,"column":null}},"27":{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},"28":{"start":{"line":82,"column":10},"end":{"line":82,"column":null}},"29":{"start":{"line":87,"column":4},"end":{"line":87,"column":null}},"30":{"start":{"line":90,"column":2},"end":{"line":90,"column":null}},"31":{"start":{"line":100,"column":19},"end":{"line":104,"column":null}},"32":{"start":{"line":106,"column":22},"end":{"line":108,"column":null}},"33":{"start":{"line":107,"column":11},"end":{"line":107,"column":null}},"34":{"start":{"line":109,"column":20},"end":{"line":109,"column":null}},"35":{"start":{"line":109,"column":37},"end":{"line":109,"column":78}},"36":{"start":{"line":111,"column":35},"end":{"line":119,"column":null}},"37":{"start":{"line":126,"column":7},"end":{"line":126,"column":null}},"38":{"start":{"line":128,"column":2},"end":{"line":149,"column":null}},"39":{"start":{"line":133,"column":26},"end":{"line":136,"column":null}},"40":{"start":{"line":138,"column":16},"end":{"line":138,"column":null}},"41":{"start":{"line":139,"column":6},"end":{"line":141,"column":null}},"42":{"start":{"line":140,"column":8},"end":{"line":140,"column":null}},"43":{"start":{"line":143,"column":6},"end":{"line":147,"column":null}},"44":{"start":{"line":151,"column":8},"end":{"line":151,"column":null}},"45":{"start":{"line":153,"column":8},"end":{"line":165,"column":null}},"46":{"start":{"line":168,"column":37},"end":{"line":168,"column":null}},"47":{"start":{"line":169,"column":22},"end":{"line":169,"column":null}},"48":{"start":{"line":171,"column":4},"end":{"line":171,"column":null}},"49":{"start":{"line":173,"column":2},"end":{"line":184,"column":null}},"50":{"start":{"line":174,"column":4},"end":{"line":183,"column":null}},"51":{"start":{"line":186,"column":2},"end":{"line":197,"column":null}},"52":{"start":{"line":188,"column":6},"end":{"line":188,"column":null}},"53":{"start":{"line":189,"column":4},"end":{"line":196,"column":null}},"54":{"start":{"line":199,"column":2},"end":{"line":209,"column":null}},"55":{"start":{"line":200,"column":4},"end":{"line":208,"column":null}},"56":{"start":{"line":211,"column":2},"end":{"line":229,"column":null}}},"fnMap":{"0":{"name":"analyzeFileTestability","decl":{"start":{"line":32,"column":15},"end":{"line":32,"column":38}},"loc":{"start":{"line":32,"column":79},"end":{"line":91,"column":null}},"line":32},"1":{"name":"analyzeTestability","decl":{"start":{"line":96,"column":22},"end":{"line":96,"column":null}},"loc":{"start":{"line":98,"column":30},"end":{"line":230,"column":null}},"line":98},"2":{"name":"(anonymous_2)","decl":{"start":{"line":107,"column":4},"end":{"line":107,"column":5}},"loc":{"start":{"line":107,"column":11},"end":{"line":107,"column":null}},"line":107},"3":{"name":"(anonymous_3)","decl":{"start":{"line":109,"column":36},"end":{"line":109,"column":37}},"loc":{"start":{"line":109,"column":37},"end":{"line":109,"column":78}},"line":109},"4":{"name":"(anonymous_4)","decl":{"start":{"line":133,"column":4},"end":{"line":133,"column":11}},"loc":{"start":{"line":133,"column":26},"end":{"line":136,"column":null}},"line":133},"5":{"name":"(anonymous_5)","decl":{"start":{"line":137,"column":4},"end":{"line":137,"column":5}},"loc":{"start":{"line":137,"column":62},"end":{"line":148,"column":null}},"line":137}},"branchMap":{"0":{"loc":{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":null}},{"start":{},"end":{}}],"line":44},"1":{"loc":{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},"type":"if","locations":[{"start":{"line":58,"column":6},"end":{"line":62,"column":null}},{"start":{},"end":{}}],"line":58},"2":{"loc":{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},"type":"if","locations":[{"start":{"line":60,"column":8},"end":{"line":60,"column":null}},{"start":{},"end":{}}],"line":60},"3":{"loc":{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},"type":"if","locations":[{"start":{"line":61,"column":8},"end":{"line":61,"column":null}},{"start":{},"end":{}}],"line":61},"4":{"loc":{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},"type":"if","locations":[{"start":{"line":64,"column":6},"end":{"line":75,"column":null}},{"start":{},"end":{}}],"line":64},"5":{"loc":{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},"type":"if","locations":[{"start":{"line":67,"column":8},"end":{"line":69,"column":null}},{"start":{},"end":{}}],"line":67},"6":{"loc":{"start":{"line":67,"column":12},"end":{"line":67,"column":57}},"type":"binary-expr","locations":[{"start":{"line":67,"column":12},"end":{"line":67,"column":30}},{"start":{"line":67,"column":30},"end":{"line":67,"column":57}}],"line":67},"7":{"loc":{"start":{"line":71,"column":23},"end":{"line":71,"column":48}},"type":"binary-expr","locations":[{"start":{"line":71,"column":23},"end":{"line":71,"column":42}},{"start":{"line":71,"column":42},"end":{"line":71,"column":48}}],"line":71},"8":{"loc":{"start":{"line":71,"column":48},"end":{"line":71,"column":null}},"type":"binary-expr","locations":[{"start":{"line":71,"column":48},"end":{"line":71,"column":69}},{"start":{"line":71,"column":69},"end":{"line":71,"column":null}}],"line":71},"9":{"loc":{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},"type":"if","locations":[{"start":{"line":72,"column":8},"end":{"line":74,"column":null}},{"start":{},"end":{}}],"line":72},"10":{"loc":{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},"type":"if","locations":[{"start":{"line":77,"column":6},"end":{"line":84,"column":null}},{"start":{},"end":{}}],"line":77},"11":{"loc":{"start":{"line":80,"column":23},"end":{"line":80,"column":48}},"type":"binary-expr","locations":[{"start":{"line":80,"column":23},"end":{"line":80,"column":42}},{"start":{"line":80,"column":42},"end":{"line":80,"column":48}}],"line":80},"12":{"loc":{"start":{"line":80,"column":48},"end":{"line":80,"column":null}},"type":"binary-expr","locations":[{"start":{"line":80,"column":48},"end":{"line":80,"column":69}},{"start":{"line":80,"column":69},"end":{"line":80,"column":null}}],"line":80},"13":{"loc":{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},"type":"if","locations":[{"start":{"line":81,"column":8},"end":{"line":83,"column":null}},{"start":{},"end":{}}],"line":81},"14":{"loc":{"start":{"line":102,"column":13},"end":{"line":102,"column":null}},"type":"binary-expr","locations":[{"start":{"line":102,"column":13},"end":{"line":102,"column":32}},{"start":{"line":102,"column":32},"end":{"line":102,"column":null}}],"line":102},"15":{"loc":{"start":{"line":169,"column":22},"end":{"line":169,"column":null}},"type":"binary-expr","locations":[{"start":{"line":169,"column":22},"end":{"line":169,"column":50}},{"start":{"line":169,"column":50},"end":{"line":169,"column":null}}],"line":169},"16":{"loc":{"start":{"line":171,"column":4},"end":{"line":171,"column":null}},"type":"cond-expr","locations":[{"start":{"line":171,"column":29},"end":{"line":171,"column":69}},{"start":{"line":171,"column":69},"end":{"line":171,"column":null}}],"line":171},"17":{"loc":{"start":{"line":173,"column":2},"end":{"line":184,"column":null}},"type":"if","locations":[{"start":{"line":173,"column":2},"end":{"line":184,"column":null}},{"start":{},"end":{}}],"line":173},"18":{"loc":{"start":{"line":186,"column":2},"end":{"line":197,"column":null}},"type":"if","locations":[{"start":{"line":186,"column":2},"end":{"line":197,"column":null}},{"start":{},"end":{}}],"line":186},"19":{"loc":{"start":{"line":192,"column":16},"end":{"line":192,"column":null}},"type":"cond-expr","locations":[{"start":{"line":192,"column":36},"end":{"line":192,"column":56}},{"start":{"line":192,"column":56},"end":{"line":192,"column":null}}],"line":192},"20":{"loc":{"start":{"line":199,"column":2},"end":{"line":209,"column":null}},"type":"if","locations":[{"start":{"line":199,"column":2},"end":{"line":209,"column":null}},{"start":{},"end":{}}],"line":199}},"s":{"0":21,"1":21,"2":21,"3":0,"4":21,"5":21,"6":0,"7":21,"8":21,"9":21,"10":21,"11":17,"12":4,"13":4,"14":4,"15":4,"16":0,"17":17,"18":7,"19":7,"20":3,"21":7,"22":7,"23":0,"24":17,"25":2,"26":2,"27":2,"28":2,"29":0,"30":21,"31":7,"32":7,"33":25,"34":7,"35":25,"36":7,"37":7,"38":7,"39":21,"40":21,"41":21,"42":147,"43":21,"44":7,"45":7,"46":7,"47":7,"48":7,"49":7,"50":4,"51":7,"52":6,"53":6,"54":7,"55":3,"56":7},"f":{"0":21,"1":7,"2":25,"3":25,"4":21,"5":21},"b":{"0":[0,21],"1":[4,13],"2":[4,0],"3":[0,4],"4":[7,10],"5":[3,4],"6":[7,3],"7":[7,4],"8":[7,7],"9":[0,7],"10":[2,15],"11":[2,0],"12":[2,2],"13":[2,0],"14":[7,7],"15":[7,7],"16":[7,0],"17":[4,3],"18":[6,1],"19":[3,3],"20":[3,4]},"meta":{"lastBranch":21,"lastFunction":6,"lastStatement":57,"seen":{"f:32:15:32:38":0,"s:33:31:41:Infinity":0,"s:43:17:43:Infinity":1,"b:44:2:44:Infinity:undefined:undefined:undefined:undefined":0,"s:44:2:44:Infinity":2,"s:44:15:44:Infinity":3,"s:47:2:51:Infinity":4,"s:48:4:48:Infinity":5,"s:50:4:50:Infinity":6,"s:53:2:88:Infinity":7,"s:54:4:54:Infinity":8,"s:55:24:55:Infinity":9,"s:57:4:85:Infinity":10,"b:58:6:62:Infinity:undefined:undefined:undefined:undefined":1,"s:58:6:62:Infinity":11,"s:59:8:59:Infinity":12,"b:60:8:60:Infinity:undefined:undefined:undefined:undefined":2,"s:60:8:60:Infinity":13,"s:60:24:60:Infinity":14,"b:61:8:61:Infinity:undefined:undefined:undefined:undefined":3,"s:61:8:61:Infinity":15,"s:61:32:61:Infinity":16,"b:64:6:75:Infinity:undefined:undefined:undefined:undefined":4,"s:64:6:75:Infinity":17,"s:65:8:65:Infinity":18,"b:67:8:69:Infinity:undefined:undefined:undefined:undefined":5,"s:67:8:69:Infinity":19,"b:67:12:67:30:67:30:67:57":6,"s:68:10:68:Infinity":20,"s:71:14:71:Infinity":21,"b:71:23:71:42:71:42:71:48":7,"b:71:48:71:69:71:69:71:Infinity":8,"b:72:8:74:Infinity:undefined:undefined:undefined:undefined":9,"s:72:8:74:Infinity":22,"s:73:10:73:Infinity":23,"b:77:6:84:Infinity:undefined:undefined:undefined:undefined":10,"s:77:6:84:Infinity":24,"s:78:8:78:Infinity":25,"s:80:14:80:Infinity":26,"b:80:23:80:42:80:42:80:48":11,"b:80:48:80:69:80:69:80:Infinity":12,"b:81:8:83:Infinity:undefined:undefined:undefined:undefined":13,"s:81:8:83:Infinity":27,"s:82:10:82:Infinity":28,"s:87:4:87:Infinity":29,"s:90:2:90:Infinity":30,"f:96:22:96:Infinity":1,"s:100:19:104:Infinity":31,"b:102:13:102:32:102:32:102:Infinity":14,"s:106:22:108:Infinity":32,"f:107:4:107:5":2,"s:107:11:107:Infinity":33,"s:109:20:109:Infinity":34,"f:109:36:109:37":3,"s:109:37:109:78":35,"s:111:35:119:Infinity":36,"s:126:7:126:Infinity":37,"s:128:2:149:Infinity":38,"f:133:4:133:11":4,"s:133:26:136:Infinity":39,"f:137:4:137:5":5,"s:138:16:138:Infinity":40,"s:139:6:141:Infinity":41,"s:140:8:140:Infinity":42,"s:143:6:147:Infinity":43,"s:151:8:151:Infinity":44,"s:153:8:165:Infinity":45,"s:168:37:168:Infinity":46,"s:169:22:169:Infinity":47,"b:169:22:169:50:169:50:169:Infinity":15,"s:171:4:171:Infinity":48,"b:171:29:171:69:171:69:171:Infinity":16,"b:173:2:184:Infinity:undefined:undefined:undefined:undefined":17,"s:173:2:184:Infinity":49,"s:174:4:183:Infinity":50,"b:186:2:197:Infinity:undefined:undefined:undefined:undefined":18,"s:186:2:197:Infinity":51,"s:188:6:188:Infinity":52,"s:189:4:196:Infinity":53,"b:192:36:192:56:192:56:192:Infinity":19,"b:199:2:209:Infinity:undefined:undefined:undefined:undefined":20,"s:199:2:209:Infinity":54,"s:200:4:208:Infinity":55,"s:211:2:229:Infinity":56}}}
2
+ ,"/Users/pengcao/projects/aiready/packages/testability/src/provider.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/provider.ts","statementMap":{"0":{"start":{"line":14,"column":13},"end":{"line":45,"column":null}},"1":{"start":{"line":20,"column":4},"end":{"line":20,"column":null}},"2":{"start":{"line":23,"column":4},"end":{"line":29,"column":null}},"3":{"start":{"line":23,"column":41},"end":{"line":29,"column":6}},"4":{"start":{"line":32,"column":4},"end":{"line":32,"column":null}},"5":{"start":{"line":35,"column":4},"end":{"line":35,"column":null}},"6":{"start":{"line":38,"column":19},"end":{"line":42,"column":null}},"7":{"start":{"line":43,"column":4},"end":{"line":43,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":19,"column":8},"end":{"line":19,"column":22}},"loc":{"start":{"line":19,"column":44},"end":{"line":21,"column":null}},"line":19},"1":{"name":"(anonymous_1)","decl":{"start":{"line":22,"column":2},"end":{"line":22,"column":13}},"loc":{"start":{"line":22,"column":39},"end":{"line":30,"column":null}},"line":22},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":29},"end":{"line":23,"column":30}},"loc":{"start":{"line":23,"column":41},"end":{"line":29,"column":6}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":31,"column":2},"end":{"line":31,"column":13}},"loc":{"start":{"line":31,"column":21},"end":{"line":33,"column":null}},"line":31},"4":{"name":"(anonymous_4)","decl":{"start":{"line":34,"column":2},"end":{"line":34,"column":14}},"loc":{"start":{"line":34,"column":22},"end":{"line":36,"column":null}},"line":34},"5":{"name":"(anonymous_5)","decl":{"start":{"line":37,"column":2},"end":{"line":37,"column":8}},"loc":{"start":{"line":37,"column":16},"end":{"line":44,"column":null}},"line":37}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":24},"end":{"line":41,"column":null}},"type":"binary-expr","locations":[{"start":{"line":41,"column":24},"end":{"line":41,"column":66}},{"start":{"line":41,"column":66},"end":{"line":41,"column":null}}],"line":41}},"s":{"0":1,"1":1,"2":1,"3":0,"4":1,"5":1,"6":1,"7":1},"f":{"0":1,"1":1,"2":0,"3":1,"4":1,"5":1},"b":{"0":[1,1]},"meta":{"lastBranch":1,"lastFunction":6,"lastStatement":8,"seen":{"s:14:13:45:Infinity":0,"f:19:8:19:22":0,"s:20:4:20:Infinity":1,"f:22:2:22:13":1,"s:23:4:29:Infinity":2,"f:23:29:23:30":2,"s:23:41:29:6":3,"f:31:2:31:13":3,"s:32:4:32:Infinity":4,"f:34:2:34:14":4,"s:35:4:35:Infinity":5,"f:37:2:37:8":5,"s:38:19:42:Infinity":6,"b:41:24:41:66:41:66:41:Infinity":0,"s:43:4:43:Infinity":7}}}
3
+ ,"/Users/pengcao/projects/aiready/packages/testability/src/scoring.ts": {"path":"/Users/pengcao/projects/aiready/packages/testability/src/scoring.ts","statementMap":{"0":{"start":{"line":8,"column":48},"end":{"line":8,"column":null}},"1":{"start":{"line":10,"column":2},"end":{"line":26,"column":null}}},"fnMap":{"0":{"name":"calculateTestabilityScore","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":42}},"loc":{"start":{"line":7,"column":74},"end":{"line":27,"column":null}},"line":7}},"branchMap":{"0":{"loc":{"start":{"line":24,"column":6},"end":{"line":24,"column":null}},"type":"cond-expr","locations":[{"start":{"line":24,"column":54},"end":{"line":24,"column":59}},{"start":{"line":24,"column":59},"end":{"line":24,"column":null}}],"line":24},"1":{"loc":{"start":{"line":25,"column":12},"end":{"line":25,"column":null}},"type":"binary-expr","locations":[{"start":{"line":25,"column":12},"end":{"line":25,"column":44}},{"start":{"line":25,"column":44},"end":{"line":25,"column":null}}],"line":25}},"s":{"0":7,"1":7},"f":{"0":7},"b":{"0":[1,6],"1":[7,1]},"meta":{"lastBranch":2,"lastFunction":1,"lastStatement":2,"seen":{"f:7:16:7:42":0,"s:8:48:8:Infinity":0,"s:10:2:26:Infinity":1,"b:24:54:24:59:24:59:24:Infinity":0,"b:25:12:25:44:25:44:25:Infinity":1}}}
4
4
  }
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92.13% </span>
26
+ <span class="strong">91.04% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>82/89</span>
28
+ <span class='fraction'>61/67</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">83.33% </span>
33
+ <span class="strong">85.41% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>50/60</span>
35
+ <span class='fraction'>41/48</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">85.71% </span>
40
+ <span class="strong">92.3% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>12/14</span>
42
+ <span class='fraction'>12/13</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">96.1% </span>
47
+ <span class="strong">95.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>74/77</span>
49
+ <span class='fraction'>59/62</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,32 +80,32 @@
80
80
  </thead>
81
81
  <tbody><tr>
82
82
  <td class="file high" data-value="analyzer.ts"><a href="analyzer.ts.html">analyzer.ts</a></td>
83
- <td data-value="92.2" class="pic high">
84
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
83
+ <td data-value="91.22" class="pic high">
84
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
85
85
  </td>
86
- <td data-value="92.2" class="pct high">92.2%</td>
87
- <td data-value="77" class="abs high">71/77</td>
88
- <td data-value="80.76" class="pct high">80.76%</td>
89
- <td data-value="52" class="abs high">42/52</td>
90
- <td data-value="88.88" class="pct high">88.88%</td>
91
- <td data-value="9" class="abs high">8/9</td>
92
- <td data-value="95.45" class="pct high">95.45%</td>
93
- <td data-value="66" class="abs high">63/66</td>
86
+ <td data-value="91.22" class="pct high">91.22%</td>
87
+ <td data-value="57" class="abs high">52/57</td>
88
+ <td data-value="83.33" class="pct high">83.33%</td>
89
+ <td data-value="42" class="abs high">35/42</td>
90
+ <td data-value="100" class="pct high">100%</td>
91
+ <td data-value="6" class="abs high">6/6</td>
92
+ <td data-value="94.33" class="pct high">94.33%</td>
93
+ <td data-value="53" class="abs high">50/53</td>
94
94
  </tr>
95
95
 
96
96
  <tr>
97
97
  <td class="file high" data-value="provider.ts"><a href="provider.ts.html">provider.ts</a></td>
98
- <td data-value="85.71" class="pic high">
99
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
98
+ <td data-value="87.5" class="pic high">
99
+ <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
100
100
  </td>
101
- <td data-value="85.71" class="pct high">85.71%</td>
102
- <td data-value="7" class="abs high">6/7</td>
101
+ <td data-value="87.5" class="pct high">87.5%</td>
102
+ <td data-value="8" class="abs high">7/8</td>
103
103
  <td data-value="100" class="pct high">100%</td>
104
104
  <td data-value="2" class="abs high">2/2</td>
105
- <td data-value="66.66" class="pct medium">66.66%</td>
106
- <td data-value="3" class="abs medium">2/3</td>
105
+ <td data-value="83.33" class="pct high">83.33%</td>
106
+ <td data-value="6" class="abs high">5/6</td>
107
107
  <td data-value="100" class="pct high">100%</td>
108
- <td data-value="6" class="abs high">6/6</td>
108
+ <td data-value="7" class="abs high">7/7</td>
109
109
  </tr>
110
110
 
111
111
  <tr>
@@ -114,13 +114,13 @@
114
114
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
115
115
  </td>
116
116
  <td data-value="100" class="pct high">100%</td>
117
- <td data-value="5" class="abs high">5/5</td>
117
+ <td data-value="2" class="abs high">2/2</td>
118
118
  <td data-value="100" class="pct high">100%</td>
119
- <td data-value="6" class="abs high">6/6</td>
119
+ <td data-value="4" class="abs high">4/4</td>
120
120
  <td data-value="100" class="pct high">100%</td>
121
- <td data-value="2" class="abs high">2/2</td>
121
+ <td data-value="1" class="abs high">1/1</td>
122
122
  <td data-value="100" class="pct high">100%</td>
123
- <td data-value="5" class="abs high">5/5</td>
123
+ <td data-value="2" class="abs high">2/2</td>
124
124
  </tr>
125
125
 
126
126
  </tbody>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at 2026-03-09T02:58:39.025Z
134
+ at 2026-03-24T09:07:15.069Z
135
135
  </div>
136
136
  <script src="prettify.js"></script>
137
137
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">85.71% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/7</span>
28
+ <span class='fraction'>7/8</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">66.66% </span>
40
+ <span class="strong">83.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/3</span>
42
+ <span class='fraction'>5/6</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/6</span>
49
+ <span class='fraction'>7/7</span>
50
50
  </div>
51
51
 
52
52
 
@@ -108,20 +108,7 @@
108
108
  <a name='L43'></a><a href='#L43'>43</a>
109
109
  <a name='L44'></a><a href='#L44'>44</a>
110
110
  <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
122
- <span class="cline-any cline-neutral">&nbsp;</span>
123
- <span class="cline-any cline-neutral">&nbsp;</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
125
112
  <span class="cline-any cline-neutral">&nbsp;</span>
126
113
  <span class="cline-any cline-neutral">&nbsp;</span>
127
114
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -139,16 +126,10 @@
139
126
  <span class="cline-any cline-neutral">&nbsp;</span>
140
127
  <span class="cline-any cline-neutral">&nbsp;</span>
141
128
  <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-yes">1x</span>
143
129
  <span class="cline-any cline-neutral">&nbsp;</span>
144
130
  <span class="cline-any cline-yes">1x</span>
145
131
  <span class="cline-any cline-neutral">&nbsp;</span>
146
132
  <span class="cline-any cline-neutral">&nbsp;</span>
147
- <span class="cline-any cline-neutral">&nbsp;</span>
148
- <span class="cline-any cline-neutral">&nbsp;</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-neutral">&nbsp;</span>
151
- <span class="cline-any cline-neutral">&nbsp;</span>
152
133
  <span class="cline-any cline-yes">1x</span>
153
134
  <span class="cline-any cline-neutral">&nbsp;</span>
154
135
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -158,8 +139,10 @@
158
139
  <span class="cline-any cline-neutral">&nbsp;</span>
159
140
  <span class="cline-any cline-neutral">&nbsp;</span>
160
141
  <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-yes">1x</span>
161
143
  <span class="cline-any cline-neutral">&nbsp;</span>
162
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-yes">1x</span>
163
146
  <span class="cline-any cline-neutral">&nbsp;</span>
164
147
  <span class="cline-any cline-neutral">&nbsp;</span>
165
148
  <span class="cline-any cline-yes">1x</span>
@@ -167,20 +150,14 @@
167
150
  <span class="cline-any cline-neutral">&nbsp;</span>
168
151
  <span class="cline-any cline-neutral">&nbsp;</span>
169
152
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-neutral">&nbsp;</span>
171
153
  <span class="cline-any cline-yes">1x</span>
172
154
  <span class="cline-any cline-neutral">&nbsp;</span>
173
155
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
156
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import {
177
- ToolProvider,
157
+ AnalysisResult,
158
+ createProvider,
178
159
  ToolName,
179
- SpokeOutput,
180
160
  ScanOptions,
181
- ToolScoringOutput,
182
- AnalysisResult,
183
- SpokeOutputSchema,
184
161
  } from '@aiready/core';
185
162
  import { analyzeTestability } from './analyzer';
186
163
  import { calculateTestabilityScore } from './scoring';
@@ -189,45 +166,38 @@ import { TestabilityOptions, TestabilityReport } from './types';
189
166
  /**
190
167
  * Testability Tool Provider
191
168
  */
192
- export const TestabilityProvider: ToolProvider = {
169
+ export const TestabilityProvider = createProvider({
193
170
  id: ToolName.TestabilityIndex,
194
171
  alias: ['testability', 'tests', 'verification'],
195
- &nbsp;
196
- async analyze(options: ScanOptions): Promise&lt;SpokeOutput&gt; {
197
- const report = await analyzeTestability(options as TestabilityOptions);
198
- &nbsp;
199
- const results: AnalysisResult[] = report.issues.map(<span class="fstat-no" title="function not covered" >(i</span>) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
200
- fileName: i.location.file,
201
- issues: [i] as any[],
172
+ version: '0.2.5',
173
+ defaultWeight: 10,
174
+ async analyzeReport(options: ScanOptions) {
175
+ return analyzeTestability(options as TestabilityOptions);
176
+ },
177
+ getResults(report): AnalysisResult[] {
178
+ return report.issues.map(<span class="fstat-no" title="function not covered" >(i</span>ssue) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
179
+ fileName: issue.location.file,
180
+ issues: [issue] as any[],
202
181
  metrics: {
203
182
  testabilityScore: report.summary.score,
204
183
  },
205
184
  }));
206
- &nbsp;
207
- return SpokeOutputSchema.parse({
208
- results,
209
- summary: report.summary,
210
- metadata: {
211
- toolName: ToolName.TestabilityIndex,
212
- version: '0.2.5',
213
- timestamp: new Date().toISOString(),
214
- rawData: report.rawData,
215
- },
216
- });
217
185
  },
218
- &nbsp;
219
- score(output: SpokeOutput, options: ScanOptions): ToolScoringOutput {
186
+ getSummary(report) {
187
+ return report.summary;
188
+ },
189
+ getMetadata(report) {
190
+ return { rawData: report.rawData };
191
+ },
192
+ score(output) {
220
193
  const report = {
221
194
  summary: output.summary,
222
195
  rawData: (output.metadata as any).rawData,
223
196
  recommendations: (output.summary as any).recommendations || [],
224
197
  } as unknown as TestabilityReport;
225
- &nbsp;
226
198
  return calculateTestabilityScore(report);
227
199
  },
228
- &nbsp;
229
- defaultWeight: 10,
230
- };
200
+ });
231
201
  &nbsp;</pre></td></tr></table></pre>
232
202
 
233
203
  <div class='push'></div><!-- for sticky footer -->
@@ -235,7 +205,7 @@ export const TestabilityProvider: ToolProvider = {
235
205
  <div class='footer quiet pad2 space-top1 center small'>
236
206
  Code coverage generated by
237
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
238
- at 2026-03-09T02:58:39.025Z
208
+ at 2026-03-24T09:07:15.069Z
239
209
  </div>
240
210
  <script src="prettify.js"></script>
241
211
  <script>