@maycombhq/atticus 2.0.0-beta.26 → 2.0.0-beta.27.1
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/dist/bin.js +3 -3
- package/dist/{chunk-7JZONWAA.js → chunk-23OQZY5Z.js} +22 -18
- package/dist/{chunk-UTZMF5CV.js → chunk-23TTURB2.js} +1 -1
- package/dist/{chunk-YIOYKA4V.js → chunk-2AIOOA3U.js} +7 -7
- package/dist/chunk-2ANBMA74.js +107 -0
- package/dist/{chunk-ZYLGEWTC.js → chunk-2FORECYK.js} +78 -57
- package/dist/{chunk-D5H3RZNE.js → chunk-2J2GMERV.js} +16 -15
- package/dist/{chunk-ZDA72732.js → chunk-2MRYL45Z.js} +50 -9
- package/dist/{chunk-RBO4A7TC.js → chunk-2WPUSHB6.js} +15 -15
- package/dist/{chunk-2IO6XH37.js → chunk-3BQDBTQJ.js} +15 -15
- package/dist/{chunk-B3JHERXM.js → chunk-3CMGSQIA.js} +7 -5
- package/dist/{chunk-UFIQ5FWY.js → chunk-3M3MDBOG.js} +1 -1
- package/dist/chunk-3NGHSBVS.js +50 -0
- package/dist/{chunk-DHQXCP2X.js → chunk-3PBIZBWN.js} +1 -1
- package/dist/{chunk-CFK6CFXM.js → chunk-3PG6QOQF.js} +9 -9
- package/dist/chunk-3PN7KJBA.js +48 -0
- package/dist/{chunk-DARX3ATP.js → chunk-3TWERSTY.js} +11 -11
- package/dist/chunk-3XNE6XXF.js +211 -0
- package/dist/chunk-3YL2GZZH.js +55 -0
- package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
- package/dist/{chunk-XI3GPYP4.js → chunk-44XGOSUU.js} +5 -5
- package/dist/{chunk-SAPX3PVK.js → chunk-4BK5EJ2C.js} +11 -11
- package/dist/{chunk-OH2OHNB5.js → chunk-4FLIW5PJ.js} +4 -4
- package/dist/{chunk-EUTZTJIO.js → chunk-4HMOOBIR.js} +19 -15
- package/dist/chunk-4NPWOUI2.js +514 -0
- package/dist/{chunk-RQM5Y3HJ.js → chunk-4UVTNHA6.js} +1 -1
- package/dist/{chunk-KVVNAUIG.js → chunk-4XK3HLOH.js} +1 -0
- package/dist/{chunk-ZQGFZJH5.js → chunk-523NRKHF.js} +4 -4
- package/dist/chunk-5A4FHGTI.js +34 -0
- package/dist/{chunk-SDHGFMES.js → chunk-5CIW5RMP.js} +3 -3
- package/dist/{chunk-GJSLO2E2.js → chunk-5GCCG3GJ.js} +11 -5
- package/dist/{chunk-LCRQPWTC.js → chunk-5KR2DHDW.js} +19 -18
- package/dist/{chunk-UIYPX2BA.js → chunk-5PAIR73N.js} +27 -26
- package/dist/{chunk-K35VNKJH.js → chunk-5YEUAZZE.js} +8 -8
- package/dist/{chunk-DB6TDJ4T.js → chunk-5YX7MJWW.js} +22 -21
- package/dist/{chunk-IH6BYFMH.js → chunk-5ZFLP2IK.js} +6 -6
- package/dist/chunk-66CMRGI2.js +44 -0
- package/dist/{chunk-YWQZ7CCW.js → chunk-6DHGNY3O.js} +18 -17
- package/dist/{chunk-WLA2JZ2K.js → chunk-6ESJWPR3.js} +8 -8
- package/dist/{chunk-2SCZZQNQ.js → chunk-6GX3OFEZ.js} +121 -15
- package/dist/{chunk-2HDNOUJU.js → chunk-6H62UHY5.js} +7065 -3456
- package/dist/{chunk-YYV276DM.js → chunk-6MSACVCY.js} +22 -21
- package/dist/{chunk-GXJ2PSDW.js → chunk-6OTGCKYH.js} +9 -9
- package/dist/{chunk-HSJKYDHI.js → chunk-6TXB2WR6.js} +5 -5
- package/dist/{chunk-KL7UHAOR.js → chunk-6VFR3DYS.js} +36 -21
- package/dist/{chunk-KS2IQYTZ.js → chunk-7BOGXFZ3.js} +11 -11
- package/dist/chunk-7GZ46N4V.js +37 -0
- package/dist/{chunk-KFJMQUSK.js → chunk-7HUCEHUK.js} +16 -15
- package/dist/{chunk-LY7DOYX2.js → chunk-7LOXUBRB.js} +53 -112
- package/dist/{chunk-NQDVD2YR.js → chunk-7SO6CGJH.js} +12 -12
- package/dist/{chunk-LZFKJ2BR.js → chunk-A3LVMCA5.js} +1 -1
- package/dist/{chunk-2XIIUXGX.js → chunk-A3QZZEJA.js} +16 -16
- package/dist/{chunk-PXDAGXQN.js → chunk-AHAEHBH5.js} +11 -11
- package/dist/{chunk-PFWP624T.js → chunk-AKZTCZ6F.js} +4 -4
- package/dist/{chunk-V5ZKGBYL.js → chunk-AOQG37K4.js} +8 -6
- package/dist/chunk-APYIIVBH.js +72 -0
- package/dist/{chunk-HV6PXXK7.js → chunk-AQLDQK2M.js} +3 -3
- package/dist/{chunk-YJBD5NDV.js → chunk-AXJCABA5.js} +6 -6
- package/dist/{chunk-CG6MG7SE.js → chunk-AZBP5DTU.js} +14 -14
- package/dist/chunk-B4WPO6FX.js +58 -0
- package/dist/{chunk-3GEAUW62.js → chunk-BSGOUHL6.js} +16 -15
- package/dist/{chunk-D4TW3PUO.js → chunk-BUBKKEUV.js} +5 -5
- package/dist/chunk-BV7WB32T.js +1068 -0
- package/dist/{chunk-I72PEROE.js → chunk-C5DY4R7R.js} +6 -6
- package/dist/chunk-CBFQO2F2.js +62 -0
- package/dist/{chunk-723OQZ3N.js → chunk-CHS5BJ34.js} +6 -6
- package/dist/{chunk-2FTHLB2H.js → chunk-CLM5Z3R5.js} +5 -5
- package/dist/{chunk-7AEB74KW.js → chunk-CPB4XMFI.js} +9 -9
- package/dist/{chunk-KZH5YV6J.js → chunk-CWJDZ5VP.js} +6 -6
- package/dist/chunk-CWKQRP6Y.js +56 -0
- package/dist/{chunk-PLSCWC2V.js → chunk-D3L5SO27.js} +5 -5
- package/dist/{chunk-OI32KTDM.js → chunk-D566V3T3.js} +13 -13
- package/dist/{chunk-JLTJAOO4.js → chunk-DDRTAEFZ.js} +50 -13
- package/dist/{chunk-TYN5SG5H.js → chunk-DGNTEKF6.js} +403 -148
- package/dist/{chunk-VUSYN4R4.js → chunk-DNDIT3LD.js} +8 -8
- package/dist/{chunk-IERXBWQU.js → chunk-DNKYWTVZ.js} +20 -19
- package/dist/{chunk-KJD4DLRZ.js → chunk-DS2OZXBN.js} +22 -21
- package/dist/{chunk-CSHJZFOE.js → chunk-DTW37FJ6.js} +91 -93
- package/dist/{chunk-KAWWXCPI.js → chunk-DVQCYF3V.js} +3 -3
- package/dist/{chunk-UZBLVNW6.js → chunk-DX7WEXYG.js} +38 -17
- package/dist/{chunk-PZFZPHCT.js → chunk-E7Q52EOO.js} +11 -11
- package/dist/{chunk-R2FUFBHW.js → chunk-EFDUC35B.js} +3 -3
- package/dist/chunk-EHT2KP5A.js +43 -0
- package/dist/{chunk-43OWNS5N.js → chunk-EHXEJFHD.js} +5 -5
- package/dist/{chunk-HQMLY2R6.js → chunk-ELJ5Q4J2.js} +2 -2
- package/dist/{chunk-BD7HBZLP.js → chunk-ELZGWEK4.js} +6 -6
- package/dist/{chunk-F4EGHECF.js → chunk-EM6DKBTJ.js} +3 -3
- package/dist/{chunk-PBDIVTFL.js → chunk-FADIWOA5.js} +3 -3
- package/dist/{chunk-IL7PVMUO.js → chunk-FBG3QHOL.js} +6 -6
- package/dist/{chunk-LHN5UCXD.js → chunk-FBNJZ3VH.js} +3 -3
- package/dist/chunk-FFIHRQ3O.js +67 -0
- package/dist/chunk-FT55WYNB.js +39 -0
- package/dist/{chunk-E5NHFHGC.js → chunk-FVT6LUOC.js} +7 -7
- package/dist/{chunk-KUEG2Y7M.js → chunk-FYRBBFIF.js} +8 -8
- package/dist/chunk-FZ2K3IXP.js +46 -0
- package/dist/{chunk-IBIIKUC7.js → chunk-G33UIUG3.js} +46 -20
- package/dist/chunk-G4TFQ4EG.js +60 -0
- package/dist/{chunk-2GT47PWU.js → chunk-GBJRFFDW.js} +5 -5
- package/dist/{chunk-BIKMME4S.js → chunk-GEHB2LMA.js} +28 -27
- package/dist/{chunk-NMURRF5F.js → chunk-GF6GBHFN.js} +13 -11
- package/dist/{chunk-6SIGGA37.js → chunk-GLNSLQSV.js} +26 -25
- package/dist/{chunk-BABRMZET.js → chunk-GZILYRGC.js} +3 -3
- package/dist/{chunk-5JGRF53S.js → chunk-GZSOZYEP.js} +3 -3
- package/dist/{chunk-Z33UNTHI.js → chunk-HBHPOKL2.js} +7 -7
- package/dist/{chunk-2JT4QV3Q.js → chunk-HDWVR5KD.js} +4 -4
- package/dist/{chunk-UJ5ZJS4B.js → chunk-HNU4AQXB.js} +22 -21
- package/dist/{chunk-IJN5PSDU.js → chunk-HOEZQRZU.js} +57 -27
- package/dist/{chunk-HWPX3T55.js → chunk-HPCGQAYH.js} +31 -24
- package/dist/{chunk-JJEXMHNZ.js → chunk-HUMM4S5I.js} +6 -6
- package/dist/{chunk-BIWNRS5I.js → chunk-I2NGDERG.js} +78 -47
- package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
- package/dist/{chunk-DOU52XFZ.js → chunk-I4P72R2F.js} +61 -28
- package/dist/{chunk-6U65YB54.js → chunk-I57IH5X6.js} +360 -271
- package/dist/{chunk-WYO4L4NU.js → chunk-I5X4WU7U.js} +6 -6
- package/dist/{chunk-DXLWZ3BJ.js → chunk-IDFUGYTS.js} +8 -8
- package/dist/{chunk-5A4RHEEL.js → chunk-INCFIDCB.js} +2 -2
- package/dist/{chunk-RTCZKKG7.js → chunk-IPMPLTEG.js} +3 -3
- package/dist/{chunk-QAFQLILX.js → chunk-IPSZDVLI.js} +12 -12
- package/dist/{chunk-ZFLBWL2G.js → chunk-J3ZUKQLV.js} +11 -3
- package/dist/chunk-J4L64TUA.js +58 -0
- package/dist/chunk-JA7AUBHU.js +51 -0
- package/dist/chunk-JD3QDLM2.js +50 -0
- package/dist/{chunk-4DHYXODN.js → chunk-JF2HM2IF.js} +4 -4
- package/dist/{chunk-XEWFVHOT.js → chunk-JGR4X2UA.js} +24 -23
- package/dist/chunk-JOG5O2ZH.js +185 -0
- package/dist/{chunk-ACY3U2RD.js → chunk-JRXFZB6J.js} +8 -8
- package/dist/{chunk-ZWMHL346.js → chunk-JWIAVNEC.js} +20 -19
- package/dist/{chunk-MQ6HP2TU.js → chunk-KMBI6IQD.js} +6 -6
- package/dist/chunk-KOITA526.js +42 -0
- package/dist/chunk-KZ5G3KEN.js +90 -0
- package/dist/{chunk-DPH4BS3F.js → chunk-L3KSU4QU.js} +17 -17
- package/dist/{chunk-4NWE2KY3.js → chunk-L4WFMAHI.js} +15 -14
- package/dist/{chunk-H7CSCA73.js → chunk-LAPVW2F6.js} +5 -5
- package/dist/{chunk-SZDOBIWE.js → chunk-LCQIRCOT.js} +55 -10
- package/dist/{chunk-ZLBUFK7L.js → chunk-LCWC6NDE.js} +7 -7
- package/dist/{chunk-ELR7DEQM.js → chunk-LH52QGNY.js} +34 -9
- package/dist/{chunk-WT6EXYEY.js → chunk-LJEEVZIH.js} +138 -22
- package/dist/{chunk-EVKDWJ5Y.js → chunk-LKLB5IJ7.js} +5 -5
- package/dist/{chunk-VIQHZA53.js → chunk-LP6BFBE5.js} +6 -6
- package/dist/{chunk-FIZ5LYL2.js → chunk-LQEMCF43.js} +16 -15
- package/dist/{chunk-RO6BE7ZS.js → chunk-LTVOQJKT.js} +7 -7
- package/dist/{chunk-C3TBDX7Y.js → chunk-M25UUEKC.js} +26 -25
- package/dist/{chunk-PXMV2LLY.js → chunk-M65AZ4ZE.js} +3 -5
- package/dist/chunk-MA44TMTL.js +190 -0
- package/dist/{chunk-EQMNMG6X.js → chunk-MA73J3E6.js} +13 -13
- package/dist/{chunk-P6EJNPFF.js → chunk-MBIJNU3D.js} +951 -409
- package/dist/chunk-MIKRDA2P.js +68 -0
- package/dist/{chunk-DJBXXYYA.js → chunk-MNOZDE6W.js} +15 -15
- package/dist/{chunk-QQAWI5LD.js → chunk-MP7W6OKP.js} +16 -15
- package/dist/chunk-MSNEGKI3.js +492 -0
- package/dist/{chunk-ZNYSBQIA.js → chunk-MUXYUIBV.js} +6 -6
- package/dist/{chunk-VJO7M34N.js → chunk-MZDHFWTN.js} +2 -2
- package/dist/{chunk-K3QKOVZN.js → chunk-N5DLB74D.js} +367 -71
- package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
- package/dist/{chunk-3KP7OOJ4.js → chunk-NJ5IEZIG.js} +8 -8
- package/dist/chunk-NK6JCNJX.js +41 -0
- package/dist/{chunk-IYEET4VM.js → chunk-NNRQZUVW.js} +27 -26
- package/dist/{chunk-76AHTJVY.js → chunk-NNURP7VO.js} +15 -15
- package/dist/{chunk-GFFTVQ7R.js → chunk-NV5S63YK.js} +7 -7
- package/dist/{chunk-MKUBDKE2.js → chunk-NWAMUD7B.js} +29 -28
- package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
- package/dist/{chunk-6EMJ4XFC.js → chunk-NWQ76YQ5.js} +31 -20
- package/dist/{chunk-H5BIVULF.js → chunk-O5BUMSB3.js} +10 -10
- package/dist/{chunk-IEIHVMM6.js → chunk-O6UC7ASJ.js} +5 -5
- package/dist/{chunk-Q3RKXK5Z.js → chunk-OBQL7GX4.js} +28 -27
- package/dist/{chunk-NCZS2BN2.js → chunk-OILAH2C7.js} +21 -20
- package/dist/{chunk-U3JXMY56.js → chunk-OOZKLLW7.js} +28 -25
- package/dist/{chunk-UAYU6K24.js → chunk-ORGB6645.js} +16 -15
- package/dist/{chunk-BGOAJFPB.js → chunk-OUALZ5RA.js} +1 -1
- package/dist/{chunk-6TZ4YRGJ.js → chunk-OUDGBJC2.js} +16 -9
- package/dist/{chunk-W4SMKUAK.js → chunk-OUGTAOGA.js} +2 -2
- package/dist/{chunk-7ZBYRMWK.js → chunk-OY2VC2IU.js} +26 -25
- package/dist/{chunk-GHST3KAB.js → chunk-OY6H7JX6.js} +5 -5
- package/dist/{chunk-KZ4I5M2X.js → chunk-P7H5WZH6.js} +37 -19
- package/dist/{chunk-ZA2PWNR3.js → chunk-PCIENCB7.js} +16 -15
- package/dist/{chunk-DXBXZNKV.js → chunk-PGAXZLNF.js} +21 -13
- package/dist/{chunk-UXVKFOMC.js → chunk-PPKH6ULR.js} +152 -20
- package/dist/{chunk-IP6ARMZU.js → chunk-PT77IUYQ.js} +58 -36
- package/dist/chunk-PVJZR4JB.js +653 -0
- package/dist/chunk-Q7EUPQEG.js +5 -0
- package/dist/{chunk-HNNMT5L2.js → chunk-Q7YDUGVZ.js} +1 -1
- package/dist/{chunk-MTIRNHRJ.js → chunk-QK3UFHFC.js} +1 -1
- package/dist/{chunk-VCXFMXMX.js → chunk-QLT3WYTD.js} +6 -6
- package/dist/{chunk-UWBPC5XH.js → chunk-QNXMVJMA.js} +8 -8
- package/dist/{chunk-XDLMQL5A.js → chunk-QPAANKUR.js} +7 -7
- package/dist/chunk-QQUAEM3U.js +57 -0
- package/dist/chunk-QU3ENIJV.js +52 -0
- package/dist/{chunk-TPKJD42W.js → chunk-QUFZDWPC.js} +8 -8
- package/dist/{chunk-DB3NWAU3.js → chunk-QXSYFB5L.js} +4 -4
- package/dist/{chunk-QXCGRQGO.js → chunk-QXXEOH3A.js} +18 -6
- package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
- package/dist/{chunk-CNEOKSTO.js → chunk-R6KZWNZM.js} +34 -31
- package/dist/{chunk-CNT6T2JM.js → chunk-R7NPDUBL.js} +16 -15
- package/dist/{chunk-HVWPN2RY.js → chunk-R7VX5BSP.js} +16 -15
- package/dist/chunk-RCPWEZD7.js +47 -0
- package/dist/{chunk-FOOU5OJE.js → chunk-RDFRB26Z.js} +3 -3
- package/dist/{chunk-ISCX25D7.js → chunk-RTHQIGGY.js} +200 -56
- package/dist/{chunk-FYCN2Y5P.js → chunk-RX2SMQV3.js} +19 -18
- package/dist/{chunk-XIGVTH24.js → chunk-RZEYZOLW.js} +19 -19
- package/dist/{chunk-VTR4AC2U.js → chunk-RZYRUXSU.js} +4 -4
- package/dist/{chunk-YLXPJWNO.js → chunk-S5O57P5P.js} +17 -16
- package/dist/{chunk-CWLXVRFH.js → chunk-S6TLXRBR.js} +7 -7
- package/dist/{chunk-MCORC2LG.js → chunk-SF3HXNXR.js} +6 -6
- package/dist/{chunk-BSZII65X.js → chunk-SFCFL7Y5.js} +1 -1
- package/dist/chunk-SJ2Z3AWF.js +89 -0
- package/dist/{chunk-KFZ5IXEZ.js → chunk-SKVLJL2E.js} +28 -27
- package/dist/chunk-SMFFUFMN.js +1876 -0
- package/dist/{chunk-IDRCBMJF.js → chunk-SP5BWA5H.js} +32 -31
- package/dist/chunk-SRIU7L4Z.js +425 -0
- package/dist/{chunk-CUTMM4NY.js → chunk-SSYD4XIW.js} +154 -25
- package/dist/{chunk-UBEFT3MQ.js → chunk-TFN2N227.js} +6 -6
- package/dist/{chunk-YEHSJY6B.js → chunk-TLSL7OII.js} +13 -13
- package/dist/{chunk-B7KGNEFI.js → chunk-TM2WY65Q.js} +25 -24
- package/dist/{chunk-6P67IUET.js → chunk-TMETWJFO.js} +11 -11
- package/dist/{chunk-SRB54QGX.js → chunk-TMMGQBLO.js} +20 -19
- package/dist/{chunk-VGGSHDQU.js → chunk-TOSHT6NJ.js} +8 -8
- package/dist/{chunk-64LSDT3D.js → chunk-TPKDYSHO.js} +12 -12
- package/dist/{chunk-OXCHO2QS.js → chunk-TQISA4VW.js} +26 -23
- package/dist/{chunk-NVVEVP5O.js → chunk-TRSNIJNM.js} +7 -7
- package/dist/{chunk-TQG2DDWH.js → chunk-TUMHMISE.js} +22 -21
- package/dist/{chunk-WM4EMP7T.js → chunk-U36V664P.js} +283 -61
- package/dist/{chunk-5UIGGXA5.js → chunk-U4K34CXK.js} +21 -20
- package/dist/{chunk-3KIMLBGZ.js → chunk-UDM6HGF4.js} +6 -6
- package/dist/{chunk-NMCPIYTF.js → chunk-UDM7LXNJ.js} +7 -7
- package/dist/{chunk-ZFEOIYK5.js → chunk-UEUPEUZX.js} +3 -3
- package/dist/{chunk-RCLBIJRN.js → chunk-UGJSKAZ2.js} +6 -6
- package/dist/{chunk-DS5M2J2H.js → chunk-UMIZYX3U.js} +16 -15
- package/dist/{chunk-63572EFC.js → chunk-USYDJY63.js} +21 -19
- package/dist/{chunk-V5FT3MZG.js → chunk-UXETN43F.js} +8 -8
- package/dist/{chunk-LBBI5P5G.js → chunk-V6BP4XHZ.js} +25 -24
- package/dist/chunk-V7DGFWDB.js +55 -0
- package/dist/chunk-VGXE7XFO.js +35 -0
- package/dist/{chunk-IZIGZ7KY.js → chunk-VSED7FYC.js} +13 -8
- package/dist/{chunk-HVOE7ZW2.js → chunk-VTQ55N4O.js} +19 -18
- package/dist/{chunk-P6DM2EFI.js → chunk-VVLWEM2Y.js} +6 -6
- package/dist/{chunk-YXKCE5BA.js → chunk-VWCNMDMZ.js} +5 -5
- package/dist/{chunk-EY3OVHNC.js → chunk-VX5CORDG.js} +24 -23
- package/dist/{chunk-XT3ZW7C7.js → chunk-W4SWXJZQ.js} +19 -18
- package/dist/{chunk-BV2BZIUF.js → chunk-W5UMEIYG.js} +25 -24
- package/dist/{chunk-VPQUFIE7.js → chunk-W6OY2PMB.js} +10 -10
- package/dist/chunk-W7NNZFIL.js +52 -0
- package/dist/{chunk-6ZDAEUKB.js → chunk-WJWSB65O.js} +1602 -452
- package/dist/{chunk-IFQJ3YQE.js → chunk-WNPGLGCJ.js} +5 -5
- package/dist/{chunk-MM7JSMLW.js → chunk-WNRIL6JQ.js} +18 -17
- package/dist/{chunk-TLBPTUFU.js → chunk-WPZCSFND.js} +20 -19
- package/dist/chunk-WTGQJXRJ.js +55 -0
- package/dist/{chunk-BEEHCL5O.js → chunk-WTLFRINF.js} +37 -36
- package/dist/{chunk-XIJBQM45.js → chunk-X5B7KYPD.js} +507 -20
- package/dist/{chunk-GNFZ227W.js → chunk-XIIT4PVT.js} +3 -3
- package/dist/{chunk-EECFUQP3.js → chunk-XKWPEY4B.js} +184 -46
- package/dist/{chunk-GAJBMPWC.js → chunk-XRNMQZFC.js} +28 -9
- package/dist/{chunk-BIAQ6NQS.js → chunk-XRTECHVH.js} +7 -7
- package/dist/{chunk-I2EWY3MG.js → chunk-XZY4GTCX.js} +14 -9
- package/dist/{chunk-V3M4VFUB.js → chunk-Y6S7VCYN.js} +6 -6
- package/dist/{chunk-MY3LDBMR.js → chunk-YAPVAYZN.js} +3 -3
- package/dist/{chunk-WH3ZFLXT.js → chunk-YBAJ5SAR.js} +197 -124
- package/dist/{chunk-ET7SPOBA.js → chunk-YHS7TSQS.js} +8 -8
- package/dist/{chunk-RK5P2DWD.js → chunk-YIGSUTW2.js} +1329 -92
- package/dist/{chunk-ANFBBJEV.js → chunk-YPXBGNUV.js} +24 -22
- package/dist/{chunk-MZXDSAKW.js → chunk-YRHKEXTP.js} +11 -11
- package/dist/{chunk-CPE7HLIK.js → chunk-YTPND655.js} +18 -17
- package/dist/{chunk-LTOBNBJ6.js → chunk-YZUOOTC3.js} +27 -26
- package/dist/{chunk-F6GRBF5L.js → chunk-Z245SJ64.js} +25 -24
- package/dist/{chunk-NP3PG6OI.js → chunk-Z5CIRZNO.js} +157 -89
- package/dist/chunk-ZCARJ77R.js +56 -0
- package/dist/{chunk-DASVVML7.js → chunk-ZIAMPN7N.js} +6 -6
- package/dist/chunk-ZNZYMUBK.js +53 -0
- package/dist/{chunk-NECDBPFP.js → chunk-ZOAX7W5S.js} +11 -11
- package/dist/{chunk-7IWMRZRI.js → chunk-ZQZRNVNS.js} +83 -40
- package/dist/{chunk-PGDVJWCI.js → chunk-ZT6GPGZ4.js} +52 -37
- package/dist/{chunk-H26T2LQL.js → chunk-ZW3OEHLT.js} +29 -28
- package/dist/files.json +653 -549
- package/dist/fixtures/forge/expected/crosscheck.json +726 -0
- package/dist/fixtures/forge/slots/README.md +13 -0
- package/dist/fixtures/forge/slots/build.json +2686 -0
- package/dist/fixtures/forge/slots/crosscheck/forge-ledger.crosscheck.yaml +8 -0
- package/dist/fixtures/forge/slots/facts/forge-ledger.jsonl +17 -0
- package/dist/fixtures/forge/slots/facts/forge-ledger.meta.json +9 -0
- package/dist/fixtures/forge/slots/legacy/joins.json +113 -0
- package/dist/fixtures/forge/slots/readers/forge-events.json +306 -0
- package/dist/fixtures/forge/slots/readers/forge-gateway.json +238 -0
- package/dist/fixtures/forge/slots/readers/forge-infra.json +264 -0
- package/dist/fixtures/forge/slots/readers/forge-ledger.json +756 -0
- package/dist/fixtures/forge/slots/readers/forge-portal-bff.json +349 -0
- package/dist/fixtures/forge/slots/readers/forge-portal-ui.json +214 -0
- package/dist/fixtures/forge/slots/readers/forge-reports-job.json +258 -0
- package/dist/packages/sdk/npm/index.js +3788 -2939
- package/dist/packages/ui/dist/assets/{elk-api-BdXSPeBO.js → elk-api-CPE6PVL8.js} +2 -2
- package/dist/packages/ui/dist/assets/index-BYcVqj0l.js +65 -0
- package/dist/packages/ui/dist/assets/index-DF52Ejvz.css +1 -0
- package/dist/packages/ui/dist/index.html +2 -2
- package/package.json +5 -5
- package/dist/chunk-24OXGB3P.js +0 -82
- package/dist/chunk-3FFIDQQB.js +0 -42
- package/dist/chunk-4N5W7LYW.js +0 -41
- package/dist/chunk-7NVLGPER.js +0 -45
- package/dist/chunk-A6LGX56J.js +0 -52
- package/dist/chunk-AHACUPGL.js +0 -46
- package/dist/chunk-DG7KYZAL.js +0 -40
- package/dist/chunk-DWD6BKHG.js +0 -52
- package/dist/chunk-EEVSFGIU.js +0 -50
- package/dist/chunk-EN3N6LNU.js +0 -52
- package/dist/chunk-FWQDH5NK.js +0 -55
- package/dist/chunk-GHCFWIUW.js +0 -38
- package/dist/chunk-GSIJWDXH.js +0 -43
- package/dist/chunk-HCC5547C.js +0 -232
- package/dist/chunk-HLDUWEO7.js +0 -36
- package/dist/chunk-K2NQTROJ.js +0 -170
- package/dist/chunk-LH4WAJLC.js +0 -45
- package/dist/chunk-M5IQUWJR.js +0 -59
- package/dist/chunk-MEMEO7YO.js +0 -988
- package/dist/chunk-MGNO4Q6V.js +0 -51
- package/dist/chunk-MZ6GOFRF.js +0 -55
- package/dist/chunk-N2AW2DHF.js +0 -51
- package/dist/chunk-N35Y5HZO.js +0 -47
- package/dist/chunk-NHFMLMLN.js +0 -257
- package/dist/chunk-PR6Z5L7W.js +0 -67
- package/dist/chunk-STBJ6SVJ.js +0 -50
- package/dist/chunk-U3RGBYXE.js +0 -62
- package/dist/chunk-URZKIL37.js +0 -42
- package/dist/chunk-W7HNZDHB.js +0 -71
- package/dist/chunk-YYZWSVIS.js +0 -33
- package/dist/chunk-ZAMSF2DF.js +0 -54
- package/dist/packages/ui/dist/assets/index-DRSUhpFi.css +0 -1
- package/dist/packages/ui/dist/assets/index-RZe5iotJ.js +0 -63
|
@@ -6,11 +6,7 @@ var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
|
6
6
|
import {
|
|
7
7
|
boundedId,
|
|
8
8
|
opt
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import {
|
|
11
|
-
curatedAliases,
|
|
12
|
-
resolveNames
|
|
13
|
-
} from "./chunk-HQMLY2R6.js";
|
|
9
|
+
} from "./chunk-IPSZDVLI.js";
|
|
14
10
|
import {
|
|
15
11
|
DATA_RULE,
|
|
16
12
|
INSTRUCTION_RULES,
|
|
@@ -27,9 +23,14 @@ import {
|
|
|
27
23
|
toRunSummary,
|
|
28
24
|
verdictOf,
|
|
29
25
|
wrapData
|
|
30
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-2MRYL45Z.js";
|
|
27
|
+
import {
|
|
28
|
+
curatedAliases,
|
|
29
|
+
resolveNames
|
|
30
|
+
} from "./chunk-ELJ5Q4J2.js";
|
|
31
31
|
import {
|
|
32
32
|
JOINED_BY_PERSON,
|
|
33
|
+
byDecisionTime,
|
|
33
34
|
deserializeRecord,
|
|
34
35
|
estimateTokens,
|
|
35
36
|
isAdopted,
|
|
@@ -47,10 +48,10 @@ import {
|
|
|
47
48
|
recordPath,
|
|
48
49
|
serializeRecord,
|
|
49
50
|
toCanonicalYaml
|
|
50
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-WJWSB65O.js";
|
|
51
52
|
import {
|
|
52
53
|
writeFileAtomic
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-SMFFUFMN.js";
|
|
54
55
|
import {
|
|
55
56
|
AgentDefinition,
|
|
56
57
|
ChecklistPack,
|
|
@@ -72,10 +73,10 @@ import {
|
|
|
72
73
|
pageStanding,
|
|
73
74
|
platformsMatch,
|
|
74
75
|
sourceReadsPage
|
|
75
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-A3LVMCA5.js";
|
|
76
77
|
import {
|
|
77
78
|
SCHEMA_VERSION
|
|
78
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-NWMFVPEP.js";
|
|
79
80
|
import {
|
|
80
81
|
require_dist
|
|
81
82
|
} from "./chunk-BQGDB6ZL.js";
|
|
@@ -2024,14 +2025,20 @@ var FlowGraph = class {
|
|
|
2024
2025
|
}
|
|
2025
2026
|
/** Words that name the component or its system: they say where code is, not what it does. */
|
|
2026
2027
|
ownWords(component) {
|
|
2028
|
+
let own = this.ownMemo.get(component);
|
|
2029
|
+
if (own)
|
|
2030
|
+
return new Set(own);
|
|
2027
2031
|
const s2 = this.systemOf(component);
|
|
2028
2032
|
const sys = s2 ? this.systems.get(s2) : void 0;
|
|
2029
|
-
|
|
2033
|
+
own = tokens([
|
|
2030
2034
|
...splitWords(component),
|
|
2031
2035
|
...s2 ? splitWords(s2) : [],
|
|
2032
2036
|
...sys ? splitWords(sys.name) : []
|
|
2033
2037
|
]);
|
|
2038
|
+
this.ownMemo.set(component, own);
|
|
2039
|
+
return new Set(own);
|
|
2034
2040
|
}
|
|
2041
|
+
ownMemo = /* @__PURE__ */ new Map();
|
|
2035
2042
|
/** The system's name as one singular word for job names (Reports → report), if it has one. */
|
|
2036
2043
|
systemWord(component) {
|
|
2037
2044
|
const s2 = this.systemOf(component);
|
|
@@ -2065,12 +2072,27 @@ var DEFAULT_DEPTH = 8;
|
|
|
2065
2072
|
var WRITES = /* @__PURE__ */ new Set(["POST", "PUT", "PATCH", "DELETE"]);
|
|
2066
2073
|
var modeOf = (method) => !method ? "any" : WRITES.has(method.toUpperCase()) ? "write" : "read";
|
|
2067
2074
|
var union = (a, b) => /* @__PURE__ */ new Set([...a, ...b]);
|
|
2075
|
+
var unionNew = (a, b) => {
|
|
2076
|
+
for (const x of b)
|
|
2077
|
+
if (!a.has(x))
|
|
2078
|
+
return union(a, b);
|
|
2079
|
+
return a;
|
|
2080
|
+
};
|
|
2068
2081
|
var sorted = (s2) => [...s2].sort();
|
|
2069
2082
|
var Tracer = class {
|
|
2070
2083
|
maxDepth;
|
|
2071
2084
|
g;
|
|
2072
2085
|
claimed = /* @__PURE__ */ new Map();
|
|
2073
2086
|
entriesAt = /* @__PURE__ */ new Map();
|
|
2087
|
+
// Memos (ADR 0195 point 9, the budgets): the graph never changes after the constructor, so a
|
|
2088
|
+
// hop's, a call's, a table's and a component's words are worked out once, not on every trace
|
|
2089
|
+
// that passes them. The sets are never handed out to be changed (a flow's words are a union).
|
|
2090
|
+
hopMemo = /* @__PURE__ */ new Map();
|
|
2091
|
+
callMemo = /* @__PURE__ */ new Map();
|
|
2092
|
+
tableMemo = /* @__PURE__ */ new Map();
|
|
2093
|
+
outsMemo = /* @__PURE__ */ new Map();
|
|
2094
|
+
/** How many starts each component has, for the entry points in play (reset with them). */
|
|
2095
|
+
startsMemo = /* @__PURE__ */ new Map();
|
|
2074
2096
|
constructor(records, maxDepth = DEFAULT_DEPTH) {
|
|
2075
2097
|
this.maxDepth = maxDepth;
|
|
2076
2098
|
this.g = new FlowGraph(records);
|
|
@@ -2191,6 +2213,7 @@ var Tracer = class {
|
|
|
2191
2213
|
useEntries(entries) {
|
|
2192
2214
|
this.entriesAt.clear();
|
|
2193
2215
|
this.claimed.clear();
|
|
2216
|
+
this.startsMemo.clear();
|
|
2194
2217
|
for (const e of entries) {
|
|
2195
2218
|
const l = this.entriesAt.get(e.component) ?? [];
|
|
2196
2219
|
l.push(e);
|
|
@@ -2198,10 +2221,116 @@ var Tracer = class {
|
|
|
2198
2221
|
}
|
|
2199
2222
|
}
|
|
2200
2223
|
hopTokens(i) {
|
|
2201
|
-
|
|
2224
|
+
let t = this.hopMemo.get(i);
|
|
2225
|
+
if (!t) {
|
|
2226
|
+
t = tokens(i.sync === "async" ? topicWords(i.normalizedPath) : pathWords(i.normalizedPath));
|
|
2227
|
+
this.hopMemo.set(i, t);
|
|
2228
|
+
}
|
|
2229
|
+
return t;
|
|
2202
2230
|
}
|
|
2203
2231
|
callTokens(i) {
|
|
2204
|
-
|
|
2232
|
+
let t = this.callMemo.get(i);
|
|
2233
|
+
if (!t) {
|
|
2234
|
+
t = union(this.hopTokens(i), this.g.classTokens(i.evidence, this.g.ownWords(i.from), ["caller"]));
|
|
2235
|
+
this.callMemo.set(i, t);
|
|
2236
|
+
}
|
|
2237
|
+
return t;
|
|
2238
|
+
}
|
|
2239
|
+
tableTokens(t) {
|
|
2240
|
+
let x = this.tableMemo.get(t);
|
|
2241
|
+
if (!x) {
|
|
2242
|
+
x = tokens(splitWords(t.name));
|
|
2243
|
+
this.tableMemo.set(t, x);
|
|
2244
|
+
}
|
|
2245
|
+
return x;
|
|
2246
|
+
}
|
|
2247
|
+
/** A component's calls and events out, by id (the graph's `outOf`, kept). */
|
|
2248
|
+
outsOf(component) {
|
|
2249
|
+
let o = this.outsMemo.get(component);
|
|
2250
|
+
if (!o) {
|
|
2251
|
+
o = this.g.outOf(component);
|
|
2252
|
+
this.outsMemo.set(component, o);
|
|
2253
|
+
}
|
|
2254
|
+
return o;
|
|
2255
|
+
}
|
|
2256
|
+
/**
|
|
2257
|
+
* The calls and events out of each component by word (a trace follows the ones sharing a
|
|
2258
|
+
* word with it: `outs.filter((i) => overlaps(toks, this.callTokens(i)))`).
|
|
2259
|
+
*/
|
|
2260
|
+
outWordsMemo = /* @__PURE__ */ new Map();
|
|
2261
|
+
/**
|
|
2262
|
+
* Which of `items` share a word with `toks` (`hit[k]` is 1 where `overlaps(toks, wordsOf(x))`),
|
|
2263
|
+
* and how many, through an index of a component's items by word (kept in `memo`), so a trace
|
|
2264
|
+
* looks up its words instead of comparing them with every item. `items` must be the same list
|
|
2265
|
+
* for the same component every time.
|
|
2266
|
+
*/
|
|
2267
|
+
sharingHits(memo, component, items, toks, wordsOf) {
|
|
2268
|
+
let hit = this.hitBufs.get(memo);
|
|
2269
|
+
if (!hit || hit.length < items.length) {
|
|
2270
|
+
hit = new Uint8Array(Math.max(items.length, 2 * (hit?.length ?? 32)));
|
|
2271
|
+
this.hitBufs.set(memo, hit);
|
|
2272
|
+
} else
|
|
2273
|
+
hit.fill(0, 0, items.length);
|
|
2274
|
+
let n = 0;
|
|
2275
|
+
if (items.length < 8) {
|
|
2276
|
+
for (let k = 0; k < items.length; k++)
|
|
2277
|
+
if (overlaps(toks, wordsOf(items[k]))) {
|
|
2278
|
+
hit[k] = 1;
|
|
2279
|
+
n++;
|
|
2280
|
+
}
|
|
2281
|
+
return { hit, n };
|
|
2282
|
+
}
|
|
2283
|
+
let idx = memo.get(component);
|
|
2284
|
+
if (!idx) {
|
|
2285
|
+
idx = /* @__PURE__ */ new Map();
|
|
2286
|
+
items.forEach((x, k) => {
|
|
2287
|
+
for (const t of wordsOf(x)) {
|
|
2288
|
+
const l = idx.get(t);
|
|
2289
|
+
if (l)
|
|
2290
|
+
l.push(k);
|
|
2291
|
+
else
|
|
2292
|
+
idx.set(t, [k]);
|
|
2293
|
+
}
|
|
2294
|
+
});
|
|
2295
|
+
memo.set(component, idx);
|
|
2296
|
+
}
|
|
2297
|
+
words: for (const t of toks) {
|
|
2298
|
+
const l = idx.get(t);
|
|
2299
|
+
if (!l)
|
|
2300
|
+
continue;
|
|
2301
|
+
for (const k of l)
|
|
2302
|
+
if (!hit[k]) {
|
|
2303
|
+
hit[k] = 1;
|
|
2304
|
+
if (++n === items.length)
|
|
2305
|
+
break words;
|
|
2306
|
+
}
|
|
2307
|
+
}
|
|
2308
|
+
return { hit, n };
|
|
2309
|
+
}
|
|
2310
|
+
hitBufs = /* @__PURE__ */ new Map();
|
|
2311
|
+
/** A component's calls and events out as numbers: id, endpoint (or -1), callee, each. */
|
|
2312
|
+
outsIxOf(component, outs) {
|
|
2313
|
+
let x = this.outsIxMemo.get(component);
|
|
2314
|
+
if (!x) {
|
|
2315
|
+
x = new Int32Array(outs.length * 3);
|
|
2316
|
+
outs.forEach((i, k) => {
|
|
2317
|
+
x[k * 3] = this.indexOf(i.id);
|
|
2318
|
+
x[k * 3 + 1] = i.endpoint ? this.indexOf(i.endpoint) : -1;
|
|
2319
|
+
x[k * 3 + 2] = this.indexOf(i.to);
|
|
2320
|
+
});
|
|
2321
|
+
this.outsIxMemo.set(component, x);
|
|
2322
|
+
}
|
|
2323
|
+
return x;
|
|
2324
|
+
}
|
|
2325
|
+
outsIxMemo = /* @__PURE__ */ new Map();
|
|
2326
|
+
tableWordsMemo = /* @__PURE__ */ new Map();
|
|
2327
|
+
startCount(component) {
|
|
2328
|
+
let n = this.startsMemo.get(component);
|
|
2329
|
+
if (n === void 0) {
|
|
2330
|
+
n = this.starts(component).length;
|
|
2331
|
+
this.startsMemo.set(component, n);
|
|
2332
|
+
}
|
|
2333
|
+
return n;
|
|
2205
2334
|
}
|
|
2206
2335
|
/** Where work starts at a component: its entry points and the calls and events into it. */
|
|
2207
2336
|
starts(component) {
|
|
@@ -2219,78 +2348,176 @@ var Tracer = class {
|
|
|
2219
2348
|
c = /* @__PURE__ */ new Set();
|
|
2220
2349
|
const starts = this.starts(component);
|
|
2221
2350
|
for (const u of this.g.tables.get(component) ?? [])
|
|
2222
|
-
if (starts.some((t) => overlaps(t,
|
|
2351
|
+
if (starts.some((t) => overlaps(t, this.tableTokens(u.table))))
|
|
2223
2352
|
c.add(u.table.id);
|
|
2224
2353
|
this.claimed.set(component, c);
|
|
2225
2354
|
}
|
|
2226
2355
|
return c;
|
|
2227
2356
|
}
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
if (
|
|
2232
|
-
|
|
2357
|
+
/** Whether a component (by its number) is our own: `g.isOwn`, kept. */
|
|
2358
|
+
ownAt(k, id) {
|
|
2359
|
+
let o = this.ownMark[k];
|
|
2360
|
+
if (o === void 0) {
|
|
2361
|
+
o = this.g.isOwn(id) ? 1 : 0;
|
|
2362
|
+
this.ownMark[k] = o;
|
|
2363
|
+
}
|
|
2364
|
+
return o === 1;
|
|
2365
|
+
}
|
|
2366
|
+
ownMark = [];
|
|
2367
|
+
/**
|
|
2368
|
+
* The tables a flow takes at a component, each given to `add` by its number, in the order of
|
|
2369
|
+
* the component's tables: those that share a word with the flow's words, else the ones no
|
|
2370
|
+
* start there claims that the flow's mode reads or writes (any, for "any").
|
|
2371
|
+
*/
|
|
2372
|
+
tablesIx(component, toks, mode, add) {
|
|
2373
|
+
const uses = this.g.tables.get(component);
|
|
2374
|
+
if (!uses?.length)
|
|
2375
|
+
return;
|
|
2376
|
+
let tix = this.tablesIxMemo.get(component);
|
|
2377
|
+
if (!tix) {
|
|
2378
|
+
tix = Int32Array.from(uses, (u) => this.indexOf(u.table.id));
|
|
2379
|
+
this.tablesIxMemo.set(component, tix);
|
|
2380
|
+
}
|
|
2381
|
+
const { hit, n } = this.sharingHits(this.tableWordsMemo, component, uses, toks, (u) => this.tableTokens(u.table));
|
|
2382
|
+
if (n) {
|
|
2383
|
+
for (let k = 0; k < uses.length; k++)
|
|
2384
|
+
if (hit[k])
|
|
2385
|
+
add(tix[k]);
|
|
2386
|
+
return;
|
|
2387
|
+
}
|
|
2233
2388
|
const claimed = this.claimedAt(component);
|
|
2234
|
-
|
|
2389
|
+
for (let k = 0; k < uses.length; k++) {
|
|
2390
|
+
const u = uses[k];
|
|
2391
|
+
if (!claimed.has(u.table.id) && (mode === "any" || (mode === "write" ? u.write : u.read)))
|
|
2392
|
+
add(tix[k]);
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
tablesIxMemo = /* @__PURE__ */ new Map();
|
|
2396
|
+
// A trace marks what it holds by number (ADR 0195 point 9: a flow of a big estate holds
|
|
2397
|
+
// thousands of ids, and thousands of flows are traced): each id once, in the order a trace
|
|
2398
|
+
// first adds it, as a Set of the ids would hold them.
|
|
2399
|
+
ids = [];
|
|
2400
|
+
ixOf = /* @__PURE__ */ new Map();
|
|
2401
|
+
recMark = [];
|
|
2402
|
+
reachMark = [];
|
|
2403
|
+
queuedMark = [];
|
|
2404
|
+
pass = 0;
|
|
2405
|
+
/** The number a trace marks this id by. */
|
|
2406
|
+
indexOf(id) {
|
|
2407
|
+
let k = this.ixOf.get(id);
|
|
2408
|
+
if (k === void 0) {
|
|
2409
|
+
k = this.ids.length;
|
|
2410
|
+
this.ids.push(id);
|
|
2411
|
+
this.ixOf.set(id, k);
|
|
2412
|
+
}
|
|
2413
|
+
return k;
|
|
2414
|
+
}
|
|
2415
|
+
/** The id of a number `indexOf` gave. */
|
|
2416
|
+
idOf(k) {
|
|
2417
|
+
return this.ids[k];
|
|
2235
2418
|
}
|
|
2236
2419
|
trace(entry) {
|
|
2237
|
-
const
|
|
2238
|
-
|
|
2420
|
+
const f = this.traceIx(entry, true);
|
|
2421
|
+
return {
|
|
2239
2422
|
entry,
|
|
2240
|
-
records:
|
|
2241
|
-
reached:
|
|
2242
|
-
visits:
|
|
2243
|
-
hops:
|
|
2423
|
+
records: new Set(Array.from(f.records, (k) => this.idOf(k))),
|
|
2424
|
+
reached: new Set(Array.from(f.reached, (k) => this.idOf(k))),
|
|
2425
|
+
visits: f.visits,
|
|
2426
|
+
hops: f.hops
|
|
2244
2427
|
};
|
|
2428
|
+
}
|
|
2429
|
+
/**
|
|
2430
|
+
* A flow as the numbers of what it spans and reaches, each in the order `trace` adds them;
|
|
2431
|
+
* its visits and hops only with `keep` (a scan's features need neither).
|
|
2432
|
+
*/
|
|
2433
|
+
traceIx(entry, keep) {
|
|
2434
|
+
const g = this.g;
|
|
2435
|
+
const pass = ++this.pass;
|
|
2436
|
+
const recMark = this.recMark;
|
|
2437
|
+
const reachMark = this.reachMark;
|
|
2438
|
+
const records = [];
|
|
2439
|
+
const reached = [];
|
|
2440
|
+
const rec = (k) => {
|
|
2441
|
+
if (recMark[k] !== pass) {
|
|
2442
|
+
recMark[k] = pass;
|
|
2443
|
+
records.push(k);
|
|
2444
|
+
}
|
|
2445
|
+
};
|
|
2446
|
+
const reach = (k) => {
|
|
2447
|
+
if (reachMark[k] !== pass) {
|
|
2448
|
+
reachMark[k] = pass;
|
|
2449
|
+
reached.push(k);
|
|
2450
|
+
}
|
|
2451
|
+
};
|
|
2452
|
+
const visits = keep ? [] : void 0;
|
|
2453
|
+
const hops = keep ? [] : void 0;
|
|
2454
|
+
rec(this.indexOf(entry.id));
|
|
2455
|
+
rec(this.indexOf(entry.component));
|
|
2456
|
+
reach(this.indexOf(entry.id));
|
|
2245
2457
|
const iface = g.interfaces.get(entry.id);
|
|
2246
2458
|
if (iface) {
|
|
2247
|
-
|
|
2459
|
+
rec(this.indexOf(iface.from));
|
|
2248
2460
|
if (iface.endpoint)
|
|
2249
|
-
|
|
2461
|
+
rec(this.indexOf(iface.endpoint));
|
|
2250
2462
|
} else if (g.endpoints.has(entry.id)) {
|
|
2251
2463
|
for (const c of g.callers.get(entry.id) ?? []) {
|
|
2252
|
-
|
|
2253
|
-
|
|
2464
|
+
rec(this.indexOf(c.id));
|
|
2465
|
+
rec(this.indexOf(c.from));
|
|
2254
2466
|
}
|
|
2255
2467
|
}
|
|
2256
|
-
const
|
|
2257
|
-
const
|
|
2258
|
-
|
|
2259
|
-
];
|
|
2260
|
-
|
|
2261
|
-
const { component, toks, depth, mode } = queue
|
|
2262
|
-
if (
|
|
2468
|
+
const queuedMark = this.queuedMark;
|
|
2469
|
+
const first = this.indexOf(entry.component);
|
|
2470
|
+
queuedMark[first] = pass;
|
|
2471
|
+
const queue = [{ component: entry.component, at: first, toks: entry.tokens, depth: 0, mode: entry.mode }];
|
|
2472
|
+
for (let q = 0; q < queue.length; q++) {
|
|
2473
|
+
const { component, at, toks, depth, mode } = queue[q];
|
|
2474
|
+
if (!this.ownAt(at, component))
|
|
2263
2475
|
continue;
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
|
|
2267
|
-
for (const u of this.tablesFor(component, toks, mode))
|
|
2268
|
-
flow.records.add(u.table.id);
|
|
2476
|
+
rec(at);
|
|
2477
|
+
visits?.push({ component, tokens: toks });
|
|
2478
|
+
this.tablesIx(component, toks, mode, rec);
|
|
2269
2479
|
if (depth >= this.maxDepth)
|
|
2270
2480
|
continue;
|
|
2271
|
-
const outs =
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2481
|
+
const outs = this.outsOf(component);
|
|
2482
|
+
const { hit, n } = this.sharingHits(this.outWordsMemo, component, outs, toks, (i) => this.callTokens(i));
|
|
2483
|
+
const all = n === 0 && this.startCount(component) <= 1;
|
|
2484
|
+
if (n === 0 && !all)
|
|
2485
|
+
continue;
|
|
2486
|
+
const oix = this.outsIxOf(component, outs);
|
|
2487
|
+
for (let k = 0; k < outs.length; k++) {
|
|
2488
|
+
if (!all && !hit[k])
|
|
2489
|
+
continue;
|
|
2490
|
+
const i = outs[k];
|
|
2491
|
+
hops?.push(i);
|
|
2492
|
+
const id = oix[k * 3];
|
|
2493
|
+
const ep = oix[k * 3 + 1];
|
|
2494
|
+
const to = oix[k * 3 + 2];
|
|
2495
|
+
rec(id);
|
|
2496
|
+
reach(id);
|
|
2497
|
+
if (ep >= 0) {
|
|
2498
|
+
rec(ep);
|
|
2499
|
+
reach(ep);
|
|
2282
2500
|
}
|
|
2283
|
-
|
|
2284
|
-
if (
|
|
2501
|
+
rec(to);
|
|
2502
|
+
if (queuedMark[to] !== pass && this.ownAt(to, i.to)) {
|
|
2503
|
+
queuedMark[to] = pass;
|
|
2285
2504
|
queue.push({
|
|
2286
2505
|
component: i.to,
|
|
2287
|
-
|
|
2506
|
+
at: to,
|
|
2507
|
+
toks: unionNew(toks, this.hopTokens(i)),
|
|
2288
2508
|
depth: depth + 1,
|
|
2289
2509
|
mode: i.sync === "async" ? "any" : modeOf(i.method)
|
|
2290
2510
|
});
|
|
2511
|
+
}
|
|
2291
2512
|
}
|
|
2292
2513
|
}
|
|
2293
|
-
return
|
|
2514
|
+
return {
|
|
2515
|
+
entry,
|
|
2516
|
+
records: Int32Array.from(records),
|
|
2517
|
+
reached: Int32Array.from(reached),
|
|
2518
|
+
...visits ? { visits } : {},
|
|
2519
|
+
...hops ? { hops } : {}
|
|
2520
|
+
};
|
|
2294
2521
|
}
|
|
2295
2522
|
};
|
|
2296
2523
|
var Groups = class {
|
|
@@ -2309,7 +2536,11 @@ var Groups = class {
|
|
|
2309
2536
|
let r = x;
|
|
2310
2537
|
while (this.parent.get(r) !== r)
|
|
2311
2538
|
r = this.parent.get(r);
|
|
2312
|
-
|
|
2539
|
+
for (let y = x; y !== r; ) {
|
|
2540
|
+
const next = this.parent.get(y);
|
|
2541
|
+
this.parent.set(y, r);
|
|
2542
|
+
y = next;
|
|
2543
|
+
}
|
|
2313
2544
|
return r;
|
|
2314
2545
|
}
|
|
2315
2546
|
join(a, b) {
|
|
@@ -2331,14 +2562,18 @@ var Groups = class {
|
|
|
2331
2562
|
const out = /* @__PURE__ */ new Map();
|
|
2332
2563
|
for (const id of [...this.parent.keys()].sort()) {
|
|
2333
2564
|
const r = this.find(id);
|
|
2334
|
-
|
|
2565
|
+
const l = out.get(r);
|
|
2566
|
+
if (l)
|
|
2567
|
+
l.push(id);
|
|
2568
|
+
else
|
|
2569
|
+
out.set(r, [id]);
|
|
2335
2570
|
}
|
|
2336
2571
|
return [...out.values()];
|
|
2337
2572
|
}
|
|
2338
2573
|
};
|
|
2339
2574
|
var isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
2340
2575
|
function currentDecisions(decisions) {
|
|
2341
|
-
return decisions.filter((d) => d.kind === "CuratedDecision" && d.status === "current").filter((d) => d.target.startsWith("feature.")).sort(
|
|
2576
|
+
return decisions.filter((d) => d.kind === "CuratedDecision" && d.status === "current").filter((d) => d.target.startsWith("feature.")).sort(byDecisionTime);
|
|
2342
2577
|
}
|
|
2343
2578
|
function pinsFrom(decisions) {
|
|
2344
2579
|
const latest = /* @__PURE__ */ new Map();
|
|
@@ -2355,6 +2590,15 @@ function pinsFrom(decisions) {
|
|
|
2355
2590
|
return pins;
|
|
2356
2591
|
}
|
|
2357
2592
|
var evKey = (e) => JSON.stringify(Object.entries(e).sort());
|
|
2593
|
+
function withEachRepo(own, records) {
|
|
2594
|
+
const have = new Set(own.flatMap((e) => e.repo ? [e.repo] : []));
|
|
2595
|
+
const first = /* @__PURE__ */ new Map();
|
|
2596
|
+
for (const r of records)
|
|
2597
|
+
for (const e of r?.evidence ?? [])
|
|
2598
|
+
if (e.repo && !have.has(e.repo) && !first.has(e.repo))
|
|
2599
|
+
first.set(e.repo, e);
|
|
2600
|
+
return [...own, ...[...first].sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0).map(([, e]) => e)];
|
|
2601
|
+
}
|
|
2358
2602
|
function dedupeEvidence(list2) {
|
|
2359
2603
|
const seen = /* @__PURE__ */ new Set();
|
|
2360
2604
|
return list2.filter((e) => {
|
|
@@ -2399,14 +2643,44 @@ function detectFeaturesWithReport(records, o = {}) {
|
|
|
2399
2643
|
});
|
|
2400
2644
|
}
|
|
2401
2645
|
}
|
|
2646
|
+
const byId2 = new Map(records.map((r) => [r.id, r]));
|
|
2402
2647
|
const list2 = [...entries.values()].sort((a, b) => a.id < b.id ? -1 : 1);
|
|
2403
2648
|
tracer.useEntries(list2);
|
|
2404
|
-
const
|
|
2649
|
+
const keep = o.keepFlows !== false;
|
|
2650
|
+
const traced = new Map(list2.map((e) => [e.id, tracer.traceIx(e, keep)]));
|
|
2651
|
+
const flows = /* @__PURE__ */ new Map();
|
|
2652
|
+
if (keep)
|
|
2653
|
+
for (const [id, f] of traced)
|
|
2654
|
+
flows.set(id, {
|
|
2655
|
+
entry: f.entry,
|
|
2656
|
+
records: new Set(Array.from(f.records, (k) => tracer.idOf(k))),
|
|
2657
|
+
reached: new Set(Array.from(f.reached, (k) => tracer.idOf(k))),
|
|
2658
|
+
visits: f.visits,
|
|
2659
|
+
hops: f.hops
|
|
2660
|
+
});
|
|
2661
|
+
const entryAt = /* @__PURE__ */ new Map();
|
|
2662
|
+
for (const e of list2)
|
|
2663
|
+
entryAt.set(tracer.indexOf(e.id), e.id);
|
|
2405
2664
|
const groups = new Groups(list2.map((e) => e.id), (id) => pins.get(id));
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2665
|
+
const reachers = /* @__PURE__ */ new Map();
|
|
2666
|
+
const joining = /* @__PURE__ */ new Set(["endpoint", "consumer", "pinned"]);
|
|
2667
|
+
for (const f of traced.values()) {
|
|
2668
|
+
const hit = [];
|
|
2669
|
+
for (const k of f.reached) {
|
|
2670
|
+
const r = entryAt.get(k);
|
|
2671
|
+
if (r !== void 0) {
|
|
2672
|
+
hit.push(r);
|
|
2673
|
+
const l = reachers.get(r);
|
|
2674
|
+
if (l)
|
|
2675
|
+
l.push(f.entry.id);
|
|
2676
|
+
else
|
|
2677
|
+
reachers.set(r, [f.entry.id]);
|
|
2678
|
+
}
|
|
2679
|
+
}
|
|
2680
|
+
for (const r of pins.size ? hit.sort() : hit)
|
|
2681
|
+
if (r !== f.entry.id && joining.has(entries.get(r).kind))
|
|
2409
2682
|
groups.join(f.entry.id, r);
|
|
2683
|
+
}
|
|
2410
2684
|
const bySlug = /* @__PURE__ */ new Map();
|
|
2411
2685
|
for (const e of list2) {
|
|
2412
2686
|
const s2 = slugOf(e.resource);
|
|
@@ -2419,7 +2693,8 @@ function detectFeaturesWithReport(records, o = {}) {
|
|
|
2419
2693
|
const built = [];
|
|
2420
2694
|
for (const members of groups.groups()) {
|
|
2421
2695
|
const pin = members.map((m) => pins.get(m)).find(Boolean);
|
|
2422
|
-
const
|
|
2696
|
+
const inGroup = new Set(members);
|
|
2697
|
+
const reachedByOthers = (m) => (reachers.get(m) ?? []).some((x) => x !== m && inGroup.has(x));
|
|
2423
2698
|
const outer = members.filter((m) => !reachedByOthers(m)).sort();
|
|
2424
2699
|
const inner = members.filter((m) => reachedByOthers(m)).sort();
|
|
2425
2700
|
let resource = entries.get(members[0]).resource;
|
|
@@ -2442,12 +2717,23 @@ function detectFeaturesWithReport(records, o = {}) {
|
|
|
2442
2717
|
taken.add(id);
|
|
2443
2718
|
}
|
|
2444
2719
|
let features = /* @__PURE__ */ new Map();
|
|
2445
|
-
|
|
2720
|
+
const markedFor = [];
|
|
2721
|
+
let feature = 0;
|
|
2722
|
+
for (const b of built.sort((x, y) => x.id < y.id ? -1 : 1)) {
|
|
2723
|
+
feature++;
|
|
2724
|
+
const ids = [];
|
|
2725
|
+
for (const m of b.members)
|
|
2726
|
+
for (const k of traced.get(m).records)
|
|
2727
|
+
if (markedFor[k] !== feature) {
|
|
2728
|
+
markedFor[k] = feature;
|
|
2729
|
+
ids.push(tracer.idOf(k));
|
|
2730
|
+
}
|
|
2446
2731
|
features.set(b.id, {
|
|
2447
2732
|
members: b.members,
|
|
2448
2733
|
name: displayName(b.resource),
|
|
2449
|
-
records: new Set(
|
|
2734
|
+
records: new Set(ids)
|
|
2450
2735
|
});
|
|
2736
|
+
}
|
|
2451
2737
|
for (const d of decisions.filter((x) => x.action === "alias")) {
|
|
2452
2738
|
const names = (Array.isArray(d.value) ? d.value : [d.value]).filter((v) => typeof v === "string" && v.startsWith("feature."));
|
|
2453
2739
|
if (!names.length)
|
|
@@ -2482,16 +2768,17 @@ function detectFeaturesWithReport(records, o = {}) {
|
|
|
2482
2768
|
const out = [];
|
|
2483
2769
|
for (const [id, f] of features) {
|
|
2484
2770
|
const p = proposals.get(id);
|
|
2771
|
+
const records2 = sorted(f.records);
|
|
2485
2772
|
out.push(capability({
|
|
2486
2773
|
id,
|
|
2487
2774
|
name: p?.name ?? f.name,
|
|
2488
2775
|
...p?.description ? { description: p.description } : {},
|
|
2489
2776
|
entryPoints: f.members,
|
|
2490
|
-
records:
|
|
2777
|
+
records: records2,
|
|
2491
2778
|
tags: p ? [...p.tags] : [],
|
|
2492
2779
|
externalRefs: [],
|
|
2493
2780
|
namedBy: p ? "ai" : "detected",
|
|
2494
|
-
evidence: dedupeEvidence(f.members.flatMap((m) => entries.get(m).evidence))
|
|
2781
|
+
evidence: withEachRepo(dedupeEvidence(f.members.flatMap((m) => entries.get(m).evidence)), records2.map((r) => byId2.get(r)))
|
|
2495
2782
|
}));
|
|
2496
2783
|
}
|
|
2497
2784
|
return { features: out, flows, problems };
|
|
@@ -2566,7 +2853,9 @@ async function featuresForScan(input) {
|
|
|
2566
2853
|
const r = detectFeaturesWithReport(input.records, {
|
|
2567
2854
|
decisions: input.decisions,
|
|
2568
2855
|
proposals: read.proposals,
|
|
2569
|
-
...input.maxDepth ? { maxDepth: input.maxDepth } : {}
|
|
2856
|
+
...input.maxDepth ? { maxDepth: input.maxDepth } : {},
|
|
2857
|
+
// A scan keeps the features only (ADR 0195 point 9: the flows of a big estate are large).
|
|
2858
|
+
keepFlows: false
|
|
2570
2859
|
});
|
|
2571
2860
|
return {
|
|
2572
2861
|
features: r.features,
|
|
@@ -3915,6 +4204,11 @@ function knowledgeGaps(input) {
|
|
|
3915
4204
|
}
|
|
3916
4205
|
return out;
|
|
3917
4206
|
}
|
|
4207
|
+
function ownerQuestionStillAsked(input) {
|
|
4208
|
+
const raised = new Set(knowledgeGaps(input).map((g) => g.question.id));
|
|
4209
|
+
const checks = [...KNOWLEDGE_CHECKS, ...input.checks ?? []].map((c) => `q.${c.id}.`);
|
|
4210
|
+
return (r) => r.kind !== "OwnerQuestion" || raised.has(r.id) || !checks.some((p) => r.id.startsWith(p));
|
|
4211
|
+
}
|
|
3918
4212
|
|
|
3919
4213
|
// packages/knowledge/dist/coverage.js
|
|
3920
4214
|
var COVERAGE_AREAS = [
|
|
@@ -4169,6 +4463,7 @@ var TYPE = {
|
|
|
4169
4463
|
};
|
|
4170
4464
|
function domainProfile(records, system, o) {
|
|
4171
4465
|
const all = [...records].sort((a, b) => cmp(a.id, b.id));
|
|
4466
|
+
const stillAsked = o.orgPack ? ownerQuestionStillAsked({ records, orgPack: o.orgPack, now: o.now }) : void 0;
|
|
4172
4467
|
const byId2 = new Map(all.map((r) => [r.id, r]));
|
|
4173
4468
|
const of = (kind) => all.filter((r) => r.kind === kind);
|
|
4174
4469
|
const sys = byId2.get(system);
|
|
@@ -4280,7 +4575,7 @@ function domainProfile(records, system, o) {
|
|
|
4280
4575
|
`- Who is the business owner of ${name2}? (product owner)`,
|
|
4281
4576
|
`- Which controls and obligations apply to ${name2}, and under which policy or decision? (architect)`,
|
|
4282
4577
|
...stores.map((d) => `- What are the classification and retention of the data in ${d.id}? (data owner)`),
|
|
4283
|
-
...of("OwnerQuestion").filter((q) => s(q.system) === system).map((q) => `- ${s(q.question)} (${s(q.owner) ?? "owner"}, ${s(q.questionState) ?? "open"})`),
|
|
4578
|
+
...of("OwnerQuestion").filter((q) => s(q.system) === system).filter((q) => !stillAsked || stillAsked(q) || q.questionState === "answered").map((q) => `- ${s(q.question)} (${s(q.owner) ?? "owner"}, ${s(q.questionState) ?? "open"})`),
|
|
4284
4579
|
...[
|
|
4285
4580
|
...new Set(of("Unresolved").filter((u) => own.has(s(u.owner) ?? "")).map((u) => s(u.owner)))
|
|
4286
4581
|
].sort().map((c) => {
|
|
@@ -8503,6 +8798,7 @@ export {
|
|
|
8503
8798
|
freshness,
|
|
8504
8799
|
KNOWLEDGE_CHECKS,
|
|
8505
8800
|
knowledgeGaps,
|
|
8801
|
+
ownerQuestionStillAsked,
|
|
8506
8802
|
COVERAGE_AREAS,
|
|
8507
8803
|
featureCoverage,
|
|
8508
8804
|
coverage,
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
loadEstimates,
|
|
10
10
|
loadOpenSpecSettings,
|
|
11
11
|
loadOrgPack
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-A3LVMCA5.js";
|
|
13
|
+
import "./chunk-NWMFVPEP.js";
|
|
14
14
|
import "./chunk-BQGDB6ZL.js";
|
|
15
15
|
import "./chunk-TV45EUGM.js";
|
|
16
16
|
export {
|