@maycombhq/atticus 2.0.0-beta.2 → 2.0.0-beta.22
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 +8 -4
- package/dist/chunk-23XVSEV5.js +49 -0
- package/dist/{chunk-ZDPAS56H.js → chunk-24OXGB3P.js} +8 -2
- package/dist/{chunk-7EOBHUMC.js → chunk-24XLDU72.js} +4 -3
- package/dist/{chunk-CR3MTH32.js → chunk-2F4CYZKJ.js} +86 -11
- package/dist/{chunk-6IU67AEK.js → chunk-2GF7OLF3.js} +23 -15
- package/dist/chunk-2IIMFOPM.js +41 -0
- package/dist/chunk-2LGRMVCA.js +617 -0
- package/dist/{chunk-XPCM366L.js → chunk-2MMCFP5C.js} +10 -8
- package/dist/{chunk-JBTK5OP2.js → chunk-2Q56PQPS.js} +6 -4
- package/dist/{chunk-Z6LF7HQN.js → chunk-2Q5EDGEO.js} +7 -5
- package/dist/{chunk-3USYZGRF.js → chunk-2RLKFUUL.js} +38 -27
- package/dist/chunk-2SKB4O2E.js +59 -0
- package/dist/{chunk-SP2I63OO.js → chunk-34S2WGOB.js} +87 -4
- package/dist/{chunk-GQ4N4WKF.js → chunk-3NFFJL5D.js} +33 -27
- package/dist/{chunk-SJRGMG6A.js → chunk-3NWDLGG6.js} +28 -25
- package/dist/{chunk-4WBVUHXN.js → chunk-3RM4UK6W.js} +20 -18
- package/dist/chunk-42SIDKEU.js +583 -0
- package/dist/{chunk-GLUX4EEP.js → chunk-4EURQWQD.js} +20 -15
- package/dist/chunk-4U276ICE.js +39 -0
- package/dist/{chunk-ZMFPW66A.js → chunk-53T4O55J.js} +4 -3
- package/dist/{chunk-6J5OKA4Y.js → chunk-57TDNMI3.js} +17 -15
- package/dist/chunk-5BD2KYLE.js +57 -0
- package/dist/{chunk-7EFILTCI.js → chunk-5F7GFN2F.js} +28 -0
- package/dist/chunk-5NMKONLP.js +95 -0
- package/dist/{chunk-7ZUIMTOU.js → chunk-5SJZW52K.js} +26 -24
- package/dist/{chunk-4RS5KZQD.js → chunk-63YRMR6J.js} +6 -5
- package/dist/chunk-66PPNOON.js +62 -0
- package/dist/chunk-6H3Z5JHH.js +64 -0
- package/dist/{chunk-CEXSU4S6.js → chunk-6MUGR4LS.js} +775 -89
- package/dist/{chunk-QSXK2RGH.js → chunk-6OJQOPUN.js} +5 -3
- package/dist/{chunk-MVZVGYXH.js → chunk-6PPOWY5E.js} +84 -14
- package/dist/{chunk-7EKXJZ2Y.js → chunk-6ZGLAACW.js} +299 -38
- package/dist/chunk-6ZJ5A7AF.js +222 -0
- package/dist/{chunk-L24C55VN.js → chunk-745DAZ4L.js} +142 -30
- package/dist/{chunk-Q4D5X7QB.js → chunk-7ASNL4Q4.js} +46 -24
- package/dist/chunk-7BR7IPOH.js +35 -0
- package/dist/{chunk-7WD63HU2.js → chunk-7DOR27HL.js} +6 -6
- package/dist/chunk-7FTTA3HD.js +341 -0
- package/dist/{chunk-OLQJTJJU.js → chunk-7GJS6DNX.js} +12 -3
- package/dist/{chunk-7JUKDRSZ.js → chunk-7IGKHZ4Z.js} +347 -226
- package/dist/{chunk-G2B4ZQGH.js → chunk-7IOWA5D5.js} +11 -6
- package/dist/{chunk-EBEW3XXQ.js → chunk-7JITZFJC.js} +7 -5
- package/dist/chunk-7MJSQTL5.js +174 -0
- package/dist/{chunk-I4JRCD6M.js → chunk-7UOMVMFG.js} +25 -17
- package/dist/{chunk-YY6ZQQBP.js → chunk-AFWUDXEM.js} +19 -7
- package/dist/chunk-AFZ3QA6W.js +47 -0
- package/dist/chunk-AJQ72EBM.js +420 -0
- package/dist/chunk-AJYXNTNZ.js +317 -0
- package/dist/chunk-AVTBS4OW.js +49 -0
- package/dist/{chunk-FHH4I4ZV.js → chunk-BDKC6H5P.js} +12 -6
- package/dist/{chunk-IPKHE5D6.js → chunk-BEVTIBRH.js} +1526 -875
- package/dist/chunk-BHT7QK4G.js +162 -0
- package/dist/{chunk-6JUBZBMW.js → chunk-BIGDQDHD.js} +6 -4
- package/dist/{chunk-2BFCZ3RK.js → chunk-BO4KX37X.js} +20 -18
- package/dist/chunk-BPK5P77O.js +115 -0
- package/dist/chunk-BQ4SQQC6.js +59 -0
- package/dist/chunk-BQGDB6ZL.js +7342 -0
- package/dist/{chunk-2ANOROX3.js → chunk-BTGPE6CR.js} +11 -9
- package/dist/chunk-BTY3HZBO.js +93 -0
- package/dist/{chunk-DPZHZQKE.js → chunk-BXYMYEJ4.js} +44 -10
- package/dist/{chunk-2RMYG36Q.js → chunk-C3RY6KU6.js} +309 -346
- package/dist/chunk-C4R4JLHE.js +40 -0
- package/dist/chunk-CADWLE2T.js +18 -0
- package/dist/chunk-CBGGOQWU.js +82 -0
- package/dist/chunk-CMDXGQTS.js +47 -0
- package/dist/{chunk-MC3H7736.js → chunk-CQDGOPGH.js} +58 -18
- package/dist/{chunk-HFQCFSJR.js → chunk-CX4RZ2KS.js} +4 -3
- package/dist/{chunk-PAMPPUR6.js → chunk-CXJ6FUKN.js} +1852 -207
- package/dist/{chunk-ABWHYWNI.js → chunk-D73UEXYW.js} +3 -3
- package/dist/chunk-DCZWQLYT.js +1205 -0
- package/dist/chunk-DLOBCJL6.js +48 -0
- package/dist/{chunk-4BN53TG3.js → chunk-DOBQKHIF.js} +31 -23
- package/dist/chunk-E3ISYXO3.js +423 -0
- package/dist/{chunk-7SW2QWLU.js → chunk-E6ZIEVOI.js} +16 -13
- package/dist/chunk-EBL2R3YG.js +43 -0
- package/dist/{chunk-AIOQPLA5.js → chunk-EGQRREQH.js} +41 -15
- package/dist/chunk-EHA7RMZ3.js +58 -0
- package/dist/{chunk-M766ZJ6W.js → chunk-EIPTLPFC.js} +38 -27
- package/dist/chunk-EMRIQUND.js +517 -0
- package/dist/{chunk-DFBCSHVT.js → chunk-EPCJQQWD.js} +6 -4
- package/dist/{chunk-RZPYKDWS.js → chunk-F3P7N7SF.js} +1 -1
- package/dist/{chunk-R77KLRB3.js → chunk-FFLNS6VP.js} +21 -18
- package/dist/chunk-FFTRTL6R.js +26 -0
- package/dist/{chunk-IHMLFRVV.js → chunk-FPJPLKDW.js} +62 -16
- package/dist/{chunk-JCZIKA4C.js → chunk-FSMSFDLD.js} +5 -4
- package/dist/{chunk-AVJDSJ2F.js → chunk-FUJM6RTF.js} +8 -7
- package/dist/chunk-FZOJFH7Q.js +132 -0
- package/dist/{chunk-QRAOANID.js → chunk-G6X77UJZ.js} +23 -21
- package/dist/{chunk-3ALD2W2A.js → chunk-GCWRWSU7.js} +10 -4
- package/dist/chunk-GIW4ZVDB.js +39 -0
- package/dist/{chunk-B2WLAWNJ.js → chunk-GUX3PTYM.js} +3 -3
- package/dist/{chunk-DPUYDDQG.js → chunk-GZY6RUZ6.js} +25 -3
- package/dist/chunk-H4VO6WG3.js +10 -0
- package/dist/{chunk-MMOSZPWJ.js → chunk-H5HBGNXU.js} +5 -4
- package/dist/chunk-H7KM7LZE.js +229 -0
- package/dist/{chunk-AA6YULYB.js → chunk-HNM2YQT2.js} +7 -7
- package/dist/{chunk-3C7EYRFZ.js → chunk-HYU5VLGA.js} +1 -1
- package/dist/{chunk-XY3P7JW7.js → chunk-IDKCWSM5.js} +1032 -172
- package/dist/chunk-IFKEI4SA.js +237 -0
- package/dist/{chunk-F7HYOUFF.js → chunk-IGOE6KPG.js} +67 -22
- package/dist/{chunk-TDD55CJH.js → chunk-IH2XURVQ.js} +6 -5
- package/dist/chunk-INQHESFB.js +38 -0
- package/dist/chunk-IP74LCOQ.js +57 -0
- package/dist/chunk-IPHHDDC6.js +45 -0
- package/dist/{chunk-T6AIP7H5.js → chunk-ISUAAMGS.js} +110 -153
- package/dist/{chunk-A7UPUQFY.js → chunk-IUPG3UKI.js} +624 -319
- package/dist/{chunk-L6SGQIR3.js → chunk-IVBOQAGB.js} +7 -3
- package/dist/{chunk-27NKUS3X.js → chunk-J2JAKCIW.js} +2205 -796
- package/dist/{chunk-V2YTAIQO.js → chunk-J3IOLXWM.js} +24 -7
- package/dist/chunk-JA5FI3QV.js +142 -0
- package/dist/chunk-JAVI7JSP.js +49 -0
- package/dist/{chunk-HLJAXMM4.js → chunk-JB5LINEM.js} +6 -2
- package/dist/{chunk-2VHF7OXM.js → chunk-JENSEMXF.js} +1 -1
- package/dist/{chunk-6BVONWJ7.js → chunk-JJF6HALY.js} +4 -3
- package/dist/chunk-JLUCKAEL.js +38 -0
- package/dist/chunk-JRBFANFE.js +221 -0
- package/dist/{chunk-R6XF6UR3.js → chunk-KDNTAPLX.js} +4 -4
- package/dist/chunk-KFAVQZSX.js +33 -0
- package/dist/chunk-KJXD4PNL.js +50 -0
- package/dist/chunk-KN5BXMWN.js +44 -0
- package/dist/{chunk-PCVDV3UZ.js → chunk-KQGURXFU.js} +9 -7
- package/dist/{chunk-WY6PP6AA.js → chunk-KXITGYLF.js} +40 -6
- package/dist/{chunk-66YVAGGM.js → chunk-L27SV425.js} +22 -20
- package/dist/{chunk-NE2W3OO7.js → chunk-LDLL7LB3.js} +24 -22
- package/dist/chunk-LFGTYX5U.js +379 -0
- package/dist/{chunk-EYWIDJFU.js → chunk-LGBMTVNT.js} +7 -5
- package/dist/{chunk-Q5AMFEWD.js → chunk-LGFL54FP.js} +3 -2
- package/dist/{chunk-6TACQN3N.js → chunk-LJXMYKZJ.js} +7 -5
- package/dist/{chunk-BKVWTZ6A.js → chunk-LKOR5UET.js} +29 -26
- package/dist/chunk-LNBQOP7D.js +294 -0
- package/dist/{chunk-O3WI5KWW.js → chunk-LO6P2VYG.js} +2 -2
- package/dist/chunk-LQJPN536.js +122 -0
- package/dist/{chunk-YEDDOYSC.js → chunk-LYBNHMVZ.js} +29 -5
- package/dist/{chunk-A3GY6SOA.js → chunk-LZ7NUC62.js} +20 -18
- package/dist/chunk-M32BLWDH.js +37 -0
- package/dist/{chunk-VYDBJ73M.js → chunk-M3NANSDZ.js} +17 -15
- package/dist/chunk-MFHL5URL.js +31 -0
- package/dist/chunk-MFR5OPBD.js +109 -0
- package/dist/{chunk-DE76JROX.js → chunk-MG4ZL5RW.js} +32 -20
- package/dist/{chunk-N7IXEHK3.js → chunk-MO6P2JZH.js} +10 -8
- package/dist/{chunk-65NYPGRC.js → chunk-MUWDB4R4.js} +1 -1
- package/dist/chunk-MZCGSXVR.js +34 -0
- package/dist/{chunk-MGYZM27B.js → chunk-N3XIYPU3.js} +51 -23
- package/dist/chunk-NDCF4R6S.js +172 -0
- package/dist/{chunk-DHPACDG7.js → chunk-NR2UJWOC.js} +10 -8
- package/dist/chunk-NXJ5URP6.js +51 -0
- package/dist/{chunk-UNM6ZOKP.js → chunk-NY2XSR5K.js} +147 -18
- package/dist/{chunk-5GDRCDQB.js → chunk-O45HFTFS.js} +3 -2
- package/dist/{chunk-ONLS5QA5.js → chunk-O4GXGGBX.js} +14 -12
- package/dist/chunk-O5PXQR67.js +249 -0
- package/dist/{chunk-PRPPGYZG.js → chunk-O66DM6DJ.js} +6 -4
- package/dist/{chunk-KEM4SDDP.js → chunk-O7FDLW7L.js} +11 -8
- package/dist/{chunk-T2UYZSCQ.js → chunk-O7XLYEFA.js} +169 -29
- package/dist/{chunk-FITWGOJ2.js → chunk-OHNCWBKF.js} +4 -4
- package/dist/{chunk-652QWTLZ.js → chunk-OHVTTOPS.js} +3 -3
- package/dist/chunk-OMI6FPPN.js +43 -0
- package/dist/chunk-ONUPY3H6.js +53 -0
- package/dist/chunk-OTLDSZDV.js +69 -0
- package/dist/chunk-OUBGGKDU.js +22 -0
- package/dist/chunk-OWNCM4ZN.js +330 -0
- package/dist/{chunk-YISXLPHN.js → chunk-P2V7QW4D.js} +235 -35
- package/dist/{chunk-CNUKCS2T.js → chunk-P32RUW3B.js} +1632 -93
- package/dist/{chunk-BWZ77RQT.js → chunk-PAQ2AS5E.js} +1 -1
- package/dist/{chunk-ZMAINWBW.js → chunk-PBPBMP2B.js} +4 -3
- package/dist/{chunk-ZVM6AKKM.js → chunk-PJSJPMJI.js} +3 -3
- package/dist/{chunk-EFHQ3TWP.js → chunk-PKBHS4AA.js} +233 -56
- package/dist/{chunk-GT4I4ZWM.js → chunk-PMUAJGLI.js} +20 -16
- package/dist/chunk-PPD7HTDP.js +152 -0
- package/dist/chunk-PSOFBQWB.js +42 -0
- package/dist/{chunk-S2A7YC3Q.js → chunk-Q2TECDIT.js} +10694 -8896
- package/dist/chunk-Q4K5WB2W.js +42 -0
- package/dist/{chunk-UGLN7QHV.js → chunk-Q6DFNVRJ.js} +14 -12
- package/dist/chunk-QA4O2GGC.js +265 -0
- package/dist/chunk-QAXW2N3B.js +1216 -0
- package/dist/chunk-QBNWF5ZU.js +19 -0
- package/dist/chunk-QFWA2DPH.js +224 -0
- package/dist/{chunk-23W7VWKR.js → chunk-QKUJMING.js} +1363 -114
- package/dist/{chunk-NXFPS2LR.js → chunk-R44CYFPV.js} +16 -13
- package/dist/{chunk-CKSITVS4.js → chunk-R7NYHMUU.js} +2687 -786
- package/dist/chunk-REWWDVQB.js +162 -0
- package/dist/{chunk-JMSCMUCA.js → chunk-RGERPOIV.js} +145 -21
- package/dist/{chunk-6JCPI55B.js → chunk-RLDGWLQ7.js} +49 -7
- package/dist/chunk-RUGXBPWI.js +384 -0
- package/dist/{chunk-CPA6HPVR.js → chunk-RXPJMEOW.js} +18 -12
- package/dist/{chunk-3HI6Z55Y.js → chunk-S4PMJU6H.js} +339 -43
- package/dist/chunk-S5LSDXV4.js +40 -0
- package/dist/chunk-S7FCV7S5.js +51 -0
- package/dist/{chunk-5GGOLAKC.js → chunk-SDKLKB6I.js} +28 -26
- package/dist/chunk-SFSPGFCV.js +62 -0
- package/dist/{chunk-ZNCEKR4J.js → chunk-SFUP7TTO.js} +12 -8
- package/dist/{chunk-64EQYWCA.js → chunk-SLXZOMA6.js} +69 -19
- package/dist/chunk-SQV37XO2.js +273 -0
- package/dist/{chunk-K65BJIMT.js → chunk-SU74NDMQ.js} +19 -17
- package/dist/chunk-SYV5LHML.js +165 -0
- package/dist/chunk-T4YPZIQN.js +36 -0
- package/dist/chunk-T6DQR5TV.js +323 -0
- package/dist/{chunk-JIITQXFB.js → chunk-THDMSZ3R.js} +3075 -802
- package/dist/{chunk-JGZCG5VM.js → chunk-TNR75OXT.js} +7 -7
- package/dist/{chunk-D3PO4DOZ.js → chunk-TUULXQRW.js} +174 -15
- package/dist/chunk-TYQBFTBR.js +516 -0
- package/dist/chunk-U76OWS3Q.js +49 -0
- package/dist/{chunk-YYQN46FY.js → chunk-UCROWG2D.js} +27 -24
- package/dist/{chunk-6M5NK3K3.js → chunk-UF4AZOZB.js} +50 -10
- package/dist/chunk-UF4GLFBX.js +345 -0
- package/dist/{chunk-OT2O76OS.js → chunk-UGUP3ZM6.js} +240 -39
- package/dist/chunk-UNAGJYET.js +45 -0
- package/dist/{chunk-5WG5YP4T.js → chunk-UOR2DTHH.js} +16 -14
- package/dist/{chunk-S3QNRWYR.js → chunk-UPOY4YSQ.js} +14 -12
- package/dist/{chunk-EPTBZ3GP.js → chunk-UPS2DGFC.js} +1 -1
- package/dist/{chunk-4AK7IBVP.js → chunk-UUU4CLJG.js} +4 -2
- package/dist/{chunk-W3BQAZ3Q.js → chunk-UWMJKX5U.js} +14 -12
- package/dist/{chunk-QZSX3F7C.js → chunk-UWOJLHFT.js} +27 -23
- package/dist/chunk-VBTP56CE.js +535 -0
- package/dist/chunk-VCTWPLAO.js +211 -0
- package/dist/chunk-VNU26RCO.js +1215 -0
- package/dist/{chunk-CSZ4C5N6.js → chunk-VTZMAJ3W.js} +93 -10
- package/dist/{chunk-TXLH6WHQ.js → chunk-VW62D6QE.js} +14 -12
- package/dist/{chunk-CAQZUNOH.js → chunk-VY72R2XZ.js} +610 -3
- package/dist/{chunk-2DIQQJCB.js → chunk-VZALIKIF.js} +18 -15
- package/dist/{chunk-TYAID7B7.js → chunk-W62H2XSO.js} +25 -23
- package/dist/{chunk-HVUPKCGJ.js → chunk-W7VWI2YH.js} +9 -6
- package/dist/{chunk-TANFV3MZ.js → chunk-WERM6KPJ.js} +7 -4
- package/dist/{chunk-BOHJZTEQ.js → chunk-WF7B67YE.js} +208 -87
- package/dist/{chunk-7FBGJFEE.js → chunk-WG5U3F5V.js} +14 -12
- package/dist/{chunk-4NDAAFQT.js → chunk-WJF2CS6M.js} +8 -5
- package/dist/{chunk-XAKWMCXI.js → chunk-WKUJ3KPV.js} +4 -4
- package/dist/chunk-WMTRHUI5.js +103 -0
- package/dist/chunk-WNKPRSGI.js +36 -0
- package/dist/chunk-WXFLMQSR.js +223 -0
- package/dist/{chunk-RRTKKSLQ.js → chunk-X3WY6MN3.js} +8 -6
- package/dist/{chunk-ZCJDOK2S.js → chunk-X4CXA2IL.js} +47 -23
- package/dist/{chunk-UBBC2XSG.js → chunk-X5F3Q5LV.js} +560 -105
- package/dist/{chunk-C6EKFH7J.js → chunk-XD75VZIH.js} +9 -7
- package/dist/chunk-XERYFDB5.js +297 -0
- package/dist/chunk-XI2LCCYQ.js +420 -0
- package/dist/chunk-Y2EQNWKV.js +933 -0
- package/dist/{chunk-LR3R6Z2A.js → chunk-YHCMZC2J.js} +7 -7
- package/dist/chunk-YYY3AZFE.js +122 -0
- package/dist/{chunk-GDLULHTC.js → chunk-Z5IA3WDR.js} +19 -31
- package/dist/{chunk-T6XQL73F.js → chunk-ZFFYNRIO.js} +63 -23
- package/dist/{chunk-EDS2L2LD.js → chunk-ZFL7NY4F.js} +56 -27
- package/dist/{chunk-YMZ3TNYB.js → chunk-ZGULQAPZ.js} +7 -4
- package/dist/{chunk-4SKZDI62.js → chunk-ZIUFM5HT.js} +3 -1
- package/dist/{chunk-DKJA76CJ.js → chunk-ZJFRMSJT.js} +15 -13
- package/dist/chunk-ZJXLNDH4.js +239 -0
- package/dist/chunk-ZQ3ON2VQ.js +252 -0
- package/dist/{chunk-HITVBIJS.js → chunk-ZQ7SKESZ.js} +150 -415
- package/dist/{chunk-6QSERWXH.js → chunk-ZQXZ2SES.js} +24 -21
- package/dist/chunk-ZX57KSEQ.js +39 -0
- package/dist/{chunk-I3E7CX4H.js → chunk-ZZK56BLP.js} +5 -3
- package/dist/files.json +664 -368
- package/dist/packages/naysayer/constitution/constitution.yaml +19 -0
- package/dist/packages/sdk/npm/index.js +6194 -2542
- package/dist/packages/ui/dist/assets/{elk-api-tma0MCuh.js → elk-api-CIf-0gz5.js} +2 -2
- package/dist/packages/ui/dist/assets/index-CoK_Dl0D.js +47 -0
- package/dist/packages/ui/dist/assets/index-Dw20IRhQ.css +1 -0
- package/dist/packages/ui/dist/index.html +3 -2
- package/package.json +5 -5
- package/dist/chunk-2BF2EYJV.js +0 -174
- package/dist/chunk-42EVSKME.js +0 -37
- package/dist/chunk-4BKGMUIK.js +0 -53
- package/dist/chunk-5KLGBXG5.js +0 -48
- package/dist/chunk-6BNC6EQ4.js +0 -41
- package/dist/chunk-6D2CQ5II.js +0 -41
- package/dist/chunk-7AVHLZGD.js +0 -45
- package/dist/chunk-D46WUV3T.js +0 -33
- package/dist/chunk-E36QOJMD.js +0 -47
- package/dist/chunk-FQXYPF7E.js +0 -147
- package/dist/chunk-GBRFVT63.js +0 -45
- package/dist/chunk-ICY36XCH.js +0 -34
- package/dist/chunk-J4K3KVLD.js +0 -131
- package/dist/chunk-JZU3H6UQ.js +0 -54
- package/dist/chunk-NN2ZQEB4.js +0 -38
- package/dist/chunk-PCOCACY3.js +0 -385
- package/dist/chunk-RTEYOSJY.js +0 -29
- package/dist/chunk-RUVFXE2L.js +0 -666
- package/dist/chunk-RVH5SUW5.js +0 -69
- package/dist/chunk-VN3DP4LQ.js +0 -43
- package/dist/chunk-W5BVQF44.js +0 -36
- package/dist/chunk-WVPJSRRJ.js +0 -52
- package/dist/chunk-XPTOBS2D.js +0 -48
- package/dist/packages/ui/dist/assets/index-B54fm9FQ.js +0 -29
- package/dist/packages/ui/dist/assets/index-DD_hufQz.css +0 -1
|
@@ -5,27 +5,27 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
import {
|
|
7
7
|
askHosts
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-MFR5OPBD.js";
|
|
9
9
|
import {
|
|
10
10
|
driftAfterScan
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UGUP3ZM6.js";
|
|
12
12
|
import {
|
|
13
13
|
diffCatalogs,
|
|
14
14
|
diffIsEmpty,
|
|
15
15
|
readCatalog,
|
|
16
16
|
scanEstate,
|
|
17
17
|
writeCatalog
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-J2JAKCIW.js";
|
|
19
19
|
import {
|
|
20
20
|
loadRepos
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-PKBHS4AA.js";
|
|
22
22
|
import {
|
|
23
23
|
catalogDirOf
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-Q2TECDIT.js";
|
|
25
25
|
import {
|
|
26
26
|
LockHeldError,
|
|
27
27
|
acquireLock
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-TUULXQRW.js";
|
|
29
29
|
|
|
30
30
|
// packages/cli/dist/scan-commands.js
|
|
31
31
|
import { join } from "node:path";
|
|
@@ -74,7 +74,7 @@ async function scanCommand(root, o, io) {
|
|
|
74
74
|
}
|
|
75
75
|
try {
|
|
76
76
|
if (o.ref) {
|
|
77
|
-
const { scanBranch } = await import("./chunk-
|
|
77
|
+
const { scanBranch } = await import("./chunk-X4CXA2IL.js");
|
|
78
78
|
return await scanBranch(root, o.ref, {
|
|
79
79
|
...o.repos ? { repos: o.repos } : {},
|
|
80
80
|
...o.full ? { full: true } : {},
|
|
@@ -5,13 +5,13 @@ var __atticusUrl = (p) => new URL("./" + p, import.meta.url).href;
|
|
|
5
5
|
var __atticusPath = (p) => __atticusFileURLToPath(__atticusUrl(p));
|
|
6
6
|
|
|
7
7
|
// packages/core/dist/schema/version.js
|
|
8
|
-
var SCHEMA_VERSION =
|
|
8
|
+
var SCHEMA_VERSION = 5;
|
|
9
9
|
|
|
10
10
|
// packages/core/dist/fs.js
|
|
11
11
|
import { randomBytes } from "node:crypto";
|
|
12
|
-
import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
12
|
+
import { link, mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
13
13
|
import { hostname } from "node:os";
|
|
14
|
-
import { dirname, join } from "node:path";
|
|
14
|
+
import { basename, dirname, join, resolve } from "node:path";
|
|
15
15
|
async function writeFileAtomic(path, data) {
|
|
16
16
|
await mkdir(dirname(path), { recursive: true });
|
|
17
17
|
const tmp = `${path}.${process.pid}.${randomBytes(4).toString("hex")}.tmp`;
|
|
@@ -23,6 +23,32 @@ async function writeFileAtomic(path, data) {
|
|
|
23
23
|
throw e;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
+
var FileChangedError = class extends Error {
|
|
27
|
+
path;
|
|
28
|
+
constructor(path) {
|
|
29
|
+
super(`${path} changed since it was read (another edit, or a person's): nothing was written. Read it again and redo the change.`);
|
|
30
|
+
this.path = path;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var writing = /* @__PURE__ */ new Map();
|
|
34
|
+
function writeFileIfUnchanged(path, before, data) {
|
|
35
|
+
const key = resolve(path);
|
|
36
|
+
const prev = writing.get(key) ?? Promise.resolve();
|
|
37
|
+
const work = async () => {
|
|
38
|
+
const now = await readFile(path, "utf8").catch(() => void 0);
|
|
39
|
+
if (now !== before)
|
|
40
|
+
throw new FileChangedError(path);
|
|
41
|
+
await writeFileAtomic(path, data);
|
|
42
|
+
};
|
|
43
|
+
const next = prev.then(work, work);
|
|
44
|
+
const tail = next.catch(() => void 0);
|
|
45
|
+
writing.set(key, tail);
|
|
46
|
+
void tail.then(() => {
|
|
47
|
+
if (writing.get(key) === tail)
|
|
48
|
+
writing.delete(key);
|
|
49
|
+
});
|
|
50
|
+
return next;
|
|
51
|
+
}
|
|
26
52
|
var BUSY = /* @__PURE__ */ new Set(["EPERM", "EBUSY", "EACCES"]);
|
|
27
53
|
async function renameRetrying(from, to, tries = 9) {
|
|
28
54
|
for (let i = 0; ; i++) {
|
|
@@ -39,12 +65,15 @@ async function renameRetrying(from, to, tries = 9) {
|
|
|
39
65
|
}
|
|
40
66
|
var LockHeldError = class extends Error {
|
|
41
67
|
held;
|
|
42
|
-
|
|
43
|
-
|
|
68
|
+
file;
|
|
69
|
+
constructor(held, file) {
|
|
70
|
+
super(`Another ${held.what} is running (process ${held.pid} on ${held.host}, since ${held.startedAt}). Wait for it to finish${file ? `; if nothing is running, delete ${file}` : ""}.`);
|
|
44
71
|
this.held = held;
|
|
72
|
+
this.file = file;
|
|
45
73
|
this.name = "LockHeldError";
|
|
46
74
|
}
|
|
47
75
|
};
|
|
76
|
+
var heldHere = /* @__PURE__ */ new Set();
|
|
48
77
|
var lockFileOf = (root, name) => join(root, ".atticus", "locks", `${name}.json`);
|
|
49
78
|
function alive(pid) {
|
|
50
79
|
try {
|
|
@@ -54,16 +83,19 @@ function alive(pid) {
|
|
|
54
83
|
return e.code === "EPERM";
|
|
55
84
|
}
|
|
56
85
|
}
|
|
57
|
-
async function readLock(root, name) {
|
|
86
|
+
async function readLock(root, name, o = {}) {
|
|
58
87
|
try {
|
|
59
|
-
const
|
|
60
|
-
const
|
|
88
|
+
const file = lockFileOf(root, name);
|
|
89
|
+
const info = JSON.parse(await readFile(file, "utf8"));
|
|
90
|
+
const here = info.host === hostname();
|
|
91
|
+
const age = (o.now ?? (() => /* @__PURE__ */ new Date()))().getTime() - Date.parse(info.startedAt);
|
|
92
|
+
const stale = here && (!alive(info.pid) || info.pid === process.pid && !heldHere.has(file)) || o.maxAgeMs !== void 0 && Number.isFinite(age) && age > o.maxAgeMs;
|
|
61
93
|
return { ...info, stale };
|
|
62
94
|
} catch {
|
|
63
95
|
return void 0;
|
|
64
96
|
}
|
|
65
97
|
}
|
|
66
|
-
async function acquireLock(root, name, what, now = () => /* @__PURE__ */ new Date()) {
|
|
98
|
+
async function acquireLock(root, name, what, now = () => /* @__PURE__ */ new Date(), o = {}) {
|
|
67
99
|
const file = lockFileOf(root, name);
|
|
68
100
|
await ensureLocalIgnore(root);
|
|
69
101
|
await mkdir(dirname(file), { recursive: true });
|
|
@@ -77,18 +109,20 @@ async function acquireLock(root, name, what, now = () => /* @__PURE__ */ new Dat
|
|
|
77
109
|
for (let attempt = 0; attempt < 2; attempt++) {
|
|
78
110
|
try {
|
|
79
111
|
await writeFile(file, JSON.stringify(info), { encoding: "utf8", flag: "wx" });
|
|
112
|
+
heldHere.add(file);
|
|
80
113
|
const release = async () => {
|
|
81
114
|
const cur = await readLock(root, name);
|
|
82
115
|
if (cur && cur.pid === info.pid && cur.startedAt === info.startedAt)
|
|
83
116
|
await rm(file, { force: true });
|
|
117
|
+
heldHere.delete(file);
|
|
84
118
|
};
|
|
85
119
|
return interrupted ? { release, interrupted } : { release };
|
|
86
120
|
} catch (e) {
|
|
87
121
|
if (e.code !== "EEXIST")
|
|
88
122
|
throw e;
|
|
89
|
-
const held = await readLock(root, name);
|
|
123
|
+
const held = await readLock(root, name, { ...o, now });
|
|
90
124
|
if (held && !held.stale)
|
|
91
|
-
throw new LockHeldError(held);
|
|
125
|
+
throw new LockHeldError(held, file);
|
|
92
126
|
if (held) {
|
|
93
127
|
const { stale: _s, ...rest } = held;
|
|
94
128
|
interrupted = rest;
|
|
@@ -98,6 +132,126 @@ async function acquireLock(root, name, what, now = () => /* @__PURE__ */ new Dat
|
|
|
98
132
|
}
|
|
99
133
|
throw new Error(`Couldn't take the ${name} lock at ${file}.`);
|
|
100
134
|
}
|
|
135
|
+
var sharedLockFileOf = (path) => `${path}.lock`;
|
|
136
|
+
var sharing = /* @__PURE__ */ new Map();
|
|
137
|
+
var sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
138
|
+
function withSharedFileLock(path, work, o = {}) {
|
|
139
|
+
const key = resolve(path);
|
|
140
|
+
const prev = sharing.get(key) ?? Promise.resolve();
|
|
141
|
+
const run = async () => {
|
|
142
|
+
const release = await takeSharedLock(key, o);
|
|
143
|
+
try {
|
|
144
|
+
return await work();
|
|
145
|
+
} finally {
|
|
146
|
+
await release();
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const next = prev.then(run, run);
|
|
150
|
+
const tail = next.catch(() => void 0);
|
|
151
|
+
sharing.set(key, tail);
|
|
152
|
+
void tail.then(() => {
|
|
153
|
+
if (sharing.get(key) === tail)
|
|
154
|
+
sharing.delete(key);
|
|
155
|
+
});
|
|
156
|
+
return next;
|
|
157
|
+
}
|
|
158
|
+
async function takeSharedLock(path, o) {
|
|
159
|
+
const file = sharedLockFileOf(path);
|
|
160
|
+
const staleMs = o.staleMs ?? 1e4;
|
|
161
|
+
const waitMs = o.waitMs ?? 15e3;
|
|
162
|
+
const info = {
|
|
163
|
+
pid: process.pid,
|
|
164
|
+
host: hostname(),
|
|
165
|
+
startedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
166
|
+
what: o.what ?? `write of ${basename(path)}`,
|
|
167
|
+
token: randomBytes(8).toString("hex")
|
|
168
|
+
};
|
|
169
|
+
await mkdir(dirname(file), { recursive: true });
|
|
170
|
+
const start = Date.now();
|
|
171
|
+
let delay = 5;
|
|
172
|
+
for (; ; ) {
|
|
173
|
+
let code;
|
|
174
|
+
try {
|
|
175
|
+
await writeFile(file, JSON.stringify(info), { encoding: "utf8", flag: "wx" });
|
|
176
|
+
return () => releaseShared(file, info.token);
|
|
177
|
+
} catch (e) {
|
|
178
|
+
code = e.code ?? "";
|
|
179
|
+
if (code !== "EEXIST" && !BUSY.has(code))
|
|
180
|
+
throw e;
|
|
181
|
+
}
|
|
182
|
+
let held;
|
|
183
|
+
if (code === "EEXIST") {
|
|
184
|
+
const seen = await readFile(file, "utf8").catch(() => void 0);
|
|
185
|
+
if (seen === void 0)
|
|
186
|
+
continue;
|
|
187
|
+
held = parseLockInfo(seen);
|
|
188
|
+
if (await isStaleShared(file, held, staleMs)) {
|
|
189
|
+
await takeOver(file, seen, info.token);
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (Date.now() - start > waitMs)
|
|
194
|
+
throw new LockHeldError(held ?? { pid: 0, host: "?", startedAt: "?", what: `write of ${basename(path)}` }, file);
|
|
195
|
+
await sleep(delay + Math.floor(Math.random() * delay));
|
|
196
|
+
delay = Math.min(delay * 2, 100);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function parseLockInfo(text) {
|
|
200
|
+
try {
|
|
201
|
+
const j = JSON.parse(text);
|
|
202
|
+
return typeof j.pid === "number" && typeof j.startedAt === "string" ? {
|
|
203
|
+
pid: j.pid,
|
|
204
|
+
host: String(j.host ?? ""),
|
|
205
|
+
startedAt: j.startedAt,
|
|
206
|
+
what: String(j.what ?? "")
|
|
207
|
+
} : void 0;
|
|
208
|
+
} catch {
|
|
209
|
+
return void 0;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
async function isStaleShared(file, held, staleMs) {
|
|
213
|
+
if (held && held.host === hostname() && held.pid !== process.pid && !alive(held.pid))
|
|
214
|
+
return true;
|
|
215
|
+
const since = held ? Date.parse(held.startedAt) : await stat(file).then((s) => s.mtimeMs, () => NaN);
|
|
216
|
+
return Number.isFinite(since) && Date.now() - since > staleMs;
|
|
217
|
+
}
|
|
218
|
+
async function takeOver(file, seen, token) {
|
|
219
|
+
const aside = `${file}.${token}.stale`;
|
|
220
|
+
try {
|
|
221
|
+
await rename(file, aside);
|
|
222
|
+
} catch {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const moved = await readFile(aside, "utf8").catch(() => void 0);
|
|
226
|
+
if (moved !== void 0 && moved !== seen)
|
|
227
|
+
await link(aside, file).catch(() => void 0);
|
|
228
|
+
await rmRetrying(aside);
|
|
229
|
+
}
|
|
230
|
+
async function releaseShared(file, token) {
|
|
231
|
+
const now = await readFile(file, "utf8").catch(() => void 0);
|
|
232
|
+
if (now === void 0)
|
|
233
|
+
return;
|
|
234
|
+
try {
|
|
235
|
+
if (JSON.parse(now).token !== token)
|
|
236
|
+
return;
|
|
237
|
+
} catch {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
await rmRetrying(file);
|
|
241
|
+
}
|
|
242
|
+
async function rmRetrying(file, tries = 9) {
|
|
243
|
+
for (let i = 0; ; i++) {
|
|
244
|
+
try {
|
|
245
|
+
await rm(file, { force: true });
|
|
246
|
+
return;
|
|
247
|
+
} catch (e) {
|
|
248
|
+
const code = e.code ?? "";
|
|
249
|
+
if (!BUSY.has(code) || i >= tries - 1)
|
|
250
|
+
throw e;
|
|
251
|
+
await sleep(20 * 2 ** i);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
101
255
|
var LOCAL_ONLY = [
|
|
102
256
|
"me.yaml",
|
|
103
257
|
"logs/",
|
|
@@ -105,7 +259,9 @@ var LOCAL_ONLY = [
|
|
|
105
259
|
"backups/",
|
|
106
260
|
"history/",
|
|
107
261
|
"probe/",
|
|
108
|
-
"cache/"
|
|
262
|
+
"cache/",
|
|
263
|
+
// ADR 0161: where `atticus map --all` is in the estate, so running it again resumes.
|
|
264
|
+
"map-all/"
|
|
109
265
|
];
|
|
110
266
|
async function ensureLocalIgnore(root) {
|
|
111
267
|
const file = join(root, ".atticus", ".gitignore");
|
|
@@ -114,11 +270,10 @@ async function ensureLocalIgnore(root) {
|
|
|
114
270
|
const missing = LOCAL_ONLY.filter((l) => !have.has(l));
|
|
115
271
|
if (!missing.length)
|
|
116
272
|
return;
|
|
117
|
-
await mkdir(dirname(file), { recursive: true });
|
|
118
273
|
const prefix = text && !text.endsWith("\n") ? `${text}
|
|
119
274
|
` : text;
|
|
120
|
-
await
|
|
121
|
-
|
|
275
|
+
await writeFileAtomic(file, `${prefix}${prefix ? "" : "# This machine's own files: never committed.\n"}${missing.join("\n")}
|
|
276
|
+
`);
|
|
122
277
|
}
|
|
123
278
|
|
|
124
279
|
// packages/core/dist/log.js
|
|
@@ -243,11 +398,15 @@ var NO_LOG = {
|
|
|
243
398
|
export {
|
|
244
399
|
SCHEMA_VERSION,
|
|
245
400
|
writeFileAtomic,
|
|
401
|
+
FileChangedError,
|
|
402
|
+
writeFileIfUnchanged,
|
|
246
403
|
renameRetrying,
|
|
247
404
|
LockHeldError,
|
|
248
405
|
lockFileOf,
|
|
249
406
|
readLock,
|
|
250
407
|
acquireLock,
|
|
408
|
+
sharedLockFileOf,
|
|
409
|
+
withSharedFileLock,
|
|
251
410
|
LOCAL_ONLY,
|
|
252
411
|
ensureLocalIgnore,
|
|
253
412
|
LOG_MAX_BYTES,
|