@maycombhq/atticus 2.0.0-beta.26 → 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-XIGVTH24.js → chunk-2666BPJE.js} +19 -19
- package/dist/{chunk-KFZ5IXEZ.js → chunk-2ALBHI4Q.js} +28 -27
- package/dist/chunk-2ANBMA74.js +107 -0
- package/dist/{chunk-UIYPX2BA.js → chunk-2HCW6HXK.js} +27 -26
- package/dist/{chunk-DJBXXYYA.js → chunk-2ISR6MWD.js} +15 -15
- package/dist/{chunk-ZDA72732.js → chunk-2MRYL45Z.js} +50 -9
- package/dist/{chunk-DB3NWAU3.js → chunk-3GNUHLAN.js} +4 -4
- package/dist/chunk-3GURU22K.js +44 -0
- package/dist/{chunk-UFIQ5FWY.js → chunk-3M3MDBOG.js} +1 -1
- package/dist/{chunk-DHQXCP2X.js → chunk-3PBIZBWN.js} +1 -1
- package/dist/{chunk-7IWMRZRI.js → chunk-3PWXVBCB.js} +83 -40
- package/dist/chunk-3W2QX6TT.js +58 -0
- package/dist/{chunk-H7CSCA73.js → chunk-3Z7ATALI.js} +5 -5
- package/dist/{chunk-ZGULQAPZ.js → chunk-44SWXDD7.js} +8 -5
- package/dist/{chunk-IEIHVMM6.js → chunk-46N5O5H7.js} +5 -5
- package/dist/{chunk-4DHYXODN.js → chunk-4D4DNTFE.js} +4 -4
- package/dist/{chunk-B3JHERXM.js → chunk-4EAT7HOX.js} +7 -5
- package/dist/{chunk-OH2OHNB5.js → chunk-4FLIW5PJ.js} +4 -4
- package/dist/{chunk-PGDVJWCI.js → chunk-4LWA5VMJ.js} +52 -37
- package/dist/{chunk-YWQZ7CCW.js → chunk-4ODVHNA6.js} +18 -17
- package/dist/{chunk-IH6BYFMH.js → chunk-4POSAXNC.js} +6 -6
- package/dist/{chunk-D5H3RZNE.js → chunk-4PQ4KDOA.js} +16 -15
- 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-GJSLO2E2.js → chunk-5GCCG3GJ.js} +11 -5
- package/dist/{chunk-VGGSHDQU.js → chunk-5XW6RUDV.js} +8 -8
- package/dist/{chunk-K35VNKJH.js → chunk-5YEUAZZE.js} +8 -8
- package/dist/{chunk-YEHSJY6B.js → chunk-62LD7CSY.js} +13 -13
- package/dist/{chunk-DB6TDJ4T.js → chunk-67Y2J55V.js} +22 -21
- package/dist/{chunk-KL7UHAOR.js → chunk-6DSZ4CL7.js} +36 -21
- package/dist/{chunk-WM4EMP7T.js → chunk-6G67LSBG.js} +283 -61
- package/dist/{chunk-TLBPTUFU.js → chunk-6OEB4FTC.js} +20 -19
- package/dist/{chunk-GXJ2PSDW.js → chunk-6OTGCKYH.js} +9 -9
- package/dist/{chunk-EQMNMG6X.js → chunk-6XLCMDIP.js} +13 -13
- package/dist/chunk-76DZJTU7.js +190 -0
- package/dist/chunk-7764GVJK.js +37 -0
- package/dist/{chunk-KS2IQYTZ.js → chunk-7BOGXFZ3.js} +11 -11
- package/dist/{chunk-ZA2PWNR3.js → chunk-7CVHKNAF.js} +16 -15
- package/dist/{chunk-LBBI5P5G.js → chunk-7FEIS3KV.js} +25 -24
- package/dist/{chunk-OXCHO2QS.js → chunk-7GXM45T5.js} +26 -23
- package/dist/{chunk-YLXPJWNO.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-PXDAGXQN.js → chunk-A7ZJKLFC.js} +11 -11
- package/dist/chunk-AANQC5QP.js +47 -0
- package/dist/{chunk-HV6PXXK7.js → chunk-AIQLTDC3.js} +3 -3
- package/dist/{chunk-PFWP624T.js → chunk-AKZTCZ6F.js} +4 -4
- package/dist/{chunk-KAWWXCPI.js → chunk-ALCSTVWQ.js} +3 -3
- package/dist/{chunk-7ZBYRMWK.js → chunk-ALUHO7SE.js} +26 -25
- package/dist/{chunk-3KP7OOJ4.js → chunk-AMZ4XMES.js} +8 -8
- package/dist/{chunk-V5ZKGBYL.js → chunk-AOQG37K4.js} +8 -6
- package/dist/{chunk-CNT6T2JM.js → chunk-ARXZTHEI.js} +16 -15
- package/dist/{chunk-KFJMQUSK.js → chunk-AS4CTARY.js} +16 -15
- package/dist/{chunk-MM7JSMLW.js → chunk-AVUPW23W.js} +18 -17
- package/dist/{chunk-NQDVD2YR.js → chunk-B56FCIEJ.js} +12 -12
- package/dist/{chunk-CPE7HLIK.js → chunk-BABATPOZ.js} +18 -17
- package/dist/{chunk-63572EFC.js → chunk-BIOKDLLX.js} +21 -19
- package/dist/{chunk-D4TW3PUO.js → chunk-BUBKKEUV.js} +5 -5
- package/dist/{chunk-FOOU5OJE.js → chunk-CDC6VECU.js} +3 -3
- package/dist/chunk-CHEFUNZ4.js +425 -0
- package/dist/{chunk-IL7PVMUO.js → chunk-CIFR3DPV.js} +6 -6
- package/dist/{chunk-DS5M2J2H.js → chunk-CLBVKD4P.js} +16 -15
- package/dist/{chunk-2FTHLB2H.js → chunk-CLM5Z3R5.js} +5 -5
- package/dist/{chunk-CFK6CFXM.js → chunk-CLYV5MB6.js} +9 -9
- package/dist/{chunk-KZ4I5M2X.js → chunk-CRYIBCGP.js} +37 -19
- package/dist/{chunk-PLSCWC2V.js → chunk-D3L5SO27.js} +5 -5
- package/dist/chunk-DAZM2INZ.js +34 -0
- package/dist/{chunk-I72PEROE.js → chunk-DF4BXBB2.js} +6 -6
- package/dist/{chunk-PZFZPHCT.js → chunk-E7Q52EOO.js} +11 -11
- package/dist/{chunk-R2FUFBHW.js → chunk-EFDUC35B.js} +3 -3
- package/dist/{chunk-43OWNS5N.js → chunk-EHXEJFHD.js} +5 -5
- package/dist/{chunk-HQMLY2R6.js → chunk-ELJ5Q4J2.js} +2 -2
- package/dist/{chunk-F4EGHECF.js → chunk-EM6DKBTJ.js} +3 -3
- package/dist/{chunk-UZBLVNW6.js → chunk-EMC46SU4.js} +38 -17
- package/dist/{chunk-F6GRBF5L.js → chunk-EQEDIWFQ.js} +25 -24
- package/dist/chunk-EW574EZI.js +57 -0
- package/dist/{chunk-HSJKYDHI.js → chunk-EYINWNXL.js} +5 -5
- package/dist/{chunk-KUEG2Y7M.js → chunk-EYVYHYCA.js} +8 -8
- package/dist/{chunk-ELR7DEQM.js → chunk-F66542M6.js} +34 -9
- package/dist/{chunk-RCLBIJRN.js → chunk-F74OMLNU.js} +6 -6
- package/dist/{chunk-PBDIVTFL.js → chunk-FADIWOA5.js} +3 -3
- package/dist/{chunk-LHN5UCXD.js → chunk-FC3ZVD3O.js} +3 -3
- package/dist/{chunk-DXLWZ3BJ.js → chunk-FG65LXED.js} +8 -8
- package/dist/{chunk-V5FT3MZG.js → chunk-FKAUBC4Y.js} +8 -8
- package/dist/{chunk-RBO4A7TC.js → chunk-FM3EEDS2.js} +15 -15
- package/dist/{chunk-TYN5SG5H.js → chunk-FS4E7F6O.js} +403 -148
- package/dist/{chunk-HVWPN2RY.js → chunk-FSYJPYLE.js} +16 -15
- package/dist/{chunk-IBIIKUC7.js → chunk-G33UIUG3.js} +46 -20
- package/dist/{chunk-4NWE2KY3.js → chunk-G3F4BYML.js} +15 -14
- package/dist/{chunk-2GT47PWU.js → chunk-GBJRFFDW.js} +5 -5
- package/dist/{chunk-NMURRF5F.js → chunk-GF6GBHFN.js} +13 -11
- package/dist/{chunk-C3TBDX7Y.js → chunk-GLHOUT5E.js} +26 -25
- package/dist/{chunk-ZWMHL346.js → chunk-GM6GXO2A.js} +20 -19
- package/dist/{chunk-MKUBDKE2.js → chunk-GSJ2RXE7.js} +29 -28
- package/dist/{chunk-YJBD5NDV.js → chunk-GT72FDER.js} +6 -6
- package/dist/{chunk-BEEHCL5O.js → chunk-GW6ZH77P.js} +37 -36
- package/dist/{chunk-BABRMZET.js → chunk-GZILYRGC.js} +3 -3
- package/dist/{chunk-5JGRF53S.js → chunk-GZSOZYEP.js} +3 -3
- package/dist/{chunk-IP6ARMZU.js → chunk-H25QNDKK.js} +58 -36
- package/dist/{chunk-BIAQ6NQS.js → chunk-H3RKW4RF.js} +7 -7
- package/dist/chunk-H7M7ZH6H.js +52 -0
- package/dist/chunk-H7NRWSMP.js +55 -0
- package/dist/{chunk-2JT4QV3Q.js → chunk-HDWVR5KD.js} +4 -4
- package/dist/{chunk-UAYU6K24.js → chunk-HG24EF5S.js} +16 -15
- package/dist/chunk-HPNYSY5M.js +1068 -0
- package/dist/{chunk-JJEXMHNZ.js → chunk-HUMM4S5I.js} +6 -6
- package/dist/{chunk-DARX3ATP.js → chunk-HVPS2YCW.js} +11 -11
- package/dist/{chunk-IGOE6KPG.js → chunk-I34CXV2C.js} +185 -11
- package/dist/{chunk-6U65YB54.js → chunk-I57IH5X6.js} +360 -271
- package/dist/{chunk-WYO4L4NU.js → chunk-I5X4WU7U.js} +6 -6
- package/dist/chunk-IAVVJ34R.js +55 -0
- package/dist/chunk-IBJE2E2S.js +51 -0
- package/dist/{chunk-HNNMT5L2.js → chunk-IF3X6FMO.js} +1 -1
- package/dist/{chunk-CUTMM4NY.js → chunk-IJHJIL6T.js} +154 -25
- package/dist/chunk-IM435QAM.js +72 -0
- package/dist/{chunk-MQ6HP2TU.js → chunk-IMBJ7WAO.js} +6 -6
- 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-JLTJAOO4.js → chunk-IX2EOYOU.js} +50 -13
- package/dist/{chunk-DOU52XFZ.js → chunk-IXNMGPF7.js} +61 -28
- package/dist/{chunk-XT3ZW7C7.js → chunk-J6GO3K7G.js} +19 -18
- package/dist/chunk-JBLM6IUA.js +42 -0
- package/dist/{chunk-CSHJZFOE.js → chunk-JL2VOYSL.js} +91 -93
- package/dist/{chunk-ACY3U2RD.js → chunk-JRXFZB6J.js} +8 -8
- package/dist/{chunk-P6EJNPFF.js → chunk-JTOLBS7R.js} +951 -409
- package/dist/{chunk-FYCN2Y5P.js → chunk-K73BHPTQ.js} +19 -18
- package/dist/{chunk-EVKDWJ5Y.js → chunk-KF7KVUNJ.js} +5 -5
- package/dist/{chunk-SRB54QGX.js → chunk-KKUCBKJE.js} +20 -19
- package/dist/{chunk-LTOBNBJ6.js → chunk-KLFFHBWG.js} +27 -26
- package/dist/{chunk-DXBXZNKV.js → chunk-KMYB2XO7.js} +21 -13
- package/dist/chunk-KNYQUWFN.js +52 -0
- package/dist/{chunk-6EMJ4XFC.js → chunk-KOAJPMU2.js} +31 -20
- package/dist/chunk-KRTSE73S.js +55 -0
- package/dist/{chunk-GAJBMPWC.js → chunk-L3AM5YRP.js} +28 -9
- package/dist/{chunk-YYV276DM.js → chunk-LCIIFAID.js} +22 -21
- package/dist/{chunk-SZDOBIWE.js → chunk-LCQIRCOT.js} +55 -10
- package/dist/{chunk-OI32KTDM.js → chunk-LFHBAWIM.js} +13 -13
- package/dist/chunk-LIHEMWIT.js +39 -0
- package/dist/{chunk-CG6MG7SE.js → chunk-LJLYWILK.js} +14 -14
- package/dist/{chunk-6SIGGA37.js → chunk-LNJKDS5C.js} +26 -25
- package/dist/{chunk-3GEAUW62.js → chunk-LTHY7E2P.js} +16 -15
- package/dist/{chunk-RO6BE7ZS.js → chunk-LTVOQJKT.js} +7 -7
- package/dist/{chunk-BD7HBZLP.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-ZNYSBQIA.js → chunk-MUXYUIBV.js} +6 -6
- package/dist/{chunk-CNEOKSTO.js → chunk-MWRRJDXQ.js} +34 -31
- package/dist/{chunk-VJO7M34N.js → chunk-MZDHFWTN.js} +2 -2
- package/dist/chunk-N2XCT5OX.js +68 -0
- package/dist/{chunk-2IO6XH37.js → chunk-N3JGYAMD.js} +15 -15
- package/dist/{chunk-K3QKOVZN.js → chunk-N5DLB74D.js} +367 -71
- package/dist/{chunk-H5BIVULF.js → chunk-NC3Q7RIB.js} +10 -10
- package/dist/{chunk-HVOE7ZW2.js → chunk-NCNLX4DL.js} +19 -18
- package/dist/{chunk-3D74UADA.js → chunk-NGSGJLKW.js} +2 -2
- package/dist/{chunk-B7KGNEFI.js → chunk-NN7K2LLN.js} +25 -24
- package/dist/{chunk-76AHTJVY.js → chunk-NNURP7VO.js} +15 -15
- package/dist/chunk-NSQB24WR.js +56 -0
- package/dist/{chunk-GFFTVQ7R.js → chunk-NV5S63YK.js} +7 -7
- package/dist/{chunk-CTJHEG6A.js → chunk-NWMFVPEP.js} +2 -0
- package/dist/{chunk-7JZONWAA.js → chunk-NYT6QGZA.js} +22 -18
- package/dist/chunk-OB2DAIJX.js +62 -0
- package/dist/{chunk-IZIGZ7KY.js → chunk-OC3OXDTG.js} +13 -8
- package/dist/{chunk-2XIIUXGX.js → chunk-OD6RNYMQ.js} +16 -16
- package/dist/{chunk-723OQZ3N.js → chunk-OFYBRMRG.js} +6 -6
- package/dist/chunk-OGTELPDN.js +43 -0
- package/dist/{chunk-E5NHFHGC.js → chunk-OQ7SBQ2Z.js} +7 -7
- package/dist/{chunk-6TZ4YRGJ.js → chunk-OUDGBJC2.js} +16 -9
- package/dist/{chunk-W4SMKUAK.js → chunk-OUGTAOGA.js} +2 -2
- package/dist/chunk-OWP5FCYM.js +60 -0
- package/dist/{chunk-ET7SPOBA.js → chunk-P36PTWBM.js} +8 -8
- package/dist/{chunk-64LSDT3D.js → chunk-P6Y2J2QY.js} +12 -12
- package/dist/{chunk-ANFBBJEV.js → chunk-PDJL2HO5.js} +24 -22
- package/dist/{chunk-UXVKFOMC.js → chunk-PPKH6ULR.js} +152 -20
- package/dist/{chunk-WLA2JZ2K.js → chunk-Q4PFF2ZE.js} +8 -8
- package/dist/chunk-Q7EUPQEG.js +5 -0
- package/dist/{chunk-2HDNOUJU.js → chunk-QC6GSNIK.js} +7055 -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-HWPX3T55.js → chunk-QGMD3PYL.js} +31 -24
- package/dist/{chunk-VCXFMXMX.js → chunk-QLT3WYTD.js} +6 -6
- package/dist/{chunk-ZFLBWL2G.js → chunk-QNDMAKQS.js} +11 -3
- package/dist/{chunk-UWBPC5XH.js → chunk-QNXMVJMA.js} +8 -8
- package/dist/{chunk-XDLMQL5A.js → chunk-QPAANKUR.js} +7 -7
- package/dist/{chunk-BGOAJFPB.js → chunk-QS4VX3HZ.js} +1 -1
- package/dist/{chunk-YIOYKA4V.js → chunk-QSM4K6LI.js} +7 -7
- package/dist/{chunk-TPKJD42W.js → chunk-QUFZDWPC.js} +8 -8
- package/dist/{chunk-QXCGRQGO.js → chunk-QXXEOH3A.js} +18 -6
- package/dist/{chunk-QA4O2GGC.js → chunk-R4TUWD4C.js} +17 -1
- package/dist/{chunk-UJ5ZJS4B.js → chunk-ROI64BAI.js} +22 -21
- package/dist/{chunk-LCRQPWTC.js → chunk-RPVL3RTX.js} +19 -18
- package/dist/{chunk-QQAWI5LD.js → chunk-RUNHVUCW.js} +16 -15
- package/dist/{chunk-7AEB74KW.js → chunk-RWYPLODE.js} +9 -9
- package/dist/{chunk-VTR4AC2U.js → chunk-RZYRUXSU.js} +4 -4
- package/dist/{chunk-CWLXVRFH.js → chunk-S6TLXRBR.js} +7 -7
- package/dist/{chunk-Z33UNTHI.js → chunk-SCOP3J6X.js} +7 -7
- package/dist/{chunk-XEWFVHOT.js → chunk-SCP24MJX.js} +24 -23
- package/dist/{chunk-MCORC2LG.js → chunk-SF3HXNXR.js} +6 -6
- package/dist/{chunk-BSZII65X.js → chunk-SFCFL7Y5.js} +1 -1
- package/dist/{chunk-LY7DOYX2.js → chunk-SHFY73RI.js} +53 -112
- package/dist/{chunk-IERXBWQU.js → chunk-SHIARIEZ.js} +20 -19
- package/dist/chunk-SMFFUFMN.js +1876 -0
- package/dist/{chunk-WH3ZFLXT.js → chunk-SVOGRJO6.js} +197 -124
- package/dist/chunk-SVZAAOHJ.js +46 -0
- package/dist/{chunk-NCZS2BN2.js → chunk-SZOU32VF.js} +21 -20
- package/dist/{chunk-MTIRNHRJ.js → chunk-T2MN24LZ.js} +1 -1
- package/dist/{chunk-KZH5YV6J.js → chunk-TD5WWJLN.js} +6 -6
- package/dist/{chunk-UBEFT3MQ.js → chunk-TFN2N227.js} +6 -6
- package/dist/{chunk-BIKMME4S.js → chunk-TFXNOQEU.js} +28 -27
- package/dist/{chunk-6P67IUET.js → chunk-TMETWJFO.js} +11 -11
- package/dist/chunk-TNSAIISO.js +50 -0
- package/dist/{chunk-SDHGFMES.js → chunk-TRJO2I4S.js} +3 -3
- package/dist/{chunk-NVVEVP5O.js → chunk-TRSNIJNM.js} +7 -7
- package/dist/{chunk-VIQHZA53.js → chunk-U3Z2QZE3.js} +6 -6
- package/dist/{chunk-TQG2DDWH.js → chunk-U7L3ORPK.js} +22 -21
- package/dist/{chunk-3KIMLBGZ.js → chunk-UDM6HGF4.js} +6 -6
- package/dist/{chunk-NMCPIYTF.js → chunk-UDM7LXNJ.js} +7 -7
- package/dist/chunk-UDTO3U6E.js +35 -0
- package/dist/{chunk-ZFEOIYK5.js → chunk-UEUPEUZX.js} +3 -3
- package/dist/chunk-UWBODTY7.js +514 -0
- package/dist/{chunk-BIWNRS5I.js → chunk-UYYYQTPD.js} +78 -47
- package/dist/{chunk-IDRCBMJF.js → chunk-V34N6JAN.js} +32 -31
- package/dist/{chunk-EY3OVHNC.js → chunk-V3Y5P7OS.js} +24 -23
- package/dist/chunk-V6MLVGTP.js +89 -0
- package/dist/{chunk-EECFUQP3.js → chunk-VC2XHC7P.js} +184 -46
- package/dist/{chunk-H26T2LQL.js → chunk-VCYE4MUD.js} +29 -28
- package/dist/{chunk-EUTZTJIO.js → chunk-VN2VJ6BV.js} +19 -15
- package/dist/{chunk-P6DM2EFI.js → chunk-VVLWEM2Y.js} +6 -6
- package/dist/{chunk-YXKCE5BA.js → chunk-VWCNMDMZ.js} +5 -5
- package/dist/{chunk-BV2BZIUF.js → chunk-W2A4NHQD.js} +25 -24
- package/dist/{chunk-VPQUFIE7.js → chunk-W6OY2PMB.js} +10 -10
- package/dist/{chunk-FIZ5LYL2.js → chunk-WC6DHBVG.js} +16 -15
- package/dist/{chunk-GHST3KAB.js → chunk-WCA3WIGG.js} +5 -5
- package/dist/{chunk-6ZDAEUKB.js → chunk-WJWSB65O.js} +1602 -452
- package/dist/{chunk-IFQJ3YQE.js → chunk-WNPGLGCJ.js} +5 -5
- package/dist/chunk-WTOVWEY3.js +67 -0
- package/dist/{chunk-XIJBQM45.js → chunk-X5B7KYPD.js} +507 -20
- package/dist/{chunk-ZLBUFK7L.js → chunk-X73WLHSN.js} +7 -7
- package/dist/{chunk-GNFZ227W.js → chunk-XIIT4PVT.js} +3 -3
- package/dist/{chunk-U3JXMY56.js → chunk-XLTT5QCX.js} +28 -25
- package/dist/{chunk-5UIGGXA5.js → chunk-XMIS25ZJ.js} +21 -20
- package/dist/{chunk-IYEET4VM.js → chunk-XPDQ4T6G.js} +27 -26
- package/dist/{chunk-WT6EXYEY.js → chunk-XRWUYOX3.js} +138 -22
- package/dist/{chunk-I2EWY3MG.js → chunk-XZY4GTCX.js} +14 -9
- package/dist/{chunk-2SCZZQNQ.js → chunk-Y2TVTI4P.js} +121 -15
- package/dist/{chunk-Q3RKXK5Z.js → chunk-Y2U4CSCA.js} +28 -27
- package/dist/chunk-Y2U63JKE.js +41 -0
- package/dist/{chunk-V3M4VFUB.js → chunk-Y6S7VCYN.js} +6 -6
- package/dist/{chunk-SAPX3PVK.js → chunk-YAPMGK7E.js} +11 -11
- package/dist/{chunk-MY3LDBMR.js → chunk-YAPVAYZN.js} +3 -3
- package/dist/{chunk-ZYLGEWTC.js → chunk-YCBDNWX3.js} +78 -57
- package/dist/{chunk-RK5P2DWD.js → chunk-YIGSUTW2.js} +1329 -92
- package/dist/{chunk-XI3GPYP4.js → chunk-YJTBE6AJ.js} +5 -5
- package/dist/chunk-YQ3IXQIH.js +185 -0
- package/dist/{chunk-MZXDSAKW.js → chunk-YRHKEXTP.js} +11 -11
- package/dist/{chunk-DPH4BS3F.js → chunk-YSSFS3YC.js} +17 -17
- package/dist/{chunk-ISCX25D7.js → chunk-YXG2VQJJ.js} +200 -56
- package/dist/{chunk-VUSYN4R4.js → chunk-Z4GLFTEH.js} +8 -8
- package/dist/{chunk-NP3PG6OI.js → chunk-Z65FWO6A.js} +157 -89
- package/dist/{chunk-KJD4DLRZ.js → chunk-ZDG637ZT.js} +22 -21
- package/dist/{chunk-DASVVML7.js → chunk-ZIAMPN7N.js} +6 -6
- package/dist/chunk-ZIIBQHCX.js +53 -0
- package/dist/{chunk-IJN5PSDU.js → chunk-ZJJMYPGZ.js} +57 -27
- package/dist/{chunk-NECDBPFP.js → chunk-ZOAX7W5S.js} +11 -11
- package/dist/chunk-ZSSR5GGB.js +48 -0
- package/dist/files.json +657 -553
- 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 +4 -4
- 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
|
@@ -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
|
};
|