ryugi-artifacts 1.70.2 → 1.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -12
- package/dist/cli.cjs +3 -3
- package/dist/comment-threads.cjs +52 -1
- package/dist/output-bootstrap.cjs +626 -8
- package/dist/server.cjs +1 -1
- package/dist/viewer/{AgentStatusPill-5vOW9xJv.js → AgentStatusPill-32K1bSLj.js} +1 -1
- package/dist/viewer/{ArtboardLayout-SA1gCqPF.js → ArtboardLayout-eR_sC6MB.js} +1 -1
- package/dist/viewer/{ArtifactList-DKmeVnKi.js → ArtifactList-DV4G_qK2.js} +1 -1
- package/dist/viewer/{AutoPublishPrompt-BYAg2V0y.js → AutoPublishPrompt-BWNRGLoX.js} +1 -1
- package/dist/viewer/{Avatar-Cr9OW8YH.js → Avatar-DGMPym4p.js} +1 -1
- package/dist/viewer/{Avatar-NMdjRnIS.js → Avatar-oPUFOoVq.js} +1 -1
- package/dist/viewer/{BottomSheet-BQnGJL4p.js → BottomSheet-BqMckeYt.js} +1 -1
- package/dist/viewer/Canvas-BpSDoGt-.js +1 -0
- package/dist/viewer/{CompositeItem-tvyaiM7D.js → CompositeItem-DA-WyEr7.js} +1 -1
- package/dist/viewer/DocumentLayout-BXegH0sF.js +2 -0
- package/dist/viewer/{DocumentPage-CxPKfY8H.js → DocumentPage-Dw7m0Oxi.js} +2 -2
- package/dist/viewer/{DropdownMenu-DQRhgqL-.js → DropdownMenu-C4feb-Mq.js} +1 -1
- package/dist/viewer/{HtmlLayout-DzcNJHBz.js → HtmlLayout-DltXJryH.js} +1 -1
- package/dist/viewer/{MenuSubmenuTrigger-CFAM5XEZ.js → MenuSubmenuTrigger-B_Ya87it.js} +1 -1
- package/dist/viewer/{MenuTrigger-COssWqPW.js → MenuTrigger-C421vH74.js} +1 -1
- package/dist/viewer/{PhoneArtboardBar-B6JoWeSs.js → PhoneArtboardBar-BUlgF3vS.js} +1 -1
- package/dist/viewer/{PhoneSheet-F7YTU--u.js → PhoneSheet-4j89IU2w.js} +1 -1
- package/dist/viewer/{Popover-4xoki5-K.js → Popover-C23mZ93A.js} +1 -1
- package/dist/viewer/{PreviewLayout-4K_gFN2k.js → PreviewLayout-CMYzEEL_.js} +2 -2
- package/dist/viewer/{Segmented-CFwxjVOk.js → Segmented-CRw0XP1f.js} +1 -1
- package/dist/viewer/{Select-CwMZ_V48.js → Select-BCfJ7Dw_.js} +1 -1
- package/dist/viewer/{SelectScrollUpArrow-D1wI2boK.js → SelectScrollUpArrow-CTtHJLxk.js} +1 -1
- package/dist/viewer/{SettingsDialog-ytisgF60.js → SettingsDialog-DXraxvYr.js} +1 -1
- package/dist/viewer/{SnapshotDocument-hqdNWrGC.js → SnapshotDocument-DK5PtxZf.js} +1 -1
- package/dist/viewer/{SplitShell-CPNXykMT.js → SplitShell-BXL8Wrt6.js} +1 -1
- package/dist/viewer/{ThreadView-CxcjZsZO.js → ThreadView-BB278JlB.js} +1 -1
- package/dist/viewer/{TooltipPopup-D7gvHCZl.js → TooltipPopup-CfrIPB9r.js} +1 -1
- package/dist/viewer/{VirtualizedEditor-uWe43zaI-jXQYKA6Y.js → VirtualizedEditor-uWe43zaI-CU144P8N.js} +1 -1
- package/dist/viewer/{VirtualizedRenderer-C_d95FXi-DXOAwChO.js → VirtualizedRenderer-C_d95FXi-F9BGUjW7.js} +1 -1
- package/dist/viewer/{WarningsBadge-yykGlxIS.js → WarningsBadge-8P8HTqhj.js} +1 -1
- package/dist/viewer/{WhiteboardLayout-DrbL4lir.js → WhiteboardLayout-CvpcOBD0.js} +1 -1
- package/dist/viewer/{WritingCursor-BmvJsfI4.js → WritingCursor-D5F8GgYm.js} +1 -1
- package/dist/viewer/{abnfDiagram-VCTEODGH-BcWo9FwK.js → abnfDiagram-VCTEODGH-B0LKfCdw.js} +1 -1
- package/dist/viewer/{agentLook-t-qk7xG-.js → agentLook-nPOaN-2B.js} +1 -1
- package/dist/viewer/{anchor-CMDdppxq.js → anchor-DOedlAmb.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-Cm_ExiPk.js → ar-SA-G6X2FPQ2-B5ymZ6-7.js} +1 -1
- package/dist/viewer/{architecture-7GRP2DOG-B0ELn-r9.js → architecture-7GRP2DOG-BMYJCrZV.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-pjk1bmyn.js → architectureDiagram-5GKGNRK7-CTIIuGJC.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-C3xDoCfK.js → az-AZ-76LH7QW2-0e4OEoQn.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-BuqoExRt.js → bg-BG-XCXSNQG7-BK4Yfu0v.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-Bt5Fgmbw.js → blockDiagram-I7D4REHJ-BCY39CK-.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-Cb6R-JhO.js → bn-BD-2XOGV67Q-DY0dhZri.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-DVoqgVNh.js → c4Diagram-7LVT6UL2-C4bAGSRF.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-C9x3VZP6.js → ca-ES-6MX7JW3Y-DYeaKAAZ.js} +1 -1
- package/dist/viewer/{channel-B6od2bv2.js → channel-CMKOAKFL.js} +5 -5
- package/dist/viewer/channel-Dg0tnVaL.js +1 -0
- package/dist/viewer/{chunk-4HAMMTFA-CTdlWrtX.js → chunk-4HAMMTFA-DKKrCtt5.js} +1 -1
- package/dist/viewer/{chunk-75Z2AOVW-C_A1Se9D.js → chunk-75Z2AOVW-CxnIcYMY.js} +1 -1
- package/dist/viewer/{chunk-DU6HZSFF-Dr7PaN7b.js → chunk-DU6HZSFF-CO07tHJW.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-oHJkbpFs.js → chunk-EIO257PC-qXGHvKXr.js} +1 -1
- package/dist/viewer/{chunk-F27PBJKO-BBCDjN53.js → chunk-F27PBJKO-BKgYSwDY.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-BFHBOVJq.js → chunk-GMAD6QVW-BbSqVE_3.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-BIpEZyzS.js → chunk-GVQU2GXP-CybTk49_.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-KEawvx8K.js → chunk-IMKFNOWR-jCedT_zr.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-IwBcwkuk.js → chunk-L3NEJ4N5-CdvkCIkZ.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-C3k_p7-w.js → chunk-OSK3NFVY-9vAyeFw7.js} +1 -1
- package/dist/viewer/{chunk-P2QGCYS3-Dtm_7Lz7.js → chunk-P2QGCYS3-CLr9GbT7.js} +1 -1
- package/dist/viewer/{chunk-POPQ4Y6H-CytCoNkh.js → chunk-POPQ4Y6H-CI_O6mAo.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-CyHOdyql.js → chunk-PWAF6VOD-mr5E6zf6.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-DD7pl4JI.js → chunk-SHT3W25Y-DYrFyqoc.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-Bu4mLQNH.js → chunk-SVP7TREG-dMNx_CcY.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-sZ8FCdF0.js → chunk-TICWLB2K-BGQtf-K3.js} +1 -1
- package/dist/viewer/classDiagram-ZZMXUADV-I3gtgBTd.js +1 -0
- package/dist/viewer/classDiagram-v2-VYDZK3BY-I3gtgBTd.js +1 -0
- package/dist/viewer/{cs-CZ-2BRQDIVT-BYzmp2zB.js → cs-CZ-2BRQDIVT-DjaDntjh.js} +1 -1
- package/dist/viewer/{cynefin-OW5HDTMX-BRRxGfUD.js → cynefin-OW5HDTMX-DsZ0qkVs.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-BJJG-W2c.js → cynefinDiagram-5FMLGOSQ-Y54wafYF.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-BQMUVHri.js → da-DK-5WZEPLOC-Tqj9zEgt.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-18YALgQ_.js → dagre-GXQ25YYZ-BehPXdKF.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-CXVFrfP-.js → de-DE-XR44H4JA-B7Ys3_AN.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-BxB2LRSe.js → diagram-S7CK7UJ4-CUPMHvHL.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-BcJ9Tkbs.js → diagram-UQ7AKVKN-Cnsotkkq.js} +1 -1
- package/dist/viewer/{diagram-VSXAHHWV-_UeBcZmY.js → diagram-VSXAHHWV-_Gb0p4Xt.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-Bc9iy24S.js → diagram-VX7I27RA-6b_DdSPn.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-gU89rmSx.js → diagram-Z3DM3KII-C3auC1O2.js} +1 -1
- package/dist/viewer/{dist-CimouhBR.js → dist-7UQnJyoY.js} +1 -1
- package/dist/viewer/{dist-Ckk8Ln7v.js → dist-B2Pz6jKV.js} +1 -1
- package/dist/viewer/{dist-DFoTCsMa.js → dist-BKIoajE3.js} +1 -1
- package/dist/viewer/{dist-CtNq8Fc3.js → dist-BNqLQbx8.js} +1 -1
- package/dist/viewer/{dist-OI9ayuXJ.js → dist-Bpc6MjnN.js} +1 -1
- package/dist/viewer/{dist-DP3kgHOu.js → dist-C30QaZlo.js} +1 -1
- package/dist/viewer/{dist-B2iLAjhx.js → dist-C54IWjMq.js} +1 -1
- package/dist/viewer/{dist-DeLN4KiV.js → dist-CAlOKecF.js} +1 -1
- package/dist/viewer/{dist-k5REaceC.js → dist-CLMpMvW8.js} +1 -1
- package/dist/viewer/{dist-zAsatJ3z.js → dist-CivKp_88.js} +1 -1
- package/dist/viewer/{dist-T5bhQ39l.js → dist-D0jfqsk3.js} +1 -1
- package/dist/viewer/{dist-Cb-yo3Gf.js → dist-D1ltcskn.js} +1 -1
- package/dist/viewer/{dist-DhLyhl2k.js → dist-D8yTrHOe.js} +1 -1
- package/dist/viewer/{dist-B6jptwyK.js → dist-DJD7Rxl_.js} +1 -1
- package/dist/viewer/{dist-QVTBQ_Lo.js → dist-DKC2CFz3.js} +1 -1
- package/dist/viewer/{dist-CjrbmuC6.js → dist-DYYos7aA.js} +1 -1
- package/dist/viewer/{dist-DNnbAIPr.js → dist-DjX-jLyv.js} +1 -1
- package/dist/viewer/{dist-C3p_NYog.js → dist-DmX9cG26.js} +1 -1
- package/dist/viewer/{dist-DksKyGM5.js → dist-Dvpwh6aN.js} +1 -1
- package/dist/viewer/{dist-B-4OmMiD.js → dist-Q62YQ6Tz.js} +1 -1
- package/dist/viewer/{dist-CoQPmYDy.js → dist-SjMB3ORD.js} +1 -1
- package/dist/viewer/{dist-CqZmBkkh.js → dist-pOfDFOb4.js} +1 -1
- package/dist/viewer/{dist-QjnQrlMe.js → dist-ujkFdcwL.js} +4 -4
- package/dist/viewer/{dist-2zwLzKuW.js → dist-xaJ7cT-p.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-C8HSoSRy.js → ebnfDiagram-PWID7BFC-CE0BLrbg.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-ow3fFVLT.js → el-GR-BZB4AONW-D1iu3D-5.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-CaY3r9HU.js → en-B4ZKOASM-q9ZI4jM7.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-BxJx7rlQ.js → erDiagram-RLTQ6QDP-gRel-NWS.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-BMjMaVCY.js → es-ES-U4NZUMDT-C2iEjmwQ.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-CM4bkpMu.js → eu-ES-A7QVB2H4-BT6Rltb3.js} +1 -1
- package/dist/viewer/{eventmodeling-NTZA5JFV-DnbDCfB2.js → eventmodeling-NTZA5JFV-Bk9WCA8V.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-BLD2tQpT.js → fa-IR-HGAKTJCU-CqwuajY6.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-Bgn7EPoz.js → fi-FI-Z5N7JZ37-B5eOrZnB.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-yZn6O744.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-Bkw82-6W.js → fr-FR-RHASNOE6-CuAP0ov3.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-DOR_e0je.js → ganttDiagram-EL5Y4UJY-A51eLNzS.js} +1 -1
- package/dist/viewer/{gitGraph-4MIJSDKK-SVRQ5W4D.js → gitGraph-4MIJSDKK-DLjlyn5v.js} +1 -1
- package/dist/viewer/{gitGraphDiagram-WWUBYQGX-CDiQ0mCt.js → gitGraphDiagram-WWUBYQGX-CpflpsWN.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-BLzHqZN8.js → gl-ES-HMX3MZ6V-DNzL8ZLj.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-D8wU25du.js → he-IL-6SHJWFNN-BL2IqUA2.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-BL-e61Xu.js → hi-IN-IWLTKZ5I-Cc_Z6cIK.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-DbYToYgQ.js → hu-HU-A5ZG7DT2-BpJys7hD.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-CCT_QszX.js → id-ID-SAP4L64H-D4zLMff9.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-DKoD4XKV.js → image-GAAHSSAO-BKQeWnXf.js} +1 -1
- package/dist/viewer/index.html +5 -5
- package/dist/viewer/index.js +2 -2
- package/dist/viewer/index3.css +102 -4
- package/dist/viewer/{info-A6RAGUB7-CX2C9N30.js → info-A6RAGUB7-DvZhLcWt.js} +1 -1
- package/dist/viewer/{infoDiagram-27XIBGKW-CN86my9R.js → infoDiagram-27XIBGKW-Cb6BEK3u.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-5BluWj2f.js → ishikawaDiagram-5VMMS53U-wRvUis49.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-afXtP8Ww.js → it-IT-JPQ66NNP-DQMNMOSZ.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-DekQisaL.js → ja-JP-DBVTYXUO-CyTOe7Y8.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-CJC3KFyX.js → journeyDiagram-3NMN7TZE-DrV8-21n.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-tRph-_T2.js → kaa-6HZHGXH3-Bid3n_YF.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-BE4QoOsA.js → kab-KAB-ZGHBKWFO-BYjsuHFe.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-B18ysZ84.js → kanban-definition-UXKFOSKX-DWK9G9rt.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-CVRotJxc.js → kk-KZ-P5N5QNE5-DP8c-ogr.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-hAYTx672.js → km-KH-HSX4SM5Z-xmnFjfoK.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-QEVtuRm5.js → ko-KR-MTYHY66A-DBXzp-hP.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-CRm854Ze.js → ku-TR-6OUDTVRD-DjqLLQgd.js} +1 -1
- package/dist/viewer/{local-split-host-B8nXcoph.js → local-split-host-D5XeWHs2.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-CKPgIz76.js → lt-LT-XHIRWOB4-CiXIbBlP.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-ChfyCJQM.js → lv-LV-5QDEKY6T-BBg2ICUg.js} +1 -1
- package/dist/viewer/{mermaid-parser.core-BVnYCq41.js → mermaid-parser.core-DIrH0vIS.js} +3 -3
- package/dist/viewer/{mindmap-definition-YA3MSWOX-DHv3E1P_.js → mindmap-definition-YA3MSWOX-D-RKw5yH.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-BJLGlD17.js → mr-IN-CRQNXWMA-BvFZO2Ww.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-9rLlVOlt.js → my-MM-5M5IBNSE-B2vH-znI.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-B8VMz4zh.js → nb-NO-T6EIAALU-BbKLi7pg.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-DqLxBYZV.js → nl-NL-IS3SIHDZ-Djj6TAo1.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-Bo0PPFBQ.js → nn-NO-6E72VCQL-C9FENQ04.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-CWWRWFHX.js → oc-FR-POXYY2M6-Bb9oRGl0.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-DT0tg3Sk.js → pa-IN-N4M65BXN-GiTIcI0J.js} +1 -1
- package/dist/viewer/{packet-AYTQ26CC-KGzO-wcr.js → packet-AYTQ26CC-CtVAKo8Y.js} +1 -1
- package/dist/viewer/{parseTrigger-Bu-PV9CL.js → parseTrigger-G_dEUQ-S.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-Dic4eBsi.js → pegDiagram-XKGWAZYB-DoKug0Ul.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-D095tJfv.js +1 -0
- package/dist/viewer/{pie-WAS4IAKB-BYfJrbuD.js → pie-WAS4IAKB-CxVCcwr-.js} +1 -1
- package/dist/viewer/{pieDiagram-E7YTZNPT-CjUaUWV2.js → pieDiagram-E7YTZNPT-cjr6q7MN.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-Ch27cnOo.js → pl-PL-T2D74RX3-Bn1NSuWG.js} +1 -1
- package/dist/viewer/preview.html +4 -4
- package/dist/viewer/preview.js +1 -1
- package/dist/viewer/{prod-TT-J6Nam.js → prod-CaFKRNhp.js} +8 -8
- package/dist/viewer/{pt-BR-5N22H2LF-8J6Vfb7V.js → pt-BR-5N22H2LF-BI-zbYLr.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-BX7qQNlR.js → pt-PT-UZXXM6DQ-319Tw5BW.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-r9uBJJoA.js → quadrantDiagram-AXDQQJYC-BZ8DulYV.js} +1 -1
- package/dist/viewer/{radar-RG4KPBEZ-DDBCvrzl.js → radar-RG4KPBEZ-CQfJyEYa.js} +1 -1
- package/dist/viewer/{railroad-74A4TZTK-DHdJAn7o.js → railroad-74A4TZTK-BYRU4vXG.js} +1 -1
- package/dist/viewer/{railroad-abnf-HS5TGJTU-D9wWd5uO.js → railroad-abnf-HS5TGJTU-B38hjcrZ.js} +1 -1
- package/dist/viewer/{railroad-ebnf-LZEXJU2U-D-NZ6dqJ.js → railroad-ebnf-LZEXJU2U-CNMwCkdT.js} +1 -1
- package/dist/viewer/{railroad-peg-WCYAUIDC-CyPMQZm7.js → railroad-peg-WCYAUIDC-xAU0vZOf.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-CWrubsQf.js → railroadDiagram-O6MQD6OU-DbEnsKie.js} +1 -1
- package/dist/viewer/{ref-BF7Dk-nb.js → ref-BwCMEjB3.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-YIdQ9sc_.js → requirementDiagram-BXWQKSXE-D92sYU7y.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-2Pp-dKmW.js → ro-RO-JPDTUUEW-VijYgS5D.js} +1 -1
- package/dist/viewer/{route-CDT5H7Dv.js → route-IxDJQ-oO.js} +1 -1
- package/dist/viewer/{route-messages-E7uG4Fm7.js → route-messages-CJ5JptAX.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-DPkLOvY0.js → ru-RU-B4JR7IUQ-HPA0KGMP.js} +1 -1
- package/dist/viewer/{sankeyDiagram-P5KCCOFB-BQftNXO2.js → sankeyDiagram-P5KCCOFB-JlEPpJZr.js} +1 -1
- package/dist/viewer/{selection-BTJrtSto.js → selection-B2_QE61M.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-C90CSvsu.js → sequenceDiagram-WJ2MYXX4-lImr5uIr.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-DjQ-ynCO.js → si-LK-N5RQ5JYF-D3xEcphZ.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-Do9H8uzR.js → sk-SK-C5VTKIMK-Db8aZYTC.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-bJ5rRome.js → sl-SI-NN7IZMDC-eFJNBgsb.js} +1 -1
- package/dist/viewer/{split-url-D0Eu87y4.js → split-url-DL2J8T-a.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-pBFTeHBj.js → stateDiagram-D77RDMKH-DlBhDgXR.js} +1 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-Byaeiehp.js +1 -0
- package/dist/viewer/subset-shared.chunk-BNAGyqG3.js +1 -0
- package/dist/viewer/{subset-worker.chunk-3zYap8Q-.js → subset-worker.chunk-7eRPBTIK.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-C0oEs72p.js → sv-SE-XGPEYMSR-1ooAaIdn.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-CTsMizz_.js → swimlanes-42K2YHIH-Dk9L2F9U.js} +1 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-DNI8atPj.js +8 -0
- package/dist/viewer/{ta-IN-2NMHFXQM-B3AATr70.js → ta-IN-2NMHFXQM-r-PlEE_o.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-DQBS-yab.js → th-TH-HPSO5L25-DCSuXNKm.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-C-XiBPgr.js → timeline-definition-24CTP7MA-CuLHXBb9.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-ag7nD5kA.js → tr-TR-DEFEU3FU-DmRbSHuX.js} +1 -1
- package/dist/viewer/{treeView-Q6P3EWNA-SVlfuIv-.js → treeView-Q6P3EWNA-70u6vE6C.js} +1 -1
- package/dist/viewer/{treemap-WGGIJYW6-_ZShzHPs.js → treemap-WGGIJYW6-BgaNezOX.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-BSQfUSoA.js → uk-UA-QMV73CPH-CcDh2WkS.js} +1 -1
- package/dist/viewer/{useAriaLabelledBy-BuWax2Z2.js → useAriaLabelledBy-Cu8JrnAw.js} +1 -1
- package/dist/viewer/{useOpenInteractionType-DH5mUVhj.js → useOpenInteractionType-LXvb6AtX.js} +1 -1
- package/dist/viewer/{useTranslation-BNqJXci1.js → useTranslation-DGPvUY4J.js} +1 -1
- package/dist/viewer/{useTypeFavicon-B3gDp1sZ.js → useTypeFavicon-DIU-6w2G.js} +1 -1
- package/dist/viewer/{vennDiagram-4TSXK5OY-BV0PYWnH.js → vennDiagram-4TSXK5OY-Dm5qhhY3.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-Dl7QA_Y_.js → vi-VN-M7AON7JQ-DWAX0NEb.js} +1 -1
- package/dist/viewer/{view--v3LsuO9.js → view-HJ0ahbDf.js} +1 -1
- package/dist/viewer/{viewport-CFJHn_Y6-CSiflW-L.js → viewport-CFJHn_Y6-B-kdQ7xr.js} +1 -1
- package/dist/viewer/{wardley-WFR3VGLG-BNvAuofQ.js → wardley-WFR3VGLG-CmWgAGP4.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-B12XuiXU.js → wardleyDiagram-VM6X3IG4-DTCi6DmX.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-CNASGt-y.js → xychartDiagram-S5SC5T6Z-DxA0cQ3A.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-BN9rjxsZ.js → zh-CN-LNUGB5OW-C0GKmW1G.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-DVH9Q1Iz.js → zh-HK-E62DVLB3-CnrjNkY6.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-CZYgWnVr.js → zh-TW-RAJ6MFWO-CzT4lffH.js} +1 -1
- package/dist/viewer-lib/{Canvas-DlB6aB_J.js → Canvas-Czt9ltgM.js} +313 -259
- package/dist/viewer-lib/{PhoneArtboardBar-Cjyyjai7.js → PhoneArtboardBar-KVFmaCba.js} +2 -2
- package/dist/viewer-lib/{PreviewView-ck_p8T5E.js → PreviewView-BWt3dX8d.js} +2 -2
- package/dist/viewer-lib/{ReadOnlyWhiteboard-BaHks6CC.js → ReadOnlyWhiteboard-DkN-iQ5e.js} +4 -4
- package/dist/viewer-lib/{RyugiLoader-_MZxEs2s.js → RyugiLoader-CxyL1n9v.js} +10 -9
- package/dist/viewer-lib/{SnapshotDocument-Cnh1MruG.js → SnapshotDocument-CbuCIqIZ.js} +32 -32
- package/dist/viewer-lib/{VirtualizedEditor-uWe43zaI-BDnJhFJS.js → VirtualizedEditor-uWe43zaI-XBNVQjy2.js} +2 -2
- package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-BuO0NiU-.js → VirtualizedRenderer-C_d95FXi-8iSF4rXx.js} +3 -3
- package/dist/viewer-lib/{WarningsBadge-p7-QKPVW.js → WarningsBadge-SVKLlXSz.js} +1 -1
- package/dist/viewer-lib/{ar-SA-G6X2FPQ2-BulQwi8B.js → ar-SA-G6X2FPQ2-CcppcMle.js} +1 -1
- package/dist/viewer-lib/{az-AZ-76LH7QW2-CI40Y8TL.js → az-AZ-76LH7QW2-C_SU1Xpr.js} +1 -1
- package/dist/viewer-lib/{bg-BG-XCXSNQG7-BzDIvwtq.js → bg-BG-XCXSNQG7-CWd7fzy0.js} +1 -1
- package/dist/viewer-lib/{bn-BD-2XOGV67Q-C-pgv3qu.js → bn-BD-2XOGV67Q-B0z6Tw9j.js} +1 -1
- package/dist/viewer-lib/{ca-ES-6MX7JW3Y-D6x8nfLg.js → ca-ES-6MX7JW3Y-B2xRB0B0.js} +1 -1
- package/dist/viewer-lib/{chunk-EIO257PC-CeMsMfCl.js → chunk-EIO257PC-D6Jf6Xmm.js} +1 -1
- package/dist/viewer-lib/core.js +4 -4
- package/dist/viewer-lib/{cs-CZ-2BRQDIVT-0ckei0wD.js → cs-CZ-2BRQDIVT-BZKj-SkP.js} +1 -1
- package/dist/viewer-lib/{da-DK-5WZEPLOC-ZduCWsZg.js → da-DK-5WZEPLOC-CW0PeGhv.js} +1 -1
- package/dist/viewer-lib/{de-DE-XR44H4JA-Dhn4t1S-.js → de-DE-XR44H4JA-BNWPKMsf.js} +1 -1
- package/dist/viewer-lib/{dist-Di9F7JPb.js → dist-80gN5MDf.js} +3 -3
- package/dist/viewer-lib/{dist-BCW8Zb-U.js → dist-B1eQ7mh1.js} +2 -2
- package/dist/viewer-lib/{dist-DNsjbGxb.js → dist-B8C9-q9r.js} +2 -2
- package/dist/viewer-lib/{dist-CSfdU4jd.js → dist-BAFLptZH.js} +3 -3
- package/dist/viewer-lib/{dist-DDVF8zAt.js → dist-BGKw9XQy.js} +2 -2
- package/dist/viewer-lib/{dist-BbswzSKs.js → dist-C05yE_u3.js} +3 -3
- package/dist/viewer-lib/{dist-CzN9MAge.js → dist-CG3jaold.js} +2 -2
- package/dist/viewer-lib/{dist-XBsZajBB.js → dist-CLixy726.js} +4 -4
- package/dist/viewer-lib/{dist-8NTQy8U-.js → dist-CXXXkgsH.js} +1 -1
- package/dist/viewer-lib/{dist-Dwz5JxbC.js → dist-Cl-thFU5.js} +3 -3
- package/dist/viewer-lib/{dist-DlpJUiVE.js → dist-Csam7y04.js} +1 -1
- package/dist/viewer-lib/{dist-raPDHOGI.js → dist-D01J0hzJ.js} +2 -2
- package/dist/viewer-lib/{dist-06ekt-ke.js → dist-D33Sd5z1.js} +3 -3
- package/dist/viewer-lib/{dist-Cbrc_d6r.js → dist-DHj3-Pp5.js} +2 -2
- package/dist/viewer-lib/{dist-BbM5jkng.js → dist-DQDlkYqz.js} +3 -3
- package/dist/viewer-lib/{dist-DoVnKIC0.js → dist-DVGe9QEo.js} +3 -3
- package/dist/viewer-lib/{dist-CajfXdQP.js → dist-DczdJ0Ss.js} +3 -3
- package/dist/viewer-lib/{dist-5_jnZVlO.js → dist-Dug8w68g.js} +4 -4
- package/dist/viewer-lib/{dist-CgtdwEjB.js → dist-TYFSuN0R.js} +3 -3
- package/dist/viewer-lib/{dist-BTI5z3BP.js → dist-V1Zz1gd6.js} +3 -3
- package/dist/viewer-lib/{dist-DwFHgVKa.js → dist-jwZIUB0I.js} +4 -4
- package/dist/viewer-lib/{dist-CiAUyx7m.js → dist-lWjeTWd-.js} +2 -2
- package/dist/viewer-lib/{dist-DGvnQ0_D.js → dist-zUHol6rl.js} +2 -2
- package/dist/viewer-lib/document.js +7 -7
- package/dist/viewer-lib/{el-GR-BZB4AONW-CJr0Z7TF.js → el-GR-BZB4AONW-CoQS6FL1.js} +1 -1
- package/dist/viewer-lib/{en-B4ZKOASM-lv6d1blP.js → en-B4ZKOASM-DQdepYlH.js} +1 -1
- package/dist/viewer-lib/{es-ES-U4NZUMDT-CoN1P7ea.js → es-ES-U4NZUMDT-dFGK-tCc.js} +1 -1
- package/dist/viewer-lib/{eu-ES-A7QVB2H4-C9ndoQ2r.js → eu-ES-A7QVB2H4-CTPQRG6p.js} +1 -1
- package/dist/viewer-lib/{fa-IR-HGAKTJCU-CfrK4kxd.js → fa-IR-HGAKTJCU-CTuq4ikl.js} +1 -1
- package/dist/viewer-lib/{fi-FI-Z5N7JZ37-CLBbeiQY.js → fi-FI-Z5N7JZ37-D0JlmPmA.js} +1 -1
- package/dist/viewer-lib/{fr-FR-RHASNOE6-CF0M8dHT.js → fr-FR-RHASNOE6-RlGS8zAt.js} +1 -1
- package/dist/viewer-lib/{gl-ES-HMX3MZ6V-Ds78xJRC.js → gl-ES-HMX3MZ6V-BnQPblSD.js} +1 -1
- package/dist/viewer-lib/{he-IL-6SHJWFNN-T3gPOUQI.js → he-IL-6SHJWFNN-PmN9hBtd.js} +1 -1
- package/dist/viewer-lib/{hi-IN-IWLTKZ5I-BPB6ep5X.js → hi-IN-IWLTKZ5I-BeCrGSfv.js} +1 -1
- package/dist/viewer-lib/{hu-HU-A5ZG7DT2-CroFJ3-c.js → hu-HU-A5ZG7DT2-D0c6msJe.js} +1 -1
- package/dist/viewer-lib/{id-ID-SAP4L64H-BdiIiD1M.js → id-ID-SAP4L64H-DA8yn9MO.js} +1 -1
- package/dist/viewer-lib/{image-GAAHSSAO-tMWhJP5r.js → image-GAAHSSAO-B5NCrxDY.js} +1 -1
- package/dist/viewer-lib/index.js +10 -10
- package/dist/viewer-lib/{it-IT-JPQ66NNP-BeGV_PNa.js → it-IT-JPQ66NNP-Msb_59SR.js} +1 -1
- package/dist/viewer-lib/{ja-JP-DBVTYXUO-BfX9p-BL.js → ja-JP-DBVTYXUO-DF9ymwH_.js} +1 -1
- package/dist/viewer-lib/{kaa-6HZHGXH3-B49iCC1F.js → kaa-6HZHGXH3-DLdj8h7V.js} +1 -1
- package/dist/viewer-lib/{kab-KAB-ZGHBKWFO-DOcMX5a2.js → kab-KAB-ZGHBKWFO-DEnShB8n.js} +1 -1
- package/dist/viewer-lib/{kk-KZ-P5N5QNE5-B5SKdTP9.js → kk-KZ-P5N5QNE5-BZpCUQAO.js} +1 -1
- package/dist/viewer-lib/{km-KH-HSX4SM5Z-DhdPNTTx.js → km-KH-HSX4SM5Z-DJfTgaU-.js} +1 -1
- package/dist/viewer-lib/{ko-KR-MTYHY66A-C-zT8umZ.js → ko-KR-MTYHY66A-XCk-trJi.js} +1 -1
- package/dist/viewer-lib/{ku-TR-6OUDTVRD-C4kAusNi.js → ku-TR-6OUDTVRD-ILEraaqU.js} +1 -1
- package/dist/viewer-lib/{lib-DNNuUrSz.js → lib-BECZaH4I.js} +1 -1
- package/dist/viewer-lib/{lt-LT-XHIRWOB4-B_sxP0eq.js → lt-LT-XHIRWOB4-DR0XA43x.js} +1 -1
- package/dist/viewer-lib/{lv-LV-5QDEKY6T-sD6HgFZ4.js → lv-LV-5QDEKY6T-CDJh4KcF.js} +1 -1
- package/dist/viewer-lib/{mr-IN-CRQNXWMA-Cd5o1iq-.js → mr-IN-CRQNXWMA-lAh3x0wf.js} +1 -1
- package/dist/viewer-lib/{my-MM-5M5IBNSE-CoNWjvsH.js → my-MM-5M5IBNSE-CWbsKpe7.js} +1 -1
- package/dist/viewer-lib/{nb-NO-T6EIAALU-C-i8AySs.js → nb-NO-T6EIAALU-DsOr20_y.js} +1 -1
- package/dist/viewer-lib/{nl-NL-IS3SIHDZ-C1ldIK2V.js → nl-NL-IS3SIHDZ-BvJDYbbm.js} +1 -1
- package/dist/viewer-lib/{nn-NO-6E72VCQL-BbufodQ2.js → nn-NO-6E72VCQL-BB2FmVFh.js} +1 -1
- package/dist/viewer-lib/{oc-FR-POXYY2M6-hBKLK-RY.js → oc-FR-POXYY2M6-Bvwx0qAP.js} +1 -1
- package/dist/viewer-lib/{pa-IN-N4M65BXN-CMYieHVI.js → pa-IN-N4M65BXN-p8MWsauR.js} +1 -1
- package/dist/viewer-lib/percentages-BXMCSKIN-DA7GjP-1.js +1 -0
- package/dist/viewer-lib/{pl-PL-T2D74RX3-BLBveBOC.js → pl-PL-T2D74RX3-DbxHOV0E.js} +1 -1
- package/dist/viewer-lib/{plugin-_bGVeqI0-x1NbXzpN.js → plugin-_bGVeqI0-BuoZIQw-.js} +1 -1
- package/dist/viewer-lib/{prod-CKvZ5R1W.js → prod-Duev06nH.js} +59 -59
- package/dist/viewer-lib/{pt-BR-5N22H2LF-Br5SP3ty.js → pt-BR-5N22H2LF-G_V26Vnw.js} +1 -1
- package/dist/viewer-lib/{pt-PT-UZXXM6DQ-D_gaSKkX.js → pt-PT-UZXXM6DQ-Cibz3GSp.js} +1 -1
- package/dist/viewer-lib/{ro-RO-JPDTUUEW-Cq-mwLjh.js → ro-RO-JPDTUUEW-5IR97wtM.js} +1 -1
- package/dist/viewer-lib/{route-messages-DFgs1Qi1.js → route-messages-YkEDJrGo.js} +2 -2
- package/dist/viewer-lib/{ru-RU-B4JR7IUQ-C4b2ijd5.js → ru-RU-B4JR7IUQ-Bhzxtys5.js} +1 -1
- package/dist/viewer-lib/{si-LK-N5RQ5JYF-DvGkDzKr.js → si-LK-N5RQ5JYF-DkbW4kwL.js} +1 -1
- package/dist/viewer-lib/{sk-SK-C5VTKIMK-Cru-JD0e.js → sk-SK-C5VTKIMK-CHvUkTDC.js} +1 -1
- package/dist/viewer-lib/{sl-SI-NN7IZMDC-5FFks32p.js → sl-SI-NN7IZMDC-9wfKjcdf.js} +1 -1
- package/dist/viewer-lib/{stylex-CCivaCRo.css → stylex-DSPr67HN.css} +102 -4
- package/dist/viewer-lib/subset-shared.chunk-C9VoCzEr.js +2 -0
- package/dist/viewer-lib/{subset-worker.chunk-CRX53Rzc.js → subset-worker.chunk-BpDvwKQR.js} +2 -2
- package/dist/viewer-lib/{sv-SE-XGPEYMSR-LuNY2685.js → sv-SE-XGPEYMSR-CiYigmBB.js} +1 -1
- package/dist/viewer-lib/{ta-IN-2NMHFXQM-culSf0A8.js → ta-IN-2NMHFXQM-BsrjQGCa.js} +1 -1
- package/dist/viewer-lib/{th-TH-HPSO5L25-Cn-xDXVd.js → th-TH-HPSO5L25-Ay03kJy0.js} +1 -1
- package/dist/viewer-lib/{tr-TR-DEFEU3FU-D62dl3eN.js → tr-TR-DEFEU3FU-xW9fx8lz.js} +1 -1
- package/dist/viewer-lib/types/src/viewer/components/BoardPlaceholder.d.ts +6 -0
- package/dist/viewer-lib/types/src/viewer/components/Canvas.d.ts +3 -1
- package/dist/viewer-lib/types/src/viewer/components/RyugiLoader.d.ts +2 -1
- package/dist/viewer-lib/{uk-UA-QMV73CPH-D6D8s7pK.js → uk-UA-QMV73CPH-siImZwWq.js} +1 -1
- package/dist/viewer-lib/{vi-VN-M7AON7JQ-Dh3BnbJN.js → vi-VN-M7AON7JQ-B1RwZdrg.js} +1 -1
- package/dist/viewer-lib/{viewport-CFJHn_Y6-BOjZrMc1.js → viewport-CFJHn_Y6-C1O9ia_N.js} +1 -1
- package/dist/viewer-lib/{zh-CN-LNUGB5OW-C48KmWkT.js → zh-CN-LNUGB5OW-6fUO3AXx.js} +1 -1
- package/dist/viewer-lib/{zh-HK-E62DVLB3-B8B3Vey8.js → zh-HK-E62DVLB3-DsB4qJEI.js} +1 -1
- package/dist/viewer-lib/{zh-TW-RAJ6MFWO-C8Ic-j4K.js → zh-TW-RAJ6MFWO-BXCT8oY7.js} +1 -1
- package/package.json +6 -3
- package/dist/viewer/Canvas-DxaQjjSK.js +0 -1
- package/dist/viewer/DocumentLayout-BqobBoJ9.js +0 -2
- package/dist/viewer/channel-fe5QTu-s.js +0 -1
- package/dist/viewer/classDiagram-ZZMXUADV-B-zT7lnC.js +0 -1
- package/dist/viewer/classDiagram-v2-VYDZK3BY-B-zT7lnC.js +0 -1
- package/dist/viewer/flowDiagram-HODETNUW-CXlFZEEj.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-BS0t4tWg.js +0 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-aanK4VsX.js +0 -1
- package/dist/viewer/subset-shared.chunk-BiJjRqIa.js +0 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-Bgny_WIB.js +0 -8
- package/dist/viewer-lib/percentages-BXMCSKIN-Dg5qsT14.js +0 -1
- package/dist/viewer-lib/subset-shared.chunk-Cd_UazJM.js +0 -2
- package/bin/{ryugi-artifacts.cjs → ryugi.cjs} +0 -0
- package/dist/viewer-lib/{PageLoader-M5KGHqfg.js → PageLoader-C6VBYL59.js} +1 -1
- package/dist/viewer-lib/{agentLook-Pf_kpgWG.js → agentLook-D56IP3D7.js} +1 -1
|
@@ -1,8 +1,626 @@
|
|
|
1
|
-
"use strict";var ft=Object.create;var _=Object.defineProperty;var mt=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var bt=Object.getPrototypeOf,ht=Object.prototype.hasOwnProperty;var xt=(t,e)=>{for(var n in e)_(t,n,{get:e[n],enumerable:!0})},z=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of yt(e))!ht.call(t,s)&&s!==n&&_(t,s,{get:()=>e[s],enumerable:!(r=mt(e,s))||r.enumerable});return t};var $=(t,e,n)=>(n=t!=null?ft(bt(t)):{},z(e||!t||!t.__esModule?_(n,"default",{value:t,enumerable:!0}):n,t)),wt=t=>z(_({},"__esModule",{value:!0}),t);var Wt={};xt(Wt,{reportFailure:()=>Lt,resolveSelection:()=>gt});module.exports=wt(Wt);var p={format:{type:"string"},json:{type:"boolean"},detail:{type:"boolean"},fields:{type:"string"},quiet:{type:"boolean"},verbose:{type:"boolean"},"project-dir":{type:"string"},artifact:{type:"string"},host:{type:"string"},"url-host":{type:"string"},port:{type:"string"},open:{type:"boolean"},"no-open":{type:"boolean"},foreground:{type:"boolean"},background:{type:"boolean"},page:{type:"string"},visibility:{type:"string"},type:{type:"string"},project:{type:"boolean"},limit:{type:"string"},cursor:{type:"string"},public:{type:"boolean"},private:{type:"boolean"},unpublish:{type:"boolean"},list:{type:"boolean"},delete:{type:"string"},"no-refs":{type:"boolean"},login:{type:"boolean"},logout:{type:"boolean"},sections:{type:"string"},section:{type:"string"},snapshot:{type:"string"},receipt:{type:"string"},status:{type:"string"},"waiting-on":{type:"string"},kind:{type:"string"},"choice-state":{type:"string"},all:{type:"boolean"},block:{type:"string"},quote:{type:"string"},board:{type:"string"},element:{type:"string"},x:{type:"string"},y:{type:"string"},thread:{type:"string"},text:{type:"string"},group:{type:"string"},clear:{type:"boolean"},ask:{type:"string"},choice:{type:"string"},round:{type:"string"},withdraw:{type:"boolean"},save:{type:"string"},frame:{type:"string"},source:{type:"boolean"},download:{type:"boolean"},out:{type:"string"},"no-comments":{type:"boolean"},"output-format":{type:"string"},"auto-publish":{type:"string"},check:{type:"boolean"},pm:{type:"string"}};var V=$(require("node:fs"),1),it=$(require("node:os"),1),q=$(require("node:path"),1);var K=["x","y","w","h"],ne=["file","page",...K],re=["src","page",...K];var I=$(require("node:path"),1);function Z(t,e,n){return e==="win32"&&t.APPDATA?I.default.join(t.APPDATA,"ryugi","credentials.json"):I.default.join(t.XDG_CONFIG_HOME||I.default.join(n,".config"),"ryugi","credentials.json")}var W=$(require("node:path"),1);var Q=t=>W.default.join(W.default.dirname(t),"config.json");var E=$(require("node:fs"),1),tt=$(require("node:os"),1),m=$(require("node:path"),1),G=class extends Error{constructor(n,r={},s=1){super(n);this.fields=r;this.code=s}fields;code};function Pt(t){let e="";try{e=E.default.realpathSync(tt.default.homedir())}catch{}let n=[];for(let r=t;n.push(r),!(E.default.existsSync(m.default.join(r,".git"))&&(r!==e||t===e));r=m.default.dirname(r))if(m.default.dirname(r)===r)return t;return n.find(r=>E.default.existsSync(m.default.join(r,".ryugi","artifacts")))??n.at(-1)}function et(t){let e;try{if(e=E.default.realpathSync(m.default.resolve(t)),!E.default.statSync(e).isDirectory())throw new Error("Not a directory")}catch{throw new G(`Project directory not found: ${t}`)}e=Pt(e);let n=m.default.join(e,".ryugi","artifacts"),r=m.default.join(n,".state");return{project:e,root:n,state:r,pid:m.default.join(r,"server.pid"),log:m.default.join(r,"server.log"),serverId:m.default.join(r,"server-instance-id"),info:m.default.join(r,"server-info"),version:m.default.join(r,"server-version"),owners:m.default.join(r,"owners"),agent:m.default.join(r,"agent"),stopped:m.default.join(r,"server-stopped"),lock:m.default.join(r,"start.lock")}}var w=class extends Error{constructor(n,r="failed",s){super(n.message);this.error=n;this.kind=r;this.raw=s}error;kind;raw};function At(t,e=!1){switch(t.kind){case"succeeded":return{outcome:e?"attention":"success",code:0};case"validation_failed":return{outcome:"attention",code:3};case"pending":return{outcome:"pending",code:4};case"action_required":return{outcome:"attention",code:2};case"partial":return{outcome:"partial",code:5};case"failed":return{outcome:"error",code:1};case"interrupted":return{outcome:"error",code:t.signal==="SIGINT"?130:143}}}function nt(t,e,n,r){return!t||typeof t!="object"||Array.isArray(t)?t:Object.fromEntries(Object.entries(t).filter(([s])=>e.includes(s)?!0:(r.push({path:`${n}.${s}`,reason:"fields"}),!1)))}function rt(t,e,n,r){let s=[...e.coverage.omitted??[]],u=e.data;if(n.fields){let d=[...new Set([...n.fields,...r.requiredFields??[]])];if(r.collection&&u&&typeof u=="object"){let c=u,h=c[r.collection];u={...c,[r.collection]:Array.isArray(h)?h.map((O,b)=>nt(O,d,`data.${r.collection}.${b}`,s)):h}}else u=nt(u,d,"data",s)}return{schema:"ryugi.cli/v1",command:t,outcome:At(e.completion,e.warnings.length>0).outcome,data:u,...e.coverage.page?{page:e.coverage.page}:{},...s.length?{omitted:s}:{},...e.effects.length?{effects:e.effects}:{},...e.warnings.length?{warnings:e.warnings}:{},...e.actions.length?{next:e.actions}:{},...e.completion.kind==="failed"?{error:e.completion.error}:e.completion.kind==="interrupted"?{error:{code:"E_INTERRUPTED",message:`Command interrupted by ${e.completion.signal}.`,details:{signal:e.completion.signal}}}:{}}}function U(t,e){let n={};for(let r=0;r<t.length;r++){let s=t[r];if(s==="--")break;if(!s.startsWith("--"))continue;let u=s.indexOf("="),d=s.slice(2,u<0?void 0:u),c=d==="source"?"boolean":e[d]?.type;c==="string"?n[d]=u<0?t[++r]??"":s.slice(u+1):c==="boolean"&&(n[d]=!0)}return n}function Y(t,e,n=process.env){let r=U(t,e),s=["format","json","quiet","source"].filter(k=>r[k]!==void 0),u=n.RYUGI_ARTIFACTS_FORMAT??"brief",d=r.format??(r.json?"json":r.quiet?"quiet":r.source?"source":u),h=["brief","table","json","jsonl","raw","source","quiet"].includes(d),O={format:h?d:"brief",detail:!!r.detail||!!r.source,verbose:!!r.verbose},b;return s.length>1?b=new w({code:"E_OPTION_CONFLICT",message:"Choose one of --format, --json, --quiet or --source."}):(!h||!s.length&&!["brief","json","jsonl"].includes(u))&&(b=new w({code:"E_FORMAT_UNSUPPORTED",message:`Unknown output format: ${String(d)}`})),typeof r.fields=="string"&&(O.fields=r.fields.split(",").map(k=>k.trim()),O.fields.some(k=>!k)&&(b=new w({code:"E_ARGUMENT_INVALID",message:"--fields requires comma-separated field names."}))),{options:O,...b?{error:b}:{}}}var ot=["brief","json","jsonl"];function kt(t){return{global:Q(Z(process.env,process.platform,it.default.homedir())),project:q.default.join(q.default.dirname(et(t).root),"config.json")}}function Rt(t){try{let e=JSON.parse(V.default.readFileSync(t,"utf8"));if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected an object");return e}catch(e){if(e.code==="ENOENT")return{};throw new w({code:"E_CONFIG_INVALID",message:`Cannot read ${t}: ${e.message}`})}}function $t(t){let e=kt(t),n=u=>{let d=Rt(u).output;if(d?.format!==void 0&&!ot.includes(d.format))throw new w({code:"E_FORMAT_UNSUPPORTED",message:`Unsupported output format in ${u}: ${String(d.format)}`});return d&&ot.includes(d.format)?d.format:null},r=n(e.global),s=n(e.project);return{global:r,project:s,effective:s??r??"brief",source:s?"project":r?"global":"default"}}function st(t,e,n=process.env){if(n.RYUGI_ARTIFACTS_FORMAT!==void 0)return n;let r=U(t,e);if(["format","json","quiet","source"].some(d=>r[d]!==void 0))return n;let s=typeof r["project-dir"]=="string"?r["project-dir"]:process.cwd();if(!r["project-dir"]&&t[0]&&!t[0].startsWith("-"))try{V.default.statSync(t[0]).isDirectory()&&(s=t[0])}catch{}let u=$t(s);return{...n,RYUGI_ARTIFACTS_FORMAT:u.effective}}function at(t,e={kind:"succeeded"},n={}){return{data:t,completion:e,coverage:{},effects:[],warnings:[],actions:[],...n}}var jt=/^\d{4}-\d\d-\d\dT\d\d:\d\d(?::\d\d(?:\.\d+)?)?(?:Z|[+-]\d\d:?\d\d)$/,C=t=>String(t).padStart(2,"0"),ct=t=>typeof t=="string"&&jt.test(t)&&!Number.isNaN(Date.parse(t));function ut(t,e=new Date){let n=new Date(t);if(Number.isNaN(n.getTime()))return t;let r=`${C(n.getHours())}:${C(n.getMinutes())}`;return n.getFullYear()!==e.getFullYear()?`${n.getFullYear()}-${C(n.getMonth()+1)}-${C(n.getDate())}`:n.getMonth()===e.getMonth()&&n.getDate()===e.getDate()?r:`${C(n.getMonth()+1)}-${C(n.getDate())} ${r}`}function lt(t,e){let n=t.details;return!n||typeof n!="object"||Array.isArray(n)?[]:Object.entries(n).flatMap(([r,s])=>typeof s=="string"&&/^https?:\/\/\S+$/i.test(s)?[{kind:"url",label:e?`${e} ${r}`:r,url:s}]:[])}var f=t=>t.replaceAll(new RegExp("\\p{Cc}","gu")," ");function Et(t,e=160){let n=[...new Intl.Segmenter(void 0,{granularity:"grapheme"}).segment(t)];return n.length>e?`${n.slice(0,e).map(r=>r.segment).join("")}\u2026`:t}function D(t,e=!1){if(t==null)return"";if(Array.isArray(t))return t.map(n=>D(n,!0)).join(", ");if(typeof t=="object"){let n=Object.entries(t).filter(([,r])=>!F(r)).map(([r,s])=>`${r} ${D(s,!0)}`).join(e?", ":" \xB7 ");return e?`(${n})`:n}return ct(t)?ut(t):String(t)}var Ct=(t,e,n)=>{if(t!==null&&typeof t=="object"){if(!n)throw new Error(`Brief cannot print the object at ${e}; flatten it in the view.`);return D(t)}return D(t)},F=(t,e)=>t==null||t===""||t===!1||e!==void 0&&t===e,vt={1:"FAILED",2:"NEEDS YOU",3:"ISSUES",4:"INCOMPLETE",5:"PARTIAL",130:"INTERRUPTED",143:"INTERRUPTED"},Tt={E_ARTIFACT_NOT_FOUND:"check --artifact and --project-dir; artifacts live in <project>/.ryugi/artifacts/<type>/<id>/",E_ARGUMENT_INVALID:"run the command with --help for its options",E_CURSOR_EXPIRED:"run the read again without --cursor or --snapshot",E_CURSOR_MISMATCH:"run the read again without --cursor or --snapshot"},_t=(t,e)=>e?vt[e]??"FAILED":f(t).replaceAll("_"," ").toUpperCase(),It=t=>{let e=t.replaceAll(/[._]/g," ").trim();return e?e[0].toUpperCase()+e.slice(1):"Command"};function Ft(t){let e=t.offset??0;if(!t.hasMore&&e===0)return null;let n=t.total===null?"":` of ${t.total}`;return t.offset===void 0?`${t.returned}${n} shown${t.total===null&&t.hasMore?" \xB7 more available":""}`:`${t.returned?`${e+1}\u2013${e+t.returned}`:"none"}${n}`}var Dt=t=>/^[\w./:@=+-]+$/.test(t)?t:`'${t.replaceAll("'","'\\''")}'`;function dt(t){return t.kind==="command"?t.argv.map(Dt).join(" "):t.url}var Nt=t=>t.map(e=>`Effect: ${f(e.operation)} ${f(e.target)} \xB7 ${e.state}`),Mt=t=>t.split(".").filter(Boolean).at(-1)??t;function Bt(t,e,n,r,s=[],u=0){let d=[_t(t.status,u),t.subject&&f(t.subject),t.summary&&f(t.summary)].filter(Boolean),c=[d.length?`${f(t.heading)}: ${d.join(" \xB7 ")}`:f(t.heading)],h=[...e.omitted??[]],O=(o,a=!1)=>a||s.includes(o)||!n.fields||n.fields.includes(o),b=(o,a,i=!1)=>{let l=f(Ct(o,a,i)),x=n.detail?l:Et(l);return x!==l&&h.push({path:a,reason:"preview"}),x},k=(o,a,i,l,x,R,g=!1)=>{if(F(i,R))return null;let S=f(o??a);if(i===!0)return S;let y=b(i,l,g);return x?y:`${S} ${y}`},v=(o,a=!1)=>{for(let i of o){if(!r&&!O(i.binding.key,i.required)||F(i.binding.value))continue;let l=i.binding.value===!0?"yes":b(i.binding.value,`data.${i.binding.key}`,a);c.push(`${f(i.label)}: ${l}`)}},J=(o,a)=>o.map(i=>k(i.label,i.binding.key,i.binding.value,`${a}.${i.binding.key}`,i.positional)).filter(i=>i!==null).join(" \xB7 "),N=(o,a)=>{o&&c.push(a?`${f(o)} \xB7 ${f(a)}`:f(o))},M=o=>{let a=o&&Ft(o);a&&c.push(a)};v(t.facts);let X=e.error?lt(e.error):[];if(e.error){c.push(`${f(e.error.code)}: ${f(e.error.message)}`),e.error.httpStatus!==void 0&&e.error.httpStatus>=500&&c.push(`HTTP: ${e.error.httpStatus}`);let o=Tt[e.error.code];o&&c.push(`Next: ${o}`);let a=e.error.details;if(a&&typeof a=="object"&&!Array.isArray(a))for(let[i,l]of Object.entries(a))X.some(x=>x.label===i)||v([{label:i,binding:{key:i,value:l},required:!0}],!0);else a!==void 0&&v([{label:"Details",binding:{key:"details",value:a},required:!0}],!0)}if(!r&&n.fields&&e.data&&typeof e.data=="object"){let o=new Set([...t.facts.map(i=>i.binding.key),...t.sections.flatMap(i=>i.kind==="fields"?i.facts.map(l=>l.binding.key):[i.key])]),a=e.data;v([...new Set([...n.fields,...s])].filter(i=>!o.has(i)&&Object.hasOwn(a,i)).map(i=>({label:i,binding:{key:i,value:a[i]}})),!0)}for(let o of t.sections){if(o.kind==="fields"){v(o.facts);continue}if(!r&&!O(o.key))continue;let a="title"in o&&o.title?o.title:void 0;if(o.kind==="records"){N(a??(o.page?o.key:void 0),o.summary);let i=new Set(o.columns.map(g=>g.key)),l=o.key===r?[...new Set([...n.fields??[],...n.fields?s:[]])].filter(g=>!i.has(g)).map(g=>({key:g,label:g})):[],x=new Set(l.map(g=>g.key)),R=[...o.columns,...l].filter(g=>o.key!==r||O(g.key,g.required));if(n.format==="table"){let g=R.map(P=>P.label??P.key),S=o.rows.map((P,j)=>R.map(A=>F(P[A.key],A.default)?"":b(P[A.key],`data.${o.key}.${j}.${A.key}`,x.has(A.key)))),y=g.map((P,j)=>Math.max(P.length,...S.map(A=>A[j]?.length??0)));c.push(...[g,...S].map(P=>P.map((j,A)=>j.padEnd(y[A]??j.length)).join(" ").trimEnd()))}else for(let[g,S]of o.rows.entries())c.push(` ${R.map(y=>k(y.label,y.key,S[y.key],`data.${o.key}.${g}.${y.key}`,y.positional,y.default,x.has(y.key))).filter(y=>y!==null).join(" \xB7 ")}`);!o.rows.length&&!a&&!o.page&&c.push("No records."),M(o.page)}else if(o.kind==="messages"){N(a,o.summary);for(let[i,l]of o.groups.entries()){c.push(` ${J(l.facts,`data.${o.key}.${i}`)}`);for(let[x,R]of l.messages.entries())c.push(` ${J(R.facts,`data.${o.key}.${i}.messages.${x}`)}`),c.push(...R.text.split(`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/cli/output/bootstrap/index.ts
|
|
31
|
+
var index_exports = {};
|
|
32
|
+
__export(index_exports, {
|
|
33
|
+
reportFailure: () => reportFailure,
|
|
34
|
+
resolveSelection: () => resolveSelection
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(index_exports);
|
|
37
|
+
|
|
38
|
+
// <define:BOOTSTRAP_OPTIONS>
|
|
39
|
+
var define_BOOTSTRAP_OPTIONS_default = { format: { type: "string" }, json: { type: "boolean" }, detail: { type: "boolean" }, fields: { type: "string" }, quiet: { type: "boolean" }, verbose: { type: "boolean" }, "project-dir": { type: "string" }, artifact: { type: "string" }, host: { type: "string" }, "url-host": { type: "string" }, port: { type: "string" }, open: { type: "boolean" }, "no-open": { type: "boolean" }, foreground: { type: "boolean" }, background: { type: "boolean" }, page: { type: "string" }, visibility: { type: "string" }, type: { type: "string" }, project: { type: "boolean" }, limit: { type: "string" }, cursor: { type: "string" }, public: { type: "boolean" }, private: { type: "boolean" }, unpublish: { type: "boolean" }, list: { type: "boolean" }, delete: { type: "string" }, "no-refs": { type: "boolean" }, login: { type: "boolean" }, logout: { type: "boolean" }, sections: { type: "string" }, section: { type: "string" }, snapshot: { type: "string" }, receipt: { type: "string" }, status: { type: "string" }, "waiting-on": { type: "string" }, kind: { type: "string" }, "choice-state": { type: "string" }, all: { type: "boolean" }, block: { type: "string" }, quote: { type: "string" }, board: { type: "string" }, element: { type: "string" }, x: { type: "string" }, y: { type: "string" }, thread: { type: "string" }, text: { type: "string" }, group: { type: "string" }, clear: { type: "boolean" }, ask: { type: "string" }, choice: { type: "string" }, round: { type: "string" }, withdraw: { type: "boolean" }, save: { type: "string" }, frame: { type: "string" }, source: { type: "boolean" }, download: { type: "boolean" }, out: { type: "string" }, "no-comments": { type: "boolean" }, "output-format": { type: "string" }, "auto-publish": { type: "string" }, check: { type: "boolean" }, pm: { type: "string" } };
|
|
40
|
+
|
|
41
|
+
// src/cli/output/configuration.ts
|
|
42
|
+
var import_node_fs2 = __toESM(require("node:fs"), 1);
|
|
43
|
+
var import_node_os2 = __toESM(require("node:os"), 1);
|
|
44
|
+
var import_node_path4 = __toESM(require("node:path"), 1);
|
|
45
|
+
|
|
46
|
+
// src/shared/cloud.ts
|
|
47
|
+
var MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
48
|
+
|
|
49
|
+
// src/shared/validate.ts
|
|
50
|
+
var BOARD_NUMBERS = ["x", "y", "w", "h"];
|
|
51
|
+
var BOARD_REQUIRED = ["file", "page", ...BOARD_NUMBERS];
|
|
52
|
+
var MEDIA_REQUIRED = ["src", "page", ...BOARD_NUMBERS];
|
|
53
|
+
|
|
54
|
+
// src/server/credentials.ts
|
|
55
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
56
|
+
function credentialsFile(env, platform, home) {
|
|
57
|
+
if (platform === "win32" && env.APPDATA)
|
|
58
|
+
return import_node_path.default.join(env.APPDATA, "ryugi", "credentials.json");
|
|
59
|
+
return import_node_path.default.join(env.XDG_CONFIG_HOME || import_node_path.default.join(home, ".config"), "ryugi", "credentials.json");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/server/settings.ts
|
|
63
|
+
var import_node_path2 = __toESM(require("node:path"), 1);
|
|
64
|
+
var settingsFileFor = (credentialsFile2) => import_node_path2.default.join(import_node_path2.default.dirname(credentialsFile2), "config.json");
|
|
65
|
+
|
|
66
|
+
// src/cli/paths.ts
|
|
67
|
+
var import_node_fs = __toESM(require("node:fs"), 1);
|
|
68
|
+
var import_node_os = __toESM(require("node:os"), 1);
|
|
69
|
+
var import_node_path3 = __toESM(require("node:path"), 1);
|
|
70
|
+
var CliError = class extends Error {
|
|
71
|
+
constructor(message, fields = {}, code = 1) {
|
|
72
|
+
super(message);
|
|
73
|
+
this.fields = fields;
|
|
74
|
+
this.code = code;
|
|
75
|
+
}
|
|
76
|
+
fields;
|
|
77
|
+
code;
|
|
78
|
+
};
|
|
79
|
+
function projectRoot(dir) {
|
|
80
|
+
let home = "";
|
|
81
|
+
try {
|
|
82
|
+
home = import_node_fs.default.realpathSync(import_node_os.default.homedir());
|
|
83
|
+
} catch {
|
|
84
|
+
}
|
|
85
|
+
const chain = [];
|
|
86
|
+
for (let current = dir; ; current = import_node_path3.default.dirname(current)) {
|
|
87
|
+
chain.push(current);
|
|
88
|
+
if (import_node_fs.default.existsSync(import_node_path3.default.join(current, ".git")) && (current !== home || dir === home)) break;
|
|
89
|
+
if (import_node_path3.default.dirname(current) === current) return dir;
|
|
90
|
+
}
|
|
91
|
+
return chain.find((candidate) => import_node_fs.default.existsSync(import_node_path3.default.join(candidate, ".ryugi", "artifacts"))) ?? chain.at(-1);
|
|
92
|
+
}
|
|
93
|
+
function projectPaths(dir) {
|
|
94
|
+
let project2;
|
|
95
|
+
try {
|
|
96
|
+
project2 = import_node_fs.default.realpathSync(import_node_path3.default.resolve(dir));
|
|
97
|
+
if (!import_node_fs.default.statSync(project2).isDirectory()) throw new Error("Not a directory");
|
|
98
|
+
} catch {
|
|
99
|
+
throw new CliError(`Project directory not found: ${dir}`);
|
|
100
|
+
}
|
|
101
|
+
project2 = projectRoot(project2);
|
|
102
|
+
const root = import_node_path3.default.join(project2, ".ryugi", "artifacts");
|
|
103
|
+
const state = import_node_path3.default.join(root, ".state");
|
|
104
|
+
return {
|
|
105
|
+
project: project2,
|
|
106
|
+
root,
|
|
107
|
+
state,
|
|
108
|
+
pid: import_node_path3.default.join(state, "server.pid"),
|
|
109
|
+
log: import_node_path3.default.join(state, "server.log"),
|
|
110
|
+
serverId: import_node_path3.default.join(state, "server-instance-id"),
|
|
111
|
+
info: import_node_path3.default.join(state, "server-info"),
|
|
112
|
+
version: import_node_path3.default.join(state, "server-version"),
|
|
113
|
+
owners: import_node_path3.default.join(state, "owners"),
|
|
114
|
+
agent: import_node_path3.default.join(state, "agent"),
|
|
115
|
+
stopped: import_node_path3.default.join(state, "server-stopped"),
|
|
116
|
+
lock: import_node_path3.default.join(state, "start.lock")
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// src/cli/output/normalize.ts
|
|
121
|
+
var OutputError = class extends Error {
|
|
122
|
+
constructor(error, kind = "failed", raw) {
|
|
123
|
+
super(error.message);
|
|
124
|
+
this.error = error;
|
|
125
|
+
this.kind = kind;
|
|
126
|
+
this.raw = raw;
|
|
127
|
+
}
|
|
128
|
+
error;
|
|
129
|
+
kind;
|
|
130
|
+
raw;
|
|
131
|
+
};
|
|
132
|
+
function completionState(completion, warning = false) {
|
|
133
|
+
switch (completion.kind) {
|
|
134
|
+
case "succeeded":
|
|
135
|
+
return { outcome: warning ? "attention" : "success", code: 0 };
|
|
136
|
+
case "validation_failed":
|
|
137
|
+
return { outcome: "attention", code: 3 };
|
|
138
|
+
case "pending":
|
|
139
|
+
return { outcome: "pending", code: 4 };
|
|
140
|
+
case "action_required":
|
|
141
|
+
return { outcome: "attention", code: 2 };
|
|
142
|
+
case "partial":
|
|
143
|
+
return { outcome: "partial", code: 5 };
|
|
144
|
+
case "failed":
|
|
145
|
+
return { outcome: "error", code: 1 };
|
|
146
|
+
case "interrupted":
|
|
147
|
+
return { outcome: "error", code: completion.signal === "SIGINT" ? 130 : 143 };
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function project(value, keys, path5, omitted) {
|
|
151
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return value;
|
|
152
|
+
return Object.fromEntries(
|
|
153
|
+
Object.entries(value).filter(([key]) => {
|
|
154
|
+
if (keys.includes(key)) return true;
|
|
155
|
+
omitted.push({ path: `${path5}.${key}`, reason: "fields" });
|
|
156
|
+
return false;
|
|
157
|
+
})
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
function normalize(command, result2, options, policy) {
|
|
161
|
+
const omitted = [...result2.coverage.omitted ?? []];
|
|
162
|
+
let data = result2.data;
|
|
163
|
+
if (options.fields) {
|
|
164
|
+
const keys = [.../* @__PURE__ */ new Set([...options.fields, ...policy.requiredFields ?? []])];
|
|
165
|
+
if (policy.collection && data && typeof data === "object") {
|
|
166
|
+
const record = data;
|
|
167
|
+
const rows = record[policy.collection];
|
|
168
|
+
data = {
|
|
169
|
+
...record,
|
|
170
|
+
[policy.collection]: Array.isArray(rows) ? rows.map((row, i) => project(row, keys, `data.${policy.collection}.${i}`, omitted)) : rows
|
|
171
|
+
};
|
|
172
|
+
} else data = project(data, keys, "data", omitted);
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
schema: "ryugi.cli/v1",
|
|
176
|
+
command,
|
|
177
|
+
outcome: completionState(result2.completion, result2.warnings.length > 0).outcome,
|
|
178
|
+
data,
|
|
179
|
+
...result2.coverage.page ? { page: result2.coverage.page } : {},
|
|
180
|
+
...omitted.length ? { omitted } : {},
|
|
181
|
+
...result2.effects.length ? { effects: result2.effects } : {},
|
|
182
|
+
...result2.warnings.length ? { warnings: result2.warnings } : {},
|
|
183
|
+
...result2.actions.length ? { next: result2.actions } : {},
|
|
184
|
+
...result2.completion.kind === "failed" ? { error: result2.completion.error } : result2.completion.kind === "interrupted" ? {
|
|
185
|
+
error: {
|
|
186
|
+
code: "E_INTERRUPTED",
|
|
187
|
+
message: `Command interrupted by ${result2.completion.signal}.`,
|
|
188
|
+
details: { signal: result2.completion.signal }
|
|
189
|
+
}
|
|
190
|
+
} : {}
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// src/cli/output/planning.ts
|
|
195
|
+
function scanOptions(argv, optionSpecs) {
|
|
196
|
+
const values = {};
|
|
197
|
+
for (let i = 0; i < argv.length; i++) {
|
|
198
|
+
const token = argv[i];
|
|
199
|
+
if (token === "--") break;
|
|
200
|
+
if (!token.startsWith("--")) continue;
|
|
201
|
+
const equal = token.indexOf("=");
|
|
202
|
+
const name = token.slice(2, equal < 0 ? void 0 : equal);
|
|
203
|
+
const type = name === "source" ? "boolean" : optionSpecs[name]?.type;
|
|
204
|
+
if (type === "string") values[name] = equal < 0 ? argv[++i] ?? "" : token.slice(equal + 1);
|
|
205
|
+
else if (type === "boolean") values[name] = true;
|
|
206
|
+
}
|
|
207
|
+
return values;
|
|
208
|
+
}
|
|
209
|
+
function selectOutput(argv, optionSpecs, env = process.env) {
|
|
210
|
+
const values = scanOptions(argv, optionSpecs);
|
|
211
|
+
const explicit = ["format", "json", "quiet", "source"].filter((key) => values[key] !== void 0);
|
|
212
|
+
const configured = env.RYUGI_ARTIFACTS_FORMAT ?? "brief";
|
|
213
|
+
const requested = values.format ?? (values.json ? "json" : values.quiet ? "quiet" : values.source ? "source" : configured);
|
|
214
|
+
const formats = ["brief", "table", "json", "jsonl", "raw", "source", "quiet"];
|
|
215
|
+
const valid = formats.includes(requested);
|
|
216
|
+
const options = {
|
|
217
|
+
format: valid ? requested : "brief",
|
|
218
|
+
detail: !!values.detail || !!values.source,
|
|
219
|
+
verbose: !!values.verbose
|
|
220
|
+
};
|
|
221
|
+
let error;
|
|
222
|
+
if (explicit.length > 1)
|
|
223
|
+
error = new OutputError({
|
|
224
|
+
code: "E_OPTION_CONFLICT",
|
|
225
|
+
message: "Choose one of --format, --json, --quiet or --source."
|
|
226
|
+
});
|
|
227
|
+
else if (!valid || !explicit.length && !["brief", "json", "jsonl"].includes(configured))
|
|
228
|
+
error = new OutputError({
|
|
229
|
+
code: "E_FORMAT_UNSUPPORTED",
|
|
230
|
+
message: `Unknown output format: ${String(requested)}`
|
|
231
|
+
});
|
|
232
|
+
if (typeof values.fields === "string") {
|
|
233
|
+
options.fields = values.fields.split(",").map((field) => field.trim());
|
|
234
|
+
if (options.fields.some((field) => !field))
|
|
235
|
+
error = new OutputError({
|
|
236
|
+
code: "E_ARGUMENT_INVALID",
|
|
237
|
+
message: "--fields requires comma-separated field names."
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return { options, ...error ? { error } : {} };
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
// src/cli/output/configuration.ts
|
|
244
|
+
var PERSISTED_FORMATS = ["brief", "json", "jsonl"];
|
|
245
|
+
function outputFiles(projectDir) {
|
|
246
|
+
return {
|
|
247
|
+
global: settingsFileFor(credentialsFile(process.env, process.platform, import_node_os2.default.homedir())),
|
|
248
|
+
project: import_node_path4.default.join(import_node_path4.default.dirname(projectPaths(projectDir).root), "config.json")
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
function read(file) {
|
|
252
|
+
try {
|
|
253
|
+
const raw = JSON.parse(import_node_fs2.default.readFileSync(file, "utf8"));
|
|
254
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) throw new Error("Expected an object");
|
|
255
|
+
return raw;
|
|
256
|
+
} catch (error) {
|
|
257
|
+
if (error.code === "ENOENT") return {};
|
|
258
|
+
throw new OutputError({
|
|
259
|
+
code: "E_CONFIG_INVALID",
|
|
260
|
+
message: `Cannot read ${file}: ${error.message}`
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
function outputValues(projectDir) {
|
|
265
|
+
const files = outputFiles(projectDir);
|
|
266
|
+
const get = (file) => {
|
|
267
|
+
const output = read(file).output;
|
|
268
|
+
if (output?.format !== void 0 && !PERSISTED_FORMATS.includes(output.format))
|
|
269
|
+
throw new OutputError({
|
|
270
|
+
code: "E_FORMAT_UNSUPPORTED",
|
|
271
|
+
message: `Unsupported output format in ${file}: ${String(output.format)}`
|
|
272
|
+
});
|
|
273
|
+
return output && PERSISTED_FORMATS.includes(output.format) ? output.format : null;
|
|
274
|
+
};
|
|
275
|
+
const global = get(files.global), project2 = get(files.project);
|
|
276
|
+
return {
|
|
277
|
+
global,
|
|
278
|
+
project: project2,
|
|
279
|
+
effective: project2 ?? global ?? "brief",
|
|
280
|
+
source: project2 ? "project" : global ? "global" : "default"
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
function configuredEnvironment(argv, specs, env = process.env) {
|
|
284
|
+
if (env.RYUGI_ARTIFACTS_FORMAT !== void 0) return env;
|
|
285
|
+
const values = scanOptions(argv, specs);
|
|
286
|
+
if (["format", "json", "quiet", "source"].some((key) => values[key] !== void 0)) return env;
|
|
287
|
+
let project2 = typeof values["project-dir"] === "string" ? values["project-dir"] : process.cwd();
|
|
288
|
+
if (!values["project-dir"] && argv[0] && !argv[0].startsWith("-")) {
|
|
289
|
+
try {
|
|
290
|
+
if (import_node_fs2.default.statSync(argv[0]).isDirectory()) project2 = argv[0];
|
|
291
|
+
} catch {
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
const config = outputValues(project2);
|
|
295
|
+
return { ...env, RYUGI_ARTIFACTS_FORMAT: config.effective };
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
// src/cli/output/protocol.ts
|
|
299
|
+
function result(data, completion = { kind: "succeeded" }, extra = {}) {
|
|
300
|
+
return { data, completion, coverage: {}, effects: [], warnings: [], actions: [], ...extra };
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// src/cli/output/time.ts
|
|
304
|
+
var ISO = /^\d{4}-\d\d-\d\dT\d\d:\d\d(?::\d\d(?:\.\d+)?)?(?:Z|[+-]\d\d:?\d\d)$/;
|
|
305
|
+
var two = (n) => String(n).padStart(2, "0");
|
|
306
|
+
var isIsoTime = (value) => typeof value === "string" && ISO.test(value) && !Number.isNaN(Date.parse(value));
|
|
307
|
+
function formatTime(iso, now = /* @__PURE__ */ new Date()) {
|
|
308
|
+
const at = new Date(iso);
|
|
309
|
+
if (Number.isNaN(at.getTime())) return iso;
|
|
310
|
+
const clock = `${two(at.getHours())}:${two(at.getMinutes())}`;
|
|
311
|
+
if (at.getFullYear() !== now.getFullYear())
|
|
312
|
+
return `${at.getFullYear()}-${two(at.getMonth() + 1)}-${two(at.getDate())}`;
|
|
313
|
+
if (at.getMonth() === now.getMonth() && at.getDate() === now.getDate()) return clock;
|
|
314
|
+
return `${two(at.getMonth() + 1)}-${two(at.getDate())} ${clock}`;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
// src/cli/output/view.ts
|
|
318
|
+
function recoveryActions(error, subject) {
|
|
319
|
+
const details = error.details;
|
|
320
|
+
if (!details || typeof details !== "object" || Array.isArray(details)) return [];
|
|
321
|
+
return Object.entries(details).flatMap(
|
|
322
|
+
([key, url]) => typeof url === "string" && /^https?:\/\/\S+$/i.test(url) ? [{ kind: "url", label: subject ? `${subject} ${key}` : key, url }] : []
|
|
323
|
+
);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// src/cli/output/render.ts
|
|
327
|
+
var clean = (text) => text.replaceAll(new RegExp("\\p{Cc}", "gu"), " ");
|
|
328
|
+
function clip(text, size = 160) {
|
|
329
|
+
const segments = [...new Intl.Segmenter(void 0, { granularity: "grapheme" }).segment(text)];
|
|
330
|
+
return segments.length > size ? `${segments.slice(0, size).map((s) => s.segment).join("")}\u2026` : text;
|
|
331
|
+
}
|
|
332
|
+
function flatten(value, nested = false) {
|
|
333
|
+
if (value === null || value === void 0) return "";
|
|
334
|
+
if (Array.isArray(value)) return value.map((item) => flatten(item, true)).join(", ");
|
|
335
|
+
if (typeof value === "object") {
|
|
336
|
+
const text = Object.entries(value).filter(([, item]) => !absent(item)).map(([key, item]) => `${key} ${flatten(item, true)}`).join(nested ? ", " : " \xB7 ");
|
|
337
|
+
return nested ? `(${text})` : text;
|
|
338
|
+
}
|
|
339
|
+
return isIsoTime(value) ? formatTime(value) : String(value);
|
|
340
|
+
}
|
|
341
|
+
var scalar = (value, path5, loose) => {
|
|
342
|
+
if (value !== null && typeof value === "object") {
|
|
343
|
+
if (!loose)
|
|
344
|
+
throw new Error(`Brief cannot print the object at ${path5}; flatten it in the view.`);
|
|
345
|
+
return flatten(value);
|
|
346
|
+
}
|
|
347
|
+
return flatten(value);
|
|
348
|
+
};
|
|
349
|
+
var absent = (value, fallback) => value === void 0 || value === null || value === "" || value === false || fallback !== void 0 && value === fallback;
|
|
350
|
+
var EXIT_WORDS = {
|
|
351
|
+
1: "FAILED",
|
|
352
|
+
2: "NEEDS YOU",
|
|
353
|
+
3: "ISSUES",
|
|
354
|
+
4: "INCOMPLETE",
|
|
355
|
+
5: "PARTIAL",
|
|
356
|
+
130: "INTERRUPTED",
|
|
357
|
+
143: "INTERRUPTED"
|
|
358
|
+
};
|
|
359
|
+
var RECOVERY = {
|
|
360
|
+
E_ARTIFACT_NOT_FOUND: "check --artifact and --project-dir; artifacts live in <project>/.ryugi/artifacts/<type>/<id>/",
|
|
361
|
+
E_ARGUMENT_INVALID: "run the command with --help for its options",
|
|
362
|
+
E_CURSOR_EXPIRED: "run the read again without --cursor or --snapshot",
|
|
363
|
+
E_CURSOR_MISMATCH: "run the read again without --cursor or --snapshot"
|
|
364
|
+
};
|
|
365
|
+
var statusWord = (status, code) => code ? EXIT_WORDS[code] ?? "FAILED" : clean(status).replaceAll("_", " ").toUpperCase();
|
|
366
|
+
var commandName = (id) => {
|
|
367
|
+
const words = id.replaceAll(/[._]/g, " ").trim();
|
|
368
|
+
return words ? words[0].toUpperCase() + words.slice(1) : "Command";
|
|
369
|
+
};
|
|
370
|
+
function pageText(page) {
|
|
371
|
+
const offset = page.offset ?? 0;
|
|
372
|
+
if (!page.hasMore && offset === 0) return null;
|
|
373
|
+
const of = page.total === null ? "" : ` of ${page.total}`;
|
|
374
|
+
if (page.offset === void 0)
|
|
375
|
+
return `${page.returned}${of} shown${page.total === null && page.hasMore ? " \xB7 more available" : ""}`;
|
|
376
|
+
return `${page.returned ? `${offset + 1}\u2013${offset + page.returned}` : "none"}${of}`;
|
|
377
|
+
}
|
|
378
|
+
var quote = (value) => /^[\w./:@=+-]+$/.test(value) ? value : `'${value.replaceAll("'", "'\\''")}'`;
|
|
379
|
+
function actionText(action) {
|
|
380
|
+
return action.kind === "command" ? action.argv.map(quote).join(" ") : action.url;
|
|
381
|
+
}
|
|
382
|
+
var effectLines = (effects) => effects.map(
|
|
383
|
+
(effect) => `Effect: ${clean(effect.operation)} ${clean(effect.target)} \xB7 ${effect.state}`
|
|
384
|
+
);
|
|
385
|
+
var lastSegment = (path5) => path5.split(".").filter(Boolean).at(-1) ?? path5;
|
|
386
|
+
function renderText(view, wire, options, collection, requiredFields = [], code = 0) {
|
|
387
|
+
const head = [
|
|
388
|
+
statusWord(view.status, code),
|
|
389
|
+
view.subject && clean(view.subject),
|
|
390
|
+
view.summary && clean(view.summary)
|
|
391
|
+
].filter(Boolean);
|
|
392
|
+
const lines = [head.length ? `${clean(view.heading)}: ${head.join(" \xB7 ")}` : clean(view.heading)];
|
|
393
|
+
const omissions = [...wire.omitted ?? []];
|
|
394
|
+
const selected = (key, required = false) => required || requiredFields.includes(key) || !options.fields || options.fields.includes(key);
|
|
395
|
+
const value = (input, path5, loose = false) => {
|
|
396
|
+
const text = clean(scalar(input, path5, loose));
|
|
397
|
+
const shown = options.detail ? text : clip(text);
|
|
398
|
+
if (shown !== text) omissions.push({ path: path5, reason: "preview" });
|
|
399
|
+
return shown;
|
|
400
|
+
};
|
|
401
|
+
const cell = (label, key, input, path5, positional, fallback, loose = false) => {
|
|
402
|
+
if (absent(input, fallback)) return null;
|
|
403
|
+
const name = clean(label ?? key);
|
|
404
|
+
if (input === true) return name;
|
|
405
|
+
const text = value(input, path5, loose);
|
|
406
|
+
return positional ? text : `${name} ${text}`;
|
|
407
|
+
};
|
|
408
|
+
const facts = (items, loose = false) => {
|
|
409
|
+
for (const item of items) {
|
|
410
|
+
if (!collection && !selected(item.binding.key, item.required)) continue;
|
|
411
|
+
if (absent(item.binding.value)) continue;
|
|
412
|
+
const text = item.binding.value === true ? "yes" : value(item.binding.value, `data.${item.binding.key}`, loose);
|
|
413
|
+
lines.push(`${clean(item.label)}: ${text}`);
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
const metadata = (items, path5) => items.map(
|
|
417
|
+
(item) => cell(
|
|
418
|
+
item.label,
|
|
419
|
+
item.binding.key,
|
|
420
|
+
item.binding.value,
|
|
421
|
+
`${path5}.${item.binding.key}`,
|
|
422
|
+
item.positional
|
|
423
|
+
)
|
|
424
|
+
).filter((text) => text !== null).join(" \xB7 ");
|
|
425
|
+
const title = (text, summary) => {
|
|
426
|
+
if (text) lines.push(summary ? `${clean(text)} \xB7 ${clean(summary)}` : clean(text));
|
|
427
|
+
};
|
|
428
|
+
const pageLine = (page) => {
|
|
429
|
+
const text = page && pageText(page);
|
|
430
|
+
if (text) lines.push(text);
|
|
431
|
+
};
|
|
432
|
+
facts(view.facts);
|
|
433
|
+
const errorActions = wire.error ? recoveryActions(wire.error) : [];
|
|
434
|
+
if (wire.error) {
|
|
435
|
+
lines.push(`${clean(wire.error.code)}: ${clean(wire.error.message)}`);
|
|
436
|
+
if (wire.error.httpStatus !== void 0 && wire.error.httpStatus >= 500)
|
|
437
|
+
lines.push(`HTTP: ${wire.error.httpStatus}`);
|
|
438
|
+
const hint = RECOVERY[wire.error.code];
|
|
439
|
+
if (hint) lines.push(`Next: ${hint}`);
|
|
440
|
+
const details2 = wire.error.details;
|
|
441
|
+
if (details2 && typeof details2 === "object" && !Array.isArray(details2)) {
|
|
442
|
+
for (const [key, detail] of Object.entries(details2)) {
|
|
443
|
+
if (!errorActions.some((action) => action.label === key))
|
|
444
|
+
facts([{ label: key, binding: { key, value: detail }, required: true }], true);
|
|
445
|
+
}
|
|
446
|
+
} else if (details2 !== void 0)
|
|
447
|
+
facts(
|
|
448
|
+
[{ label: "Details", binding: { key: "details", value: details2 }, required: true }],
|
|
449
|
+
true
|
|
450
|
+
);
|
|
451
|
+
}
|
|
452
|
+
if (!collection && options.fields && wire.data && typeof wire.data === "object") {
|
|
453
|
+
const bound = /* @__PURE__ */ new Set([
|
|
454
|
+
...view.facts.map((item) => item.binding.key),
|
|
455
|
+
...view.sections.flatMap(
|
|
456
|
+
(section) => section.kind === "fields" ? section.facts.map((item) => item.binding.key) : [section.key]
|
|
457
|
+
)
|
|
458
|
+
]);
|
|
459
|
+
const data = wire.data;
|
|
460
|
+
facts(
|
|
461
|
+
[.../* @__PURE__ */ new Set([...options.fields, ...requiredFields])].filter((key) => !bound.has(key) && Object.hasOwn(data, key)).map((key) => ({ label: key, binding: { key, value: data[key] } })),
|
|
462
|
+
true
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
for (const section of view.sections) {
|
|
466
|
+
if (section.kind === "fields") {
|
|
467
|
+
facts(section.facts);
|
|
468
|
+
continue;
|
|
469
|
+
}
|
|
470
|
+
if (!collection && !selected(section.key)) continue;
|
|
471
|
+
const named = "title" in section && section.title ? section.title : void 0;
|
|
472
|
+
if (section.kind === "records") {
|
|
473
|
+
title(named ?? (section.page ? section.key : void 0), section.summary);
|
|
474
|
+
const declared = new Set(section.columns.map((column) => column.key));
|
|
475
|
+
const extra = section.key === collection ? [.../* @__PURE__ */ new Set([...options.fields ?? [], ...options.fields ? requiredFields : []])].filter((key) => !declared.has(key)).map((key) => ({ key, label: key })) : [];
|
|
476
|
+
const loose = new Set(extra.map((column) => column.key));
|
|
477
|
+
const columns = [...section.columns, ...extra].filter(
|
|
478
|
+
(column) => section.key !== collection || selected(column.key, column.required)
|
|
479
|
+
);
|
|
480
|
+
if (options.format === "table") {
|
|
481
|
+
const labels = columns.map((column) => column.label ?? column.key);
|
|
482
|
+
const rows = section.rows.map(
|
|
483
|
+
(row, i) => columns.map(
|
|
484
|
+
(column) => absent(row[column.key], column.default) ? "" : value(
|
|
485
|
+
row[column.key],
|
|
486
|
+
`data.${section.key}.${i}.${column.key}`,
|
|
487
|
+
loose.has(column.key)
|
|
488
|
+
)
|
|
489
|
+
)
|
|
490
|
+
);
|
|
491
|
+
const widths = labels.map(
|
|
492
|
+
(label, i) => Math.max(label.length, ...rows.map((row) => row[i]?.length ?? 0))
|
|
493
|
+
);
|
|
494
|
+
lines.push(
|
|
495
|
+
...[labels, ...rows].map(
|
|
496
|
+
(row) => row.map((text, i) => text.padEnd(widths[i] ?? text.length)).join(" ").trimEnd()
|
|
497
|
+
)
|
|
498
|
+
);
|
|
499
|
+
} else
|
|
500
|
+
for (const [i, row] of section.rows.entries())
|
|
501
|
+
lines.push(
|
|
502
|
+
` ${columns.map(
|
|
503
|
+
(column) => cell(
|
|
504
|
+
column.label,
|
|
505
|
+
column.key,
|
|
506
|
+
row[column.key],
|
|
507
|
+
`data.${section.key}.${i}.${column.key}`,
|
|
508
|
+
column.positional,
|
|
509
|
+
column.default,
|
|
510
|
+
loose.has(column.key)
|
|
511
|
+
)
|
|
512
|
+
).filter((text) => text !== null).join(" \xB7 ")}`
|
|
513
|
+
);
|
|
514
|
+
if (!section.rows.length && !named && !section.page) lines.push("No records.");
|
|
515
|
+
pageLine(section.page);
|
|
516
|
+
} else if (section.kind === "messages") {
|
|
517
|
+
title(named, section.summary);
|
|
518
|
+
for (const [g, group] of section.groups.entries()) {
|
|
519
|
+
lines.push(` ${metadata(group.facts, `data.${section.key}.${g}`)}`);
|
|
520
|
+
for (const [m, message] of group.messages.entries()) {
|
|
521
|
+
lines.push(` ${metadata(message.facts, `data.${section.key}.${g}.messages.${m}`)}`);
|
|
522
|
+
lines.push(
|
|
523
|
+
...message.text.split("\n").map(
|
|
524
|
+
(line) => ` ${line.replaceAll(new RegExp("\\p{Cc}", "gu"), (char) => char === " " ? char : "")}`
|
|
525
|
+
)
|
|
526
|
+
);
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
if (!section.groups.length && !named && !section.page) lines.push("No messages.");
|
|
530
|
+
pageLine(section.page);
|
|
531
|
+
} else if (section.kind === "diagnostics") {
|
|
532
|
+
const limit = options.detail ? section.items.length : section.preview ?? 3;
|
|
533
|
+
for (const item of section.items.slice(0, limit))
|
|
534
|
+
lines.push(
|
|
535
|
+
` ${item.location ? `${clean(item.location)} ` : ""}${clean(item.code)}: ${value(item.message, `data.${section.key}`)}`
|
|
536
|
+
);
|
|
537
|
+
if (limit < section.items.length)
|
|
538
|
+
omissions.push({
|
|
539
|
+
path: `data.${section.key}`,
|
|
540
|
+
reason: "preview",
|
|
541
|
+
count: section.items.length - limit
|
|
542
|
+
});
|
|
543
|
+
} else {
|
|
544
|
+
title(named && `${named}:`, section.summary);
|
|
545
|
+
lines.push(
|
|
546
|
+
...section.text.trimEnd().split("\n").map(
|
|
547
|
+
(line) => ` ${line.replaceAll(new RegExp("\\p{Cc}", "gu"), (char) => char === " " || char === "\n" ? char : "")}`
|
|
548
|
+
)
|
|
549
|
+
);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
if (wire.page) pageLine(wire.page);
|
|
553
|
+
if (code || (wire.effects ?? []).some((effect) => effect.state !== "confirmed"))
|
|
554
|
+
lines.push(...effectLines(wire.effects ?? []));
|
|
555
|
+
for (const warning of wire.warnings ?? []) lines.push(`Warning: ${clean(warning.message)}`);
|
|
556
|
+
const actions = [...view.actions ?? wire.next ?? [], ...errorActions];
|
|
557
|
+
const used = /* @__PURE__ */ new Set();
|
|
558
|
+
const details = actions.find((action) => action.label === "Details");
|
|
559
|
+
for (const omission of omissions) {
|
|
560
|
+
if (omission.count === void 0) continue;
|
|
561
|
+
const more = `${omission.count} more ${lastSegment(omission.path)}`;
|
|
562
|
+
if (details && !used.has(details)) {
|
|
563
|
+
used.add(details);
|
|
564
|
+
lines.push(`${more} \xB7 Details: ${actionText(details)}`);
|
|
565
|
+
} else lines.push(more);
|
|
566
|
+
}
|
|
567
|
+
if (!details && !options.detail && omissions.some((item) => item.reason === "preview" && item.count === void 0))
|
|
568
|
+
lines.push("Some values are clipped; add --detail to see them in full.");
|
|
569
|
+
for (const action of actions)
|
|
570
|
+
if (!used.has(action))
|
|
571
|
+
lines.push(
|
|
572
|
+
`${clean(action.label ?? "Next")}: ${action.reason ? `${clean(action.reason)} \xB7 ` : ""}${actionText(action)}`
|
|
573
|
+
);
|
|
574
|
+
return `${lines.join("\n")}
|
|
575
|
+
`;
|
|
576
|
+
}
|
|
577
|
+
function renderFailure(wire, options, code = 1) {
|
|
578
|
+
return renderText(
|
|
579
|
+
{ heading: commandName(wire.command), status: "", facts: [], sections: [] },
|
|
580
|
+
wire,
|
|
581
|
+
{
|
|
582
|
+
...options,
|
|
583
|
+
fields: void 0
|
|
584
|
+
},
|
|
585
|
+
void 0,
|
|
586
|
+
[],
|
|
587
|
+
code
|
|
588
|
+
);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
// src/cli/output/bootstrap/index.ts
|
|
592
|
+
function resolveSelection(argv) {
|
|
593
|
+
return selectOutput(argv, define_BOOTSTRAP_OPTIONS_default, configuredEnvironment(argv, define_BOOTSTRAP_OPTIONS_default));
|
|
594
|
+
}
|
|
595
|
+
function reportFailure(argv, error, selection) {
|
|
596
|
+
let selected;
|
|
597
|
+
try {
|
|
598
|
+
selected = selection ?? resolveSelection(argv);
|
|
599
|
+
} catch {
|
|
600
|
+
selected = selectOutput(argv, define_BOOTSTRAP_OPTIONS_default);
|
|
601
|
+
}
|
|
602
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
603
|
+
const detail = selected.error?.error ?? (error instanceof OutputError ? error.error : { code: "E_BOOTSTRAP_FAILED", message });
|
|
604
|
+
const failure = result(null, { kind: "failed", error: detail });
|
|
605
|
+
const wire = {
|
|
606
|
+
...normalize(
|
|
607
|
+
argv[0] && !argv[0].startsWith("-") ? argv[0] : "browse",
|
|
608
|
+
failure,
|
|
609
|
+
{ format: selected.options.format },
|
|
610
|
+
{ formats: [selected.options.format] }
|
|
611
|
+
),
|
|
612
|
+
error: detail
|
|
613
|
+
};
|
|
614
|
+
if (selected.options.format === "json") process.stdout.write(`${JSON.stringify(wire)}
|
|
615
|
+
`);
|
|
616
|
+
else if (selected.options.format === "jsonl")
|
|
617
|
+
process.stdout.write(`${JSON.stringify({ ...wire, seq: 0, kind: "result" })}
|
|
618
|
+
`);
|
|
619
|
+
else process.stderr.write(renderFailure(wire, selected.options));
|
|
620
|
+
process.exitCode = 1;
|
|
621
|
+
}
|
|
622
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
623
|
+
0 && (module.exports = {
|
|
624
|
+
reportFailure,
|
|
625
|
+
resolveSelection
|
|
626
|
+
});
|