api-tests-coverage 1.0.19 → 1.0.21

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.
Files changed (512) hide show
  1. package/README.md +3 -7
  2. package/dist/dashboard/assets/{_basePickBy-DZR484hj.js → _basePickBy-DiDMiru0.js} +1 -1
  3. package/dist/dashboard/{dist/assets/_baseUniq-Bwm426M6.js → assets/_baseUniq-CFoKRFhS.js} +1 -1
  4. package/dist/dashboard/{dist/assets/arc-51ef6HeW.js → assets/arc-B2fWu2mo.js} +1 -1
  5. package/dist/dashboard/{dist/assets/architectureDiagram-VXUJARFQ-Boahc5dR.js → assets/architectureDiagram-VXUJARFQ-DpIe4yWB.js} +1 -1
  6. package/dist/dashboard/assets/{blockDiagram-VD42YOAC-BvkiW8lj.js → blockDiagram-VD42YOAC-CKAgfH2X.js} +1 -1
  7. package/dist/dashboard/{dist/assets/c4Diagram-YG6GDRKO-Bww0QPxL.js → assets/c4Diagram-YG6GDRKO-CUtb-R__.js} +1 -1
  8. package/dist/dashboard/assets/channel-B9iMjZmm.js +1 -0
  9. package/dist/dashboard/assets/{chunk-4BX2VUAB-BrU7mtb9.js → chunk-4BX2VUAB-C3CSqwcX.js} +1 -1
  10. package/dist/dashboard/assets/{chunk-55IACEB6-DwsmCNp_.js → chunk-55IACEB6-CV8VzOOp.js} +1 -1
  11. package/dist/dashboard/{dist/assets/chunk-B4BG7PRW-B7YfMggR.js → assets/chunk-B4BG7PRW-URwnN3Q_.js} +1 -1
  12. package/dist/dashboard/{dist/assets/chunk-DI55MBZ5-B-xsiGYI.js → assets/chunk-DI55MBZ5-CV_d-z8j.js} +1 -1
  13. package/dist/dashboard/assets/{chunk-FMBD7UC4-DRb5NEMr.js → chunk-FMBD7UC4-8DJI9OkS.js} +1 -1
  14. package/dist/dashboard/assets/{chunk-QN33PNHL-BRSlHScq.js → chunk-QN33PNHL-pVzUBBoU.js} +1 -1
  15. package/dist/dashboard/assets/{chunk-QZHKN3VN-Cix7nLqx.js → chunk-QZHKN3VN-DCGN273N.js} +1 -1
  16. package/dist/dashboard/assets/{chunk-TZMSLE5B-BtXpcWN4.js → chunk-TZMSLE5B-D0wY-rJ0.js} +1 -1
  17. package/dist/dashboard/assets/classDiagram-2ON5EDUG-BNi5TogT.js +1 -0
  18. package/dist/dashboard/assets/classDiagram-v2-WZHVMYZB-BNi5TogT.js +1 -0
  19. package/dist/dashboard/assets/clone-m2eeeKVa.js +1 -0
  20. package/dist/dashboard/{dist/assets/cose-bilkent-S5V4N54A-BUkL7Wtq.js → assets/cose-bilkent-S5V4N54A-BIRyRYk0.js} +1 -1
  21. package/dist/dashboard/assets/{dagre-6UL2VRFP-DgEqrxGj.js → dagre-6UL2VRFP-KVIfxT9V.js} +1 -1
  22. package/dist/dashboard/assets/{diagram-PSM6KHXK-Y-M5J_PO.js → diagram-PSM6KHXK-VUmdxoiM.js} +1 -1
  23. package/dist/dashboard/assets/{diagram-QEK2KX5R-BXMS0hEZ.js → diagram-QEK2KX5R-LQ9k2vBy.js} +1 -1
  24. package/dist/dashboard/{dist/assets/diagram-S2PKOQOG--oRtrIMC.js → assets/diagram-S2PKOQOG-DIDe2of5.js} +1 -1
  25. package/dist/dashboard/{dist/assets/erDiagram-Q2GNP2WA-D0MbudeO.js → assets/erDiagram-Q2GNP2WA-CpMIyDcr.js} +1 -1
  26. package/dist/dashboard/{dist/assets/flowDiagram-NV44I4VS-1j044bLK.js → assets/flowDiagram-NV44I4VS-DR2nUASu.js} +1 -1
  27. package/dist/dashboard/assets/{ganttDiagram-JELNMOA3-Cjy_BOl2.js → ganttDiagram-JELNMOA3-C3J3WvDp.js} +1 -1
  28. package/dist/dashboard/{dist/assets/gitGraphDiagram-V2S2FVAM-CuJ5l3TK.js → assets/gitGraphDiagram-V2S2FVAM-C5V2Xlzu.js} +1 -1
  29. package/dist/dashboard/assets/{graph-BVGuJ5gs.js → graph-GSdi8Xy9.js} +1 -1
  30. package/dist/dashboard/{dist/assets/index-D3sRJga7.js → assets/index-Bhd7ZvcY.js} +82 -82
  31. package/dist/dashboard/assets/{infoDiagram-HS3SLOUP-CxmZGT-4.js → infoDiagram-HS3SLOUP-DVP1dWh4.js} +1 -1
  32. package/dist/dashboard/{dist/assets/journeyDiagram-XKPGCS4Q-8hUcTxo0.js → assets/journeyDiagram-XKPGCS4Q-CNHD7swq.js} +1 -1
  33. package/dist/dashboard/{dist/assets/kanban-definition-3W4ZIXB7-BvWm-0QQ.js → assets/kanban-definition-3W4ZIXB7-C-Jc4Ozy.js} +1 -1
  34. package/dist/dashboard/{dist/assets/layout-BFZ0bRU2.js → assets/layout-B0rNqEfo.js} +1 -1
  35. package/dist/dashboard/assets/{mindmap-definition-VGOIOE7T-BVsYbH_c.js → mindmap-definition-VGOIOE7T-hlQXiFXa.js} +1 -1
  36. package/dist/dashboard/assets/{pieDiagram-ADFJNKIX-BpwMMFZ3.js → pieDiagram-ADFJNKIX-CutZB3jG.js} +1 -1
  37. package/dist/dashboard/{dist/assets/quadrantDiagram-AYHSOK5B-C6NljtBN.js → assets/quadrantDiagram-AYHSOK5B-Bv6m-3mt.js} +1 -1
  38. package/dist/dashboard/{dist/assets/requirementDiagram-UZGBJVZJ-B3VaAf8y.js → assets/requirementDiagram-UZGBJVZJ-BQkld-bF.js} +1 -1
  39. package/dist/dashboard/{dist/assets/sankeyDiagram-TZEHDZUN-2ZhiU1NT.js → assets/sankeyDiagram-TZEHDZUN-DCWiCVGp.js} +1 -1
  40. package/dist/dashboard/assets/{sequenceDiagram-WL72ISMW-nMYJrjDT.js → sequenceDiagram-WL72ISMW-Dq_0SNSh.js} +1 -1
  41. package/dist/dashboard/{dist/assets/stateDiagram-FKZM4ZOC-0Wd-KmOv.js → assets/stateDiagram-FKZM4ZOC-BAd-cwxt.js} +1 -1
  42. package/dist/dashboard/assets/stateDiagram-v2-4FDKWEC3-DXlj7mrF.js +1 -0
  43. package/dist/dashboard/{dist/assets/timeline-definition-IT6M3QCI-CAmQOjBu.js → assets/timeline-definition-IT6M3QCI-BlMKo2bz.js} +1 -1
  44. package/dist/dashboard/{dist/assets/treemap-GDKQZRPO-CRP-WvE-.js → assets/treemap-GDKQZRPO-Cn6SBC6j.js} +1 -1
  45. package/dist/dashboard/{dist/assets/xychartDiagram-PRI3JC2R-5DoR2_q5.js → assets/xychartDiagram-PRI3JC2R-DlBeMjr8.js} +1 -1
  46. package/dist/dashboard/index.html +2 -2
  47. package/dist/src/config/defaultConfig.d.ts.map +1 -1
  48. package/dist/src/config/defaultConfig.js +0 -37
  49. package/dist/src/config/types.d.ts +0 -42
  50. package/dist/src/config/types.d.ts.map +1 -1
  51. package/dist/src/config/validateConfig.d.ts.map +1 -1
  52. package/dist/src/config/validateConfig.js +0 -3
  53. package/dist/src/discovery/fileClassifier.d.ts.map +1 -1
  54. package/dist/src/discovery/fileClassifier.js +16 -15
  55. package/dist/src/discovery/projectDiscovery.d.ts.map +1 -1
  56. package/dist/src/discovery/projectDiscovery.js +1 -4
  57. package/dist/src/index.js +92 -115
  58. package/dist/src/inference/routeInference.d.ts.map +1 -1
  59. package/dist/src/inference/routeInference.js +8 -54
  60. package/dist/src/languages/java/semanticBuilder.d.ts.map +1 -1
  61. package/dist/src/languages/java/semanticBuilder.js +12 -69
  62. package/dist/src/languages/javascript/angularDetector.d.ts.map +1 -1
  63. package/dist/src/languages/javascript/angularDetector.js +17 -50
  64. package/dist/src/languages/javascript/assertionResolver.js +4 -6
  65. package/dist/src/languages/javascript/hapiDetector.d.ts.map +1 -1
  66. package/dist/src/languages/javascript/hapiDetector.js +5 -48
  67. package/dist/src/languages/javascript/vueDetector.d.ts +0 -2
  68. package/dist/src/languages/javascript/vueDetector.d.ts.map +1 -1
  69. package/dist/src/languages/javascript/vueDetector.js +0 -22
  70. package/dist/src/languages/python/index.d.ts +1 -1
  71. package/dist/src/languages/python/index.d.ts.map +1 -1
  72. package/dist/src/languages/python/index.js +3 -33
  73. package/dist/src/pipeline/confidence.d.ts +1 -6
  74. package/dist/src/pipeline/confidence.d.ts.map +1 -1
  75. package/dist/src/pipeline/confidence.js +3 -8
  76. package/dist/src/pipeline/graph.d.ts.map +1 -1
  77. package/dist/src/pipeline/graph.js +4 -16
  78. package/dist/src/pipeline/stages/ast/astStage.d.ts.map +1 -1
  79. package/dist/src/pipeline/stages/ast/astStage.js +2 -46
  80. package/dist/src/pipeline/stages/ast/baseUrlComposer.d.ts.map +1 -1
  81. package/dist/src/pipeline/stages/ast/baseUrlComposer.js +4 -18
  82. package/dist/src/pipeline/stages/ast/crossFileResolver.js +0 -29
  83. package/dist/src/pipeline/stages/ast/graphBuilder.d.ts.map +1 -1
  84. package/dist/src/pipeline/stages/ast/graphBuilder.js +0 -81
  85. package/dist/src/pipeline/stages/ast/optionalAuthUnifier.d.ts +1 -3
  86. package/dist/src/pipeline/stages/ast/optionalAuthUnifier.d.ts.map +1 -1
  87. package/dist/src/pipeline/stages/ast/optionalAuthUnifier.js +14 -34
  88. package/dist/src/pipeline/stages/ast/resolvers/angularInjectionResolver.d.ts.map +1 -1
  89. package/dist/src/pipeline/stages/ast/resolvers/angularInjectionResolver.js +3 -22
  90. package/dist/src/pipeline/stages/ast/resolvers/dddLayerResolver.d.ts.map +1 -1
  91. package/dist/src/pipeline/stages/ast/resolvers/dddLayerResolver.js +28 -104
  92. package/dist/src/pipeline/stages/ast/resolvers/mybatisResolver.d.ts.map +1 -1
  93. package/dist/src/pipeline/stages/ast/resolvers/mybatisResolver.js +0 -56
  94. package/dist/src/pipeline/stages/ast/resolvers/vuexActionResolver.d.ts.map +1 -1
  95. package/dist/src/pipeline/stages/ast/resolvers/vuexActionResolver.js +18 -43
  96. package/dist/src/pipeline/stages/ast/rulesEnforcer.d.ts.map +1 -1
  97. package/dist/src/pipeline/stages/ast/rulesEnforcer.js +45 -336
  98. package/dist/src/pipeline/stages/merge/conflictDetector.d.ts +0 -2
  99. package/dist/src/pipeline/stages/merge/conflictDetector.d.ts.map +1 -1
  100. package/dist/src/pipeline/stages/merge/conflictDetector.js +2 -54
  101. package/dist/src/pipeline/stages/merge/coverageMappingBuilder.d.ts.map +1 -1
  102. package/dist/src/pipeline/stages/merge/coverageMappingBuilder.js +3 -67
  103. package/dist/src/pipeline/stages/tia/mockBoundaryDetector.d.ts.map +1 -1
  104. package/dist/src/pipeline/stages/tia/mockBoundaryDetector.js +1 -8
  105. package/dist/src/pipeline/stages/tia/parameterizedTestExpander.js +4 -8
  106. package/dist/src/pipeline/stages/tia/testLayerClassifier.d.ts.map +1 -1
  107. package/dist/src/pipeline/stages/tia/testLayerClassifier.js +10 -36
  108. package/dist/src/pipeline/types.d.ts +1 -1
  109. package/dist/src/pipeline/types.d.ts.map +1 -1
  110. package/package.json +3 -3
  111. package/dist/dashboard/assets/_baseUniq-BZHS9wTU.js +0 -1
  112. package/dist/dashboard/assets/arc-D4xT0thw.js +0 -1
  113. package/dist/dashboard/assets/architectureDiagram-VXUJARFQ-Bs48s9rH.js +0 -36
  114. package/dist/dashboard/assets/c4Diagram-YG6GDRKO-DuP3tG_c.js +0 -10
  115. package/dist/dashboard/assets/channel-YFEOkJua.js +0 -1
  116. package/dist/dashboard/assets/chunk-B4BG7PRW-D5WlZonc.js +0 -165
  117. package/dist/dashboard/assets/chunk-DI55MBZ5-B-xsiGYI.js +0 -220
  118. package/dist/dashboard/assets/classDiagram-2ON5EDUG-CE9rmEXI.js +0 -1
  119. package/dist/dashboard/assets/classDiagram-v2-WZHVMYZB-CE9rmEXI.js +0 -1
  120. package/dist/dashboard/assets/clone-BAVNftx6.js +0 -1
  121. package/dist/dashboard/assets/cose-bilkent-S5V4N54A-DrNDePwE.js +0 -1
  122. package/dist/dashboard/assets/diagram-S2PKOQOG-Bk_jyoxg.js +0 -24
  123. package/dist/dashboard/assets/erDiagram-Q2GNP2WA-BbPQp6RA.js +0 -60
  124. package/dist/dashboard/assets/flowDiagram-NV44I4VS-1j044bLK.js +0 -162
  125. package/dist/dashboard/assets/gitGraphDiagram-V2S2FVAM-RgQMxxaQ.js +0 -65
  126. package/dist/dashboard/assets/index-Bt72YjAZ.css +0 -1
  127. package/dist/dashboard/assets/index-DuT2LnIf.js +0 -523
  128. package/dist/dashboard/assets/journeyDiagram-XKPGCS4Q-CdvZAxeA.js +0 -139
  129. package/dist/dashboard/assets/kanban-definition-3W4ZIXB7-DTse5xX8.js +0 -89
  130. package/dist/dashboard/assets/layout-CnKzeCpQ.js +0 -1
  131. package/dist/dashboard/assets/quadrantDiagram-AYHSOK5B-C6NljtBN.js +0 -7
  132. package/dist/dashboard/assets/requirementDiagram-UZGBJVZJ-Ban4o6oK.js +0 -64
  133. package/dist/dashboard/assets/sankeyDiagram-TZEHDZUN-BDImwZtB.js +0 -10
  134. package/dist/dashboard/assets/stateDiagram-FKZM4ZOC-DkBAMCJV.js +0 -1
  135. package/dist/dashboard/assets/stateDiagram-v2-4FDKWEC3-CtkfyoSn.js +0 -1
  136. package/dist/dashboard/assets/timeline-definition-IT6M3QCI-CGUDCWFx.js +0 -61
  137. package/dist/dashboard/assets/treemap-GDKQZRPO-D-XpcCUD.js +0 -162
  138. package/dist/dashboard/assets/xychartDiagram-PRI3JC2R-BlIpbwyn.js +0 -7
  139. package/dist/dashboard/dist/assets/_basePickBy-C2jmWITn.js +0 -1
  140. package/dist/dashboard/dist/assets/_basePickBy-CErN2e4K.js +0 -1
  141. package/dist/dashboard/dist/assets/_basePickBy-CYB1KXah.js +0 -1
  142. package/dist/dashboard/dist/assets/_basePickBy-D4ml7gdd.js +0 -1
  143. package/dist/dashboard/dist/assets/_basePickBy-D7SXdoHL.js +0 -1
  144. package/dist/dashboard/dist/assets/_basePickBy-DUQHbXda.js +0 -1
  145. package/dist/dashboard/dist/assets/_basePickBy-DZR484hj.js +0 -1
  146. package/dist/dashboard/dist/assets/_basePickBy-_zJIZmFM.js +0 -1
  147. package/dist/dashboard/dist/assets/_baseUniq-BZHS9wTU.js +0 -1
  148. package/dist/dashboard/dist/assets/_baseUniq-BzwtoVZI.js +0 -1
  149. package/dist/dashboard/dist/assets/_baseUniq-C2oBAxY3.js +0 -1
  150. package/dist/dashboard/dist/assets/_baseUniq-CUKBQ2bc.js +0 -1
  151. package/dist/dashboard/dist/assets/_baseUniq-Ct8XEXnH.js +0 -1
  152. package/dist/dashboard/dist/assets/_baseUniq-DE6cyzJb.js +0 -1
  153. package/dist/dashboard/dist/assets/_baseUniq-DzHorfx6.js +0 -1
  154. package/dist/dashboard/dist/assets/arc-B-Q4nGPT.js +0 -1
  155. package/dist/dashboard/dist/assets/arc-B7p8x22e.js +0 -1
  156. package/dist/dashboard/dist/assets/arc-BDOeMmjX.js +0 -1
  157. package/dist/dashboard/dist/assets/arc-BaDRUN_n.js +0 -1
  158. package/dist/dashboard/dist/assets/arc-CjFGY63A.js +0 -1
  159. package/dist/dashboard/dist/assets/arc-D4xT0thw.js +0 -1
  160. package/dist/dashboard/dist/assets/arc-g03p1JXB.js +0 -1
  161. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-BUdFGrlT.js +0 -36
  162. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-Bs48s9rH.js +0 -36
  163. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-CLCqS7Lv.js +0 -36
  164. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-C_5dqWCI.js +0 -36
  165. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-WnVycqnT.js +0 -36
  166. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-mH7lInv5.js +0 -36
  167. package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-wVr1_uNB.js +0 -36
  168. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BBXc88fn.js +0 -122
  169. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BPw-T2eL.js +0 -122
  170. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BvkiW8lj.js +0 -122
  171. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-CavSRNuP.js +0 -122
  172. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-D-TzNNzc.js +0 -122
  173. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-DK0YAM7_.js +0 -122
  174. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-DbGIO6Kt.js +0 -122
  175. package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-V4vxrfzX.js +0 -122
  176. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-Bs4R4b6P.js +0 -10
  177. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-BsgzPfQ3.js +0 -10
  178. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-CAFpcejP.js +0 -10
  179. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-DVnWnYOL.js +0 -10
  180. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-DuP3tG_c.js +0 -10
  181. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-ZEVciqTW.js +0 -10
  182. package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-w18S5AEN.js +0 -10
  183. package/dist/dashboard/dist/assets/channel-BSnIwwuG.js +0 -1
  184. package/dist/dashboard/dist/assets/channel-BgeGdqQG.js +0 -1
  185. package/dist/dashboard/dist/assets/channel-CyXkK5KC.js +0 -1
  186. package/dist/dashboard/dist/assets/channel-D5Cq9giL.js +0 -1
  187. package/dist/dashboard/dist/assets/channel-DbeZpf5T.js +0 -1
  188. package/dist/dashboard/dist/assets/channel-Di9el3wE.js +0 -1
  189. package/dist/dashboard/dist/assets/channel-YFEOkJua.js +0 -1
  190. package/dist/dashboard/dist/assets/channel-psxgcQ_j.js +0 -1
  191. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-B9cIE1K2.js +0 -1
  192. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BDYDsvGv.js +0 -1
  193. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BF8loPLD.js +0 -1
  194. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BrU7mtb9.js +0 -1
  195. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-CSJ8KLGx.js +0 -1
  196. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-DY1boKsq.js +0 -1
  197. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-IN53WLTx.js +0 -1
  198. package/dist/dashboard/dist/assets/chunk-4BX2VUAB-oleArqPu.js +0 -1
  199. package/dist/dashboard/dist/assets/chunk-55IACEB6-BIFhHB94.js +0 -1
  200. package/dist/dashboard/dist/assets/chunk-55IACEB6-BSL35gyW.js +0 -1
  201. package/dist/dashboard/dist/assets/chunk-55IACEB6-BzCzmNUn.js +0 -1
  202. package/dist/dashboard/dist/assets/chunk-55IACEB6-C3HNF-UF.js +0 -1
  203. package/dist/dashboard/dist/assets/chunk-55IACEB6-CiEoroXY.js +0 -1
  204. package/dist/dashboard/dist/assets/chunk-55IACEB6-DV6VmXIy.js +0 -1
  205. package/dist/dashboard/dist/assets/chunk-55IACEB6-DwsmCNp_.js +0 -1
  206. package/dist/dashboard/dist/assets/chunk-55IACEB6-kJkjQYxk.js +0 -1
  207. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-B3IrqteW.js +0 -165
  208. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-BChq1Wly.js +0 -165
  209. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-BiYJ9gu_.js +0 -165
  210. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-CCMwwYCe.js +0 -165
  211. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-D5WlZonc.js +0 -165
  212. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-eTDXrKrv.js +0 -165
  213. package/dist/dashboard/dist/assets/chunk-B4BG7PRW-wQ6TCEMq.js +0 -165
  214. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-B7xHuqZu.js +0 -220
  215. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-BD9C9H7Y.js +0 -220
  216. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-BTfzxsg4.js +0 -220
  217. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-CSRqV3_6.js +0 -220
  218. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-D7eiRvhB.js +0 -220
  219. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-DfslhtXS.js +0 -220
  220. package/dist/dashboard/dist/assets/chunk-DI55MBZ5-M-8I3jEy.js +0 -220
  221. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-BBMfQbw1.js +0 -15
  222. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-BgEzYy_c.js +0 -15
  223. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-CtTcDWZJ.js +0 -15
  224. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-CyF99olo.js +0 -15
  225. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-DRb5NEMr.js +0 -15
  226. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-K3PC79JF.js +0 -15
  227. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-V0V2L4Gq.js +0 -15
  228. package/dist/dashboard/dist/assets/chunk-FMBD7UC4-bSA0XiS0.js +0 -15
  229. package/dist/dashboard/dist/assets/chunk-QN33PNHL-BBQ6Q-9S.js +0 -1
  230. package/dist/dashboard/dist/assets/chunk-QN33PNHL-BNX7uRa_.js +0 -1
  231. package/dist/dashboard/dist/assets/chunk-QN33PNHL-BRSlHScq.js +0 -1
  232. package/dist/dashboard/dist/assets/chunk-QN33PNHL-BrOIYUBs.js +0 -1
  233. package/dist/dashboard/dist/assets/chunk-QN33PNHL-CCuhlE1C.js +0 -1
  234. package/dist/dashboard/dist/assets/chunk-QN33PNHL-CmeZ1h1Z.js +0 -1
  235. package/dist/dashboard/dist/assets/chunk-QN33PNHL-DFgUs0T8.js +0 -1
  236. package/dist/dashboard/dist/assets/chunk-QN33PNHL-JcQZ0Q-Q.js +0 -1
  237. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-9uXt-06K.js +0 -1
  238. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-Cix7nLqx.js +0 -1
  239. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-CliaQGD4.js +0 -1
  240. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-Cyg7Km90.js +0 -1
  241. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-DKgOcPif.js +0 -1
  242. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-MNv3v4He.js +0 -1
  243. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-T5hoQANf.js +0 -1
  244. package/dist/dashboard/dist/assets/chunk-QZHKN3VN-mq-zucvn.js +0 -1
  245. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BjDMUc_L.js +0 -1
  246. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BoJFBewj.js +0 -1
  247. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BtXpcWN4.js +0 -1
  248. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-C8KNXDi7.js +0 -1
  249. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-CyhcxGB1.js +0 -1
  250. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-DGTVcqTS.js +0 -1
  251. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-DqMNcR7I.js +0 -1
  252. package/dist/dashboard/dist/assets/chunk-TZMSLE5B-F1fppg7C.js +0 -1
  253. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-AMwn99HP.js +0 -1
  254. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-BbkwHRko.js +0 -1
  255. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-Be0F7AG8.js +0 -1
  256. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-BkGN4Cpz.js +0 -1
  257. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-CE9rmEXI.js +0 -1
  258. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-CM6Qs-Qs.js +0 -1
  259. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-D3VDjeKC.js +0 -1
  260. package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-o8p5Y0H9.js +0 -1
  261. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-AMwn99HP.js +0 -1
  262. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-BbkwHRko.js +0 -1
  263. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-Be0F7AG8.js +0 -1
  264. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-BkGN4Cpz.js +0 -1
  265. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-CE9rmEXI.js +0 -1
  266. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-CM6Qs-Qs.js +0 -1
  267. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-D3VDjeKC.js +0 -1
  268. package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-o8p5Y0H9.js +0 -1
  269. package/dist/dashboard/dist/assets/clone-B5PF81Z3.js +0 -1
  270. package/dist/dashboard/dist/assets/clone-BAVNftx6.js +0 -1
  271. package/dist/dashboard/dist/assets/clone-BmpQ0ely.js +0 -1
  272. package/dist/dashboard/dist/assets/clone-CKIuLE_W.js +0 -1
  273. package/dist/dashboard/dist/assets/clone-Cv0cxIIi.js +0 -1
  274. package/dist/dashboard/dist/assets/clone-Cvq8JuOb.js +0 -1
  275. package/dist/dashboard/dist/assets/clone-DEYRVSAn.js +0 -1
  276. package/dist/dashboard/dist/assets/clone-KEkbvJY9.js +0 -1
  277. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DLYZ4dZA.js +0 -1
  278. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DMGRGhwB.js +0 -1
  279. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DrNDePwE.js +0 -1
  280. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-GjySlYac.js +0 -1
  281. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-UX3RfzXW.js +0 -1
  282. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-YL9kFxCl.js +0 -1
  283. package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-xVw-THr_.js +0 -1
  284. package/dist/dashboard/dist/assets/cytoscape.esm-CyJtwmzi.js +0 -331
  285. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-B8oEROJc.js +0 -4
  286. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-BO79zHpJ.js +0 -4
  287. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-Bjadb8g_.js +0 -4
  288. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-CJT7lofP.js +0 -4
  289. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-CUx6EwnW.js +0 -4
  290. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-D03qnh38.js +0 -4
  291. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-DgEqrxGj.js +0 -4
  292. package/dist/dashboard/dist/assets/dagre-6UL2VRFP-NZWnQN_Y.js +0 -4
  293. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-5uki9Dw8.js +0 -24
  294. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-BPFtplp4.js +0 -24
  295. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-BgOmComt.js +0 -24
  296. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-DGtyS7lD.js +0 -24
  297. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-D__FKIzE.js +0 -24
  298. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-DtE0cTIs.js +0 -24
  299. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-JEfxbZj6.js +0 -24
  300. package/dist/dashboard/dist/assets/diagram-PSM6KHXK-Y-M5J_PO.js +0 -24
  301. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-1hjfopmw.js +0 -43
  302. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BHyZd544.js +0 -43
  303. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BRNhmby2.js +0 -43
  304. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BXMS0hEZ.js +0 -43
  305. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BtOA2yYh.js +0 -43
  306. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CSCGZUfr.js +0 -43
  307. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CYK-aLR5.js +0 -43
  308. package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CYxueP7U.js +0 -43
  309. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-Bk_jyoxg.js +0 -24
  310. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-CRUXUQeh.js +0 -24
  311. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-CzytkAcm.js +0 -24
  312. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-D-ku_X8U.js +0 -24
  313. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-DdqZVGN1.js +0 -24
  314. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-Gj3ANjIG.js +0 -24
  315. package/dist/dashboard/dist/assets/diagram-S2PKOQOG-qvXlTDud.js +0 -24
  316. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-BbPQp6RA.js +0 -60
  317. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DDk1KpRF.js +0 -60
  318. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DGl6gPe2.js +0 -60
  319. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DSC5VPcF.js +0 -60
  320. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DZpjLrp5.js +0 -60
  321. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-Dhb_VQMS.js +0 -60
  322. package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DvI8ycM6.js +0 -60
  323. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-BAHshMEg.js +0 -162
  324. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-CBnhpWKd.js +0 -162
  325. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-CYXUqE3L.js +0 -162
  326. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-Co89qYBD.js +0 -162
  327. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-DRAD4OG7.js +0 -162
  328. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-PVleScVK.js +0 -162
  329. package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-gKUH-GJ2.js +0 -162
  330. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-2r3WpWQC.js +0 -267
  331. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-BA65eVi0.js +0 -267
  332. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-BS4JnN-M.js +0 -267
  333. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-Cjy_BOl2.js +0 -267
  334. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-CsUMU5Ws.js +0 -267
  335. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-DK_45K6s.js +0 -267
  336. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-DX-lROHt.js +0 -267
  337. package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-Dm_lLo9y.js +0 -267
  338. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-C9NpbucY.js +0 -65
  339. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-CWo2OK69.js +0 -65
  340. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-DM9AW1aP.js +0 -65
  341. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-DYrdM8tK.js +0 -65
  342. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-RgQMxxaQ.js +0 -65
  343. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-Uz3nRdju.js +0 -65
  344. package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-bYKe_efj.js +0 -65
  345. package/dist/dashboard/dist/assets/graph-BP2ns4se.js +0 -1
  346. package/dist/dashboard/dist/assets/graph-BVGuJ5gs.js +0 -1
  347. package/dist/dashboard/dist/assets/graph-CD7-npU0.js +0 -1
  348. package/dist/dashboard/dist/assets/graph-Clj85F2M.js +0 -1
  349. package/dist/dashboard/dist/assets/graph-CpRVMcWW.js +0 -1
  350. package/dist/dashboard/dist/assets/graph-Cwn7jgQS.js +0 -1
  351. package/dist/dashboard/dist/assets/graph-ZtgwAPQj.js +0 -1
  352. package/dist/dashboard/dist/assets/graph-gV0gk5Dq.js +0 -1
  353. package/dist/dashboard/dist/assets/index-Bt72YjAZ.css +0 -1
  354. package/dist/dashboard/dist/assets/index-ByH_nEhG.js +0 -523
  355. package/dist/dashboard/dist/assets/index-C302ingQ.css +0 -1
  356. package/dist/dashboard/dist/assets/index-CqEIqNus.js +0 -781
  357. package/dist/dashboard/dist/assets/index-D-AtVpd2.js +0 -523
  358. package/dist/dashboard/dist/assets/index-D3_88Gr5.js +0 -777
  359. package/dist/dashboard/dist/assets/index-DEXwnExZ.js +0 -523
  360. package/dist/dashboard/dist/assets/index-DbUdNJca.js +0 -781
  361. package/dist/dashboard/dist/assets/index-DuT2LnIf.js +0 -523
  362. package/dist/dashboard/dist/assets/index-xecKLQ58.css +0 -1
  363. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BMp4C5wf.js +0 -2
  364. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BjChBCME.js +0 -2
  365. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BxoN3QPh.js +0 -2
  366. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-CxmZGT-4.js +0 -2
  367. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-D3SFXNAS.js +0 -2
  368. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-DyT5Fs8R.js +0 -2
  369. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-HLwGZBHJ.js +0 -2
  370. package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-ujnMqVz3.js +0 -2
  371. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-BC0GSZ7W.js +0 -139
  372. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-Bv1IeJ8A.js +0 -139
  373. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CFgbI9OH.js +0 -139
  374. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CdvZAxeA.js +0 -139
  375. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CiMM9buE.js +0 -139
  376. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-DQzfeBIo.js +0 -139
  377. package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-nYZBlgTD.js +0 -139
  378. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-AkiB-BRk.js +0 -89
  379. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-BjYw_9v5.js +0 -89
  380. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-COTfX74l.js +0 -89
  381. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-D3u5Ov-5.js +0 -89
  382. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-D6aRd_q1.js +0 -89
  383. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-DTse5xX8.js +0 -89
  384. package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-ueIaoeks.js +0 -89
  385. package/dist/dashboard/dist/assets/katex-O9d3_IXG.js +0 -261
  386. package/dist/dashboard/dist/assets/layout-6njVG9Ld.js +0 -1
  387. package/dist/dashboard/dist/assets/layout-B1fTYUMj.js +0 -1
  388. package/dist/dashboard/dist/assets/layout-BbJNDkTr.js +0 -1
  389. package/dist/dashboard/dist/assets/layout-BwmMaJCx.js +0 -1
  390. package/dist/dashboard/dist/assets/layout-CnKzeCpQ.js +0 -1
  391. package/dist/dashboard/dist/assets/layout-DgtRACDS.js +0 -1
  392. package/dist/dashboard/dist/assets/layout-JbkTCGhr.js +0 -1
  393. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-B7wYeLe1.js +0 -68
  394. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-B93XW27v.js +0 -68
  395. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-BJ5xCmsL.js +0 -68
  396. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-BVsYbH_c.js +0 -68
  397. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-CkyYtMaD.js +0 -68
  398. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-CmcASbkx.js +0 -68
  399. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-D001Ygrx.js +0 -68
  400. package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-QDZ_z8OE.js +0 -68
  401. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-5pSPRGJ2.js +0 -30
  402. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-9G1tEuaq.js +0 -30
  403. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-BIOVbZG_.js +0 -30
  404. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-Bf8vKEOf.js +0 -30
  405. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-BpwMMFZ3.js +0 -30
  406. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-DOXOzepj.js +0 -30
  407. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-EeNihpUP.js +0 -30
  408. package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-uWFQFMEe.js +0 -30
  409. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-Bwppivuy.js +0 -7
  410. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-CM8qiFLR.js +0 -7
  411. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-Crgu5WqK.js +0 -7
  412. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-CtbMtM_F.js +0 -7
  413. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-i3-JTN3e.js +0 -7
  414. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-jDtdB4Ws.js +0 -7
  415. package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-o21Z8BWo.js +0 -7
  416. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-Ban4o6oK.js +0 -64
  417. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-BfAcJrqc.js +0 -64
  418. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-CgXxZ2rH.js +0 -64
  419. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-ClNSNeYe.js +0 -64
  420. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-DPTtP4Ve.js +0 -64
  421. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-Dw260IiT.js +0 -64
  422. package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-WIJ0qiJG.js +0 -64
  423. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-BDImwZtB.js +0 -10
  424. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-BFNTuDV7.js +0 -10
  425. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-Cb4WB9UB.js +0 -10
  426. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-D2OGoxU5.js +0 -10
  427. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-DEVTdH0h.js +0 -10
  428. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-LR8T4Hv0.js +0 -10
  429. package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-VcdyPlVE.js +0 -10
  430. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-1d8_kyI3.js +0 -145
  431. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-97qjzqIO.js +0 -145
  432. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-Bjr5wgXg.js +0 -145
  433. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-BqGJWVUS.js +0 -145
  434. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-C5h60fvZ.js +0 -145
  435. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-DBqchhlr.js +0 -145
  436. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-DOr6An-q.js +0 -145
  437. package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-nMYJrjDT.js +0 -145
  438. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-BWqoDymf.js +0 -1
  439. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-Bl16d4W5.js +0 -1
  440. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-C1KYr7Wj.js +0 -1
  441. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DDrhZYly.js +0 -1
  442. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DKkWVu_K.js +0 -1
  443. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DkBAMCJV.js +0 -1
  444. package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DlLDy54e.js +0 -1
  445. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-B05ygO34.js +0 -1
  446. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-B0euQu1p.js +0 -1
  447. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-BlwaoFEG.js +0 -1
  448. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-CtkfyoSn.js +0 -1
  449. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-DRV_IYr6.js +0 -1
  450. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-Im6pH8C-.js +0 -1
  451. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-K_qkvHaB.js +0 -1
  452. package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-pZ_Rrx6C.js +0 -1
  453. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CBR9kqeJ.js +0 -61
  454. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CGUDCWFx.js +0 -61
  455. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CLdinkid.js +0 -61
  456. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CsRS0WGC.js +0 -61
  457. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-D6JNee_P.js +0 -61
  458. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-DAT3r9va.js +0 -61
  459. package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-DR6HNny6.js +0 -61
  460. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-BlA8rg0m.js +0 -162
  461. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-CBle3d0d.js +0 -162
  462. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-CCvvSJBX.js +0 -162
  463. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-Cw9mkiYN.js +0 -162
  464. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-D-XpcCUD.js +0 -162
  465. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-MpQr6tee.js +0 -162
  466. package/dist/dashboard/dist/assets/treemap-GDKQZRPO-vW7FSd7C.js +0 -162
  467. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-7aSkQtVu.js +0 -7
  468. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-B72UwDAP.js +0 -7
  469. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-BceejIon.js +0 -7
  470. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-BlIpbwyn.js +0 -7
  471. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-ByLRWyI2.js +0 -7
  472. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-DjyK-sw-.js +0 -7
  473. package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-bS40I4IT.js +0 -7
  474. package/dist/dashboard/dist/index.html +0 -14
  475. package/dist/dashboard/dist/reports/business-coverage.json +0 -201
  476. package/dist/dashboard/dist/reports/coverage-intelligence.json +0 -728
  477. package/dist/dashboard/dist/reports/coverage-summary.json +0 -763
  478. package/dist/dashboard/dist/reports/endpoint-coverage.json +0 -336
  479. package/dist/dashboard/dist/reports/error-coverage.json +0 -367
  480. package/dist/dashboard/dist/reports/missing-tests-recommendations.json +0 -285
  481. package/dist/dashboard/dist/reports/risk-prioritization.json +0 -312
  482. package/dist/dashboard/dist/reports/security-coverage.json +0 -299
  483. package/dist/dashboard/dist/vite.svg +0 -1
  484. package/dist/dashboard/reports/coverage-summary.json +0 -763
  485. package/dist/src/generation/ai-flow-exporter.d.ts +0 -7
  486. package/dist/src/generation/ai-flow-exporter.d.ts.map +0 -1
  487. package/dist/src/generation/ai-flow-exporter.js +0 -260
  488. package/dist/src/generation/context-builder.d.ts +0 -16
  489. package/dist/src/generation/context-builder.d.ts.map +0 -1
  490. package/dist/src/generation/context-builder.js +0 -170
  491. package/dist/src/generation/engine.d.ts +0 -19
  492. package/dist/src/generation/engine.d.ts.map +0 -1
  493. package/dist/src/generation/engine.js +0 -204
  494. package/dist/src/generation/file-router.d.ts +0 -8
  495. package/dist/src/generation/file-router.d.ts.map +0 -1
  496. package/dist/src/generation/file-router.js +0 -98
  497. package/dist/src/generation/gap-extractor.d.ts +0 -7
  498. package/dist/src/generation/gap-extractor.d.ts.map +0 -1
  499. package/dist/src/generation/gap-extractor.js +0 -291
  500. package/dist/src/generation/index.d.ts +0 -9
  501. package/dist/src/generation/index.d.ts.map +0 -1
  502. package/dist/src/generation/index.js +0 -15
  503. package/dist/src/generation/quality-scorer.d.ts +0 -15
  504. package/dist/src/generation/quality-scorer.d.ts.map +0 -1
  505. package/dist/src/generation/quality-scorer.js +0 -273
  506. package/dist/src/generation/template-renderer.d.ts +0 -12
  507. package/dist/src/generation/template-renderer.d.ts.map +0 -1
  508. package/dist/src/generation/template-renderer.js +0 -546
  509. package/dist/src/generation/types.d.ts +0 -269
  510. package/dist/src/generation/types.d.ts.map +0 -1
  511. package/dist/src/generation/types.js +0 -6
  512. /package/dist/dashboard/{dist/assets → assets}/index-D_begBP0.css +0 -0
