@maycombhq/atticus 2.0.0-beta.25 → 2.0.0-beta.27
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-22A2K555.js +653 -0
- package/dist/{chunk-UTZMF5CV.js → chunk-23TTURB2.js} +1 -1
- package/dist/{chunk-F36DIKJ3.js → chunk-2666BPJE.js} +19 -19
- package/dist/{chunk-E2OP6JNF.js → chunk-2ALBHI4Q.js} +28 -27
- package/dist/chunk-2ANBMA74.js +107 -0
- package/dist/{chunk-S7UQFI4B.js → chunk-2HCW6HXK.js} +27 -26
- package/dist/{chunk-HV3KPEFH.js → chunk-2ISR6MWD.js} +15 -15
- package/dist/{chunk-QQD25YNF.js → chunk-2MRYL45Z.js} +50 -9
- package/dist/{chunk-KN4UQJ7R.js → chunk-3GNUHLAN.js} +4 -4
- package/dist/chunk-3GURU22K.js +44 -0
- package/dist/{chunk-4U3JLIRC.js → chunk-3M3MDBOG.js} +1 -1
- package/dist/{chunk-DJ4C5ELF.js → chunk-3PBIZBWN.js} +1 -1
- package/dist/{chunk-XUCHGEF5.js → chunk-3PWXVBCB.js} +83 -40
- package/dist/chunk-3W2QX6TT.js +58 -0
- package/dist/{chunk-CPFAWYVC.js → chunk-3Z7ATALI.js} +5 -5
- package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
- package/dist/{chunk-LGE6H4UP.js → chunk-46N5O5H7.js} +5 -5
- package/dist/{chunk-SRLUADSY.js → chunk-4D4DNTFE.js} +4 -4
- package/dist/{chunk-DMQJDHXG.js → chunk-4EAT7HOX.js} +7 -5
- package/dist/{chunk-DPZD7WVX.js → chunk-4FLIW5PJ.js} +4 -4
- package/dist/{chunk-SGTAQNOP.js → chunk-4LWA5VMJ.js} +52 -37
- package/dist/{chunk-D45K3XKK.js → chunk-4ODVHNA6.js} +18 -17
- package/dist/{chunk-7QZDGM5V.js → chunk-4POSAXNC.js} +6 -6
- package/dist/{chunk-A3J75BO2.js → chunk-4PQ4KDOA.js} +16 -15
- package/dist/{chunk-2Y5FJQSF.js → chunk-4UVTNHA6.js} +1 -1
- package/dist/{chunk-KVVNAUIG.js → chunk-4XK3HLOH.js} +1 -0
- package/dist/{chunk-V7T6URII.js → chunk-523NRKHF.js} +4 -4
- package/dist/{chunk-7EAH2MFY.js → chunk-5GCCG3GJ.js} +11 -5
- package/dist/{chunk-7U6PBBXG.js → chunk-5XW6RUDV.js} +8 -8
- package/dist/{chunk-Y3J365UC.js → chunk-5YEUAZZE.js} +8 -8
- package/dist/{chunk-JWLABUXL.js → chunk-62LD7CSY.js} +13 -13
- package/dist/{chunk-LOJGNSPA.js → chunk-67Y2J55V.js} +22 -21
- package/dist/{chunk-UCKG6UE7.js → chunk-6DSZ4CL7.js} +37 -22
- package/dist/{chunk-FNP4M4VL.js → chunk-6G67LSBG.js} +283 -61
- package/dist/{chunk-5GLGLWAJ.js → chunk-6OEB4FTC.js} +20 -19
- package/dist/{chunk-5RKN5QIX.js → chunk-6OTGCKYH.js} +9 -9
- package/dist/{chunk-UI7ID4HG.js → chunk-6XLCMDIP.js} +13 -13
- package/dist/chunk-76DZJTU7.js +190 -0
- package/dist/chunk-7764GVJK.js +37 -0
- package/dist/{chunk-TKCNJJ2S.js → chunk-7BOGXFZ3.js} +11 -11
- package/dist/{chunk-Q52KWTG5.js → chunk-7CVHKNAF.js} +16 -15
- package/dist/{chunk-XF5UMMQL.js → chunk-7FEIS3KV.js} +25 -24
- package/dist/{chunk-UTYL4XVA.js → chunk-7GXM45T5.js} +26 -23
- package/dist/{chunk-4PW5SRKJ.js → chunk-7YMAMNMT.js} +17 -16
- package/dist/chunk-7YWS47SE.js +56 -0
- package/dist/{chunk-LZFKJ2BR.js → chunk-A3LVMCA5.js} +1 -1
- package/dist/{chunk-7YFUNWFM.js → chunk-A7ZJKLFC.js} +11 -11
- package/dist/chunk-AANQC5QP.js +47 -0
- package/dist/{chunk-LP5QGTCR.js → chunk-AIQLTDC3.js} +3 -3
- package/dist/{chunk-EPXYFJTY.js → chunk-AKZTCZ6F.js} +4 -4
- package/dist/{chunk-5267F4BS.js → chunk-ALCSTVWQ.js} +3 -3
- package/dist/{chunk-NMBHFSJQ.js → chunk-ALUHO7SE.js} +26 -25
- package/dist/{chunk-3WO7ASU7.js → chunk-AMZ4XMES.js} +8 -8
- package/dist/{chunk-JKEUPSCE.js → chunk-AOQG37K4.js} +8 -6
- package/dist/{chunk-3NA2VE45.js → chunk-ARXZTHEI.js} +16 -15
- package/dist/{chunk-W2W7YCFL.js → chunk-AS4CTARY.js} +16 -15
- package/dist/{chunk-7AKJ2XTW.js → chunk-AVUPW23W.js} +18 -17
- package/dist/{chunk-CMUJSPP4.js → chunk-B56FCIEJ.js} +12 -12
- package/dist/{chunk-K3OIBTCV.js → chunk-BABATPOZ.js} +18 -17
- package/dist/{chunk-VAZYNF6I.js → chunk-BIOKDLLX.js} +21 -19
- package/dist/{chunk-23QHP4JJ.js → chunk-BUBKKEUV.js} +5 -5
- package/dist/{chunk-N3OEBQTA.js → chunk-CDC6VECU.js} +3 -3
- package/dist/chunk-CHEFUNZ4.js +425 -0
- package/dist/{chunk-MM7YWUBB.js → chunk-CIFR3DPV.js} +6 -6
- package/dist/{chunk-JCKKAELC.js → chunk-CLBVKD4P.js} +16 -15
- package/dist/{chunk-HHZEXF7V.js → chunk-CLM5Z3R5.js} +5 -5
- package/dist/{chunk-M7XNX5IC.js → chunk-CLYV5MB6.js} +9 -9
- package/dist/{chunk-SHWHRCMU.js → chunk-CRYIBCGP.js} +37 -19
- package/dist/{chunk-6576X5BJ.js → chunk-D3L5SO27.js} +5 -5
- package/dist/chunk-DAZM2INZ.js +34 -0
- package/dist/{chunk-VBJHIRKV.js → chunk-DF4BXBB2.js} +6 -6
- package/dist/{chunk-U4HZ5CXL.js → chunk-E7Q52EOO.js} +11 -11
- package/dist/{chunk-MZTU5L6S.js → chunk-EFDUC35B.js} +3 -3
- package/dist/{chunk-GIOOA2ZO.js → chunk-EHXEJFHD.js} +5 -5
- package/dist/{chunk-M6HI36T3.js → chunk-ELJ5Q4J2.js} +2 -2
- package/dist/{chunk-MJAIBPI5.js → chunk-EM6DKBTJ.js} +3 -3
- package/dist/{chunk-YGS2YVF2.js → chunk-EMC46SU4.js} +38 -17
- package/dist/{chunk-CB6H7MH2.js → chunk-EQEDIWFQ.js} +25 -24
- package/dist/chunk-EW574EZI.js +57 -0
- package/dist/{chunk-JJEPU4VS.js → chunk-EYINWNXL.js} +5 -5
- package/dist/{chunk-MJOIMGS4.js → chunk-EYVYHYCA.js} +8 -8
- package/dist/{chunk-WGOQZ4PQ.js → chunk-F66542M6.js} +34 -9
- package/dist/{chunk-EUCATH2U.js → chunk-F74OMLNU.js} +6 -6
- package/dist/{chunk-G5P7F6RQ.js → chunk-FADIWOA5.js} +3 -3
- package/dist/{chunk-JMOZ6K5A.js → chunk-FC3ZVD3O.js} +3 -3
- package/dist/{chunk-XXJSGCDO.js → chunk-FG65LXED.js} +8 -8
- package/dist/{chunk-5WZV37WS.js → chunk-FKAUBC4Y.js} +8 -8
- package/dist/{chunk-WA644MUQ.js → chunk-FM3EEDS2.js} +15 -15
- package/dist/{chunk-XZQBFF65.js → chunk-FS4E7F6O.js} +403 -148
- package/dist/{chunk-Q6UYUCNS.js → chunk-FSYJPYLE.js} +16 -15
- package/dist/{chunk-H7GAPNGQ.js → chunk-G33UIUG3.js} +46 -20
- package/dist/{chunk-OEUTV6EL.js → chunk-G3F4BYML.js} +15 -14
- package/dist/{chunk-7UYRN4ON.js → chunk-GBJRFFDW.js} +5 -5
- package/dist/{chunk-7HW2CMIN.js → chunk-GF6GBHFN.js} +13 -11
- package/dist/{chunk-DCPI3ETH.js → chunk-GLHOUT5E.js} +26 -25
- package/dist/{chunk-VOBG7BLB.js → chunk-GM6GXO2A.js} +20 -19
- package/dist/{chunk-KJPKIU2R.js → chunk-GSJ2RXE7.js} +29 -28
- package/dist/{chunk-HU7VXMFV.js → chunk-GT72FDER.js} +6 -6
- package/dist/{chunk-SBNBVUOF.js → chunk-GW6ZH77P.js} +37 -36
- package/dist/{chunk-6WYOJCB4.js → chunk-GZILYRGC.js} +3 -3
- package/dist/{chunk-4SS5ZK47.js → chunk-GZSOZYEP.js} +3 -3
- package/dist/{chunk-N6SSI6XO.js → chunk-H25QNDKK.js} +58 -36
- package/dist/{chunk-DYVUNT4O.js → chunk-H3RKW4RF.js} +7 -7
- package/dist/chunk-H7M7ZH6H.js +52 -0
- package/dist/chunk-H7NRWSMP.js +55 -0
- package/dist/{chunk-KW4DIXUL.js → chunk-HDWVR5KD.js} +4 -4
- package/dist/{chunk-HR34F2AJ.js → chunk-HG24EF5S.js} +16 -15
- package/dist/chunk-HPNYSY5M.js +1068 -0
- package/dist/{chunk-3VC2XJ53.js → chunk-HUMM4S5I.js} +6 -6
- package/dist/{chunk-K373N5U6.js → chunk-HVPS2YCW.js} +11 -11
- package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
- package/dist/{chunk-U7YZ3IRI.js → chunk-I57IH5X6.js} +360 -271
- package/dist/{chunk-P56N3NPT.js → chunk-I5X4WU7U.js} +6 -6
- package/dist/chunk-IAVVJ34R.js +55 -0
- package/dist/chunk-IBJE2E2S.js +51 -0
- package/dist/{chunk-EXCXNDTQ.js → chunk-IF3X6FMO.js} +1 -1
- package/dist/{chunk-GAVEIYKH.js → chunk-IJHJIL6T.js} +154 -25
- package/dist/chunk-IM435QAM.js +72 -0
- package/dist/{chunk-7NLYSTEK.js → chunk-IMBJ7WAO.js} +6 -6
- package/dist/{chunk-EM7F6XEU.js → chunk-INCFIDCB.js} +2 -2
- package/dist/{chunk-AYWJMHSX.js → chunk-IPMPLTEG.js} +3 -3
- package/dist/{chunk-PGKCRK77.js → chunk-IPSZDVLI.js} +12 -12
- package/dist/{chunk-IMTAHDME.js → chunk-IX2EOYOU.js} +50 -13
- package/dist/{chunk-QE444DZ2.js → chunk-IXNMGPF7.js} +61 -28
- package/dist/{chunk-NL6GIEJU.js → chunk-J6GO3K7G.js} +19 -18
- package/dist/chunk-JBLM6IUA.js +42 -0
- package/dist/{chunk-IWQEZFVV.js → chunk-JL2VOYSL.js} +91 -93
- package/dist/{chunk-K77ILFUQ.js → chunk-JRXFZB6J.js} +8 -8
- package/dist/{chunk-UR6JGVX2.js → chunk-JTOLBS7R.js} +988 -410
- package/dist/{chunk-GD6FXN6R.js → chunk-K73BHPTQ.js} +19 -18
- package/dist/{chunk-PYVFLITV.js → chunk-KF7KVUNJ.js} +5 -5
- package/dist/{chunk-F4WKGX7K.js → chunk-KKUCBKJE.js} +20 -19
- package/dist/{chunk-U7F6E5M3.js → chunk-KLFFHBWG.js} +27 -26
- package/dist/{chunk-ROVOAF2O.js → chunk-KMYB2XO7.js} +21 -13
- package/dist/chunk-KNYQUWFN.js +52 -0
- package/dist/{chunk-KFDOL2Y4.js → chunk-KOAJPMU2.js} +31 -20
- package/dist/chunk-KRTSE73S.js +55 -0
- package/dist/{chunk-IW3QMW3X.js → chunk-L3AM5YRP.js} +28 -9
- package/dist/{chunk-334N6EI2.js → chunk-LCIIFAID.js} +22 -21
- package/dist/{chunk-DLNQ3HUM.js → chunk-LCQIRCOT.js} +55 -10
- package/dist/{chunk-QFOJ3UPU.js → chunk-LFHBAWIM.js} +13 -13
- package/dist/chunk-LIHEMWIT.js +39 -0
- package/dist/{chunk-T5QYYB5L.js → chunk-LJLYWILK.js} +14 -14
- package/dist/{chunk-E7PR4WMM.js → chunk-LNJKDS5C.js} +26 -25
- package/dist/{chunk-HHZ2ZKUD.js → chunk-LTHY7E2P.js} +16 -15
- package/dist/{chunk-4WIVTPGE.js → chunk-LTVOQJKT.js} +7 -7
- package/dist/{chunk-TIOYZDRB.js → chunk-LZO3JABE.js} +6 -6
- package/dist/{chunk-PXMV2LLY.js → chunk-M65AZ4ZE.js} +3 -5
- package/dist/chunk-MPNTEWNY.js +492 -0
- package/dist/chunk-MQGQ3AWK.js +58 -0
- package/dist/{chunk-NQLTWGF4.js → chunk-MUXYUIBV.js} +6 -6
- package/dist/{chunk-5R3FRI6H.js → chunk-MWRRJDXQ.js} +34 -31
- package/dist/{chunk-XY6FVBBV.js → chunk-MZDHFWTN.js} +2 -2
- package/dist/chunk-N2XCT5OX.js +68 -0
- package/dist/{chunk-C5LX54QK.js → chunk-N3JGYAMD.js} +15 -15
- package/dist/{chunk-RL7PETU6.js → chunk-N5DLB74D.js} +367 -71
- package/dist/{chunk-MJMEF7SD.js → chunk-NC3Q7RIB.js} +10 -10
- package/dist/{chunk-4GWQVT2C.js → chunk-NCNLX4DL.js} +19 -18
- package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
- package/dist/{chunk-OOU4N2JQ.js → chunk-NN7K2LLN.js} +25 -24
- package/dist/{chunk-ELNIQYLR.js → chunk-NNURP7VO.js} +15 -15
- package/dist/chunk-NSQB24WR.js +56 -0
- package/dist/{chunk-MWOPED6I.js → chunk-NV5S63YK.js} +7 -7
- package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
- package/dist/{chunk-7E3G5NCH.js → chunk-NYT6QGZA.js} +22 -18
- package/dist/chunk-OB2DAIJX.js +62 -0
- package/dist/{chunk-YAUMNRCB.js → chunk-OC3OXDTG.js} +13 -8
- package/dist/{chunk-DAHKLVHU.js → chunk-OD6RNYMQ.js} +16 -16
- package/dist/{chunk-7FUQAT2R.js → chunk-OFYBRMRG.js} +6 -6
- package/dist/chunk-OGTELPDN.js +43 -0
- package/dist/{chunk-BS52P2CM.js → chunk-OQ7SBQ2Z.js} +7 -7
- package/dist/{chunk-OMSH46JK.js → chunk-OUDGBJC2.js} +16 -9
- package/dist/{chunk-USH4VU5D.js → chunk-OUGTAOGA.js} +2 -2
- package/dist/chunk-OWP5FCYM.js +60 -0
- package/dist/{chunk-YEGGQG5E.js → chunk-P36PTWBM.js} +8 -8
- package/dist/{chunk-IKRM64KR.js → chunk-P6Y2J2QY.js} +12 -12
- package/dist/{chunk-P4QTTCVK.js → chunk-PDJL2HO5.js} +24 -22
- package/dist/{chunk-WDJGJ3HV.js → chunk-PPKH6ULR.js} +152 -20
- package/dist/{chunk-5OVSDV77.js → chunk-Q4PFF2ZE.js} +8 -8
- package/dist/chunk-Q7EUPQEG.js +5 -0
- package/dist/{chunk-YRKAJ42V.js → chunk-QC6GSNIK.js} +7074 -3456
- package/dist/chunk-QCRQNYGI.js +211 -0
- package/dist/chunk-QDF533AW.js +90 -0
- package/dist/chunk-QDGNDNBG.js +50 -0
- package/dist/{chunk-2ULVUSIP.js → chunk-QGMD3PYL.js} +31 -24
- package/dist/{chunk-QEP4HTJE.js → chunk-QLT3WYTD.js} +6 -6
- package/dist/{chunk-GX67TNFA.js → chunk-QNDMAKQS.js} +11 -3
- package/dist/{chunk-XM3JE4QY.js → chunk-QNXMVJMA.js} +8 -8
- package/dist/{chunk-XP5DF5MC.js → chunk-QPAANKUR.js} +13 -12
- package/dist/{chunk-SD3PGZSR.js → chunk-QS4VX3HZ.js} +1 -1
- package/dist/{chunk-ZD64ZR64.js → chunk-QSM4K6LI.js} +7 -7
- package/dist/{chunk-Z4N7BKLN.js → chunk-QUFZDWPC.js} +8 -8
- package/dist/{chunk-ELNLHU7Y.js → chunk-QXXEOH3A.js} +18 -6
- package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
- package/dist/{chunk-TAIYQDIV.js → chunk-ROI64BAI.js} +22 -21
- package/dist/{chunk-NMGFXT4S.js → chunk-RPVL3RTX.js} +19 -18
- package/dist/{chunk-62FMA437.js → chunk-RUNHVUCW.js} +16 -15
- package/dist/{chunk-I2M7MXSV.js → chunk-RWYPLODE.js} +9 -9
- package/dist/{chunk-5K6ZKHZR.js → chunk-RZYRUXSU.js} +4 -4
- package/dist/{chunk-TVFADTAT.js → chunk-S6TLXRBR.js} +7 -7
- package/dist/{chunk-PCZ4C2V7.js → chunk-SCOP3J6X.js} +7 -7
- package/dist/{chunk-JXLUHMTC.js → chunk-SCP24MJX.js} +24 -23
- package/dist/{chunk-R6HJ4SDB.js → chunk-SF3HXNXR.js} +6 -6
- package/dist/{chunk-7F4GZ7U2.js → chunk-SFCFL7Y5.js} +1 -1
- package/dist/{chunk-5RDKQOY3.js → chunk-SHFY73RI.js} +53 -112
- package/dist/{chunk-H75SPCAW.js → chunk-SHIARIEZ.js} +20 -19
- package/dist/chunk-SMFFUFMN.js +1876 -0
- package/dist/{chunk-JQGWP3SC.js → chunk-SVOGRJO6.js} +197 -124
- package/dist/chunk-SVZAAOHJ.js +46 -0
- package/dist/{chunk-BJDVI5W6.js → chunk-SZOU32VF.js} +21 -20
- package/dist/{chunk-MXPKXCGP.js → chunk-T2MN24LZ.js} +1 -1
- package/dist/{chunk-A3AADMM2.js → chunk-TD5WWJLN.js} +6 -6
- package/dist/{chunk-SXF66YNZ.js → chunk-TFN2N227.js} +6 -6
- package/dist/{chunk-RSA5JJMN.js → chunk-TFXNOQEU.js} +28 -27
- package/dist/{chunk-BEDZNT62.js → chunk-TMETWJFO.js} +11 -11
- package/dist/chunk-TNSAIISO.js +50 -0
- package/dist/{chunk-IDTVBZQI.js → chunk-TRJO2I4S.js} +3 -3
- package/dist/{chunk-IFDCCCEN.js → chunk-TRSNIJNM.js} +7 -7
- package/dist/{chunk-GDGE7ZHC.js → chunk-U3Z2QZE3.js} +6 -6
- package/dist/{chunk-GVOQJPKA.js → chunk-U7L3ORPK.js} +22 -21
- package/dist/{chunk-5UJ7C7IH.js → chunk-UDM6HGF4.js} +6 -6
- package/dist/{chunk-Z3KEX7ON.js → chunk-UDM7LXNJ.js} +7 -7
- package/dist/chunk-UDTO3U6E.js +35 -0
- package/dist/{chunk-UVKJVTKX.js → chunk-UEUPEUZX.js} +3 -3
- package/dist/chunk-UWBODTY7.js +514 -0
- package/dist/{chunk-KGT5RIGE.js → chunk-UYYYQTPD.js} +84 -51
- package/dist/{chunk-LKRMVWXB.js → chunk-V34N6JAN.js} +32 -31
- package/dist/{chunk-RX56MZLX.js → chunk-V3Y5P7OS.js} +24 -23
- package/dist/chunk-V6MLVGTP.js +89 -0
- package/dist/chunk-VC2XHC7P.js +424 -0
- package/dist/{chunk-MM5OAVSW.js → chunk-VCYE4MUD.js} +29 -28
- package/dist/{chunk-AGAFNUYZ.js → chunk-VN2VJ6BV.js} +19 -15
- package/dist/{chunk-DBVQEPZB.js → chunk-VVLWEM2Y.js} +6 -6
- package/dist/{chunk-F56DNMDD.js → chunk-VWCNMDMZ.js} +5 -5
- package/dist/{chunk-LNGFTPU7.js → chunk-W2A4NHQD.js} +25 -24
- package/dist/{chunk-LQD3R6NZ.js → chunk-W6OY2PMB.js} +10 -10
- package/dist/{chunk-IP6TSICI.js → chunk-WC6DHBVG.js} +16 -15
- package/dist/{chunk-MELS6T5J.js → chunk-WCA3WIGG.js} +5 -5
- package/dist/{chunk-GLISHJ4G.js → chunk-WJWSB65O.js} +1602 -452
- package/dist/{chunk-77REYYY5.js → chunk-WNPGLGCJ.js} +5 -5
- package/dist/chunk-WTOVWEY3.js +67 -0
- package/dist/{chunk-WS7KBKP4.js → chunk-X5B7KYPD.js} +507 -20
- package/dist/{chunk-O6DJMDBR.js → chunk-X73WLHSN.js} +7 -7
- package/dist/{chunk-YGNQUFVZ.js → chunk-XIIT4PVT.js} +3 -3
- package/dist/{chunk-5P4PNGPL.js → chunk-XLTT5QCX.js} +28 -25
- package/dist/{chunk-NPZ4KXIV.js → chunk-XMIS25ZJ.js} +21 -20
- package/dist/{chunk-NB664KWQ.js → chunk-XPDQ4T6G.js} +27 -26
- package/dist/{chunk-EAGSM3XY.js → chunk-XRWUYOX3.js} +138 -22
- package/dist/{chunk-2VN4TLGI.js → chunk-XZY4GTCX.js} +14 -9
- package/dist/{chunk-QSKY7FE3.js → chunk-Y2TVTI4P.js} +121 -15
- package/dist/{chunk-XVQQ3BQS.js → chunk-Y2U4CSCA.js} +28 -27
- package/dist/chunk-Y2U63JKE.js +41 -0
- package/dist/{chunk-UJ535VWR.js → chunk-Y6S7VCYN.js} +6 -6
- package/dist/{chunk-SEBBJQWK.js → chunk-YAPMGK7E.js} +11 -11
- package/dist/{chunk-CNF7D3A7.js → chunk-YAPVAYZN.js} +3 -3
- package/dist/{chunk-B2U4AOZ5.js → chunk-YCBDNWX3.js} +78 -57
- package/dist/{chunk-CGVRLQAY.js → chunk-YIGSUTW2.js} +1329 -92
- package/dist/{chunk-J65TN6QU.js → chunk-YJTBE6AJ.js} +5 -5
- package/dist/chunk-YQ3IXQIH.js +185 -0
- package/dist/{chunk-ZJQ64T6M.js → chunk-YRHKEXTP.js} +11 -11
- package/dist/{chunk-MN2XDLDM.js → chunk-YSSFS3YC.js} +17 -17
- package/dist/{chunk-BPDS7KUR.js → chunk-YXG2VQJJ.js} +200 -56
- package/dist/{chunk-XC5ZDFW7.js → chunk-Z4GLFTEH.js} +8 -8
- package/dist/{chunk-7X3WLAKP.js → chunk-Z65FWO6A.js} +157 -89
- package/dist/{chunk-OW53P52N.js → chunk-ZDG637ZT.js} +22 -21
- package/dist/{chunk-BIQNPWGX.js → chunk-ZIAMPN7N.js} +6 -6
- package/dist/chunk-ZIIBQHCX.js +53 -0
- package/dist/{chunk-RFQW7XT3.js → chunk-ZJJMYPGZ.js} +57 -27
- package/dist/{chunk-Y6KPWRZJ.js → chunk-ZOAX7W5S.js} +11 -11
- package/dist/chunk-ZSSR5GGB.js +48 -0
- package/dist/files.json +655 -551
- 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 +3859 -2939
- package/dist/packages/ui/dist/assets/{elk-api-ts8TigYQ.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-2RABF6RT.js +0 -36
- package/dist/chunk-5CPZIWIN.js +0 -38
- package/dist/chunk-7YSMZEO3.js +0 -55
- package/dist/chunk-AENMOZMM.js +0 -42
- package/dist/chunk-BDKYHCGI.js +0 -71
- package/dist/chunk-BMMTWRWE.js +0 -50
- package/dist/chunk-CQRFCWQV.js +0 -45
- package/dist/chunk-CVWKS6GO.js +0 -50
- package/dist/chunk-D2CGJ7RR.js +0 -46
- package/dist/chunk-D7QIZLWB.js +0 -38
- package/dist/chunk-DM3H4V2G.js +0 -62
- package/dist/chunk-EJGUEUXG.js +0 -51
- package/dist/chunk-ELKTDXV3.js +0 -67
- package/dist/chunk-EP7ZBZLT.js +0 -170
- package/dist/chunk-EXGXCVWC.js +0 -52
- package/dist/chunk-FJS2FZFZ.js +0 -41
- package/dist/chunk-G3ZFEHCX.js +0 -925
- package/dist/chunk-GAU2IFIC.js +0 -33
- package/dist/chunk-GPOL5H3B.js +0 -55
- package/dist/chunk-HD72AL3L.js +0 -43
- package/dist/chunk-K4C2DWOZ.js +0 -232
- package/dist/chunk-KY3BUZYI.js +0 -54
- package/dist/chunk-LMNCRSER.js +0 -257
- package/dist/chunk-LPXH2DA4.js +0 -40
- package/dist/chunk-MLUHBVCI.js +0 -45
- package/dist/chunk-ONB7M2AF.js +0 -52
- package/dist/chunk-QBK33722.js +0 -51
- package/dist/chunk-S7I7SLZN.js +0 -59
- package/dist/chunk-UCQB6NKS.js +0 -192
- package/dist/chunk-UKMA5JFE.js +0 -52
- package/dist/chunk-X7QLAUNS.js +0 -47
- package/dist/packages/ui/dist/assets/index-CIfmX7DJ.css +0 -1
- package/dist/packages/ui/dist/assets/index-DNtpSfZS.js +0 -63
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
changesDirOf,
|
|
8
8
|
orgPackDirOf,
|
|
9
9
|
toCanonicalYaml
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WJWSB65O.js";
|
|
11
11
|
import {
|
|
12
12
|
renameRetrying
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-SMFFUFMN.js";
|
|
14
14
|
import {
|
|
15
15
|
ManualStep,
|
|
16
16
|
external_exports
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-A3LVMCA5.js";
|
|
18
18
|
import {
|
|
19
19
|
require_dist
|
|
20
20
|
} from "./chunk-BQGDB6ZL.js";
|
|
@@ -22,6 +22,150 @@ import {
|
|
|
22
22
|
__toESM
|
|
23
23
|
} from "./chunk-TV45EUGM.js";
|
|
24
24
|
|
|
25
|
+
// packages/adapters/dist/common.js
|
|
26
|
+
var Approval = external_exports.strictObject({
|
|
27
|
+
/** The person who approved: a handle from the Git host or directory. */
|
|
28
|
+
by: external_exports.string().min(1),
|
|
29
|
+
at: external_exports.iso.datetime({ offset: true }),
|
|
30
|
+
scope: external_exports.enum(["once", "standing"]).default("once"),
|
|
31
|
+
/** What was approved, e.g. a finding, hand-off PR or artifact path. */
|
|
32
|
+
ref: external_exports.string().min(1)
|
|
33
|
+
});
|
|
34
|
+
var AdapterError = class extends Error {
|
|
35
|
+
adapter;
|
|
36
|
+
code;
|
|
37
|
+
retryable;
|
|
38
|
+
constructor(adapter, code, message, retryable = code === "rate-limited" || code === "unavailable") {
|
|
39
|
+
super(`${adapter}: ${message}`);
|
|
40
|
+
this.adapter = adapter;
|
|
41
|
+
this.code = code;
|
|
42
|
+
this.retryable = retryable;
|
|
43
|
+
this.name = "AdapterError";
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
function requireApproval(adapter, approval, opts = {}) {
|
|
47
|
+
const r = Approval.safeParse(approval);
|
|
48
|
+
if (!r.success) {
|
|
49
|
+
throw new AdapterError(adapter, "not-approved", "this write needs a person's approval (by, at, ref)");
|
|
50
|
+
}
|
|
51
|
+
if (r.data.scope === "standing" && !opts.allowStanding) {
|
|
52
|
+
throw new AdapterError(adapter, "not-approved", "a standing approval can't cover this write; it needs approval each time");
|
|
53
|
+
}
|
|
54
|
+
return r.data;
|
|
55
|
+
}
|
|
56
|
+
var MockBase = class {
|
|
57
|
+
name;
|
|
58
|
+
journal = [];
|
|
59
|
+
failures = [];
|
|
60
|
+
constructor(name) {
|
|
61
|
+
this.name = name;
|
|
62
|
+
}
|
|
63
|
+
failNext(code, method) {
|
|
64
|
+
this.failures.push(method === void 0 ? { code } : { code, method });
|
|
65
|
+
}
|
|
66
|
+
/** Record a call and raise an injected failure if one is due. */
|
|
67
|
+
call(method, args, approval) {
|
|
68
|
+
const i = this.failures.findIndex((f) => f.method === void 0 || f.method === method);
|
|
69
|
+
if (i !== -1) {
|
|
70
|
+
const [f] = this.failures.splice(i, 1);
|
|
71
|
+
throw new AdapterError(this.name, f.code, `injected ${f.code} on ${method}`);
|
|
72
|
+
}
|
|
73
|
+
this.journal.push(approval ? { adapter: this.name, method, args, approval } : { adapter: this.name, method, args });
|
|
74
|
+
}
|
|
75
|
+
notFound(what) {
|
|
76
|
+
throw new AdapterError(this.name, "not-found", `${what} not found`);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// packages/adapters/dist/work-tracker.js
|
|
81
|
+
var MockWorkTracker = class _MockWorkTracker extends MockBase {
|
|
82
|
+
items = /* @__PURE__ */ new Map();
|
|
83
|
+
links = [];
|
|
84
|
+
next = 1e3;
|
|
85
|
+
constructor(seed = []) {
|
|
86
|
+
super("work-tracker");
|
|
87
|
+
for (const i of seed)
|
|
88
|
+
this.items.set(i.id, { ...i });
|
|
89
|
+
}
|
|
90
|
+
/** Load the shape the fixture's ticket export uses. */
|
|
91
|
+
static fromExport(rows) {
|
|
92
|
+
const type = (t) => {
|
|
93
|
+
const k = t.toLowerCase();
|
|
94
|
+
if (k.includes("story"))
|
|
95
|
+
return "story";
|
|
96
|
+
if (k.includes("epic"))
|
|
97
|
+
return "epic";
|
|
98
|
+
if (k.includes("feature"))
|
|
99
|
+
return "feature";
|
|
100
|
+
if (k.includes("bug"))
|
|
101
|
+
return "bug";
|
|
102
|
+
return "task";
|
|
103
|
+
};
|
|
104
|
+
return new _MockWorkTracker(rows.map((r) => ({
|
|
105
|
+
id: String(r.id),
|
|
106
|
+
type: type(r.type),
|
|
107
|
+
title: r.title,
|
|
108
|
+
description: r.description ?? "",
|
|
109
|
+
acceptanceCriteria: r.acceptanceCriteria ?? "",
|
|
110
|
+
state: r.state ?? "New",
|
|
111
|
+
tags: [],
|
|
112
|
+
url: `https://work.example.com/items/${r.id}`
|
|
113
|
+
})));
|
|
114
|
+
}
|
|
115
|
+
async getItem(id) {
|
|
116
|
+
this.call("getItem", [id]);
|
|
117
|
+
return { ...this.items.get(id) ?? this.notFound(`work item ${id}`) };
|
|
118
|
+
}
|
|
119
|
+
async query(q) {
|
|
120
|
+
this.call("query", [q]);
|
|
121
|
+
const text = q.text?.toLowerCase();
|
|
122
|
+
return [...this.items.values()].filter((i) => (!q.type || i.type === q.type) && (!q.parent || i.parent === q.parent) && (!q.state || i.state === q.state) && (!q.tag || i.tags.includes(q.tag)) && (!text || i.title.toLowerCase().includes(text) || i.description.toLowerCase().includes(text))).map((i) => ({ ...i }));
|
|
123
|
+
}
|
|
124
|
+
async createItem(input, approval) {
|
|
125
|
+
const a = requireApproval(this.name, approval);
|
|
126
|
+
this.call("createItem", [input], a);
|
|
127
|
+
if (input.parent && !this.items.has(input.parent))
|
|
128
|
+
this.notFound(`parent ${input.parent}`);
|
|
129
|
+
const id = String(this.next++);
|
|
130
|
+
const item = {
|
|
131
|
+
id,
|
|
132
|
+
type: input.type,
|
|
133
|
+
title: input.title,
|
|
134
|
+
description: input.description ?? "",
|
|
135
|
+
acceptanceCriteria: input.acceptanceCriteria ?? "",
|
|
136
|
+
state: "New",
|
|
137
|
+
...input.parent ? { parent: input.parent } : {},
|
|
138
|
+
...input.assignee ? { assignee: input.assignee } : {},
|
|
139
|
+
tags: input.tags ?? [],
|
|
140
|
+
url: `https://work.example.com/items/${id}`
|
|
141
|
+
};
|
|
142
|
+
this.items.set(id, item);
|
|
143
|
+
return { ...item };
|
|
144
|
+
}
|
|
145
|
+
async updateItem(id, patch, approval) {
|
|
146
|
+
const a = requireApproval(this.name, approval);
|
|
147
|
+
this.call("updateItem", [id, patch], a);
|
|
148
|
+
const item = this.items.get(id) ?? this.notFound(`work item ${id}`);
|
|
149
|
+
const updated = {
|
|
150
|
+
...item,
|
|
151
|
+
...Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== void 0))
|
|
152
|
+
};
|
|
153
|
+
this.items.set(id, updated);
|
|
154
|
+
return { ...updated };
|
|
155
|
+
}
|
|
156
|
+
async link(from, to, kind, approval) {
|
|
157
|
+
const a = requireApproval(this.name, approval);
|
|
158
|
+
this.call("link", [from, to, kind], a);
|
|
159
|
+
if (!this.items.has(from))
|
|
160
|
+
this.notFound(`work item ${from}`);
|
|
161
|
+
if (!this.items.has(to))
|
|
162
|
+
this.notFound(`work item ${to}`);
|
|
163
|
+
this.links.push({ from, to, kind });
|
|
164
|
+
if (kind === "parent")
|
|
165
|
+
this.items.get(from).parent = to;
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
|
|
25
169
|
// packages/adapters/dist/work-item-csv.js
|
|
26
170
|
var ADO_COLUMNS = [
|
|
27
171
|
"ID",
|
|
@@ -124,58 +268,62 @@ function workItemsCsv(stories, o = {}) {
|
|
|
124
268
|
`).join("");
|
|
125
269
|
}
|
|
126
270
|
|
|
127
|
-
// packages/adapters/dist/
|
|
128
|
-
var
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
var AdapterError = class extends Error {
|
|
137
|
-
adapter;
|
|
138
|
-
code;
|
|
139
|
-
retryable;
|
|
140
|
-
constructor(adapter, code, message, retryable = code === "rate-limited" || code === "unavailable") {
|
|
141
|
-
super(`${adapter}: ${message}`);
|
|
142
|
-
this.adapter = adapter;
|
|
143
|
-
this.code = code;
|
|
144
|
-
this.retryable = retryable;
|
|
145
|
-
this.name = "AdapterError";
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
function requireApproval(adapter, approval, opts = {}) {
|
|
149
|
-
const r = Approval.safeParse(approval);
|
|
150
|
-
if (!r.success) {
|
|
151
|
-
throw new AdapterError(adapter, "not-approved", "this write needs a person's approval (by, at, ref)");
|
|
271
|
+
// packages/adapters/dist/service-desk.js
|
|
272
|
+
var MockServiceDesk = class _MockServiceDesk extends MockBase {
|
|
273
|
+
requests = /* @__PURE__ */ new Map();
|
|
274
|
+
next = 1;
|
|
275
|
+
constructor(seed = []) {
|
|
276
|
+
super("service-desk");
|
|
277
|
+
for (const r of seed)
|
|
278
|
+
this.requests.set(r.id, { ...r });
|
|
279
|
+
this.next = seed.length + 1;
|
|
152
280
|
}
|
|
153
|
-
|
|
154
|
-
|
|
281
|
+
/** Load the shape the fixture's closed-requests export uses. */
|
|
282
|
+
static fromExport(rows) {
|
|
283
|
+
return new _MockServiceDesk(rows.map((r) => ({
|
|
284
|
+
id: r.number,
|
|
285
|
+
type: r.type,
|
|
286
|
+
state: r.closed ? "done" : "submitted",
|
|
287
|
+
fields: r.fields,
|
|
288
|
+
...r.approvalGroup ? { approvalGroup: r.approvalGroup } : {},
|
|
289
|
+
...r.opened ? { openedAt: r.opened } : {},
|
|
290
|
+
...r.closed ? { closedAt: r.closed } : {},
|
|
291
|
+
url: `https://desk.example.com/requests/${r.number}`
|
|
292
|
+
})));
|
|
155
293
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
name;
|
|
160
|
-
journal = [];
|
|
161
|
-
failures = [];
|
|
162
|
-
constructor(name) {
|
|
163
|
-
this.name = name;
|
|
294
|
+
async getRequest(id) {
|
|
295
|
+
this.call("getRequest", [id]);
|
|
296
|
+
return { ...this.requests.get(id) ?? this.notFound(`request ${id}`) };
|
|
164
297
|
}
|
|
165
|
-
|
|
166
|
-
this.
|
|
298
|
+
async listRequests(q) {
|
|
299
|
+
this.call("listRequests", [q]);
|
|
300
|
+
return [...this.requests.values()].filter((r) => (!q.changeId || r.changeId === q.changeId) && (!q.state || r.state === q.state) && (!q.type || r.type === q.type)).map((r) => ({ ...r }));
|
|
167
301
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
throw new AdapterError(this.name,
|
|
174
|
-
}
|
|
175
|
-
|
|
302
|
+
async submitRequest(draft, approval) {
|
|
303
|
+
const a = requireApproval(this.name, approval);
|
|
304
|
+
this.call("submitRequest", [draft], a);
|
|
305
|
+
const empty = Object.entries(draft.fields).filter(([, v]) => v === "").map(([k]) => k);
|
|
306
|
+
if (empty.length > 0)
|
|
307
|
+
throw new AdapterError(this.name, "invalid", `required fields are empty: ${empty.join(", ")}`);
|
|
308
|
+
const id = `SR-${String(this.next++).padStart(4, "0")}`;
|
|
309
|
+
const r = {
|
|
310
|
+
id,
|
|
311
|
+
type: draft.type,
|
|
312
|
+
state: "submitted",
|
|
313
|
+
fields: { ...draft.fields },
|
|
314
|
+
changeId: draft.changeId,
|
|
315
|
+
openedAt: a.at.slice(0, 10),
|
|
316
|
+
url: `https://desk.example.com/requests/${id}`
|
|
317
|
+
};
|
|
318
|
+
this.requests.set(id, r);
|
|
319
|
+
return { ...r };
|
|
176
320
|
}
|
|
177
|
-
|
|
178
|
-
|
|
321
|
+
/** Test helper: move a request along as the service desk would. */
|
|
322
|
+
setState(id, state, closedAt) {
|
|
323
|
+
const r = this.requests.get(id) ?? this.notFound(`request ${id}`);
|
|
324
|
+
r.state = state;
|
|
325
|
+
if (closedAt)
|
|
326
|
+
r.closedAt = closedAt;
|
|
179
327
|
}
|
|
180
328
|
};
|
|
181
329
|
|
|
@@ -297,13 +445,79 @@ var MockGitHost = class extends MockBase {
|
|
|
297
445
|
requireReviewers(repo, number, reviewers) {
|
|
298
446
|
(this.prs.get(this.key(repo, number)) ?? this.notFound(`PR ${repo}#${number}`)).requiredReviewers = reviewers;
|
|
299
447
|
}
|
|
300
|
-
markReady(repo, number) {
|
|
301
|
-
const pr = this.prs.get(this.key(repo, number)) ?? this.notFound(`PR ${repo}#${number}`);
|
|
302
|
-
if (pr.state === "draft")
|
|
303
|
-
pr.state = "open";
|
|
448
|
+
markReady(repo, number) {
|
|
449
|
+
const pr = this.prs.get(this.key(repo, number)) ?? this.notFound(`PR ${repo}#${number}`);
|
|
450
|
+
if (pr.state === "draft")
|
|
451
|
+
pr.state = "open";
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
// packages/adapters/dist/read-only.js
|
|
456
|
+
var MockWiki = class extends MockBase {
|
|
457
|
+
pages = /* @__PURE__ */ new Map();
|
|
458
|
+
constructor(seed = []) {
|
|
459
|
+
super("wiki");
|
|
460
|
+
for (const p2 of seed)
|
|
461
|
+
this.pages.set(p2.id, { ...p2 });
|
|
462
|
+
}
|
|
463
|
+
head = ({ body: _b, ...rest }) => rest;
|
|
464
|
+
async listPages(space) {
|
|
465
|
+
this.call("listPages", [space]);
|
|
466
|
+
return [...this.pages.values()].filter((p2) => p2.space === space).map(this.head);
|
|
467
|
+
}
|
|
468
|
+
async getPage(id) {
|
|
469
|
+
this.call("getPage", [id]);
|
|
470
|
+
return { ...this.pages.get(id) ?? this.notFound(`page ${id}`) };
|
|
471
|
+
}
|
|
472
|
+
async search(text) {
|
|
473
|
+
this.call("search", [text]);
|
|
474
|
+
const t = text.toLowerCase();
|
|
475
|
+
return [...this.pages.values()].filter((p2) => p2.title.toLowerCase().includes(t) || p2.body.toLowerCase().includes(t)).map(this.head);
|
|
476
|
+
}
|
|
477
|
+
};
|
|
478
|
+
var MockDesignTool = class extends MockBase {
|
|
479
|
+
files = /* @__PURE__ */ new Map();
|
|
480
|
+
constructor(seed = []) {
|
|
481
|
+
super("design-tool");
|
|
482
|
+
for (const f of seed)
|
|
483
|
+
this.files.set(f.key, structuredClone(f));
|
|
484
|
+
}
|
|
485
|
+
async getFile(key) {
|
|
486
|
+
this.call("getFile", [key]);
|
|
487
|
+
return structuredClone(this.files.get(key) ?? this.notFound(`design file ${key}`));
|
|
488
|
+
}
|
|
489
|
+
async renderFrame(key, frameId) {
|
|
490
|
+
this.call("renderFrame", [key, frameId]);
|
|
491
|
+
const file = this.files.get(key) ?? this.notFound(`design file ${key}`);
|
|
492
|
+
if (!file.pages.some((p2) => p2.frames.some((f) => f.id === frameId)))
|
|
493
|
+
this.notFound(`frame ${frameId}`);
|
|
494
|
+
return new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]);
|
|
495
|
+
}
|
|
496
|
+
};
|
|
497
|
+
var MockNotifier = class extends MockBase {
|
|
498
|
+
channels;
|
|
499
|
+
sent = [];
|
|
500
|
+
constructor(channels = []) {
|
|
501
|
+
super("notify");
|
|
502
|
+
this.channels = channels;
|
|
503
|
+
}
|
|
504
|
+
async send(n, approval) {
|
|
505
|
+
const a = requireApproval(this.name, approval, { allowStanding: true });
|
|
506
|
+
this.call("send", [n], a);
|
|
507
|
+
if (this.channels.length > 0 && !this.channels.includes(n.channel)) {
|
|
508
|
+
throw new AdapterError(this.name, "invalid", `unknown channel ${n.channel}`);
|
|
509
|
+
}
|
|
510
|
+
const id = `msg-${this.sent.length + 1}`;
|
|
511
|
+
this.sent.push({ ...n, id });
|
|
512
|
+
return { id };
|
|
304
513
|
}
|
|
305
514
|
};
|
|
306
515
|
|
|
516
|
+
// packages/adapters/dist/manual/git-host.js
|
|
517
|
+
var import_yaml2 = __toESM(require_dist(), 1);
|
|
518
|
+
import { readdir as readdir2, readFile as readFile2 } from "node:fs/promises";
|
|
519
|
+
import { join as join2 } from "node:path";
|
|
520
|
+
|
|
307
521
|
// packages/adapters/dist/manual/steps.js
|
|
308
522
|
var import_yaml = __toESM(require_dist(), 1);
|
|
309
523
|
import { createHash } from "node:crypto";
|
|
@@ -353,6 +567,35 @@ function uniqueId(slug, taken) {
|
|
|
353
567
|
if (!taken.has(`${base}-${n}`))
|
|
354
568
|
return `${base}-${n}`;
|
|
355
569
|
}
|
|
570
|
+
function memoryStepStore(seed = []) {
|
|
571
|
+
const steps = new Map(seed.map((s) => [s.id, ManualStep.parse(s)]));
|
|
572
|
+
return {
|
|
573
|
+
async create(step) {
|
|
574
|
+
const found = [...steps.values()].find((s2) => s2.key === step.key);
|
|
575
|
+
if (found)
|
|
576
|
+
return structuredClone(found);
|
|
577
|
+
const s = build(step, uniqueId(step.slug, new Set(steps.keys())));
|
|
578
|
+
steps.set(s.id, s);
|
|
579
|
+
return structuredClone(s);
|
|
580
|
+
},
|
|
581
|
+
async get(id) {
|
|
582
|
+
const s = steps.get(id);
|
|
583
|
+
return s ? structuredClone(s) : void 0;
|
|
584
|
+
},
|
|
585
|
+
async byKey(key) {
|
|
586
|
+
const s = [...steps.values()].find((x) => x.key === key);
|
|
587
|
+
return s ? structuredClone(s) : void 0;
|
|
588
|
+
},
|
|
589
|
+
async list(filter) {
|
|
590
|
+
return [...steps.values()].filter((s) => matches(s, filter)).sort(byCreated).map((s) => structuredClone(s));
|
|
591
|
+
},
|
|
592
|
+
async save(step) {
|
|
593
|
+
const s = ManualStep.parse(step);
|
|
594
|
+
steps.set(s.id, s);
|
|
595
|
+
return structuredClone(s);
|
|
596
|
+
}
|
|
597
|
+
};
|
|
598
|
+
}
|
|
356
599
|
async function writeAtomic(path, text) {
|
|
357
600
|
await mkdir(dirname(path), { recursive: true });
|
|
358
601
|
const tmp = `${path}.tmp`;
|
|
@@ -644,11 +887,6 @@ function exportStep(step, format) {
|
|
|
644
887
|
};
|
|
645
888
|
}
|
|
646
889
|
|
|
647
|
-
// packages/adapters/dist/manual/git-host.js
|
|
648
|
-
var import_yaml2 = __toESM(require_dist(), 1);
|
|
649
|
-
import { readdir as readdir2, readFile as readFile2 } from "node:fs/promises";
|
|
650
|
-
import { join as join2 } from "node:path";
|
|
651
|
-
|
|
652
890
|
// packages/adapters/dist/manual/base.js
|
|
653
891
|
var nowIso2 = () => (/* @__PURE__ */ new Date()).toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
654
892
|
var PROVISIONAL = "manual:";
|
|
@@ -1077,6 +1315,7 @@ var ManualGitHost = class extends ManualBase {
|
|
|
1077
1315
|
// packages/adapters/dist/manual/read-only.js
|
|
1078
1316
|
import { readdir as readdir3, readFile as readFile3, stat as stat2 } from "node:fs/promises";
|
|
1079
1317
|
import { isAbsolute, join as join3, relative, sep } from "node:path";
|
|
1318
|
+
var OWNER_ASK = "owner-ask:";
|
|
1080
1319
|
function folder(opts, value, fallback) {
|
|
1081
1320
|
const v = value ?? fallback;
|
|
1082
1321
|
return isAbsolute(v) ? v : join3(opts.root ?? ".", v);
|
|
@@ -1170,9 +1409,7 @@ var ManualNotifier = class extends ManualBase {
|
|
|
1170
1409
|
const step = await this.step("send", {
|
|
1171
1410
|
slug: `message-${n.channel}`,
|
|
1172
1411
|
action: "send-notification",
|
|
1173
|
-
key:
|
|
1174
|
-
${n.body}
|
|
1175
|
-
${n.link ?? ""}`)}`,
|
|
1412
|
+
key: await this.keyOf(n, a.ref),
|
|
1176
1413
|
title: `Send "${n.title}" to ${n.channel}`,
|
|
1177
1414
|
where: `Messages: ${n.channel}`,
|
|
1178
1415
|
inputs: { channel: n.channel },
|
|
@@ -1187,6 +1424,25 @@ ${n.link ?? ""}`)}`,
|
|
|
1187
1424
|
}, a);
|
|
1188
1425
|
return { id: provisionalId(step.id) };
|
|
1189
1426
|
}
|
|
1427
|
+
/**
|
|
1428
|
+
* One step per message, by channel, title and body; for an owner question (the approval's ref
|
|
1429
|
+
* is `owner-ask:<id>`), one per question, whoever sends it and whatever its "reply to" says.
|
|
1430
|
+
* Beta.27 final fixes: a question's step is reused only while it is open; once done or skipped,
|
|
1431
|
+
* asking again is a new step, keyed after the closed one (`…@<closed step id>`).
|
|
1432
|
+
*/
|
|
1433
|
+
async keyOf(n, ref) {
|
|
1434
|
+
if (!ref.startsWith(OWNER_ASK))
|
|
1435
|
+
return `notify|${n.channel}|${shortHash(`${n.title}
|
|
1436
|
+
${n.body}
|
|
1437
|
+
${n.link ?? ""}`)}`;
|
|
1438
|
+
let key = `notify|${ref}`;
|
|
1439
|
+
for (; ; ) {
|
|
1440
|
+
const found = await this.opts.store.byKey(key);
|
|
1441
|
+
if (!found || found.state === "open")
|
|
1442
|
+
return key;
|
|
1443
|
+
key = `${key}@${found.id}`;
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1190
1446
|
};
|
|
1191
1447
|
|
|
1192
1448
|
// packages/adapters/dist/manual/service-desk.js
|
|
@@ -1581,215 +1837,16 @@ function withManualFallback(kind, live, manual, onFallback) {
|
|
|
1581
1837
|
}
|
|
1582
1838
|
});
|
|
1583
1839
|
}
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
}
|
|
1593
|
-
|
|
1594
|
-
async listPages(space) {
|
|
1595
|
-
this.call("listPages", [space]);
|
|
1596
|
-
return [...this.pages.values()].filter((p2) => p2.space === space).map(this.head);
|
|
1597
|
-
}
|
|
1598
|
-
async getPage(id) {
|
|
1599
|
-
this.call("getPage", [id]);
|
|
1600
|
-
return { ...this.pages.get(id) ?? this.notFound(`page ${id}`) };
|
|
1601
|
-
}
|
|
1602
|
-
async search(text) {
|
|
1603
|
-
this.call("search", [text]);
|
|
1604
|
-
const t = text.toLowerCase();
|
|
1605
|
-
return [...this.pages.values()].filter((p2) => p2.title.toLowerCase().includes(t) || p2.body.toLowerCase().includes(t)).map(this.head);
|
|
1606
|
-
}
|
|
1607
|
-
};
|
|
1608
|
-
var MockDesignTool = class extends MockBase {
|
|
1609
|
-
files = /* @__PURE__ */ new Map();
|
|
1610
|
-
constructor(seed = []) {
|
|
1611
|
-
super("design-tool");
|
|
1612
|
-
for (const f of seed)
|
|
1613
|
-
this.files.set(f.key, structuredClone(f));
|
|
1614
|
-
}
|
|
1615
|
-
async getFile(key) {
|
|
1616
|
-
this.call("getFile", [key]);
|
|
1617
|
-
return structuredClone(this.files.get(key) ?? this.notFound(`design file ${key}`));
|
|
1618
|
-
}
|
|
1619
|
-
async renderFrame(key, frameId) {
|
|
1620
|
-
this.call("renderFrame", [key, frameId]);
|
|
1621
|
-
const file = this.files.get(key) ?? this.notFound(`design file ${key}`);
|
|
1622
|
-
if (!file.pages.some((p2) => p2.frames.some((f) => f.id === frameId)))
|
|
1623
|
-
this.notFound(`frame ${frameId}`);
|
|
1624
|
-
return new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]);
|
|
1625
|
-
}
|
|
1626
|
-
};
|
|
1627
|
-
var MockNotifier = class extends MockBase {
|
|
1628
|
-
channels;
|
|
1629
|
-
sent = [];
|
|
1630
|
-
constructor(channels = []) {
|
|
1631
|
-
super("notify");
|
|
1632
|
-
this.channels = channels;
|
|
1633
|
-
}
|
|
1634
|
-
async send(n, approval) {
|
|
1635
|
-
const a = requireApproval(this.name, approval, { allowStanding: true });
|
|
1636
|
-
this.call("send", [n], a);
|
|
1637
|
-
if (this.channels.length > 0 && !this.channels.includes(n.channel)) {
|
|
1638
|
-
throw new AdapterError(this.name, "invalid", `unknown channel ${n.channel}`);
|
|
1639
|
-
}
|
|
1640
|
-
const id = `msg-${this.sent.length + 1}`;
|
|
1641
|
-
this.sent.push({ ...n, id });
|
|
1642
|
-
return { id };
|
|
1643
|
-
}
|
|
1644
|
-
};
|
|
1645
|
-
|
|
1646
|
-
// packages/adapters/dist/service-desk.js
|
|
1647
|
-
var MockServiceDesk = class _MockServiceDesk extends MockBase {
|
|
1648
|
-
requests = /* @__PURE__ */ new Map();
|
|
1649
|
-
next = 1;
|
|
1650
|
-
constructor(seed = []) {
|
|
1651
|
-
super("service-desk");
|
|
1652
|
-
for (const r of seed)
|
|
1653
|
-
this.requests.set(r.id, { ...r });
|
|
1654
|
-
this.next = seed.length + 1;
|
|
1655
|
-
}
|
|
1656
|
-
/** Load the shape the fixture's closed-requests export uses. */
|
|
1657
|
-
static fromExport(rows) {
|
|
1658
|
-
return new _MockServiceDesk(rows.map((r) => ({
|
|
1659
|
-
id: r.number,
|
|
1660
|
-
type: r.type,
|
|
1661
|
-
state: r.closed ? "done" : "submitted",
|
|
1662
|
-
fields: r.fields,
|
|
1663
|
-
...r.approvalGroup ? { approvalGroup: r.approvalGroup } : {},
|
|
1664
|
-
...r.opened ? { openedAt: r.opened } : {},
|
|
1665
|
-
...r.closed ? { closedAt: r.closed } : {},
|
|
1666
|
-
url: `https://desk.example.com/requests/${r.number}`
|
|
1667
|
-
})));
|
|
1668
|
-
}
|
|
1669
|
-
async getRequest(id) {
|
|
1670
|
-
this.call("getRequest", [id]);
|
|
1671
|
-
return { ...this.requests.get(id) ?? this.notFound(`request ${id}`) };
|
|
1672
|
-
}
|
|
1673
|
-
async listRequests(q) {
|
|
1674
|
-
this.call("listRequests", [q]);
|
|
1675
|
-
return [...this.requests.values()].filter((r) => (!q.changeId || r.changeId === q.changeId) && (!q.state || r.state === q.state) && (!q.type || r.type === q.type)).map((r) => ({ ...r }));
|
|
1676
|
-
}
|
|
1677
|
-
async submitRequest(draft, approval) {
|
|
1678
|
-
const a = requireApproval(this.name, approval);
|
|
1679
|
-
this.call("submitRequest", [draft], a);
|
|
1680
|
-
const empty = Object.entries(draft.fields).filter(([, v]) => v === "").map(([k]) => k);
|
|
1681
|
-
if (empty.length > 0)
|
|
1682
|
-
throw new AdapterError(this.name, "invalid", `required fields are empty: ${empty.join(", ")}`);
|
|
1683
|
-
const id = `SR-${String(this.next++).padStart(4, "0")}`;
|
|
1684
|
-
const r = {
|
|
1685
|
-
id,
|
|
1686
|
-
type: draft.type,
|
|
1687
|
-
state: "submitted",
|
|
1688
|
-
fields: { ...draft.fields },
|
|
1689
|
-
changeId: draft.changeId,
|
|
1690
|
-
openedAt: a.at.slice(0, 10),
|
|
1691
|
-
url: `https://desk.example.com/requests/${id}`
|
|
1692
|
-
};
|
|
1693
|
-
this.requests.set(id, r);
|
|
1694
|
-
return { ...r };
|
|
1695
|
-
}
|
|
1696
|
-
/** Test helper: move a request along as the service desk would. */
|
|
1697
|
-
setState(id, state, closedAt) {
|
|
1698
|
-
const r = this.requests.get(id) ?? this.notFound(`request ${id}`);
|
|
1699
|
-
r.state = state;
|
|
1700
|
-
if (closedAt)
|
|
1701
|
-
r.closedAt = closedAt;
|
|
1702
|
-
}
|
|
1703
|
-
};
|
|
1704
|
-
|
|
1705
|
-
// packages/adapters/dist/work-tracker.js
|
|
1706
|
-
var MockWorkTracker = class _MockWorkTracker extends MockBase {
|
|
1707
|
-
items = /* @__PURE__ */ new Map();
|
|
1708
|
-
links = [];
|
|
1709
|
-
next = 1e3;
|
|
1710
|
-
constructor(seed = []) {
|
|
1711
|
-
super("work-tracker");
|
|
1712
|
-
for (const i of seed)
|
|
1713
|
-
this.items.set(i.id, { ...i });
|
|
1714
|
-
}
|
|
1715
|
-
/** Load the shape the fixture's ticket export uses. */
|
|
1716
|
-
static fromExport(rows) {
|
|
1717
|
-
const type = (t) => {
|
|
1718
|
-
const k = t.toLowerCase();
|
|
1719
|
-
if (k.includes("story"))
|
|
1720
|
-
return "story";
|
|
1721
|
-
if (k.includes("epic"))
|
|
1722
|
-
return "epic";
|
|
1723
|
-
if (k.includes("feature"))
|
|
1724
|
-
return "feature";
|
|
1725
|
-
if (k.includes("bug"))
|
|
1726
|
-
return "bug";
|
|
1727
|
-
return "task";
|
|
1728
|
-
};
|
|
1729
|
-
return new _MockWorkTracker(rows.map((r) => ({
|
|
1730
|
-
id: String(r.id),
|
|
1731
|
-
type: type(r.type),
|
|
1732
|
-
title: r.title,
|
|
1733
|
-
description: r.description ?? "",
|
|
1734
|
-
acceptanceCriteria: r.acceptanceCriteria ?? "",
|
|
1735
|
-
state: r.state ?? "New",
|
|
1736
|
-
tags: [],
|
|
1737
|
-
url: `https://work.example.com/items/${r.id}`
|
|
1738
|
-
})));
|
|
1739
|
-
}
|
|
1740
|
-
async getItem(id) {
|
|
1741
|
-
this.call("getItem", [id]);
|
|
1742
|
-
return { ...this.items.get(id) ?? this.notFound(`work item ${id}`) };
|
|
1743
|
-
}
|
|
1744
|
-
async query(q) {
|
|
1745
|
-
this.call("query", [q]);
|
|
1746
|
-
const text = q.text?.toLowerCase();
|
|
1747
|
-
return [...this.items.values()].filter((i) => (!q.type || i.type === q.type) && (!q.parent || i.parent === q.parent) && (!q.state || i.state === q.state) && (!q.tag || i.tags.includes(q.tag)) && (!text || i.title.toLowerCase().includes(text) || i.description.toLowerCase().includes(text))).map((i) => ({ ...i }));
|
|
1748
|
-
}
|
|
1749
|
-
async createItem(input, approval) {
|
|
1750
|
-
const a = requireApproval(this.name, approval);
|
|
1751
|
-
this.call("createItem", [input], a);
|
|
1752
|
-
if (input.parent && !this.items.has(input.parent))
|
|
1753
|
-
this.notFound(`parent ${input.parent}`);
|
|
1754
|
-
const id = String(this.next++);
|
|
1755
|
-
const item = {
|
|
1756
|
-
id,
|
|
1757
|
-
type: input.type,
|
|
1758
|
-
title: input.title,
|
|
1759
|
-
description: input.description ?? "",
|
|
1760
|
-
acceptanceCriteria: input.acceptanceCriteria ?? "",
|
|
1761
|
-
state: "New",
|
|
1762
|
-
...input.parent ? { parent: input.parent } : {},
|
|
1763
|
-
...input.assignee ? { assignee: input.assignee } : {},
|
|
1764
|
-
tags: input.tags ?? [],
|
|
1765
|
-
url: `https://work.example.com/items/${id}`
|
|
1766
|
-
};
|
|
1767
|
-
this.items.set(id, item);
|
|
1768
|
-
return { ...item };
|
|
1769
|
-
}
|
|
1770
|
-
async updateItem(id, patch, approval) {
|
|
1771
|
-
const a = requireApproval(this.name, approval);
|
|
1772
|
-
this.call("updateItem", [id, patch], a);
|
|
1773
|
-
const item = this.items.get(id) ?? this.notFound(`work item ${id}`);
|
|
1774
|
-
const updated = {
|
|
1775
|
-
...item,
|
|
1776
|
-
...Object.fromEntries(Object.entries(patch).filter(([, v]) => v !== void 0))
|
|
1777
|
-
};
|
|
1778
|
-
this.items.set(id, updated);
|
|
1779
|
-
return { ...updated };
|
|
1780
|
-
}
|
|
1781
|
-
async link(from, to, kind, approval) {
|
|
1782
|
-
const a = requireApproval(this.name, approval);
|
|
1783
|
-
this.call("link", [from, to, kind], a);
|
|
1784
|
-
if (!this.items.has(from))
|
|
1785
|
-
this.notFound(`work item ${from}`);
|
|
1786
|
-
if (!this.items.has(to))
|
|
1787
|
-
this.notFound(`work item ${to}`);
|
|
1788
|
-
this.links.push({ from, to, kind });
|
|
1789
|
-
if (kind === "parent")
|
|
1790
|
-
this.items.get(from).parent = to;
|
|
1791
|
-
}
|
|
1792
|
-
};
|
|
1840
|
+
function allManual(ctx, settings = {}) {
|
|
1841
|
+
return {
|
|
1842
|
+
workTracker: manualAdapter("workTracker", ctx, settings.workTracker),
|
|
1843
|
+
serviceDesk: manualAdapter("serviceDesk", ctx, settings.serviceDesk),
|
|
1844
|
+
gitHost: manualAdapter("gitHost", ctx, settings.gitHost),
|
|
1845
|
+
wiki: manualAdapter("wiki", ctx, settings.wiki),
|
|
1846
|
+
notify: manualAdapter("notify", ctx, settings.notify),
|
|
1847
|
+
design: manualAdapter("design", ctx, settings.design)
|
|
1848
|
+
};
|
|
1849
|
+
}
|
|
1793
1850
|
|
|
1794
1851
|
// packages/adapters/dist/registry.js
|
|
1795
1852
|
var MOCKS = {
|
|
@@ -1839,18 +1896,50 @@ function createAdapters(runtime, factories = {}, manual) {
|
|
|
1839
1896
|
}
|
|
1840
1897
|
|
|
1841
1898
|
export {
|
|
1899
|
+
Approval,
|
|
1842
1900
|
AdapterError,
|
|
1843
1901
|
requireApproval,
|
|
1902
|
+
MockBase,
|
|
1903
|
+
MockWorkTracker,
|
|
1904
|
+
ADO_COLUMNS,
|
|
1905
|
+
JIRA_COLUMNS,
|
|
1906
|
+
html,
|
|
1907
|
+
csvCell,
|
|
1908
|
+
workItemRows,
|
|
1844
1909
|
workItemsCsv,
|
|
1910
|
+
MockServiceDesk,
|
|
1845
1911
|
mergeBlockers,
|
|
1846
1912
|
MockGitHost,
|
|
1913
|
+
MockWiki,
|
|
1914
|
+
MockDesignTool,
|
|
1915
|
+
MockNotifier,
|
|
1916
|
+
serializeStep,
|
|
1917
|
+
slugify,
|
|
1918
|
+
shortHash,
|
|
1919
|
+
memoryStepStore,
|
|
1920
|
+
StepFileError,
|
|
1847
1921
|
fileStepStore,
|
|
1922
|
+
checkValue,
|
|
1848
1923
|
checkResult,
|
|
1849
1924
|
StepError,
|
|
1850
1925
|
recordStep,
|
|
1926
|
+
stepApproval,
|
|
1851
1927
|
exportStep,
|
|
1928
|
+
PROVISIONAL,
|
|
1929
|
+
provisionalId,
|
|
1852
1930
|
stepOfProvisional,
|
|
1931
|
+
ManualBase,
|
|
1932
|
+
changeOfBranch,
|
|
1933
|
+
ManualGitHost,
|
|
1934
|
+
ManualWiki,
|
|
1935
|
+
ManualDesignTool,
|
|
1853
1936
|
ManualNotifier,
|
|
1937
|
+
fieldKey,
|
|
1938
|
+
ManualServiceDesk,
|
|
1939
|
+
ManualWorkTracker,
|
|
1854
1940
|
manualAdapter,
|
|
1941
|
+
FALLBACK_CODES,
|
|
1942
|
+
withManualFallback,
|
|
1943
|
+
allManual,
|
|
1855
1944
|
createAdapters
|
|
1856
1945
|
};
|