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.
- package/README.md +3 -7
- package/dist/dashboard/assets/{_basePickBy-DZR484hj.js → _basePickBy-DiDMiru0.js} +1 -1
- package/dist/dashboard/{dist/assets/_baseUniq-Bwm426M6.js → assets/_baseUniq-CFoKRFhS.js} +1 -1
- package/dist/dashboard/{dist/assets/arc-51ef6HeW.js → assets/arc-B2fWu2mo.js} +1 -1
- package/dist/dashboard/{dist/assets/architectureDiagram-VXUJARFQ-Boahc5dR.js → assets/architectureDiagram-VXUJARFQ-DpIe4yWB.js} +1 -1
- package/dist/dashboard/assets/{blockDiagram-VD42YOAC-BvkiW8lj.js → blockDiagram-VD42YOAC-CKAgfH2X.js} +1 -1
- package/dist/dashboard/{dist/assets/c4Diagram-YG6GDRKO-Bww0QPxL.js → assets/c4Diagram-YG6GDRKO-CUtb-R__.js} +1 -1
- package/dist/dashboard/assets/channel-B9iMjZmm.js +1 -0
- package/dist/dashboard/assets/{chunk-4BX2VUAB-BrU7mtb9.js → chunk-4BX2VUAB-C3CSqwcX.js} +1 -1
- package/dist/dashboard/assets/{chunk-55IACEB6-DwsmCNp_.js → chunk-55IACEB6-CV8VzOOp.js} +1 -1
- package/dist/dashboard/{dist/assets/chunk-B4BG7PRW-B7YfMggR.js → assets/chunk-B4BG7PRW-URwnN3Q_.js} +1 -1
- package/dist/dashboard/{dist/assets/chunk-DI55MBZ5-B-xsiGYI.js → assets/chunk-DI55MBZ5-CV_d-z8j.js} +1 -1
- package/dist/dashboard/assets/{chunk-FMBD7UC4-DRb5NEMr.js → chunk-FMBD7UC4-8DJI9OkS.js} +1 -1
- package/dist/dashboard/assets/{chunk-QN33PNHL-BRSlHScq.js → chunk-QN33PNHL-pVzUBBoU.js} +1 -1
- package/dist/dashboard/assets/{chunk-QZHKN3VN-Cix7nLqx.js → chunk-QZHKN3VN-DCGN273N.js} +1 -1
- package/dist/dashboard/assets/{chunk-TZMSLE5B-BtXpcWN4.js → chunk-TZMSLE5B-D0wY-rJ0.js} +1 -1
- package/dist/dashboard/assets/classDiagram-2ON5EDUG-BNi5TogT.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-WZHVMYZB-BNi5TogT.js +1 -0
- package/dist/dashboard/assets/clone-m2eeeKVa.js +1 -0
- package/dist/dashboard/{dist/assets/cose-bilkent-S5V4N54A-BUkL7Wtq.js → assets/cose-bilkent-S5V4N54A-BIRyRYk0.js} +1 -1
- package/dist/dashboard/assets/{dagre-6UL2VRFP-DgEqrxGj.js → dagre-6UL2VRFP-KVIfxT9V.js} +1 -1
- package/dist/dashboard/assets/{diagram-PSM6KHXK-Y-M5J_PO.js → diagram-PSM6KHXK-VUmdxoiM.js} +1 -1
- package/dist/dashboard/assets/{diagram-QEK2KX5R-BXMS0hEZ.js → diagram-QEK2KX5R-LQ9k2vBy.js} +1 -1
- package/dist/dashboard/{dist/assets/diagram-S2PKOQOG--oRtrIMC.js → assets/diagram-S2PKOQOG-DIDe2of5.js} +1 -1
- package/dist/dashboard/{dist/assets/erDiagram-Q2GNP2WA-D0MbudeO.js → assets/erDiagram-Q2GNP2WA-CpMIyDcr.js} +1 -1
- package/dist/dashboard/{dist/assets/flowDiagram-NV44I4VS-1j044bLK.js → assets/flowDiagram-NV44I4VS-DR2nUASu.js} +1 -1
- package/dist/dashboard/assets/{ganttDiagram-JELNMOA3-Cjy_BOl2.js → ganttDiagram-JELNMOA3-C3J3WvDp.js} +1 -1
- package/dist/dashboard/{dist/assets/gitGraphDiagram-V2S2FVAM-CuJ5l3TK.js → assets/gitGraphDiagram-V2S2FVAM-C5V2Xlzu.js} +1 -1
- package/dist/dashboard/assets/{graph-BVGuJ5gs.js → graph-GSdi8Xy9.js} +1 -1
- package/dist/dashboard/{dist/assets/index-D3sRJga7.js → assets/index-Bhd7ZvcY.js} +82 -82
- package/dist/dashboard/assets/{infoDiagram-HS3SLOUP-CxmZGT-4.js → infoDiagram-HS3SLOUP-DVP1dWh4.js} +1 -1
- package/dist/dashboard/{dist/assets/journeyDiagram-XKPGCS4Q-8hUcTxo0.js → assets/journeyDiagram-XKPGCS4Q-CNHD7swq.js} +1 -1
- package/dist/dashboard/{dist/assets/kanban-definition-3W4ZIXB7-BvWm-0QQ.js → assets/kanban-definition-3W4ZIXB7-C-Jc4Ozy.js} +1 -1
- package/dist/dashboard/{dist/assets/layout-BFZ0bRU2.js → assets/layout-B0rNqEfo.js} +1 -1
- package/dist/dashboard/assets/{mindmap-definition-VGOIOE7T-BVsYbH_c.js → mindmap-definition-VGOIOE7T-hlQXiFXa.js} +1 -1
- package/dist/dashboard/assets/{pieDiagram-ADFJNKIX-BpwMMFZ3.js → pieDiagram-ADFJNKIX-CutZB3jG.js} +1 -1
- package/dist/dashboard/{dist/assets/quadrantDiagram-AYHSOK5B-C6NljtBN.js → assets/quadrantDiagram-AYHSOK5B-Bv6m-3mt.js} +1 -1
- package/dist/dashboard/{dist/assets/requirementDiagram-UZGBJVZJ-B3VaAf8y.js → assets/requirementDiagram-UZGBJVZJ-BQkld-bF.js} +1 -1
- package/dist/dashboard/{dist/assets/sankeyDiagram-TZEHDZUN-2ZhiU1NT.js → assets/sankeyDiagram-TZEHDZUN-DCWiCVGp.js} +1 -1
- package/dist/dashboard/assets/{sequenceDiagram-WL72ISMW-nMYJrjDT.js → sequenceDiagram-WL72ISMW-Dq_0SNSh.js} +1 -1
- package/dist/dashboard/{dist/assets/stateDiagram-FKZM4ZOC-0Wd-KmOv.js → assets/stateDiagram-FKZM4ZOC-BAd-cwxt.js} +1 -1
- package/dist/dashboard/assets/stateDiagram-v2-4FDKWEC3-DXlj7mrF.js +1 -0
- package/dist/dashboard/{dist/assets/timeline-definition-IT6M3QCI-CAmQOjBu.js → assets/timeline-definition-IT6M3QCI-BlMKo2bz.js} +1 -1
- package/dist/dashboard/{dist/assets/treemap-GDKQZRPO-CRP-WvE-.js → assets/treemap-GDKQZRPO-Cn6SBC6j.js} +1 -1
- package/dist/dashboard/{dist/assets/xychartDiagram-PRI3JC2R-5DoR2_q5.js → assets/xychartDiagram-PRI3JC2R-DlBeMjr8.js} +1 -1
- package/dist/dashboard/index.html +2 -2
- package/dist/src/config/defaultConfig.d.ts.map +1 -1
- package/dist/src/config/defaultConfig.js +0 -37
- package/dist/src/config/types.d.ts +0 -42
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/config/validateConfig.d.ts.map +1 -1
- package/dist/src/config/validateConfig.js +0 -3
- package/dist/src/discovery/fileClassifier.d.ts.map +1 -1
- package/dist/src/discovery/fileClassifier.js +16 -15
- package/dist/src/discovery/projectDiscovery.d.ts.map +1 -1
- package/dist/src/discovery/projectDiscovery.js +1 -4
- package/dist/src/index.js +92 -115
- package/dist/src/inference/routeInference.d.ts.map +1 -1
- package/dist/src/inference/routeInference.js +8 -54
- package/dist/src/languages/java/semanticBuilder.d.ts.map +1 -1
- package/dist/src/languages/java/semanticBuilder.js +12 -69
- package/dist/src/languages/javascript/angularDetector.d.ts.map +1 -1
- package/dist/src/languages/javascript/angularDetector.js +17 -50
- package/dist/src/languages/javascript/assertionResolver.js +4 -6
- package/dist/src/languages/javascript/hapiDetector.d.ts.map +1 -1
- package/dist/src/languages/javascript/hapiDetector.js +5 -48
- package/dist/src/languages/javascript/vueDetector.d.ts +0 -2
- package/dist/src/languages/javascript/vueDetector.d.ts.map +1 -1
- package/dist/src/languages/javascript/vueDetector.js +0 -22
- package/dist/src/languages/python/index.d.ts +1 -1
- package/dist/src/languages/python/index.d.ts.map +1 -1
- package/dist/src/languages/python/index.js +3 -33
- package/dist/src/pipeline/confidence.d.ts +1 -6
- package/dist/src/pipeline/confidence.d.ts.map +1 -1
- package/dist/src/pipeline/confidence.js +3 -8
- package/dist/src/pipeline/graph.d.ts.map +1 -1
- package/dist/src/pipeline/graph.js +4 -16
- package/dist/src/pipeline/stages/ast/astStage.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/astStage.js +2 -46
- package/dist/src/pipeline/stages/ast/baseUrlComposer.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/baseUrlComposer.js +4 -18
- package/dist/src/pipeline/stages/ast/crossFileResolver.js +0 -29
- package/dist/src/pipeline/stages/ast/graphBuilder.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/graphBuilder.js +0 -81
- package/dist/src/pipeline/stages/ast/optionalAuthUnifier.d.ts +1 -3
- package/dist/src/pipeline/stages/ast/optionalAuthUnifier.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/optionalAuthUnifier.js +14 -34
- package/dist/src/pipeline/stages/ast/resolvers/angularInjectionResolver.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/resolvers/angularInjectionResolver.js +3 -22
- package/dist/src/pipeline/stages/ast/resolvers/dddLayerResolver.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/resolvers/dddLayerResolver.js +28 -104
- package/dist/src/pipeline/stages/ast/resolvers/mybatisResolver.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/resolvers/mybatisResolver.js +0 -56
- package/dist/src/pipeline/stages/ast/resolvers/vuexActionResolver.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/resolvers/vuexActionResolver.js +18 -43
- package/dist/src/pipeline/stages/ast/rulesEnforcer.d.ts.map +1 -1
- package/dist/src/pipeline/stages/ast/rulesEnforcer.js +45 -336
- package/dist/src/pipeline/stages/merge/conflictDetector.d.ts +0 -2
- package/dist/src/pipeline/stages/merge/conflictDetector.d.ts.map +1 -1
- package/dist/src/pipeline/stages/merge/conflictDetector.js +2 -54
- package/dist/src/pipeline/stages/merge/coverageMappingBuilder.d.ts.map +1 -1
- package/dist/src/pipeline/stages/merge/coverageMappingBuilder.js +3 -67
- package/dist/src/pipeline/stages/tia/mockBoundaryDetector.d.ts.map +1 -1
- package/dist/src/pipeline/stages/tia/mockBoundaryDetector.js +1 -8
- package/dist/src/pipeline/stages/tia/parameterizedTestExpander.js +4 -8
- package/dist/src/pipeline/stages/tia/testLayerClassifier.d.ts.map +1 -1
- package/dist/src/pipeline/stages/tia/testLayerClassifier.js +10 -36
- package/dist/src/pipeline/types.d.ts +1 -1
- package/dist/src/pipeline/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/dashboard/assets/_baseUniq-BZHS9wTU.js +0 -1
- package/dist/dashboard/assets/arc-D4xT0thw.js +0 -1
- package/dist/dashboard/assets/architectureDiagram-VXUJARFQ-Bs48s9rH.js +0 -36
- package/dist/dashboard/assets/c4Diagram-YG6GDRKO-DuP3tG_c.js +0 -10
- package/dist/dashboard/assets/channel-YFEOkJua.js +0 -1
- package/dist/dashboard/assets/chunk-B4BG7PRW-D5WlZonc.js +0 -165
- package/dist/dashboard/assets/chunk-DI55MBZ5-B-xsiGYI.js +0 -220
- package/dist/dashboard/assets/classDiagram-2ON5EDUG-CE9rmEXI.js +0 -1
- package/dist/dashboard/assets/classDiagram-v2-WZHVMYZB-CE9rmEXI.js +0 -1
- package/dist/dashboard/assets/clone-BAVNftx6.js +0 -1
- package/dist/dashboard/assets/cose-bilkent-S5V4N54A-DrNDePwE.js +0 -1
- package/dist/dashboard/assets/diagram-S2PKOQOG-Bk_jyoxg.js +0 -24
- package/dist/dashboard/assets/erDiagram-Q2GNP2WA-BbPQp6RA.js +0 -60
- package/dist/dashboard/assets/flowDiagram-NV44I4VS-1j044bLK.js +0 -162
- package/dist/dashboard/assets/gitGraphDiagram-V2S2FVAM-RgQMxxaQ.js +0 -65
- package/dist/dashboard/assets/index-Bt72YjAZ.css +0 -1
- package/dist/dashboard/assets/index-DuT2LnIf.js +0 -523
- package/dist/dashboard/assets/journeyDiagram-XKPGCS4Q-CdvZAxeA.js +0 -139
- package/dist/dashboard/assets/kanban-definition-3W4ZIXB7-DTse5xX8.js +0 -89
- package/dist/dashboard/assets/layout-CnKzeCpQ.js +0 -1
- package/dist/dashboard/assets/quadrantDiagram-AYHSOK5B-C6NljtBN.js +0 -7
- package/dist/dashboard/assets/requirementDiagram-UZGBJVZJ-Ban4o6oK.js +0 -64
- package/dist/dashboard/assets/sankeyDiagram-TZEHDZUN-BDImwZtB.js +0 -10
- package/dist/dashboard/assets/stateDiagram-FKZM4ZOC-DkBAMCJV.js +0 -1
- package/dist/dashboard/assets/stateDiagram-v2-4FDKWEC3-CtkfyoSn.js +0 -1
- package/dist/dashboard/assets/timeline-definition-IT6M3QCI-CGUDCWFx.js +0 -61
- package/dist/dashboard/assets/treemap-GDKQZRPO-D-XpcCUD.js +0 -162
- package/dist/dashboard/assets/xychartDiagram-PRI3JC2R-BlIpbwyn.js +0 -7
- package/dist/dashboard/dist/assets/_basePickBy-C2jmWITn.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-CErN2e4K.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-CYB1KXah.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-D4ml7gdd.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-D7SXdoHL.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-DUQHbXda.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-DZR484hj.js +0 -1
- package/dist/dashboard/dist/assets/_basePickBy-_zJIZmFM.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-BZHS9wTU.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-BzwtoVZI.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-C2oBAxY3.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-CUKBQ2bc.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-Ct8XEXnH.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-DE6cyzJb.js +0 -1
- package/dist/dashboard/dist/assets/_baseUniq-DzHorfx6.js +0 -1
- package/dist/dashboard/dist/assets/arc-B-Q4nGPT.js +0 -1
- package/dist/dashboard/dist/assets/arc-B7p8x22e.js +0 -1
- package/dist/dashboard/dist/assets/arc-BDOeMmjX.js +0 -1
- package/dist/dashboard/dist/assets/arc-BaDRUN_n.js +0 -1
- package/dist/dashboard/dist/assets/arc-CjFGY63A.js +0 -1
- package/dist/dashboard/dist/assets/arc-D4xT0thw.js +0 -1
- package/dist/dashboard/dist/assets/arc-g03p1JXB.js +0 -1
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-BUdFGrlT.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-Bs48s9rH.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-CLCqS7Lv.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-C_5dqWCI.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-WnVycqnT.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-mH7lInv5.js +0 -36
- package/dist/dashboard/dist/assets/architectureDiagram-VXUJARFQ-wVr1_uNB.js +0 -36
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BBXc88fn.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BPw-T2eL.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-BvkiW8lj.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-CavSRNuP.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-D-TzNNzc.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-DK0YAM7_.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-DbGIO6Kt.js +0 -122
- package/dist/dashboard/dist/assets/blockDiagram-VD42YOAC-V4vxrfzX.js +0 -122
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-Bs4R4b6P.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-BsgzPfQ3.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-CAFpcejP.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-DVnWnYOL.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-DuP3tG_c.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-ZEVciqTW.js +0 -10
- package/dist/dashboard/dist/assets/c4Diagram-YG6GDRKO-w18S5AEN.js +0 -10
- package/dist/dashboard/dist/assets/channel-BSnIwwuG.js +0 -1
- package/dist/dashboard/dist/assets/channel-BgeGdqQG.js +0 -1
- package/dist/dashboard/dist/assets/channel-CyXkK5KC.js +0 -1
- package/dist/dashboard/dist/assets/channel-D5Cq9giL.js +0 -1
- package/dist/dashboard/dist/assets/channel-DbeZpf5T.js +0 -1
- package/dist/dashboard/dist/assets/channel-Di9el3wE.js +0 -1
- package/dist/dashboard/dist/assets/channel-YFEOkJua.js +0 -1
- package/dist/dashboard/dist/assets/channel-psxgcQ_j.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-B9cIE1K2.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BDYDsvGv.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BF8loPLD.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-BrU7mtb9.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-CSJ8KLGx.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-DY1boKsq.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-IN53WLTx.js +0 -1
- package/dist/dashboard/dist/assets/chunk-4BX2VUAB-oleArqPu.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-BIFhHB94.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-BSL35gyW.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-BzCzmNUn.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-C3HNF-UF.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-CiEoroXY.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-DV6VmXIy.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-DwsmCNp_.js +0 -1
- package/dist/dashboard/dist/assets/chunk-55IACEB6-kJkjQYxk.js +0 -1
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-B3IrqteW.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-BChq1Wly.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-BiYJ9gu_.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-CCMwwYCe.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-D5WlZonc.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-eTDXrKrv.js +0 -165
- package/dist/dashboard/dist/assets/chunk-B4BG7PRW-wQ6TCEMq.js +0 -165
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-B7xHuqZu.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-BD9C9H7Y.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-BTfzxsg4.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-CSRqV3_6.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-D7eiRvhB.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-DfslhtXS.js +0 -220
- package/dist/dashboard/dist/assets/chunk-DI55MBZ5-M-8I3jEy.js +0 -220
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-BBMfQbw1.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-BgEzYy_c.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-CtTcDWZJ.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-CyF99olo.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-DRb5NEMr.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-K3PC79JF.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-V0V2L4Gq.js +0 -15
- package/dist/dashboard/dist/assets/chunk-FMBD7UC4-bSA0XiS0.js +0 -15
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-BBQ6Q-9S.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-BNX7uRa_.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-BRSlHScq.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-BrOIYUBs.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-CCuhlE1C.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-CmeZ1h1Z.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-DFgUs0T8.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QN33PNHL-JcQZ0Q-Q.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-9uXt-06K.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-Cix7nLqx.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-CliaQGD4.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-Cyg7Km90.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-DKgOcPif.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-MNv3v4He.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-T5hoQANf.js +0 -1
- package/dist/dashboard/dist/assets/chunk-QZHKN3VN-mq-zucvn.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BjDMUc_L.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BoJFBewj.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-BtXpcWN4.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-C8KNXDi7.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-CyhcxGB1.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-DGTVcqTS.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-DqMNcR7I.js +0 -1
- package/dist/dashboard/dist/assets/chunk-TZMSLE5B-F1fppg7C.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-AMwn99HP.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-BbkwHRko.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-Be0F7AG8.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-BkGN4Cpz.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-CE9rmEXI.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-CM6Qs-Qs.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-D3VDjeKC.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-2ON5EDUG-o8p5Y0H9.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-AMwn99HP.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-BbkwHRko.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-Be0F7AG8.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-BkGN4Cpz.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-CE9rmEXI.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-CM6Qs-Qs.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-D3VDjeKC.js +0 -1
- package/dist/dashboard/dist/assets/classDiagram-v2-WZHVMYZB-o8p5Y0H9.js +0 -1
- package/dist/dashboard/dist/assets/clone-B5PF81Z3.js +0 -1
- package/dist/dashboard/dist/assets/clone-BAVNftx6.js +0 -1
- package/dist/dashboard/dist/assets/clone-BmpQ0ely.js +0 -1
- package/dist/dashboard/dist/assets/clone-CKIuLE_W.js +0 -1
- package/dist/dashboard/dist/assets/clone-Cv0cxIIi.js +0 -1
- package/dist/dashboard/dist/assets/clone-Cvq8JuOb.js +0 -1
- package/dist/dashboard/dist/assets/clone-DEYRVSAn.js +0 -1
- package/dist/dashboard/dist/assets/clone-KEkbvJY9.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DLYZ4dZA.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DMGRGhwB.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-DrNDePwE.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-GjySlYac.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-UX3RfzXW.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-YL9kFxCl.js +0 -1
- package/dist/dashboard/dist/assets/cose-bilkent-S5V4N54A-xVw-THr_.js +0 -1
- package/dist/dashboard/dist/assets/cytoscape.esm-CyJtwmzi.js +0 -331
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-B8oEROJc.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-BO79zHpJ.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-Bjadb8g_.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-CJT7lofP.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-CUx6EwnW.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-D03qnh38.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-DgEqrxGj.js +0 -4
- package/dist/dashboard/dist/assets/dagre-6UL2VRFP-NZWnQN_Y.js +0 -4
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-5uki9Dw8.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-BPFtplp4.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-BgOmComt.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-DGtyS7lD.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-D__FKIzE.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-DtE0cTIs.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-JEfxbZj6.js +0 -24
- package/dist/dashboard/dist/assets/diagram-PSM6KHXK-Y-M5J_PO.js +0 -24
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-1hjfopmw.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BHyZd544.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BRNhmby2.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BXMS0hEZ.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-BtOA2yYh.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CSCGZUfr.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CYK-aLR5.js +0 -43
- package/dist/dashboard/dist/assets/diagram-QEK2KX5R-CYxueP7U.js +0 -43
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-Bk_jyoxg.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-CRUXUQeh.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-CzytkAcm.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-D-ku_X8U.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-DdqZVGN1.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-Gj3ANjIG.js +0 -24
- package/dist/dashboard/dist/assets/diagram-S2PKOQOG-qvXlTDud.js +0 -24
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-BbPQp6RA.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DDk1KpRF.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DGl6gPe2.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DSC5VPcF.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DZpjLrp5.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-Dhb_VQMS.js +0 -60
- package/dist/dashboard/dist/assets/erDiagram-Q2GNP2WA-DvI8ycM6.js +0 -60
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-BAHshMEg.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-CBnhpWKd.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-CYXUqE3L.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-Co89qYBD.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-DRAD4OG7.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-PVleScVK.js +0 -162
- package/dist/dashboard/dist/assets/flowDiagram-NV44I4VS-gKUH-GJ2.js +0 -162
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-2r3WpWQC.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-BA65eVi0.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-BS4JnN-M.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-Cjy_BOl2.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-CsUMU5Ws.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-DK_45K6s.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-DX-lROHt.js +0 -267
- package/dist/dashboard/dist/assets/ganttDiagram-JELNMOA3-Dm_lLo9y.js +0 -267
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-C9NpbucY.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-CWo2OK69.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-DM9AW1aP.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-DYrdM8tK.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-RgQMxxaQ.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-Uz3nRdju.js +0 -65
- package/dist/dashboard/dist/assets/gitGraphDiagram-V2S2FVAM-bYKe_efj.js +0 -65
- package/dist/dashboard/dist/assets/graph-BP2ns4se.js +0 -1
- package/dist/dashboard/dist/assets/graph-BVGuJ5gs.js +0 -1
- package/dist/dashboard/dist/assets/graph-CD7-npU0.js +0 -1
- package/dist/dashboard/dist/assets/graph-Clj85F2M.js +0 -1
- package/dist/dashboard/dist/assets/graph-CpRVMcWW.js +0 -1
- package/dist/dashboard/dist/assets/graph-Cwn7jgQS.js +0 -1
- package/dist/dashboard/dist/assets/graph-ZtgwAPQj.js +0 -1
- package/dist/dashboard/dist/assets/graph-gV0gk5Dq.js +0 -1
- package/dist/dashboard/dist/assets/index-Bt72YjAZ.css +0 -1
- package/dist/dashboard/dist/assets/index-ByH_nEhG.js +0 -523
- package/dist/dashboard/dist/assets/index-C302ingQ.css +0 -1
- package/dist/dashboard/dist/assets/index-CqEIqNus.js +0 -781
- package/dist/dashboard/dist/assets/index-D-AtVpd2.js +0 -523
- package/dist/dashboard/dist/assets/index-D3_88Gr5.js +0 -777
- package/dist/dashboard/dist/assets/index-DEXwnExZ.js +0 -523
- package/dist/dashboard/dist/assets/index-DbUdNJca.js +0 -781
- package/dist/dashboard/dist/assets/index-DuT2LnIf.js +0 -523
- package/dist/dashboard/dist/assets/index-xecKLQ58.css +0 -1
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BMp4C5wf.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BjChBCME.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-BxoN3QPh.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-CxmZGT-4.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-D3SFXNAS.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-DyT5Fs8R.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-HLwGZBHJ.js +0 -2
- package/dist/dashboard/dist/assets/infoDiagram-HS3SLOUP-ujnMqVz3.js +0 -2
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-BC0GSZ7W.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-Bv1IeJ8A.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CFgbI9OH.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CdvZAxeA.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-CiMM9buE.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-DQzfeBIo.js +0 -139
- package/dist/dashboard/dist/assets/journeyDiagram-XKPGCS4Q-nYZBlgTD.js +0 -139
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-AkiB-BRk.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-BjYw_9v5.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-COTfX74l.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-D3u5Ov-5.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-D6aRd_q1.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-DTse5xX8.js +0 -89
- package/dist/dashboard/dist/assets/kanban-definition-3W4ZIXB7-ueIaoeks.js +0 -89
- package/dist/dashboard/dist/assets/katex-O9d3_IXG.js +0 -261
- package/dist/dashboard/dist/assets/layout-6njVG9Ld.js +0 -1
- package/dist/dashboard/dist/assets/layout-B1fTYUMj.js +0 -1
- package/dist/dashboard/dist/assets/layout-BbJNDkTr.js +0 -1
- package/dist/dashboard/dist/assets/layout-BwmMaJCx.js +0 -1
- package/dist/dashboard/dist/assets/layout-CnKzeCpQ.js +0 -1
- package/dist/dashboard/dist/assets/layout-DgtRACDS.js +0 -1
- package/dist/dashboard/dist/assets/layout-JbkTCGhr.js +0 -1
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-B7wYeLe1.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-B93XW27v.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-BJ5xCmsL.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-BVsYbH_c.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-CkyYtMaD.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-CmcASbkx.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-D001Ygrx.js +0 -68
- package/dist/dashboard/dist/assets/mindmap-definition-VGOIOE7T-QDZ_z8OE.js +0 -68
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-5pSPRGJ2.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-9G1tEuaq.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-BIOVbZG_.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-Bf8vKEOf.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-BpwMMFZ3.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-DOXOzepj.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-EeNihpUP.js +0 -30
- package/dist/dashboard/dist/assets/pieDiagram-ADFJNKIX-uWFQFMEe.js +0 -30
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-Bwppivuy.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-CM8qiFLR.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-Crgu5WqK.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-CtbMtM_F.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-i3-JTN3e.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-jDtdB4Ws.js +0 -7
- package/dist/dashboard/dist/assets/quadrantDiagram-AYHSOK5B-o21Z8BWo.js +0 -7
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-Ban4o6oK.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-BfAcJrqc.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-CgXxZ2rH.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-ClNSNeYe.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-DPTtP4Ve.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-Dw260IiT.js +0 -64
- package/dist/dashboard/dist/assets/requirementDiagram-UZGBJVZJ-WIJ0qiJG.js +0 -64
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-BDImwZtB.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-BFNTuDV7.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-Cb4WB9UB.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-D2OGoxU5.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-DEVTdH0h.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-LR8T4Hv0.js +0 -10
- package/dist/dashboard/dist/assets/sankeyDiagram-TZEHDZUN-VcdyPlVE.js +0 -10
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-1d8_kyI3.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-97qjzqIO.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-Bjr5wgXg.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-BqGJWVUS.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-C5h60fvZ.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-DBqchhlr.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-DOr6An-q.js +0 -145
- package/dist/dashboard/dist/assets/sequenceDiagram-WL72ISMW-nMYJrjDT.js +0 -145
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-BWqoDymf.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-Bl16d4W5.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-C1KYr7Wj.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DDrhZYly.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DKkWVu_K.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DkBAMCJV.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-FKZM4ZOC-DlLDy54e.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-B05ygO34.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-B0euQu1p.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-BlwaoFEG.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-CtkfyoSn.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-DRV_IYr6.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-Im6pH8C-.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-K_qkvHaB.js +0 -1
- package/dist/dashboard/dist/assets/stateDiagram-v2-4FDKWEC3-pZ_Rrx6C.js +0 -1
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CBR9kqeJ.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CGUDCWFx.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CLdinkid.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-CsRS0WGC.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-D6JNee_P.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-DAT3r9va.js +0 -61
- package/dist/dashboard/dist/assets/timeline-definition-IT6M3QCI-DR6HNny6.js +0 -61
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-BlA8rg0m.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-CBle3d0d.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-CCvvSJBX.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-Cw9mkiYN.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-D-XpcCUD.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-MpQr6tee.js +0 -162
- package/dist/dashboard/dist/assets/treemap-GDKQZRPO-vW7FSd7C.js +0 -162
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-7aSkQtVu.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-B72UwDAP.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-BceejIon.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-BlIpbwyn.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-ByLRWyI2.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-DjyK-sw-.js +0 -7
- package/dist/dashboard/dist/assets/xychartDiagram-PRI3JC2R-bS40I4IT.js +0 -7
- package/dist/dashboard/dist/index.html +0 -14
- package/dist/dashboard/dist/reports/business-coverage.json +0 -201
- package/dist/dashboard/dist/reports/coverage-intelligence.json +0 -728
- package/dist/dashboard/dist/reports/coverage-summary.json +0 -763
- package/dist/dashboard/dist/reports/endpoint-coverage.json +0 -336
- package/dist/dashboard/dist/reports/error-coverage.json +0 -367
- package/dist/dashboard/dist/reports/missing-tests-recommendations.json +0 -285
- package/dist/dashboard/dist/reports/risk-prioritization.json +0 -312
- package/dist/dashboard/dist/reports/security-coverage.json +0 -299
- package/dist/dashboard/dist/vite.svg +0 -1
- package/dist/dashboard/reports/coverage-summary.json +0 -763
- package/dist/src/generation/ai-flow-exporter.d.ts +0 -7
- package/dist/src/generation/ai-flow-exporter.d.ts.map +0 -1
- package/dist/src/generation/ai-flow-exporter.js +0 -260
- package/dist/src/generation/context-builder.d.ts +0 -16
- package/dist/src/generation/context-builder.d.ts.map +0 -1
- package/dist/src/generation/context-builder.js +0 -170
- package/dist/src/generation/engine.d.ts +0 -19
- package/dist/src/generation/engine.d.ts.map +0 -1
- package/dist/src/generation/engine.js +0 -204
- package/dist/src/generation/file-router.d.ts +0 -8
- package/dist/src/generation/file-router.d.ts.map +0 -1
- package/dist/src/generation/file-router.js +0 -98
- package/dist/src/generation/gap-extractor.d.ts +0 -7
- package/dist/src/generation/gap-extractor.d.ts.map +0 -1
- package/dist/src/generation/gap-extractor.js +0 -291
- package/dist/src/generation/index.d.ts +0 -9
- package/dist/src/generation/index.d.ts.map +0 -1
- package/dist/src/generation/index.js +0 -15
- package/dist/src/generation/quality-scorer.d.ts +0 -15
- package/dist/src/generation/quality-scorer.d.ts.map +0 -1
- package/dist/src/generation/quality-scorer.js +0 -273
- package/dist/src/generation/template-renderer.d.ts +0 -12
- package/dist/src/generation/template-renderer.d.ts.map +0 -1
- package/dist/src/generation/template-renderer.js +0 -546
- package/dist/src/generation/types.d.ts +0 -269
- package/dist/src/generation/types.d.ts.map +0 -1
- package/dist/src/generation/types.js +0 -6
- /package/dist/dashboard/{dist/assets → assets}/index-D_begBP0.css +0 -0
|
@@ -30,7 +30,7 @@ const BOOM_STATUS_MAP = {
|
|
|
30
30
|
* Detect HapiJS route definitions from source text.
|
|
31
31
|
*/
|
|
32
32
|
function detectHapiRoutes(sourceText, filePath) {
|
|
33
|
-
var _a, _b
|
|
33
|
+
var _a, _b;
|
|
34
34
|
const routes = [];
|
|
35
35
|
const lines = sourceText.split('\n');
|
|
36
36
|
for (let i = 0; i < lines.length; i++) {
|
|
@@ -55,7 +55,7 @@ function detectHapiRoutes(sourceText, filePath) {
|
|
|
55
55
|
if (authSimple) {
|
|
56
56
|
auth = { strategy: authSimple[1], mode: 'required' };
|
|
57
57
|
}
|
|
58
|
-
// auth: { mode: 'try' } or auth: { mode: 'optional' }
|
|
58
|
+
// auth: { mode: 'try' } or auth: { mode: 'optional' }
|
|
59
59
|
const authMode = nearLine.match(/(?:auth|mode)\s*:\s*[{]?\s*mode\s*:\s*['"](\w+)['"]/);
|
|
60
60
|
if (authMode) {
|
|
61
61
|
auth = {
|
|
@@ -63,19 +63,6 @@ function detectHapiRoutes(sourceText, filePath) {
|
|
|
63
63
|
mode: authMode[1] === 'try' || authMode[1] === 'optional' ? 'optional' : 'required',
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
else if (/auth\s*:\s*\{/.test(nearLine) || /auth\s*\{/.test(nearLine)) {
|
|
67
|
-
// Multi-line auth object: scan the next 5 lines for mode: 'try' / 'optional'
|
|
68
|
-
for (let m = j + 1; m < Math.min(j + 6, lines.length); m++) {
|
|
69
|
-
const modeMatch = lines[m].match(/mode\s*:\s*['"](\w+)['"]/);
|
|
70
|
-
if (modeMatch) {
|
|
71
|
-
auth = {
|
|
72
|
-
strategy: auth === null || auth === void 0 ? void 0 : auth.strategy,
|
|
73
|
-
mode: modeMatch[1] === 'try' || modeMatch[1] === 'optional' ? 'optional' : 'required',
|
|
74
|
-
};
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
66
|
// auth: false
|
|
80
67
|
if (/auth\s*:\s*false/.test(nearLine)) {
|
|
81
68
|
auth = undefined; // Public route
|
|
@@ -87,9 +74,8 @@ function detectHapiRoutes(sourceText, filePath) {
|
|
|
87
74
|
// Scan validation block
|
|
88
75
|
for (let k = j; k < Math.min(j + 15, lines.length); k++) {
|
|
89
76
|
const valLine = lines[k];
|
|
90
|
-
// query: { ... }
|
|
77
|
+
// query: { ... }
|
|
91
78
|
if (/query\s*:/.test(valLine)) {
|
|
92
|
-
// Same-line extraction
|
|
93
79
|
const paramMatch = valLine.match(/(\w+)\s*:\s*Joi\./g);
|
|
94
80
|
if (paramMatch) {
|
|
95
81
|
for (const pm of paramMatch) {
|
|
@@ -98,46 +84,17 @@ function detectHapiRoutes(sourceText, filePath) {
|
|
|
98
84
|
queryParams.push(name);
|
|
99
85
|
}
|
|
100
86
|
}
|
|
101
|
-
// Multi-line extraction: scan subsequent lines for fieldName: Joi. patterns
|
|
102
|
-
for (let q = k + 1; q < Math.min(k + 16, lines.length); q++) {
|
|
103
|
-
const subLine = lines[q];
|
|
104
|
-
if (/}\s*[),]/.test(subLine) || /]\s*,/.test(subLine))
|
|
105
|
-
break;
|
|
106
|
-
const fieldMatch = subLine.match(/(\w+)\s*:\s*Joi\./g);
|
|
107
|
-
if (fieldMatch) {
|
|
108
|
-
for (const fm of fieldMatch) {
|
|
109
|
-
const name = (_b = fm.match(/(\w+)\s*:/)) === null || _b === void 0 ? void 0 : _b[1];
|
|
110
|
-
if (name && !queryParams.includes(name))
|
|
111
|
-
queryParams.push(name);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
87
|
}
|
|
116
|
-
// payload: { ... }
|
|
88
|
+
// payload: { ... }
|
|
117
89
|
if (/payload\s*:/.test(valLine)) {
|
|
118
|
-
// Same-line extraction
|
|
119
90
|
const paramMatch = valLine.match(/(\w+)\s*:\s*Joi\./g);
|
|
120
91
|
if (paramMatch) {
|
|
121
92
|
for (const pm of paramMatch) {
|
|
122
|
-
const name = (
|
|
93
|
+
const name = (_b = pm.match(/(\w+)\s*:/)) === null || _b === void 0 ? void 0 : _b[1];
|
|
123
94
|
if (name)
|
|
124
95
|
payloadParams.push(name);
|
|
125
96
|
}
|
|
126
97
|
}
|
|
127
|
-
// Multi-line extraction: scan subsequent lines for fieldName: Joi. patterns
|
|
128
|
-
for (let q = k + 1; q < Math.min(k + 16, lines.length); q++) {
|
|
129
|
-
const subLine = lines[q];
|
|
130
|
-
if (/}\s*[),]/.test(subLine) || /]\s*,/.test(subLine))
|
|
131
|
-
break;
|
|
132
|
-
const fieldMatch = subLine.match(/(\w+)\s*:\s*Joi\./g);
|
|
133
|
-
if (fieldMatch) {
|
|
134
|
-
for (const fm of fieldMatch) {
|
|
135
|
-
const name = (_d = fm.match(/(\w+)\s*:/)) === null || _d === void 0 ? void 0 : _d[1];
|
|
136
|
-
if (name && !payloadParams.includes(name))
|
|
137
|
-
payloadParams.push(name);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
98
|
}
|
|
142
99
|
}
|
|
143
100
|
if (queryParams.length > 0 || payloadParams.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vueDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/vueDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"vueDetector.d.ts","sourceRoot":"","sources":["../../../../src/languages/javascript/vueDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAO/F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CA4CpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBzF"}
|
|
@@ -29,20 +29,7 @@ function detectAxiosBaseUrl(sourceText, filePath) {
|
|
|
29
29
|
function detectVuexActions(sourceText, filePath) {
|
|
30
30
|
const calls = [];
|
|
31
31
|
const lines = sourceText.split('\n');
|
|
32
|
-
// Pass 1: Build a map of constant name → string value.
|
|
33
|
-
// Matches patterns like:
|
|
34
|
-
// const FETCH_ARTICLES = 'fetchArticles'
|
|
35
|
-
// export const FETCH_ARTICLES = "fetchArticles"
|
|
36
|
-
const constantMap = new Map();
|
|
37
|
-
for (const line of lines) {
|
|
38
|
-
const constMatch = line.match(/(?:export\s+)?const\s+([A-Z_][A-Z0-9_]*)\s*=\s*['"]([^'"]+)['"]/);
|
|
39
|
-
if (constMatch) {
|
|
40
|
-
constantMap.set(constMatch[1], constMatch[2]);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// Pass 2: Detect action definitions and their API calls.
|
|
44
32
|
let currentAction = '';
|
|
45
|
-
let currentResolvedName;
|
|
46
33
|
for (let i = 0; i < lines.length; i++) {
|
|
47
34
|
const line = lines[i];
|
|
48
35
|
// Vuex action definition: [ACTION_NAME]({ commit }, payload) {
|
|
@@ -50,13 +37,6 @@ function detectVuexActions(sourceText, filePath) {
|
|
|
50
37
|
const actionMatch = line.match(/(?:\[(\w+)\]|(\w+))\s*\(\s*\{\s*(?:commit|dispatch|state|getters|rootState)/);
|
|
51
38
|
if (actionMatch) {
|
|
52
39
|
currentAction = actionMatch[1] || actionMatch[2] || '';
|
|
53
|
-
// If using bracket syntax with a constant, resolve to its string value
|
|
54
|
-
if (actionMatch[1] && constantMap.has(actionMatch[1])) {
|
|
55
|
-
currentResolvedName = constantMap.get(actionMatch[1]);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
currentResolvedName = undefined;
|
|
59
|
-
}
|
|
60
40
|
continue;
|
|
61
41
|
}
|
|
62
42
|
// ApiService.get/post/put/delete('resource')
|
|
@@ -64,7 +44,6 @@ function detectVuexActions(sourceText, filePath) {
|
|
|
64
44
|
if (apiServiceMatch) {
|
|
65
45
|
calls.push({
|
|
66
46
|
actionName: currentAction || undefined,
|
|
67
|
-
resolvedName: currentResolvedName,
|
|
68
47
|
method: apiServiceMatch[1].toUpperCase(),
|
|
69
48
|
urlPattern: apiServiceMatch[2],
|
|
70
49
|
sourceFile: filePath,
|
|
@@ -77,7 +56,6 @@ function detectVuexActions(sourceText, filePath) {
|
|
|
77
56
|
if (axiosMatch) {
|
|
78
57
|
calls.push({
|
|
79
58
|
actionName: currentAction || undefined,
|
|
80
|
-
resolvedName: currentResolvedName,
|
|
81
59
|
method: axiosMatch[1].toUpperCase(),
|
|
82
60
|
urlPattern: axiosMatch[2],
|
|
83
61
|
sourceFile: filePath,
|
|
@@ -10,7 +10,7 @@ export declare class PythonAnalyzer implements LanguageAnalyzer {
|
|
|
10
10
|
extractHttpInteractions(model: SemanticModel, _ctx: AnalysisContext): ResolvedHttpInteraction[];
|
|
11
11
|
extractAssertions(model: SemanticModel): SemanticAssertion[];
|
|
12
12
|
extractBusinessRuleRefs(model: SemanticModel): BusinessRuleRef[];
|
|
13
|
-
extractFlowRefs(
|
|
13
|
+
extractFlowRefs(_model: SemanticModel): FlowRef[];
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Classify JWT/auth security from decorator information.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/languages/python/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EAIb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,eAAe,EAEf,aAAa,EAEb,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/languages/python/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EAIb,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,OAAO,EACP,eAAe,EAEf,aAAa,EAEb,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAkC5B,qBAAa,cAAe,YAAW,gBAAgB;IACrD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAEhD,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAc1D,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,GAAG,aAAa;IA6BtF,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,GAAG,uBAAuB,EAAE;IAwB/F,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,EAAE;IAG5D,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,EAAE;IAGhE,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,EAAE;CAGlD;AA2WD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,sBAAsB,GAAG,SAAS,CAarG"}
|
|
@@ -8,7 +8,6 @@ exports.classifyFlaskSecurity = classifyFlaskSecurity;
|
|
|
8
8
|
const parserRegistry_1 = require("../../ast/parserRegistry");
|
|
9
9
|
const treeSitterUtils_1 = require("../shared/treeSitterUtils");
|
|
10
10
|
const resolvePaths_1 = require("../../coverage/deep-analysis/resolvePaths");
|
|
11
|
-
const testPatternDetector_1 = require("./testPatternDetector");
|
|
12
11
|
// ─── Parser ───────────────────────────────────────────────────────────────────
|
|
13
12
|
let cachedParser = undefined;
|
|
14
13
|
let parserLoaded = false;
|
|
@@ -46,7 +45,7 @@ class PythonAnalyzer {
|
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
47
|
buildSemanticModel(parsed, _context) {
|
|
49
|
-
var _a, _b
|
|
48
|
+
var _a, _b;
|
|
50
49
|
const root = (_b = (_a = parsed.ast) === null || _a === void 0 ? void 0 : _a.rootNode) !== null && _b !== void 0 ? _b : parsed.ast;
|
|
51
50
|
if (!root)
|
|
52
51
|
return emptyModel(parsed.filePath);
|
|
@@ -57,20 +56,6 @@ class PythonAnalyzer {
|
|
|
57
56
|
// Feature 27: Flask/FastAPI pattern detection
|
|
58
57
|
const decoratorStacks = extractFlaskDecoratorStacks(root, parsed.filePath);
|
|
59
58
|
const routeRegistrations = extractFlaskRouteRegistrations(root, parsed.filePath);
|
|
60
|
-
// Feature 27: webtest API call detection
|
|
61
|
-
const sourceText = (_d = (_c = root.text) !== null && _c !== void 0 ? _c : parsed.content) !== null && _d !== void 0 ? _d : '';
|
|
62
|
-
const webtestCalls = (0, testPatternDetector_1.detectWebtestCalls)(sourceText, parsed.filePath);
|
|
63
|
-
if (webtestCalls.length > 0) {
|
|
64
|
-
const httpCalls = (0, testPatternDetector_1.webtestCallsToHttpCalls)(webtestCalls);
|
|
65
|
-
// Merge webtest HTTP calls into the functions map under a synthetic entry
|
|
66
|
-
const webtestFunc = {
|
|
67
|
-
name: '__webtest_calls__',
|
|
68
|
-
parameters: [],
|
|
69
|
-
bodyHttpCalls: httpCalls,
|
|
70
|
-
calledFunctions: [],
|
|
71
|
-
};
|
|
72
|
-
functions.set('__webtest_calls__', webtestFunc);
|
|
73
|
-
}
|
|
74
59
|
return {
|
|
75
60
|
filePath: parsed.filePath,
|
|
76
61
|
language: 'python',
|
|
@@ -118,23 +103,8 @@ class PythonAnalyzer {
|
|
|
118
103
|
extractBusinessRuleRefs(model) {
|
|
119
104
|
return model.businessRuleRefs;
|
|
120
105
|
}
|
|
121
|
-
extractFlowRefs(
|
|
122
|
-
|
|
123
|
-
const refs = [...model.flowRefs];
|
|
124
|
-
// Use function parameter names to discover fixture dependencies
|
|
125
|
-
// In pytest, function parameters that aren't built-in fixtures are fixture references
|
|
126
|
-
const builtinFixtures = new Set([
|
|
127
|
-
'request', 'tmp_path', 'tmpdir', 'capsys', 'capfd', 'monkeypatch',
|
|
128
|
-
'pytestconfig', 'recwarn', 'caplog', 'cache', 'self',
|
|
129
|
-
]);
|
|
130
|
-
for (const [funcName, func] of model.functions) {
|
|
131
|
-
for (const param of func.parameters) {
|
|
132
|
-
if (param && !builtinFixtures.has(param)) {
|
|
133
|
-
refs.push({ flowId: `fixture:${param}`, source: 'tag' });
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return refs;
|
|
106
|
+
extractFlowRefs(_model) {
|
|
107
|
+
return [];
|
|
138
108
|
}
|
|
139
109
|
}
|
|
140
110
|
exports.PythonAnalyzer = PythonAnalyzer;
|
|
@@ -65,11 +65,6 @@ export declare function hasPartialResolution(graph: CoverageKnowledgeGraph, path
|
|
|
65
65
|
/**
|
|
66
66
|
* Build a ConfidenceEvidence object from a coverage path in the graph.
|
|
67
67
|
* Inspects the nodes and their source stages to determine what evidence exists.
|
|
68
|
-
*
|
|
69
|
-
* Optional `iastConfirmed` and `dastConfirmed` flags allow the caller to
|
|
70
|
-
* inject runtime confirmation state that may not be discoverable by walking
|
|
71
|
-
* `pathNodeIds` alone (e.g. when IAST/DAST nodes are not directly on the
|
|
72
|
-
* endpoint→test path in the graph).
|
|
73
68
|
*/
|
|
74
|
-
export declare function buildConfidenceEvidence(graph: CoverageKnowledgeGraph, pathNodeIds: string[], isStaticOnlyMode: boolean
|
|
69
|
+
export declare function buildConfidenceEvidence(graph: CoverageKnowledgeGraph, pathNodeIds: string[], isStaticOnlyMode: boolean): ConfidenceEvidence;
|
|
75
70
|
//# sourceMappingURL=confidence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../../../src/pipeline/confidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAYtD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAwBtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,kBAAkB,GAC3B,kBAAkB,CAoBpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAGlF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,kBAAkB,GAC3B,kBAAkB,CAIpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,kBAAkB,EACrB,CAAC,EAAE,kBAAkB,GACpB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAS9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAMT;AAED
|
|
1
|
+
{"version":3,"file":"confidence.d.ts","sourceRoot":"","sources":["../../../src/pipeline/confidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAa,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAYtD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAwBtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,kBAAkB,GAC3B,kBAAkB,CAoBpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAGlF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,kBAAkB,GAC3B,kBAAkB,CAIpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,kBAAkB,EACrB,CAAC,EAAE,kBAAkB,GACpB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,CAS9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAMT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAMT;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,WAAW,EAAE,MAAM,EAAE,EACrB,gBAAgB,EAAE,OAAO,GACxB,kBAAkB,CA6CpB"}
|
|
@@ -151,13 +151,8 @@ function hasPartialResolution(graph, pathNodeIds) {
|
|
|
151
151
|
/**
|
|
152
152
|
* Build a ConfidenceEvidence object from a coverage path in the graph.
|
|
153
153
|
* Inspects the nodes and their source stages to determine what evidence exists.
|
|
154
|
-
*
|
|
155
|
-
* Optional `iastConfirmed` and `dastConfirmed` flags allow the caller to
|
|
156
|
-
* inject runtime confirmation state that may not be discoverable by walking
|
|
157
|
-
* `pathNodeIds` alone (e.g. when IAST/DAST nodes are not directly on the
|
|
158
|
-
* endpoint→test path in the graph).
|
|
159
154
|
*/
|
|
160
|
-
function buildConfidenceEvidence(graph, pathNodeIds, isStaticOnlyMode
|
|
155
|
+
function buildConfidenceEvidence(graph, pathNodeIds, isStaticOnlyMode) {
|
|
161
156
|
var _a, _b;
|
|
162
157
|
const sourceStages = new Set();
|
|
163
158
|
let hasIastConfirmation = false;
|
|
@@ -192,8 +187,8 @@ function buildConfidenceEvidence(graph, pathNodeIds, isStaticOnlyMode, iastConfi
|
|
|
192
187
|
}
|
|
193
188
|
return {
|
|
194
189
|
sourceStages: Array.from(sourceStages),
|
|
195
|
-
hasIastConfirmation
|
|
196
|
-
hasDastConfirmation
|
|
190
|
+
hasIastConfirmation,
|
|
191
|
+
hasDastConfirmation,
|
|
197
192
|
hasAssertionConfirmation,
|
|
198
193
|
hasMockBoundary,
|
|
199
194
|
hasPartialResolution: hasPartial,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/pipeline/graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,KAAK,CAAqC;IAIlD,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/pipeline/graph.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,KAAK,CAAqC;IAIlD,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE;IAIhD,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAAE;IAI9C,WAAW,IAAI,SAAS,EAAE;IAI1B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAID,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI9B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI1C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI5B,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B,mDAAmD;IACnD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAIzC,8CAA8C;IAC9C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE;IAIvC,sEAAsE;IACtE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAQ9D,wCAAwC;IACxC,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE;IAIhD,WAAW,IAAI,SAAS,EAAE;IAI1B,IAAI,SAAS,IAAI,MAAM,CAEtB;IAID;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,GAAG,SAAS,EAAE;IA4B5E;;;OAGG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,aAAa,GACtB,OAAO;IAiCV;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,EAAE;IAwCpD,cAAc,IAAI;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE;IAO5D,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,GAAG,sBAAsB;IAajG,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -23,16 +23,7 @@ class CoverageKnowledgeGraph {
|
|
|
23
23
|
return this.nodes.has(id);
|
|
24
24
|
}
|
|
25
25
|
removeNode(id) {
|
|
26
|
-
|
|
27
|
-
if (deleted) {
|
|
28
|
-
// Remove all edges that reference this node to avoid dangling edges
|
|
29
|
-
for (const [edgeId, edge] of this.edges) {
|
|
30
|
-
if (edge.sourceNodeId === id || edge.targetNodeId === id) {
|
|
31
|
-
this.edges.delete(edgeId);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return deleted;
|
|
26
|
+
return this.nodes.delete(id);
|
|
36
27
|
}
|
|
37
28
|
getNodesByType(type) {
|
|
38
29
|
return Array.from(this.nodes.values()).filter((n) => n.type === type);
|
|
@@ -121,11 +112,9 @@ class CoverageKnowledgeGraph {
|
|
|
121
112
|
while (queue.length > 0) {
|
|
122
113
|
const path = queue.shift();
|
|
123
114
|
const currentId = path[path.length - 1];
|
|
124
|
-
|
|
125
|
-
if (currentId !== endId && visited.has(currentId))
|
|
115
|
+
if (visited.has(currentId))
|
|
126
116
|
continue;
|
|
127
|
-
|
|
128
|
-
visited.add(currentId);
|
|
117
|
+
visited.add(currentId);
|
|
129
118
|
if (currentId === endId) {
|
|
130
119
|
// Check interior nodes (not start or end)
|
|
131
120
|
for (let i = 1; i < path.length - 1; i++) {
|
|
@@ -133,8 +122,7 @@ class CoverageKnowledgeGraph {
|
|
|
133
122
|
if ((node === null || node === void 0 ? void 0 : node.type) === nodeType)
|
|
134
123
|
return true;
|
|
135
124
|
}
|
|
136
|
-
|
|
137
|
-
continue;
|
|
125
|
+
return false;
|
|
138
126
|
}
|
|
139
127
|
const outEdges = this.getEdgesFrom(currentId);
|
|
140
128
|
for (const edge of outEdges) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"astStage.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/astStage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"astStage.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/astStage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmB9C,qBAAa,QAAS,YAAW,aAAa,CAAC,cAAc,CAAC;IAC5D,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,QAAQ,SAAS;IAEpB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAoLjE"}
|
|
@@ -53,14 +53,6 @@ const graphBuilder_1 = require("./graphBuilder");
|
|
|
53
53
|
const fileClassifier_1 = require("../../../discovery/fileClassifier");
|
|
54
54
|
const projectDiscovery_1 = require("../../../discovery/projectDiscovery");
|
|
55
55
|
const parserRegistry_1 = require("../../../ast/parserRegistry");
|
|
56
|
-
const rulesEnforcer_1 = require("./rulesEnforcer");
|
|
57
|
-
const optionalAuthUnifier_1 = require("./optionalAuthUnifier");
|
|
58
|
-
const expressRouterResolver_1 = require("./resolvers/expressRouterResolver");
|
|
59
|
-
const flaskBlueprintResolver_1 = require("./resolvers/flaskBlueprintResolver");
|
|
60
|
-
const angularInjectionResolver_1 = require("./resolvers/angularInjectionResolver");
|
|
61
|
-
const vuexActionResolver_1 = require("./resolvers/vuexActionResolver");
|
|
62
|
-
const mybatisResolver_1 = require("./resolvers/mybatisResolver");
|
|
63
|
-
const dddLayerResolver_1 = require("./resolvers/dddLayerResolver");
|
|
64
56
|
const fs = __importStar(require("fs"));
|
|
65
57
|
const path = __importStar(require("path"));
|
|
66
58
|
class AstStage {
|
|
@@ -79,8 +71,7 @@ class AstStage {
|
|
|
79
71
|
const scaOutput = context.stageOutputs.get('sca');
|
|
80
72
|
// Build analysis context
|
|
81
73
|
const analysisContext = (0, astAnalysisOrchestrator_1.buildAnalysisContext)(context.config.astConfig);
|
|
82
|
-
// Discover all files
|
|
83
|
-
// via SERVICE_CODE_EXTS in fileClassifier.ts (RULE-SA05, SA06)
|
|
74
|
+
// Discover all files
|
|
84
75
|
const artifacts = (0, projectDiscovery_1.discoverProject)({ rootDir: context.projectRoot });
|
|
85
76
|
const allSourceFiles = [
|
|
86
77
|
...artifacts.testFiles,
|
|
@@ -140,33 +131,8 @@ class AstStage {
|
|
|
140
131
|
}
|
|
141
132
|
// Phase 2: Build cross-file symbol table
|
|
142
133
|
const crossFileTable = (0, crossFileResolver_1.buildCrossFileSymbolTable)(models, context.projectRoot);
|
|
143
|
-
// Phase 2b:
|
|
144
|
-
// Clear any stale registrations from prior runs, then register all 6 resolvers
|
|
145
|
-
(0, crossFileResolutionPass_1.clearCrossFileResolvers)();
|
|
146
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new expressRouterResolver_1.ExpressRouterResolver());
|
|
147
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new flaskBlueprintResolver_1.FlaskBlueprintResolver());
|
|
148
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new angularInjectionResolver_1.AngularInjectionResolver());
|
|
149
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new vuexActionResolver_1.VuexActionResolver());
|
|
150
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new mybatisResolver_1.MyBatisResolver());
|
|
151
|
-
(0, crossFileResolutionPass_1.registerCrossFileResolver)(new dddLayerResolver_1.DddLayerResolver());
|
|
134
|
+
// Phase 2b: Run cross-file resolution pass (Feature 27)
|
|
152
135
|
const crossFileResolutionResult = (0, crossFileResolutionPass_1.runCrossFileResolution)(crossFileTable, context.projectRoot, artifacts.apiFrameworks, allSourceFiles);
|
|
153
|
-
// Phase 2c: Detect auth coverage gaps (Feature 27)
|
|
154
|
-
// Collect all endpoints with their security classifications for gap analysis
|
|
155
|
-
const endpointsForAuthGaps = [];
|
|
156
|
-
for (const [filePath, model] of crossFileTable.models) {
|
|
157
|
-
if (!model.routeRegistrations)
|
|
158
|
-
continue;
|
|
159
|
-
for (const reg of model.routeRegistrations) {
|
|
160
|
-
endpointsForAuthGaps.push({
|
|
161
|
-
path: reg.path,
|
|
162
|
-
security: reg.security,
|
|
163
|
-
sourceFile: filePath,
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
const authCoverageGaps = (0, optionalAuthUnifier_1.detectAuthCoverageGaps)(endpointsForAuthGaps, new Set());
|
|
168
|
-
// Phase 2d: Enforce structure-agnostic rules (Feature 27)
|
|
169
|
-
const rulesResult = (0, rulesEnforcer_1.enforceStructureAgnosticRules)(crossFileTable, context.projectRoot);
|
|
170
136
|
// Phase 3: Run abstract layer traversal for test files
|
|
171
137
|
const traversalResults = new Map();
|
|
172
138
|
const depthCap = context.config.traversalDepthCap;
|
|
@@ -238,10 +204,6 @@ class AstStage {
|
|
|
238
204
|
graphEdgesAdded: edges.length,
|
|
239
205
|
crossFileResolversRun: crossFileResolutionResult.resolverResults.length,
|
|
240
206
|
crossFileEntriesAdded: crossFileResolutionResult.totalEntriesAdded,
|
|
241
|
-
rulesChecked: rulesResult.rulesChecked,
|
|
242
|
-
rulesPassed: rulesResult.rulesPassed,
|
|
243
|
-
ruleViolations: rulesResult.violations.length,
|
|
244
|
-
authCoverageGaps: authCoverageGaps.length,
|
|
245
207
|
},
|
|
246
208
|
};
|
|
247
209
|
context.diagnostics.set('ast', diagnostics);
|
|
@@ -276,13 +238,7 @@ function detectLanguage(filePath, scaOutput) {
|
|
|
276
238
|
'.kts': 'kotlin',
|
|
277
239
|
'.py': 'python',
|
|
278
240
|
'.rb': 'ruby',
|
|
279
|
-
'.php': 'php',
|
|
280
241
|
'.feature': 'cucumber',
|
|
281
242
|
};
|
|
282
|
-
// Handle GraphQL schema files and XML as special-case languages
|
|
283
|
-
if (ext === '.graphqls' || ext === '.graphql')
|
|
284
|
-
return 'graphql';
|
|
285
|
-
if (ext === '.xml')
|
|
286
|
-
return 'xml';
|
|
287
243
|
return extensionMap[ext];
|
|
288
244
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseUrlComposer.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/baseUrlComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"baseUrlComposer.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/baseUrlComposer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,CAStE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,GACA,MAAM,CAUR"}
|
|
@@ -24,24 +24,10 @@ exports.composeFrameworkUrl = composeFrameworkUrl;
|
|
|
24
24
|
*/
|
|
25
25
|
function composeUrl(...segments) {
|
|
26
26
|
const parts = segments
|
|
27
|
-
.filter((s) => typeof s === 'string' && s.length > 0)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const protocolMatch = parts[0].match(/^(\w+:\/\/)/);
|
|
32
|
-
let protocol = '';
|
|
33
|
-
if (protocolMatch) {
|
|
34
|
-
protocol = protocolMatch[1];
|
|
35
|
-
parts[0] = parts[0].slice(protocol.length);
|
|
36
|
-
}
|
|
37
|
-
const stripped = parts.map((s) => s.replace(/^\/+|\/+$/g, ''));
|
|
38
|
-
const joined = stripped.join('/');
|
|
39
|
-
const deduped = joined.replace(/\/+/g, '/');
|
|
40
|
-
if (protocol) {
|
|
41
|
-
const normalized = protocol + deduped;
|
|
42
|
-
return normalized.replace(/\/+$/, '') || protocol;
|
|
43
|
-
}
|
|
44
|
-
const normalized = '/' + deduped;
|
|
27
|
+
.filter((s) => typeof s === 'string' && s.length > 0)
|
|
28
|
+
.map((s) => s.replace(/^\/+|\/+$/g, ''));
|
|
29
|
+
const joined = parts.join('/');
|
|
30
|
+
const normalized = '/' + joined.replace(/\/+/g, '/');
|
|
45
31
|
return normalized === '/' ? '/' : normalized.replace(/\/+$/, '');
|
|
46
32
|
}
|
|
47
33
|
/**
|
|
@@ -107,31 +107,12 @@ function resolveSymbolCrossFile(symbolName, fromFile, table) {
|
|
|
107
107
|
}
|
|
108
108
|
return undefined;
|
|
109
109
|
}
|
|
110
|
-
/** Built-in objects that should never be treated as import module names */
|
|
111
|
-
const BUILTIN_OBJECTS = new Set([
|
|
112
|
-
'console', 'math', 'json', 'object', 'array', 'promise', 'date',
|
|
113
|
-
'string', 'number', 'boolean', 'symbol', 'regexp', 'error', 'map',
|
|
114
|
-
'set', 'weakmap', 'weakset', 'proxy', 'reflect', 'intl',
|
|
115
|
-
'arraybuffer', 'sharedarraybuffer', 'atomics', 'dataview',
|
|
116
|
-
'this', 'self', 'super', 'window', 'document', 'process',
|
|
117
|
-
'global', 'globalthis', 'module', 'exports', 'require',
|
|
118
|
-
'__dirname', '__filename',
|
|
119
|
-
]);
|
|
120
110
|
/**
|
|
121
111
|
* Extract import declarations from a semantic model.
|
|
122
112
|
* This is a heuristic extraction — real import extraction would come from the AST.
|
|
123
113
|
*/
|
|
124
114
|
function extractImportsFromModel(filePath, model, projectRoot) {
|
|
125
115
|
const imports = [];
|
|
126
|
-
// Build a set of known identifiers from the model (constants and local variables)
|
|
127
|
-
// These are the names that could plausibly be import aliases
|
|
128
|
-
const knownIdentifiers = new Set();
|
|
129
|
-
for (const [name] of model.constants) {
|
|
130
|
-
knownIdentifiers.add(name);
|
|
131
|
-
}
|
|
132
|
-
for (const [name] of model.localVariables) {
|
|
133
|
-
knownIdentifiers.add(name);
|
|
134
|
-
}
|
|
135
116
|
// Use functions' calledFunctions to infer cross-file references
|
|
136
117
|
for (const [, func] of model.functions) {
|
|
137
118
|
for (const calledName of func.calledFunctions) {
|
|
@@ -139,16 +120,6 @@ function extractImportsFromModel(filePath, model, projectRoot) {
|
|
|
139
120
|
const dotIndex = calledName.indexOf('.');
|
|
140
121
|
if (dotIndex > 0) {
|
|
141
122
|
const modulePart = calledName.substring(0, dotIndex);
|
|
142
|
-
// Skip common built-in objects that are never import sources
|
|
143
|
-
if (BUILTIN_OBJECTS.has(modulePart.toLowerCase())) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
// Only treat as an import if the prefix matches a known identifier
|
|
147
|
-
// (constant or local variable) in this file, which is how import
|
|
148
|
-
// aliases typically appear in the semantic model
|
|
149
|
-
if (!knownIdentifiers.has(modulePart)) {
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
123
|
const resolvedPath = (0, importResolver_1.resolveImportPath)(`./${modulePart}`, filePath, projectRoot, model.language);
|
|
153
124
|
if (resolvedPath) {
|
|
154
125
|
imports.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/graphBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"graphBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/pipeline/stages/ast/graphBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAoB,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAClC,cAAc,EAAE,oBAAoB,EACpC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EAC9C,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,GACnD;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,KAAK,EAAE,SAAS,EAAE,CAAA;CAAE,CAsN5C"}
|
|
@@ -60,28 +60,6 @@ function buildAstGraph(models, crossFileTable, traversalResults, interactions) {
|
|
|
60
60
|
addedEdgeIds.add(edge.id);
|
|
61
61
|
edges.push(edge);
|
|
62
62
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Ensure a node exists in the graph. If the node ID is not yet present,
|
|
65
|
-
* create a stub node flagged as cross-file-unresolved (spec §2.3).
|
|
66
|
-
* Confidence on stub nodes is capped at 'low'.
|
|
67
|
-
*/
|
|
68
|
-
function ensureNodeExists(nodeId, missingFilePath, nodeType) {
|
|
69
|
-
if (addedNodeIds.has(nodeId))
|
|
70
|
-
return nodeId;
|
|
71
|
-
addNode({
|
|
72
|
-
id: nodeId,
|
|
73
|
-
type: nodeType,
|
|
74
|
-
label: `[unresolved] ${path.basename(missingFilePath)}`,
|
|
75
|
-
sourceStage: 'ast',
|
|
76
|
-
filePath: missingFilePath,
|
|
77
|
-
metadata: {
|
|
78
|
-
resolution: 'cross-file-unresolved',
|
|
79
|
-
confidence: 'low',
|
|
80
|
-
diagnostic: `Cross-file resolution failed: file "${missingFilePath}" was not found in parsed models`,
|
|
81
|
-
},
|
|
82
|
-
});
|
|
83
|
-
return nodeId;
|
|
84
|
-
}
|
|
85
63
|
// 1. Create file nodes for every parsed file
|
|
86
64
|
for (const [filePath, model] of models) {
|
|
87
65
|
const basename = path.basename(filePath);
|
|
@@ -263,65 +241,6 @@ function buildAstGraph(models, crossFileTable, traversalResults, interactions) {
|
|
|
263
241
|
});
|
|
264
242
|
}
|
|
265
243
|
}
|
|
266
|
-
// 7. Feature 27: Create router mount edges
|
|
267
|
-
for (const [filePath, mounts] of crossFileTable.routerMounts) {
|
|
268
|
-
const sourceId = `file:${filePath}`;
|
|
269
|
-
if (!addedNodeIds.has(sourceId))
|
|
270
|
-
continue;
|
|
271
|
-
for (const mount of mounts) {
|
|
272
|
-
const targetId = `file:${mount.targetModulePath}`;
|
|
273
|
-
// Create edge even if target not parsed (creates stub node for missing files)
|
|
274
|
-
addEdge({
|
|
275
|
-
id: `${sourceId}->mounts->${mount.prefix}:${mount.targetModulePath}`,
|
|
276
|
-
type: 'router-mount',
|
|
277
|
-
sourceNodeId: sourceId,
|
|
278
|
-
targetNodeId: ensureNodeExists(targetId, mount.targetModulePath, 'file'),
|
|
279
|
-
sourceStage: 'ast',
|
|
280
|
-
metadata: {
|
|
281
|
-
prefix: mount.prefix,
|
|
282
|
-
targetModule: mount.targetModulePath,
|
|
283
|
-
middlewareCount: mount.middleware.length,
|
|
284
|
-
},
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
// 8. Feature 27: Create injection chain edges
|
|
289
|
-
for (const [consumerFile, chains] of crossFileTable.injectionChains) {
|
|
290
|
-
for (const chain of chains) {
|
|
291
|
-
const consumerNodeId = `file:${chain.consumerFile}`;
|
|
292
|
-
const serviceNodeId = `file:${chain.serviceFile}`;
|
|
293
|
-
addEdge({
|
|
294
|
-
id: `${consumerNodeId}->injects->${chain.serviceClass}:${chain.serviceFile}`,
|
|
295
|
-
type: 'injects',
|
|
296
|
-
sourceNodeId: ensureNodeExists(consumerNodeId, chain.consumerFile, 'file'),
|
|
297
|
-
targetNodeId: ensureNodeExists(serviceNodeId, chain.serviceFile, 'file'),
|
|
298
|
-
sourceStage: 'ast',
|
|
299
|
-
metadata: {
|
|
300
|
-
consumerClass: chain.consumerClass,
|
|
301
|
-
serviceClass: chain.serviceClass,
|
|
302
|
-
injectionStyle: chain.injectionStyle,
|
|
303
|
-
},
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// 9. Feature 27: Create interface implementation edges
|
|
308
|
-
for (const [ifaceFile, impls] of crossFileTable.interfaceImplementations) {
|
|
309
|
-
for (const impl of impls) {
|
|
310
|
-
const ifaceNodeId = `file:${impl.interfaceFile}`;
|
|
311
|
-
const implNodeId = `file:${impl.implFile}`;
|
|
312
|
-
addEdge({
|
|
313
|
-
id: `${implNodeId}->implements->${impl.interfaceName}:${impl.interfaceFile}`,
|
|
314
|
-
type: 'implements',
|
|
315
|
-
sourceNodeId: ensureNodeExists(implNodeId, impl.implFile, 'file'),
|
|
316
|
-
targetNodeId: ensureNodeExists(ifaceNodeId, impl.interfaceFile, 'file'),
|
|
317
|
-
sourceStage: 'ast',
|
|
318
|
-
metadata: {
|
|
319
|
-
interfaceName: impl.interfaceName,
|
|
320
|
-
implName: impl.implName,
|
|
321
|
-
},
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
244
|
return { nodes, edges };
|
|
326
245
|
}
|
|
327
246
|
/**
|
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
* Express auth.optional / credentialsRequired: false → { optional: true }
|
|
8
8
|
* HapiJS auth: { mode: 'try' } → { optional: true }
|
|
9
9
|
* Spring @PreAuthorize → { required: true }
|
|
10
|
-
*
|
|
11
|
-
* Angular canActivate:none → { optional: true } (interceptor-based)
|
|
12
|
-
* NestJS @UseGuards → { required: true }
|
|
10
|
+
* Angular route guard → depends on guard type
|
|
13
11
|
*/
|
|
14
12
|
import type { SecurityClassification } from '../../../ast/astTypes';
|
|
15
13
|
export interface AuthClassificationEntry {
|