package/dist/src/index.js CHANGED
@@ -63,7 +63,6 @@ const integrationFlowInference_1 = require("./inference/integrationFlowInference
63
63
  const routeInference_1 = require("./inference/routeInference");
64
64
  const scanManifest_1 = require("./inference/scanManifest");
65
65
  const serveDashboard_1 = require("./serveDashboard");
66
- const index_4 = require("./generation/index");
67
66
  // Register all language AST analyzers at startup.
68
67
  // This side-effect import ensures each language module's registerAnalyzer() call runs.
69
68
  (0, astAnalysisOrchestrator_1.registerAllAnalyzers)();
@@ -1403,7 +1402,7 @@ program
1403
1402
  .option('--port <port>', 'Port for the dashboard server (requires --dashboard)', parseInt)
1404
1403
  .option('--open', 'Open the dashboard in your browser automatically (requires --dashboard)')
1405
1404
  .action(async (options) => {
1406
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
1405
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
1407
1406
  const { metricsPort, serviceName } = setupObservability();
1408
1407
  const logger = (0, observability_1.getLogger)();
1409
1408
  const configPath = program.opts()['config'];
@@ -1733,6 +1732,96 @@ program
1733
1732
  allCoverageResults.push(errorResult);
1734
1733
  console.log(` ${errorCovered}/${errorItems.length} inferred error scenarios have test coverage (${errorPct}%)`);
1735
1734
  }
1735
+ // ── 4b-alt. Parameter coverage from inferred routes + body params ──
1736
+ // Extract path parameters (e.g. ':article', ':id') and body params
1737
+ // (e.g. 'req.body.email') from inferred routes and business rules.
1738
+ // This populates the Parameters tab even without an OpenAPI spec.
1739
+ console.log(`\nAnalyzing parameter coverage (from inferred routes)...`);
1740
+ try {
1741
+ const paramItems = [];
1742
+ // Path parameters from routes
1743
+ const seenParamKeys = new Set();
1744
+ for (const epItem of endpointItems) {
1745
+ const route = routeResult.routes.find((r) => `${r.method.toUpperCase()} ${r.path}` === epItem.id);
1746
+ if (!route)
1747
+ continue;
1748
+ const pathParams = route.path.split('/').filter((s) => s.startsWith(':'));
1749
+ for (const param of pathParams) {
1750
+ const paramName = param.slice(1); // strip ':'
1751
+ const key = `${paramName}@${route.method.toUpperCase()}`;
1752
+ if (seenParamKeys.has(key))
1753
+ continue;
1754
+ seenParamKeys.add(key);
1755
+ paramItems.push({
1756
+ id: `PATH :${paramName} @ ${epItem.id}`,
1757
+ covered: epItem.covered, // param is covered if the route is covered
1758
+ matchedTests: epItem.matchedTests,
1759
+ param_type: 'path',
1760
+ source_file: route.sourceFile,
1761
+ line_number: route.lineNumber,
1762
+ });
1763
+ }
1764
+ }
1765
+ // Body parameters from inferred business rules (req.body.<field>)
1766
+ if (inferredRulesResult) {
1767
+ const BODY_PARAM_RE = /req\.body\.(\w+)/g;
1768
+ const seenBodyParams = new Set();
1769
+ for (const rule of inferredRulesResult.rules) {
1770
+ let bm;
1771
+ BODY_PARAM_RE.lastIndex = 0;
1772
+ const combinedText = `${rule.condition} ${rule.code_snippet}`;
1773
+ while ((bm = BODY_PARAM_RE.exec(combinedText)) !== null) {
1774
+ const fieldName = bm[1];
1775
+ const paramKey = `body_${fieldName}_${(_q = rule.endpoint) !== null && _q !== void 0 ? _q : ''}`;
1776
+ if (seenBodyParams.has(paramKey))
1777
+ continue;
1778
+ seenBodyParams.add(paramKey);
1779
+ const endpointLabel = (_r = rule.endpoint) !== null && _r !== void 0 ? _r : 'unknown endpoint';
1780
+ // Match: any test description mentioning the field name
1781
+ const fieldNameLower = fieldName.toLowerCase();
1782
+ const matchedTestDescs = [];
1783
+ for (const { file, descriptions } of testEntries) {
1784
+ const hitting = descriptions.filter((desc) => desc.includes(fieldNameLower));
1785
+ if (hitting.length > 0) {
1786
+ matchedTestDescs.push(...hitting.map((d) => `[${path.basename(file)}] ${d}`));
1787
+ }
1788
+ }
1789
+ const srcParts = (_t = (_s = rule.source_location) === null || _s === void 0 ? void 0 : _s.split(':')) !== null && _t !== void 0 ? _t : [];
1790
+ const srcFile = srcParts[0];
1791
+ const srcLine = srcParts[1] !== undefined ? parseInt(srcParts[1], 10) : undefined;
1792
+ paramItems.push({
1793
+ id: `BODY ${fieldName} @ ${endpointLabel}`,
1794
+ covered: matchedTestDescs.length > 0,
1795
+ matchedTests: matchedTestDescs,
1796
+ param_type: 'body',
1797
+ source_file: srcFile,
1798
+ line_number: srcLine && srcLine > 0 ? srcLine : undefined,
1799
+ });
1800
+ }
1801
+ }
1802
+ }
1803
+ if (paramItems.length > 0) {
1804
+ const paramCovered = paramItems.filter((i) => i.covered).length;
1805
+ const paramPct = Math.round((paramCovered / paramItems.length) * 100);
1806
+ allCoverageResults.push({
1807
+ type: 'parameter',
1808
+ totalItems: paramItems.length,
1809
+ coveredItems: paramCovered,
1810
+ coveragePercent: paramPct,
1811
+ details: {
1812
+ total: paramItems.length,
1813
+ covered: paramCovered,
1814
+ percentage: paramPct,
1815
+ items: paramItems,
1816
+ source: 'inferred',
1817
+ },
1818
+ });
1819
+ console.log(` ${paramCovered}/${paramItems.length} inferred parameters have test coverage (${paramPct}%)`);
1820
+ }
1821
+ }
1822
+ catch (paramErr) {
1823
+ warnings.push(`Parameter inference failed: ${paramErr instanceof Error ? paramErr.message : String(paramErr)}`);
1824
+ }
1736
1825
  }
1737
1826
  else {
1738
1827
  warnings.push('No routes detected in service files; endpoint coverage skipped.');
@@ -2019,7 +2108,7 @@ program
2019
2108
  if (options['dashboard']) {
2020
2109
  (0, serveDashboard_1.serveDashboard)({
2021
2110
  reportsDir: reportsDir,
2022
- port: (_q = options['port']) !== null && _q !== void 0 ? _q : 4000,
2111
+ port: (_u = options['port']) !== null && _u !== void 0 ? _u : 4000,
2023
2112
  open: Boolean(options['open']),
2024
2113
  });
2025
2114
  // Keep the process alive — the HTTP server holds the event loop open
@@ -2045,118 +2134,6 @@ program
2045
2134
  });
2046
2135
  // Keep the process alive while the server runs
2047
2136
  });
2048
- program
2049
- .command('generate-tests')
2050
- .description('Generate test scaffolds for detected coverage gaps')
2051
- .option('--reports-dir <dir>', 'Directory with coverage reports', 'reports/')
2052
- .option('--out-dir <dir>', 'Output directory for generated tests', 'generated-tests/')
2053
- .option('--language <lang>', 'Target language override (auto-detected if omitted)')
2054
- .option('--framework <fw>', 'Test framework override (auto-detected if omitted)')
2055
- .option('--priority <p>', 'Only generate for gaps at this priority or higher', 'P1')
2056
- .option('--dry-run', 'Print generated tests to stdout, do not write files', false)
2057
- .option('--overwrite', 'Overwrite existing generated files', false)
2058
- .option('--gap-id <id>', 'Generate tests for a single specific gap')
2059
- .option('--types <list>', 'Comma-separated gap types to generate (default: all)')
2060
- .option('--no-security', 'Skip security test generation')
2061
- .option('--no-cypress', 'Skip Cypress test generation')
2062
- .action(async (options) => {
2063
- const types = options.types
2064
- ? options.types.split(',').map(t => t.trim())
2065
- : undefined;
2066
- const result = await (0, index_4.generateTests)({
2067
- reportsDir: options.reportsDir,
2068
- outDir: options.outDir,
2069
- language: options.language,
2070
- framework: options.framework,
2071
- priority: options.priority,
2072
- dryRun: Boolean(options.dryRun),
2073
- overwrite: Boolean(options.overwrite),
2074
- gapId: options.gapId,
2075
- types,
2076
- noSecurity: Boolean(options.noSecurity),
2077
- noCypress: Boolean(options.noCypress),
2078
- });
2079
- if (result.dryRun) {
2080
- for (const file of result.files) {
2081
- console.log(`\n${'='.repeat(60)}`);
2082
- console.log(`// FILE: ${file.relativePath}`);
2083
- console.log(`${'='.repeat(60)}`);
2084
- console.log(file.content);
2085
- }
2086
- }
2087
- else {
2088
- console.log(`\nTest generation complete:`);
2089
- console.log(` Gaps processed: ${result.totalGaps}`);
2090
- console.log(` Files generated: ${result.generatedCount}`);
2091
- console.log(` Errors: ${result.errors.length}`);
2092
- if (result.errors.length > 0) {
2093
- for (const err of result.errors) {
2094
- console.error(` ERROR [${err.gapId}]: ${err.message}`);
2095
- }
2096
- }
2097
- }
2098
- });
2099
- program
2100
- .command('export-ai-flows')
2101
- .description('Export AI-ready flow documentation for Copilot/Cursor/Claude')
2102
- .option('--reports-dir <dir>', 'Directory with coverage reports', 'reports/')
2103
- .option('--out-dir <dir>', 'Output directory for AI flow files', 'reports/')
2104
- .option('--format <fmt>', 'Output format: markdown, json, or both', 'both')
2105
- .option('--max-gaps <n>', 'Maximum number of gaps to include', '50')
2106
- .option('--priority <p>', 'Only include gaps at this priority or higher', 'P3')
2107
- .action(async (options) => {
2108
- const flows = await (0, index_4.exportAiFlows)({
2109
- reportsDir: options.reportsDir,
2110
- outDir: options.outDir,
2111
- format: options.format,
2112
- maxGaps: parseInt(options.maxGaps, 10),
2113
- priority: options.priority,
2114
- });
2115
- console.log(`\nAI flows export complete:`);
2116
- console.log(` Gaps exported: ${flows.gaps.length}`);
2117
- console.log(` Project: ${flows.project.name}`);
2118
- console.log(` Language: ${flows.project.language}`);
2119
- });
2120
- program
2121
- .command('score-tests')
2122
- .description('Score quality of existing test suite on 5 dimensions (0-100)')
2123
- .option('--tests <glob>', 'Glob pattern for test files to score', 'tests/**/*.test.ts')
2124
- .option('--reports-dir <dir>', 'Directory to write quality score output', 'reports/')
2125
- .option('--fail-below <score>', 'Exit non-zero if any file scores below this', '0')
2126
- .action(async (options) => {
2127
- var _a;
2128
- try {
2129
- const report = await (0, index_4.scoreTests)({
2130
- testsGlob: options.tests,
2131
- reportsDir: options.reportsDir,
2132
- failBelow: parseInt(options.failBelow, 10),
2133
- });
2134
- console.log(`\nTest Quality Score Report:`);
2135
- console.log(` Overall score: ${report.overallScore}/100`);
2136
- console.log(` Files scored: ${report.byFile.length}`);
2137
- if (report.lowestQualityFiles.length > 0) {
2138
- console.log(`\n Lowest quality files:`);
2139
- for (const f of report.lowestQualityFiles) {
2140
- const entry = report.byFile.find(b => b.file === f);
2141
- console.log(` ${f}: ${(_a = entry === null || entry === void 0 ? void 0 : entry.score) !== null && _a !== void 0 ? _a : '?'}/100`);
2142
- }
2143
- }
2144
- if (report.highestRiskLowQualityGaps.length > 0) {
2145
- console.log(`\n High risk + low quality:`);
2146
- for (const g of report.highestRiskLowQualityGaps) {
2147
- console.log(` ${g.endpoint}: quality=${g.qualityScore}, risk=${g.riskScore}`);
2148
- console.log(` → ${g.primaryIssue}`);
2149
- }
2150
- }
2151
- console.log(`\n Report written to: ${options.reportsDir}/test-quality.json`);
2152
- }
2153
- catch (err) {
2154
- if (err instanceof Error) {
2155
- console.error(err.message);
2156
- }
2157
- process.exit(1);
2158
- }
2159
- });
2160
2137
  // Parse the command-line arguments
2161
2138
  program.parse(process.argv);
2162
2139
  // When invoked with no arguments (no subcommand), display help
@@ -1 +1 @@
1
- {"version":3,"file":"routeInference.d.ts","sourceRoot":"","sources":["../../../src/inference/routeInference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,eAAO,MAAM,YAAY,uEAAwE,CAAC;AAClG,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAmGD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAoJrE;AAkXD;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAgBxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAY5F"}
1
+ {"version":3,"file":"routeInference.d.ts","sourceRoot":"","sources":["../../../src/inference/routeInference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,eAAO,MAAM,YAAY,uEAAwE,CAAC;AAClG,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAqFD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAkIrE;AAiWD;;GAEG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAgBxE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAY5F"}
@@ -80,18 +80,7 @@ const JSDOC_ROUTE_PATTERN = /@route\s+\{(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)
80
80
  * Used to gate the URL+method object-form scan so we only activate it in
81
81
  * files that actually make HTTP calls (avoids scanning every JS file).
82
82
  */
83
- const HTTP_CLIENT_SIGNAL = /\$http|\bfetch\s*\(|\baxios\b|\bsuperagent\b/;
84
- /**
85
- * Matches client-side HTTP method calls: requests.get('/path'), api.post('/path'), etc.
86
- * Group 1 = HTTP method, Group 2 = path literal starting with /
87
- * Also handles: superagent.get(`${base}/path`) → captures the static suffix
88
- */
89
- const HTTP_CLIENT_METHOD_CALL = /\b\w+\s*\.\s*(get|post|put|patch|delete|del|head|options)\s*\(\s*(?:[^'"`\n]*?\+\s*)?['"`](\/[^'"`?\n]+)/i;
90
- /**
91
- * Signals that this JS/TS file is a client-side HTTP service layer.
92
- * Expands on HTTP_CLIENT_SIGNAL to include superagent and common wrapper patterns.
93
- */
94
- const HTTP_SERVICE_SIGNAL = /\bsuperagent\b|\brequests\s*\.\s*(?:get|post|put|delete|del)\b|\bapi\s*\.\s*(?:get|post|put|delete)\b/;
83
+ const HTTP_CLIENT_SIGNAL = /\$http|\bfetch\s*\(|\baxios\b/;
95
84
  /**
96
85
  * Matches a `url:` property that ends with a literal path segment starting
97
86
  * with `/`. Handles both bare and concatenated forms:
@@ -173,8 +162,6 @@ function inferRoutesFromFile(filePath) {
173
162
  // We only enable the object-form method+url scanner for such files to
174
163
  // avoid false positives in ordinary JS/TS source.
175
164
  const usesHttpClient = HTTP_CLIENT_SIGNAL.test(content);
176
- // Pre-check: does this file use a client-side HTTP service wrapper (requests.*, api.*, etc.)?
177
- const usesHttpServiceWrapper = HTTP_SERVICE_SIGNAL.test(content);
178
165
  for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
179
166
  const line = lines[lineIdx];
180
167
  // 1a. router.method('/path', ...) — all on one line
@@ -252,21 +239,6 @@ function inferRoutesFromFile(filePath) {
252
239
  }
253
240
  }
254
241
  }
255
- // 6. Client-side HTTP method calls: requests.get('/path'), api.post('/path')
256
- // Only activate for files that contain HTTP service signals to avoid false positives
257
- if (usesHttpServiceWrapper) {
258
- const clientCallMatch = line.match(HTTP_CLIENT_METHOD_CALL);
259
- if (clientCallMatch) {
260
- let httpMethod = clientCallMatch[1].toLowerCase();
261
- // Normalize 'del' → 'delete'
262
- if (httpMethod === 'del')
263
- httpMethod = 'delete';
264
- if (exports.HTTP_METHODS.includes(httpMethod)) {
265
- const routePath = clientCallMatch[2].split('?')[0]; // strip query string
266
- addRoute(httpMethod, routePath, lineIdx + 1, 'code');
267
- }
268
- }
269
- }
270
242
  }
271
243
  return [...byKey.values()];
272
244
  }
@@ -428,7 +400,7 @@ function findNextMethodNameInJava(javaLines, fromLine) {
428
400
  * @blueprint.route('/articles/<slug>', methods=['PUT'])
429
401
  * @app.route('/tags') ← defaults to GET
430
402
  */
431
- const FLASK_ROUTE = /@(\w+)\.route\s*\(\s*['"]([^'"]+)['"](?:[^\n]*?\bmethods\s*=\s*[\[(]([^\])\n]+)[\])])?/;
403
+ const FLASK_ROUTE = /@(\w+)\.route\s*\(\s*['"]([^'"]+)['"](?:\s*,\s*methods\s*=\s*\[([^\]]+)\])?\s*\)/;
432
404
  /**
433
405
  * Matches FastAPI decorators.
434
406
  * @app.get('/articles')
@@ -447,22 +419,6 @@ const FLASK_BLUEPRINT_CTOR = /(\w+)\s*=\s*Blueprint\s*\(\s*['"][^'"]+['"](?:\s*,
447
419
  * router = APIRouter(prefix="/articles")
448
420
  */
449
421
  const FASTAPI_APIROUTER = /(\w+)\s*=\s*APIRouter\s*\([^)]*?prefix\s*=\s*['"]([^'"]+)['"]/;
450
- /**
451
- * Scan ahead for a Python `def function_name(` line following a decorator.
452
- * Skips additional decorator lines and stops at the first non-decorator,
453
- * non-blank, non-comment line that is not a def.
454
- */
455
- function findPythonHandlerFunction(lines, fromLine) {
456
- for (let j = fromLine + 1; j < Math.min(fromLine + 6, lines.length); j++) {
457
- const m = lines[j].match(/^def\s+(\w+)\s*\(/);
458
- if (m)
459
- return m[1];
460
- // Skip decorator lines
461
- if (!lines[j].trim().startsWith('@') && lines[j].trim().length > 0 && !lines[j].trim().startsWith('#'))
462
- break;
463
- }
464
- return undefined;
465
- }
466
422
  /**
467
423
  * Infer routes from a Python (Flask/FastAPI) source file.
468
424
  */
@@ -476,10 +432,10 @@ function inferRoutesFromPythonFile(filePath) {
476
432
  }
477
433
  const lines = content.split('\n');
478
434
  const byKey = new Map();
479
- const addRoute = (method, routePath, lineNumber, handlerFunction) => {
435
+ const addRoute = (method, routePath, lineNumber) => {
480
436
  const key = `${method}:${routePath}`;
481
437
  if (!byKey.has(key)) {
482
- byKey.set(key, { method, path: routePath, handlerFunction, sourceFile: filePath, lineNumber, discoveredVia: 'code' });
438
+ byKey.set(key, { method, path: routePath, sourceFile: filePath, lineNumber, discoveredVia: 'code' });
483
439
  }
484
440
  };
485
441
  // Pass 1: Detect blueprint/router prefix for the file
@@ -507,19 +463,18 @@ function inferRoutesFromPythonFile(filePath) {
507
463
  const fullPath = localPrefix + (routePath.startsWith('/') ? routePath : '/' + routePath);
508
464
  // Normalize Flask <param> to {param}
509
465
  const normalizedPath = fullPath.replace(/<(?:\w+:)?(\w+)>/g, '{$1}');
510
- const handlerFn = findPythonHandlerFunction(lines, i);
511
466
  if (methodsList) {
512
- // Parse methods=['GET', 'POST'] or methods=('GET', 'POST') → individual routes
467
+ // Parse methods=['GET', 'POST'] → individual routes
513
468
  const methods = methodsList.replace(/['"]/g, '').split(',').map((m) => m.trim().toLowerCase());
514
469
  for (const m of methods) {
515
470
  if (exports.HTTP_METHODS.includes(m)) {
516
- addRoute(m, normalizedPath, i + 1, handlerFn);
471
+ addRoute(m, normalizedPath, i + 1);
517
472
  }
518
473
  }
519
474
  }
520
475
  else {
521
476
  // Default to GET
522
- addRoute('get', normalizedPath, i + 1, handlerFn);
477
+ addRoute('get', normalizedPath, i + 1);
523
478
  }
524
479
  continue;
525
480
  }
@@ -529,9 +484,8 @@ function inferRoutesFromPythonFile(filePath) {
529
484
  const httpMethod = fastapiMatch[2].toLowerCase();
530
485
  const routePath = fastapiMatch[3];
531
486
  const fullPath = localPrefix + (routePath.startsWith('/') ? routePath : '/' + routePath);
532
- const handlerFn = findPythonHandlerFunction(lines, i);
533
487
  // FastAPI uses {param} natively
534
- addRoute(httpMethod, fullPath, i + 1, handlerFn);
488
+ addRoute(httpMethod, fullPath, i + 1);
535
489
  continue;
536
490
  }
537
491
  }
@@ -1 +1 @@
1
- {"version":3,"file":"semanticBuilder.d.ts","sourceRoot":"","sources":["../../../../src/languages/java/semanticBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,OAAO,EACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAOnC,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GACX;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAmErF;AAID,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACrC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAwC/B;AAID,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACtC,GAAG,EAAE,gBAAgB,EAAE,GACtB,IAAI,CA+EN;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAyBvE;AAID,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAa3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAa3D"}
1
+ {"version":3,"file":"semanticBuilder.d.ts","sourceRoot":"","sources":["../../../../src/languages/java/semanticBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,OAAO,EACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,2BAA2B,CAAC;AAOnC,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GACX;IAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAAE,CAmErF;AAID,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GACrC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAqC/B;AAID,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,EACtC,GAAG,EAAE,gBAAgB,EAAE,GACtB,IAAI,CA6DN;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAyBvE;AAID,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAa3E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAa3D"}
@@ -97,8 +97,6 @@ function extractJavaFunctions(root, constants) {
97
97
  continue;
98
98
  const annotations = extractAnnotationNames(method);
99
99
  const block = (_e = (_d = method.childForFieldName) === null || _d === void 0 ? void 0 : _d.call(method, 'body')) !== null && _e !== void 0 ? _e : (0, treeSitterUtils_1.firstChildOfType)(method, 'block');
100
- // Extract method parameters
101
- const parameters = extractMethodParameters(method);
102
100
  const bodyHttpCalls = [];
103
101
  const calledFunctions = [];
104
102
  let returnValue;
@@ -111,7 +109,7 @@ function extractJavaFunctions(root, constants) {
111
109
  const cucumberPattern = extractCucumberPattern(annotations, method);
112
110
  graph.set(name, {
113
111
  name,
114
- parameters,
112
+ parameters: [],
115
113
  bodyHttpCalls,
116
114
  calledFunctions,
117
115
  returnValue,
@@ -123,44 +121,14 @@ function extractJavaFunctions(root, constants) {
123
121
  }
124
122
  // ─── HTTP call extraction ─────────────────────────────────────────────────────
125
123
  function extractJavaHttpCalls(block, constants, out) {
126
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
124
+ var _a, _b, _c, _d, _e, _f, _g;
127
125
  const methodInvocations = (0, treeSitterUtils_1.findNodes)(block, ['method_invocation']);
128
126
  for (const invoc of methodInvocations) {
129
127
  const methodName = (_e = (_c = (_b = (_a = invoc.childForFieldName) === null || _a === void 0 ? void 0 : _a.call(invoc, 'name')) === null || _b === void 0 ? void 0 : _b.text) !== null && _c !== void 0 ? _c : (_d = firstChildNamed(invoc, 'identifier')) === null || _d === void 0 ? void 0 : _d.text) !== null && _e !== void 0 ? _e : '';
130
128
  const lowerMethod = methodName.toLowerCase();
131
- // MockMvc: perform(get("/path")) — extract the inner HTTP method call
132
- if (lowerMethod === 'perform') {
133
- const argList = (_g = (_f = invoc.childForFieldName) === null || _f === void 0 ? void 0 : _f.call(invoc, 'arguments')) !== null && _g !== void 0 ? _g : (0, treeSitterUtils_1.firstChildOfType)(invoc, 'argument_list');
134
- if (!argList)
135
- continue;
136
- // The argument to perform() is a method invocation like get("/path") or post("/path")
137
- const innerInvocations = (0, treeSitterUtils_1.findNodes)(argList, ['method_invocation']);
138
- for (const innerInvoc of innerInvocations) {
139
- const innerMethodName = (_m = (_k = (_j = (_h = innerInvoc.childForFieldName) === null || _h === void 0 ? void 0 : _h.call(innerInvoc, 'name')) === null || _j === void 0 ? void 0 : _j.text) !== null && _k !== void 0 ? _k : (_l = firstChildNamed(innerInvoc, 'identifier')) === null || _l === void 0 ? void 0 : _l.text) !== null && _m !== void 0 ? _m : '';
140
- const innerLower = innerMethodName.toLowerCase();
141
- if (!HTTP_METHODS.has(innerLower))
142
- continue;
143
- const innerArgList = (_p = (_o = innerInvoc.childForFieldName) === null || _o === void 0 ? void 0 : _o.call(innerInvoc, 'arguments')) !== null && _p !== void 0 ? _p : (0, treeSitterUtils_1.firstChildOfType)(innerInvoc, 'argument_list');
144
- if (!innerArgList)
145
- continue;
146
- const innerStringArg = findFirstStringInArgList(innerArgList, constants);
147
- if (!innerStringArg)
148
- continue;
149
- const normalizedPath = innerStringArg.value.startsWith('/') ? (0, resolvePaths_1.normalizePathToTemplate)(innerStringArg.value) : undefined;
150
- out.push({
151
- method: innerLower.toUpperCase(),
152
- rawPathArg: (_q = innerStringArg.varName) !== null && _q !== void 0 ? _q : innerStringArg.value,
153
- resolvedPath: innerStringArg.value,
154
- normalizedPath,
155
- resolutionType: innerStringArg.isDirect ? 'direct' : 'constant',
156
- confidence: innerStringArg.isDirect ? 'high' : 'medium',
157
- });
158
- }
159
- continue;
160
- }
161
129
  if (!HTTP_METHODS.has(lowerMethod))
162
130
  continue;
163
- const argList = (_s = (_r = invoc.childForFieldName) === null || _r === void 0 ? void 0 : _r.call(invoc, 'arguments')) !== null && _s !== void 0 ? _s : (0, treeSitterUtils_1.firstChildOfType)(invoc, 'argument_list');
131
+ const argList = (_g = (_f = invoc.childForFieldName) === null || _f === void 0 ? void 0 : _f.call(invoc, 'arguments')) !== null && _g !== void 0 ? _g : (0, treeSitterUtils_1.firstChildOfType)(invoc, 'argument_list');
164
132
  if (!argList)
165
133
  continue;
166
134
  // Extract the first string argument (path)
@@ -170,6 +138,15 @@ function extractJavaHttpCalls(block, constants, out) {
170
138
  const { value: path, isDirect, varName } = firstStringArg;
171
139
  // Try to detect the HTTP method from context
172
140
  let httpMethod = lowerMethod.toUpperCase();
141
+ // RestAssured: .when().get("/path") or .given().get("/path")
142
+ // The method name IS the HTTP method in RestAssured style
143
+ if (!HTTP_METHODS.has(lowerMethod))
144
+ continue;
145
+ // MockMvc: perform(get("/path")) — perform wraps a method call
146
+ if (lowerMethod === 'perform') {
147
+ // The arg is another method invocation
148
+ continue; // Handled when we process the inner get/post
149
+ }
173
150
  if (lowerMethod === 'request') {
174
151
  // generic request(method, path) — try to get HTTP method from first arg
175
152
  const stringArgs = findAllStringsInArgList(argList, constants);
@@ -247,40 +224,6 @@ function extractJavaFlowRefs(root) {
247
224
  return refs;
248
225
  }
249
226
  // ─── Helpers ──────────────────────────────────────────────────────────────────
250
- /**
251
- * Extract method parameters with their annotations (e.g. @RequestParam, @PathVariable, @RequestBody).
252
- */
253
- function extractMethodParameters(method) {
254
- var _a;
255
- const params = [];
256
- const formalParams = (0, treeSitterUtils_1.firstChildOfType)(method, 'formal_parameters');
257
- if (!formalParams)
258
- return params;
259
- const paramNodes = (0, treeSitterUtils_1.findNodes)(formalParams, ['formal_parameter', 'spread_parameter']);
260
- for (const paramNode of paramNodes) {
261
- const paramAnnotations = [];
262
- (0, treeSitterUtils_1.walkTree)(paramNode, (n) => {
263
- var _a;
264
- if (n.type === 'annotation' || n.type === 'marker_annotation') {
265
- const nameNode = (0, treeSitterUtils_1.firstChildOfType)(n, 'identifier');
266
- if (nameNode)
267
- paramAnnotations.push('@' + ((_a = nameNode.text) !== null && _a !== void 0 ? _a : ''));
268
- }
269
- });
270
- const nameNode = firstChildNamed(paramNode, 'identifier');
271
- const name = (_a = nameNode === null || nameNode === void 0 ? void 0 : nameNode.text) !== null && _a !== void 0 ? _a : '';
272
- if (!name)
273
- continue;
274
- // Include annotation prefix for annotated params (Spring @RequestParam, @PathVariable, etc.)
275
- if (paramAnnotations.length > 0) {
276
- params.push(`${paramAnnotations.join(' ')} ${name}`);
277
- }
278
- else {
279
- params.push(name);
280
- }
281
- }
282
- return params;
283
- }
284
227
  function extractModifierTexts(node) {
285
228
  const modifiers = [];
286
229
  (0, treeSitterUtils_1.walkTree)(node, (n) => {
@@ -1 +1 @@
1
- {"version":3,"file":"angularDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/angularDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,SAAS,EAAE,aAAa,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;IACzF,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B,EAAE,OAAO,CAAC;IACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAyC9F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA2EhG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAyCxF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAgCpG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAY7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"angularDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/angularDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,SAAS,EAAE,aAAa,GAAG,kBAAkB,GAAG,eAAe,GAAG,SAAS,GAAG,UAAU,CAAC;IACzF,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B,EAAE,OAAO,CAAC;IACrC,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE,CAyC9F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAuChG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAyCxF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAgCpG;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAY7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEhE"}
@@ -68,66 +68,33 @@ function detectAngularInjections(sourceText, filePath) {
68
68
  const injections = [];
69
69
  const lines = sourceText.split('\n');
70
70
  let currentClass = '';
71
- let currentConstHost = '';
72
- let inConstructorParams = false;
73
71
  for (let i = 0; i < lines.length; i++) {
74
72
  const line = lines[i];
75
73
  // Track current class
76
74
  const classMatch = line.match(/class\s+(\w+)/);
77
75
  if (classMatch)
78
76
  currentClass = classMatch[1];
79
- // Track current const/export const assignment as potential host for inject() outside class.
80
- // Only update when the line is NOT itself an inject() call (e.g. skip `const x = inject(Y)`).
81
- if (!currentClass) {
82
- const constHostMatch = line.match(/(?:export\s+)?(?:const|let)\s+(\w+)\s*(?::\s*\S+)?\s*=/);
83
- if (constHostMatch && !line.match(/=\s*inject\s*\(/)) {
84
- currentConstHost = constHostMatch[1];
85
- }
86
- }
87
- // Track constructor parameter block boundaries
88
- if (/\bconstructor\s*\(/.test(line)) {
89
- inConstructorParams = true;
90
- }
91
- if (inConstructorParams && line.includes(')')) {
92
- // Process this line (it's still inside the constructor params), then close
93
- // We'll close after checking for injections below
94
- }
95
77
  // Constructor injection: constructor(private http: HttpClient)
96
- // Only match visibility-modified parameters when inside a constructor(...) block
97
- if (inConstructorParams) {
98
- const ctorParamPattern = /(?:private|protected|public|readonly)\s+(\w+)\s*:\s*(\w+)/g;
99
- let ctorMatch;
100
- while ((ctorMatch = ctorParamPattern.exec(line)) !== null) {
101
- if (currentClass) {
102
- injections.push({
103
- consumerClass: currentClass,
104
- serviceClass: ctorMatch[2],
105
- style: 'constructor',
106
- sourceFile: filePath,
107
- line: i + 1,
108
- });
109
- }
110
- }
111
- }
112
- // Close the constructor param block after processing (handles closing paren on same line)
113
- if (inConstructorParams && line.includes(')')) {
114
- inConstructorParams = false;
78
+ const ctorMatch = line.match(/(?:private|protected|public|readonly)\s+(\w+)\s*:\s*(\w+)/);
79
+ if (ctorMatch && currentClass) {
80
+ injections.push({
81
+ consumerClass: currentClass,
82
+ serviceClass: ctorMatch[2],
83
+ style: 'constructor',
84
+ sourceFile: filePath,
85
+ line: i + 1,
86
+ });
115
87
  }
116
88
  // Functional inject: inject(HttpClient)
117
89
  const injectMatch = line.match(/(\w+)\s*=\s*inject\s*\(\s*(\w+)\s*\)/);
118
- if (injectMatch) {
119
- // Use the enclosing class, or fall back to the enclosing const/export const host
120
- // (e.g. functional guards/interceptors: `export const authGuard: CanActivateFn = ...`)
121
- const hostName = currentClass || currentConstHost;
122
- if (hostName) {
123
- injections.push({
124
- consumerClass: hostName,
125
- serviceClass: injectMatch[2],
126
- style: 'inject-fn',
127
- sourceFile: filePath,
128
- line: i + 1,
129
- });
130
- }
90
+ if (injectMatch && currentClass) {
91
+ injections.push({
92
+ consumerClass: currentClass,
93
+ serviceClass: injectMatch[2],
94
+ style: 'inject-fn',
95
+ sourceFile: filePath,
96
+ line: i + 1,
97
+ });
131
98
  }
132
99
  }
133
100
  return injections;
@@ -66,8 +66,8 @@ function tryExtractAssertion(callNode) {
66
66
  if (!subject)
67
67
  return null;
68
68
  const methodName = (_j = (_h = (_g = callee.property) === null || _g === void 0 ? void 0 : _g.name) === null || _h === void 0 ? void 0 : _h.toLowerCase()) !== null && _j !== void 0 ? _j : '';
69
- const { variable, assertionType: subjectType } = classifyExpectSubject(subject);
70
- const assertionType = classifyAssertionMethod(methodName, subjectType);
69
+ const assertionType = classifyAssertionMethod(methodName);
70
+ const { variable } = classifyExpectSubject(subject);
71
71
  return { assertionType, subjectVariable: variable, line: (_l = (_k = callNode.loc) === null || _k === void 0 ? void 0 : _k.start) === null || _l === void 0 ? void 0 : _l.line };
72
72
  }
73
73
  }
@@ -132,15 +132,13 @@ function classifyExpectSubject(subject) {
132
132
  }
133
133
  return { variable: undefined, assertionType: 'body-field' };
134
134
  }
135
- function classifyAssertionMethod(methodName, subjectType) {
135
+ function classifyAssertionMethod(methodName) {
136
136
  if (methodName === 'tobe' ||
137
137
  methodName === 'toequal' ||
138
138
  methodName === 'tostrictequal' ||
139
139
  methodName === 'tobetruthy' ||
140
140
  methodName === 'tobefalsy') {
141
- // These methods are ambiguous use subject context to decide.
142
- // Only classify as status-code when the subject involves status.
143
- return subjectType === 'status-code' ? 'status-code' : 'body-field';
141
+ return 'status-code'; // Could be either, default to status-code
144
142
  }
145
143
  if (methodName === 'tohaveproperty' || methodName === 'tocontain' || methodName === 'tomatch') {
146
144
  return 'body-field';
@@ -1 +1 @@
1
- {"version":3,"file":"hapiDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/hapiDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CA6HlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAmBtF"}
1
+ {"version":3,"file":"hapiDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/hapiDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuFlF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE,CAmBtF"}