ryugi-artifacts 1.68.3 → 1.70.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/dist/cli.cjs +3 -3
- package/dist/server.cjs +204 -161
- package/dist/viewer/{AgentStatusPill-CxFpJS9T.js → AgentStatusPill-exn8kG-H.js} +1 -1
- package/dist/viewer/ArtboardLayout-Dz0spzAj.js +12 -0
- package/dist/viewer/ArtifactList-DKmeVnKi.js +2 -0
- package/dist/viewer/{AutoPublishPrompt-DkGEIW9t.js → AutoPublishPrompt-BYAg2V0y.js} +1 -1
- package/dist/viewer/{Avatar-VUQPY4DD.js → Avatar-Cr9OW8YH.js} +1 -1
- package/dist/viewer/{Avatar-BhOg2BXZ.js → Avatar-NMdjRnIS.js} +1 -1
- package/dist/viewer/{BottomSheet-AqG81d_M.js → BottomSheet-BQnGJL4p.js} +1 -1
- package/dist/viewer/{Canvas-4Utk2C18.js → Canvas-DxaQjjSK.js} +1 -1
- package/dist/viewer/{CompositeItem-ClMglprA.js → CompositeItem-tvyaiM7D.js} +1 -1
- package/dist/viewer/DocumentLayout-_U2M-QV_.js +2 -0
- package/dist/viewer/DocumentPage-ox4EQvxU.js +4 -0
- package/dist/viewer/DropdownMenu-DQRhgqL-.js +1 -0
- package/dist/viewer/{HtmlLayout-89ZuJNxJ.js → HtmlLayout-DzcNJHBz.js} +1 -1
- package/dist/viewer/{MenuSubmenuTrigger-B9c8QfBG.js → MenuSubmenuTrigger-CFAM5XEZ.js} +1 -1
- package/dist/viewer/{MenuTrigger-yVEYn1Ao.js → MenuTrigger-COssWqPW.js} +1 -1
- package/dist/viewer/{PhoneArtboardBar-Bzffd2nB.js → PhoneArtboardBar-B6JoWeSs.js} +1 -1
- package/dist/viewer/{PhoneSheet-CN4Ewszx.js → PhoneSheet-F7YTU--u.js} +1 -1
- package/dist/viewer/{Popover-J_7ZaGFR.js → Popover-4xoki5-K.js} +1 -1
- package/dist/viewer/PreviewLayout-CTH3onR8.js +2 -0
- package/dist/viewer/{Segmented-DhJdw1_a.js → Segmented-CFwxjVOk.js} +1 -1
- package/dist/viewer/{Select-Cqb37-IZ.js → Select-CwMZ_V48.js} +1 -1
- package/dist/viewer/{SelectScrollUpArrow-DYO27Q2D.js → SelectScrollUpArrow-D1wI2boK.js} +1 -1
- package/dist/viewer/{SettingsDialog-BpwMMImH.js → SettingsDialog-ytisgF60.js} +1 -1
- package/dist/viewer/{SnapshotDocument-Cca8g4SA.js → SnapshotDocument-IbfxlwGq.js} +1 -1
- package/dist/viewer/{SplitShell-lfa8K-76.js → SplitShell-BT_RNQiE.js} +1 -1
- package/dist/viewer/{ThreadView-CNiDFkdG.js → ThreadView-CxcjZsZO.js} +1 -1
- package/dist/viewer/{TooltipPopup-DsKnBNAK.js → TooltipPopup-D7gvHCZl.js} +1 -1
- package/dist/viewer/{VirtualizedEditor-uWe43zaI-lgt127eM.js → VirtualizedEditor-uWe43zaI-BMW7pyKh.js} +1 -1
- package/dist/viewer/{VirtualizedRenderer-C_d95FXi-GNEopmGk.js → VirtualizedRenderer-C_d95FXi-D1_QNgkv.js} +1 -1
- package/dist/viewer/{WarningsBadge-DT8IiYtX.js → WarningsBadge-yykGlxIS.js} +1 -1
- package/dist/viewer/WhiteboardLayout-DdKyBMil.js +3 -0
- package/dist/viewer/{WritingCursor-DQcBMO0U.js → WritingCursor-BmvJsfI4.js} +1 -1
- package/dist/viewer/{abnfDiagram-VCTEODGH-CTyAnl0Z.js → abnfDiagram-VCTEODGH-BcWo9FwK.js} +1 -1
- package/dist/viewer/{agentLook-C2_12glW.js → agentLook-t-qk7xG-.js} +1 -1
- package/dist/viewer/{anchor-B2Eea6vf.js → anchor-CMDdppxq.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-Co8NUjyx.js → ar-SA-G6X2FPQ2-Cm_ExiPk.js} +1 -1
- package/dist/viewer/{architecture-7GRP2DOG-B0zVjmxn.js → architecture-7GRP2DOG-B0ELn-r9.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-CGcFQF9y.js → architectureDiagram-5GKGNRK7-pjk1bmyn.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-De3Qkr8D.js → az-AZ-76LH7QW2-C3xDoCfK.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-BzK_v3Xv.js → bg-BG-XCXSNQG7-BuqoExRt.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-mTBluH4Q.js → blockDiagram-I7D4REHJ-Bt5Fgmbw.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-BDqCkFBJ.js → bn-BD-2XOGV67Q-Cb6R-JhO.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-D-nVvYcu.js → c4Diagram-7LVT6UL2-DVoqgVNh.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-Di897XK8.js → ca-ES-6MX7JW3Y-C9x3VZP6.js} +1 -1
- package/dist/viewer/{channel-D9zHsUWH.js → channel-DH0VKMTa.js} +8 -8
- package/dist/viewer/channel-fe5QTu-s.js +1 -0
- package/dist/viewer/{chunk-4HAMMTFA-QTbQqNtn.js → chunk-4HAMMTFA-CTdlWrtX.js} +1 -1
- package/dist/viewer/{chunk-75Z2AOVW-BbYnGlO9.js → chunk-75Z2AOVW-C_A1Se9D.js} +1 -1
- package/dist/viewer/{chunk-DU6HZSFF-D25kbUvc.js → chunk-DU6HZSFF-Dr7PaN7b.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-BqMFp5wN.js → chunk-EIO257PC-oHJkbpFs.js} +1 -1
- package/dist/viewer/{chunk-F27PBJKO-C7JmXEA_.js → chunk-F27PBJKO-BBCDjN53.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-C27INOB_.js → chunk-GMAD6QVW-BFHBOVJq.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-CEY5vytX.js → chunk-GVQU2GXP-BIpEZyzS.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-BQSAfnnl.js → chunk-IMKFNOWR-KEawvx8K.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-DlFoBxMY.js → chunk-L3NEJ4N5-IwBcwkuk.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-F3_Phybw.js → chunk-OSK3NFVY-C3k_p7-w.js} +1 -1
- package/dist/viewer/{chunk-P2QGCYS3-09egvNok.js → chunk-P2QGCYS3-Dtm_7Lz7.js} +1 -1
- package/dist/viewer/{chunk-POPQ4Y6H-CV8YIoqC.js → chunk-POPQ4Y6H-CytCoNkh.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-Bz8UB2mc.js → chunk-PWAF6VOD-CyHOdyql.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-DDp6zMvV.js → chunk-SHT3W25Y-DD7pl4JI.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-C8P_HXcE.js → chunk-SVP7TREG-Bu4mLQNH.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-CqNIbLdD.js → chunk-TICWLB2K-sZ8FCdF0.js} +1 -1
- package/dist/viewer/classDiagram-ZZMXUADV-B-zT7lnC.js +1 -0
- package/dist/viewer/classDiagram-v2-VYDZK3BY-B-zT7lnC.js +1 -0
- package/dist/viewer/{cs-CZ-2BRQDIVT-BqCK2YiO.js → cs-CZ-2BRQDIVT-BYzmp2zB.js} +1 -1
- package/dist/viewer/{cynefin-OW5HDTMX-Cj8F5cxd.js → cynefin-OW5HDTMX-BRRxGfUD.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-ao8tcFtS.js → cynefinDiagram-5FMLGOSQ-BJJG-W2c.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-D8GWiO3u.js → da-DK-5WZEPLOC-BQMUVHri.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-DsGmxha_.js → dagre-GXQ25YYZ-18YALgQ_.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-OJKx5xur.js → de-DE-XR44H4JA-CXVFrfP-.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-BPqNSGqm.js → diagram-S7CK7UJ4-BxB2LRSe.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-Hyylpo16.js → diagram-UQ7AKVKN-BcJ9Tkbs.js} +1 -1
- package/dist/viewer/{diagram-VSXAHHWV-CqqVLGLK.js → diagram-VSXAHHWV-_UeBcZmY.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-QDUSbpnl.js → diagram-VX7I27RA-Bc9iy24S.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-BlSnfIUw.js → diagram-Z3DM3KII-gU89rmSx.js} +1 -1
- package/dist/viewer/{dist-PC_089aX.js → dist-0mKY9eI7.js} +1 -1
- package/dist/viewer/{dist-BFQmsjpz.js → dist-B01tJOMA.js} +1 -1
- package/dist/viewer/{dist-8PA9S6LL.js → dist-B2jUGLcW.js} +1 -1
- package/dist/viewer/{dist-y47EP8TD.js → dist-BhkEYAHc.js} +1 -1
- package/dist/viewer/{dist-dHcM14_b.js → dist-Bo6d3UKT.js} +1 -1
- package/dist/viewer/{dist-BLAIDSVI.js → dist-BqnvFgk0.js} +1 -1
- package/dist/viewer/{dist-Cwm7m3VK.js → dist-C0qQs54I.js} +1 -1
- package/dist/viewer/{dist-BjVw2B6k.js → dist-C3CTurMw.js} +1 -1
- package/dist/viewer/{dist-BKcrjsO1.js → dist-C3WYDtp3.js} +1 -1
- package/dist/viewer/{dist-CY5pHbTR.js → dist-COTHq9_Y.js} +1 -1
- package/dist/viewer/{dist-DS3MMXtI.js → dist-CRyNsNEn.js} +1 -1
- package/dist/viewer/{dist-DlY6E9WS.js → dist-CTW5Mm7j.js} +1 -1
- package/dist/viewer/{dist-C6PBT5lE.js → dist-D3D--6Bp.js} +1 -1
- package/dist/viewer/{dist-Bo8QJSW2.js → dist-DJY0rxct.js} +1 -1
- package/dist/viewer/{dist-D8bHZTnA.js → dist-DJY6L8B9.js} +1 -1
- package/dist/viewer/{dist-Cc-_5Hcx.js → dist-DVq4uFIZ.js} +1 -1
- package/dist/viewer/{dist-DpV8-atf.js → dist-DZdqkKNN.js} +1 -1
- package/dist/viewer/{dist-Bot6IVVV.js → dist-DcqWCvRw.js} +1 -1
- package/dist/viewer/{dist-CwxBiwOj.js → dist-DhcQ70Kn.js} +1 -1
- package/dist/viewer/{dist-BB7KGjDd.js → dist-GsD7M9aH.js} +1 -1
- package/dist/viewer/{dist-CnQsaM53.js → dist-Hb3V0HyK.js} +1 -1
- package/dist/viewer/{dist-XKj_gvVl.js → dist-QjnQrlMe.js} +4 -4
- package/dist/viewer/{dist-BIiCOFkh.js → dist-_PSM37a1.js} +1 -1
- package/dist/viewer/{dist-CdS13Sm9.js → dist-hFUF3Lsa.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-Cv8jFIx3.js → ebnfDiagram-PWID7BFC-C8HSoSRy.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-Bgcc_mhT.js → el-GR-BZB4AONW-ow3fFVLT.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-xfJgNr4J.js → en-B4ZKOASM-CaY3r9HU.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-DlKwxifM.js → erDiagram-RLTQ6QDP-BxJx7rlQ.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-DjVCDf-d.js → es-ES-U4NZUMDT-BMjMaVCY.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-B9DLpn4i.js → eu-ES-A7QVB2H4-CM4bkpMu.js} +1 -1
- package/dist/viewer/{eventmodeling-NTZA5JFV-DBsen_iq.js → eventmodeling-NTZA5JFV-DnbDCfB2.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-mcJehgzb.js → fa-IR-HGAKTJCU-BLD2tQpT.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-DNSkiCdk.js → fi-FI-Z5N7JZ37-Bgn7EPoz.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-CXlFZEEj.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-Bpxco8-f.js → fr-FR-RHASNOE6-Bkw82-6W.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-B9_jTP-f.js → ganttDiagram-EL5Y4UJY-DOR_e0je.js} +1 -1
- package/dist/viewer/{gitGraph-4MIJSDKK-DQ5l_Czp.js → gitGraph-4MIJSDKK-SVRQ5W4D.js} +1 -1
- package/dist/viewer/{gitGraphDiagram-WWUBYQGX-CNheUmFp.js → gitGraphDiagram-WWUBYQGX-CDiQ0mCt.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-BDlXQ8Mo.js → gl-ES-HMX3MZ6V-BLzHqZN8.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-D_oWBOT_.js → he-IL-6SHJWFNN-D8wU25du.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-B00j5Akq.js → hi-IN-IWLTKZ5I-BL-e61Xu.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-Dir0Uxpm.js → hu-HU-A5ZG7DT2-DbYToYgQ.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-CIWlaa2K.js → id-ID-SAP4L64H-CCT_QszX.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-eNNIIQuo.js → image-GAAHSSAO-DKoD4XKV.js} +1 -1
- package/dist/viewer/index.html +5 -5
- package/dist/viewer/index.js +2 -2
- package/dist/viewer/index2.css +1 -1
- package/dist/viewer/index3.css +88 -0
- package/dist/viewer/{info-A6RAGUB7-Cg2ZMBgH.js → info-A6RAGUB7-CX2C9N30.js} +1 -1
- package/dist/viewer/{infoDiagram-27XIBGKW-D4PQhgAE.js → infoDiagram-27XIBGKW-CN86my9R.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-ST2q8zVR.js → ishikawaDiagram-5VMMS53U-5BluWj2f.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-pmEG31XC.js → it-IT-JPQ66NNP-afXtP8Ww.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-B4zqTUsM.js → ja-JP-DBVTYXUO-DekQisaL.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-jw9cozQW.js → journeyDiagram-3NMN7TZE-CJC3KFyX.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-BbZXuqjx.js → kaa-6HZHGXH3-tRph-_T2.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-B6Dpy25G.js → kab-KAB-ZGHBKWFO-BE4QoOsA.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-kKtBGERG.js → kanban-definition-UXKFOSKX-B18ysZ84.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-BlT2i9fi.js → kk-KZ-P5N5QNE5-CVRotJxc.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-It93cDWb.js → km-KH-HSX4SM5Z-hAYTx672.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-BE5d6K1R.js → ko-KR-MTYHY66A-QEVtuRm5.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-CyJeB7Dj.js → ku-TR-6OUDTVRD-CRm854Ze.js} +1 -1
- package/dist/viewer/{local-split-host-DwGe1ki5.js → local-split-host-B8nXcoph.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-B90xeOxU.js → lt-LT-XHIRWOB4-CKPgIz76.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-CItjDmqr.js → lv-LV-5QDEKY6T-ChfyCJQM.js} +1 -1
- package/dist/viewer/{mermaid-parser.core-0b8QyWBB.js → mermaid-parser.core-BVnYCq41.js} +3 -3
- package/dist/viewer/{mindmap-definition-YA3MSWOX-aI29Qvpk.js → mindmap-definition-YA3MSWOX-DHv3E1P_.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-Tce1KbsQ.js → mr-IN-CRQNXWMA-BJLGlD17.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-CpUB2CXI.js → my-MM-5M5IBNSE-9rLlVOlt.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-DsRuGO1k.js → nb-NO-T6EIAALU-B8VMz4zh.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-BjF2156S.js → nl-NL-IS3SIHDZ-DqLxBYZV.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-CGeF_3vr.js → nn-NO-6E72VCQL-Bo0PPFBQ.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-DLnQnEGu.js → oc-FR-POXYY2M6-CWWRWFHX.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-BAx2ywdg.js → pa-IN-N4M65BXN-DT0tg3Sk.js} +1 -1
- package/dist/viewer/{packet-AYTQ26CC-DK170Gd5.js → packet-AYTQ26CC-KGzO-wcr.js} +1 -1
- package/dist/viewer/{parseTrigger-YW1R9ofU.js → parseTrigger-Bu-PV9CL.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-DHp6Wg_9.js → pegDiagram-XKGWAZYB-Dic4eBsi.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-BS0t4tWg.js +1 -0
- package/dist/viewer/{pie-WAS4IAKB-BSUWPbAv.js → pie-WAS4IAKB-BYfJrbuD.js} +1 -1
- package/dist/viewer/{pieDiagram-E7YTZNPT-wfRRTiyk.js → pieDiagram-E7YTZNPT-CjUaUWV2.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-BiWBdXLi.js → pl-PL-T2D74RX3-Ch27cnOo.js} +1 -1
- package/dist/viewer/preview.html +4 -4
- package/dist/viewer/preview.js +1 -1
- package/dist/viewer/{prod-CLoF9GCs.js → prod-TT-J6Nam.js} +8 -8
- package/dist/viewer/{pt-BR-5N22H2LF-CQSzKbCy.js → pt-BR-5N22H2LF-8J6Vfb7V.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-CIlCAlTv.js → pt-PT-UZXXM6DQ-BX7qQNlR.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-BtPMYaDQ.js → quadrantDiagram-AXDQQJYC-r9uBJJoA.js} +1 -1
- package/dist/viewer/{radar-RG4KPBEZ-BcVxV4zy.js → radar-RG4KPBEZ-DDBCvrzl.js} +1 -1
- package/dist/viewer/{railroad-74A4TZTK-CTa8S3gO.js → railroad-74A4TZTK-DHdJAn7o.js} +1 -1
- package/dist/viewer/{railroad-abnf-HS5TGJTU-OAwQkYAd.js → railroad-abnf-HS5TGJTU-D9wWd5uO.js} +1 -1
- package/dist/viewer/{railroad-ebnf-LZEXJU2U-C5cc5X65.js → railroad-ebnf-LZEXJU2U-D-NZ6dqJ.js} +1 -1
- package/dist/viewer/{railroad-peg-WCYAUIDC-BDnKRxE1.js → railroad-peg-WCYAUIDC-CyPMQZm7.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-jnRSJdUv.js → railroadDiagram-O6MQD6OU-CWrubsQf.js} +1 -1
- package/dist/viewer/{ref-cwone_vf.js → ref-BF7Dk-nb.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-BNTKDL1i.js → requirementDiagram-BXWQKSXE-YIdQ9sc_.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-QX3jx-nb.js → ro-RO-JPDTUUEW-2Pp-dKmW.js} +1 -1
- package/dist/viewer/route-CDT5H7Dv.js +64 -0
- package/dist/viewer/{route-messages-DNqJY8RF.js → route-messages-Bgmu6wjw.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-C9FGD7Cs.js → ru-RU-B4JR7IUQ-DPkLOvY0.js} +1 -1
- package/dist/viewer/{sankeyDiagram-P5KCCOFB-Sqlj0O4h.js → sankeyDiagram-P5KCCOFB-BQftNXO2.js} +1 -1
- package/dist/viewer/{selection--wknfKoX.js → selection-BTJrtSto.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-CPdR8yLJ.js → sequenceDiagram-WJ2MYXX4-C90CSvsu.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-f_2YLEad.js → si-LK-N5RQ5JYF-DjQ-ynCO.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-DkKosukU.js → sk-SK-C5VTKIMK-Do9H8uzR.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-DMIQDLDl.js → sl-SI-NN7IZMDC-bJ5rRome.js} +1 -1
- package/dist/viewer/{split-url-EQlIwqCq.js → split-url-D0Eu87y4.js} +3 -3
- package/dist/viewer/{stateDiagram-D77RDMKH-Dk8vgDDZ.js → stateDiagram-D77RDMKH-pBFTeHBj.js} +1 -1
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-aanK4VsX.js +1 -0
- package/dist/viewer/subset-shared.chunk-BiJjRqIa.js +1 -0
- package/dist/viewer/{subset-worker.chunk-B_8bLook.js → subset-worker.chunk-3zYap8Q-.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-B7-5iBmq.js → sv-SE-XGPEYMSR-C0oEs72p.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-C8ikgnYd.js → swimlanes-42K2YHIH-CTsMizz_.js} +1 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-Bgny_WIB.js +8 -0
- package/dist/viewer/{ta-IN-2NMHFXQM-CCuxmYHa.js → ta-IN-2NMHFXQM-B3AATr70.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-555yyoqZ.js → th-TH-HPSO5L25-DQBS-yab.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-C2dpylBO.js → timeline-definition-24CTP7MA-C-XiBPgr.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-BzupxUte.js → tr-TR-DEFEU3FU-ag7nD5kA.js} +1 -1
- package/dist/viewer/{treeView-Q6P3EWNA-Bo2ovp6d.js → treeView-Q6P3EWNA-SVlfuIv-.js} +1 -1
- package/dist/viewer/{treemap-WGGIJYW6-B_JgUt2a.js → treemap-WGGIJYW6-_ZShzHPs.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-DRep9RrQ.js → uk-UA-QMV73CPH-BSQfUSoA.js} +1 -1
- package/dist/viewer/{useAriaLabelledBy-qrGtdh85.js → useAriaLabelledBy-BuWax2Z2.js} +1 -1
- package/dist/viewer/{useArtifactFeed-C3070Mi8.js → useArtifactFeed-BDiYn0gP.js} +1 -1
- package/dist/viewer/useCloudStatus-JY8n58HL.js +1 -0
- package/dist/viewer/{useOpenInteractionType-B0XlD3Xc.js → useOpenInteractionType-DH5mUVhj.js} +1 -1
- package/dist/viewer/{useTranslation-D3df1rHG.js → useTranslation-BNqJXci1.js} +1 -1
- package/dist/viewer/{useTypeFavicon-COeOH_8h.js → useTypeFavicon-B3gDp1sZ.js} +1 -1
- package/dist/viewer/{vennDiagram-4TSXK5OY-BmwVNbSU.js → vennDiagram-4TSXK5OY-BV0PYWnH.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-HxuRLuM7.js → vi-VN-M7AON7JQ-Dl7QA_Y_.js} +1 -1
- package/dist/viewer/{view-Q3sf2djn.js → view--v3LsuO9.js} +1 -1
- package/dist/viewer/{viewport-CFJHn_Y6-CLCrXOsP.js → viewport-CFJHn_Y6-D8gntZjd.js} +1 -1
- package/dist/viewer/{wardley-WFR3VGLG-D6GPmsYf.js → wardley-WFR3VGLG-BNvAuofQ.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-BL1YKfSh.js → wardleyDiagram-VM6X3IG4-B12XuiXU.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-9WjSzaRU.js → xychartDiagram-S5SC5T6Z-CNASGt-y.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-C_gHexkj.js → zh-CN-LNUGB5OW-BN9rjxsZ.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-Dhwq5Laa.js → zh-HK-E62DVLB3-DVH9Q1Iz.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-CfId5kew.js → zh-TW-RAJ6MFWO-CZYgWnVr.js} +1 -1
- package/dist/viewer-lib/{Canvas-BpIyaqFN.js → Canvas-Cz4jc5_1.js} +3 -3
- package/dist/viewer-lib/PageLoader-M5KGHqfg.js +32 -0
- package/dist/viewer-lib/{PhoneArtboardBar-DYEcy0Qa.js → PhoneArtboardBar-MV_lMiiq.js} +2 -2
- package/dist/viewer-lib/{PreviewView-DX6HLiL0.js → PreviewView-C0pRJ1cs.js} +117 -110
- package/dist/viewer-lib/{ReadOnlyWhiteboard-C9v2Zbtp.js → ReadOnlyWhiteboard-B5wXA3u9.js} +90 -89
- package/dist/viewer-lib/{i18n-QksLzzWi.js → RyugiLoader-_MZxEs2s.js} +145 -20
- package/dist/viewer-lib/{SnapshotDocument-CMVvuBUw.css → SnapshotDocument-BV29XJk4.css} +1 -1
- package/dist/viewer-lib/{SnapshotDocument-BbgwNfWB.js → SnapshotDocument-DiIRfl5L.js} +75 -75
- package/dist/viewer-lib/{VirtualizedEditor-uWe43zaI-CmgTXS-p.js → VirtualizedEditor-uWe43zaI-DktBg0M1.js} +2 -2
- package/dist/viewer-lib/{VirtualizedRenderer-C_d95FXi-BuckUTnS.js → VirtualizedRenderer-C_d95FXi-B39OU9Je.js} +3 -3
- package/dist/viewer-lib/{WarningsBadge-1xR7QoZB.js → WarningsBadge-p7-QKPVW.js} +1 -1
- package/dist/viewer-lib/{agentLook-xSyYY25N.js → agentLook-Pf_kpgWG.js} +1 -1
- package/dist/viewer-lib/{ar-SA-G6X2FPQ2-CEJUrUcf.js → ar-SA-G6X2FPQ2-qbH69ISs.js} +1 -1
- package/dist/viewer-lib/{az-AZ-76LH7QW2-D3FZr56u.js → az-AZ-76LH7QW2-CfO7QPHE.js} +1 -1
- package/dist/viewer-lib/{bg-BG-XCXSNQG7-DV2gd8SJ.js → bg-BG-XCXSNQG7-JgeW4H2C.js} +1 -1
- package/dist/viewer-lib/{bn-BD-2XOGV67Q-fNhYcJwe.js → bn-BD-2XOGV67Q-AoN4Z5CP.js} +1 -1
- package/dist/viewer-lib/{ca-ES-6MX7JW3Y-p45OBk_B.js → ca-ES-6MX7JW3Y-BaoeIvfa.js} +1 -1
- package/dist/viewer-lib/{chunk-EIO257PC-CXXH8Md3.js → chunk-EIO257PC-Ac80GdCI.js} +1 -1
- package/dist/viewer-lib/core.js +5 -4
- package/dist/viewer-lib/{cs-CZ-2BRQDIVT-CY75gnzI.js → cs-CZ-2BRQDIVT-DhxT4nbh.js} +1 -1
- package/dist/viewer-lib/{da-DK-5WZEPLOC-DmMaYPrm.js → da-DK-5WZEPLOC-E4_32hvX.js} +1 -1
- package/dist/viewer-lib/{de-DE-XR44H4JA-DYfV8p9-.js → de-DE-XR44H4JA-CH1m2Hyu.js} +1 -1
- package/dist/viewer-lib/{dist-CByhej7K.js → dist-4N9VL_Qo.js} +3 -3
- package/dist/viewer-lib/{dist-DXfPN4Ec.js → dist-BGqKudtK.js} +3 -3
- package/dist/viewer-lib/{dist-BC4KdWXx.js → dist-BUWnxmmt.js} +2 -2
- package/dist/viewer-lib/{dist-Bj7f3YVM.js → dist-Bf3vx8tA.js} +3 -3
- package/dist/viewer-lib/{dist-B2Nu28kR.js → dist-C2-8CMJG.js} +3 -3
- package/dist/viewer-lib/{dist-BTsSLXre.js → dist-COGc35cY.js} +1 -1
- package/dist/viewer-lib/{dist-C1rZNGDI.js → dist-CxLJJRFh.js} +3 -3
- package/dist/viewer-lib/{dist-Dk0VPjYJ.js → dist-D-eZ6Mt_.js} +4 -4
- package/dist/viewer-lib/{dist-CLtlsvg1.js → dist-D4hVC50-.js} +2 -2
- package/dist/viewer-lib/{dist-B4fnnsge.js → dist-DCoCMlKT.js} +2 -2
- package/dist/viewer-lib/{dist-DBjTRRIP.js → dist-DNSST2rW.js} +3 -3
- package/dist/viewer-lib/{dist-BIGmzfNO.js → dist-DjyhCAJp.js} +3 -3
- package/dist/viewer-lib/{dist-ot8vVTH3.js → dist-DpLE-ZgU.js} +2 -2
- package/dist/viewer-lib/{dist-DXMlNYXL.js → dist-DpdpsTAT.js} +2 -2
- package/dist/viewer-lib/{dist-C4KWXAoU.js → dist-DrhJ9opW.js} +2 -2
- package/dist/viewer-lib/{dist-BCKU1e8H.js → dist-Dt0ohtTi.js} +4 -4
- package/dist/viewer-lib/{dist-lmMdFW_t.js → dist-GyL4PJ8b.js} +3 -3
- package/dist/viewer-lib/{dist-CcDaSD_g.js → dist-JKcrLRtX.js} +2 -2
- package/dist/viewer-lib/{dist-3pnICcdO.js → dist-K_XrbIQp.js} +2 -2
- package/dist/viewer-lib/{dist-BHOz-HOQ.js → dist-YCAwO-Nd.js} +3 -3
- package/dist/viewer-lib/{dist-BqK2glT6.js → dist-e2LB4sJU.js} +4 -4
- package/dist/viewer-lib/{dist-DJ5tvY8x.js → dist-elxdtjg5.js} +1 -1
- package/dist/viewer-lib/{dist-kESmUvgx.js → dist-xhmSGfbo.js} +3 -3
- package/dist/viewer-lib/document.js +676 -674
- package/dist/viewer-lib/{el-GR-BZB4AONW-C0-Rg3rY.js → el-GR-BZB4AONW-CxMbipHk.js} +1 -1
- package/dist/viewer-lib/{en-B4ZKOASM-CWwARfdU.js → en-B4ZKOASM-Ch0kGhap.js} +1 -1
- package/dist/viewer-lib/{es-ES-U4NZUMDT-Di1ZUIVa.js → es-ES-U4NZUMDT-B9x-x6lF.js} +1 -1
- package/dist/viewer-lib/{eu-ES-A7QVB2H4-DfxpIbwQ.js → eu-ES-A7QVB2H4-C3VIhLkt.js} +1 -1
- package/dist/viewer-lib/{fa-IR-HGAKTJCU-BzJgn5bY.js → fa-IR-HGAKTJCU-Ch3qRpCM.js} +1 -1
- package/dist/viewer-lib/{fi-FI-Z5N7JZ37-Dgh9WYA8.js → fi-FI-Z5N7JZ37-DUj1GHLS.js} +1 -1
- package/dist/viewer-lib/{fr-FR-RHASNOE6-FxbVo7Yh.js → fr-FR-RHASNOE6-DHTtAWgo.js} +1 -1
- package/dist/viewer-lib/{gl-ES-HMX3MZ6V-BwezJSl-.js → gl-ES-HMX3MZ6V-Cze-1U2w.js} +1 -1
- package/dist/viewer-lib/{he-IL-6SHJWFNN-CMKZRRs9.js → he-IL-6SHJWFNN-CNXnKism.js} +1 -1
- package/dist/viewer-lib/{hi-IN-IWLTKZ5I-4-ZNp-DM.js → hi-IN-IWLTKZ5I-flVZhrNs.js} +1 -1
- package/dist/viewer-lib/{hu-HU-A5ZG7DT2-Cao8cecF.js → hu-HU-A5ZG7DT2-C37EVmEa.js} +1 -1
- package/dist/viewer-lib/{id-ID-SAP4L64H-CWnVrU2u.js → id-ID-SAP4L64H-ClyjpOWe.js} +1 -1
- package/dist/viewer-lib/{image-GAAHSSAO-5jYfRo5K.js → image-GAAHSSAO-uUIN58iQ.js} +1 -1
- package/dist/viewer-lib/index.js +1776 -1778
- package/dist/viewer-lib/{it-IT-JPQ66NNP-DiPCKoa_.js → it-IT-JPQ66NNP-Blbj9-RE.js} +1 -1
- package/dist/viewer-lib/{ja-JP-DBVTYXUO-CXbGOVTd.js → ja-JP-DBVTYXUO-d4IkMycP.js} +1 -1
- package/dist/viewer-lib/{kaa-6HZHGXH3-BkMVWloD.js → kaa-6HZHGXH3-BLfJ-cuB.js} +1 -1
- package/dist/viewer-lib/{kab-KAB-ZGHBKWFO-FA3Rofsx.js → kab-KAB-ZGHBKWFO-CE_PEjYa.js} +1 -1
- package/dist/viewer-lib/{kk-KZ-P5N5QNE5-CsDnxzrG.js → kk-KZ-P5N5QNE5-MSQ0edn8.js} +1 -1
- package/dist/viewer-lib/{km-KH-HSX4SM5Z-BxCiwgzA.js → km-KH-HSX4SM5Z-BYOvIsAB.js} +1 -1
- package/dist/viewer-lib/{ko-KR-MTYHY66A-C-7uFPlL.js → ko-KR-MTYHY66A-DBp6P6uI.js} +1 -1
- package/dist/viewer-lib/{ku-TR-6OUDTVRD-BILRBU5_.js → ku-TR-6OUDTVRD-DXb7ijNZ.js} +1 -1
- package/dist/viewer-lib/{lib-DwpunbxQ.js → lib-0D5Lgp7R.js} +1 -1
- package/dist/viewer-lib/{lt-LT-XHIRWOB4-B6TKZcXY.js → lt-LT-XHIRWOB4-tWY6xBEJ.js} +1 -1
- package/dist/viewer-lib/{lv-LV-5QDEKY6T-C-K90vIy.js → lv-LV-5QDEKY6T-B8Ew_8za.js} +1 -1
- package/dist/viewer-lib/{mr-IN-CRQNXWMA-K0hO9NLW.js → mr-IN-CRQNXWMA-C6A0bvr8.js} +1 -1
- package/dist/viewer-lib/{my-MM-5M5IBNSE-Da5X6e7B.js → my-MM-5M5IBNSE-B4eEg06F.js} +1 -1
- package/dist/viewer-lib/{nb-NO-T6EIAALU-D9WwGGq8.js → nb-NO-T6EIAALU-BST0y_U9.js} +1 -1
- package/dist/viewer-lib/{nl-NL-IS3SIHDZ-BOYOn6bl.js → nl-NL-IS3SIHDZ-R2rJHctU.js} +1 -1
- package/dist/viewer-lib/{nn-NO-6E72VCQL-Bwi6kGD3.js → nn-NO-6E72VCQL-DFgpBRTv.js} +1 -1
- package/dist/viewer-lib/{oc-FR-POXYY2M6-h8Hb5RCQ.js → oc-FR-POXYY2M6-Dfgf8Rar.js} +1 -1
- package/dist/viewer-lib/{pa-IN-N4M65BXN-DHJ5ZqCB.js → pa-IN-N4M65BXN-pRdhmMMX.js} +1 -1
- package/dist/viewer-lib/percentages-BXMCSKIN-tIRAqLi6.js +1 -0
- package/dist/viewer-lib/{pl-PL-T2D74RX3-DSrRpGY_.js → pl-PL-T2D74RX3-CWXo_n8w.js} +1 -1
- package/dist/viewer-lib/{plugin-_bGVeqI0-CUWLVkLE.js → plugin-_bGVeqI0-CEaMOsSS.js} +1 -1
- package/dist/viewer-lib/{prod-IPTdmVn7.js → prod-C-Yl3reA.js} +59 -59
- package/dist/viewer-lib/{pt-BR-5N22H2LF-Cnku-mHw.js → pt-BR-5N22H2LF-QYaR1bwz.js} +1 -1
- package/dist/viewer-lib/{pt-PT-UZXXM6DQ-CI4Lw12R.js → pt-PT-UZXXM6DQ-B3Xmhk77.js} +1 -1
- package/dist/viewer-lib/{ro-RO-JPDTUUEW-Z0rMTCBA.js → ro-RO-JPDTUUEW-c4iCK_Pl.js} +1 -1
- package/dist/viewer-lib/{route-messages-BHovJ4nB.js → route-messages-BOdX3qq4.js} +20 -20
- package/dist/viewer-lib/{ru-RU-B4JR7IUQ-DH7fwhiu.js → ru-RU-B4JR7IUQ-D6bje_j4.js} +1 -1
- package/dist/viewer-lib/{si-LK-N5RQ5JYF-BFG1Q032.js → si-LK-N5RQ5JYF-CSCCQJ8w.js} +1 -1
- package/dist/viewer-lib/{sk-SK-C5VTKIMK-nKDfxLLq.js → sk-SK-C5VTKIMK-Y0-0nXpW.js} +1 -1
- package/dist/viewer-lib/{sl-SI-NN7IZMDC-zdGtFnJ4.js → sl-SI-NN7IZMDC-LLRODh8d.js} +1 -1
- package/dist/viewer-lib/{stylex-H52XSOyN.css → stylex-CCivaCRo.css} +88 -0
- package/dist/viewer-lib/subset-shared.chunk-Bkt4jbTb.js +2 -0
- package/dist/viewer-lib/{subset-worker.chunk-DHe1FqQ-.js → subset-worker.chunk-CFZCkpb_.js} +2 -2
- package/dist/viewer-lib/{sv-SE-XGPEYMSR-MVhH_h3w.js → sv-SE-XGPEYMSR-r-pwNhnE.js} +1 -1
- package/dist/viewer-lib/{ta-IN-2NMHFXQM-C_I2r20T.js → ta-IN-2NMHFXQM-BpeAXDlG.js} +1 -1
- package/dist/viewer-lib/{th-TH-HPSO5L25-DQ6MPZ1r.js → th-TH-HPSO5L25-DVXFh9KL.js} +1 -1
- package/dist/viewer-lib/thumbnail.js +3 -1
- package/dist/viewer-lib/{tr-TR-DEFEU3FU-BNz_PazH.js → tr-TR-DEFEU3FU-CywClmkn.js} +1 -1
- package/dist/viewer-lib/types/src/shared/brand.d.ts +2 -1
- package/dist/viewer-lib/types/src/viewer/components/PageLoader.d.ts +3 -0
- package/dist/viewer-lib/types/src/viewer/components/RyugiLoader.d.ts +5 -0
- package/dist/viewer-lib/types/src/viewer/lib/pageSettle.d.ts +2 -0
- package/dist/viewer-lib/types/src/viewer/library/core.d.ts +3 -0
- package/dist/viewer-lib/{uk-UA-QMV73CPH-Dn_Qrdeq.js → uk-UA-QMV73CPH-CBuRoxji.js} +1 -1
- package/dist/viewer-lib/{vi-VN-M7AON7JQ-C777_3GC.js → vi-VN-M7AON7JQ-CUq13H3z.js} +1 -1
- package/dist/viewer-lib/{viewport-CFJHn_Y6-BrrKKQGr.js → viewport-CFJHn_Y6-NgIgENqw.js} +1 -1
- package/dist/viewer-lib/{zh-CN-LNUGB5OW-yPc5aNBV.js → zh-CN-LNUGB5OW-BRivCR5s.js} +1 -1
- package/dist/viewer-lib/{zh-HK-E62DVLB3-DL9Y2kPe.js → zh-HK-E62DVLB3-DaZXYMh5.js} +1 -1
- package/dist/viewer-lib/{zh-TW-RAJ6MFWO-3VDE8SB2.js → zh-TW-RAJ6MFWO-B7IvI564.js} +1 -1
- package/package.json +1 -1
- package/dist/viewer/ArtboardLayout-9iOfvOR4.js +0 -12
- package/dist/viewer/ArtifactList-Binw79VZ.js +0 -2
- package/dist/viewer/DocumentLayout-D7hzy6qw.js +0 -2
- package/dist/viewer/DocumentPage-whdrobXS.js +0 -4
- package/dist/viewer/DropdownMenu-CZUIT5ss.js +0 -1
- package/dist/viewer/PreviewLayout-Dvv4xVya.js +0 -2
- package/dist/viewer/WhiteboardLayout-fX2Dx4Ro.js +0 -3
- package/dist/viewer/channel-OqtHMQX0.js +0 -1
- package/dist/viewer/classDiagram-ZZMXUADV-CVstJoyx.js +0 -1
- package/dist/viewer/classDiagram-v2-VYDZK3BY-CVstJoyx.js +0 -1
- package/dist/viewer/flowDiagram-HODETNUW-CzgiVLhq.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-DvCjqEYt.js +0 -1
- package/dist/viewer/route-BWL5AGYx.js +0 -64
- package/dist/viewer/stateDiagram-v2-MP3YSRHH-Ds741M59.js +0 -1
- package/dist/viewer/subset-shared.chunk-BwlAfs_X.js +0 -1
- package/dist/viewer/swimlanesDiagram-VR7AAH4N-CIbxLGch.js +0 -8
- package/dist/viewer/useCloudStatus-BJMLC8Dr.js +0 -1
- package/dist/viewer-lib/percentages-BXMCSKIN-CN_vO7hH.js +0 -1
- package/dist/viewer-lib/subset-shared.chunk-BI1a3Hz4.js +0 -2
package/dist/server.cjs
CHANGED
|
@@ -48376,14 +48376,14 @@ var require_websocket_server = __commonJS({
|
|
|
48376
48376
|
});
|
|
48377
48377
|
|
|
48378
48378
|
// src/server/main.ts
|
|
48379
|
-
var
|
|
48379
|
+
var import_node_child_process6 = require("node:child_process");
|
|
48380
48380
|
var import_node_crypto13 = __toESM(require("node:crypto"), 1);
|
|
48381
48381
|
var import_node_fs46 = __toESM(require("node:fs"), 1);
|
|
48382
48382
|
var import_node_os2 = __toESM(require("node:os"), 1);
|
|
48383
|
-
var
|
|
48383
|
+
var import_node_path43 = __toESM(require("node:path"), 1);
|
|
48384
48384
|
|
|
48385
48385
|
// package.json
|
|
48386
|
-
var version = "1.
|
|
48386
|
+
var version = "1.70.0";
|
|
48387
48387
|
|
|
48388
48388
|
// src/server/browser-focus.ts
|
|
48389
48389
|
var import_node_child_process = require("node:child_process");
|
|
@@ -49191,7 +49191,7 @@ function clearCredentials(file) {
|
|
|
49191
49191
|
// src/server/hub.ts
|
|
49192
49192
|
var import_node_fs43 = __toESM(require("node:fs"), 1);
|
|
49193
49193
|
var import_node_http2 = __toESM(require("node:http"), 1);
|
|
49194
|
-
var
|
|
49194
|
+
var import_node_path41 = __toESM(require("node:path"), 1);
|
|
49195
49195
|
|
|
49196
49196
|
// src/server/access.ts
|
|
49197
49197
|
var LOOPBACK = /* @__PURE__ */ new Set(["localhost", "::1", "[::1]"]);
|
|
@@ -49220,7 +49220,7 @@ var navigationAllowed = (secFetchSite) => secFetchSite === void 0 || secFetchSit
|
|
|
49220
49220
|
// src/server/app.ts
|
|
49221
49221
|
var import_node_fs40 = __toESM(require("node:fs"), 1);
|
|
49222
49222
|
var import_node_http = __toESM(require("node:http"), 1);
|
|
49223
|
-
var
|
|
49223
|
+
var import_node_path38 = __toESM(require("node:path"), 1);
|
|
49224
49224
|
|
|
49225
49225
|
// src/shared/cloud.ts
|
|
49226
49226
|
var MAX_ARTIFACT_BYTES = 20 * 1024 * 1024;
|
|
@@ -49626,9 +49626,9 @@ function watchArtifacts(ctx) {
|
|
|
49626
49626
|
var PAGE_CSP = "sandbox allow-scripts allow-modals allow-forms allow-popups allow-downloads";
|
|
49627
49627
|
var DOCUMENT_ASSET_CSP = "sandbox; default-src 'none'";
|
|
49628
49628
|
var ISOLATED_BOARD_CSP = "worker-src 'none'";
|
|
49629
|
-
function contentCsp(type,
|
|
49629
|
+
function contentCsp(type, path46, ownOrigin) {
|
|
49630
49630
|
if (type === "html") return PAGE_CSP;
|
|
49631
|
-
if (type === "document") return
|
|
49631
|
+
if (type === "document") return path46.endsWith(".html") ? PAGE_CSP : DOCUMENT_ASSET_CSP;
|
|
49632
49632
|
return ownOrigin ? ISOLATED_BOARD_CSP : "sandbox allow-scripts";
|
|
49633
49633
|
}
|
|
49634
49634
|
|
|
@@ -49657,7 +49657,7 @@ function routeBoardRequest(req, pathname) {
|
|
|
49657
49657
|
|
|
49658
49658
|
// src/server/context.ts
|
|
49659
49659
|
var import_node_fs36 = __toESM(require("node:fs"), 1);
|
|
49660
|
-
var
|
|
49660
|
+
var import_node_path34 = __toESM(require("node:path"), 1);
|
|
49661
49661
|
|
|
49662
49662
|
// src/server/agent-review.ts
|
|
49663
49663
|
var import_node_crypto5 = __toESM(require("node:crypto"), 1);
|
|
@@ -52040,7 +52040,12 @@ function mergeReferrers({
|
|
|
52040
52040
|
|
|
52041
52041
|
// src/shared/brand.ts
|
|
52042
52042
|
var RYUGI_MARK_VIEWBOX = "0 0 512 512";
|
|
52043
|
-
var
|
|
52043
|
+
var RYUGI_MARK_STROKES = [
|
|
52044
|
+
"M4945 3889 c-339 -44 -682 -239 -905 -517 -139 -172 -232 -355 -365 -717 -136 -368 -285 -735 -360 -890 -219 -449 -524 -768 -849 -887 -121 -44 -215 -60 -356 -60 -162 0 -244 18 -450 97 -291 111 -420 144 -650 166 -257 24 -637 -19 -772 -87 -148 -75 -249 -247 -235 -399 19 -197 186 -344 392 -346 40 -1 127 11 205 27 115 23 160 28 300 28 242 1 372 -29 671 -155 226 -95 467 -149 662 -149 252 0 548 74 789 197 394 201 708 521 988 1008 83 144 271 529 405 830 220 493 300 632 436 759 121 112 226 162 424 201 44 9 108 29 143 45 165 77 274 285 244 467 -31 188 -168 334 -354 378 -70 16 -249 18 -363 4z",
|
|
52045
|
+
"M765 3139 c-202 -11 -415 -48 -497 -86 -91 -44 -151 -101 -193 -186 -123 -248 31 -525 307 -554 38 -4 99 3 204 23 137 27 167 29 384 29 205 0 249 -3 347 -23 225 -45 387 -106 658 -247 182 -94 308 -144 463 -182 138 -35 350 -39 447 -9 174 53 275 152 305 299 26 130 -40 267 -158 323 -52 25 -72 28 -227 35 -248 11 -328 37 -576 187 -232 140 -384 213 -585 281 -283 95 -541 127 -879 110z",
|
|
52046
|
+
"M620 2104 c-273 -32 -384 -65 -471 -143 -235 -208 -136 -589 172 -660 68 -16 129 -13 272 14 400 73 702 31 1167 -163 239 -99 350 -125 535 -125 193 0 338 51 448 157 117 113 139 261 56 375 -50 69 -99 85 -294 92 -245 10 -332 35 -563 163 -224 123 -456 211 -693 262 -111 23 -149 26 -359 29 -129 2 -251 1 -270 -1z"
|
|
52047
|
+
];
|
|
52048
|
+
var RYUGI_MARK_BODY = `<g transform="translate(82 136.317460) scale(0.613756614)"><g transform="translate(0.000000,390.000000) scale(0.100000,-0.100000)" stroke="none"><path d="${RYUGI_MARK_STROKES.join(" ")}"/></g></g>`;
|
|
52044
52049
|
|
|
52045
52050
|
// src/shared/locale.ts
|
|
52046
52051
|
var HTML_LANG = { en: "en", zh: "zh-CN" };
|
|
@@ -66665,7 +66670,7 @@ function createCloudRoutes(options2) {
|
|
|
66665
66670
|
const challenge = import_node_crypto10.default.createHash("sha256").update(verifier).digest("base64url");
|
|
66666
66671
|
return `${origin}/auth/cli?port=${options2.port()}&state=${state2}&challenge=${challenge}`;
|
|
66667
66672
|
};
|
|
66668
|
-
const cloudFetch = async (method,
|
|
66673
|
+
const cloudFetch = async (method, path46, body) => {
|
|
66669
66674
|
const credentials = readCredentials(credentialsFile2, origin);
|
|
66670
66675
|
if (!credentials) throw new SignedOut();
|
|
66671
66676
|
const headers = { Authorization: `Bearer ${credentials.token}` };
|
|
@@ -66679,7 +66684,7 @@ function createCloudRoutes(options2) {
|
|
|
66679
66684
|
}
|
|
66680
66685
|
let res;
|
|
66681
66686
|
try {
|
|
66682
|
-
res = await fetch(`${origin}${
|
|
66687
|
+
res = await fetch(`${origin}${path46}`, { method, headers, body: payload });
|
|
66683
66688
|
} catch (err) {
|
|
66684
66689
|
throw new CloudRefused(502, `could not reach ${origin}: ${err.message}`);
|
|
66685
66690
|
}
|
|
@@ -66800,7 +66805,7 @@ function createCloudRoutes(options2) {
|
|
|
66800
66805
|
const content = {
|
|
66801
66806
|
title: inspected.title,
|
|
66802
66807
|
payload: inspected.payload,
|
|
66803
|
-
files: hashed.map(({ path:
|
|
66808
|
+
files: hashed.map(({ path: path46, hash: hash2 }) => ({ path: path46, hash: hash2 }))
|
|
66804
66809
|
};
|
|
66805
66810
|
const fingerprint = sha(
|
|
66806
66811
|
JSON.stringify({
|
|
@@ -69117,19 +69122,19 @@ var ElementDOMSlot = class _ElementDOMSlot extends DOMSlot {
|
|
|
69117
69122
|
}
|
|
69118
69123
|
};
|
|
69119
69124
|
function indexPath(root, child) {
|
|
69120
|
-
const
|
|
69125
|
+
const path46 = [];
|
|
69121
69126
|
let node = child;
|
|
69122
69127
|
for (; node !== root && node !== null; node = node.parentNode) {
|
|
69123
69128
|
let i7 = 0;
|
|
69124
69129
|
for (let sibling = node.previousSibling; sibling !== null; sibling = sibling.previousSibling) {
|
|
69125
69130
|
i7++;
|
|
69126
69131
|
}
|
|
69127
|
-
|
|
69132
|
+
path46.push(i7);
|
|
69128
69133
|
}
|
|
69129
69134
|
if (!(node === root)) {
|
|
69130
69135
|
formatDevErrorMessage(`indexPath: root is not a parent of child`);
|
|
69131
69136
|
}
|
|
69132
|
-
return
|
|
69137
|
+
return path46.reverse();
|
|
69133
69138
|
}
|
|
69134
69139
|
var TEXT_MUTATION_VARIANCE = 100;
|
|
69135
69140
|
var isProcessingMutations = false;
|
|
@@ -78489,9 +78494,9 @@ function getActiveElementDeep(root) {
|
|
|
78489
78494
|
function getComposedEventTarget(event) {
|
|
78490
78495
|
const target = event.target;
|
|
78491
78496
|
if (target !== null && isHTMLElement(target) && target.shadowRoot !== null && typeof event.composedPath === "function") {
|
|
78492
|
-
const
|
|
78493
|
-
if (
|
|
78494
|
-
return
|
|
78497
|
+
const path46 = event.composedPath();
|
|
78498
|
+
if (path46.length > 0) {
|
|
78499
|
+
return path46[0];
|
|
78495
78500
|
}
|
|
78496
78501
|
}
|
|
78497
78502
|
return target;
|
|
@@ -120629,10 +120634,10 @@ function $placeBlocks(runtime, $isTarget) {
|
|
|
120629
120634
|
}
|
|
120630
120635
|
const documentKey = $documentKey();
|
|
120631
120636
|
for (const [key2, frame] of targets) {
|
|
120632
|
-
const
|
|
120633
|
-
let id3 = derivePositionalId(documentKey,
|
|
120637
|
+
const path46 = placeOf(frame);
|
|
120638
|
+
let id3 = derivePositionalId(documentKey, path46);
|
|
120634
120639
|
for (let attempt = 1; taken.has(id3); attempt++) {
|
|
120635
|
-
id3 = derivePositionalId(documentKey, `${
|
|
120640
|
+
id3 = derivePositionalId(documentKey, `${path46}#${attempt}`);
|
|
120636
120641
|
}
|
|
120637
120642
|
taken.add(id3);
|
|
120638
120643
|
placed.set(key2, id3);
|
|
@@ -153382,27 +153387,27 @@ var sqrtTall = function sqrtTall2(extraVinculum, hLinePad2, viewBoxHeight) {
|
|
|
153382
153387
|
};
|
|
153383
153388
|
var sqrtPath = function sqrtPath2(size, extraVinculum, viewBoxHeight) {
|
|
153384
153389
|
extraVinculum = 1e3 * extraVinculum;
|
|
153385
|
-
var
|
|
153390
|
+
var path46 = "";
|
|
153386
153391
|
switch (size) {
|
|
153387
153392
|
case "sqrtMain":
|
|
153388
|
-
|
|
153393
|
+
path46 = sqrtMain(extraVinculum, hLinePad);
|
|
153389
153394
|
break;
|
|
153390
153395
|
case "sqrtSize1":
|
|
153391
|
-
|
|
153396
|
+
path46 = sqrtSize1(extraVinculum, hLinePad);
|
|
153392
153397
|
break;
|
|
153393
153398
|
case "sqrtSize2":
|
|
153394
|
-
|
|
153399
|
+
path46 = sqrtSize2(extraVinculum, hLinePad);
|
|
153395
153400
|
break;
|
|
153396
153401
|
case "sqrtSize3":
|
|
153397
|
-
|
|
153402
|
+
path46 = sqrtSize3(extraVinculum, hLinePad);
|
|
153398
153403
|
break;
|
|
153399
153404
|
case "sqrtSize4":
|
|
153400
|
-
|
|
153405
|
+
path46 = sqrtSize4(extraVinculum, hLinePad);
|
|
153401
153406
|
break;
|
|
153402
153407
|
case "sqrtTall":
|
|
153403
|
-
|
|
153408
|
+
path46 = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);
|
|
153404
153409
|
}
|
|
153405
|
-
return
|
|
153410
|
+
return path46;
|
|
153406
153411
|
};
|
|
153407
153412
|
var innerPath = function innerPath2(name, height) {
|
|
153408
153413
|
switch (name) {
|
|
@@ -157616,8 +157621,8 @@ var svgData = {
|
|
|
157616
157621
|
};
|
|
157617
157622
|
var staticSvg = function staticSvg2(value, options2) {
|
|
157618
157623
|
var _svgData$value = svgData[value], pathName = _svgData$value[0], width = _svgData$value[1], height = _svgData$value[2];
|
|
157619
|
-
var
|
|
157620
|
-
var svgNode = new SvgNode([
|
|
157624
|
+
var path46 = new PathNode(pathName);
|
|
157625
|
+
var svgNode = new SvgNode([path46], {
|
|
157621
157626
|
"width": makeEm(width),
|
|
157622
157627
|
"height": makeEm(height),
|
|
157623
157628
|
// Override CSS rule `.katex svg { width: 100% }`
|
|
@@ -158760,8 +158765,8 @@ var stretchySvg = function stretchySvg2(group, options2) {
|
|
|
158760
158765
|
pathName = "tilde" + imgIndex;
|
|
158761
158766
|
}
|
|
158762
158767
|
}
|
|
158763
|
-
var
|
|
158764
|
-
var svgNode = new SvgNode([
|
|
158768
|
+
var path46 = new PathNode(pathName);
|
|
158769
|
+
var svgNode = new SvgNode([path46], {
|
|
158765
158770
|
"width": "100%",
|
|
158766
158771
|
"height": makeEm(_height),
|
|
158767
158772
|
"viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight,
|
|
@@ -159975,8 +159980,8 @@ var makeGlyphSpan = function makeGlyphSpan2(symbol, font, mode, options2) {
|
|
|
159975
159980
|
};
|
|
159976
159981
|
var makeInner = function makeInner2(ch4, height, options2) {
|
|
159977
159982
|
var width = fontMetricsData["Size4-Regular"][ch4.charCodeAt(0)] ? fontMetricsData["Size4-Regular"][ch4.charCodeAt(0)][4] : fontMetricsData["Size1-Regular"][ch4.charCodeAt(0)][4];
|
|
159978
|
-
var
|
|
159979
|
-
var svgNode = new SvgNode([
|
|
159983
|
+
var path46 = new PathNode("inner", innerPath(ch4, Math.round(1e3 * height)));
|
|
159984
|
+
var svgNode = new SvgNode([path46], {
|
|
159980
159985
|
"width": makeEm(width),
|
|
159981
159986
|
"height": makeEm(height),
|
|
159982
159987
|
// Override CSS rule `.katex svg { width: 100% }`
|
|
@@ -160145,10 +160150,10 @@ var makeStackedDelim = function makeStackedDelim2(delim, heightTotal, center, op
|
|
|
160145
160150
|
var midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;
|
|
160146
160151
|
var viewBoxHeight = Math.round(realHeightTotal * 1e3);
|
|
160147
160152
|
var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1e3));
|
|
160148
|
-
var
|
|
160153
|
+
var path46 = new PathNode(svgLabel, pathStr);
|
|
160149
160154
|
var width = makeEm(viewBoxWidth / 1e3);
|
|
160150
160155
|
var height = makeEm(viewBoxHeight / 1e3);
|
|
160151
|
-
var svg = new SvgNode([
|
|
160156
|
+
var svg = new SvgNode([path46], {
|
|
160152
160157
|
"width": width,
|
|
160153
160158
|
"height": height,
|
|
160154
160159
|
"viewBox": "0 0 " + viewBoxWidth + " " + viewBoxHeight
|
|
@@ -160189,8 +160194,8 @@ var makeStackedDelim = function makeStackedDelim2(delim, heightTotal, center, op
|
|
|
160189
160194
|
var vbPad = 80;
|
|
160190
160195
|
var emPad = 0.08;
|
|
160191
160196
|
var sqrtSvg = function sqrtSvg2(sqrtName, height, viewBoxHeight, extraVinculum, options2) {
|
|
160192
|
-
var
|
|
160193
|
-
var pathNode = new PathNode(sqrtName,
|
|
160197
|
+
var path46 = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);
|
|
160198
|
+
var pathNode = new PathNode(sqrtName, path46);
|
|
160194
160199
|
var svg = new SvgNode([pathNode], {
|
|
160195
160200
|
// Note: 1000:1 ratio of viewBox to document em width.
|
|
160196
160201
|
"width": "400em",
|
|
@@ -160689,8 +160694,8 @@ var htmlBuilder$7 = (group, options2) => {
|
|
|
160689
160694
|
var angleHeight = inner2.height + inner2.depth + lineWeight + clearance;
|
|
160690
160695
|
inner2.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight);
|
|
160691
160696
|
var viewBoxHeight = Math.floor(1e3 * angleHeight * scale);
|
|
160692
|
-
var
|
|
160693
|
-
var svgNode = new SvgNode([new PathNode("phase",
|
|
160697
|
+
var path46 = phasePath(viewBoxHeight);
|
|
160698
|
+
var svgNode = new SvgNode([new PathNode("phase", path46)], {
|
|
160694
160699
|
"width": "400em",
|
|
160695
160700
|
"height": makeEm(viewBoxHeight / 1e3),
|
|
160696
160701
|
"viewBox": "0 0 400000 " + viewBoxHeight,
|
|
@@ -167231,9 +167236,9 @@ function _loadWasmModule(sync, filepath, src, imports2) {
|
|
|
167231
167236
|
var isNode2 = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
|
|
167232
167237
|
if (filepath && isNode2) {
|
|
167233
167238
|
var fs50 = null;
|
|
167234
|
-
var
|
|
167239
|
+
var path46 = null;
|
|
167235
167240
|
return new Promise((resolve, reject) => {
|
|
167236
|
-
fs50.readFile(
|
|
167241
|
+
fs50.readFile(path46.resolve(__dirname, filepath), (error, buffer) => {
|
|
167237
167242
|
if (error != null) {
|
|
167238
167243
|
reject(error);
|
|
167239
167244
|
} else {
|
|
@@ -168536,10 +168541,10 @@ var LoroDoc = class _LoroDoc {
|
|
|
168536
168541
|
* @param {string} path
|
|
168537
168542
|
* @returns {Value | Container | undefined}
|
|
168538
168543
|
*/
|
|
168539
|
-
getByPath(
|
|
168544
|
+
getByPath(path46) {
|
|
168540
168545
|
try {
|
|
168541
168546
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
168542
|
-
const ptr0 = passStringToWasm0(
|
|
168547
|
+
const ptr0 = passStringToWasm0(path46, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
168543
168548
|
const len0 = WASM_VECTOR_LEN;
|
|
168544
168549
|
wasm.lorodoc_getByPath(retptr, this.__wbg_ptr, ptr0, len0);
|
|
168545
168550
|
var r02 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
@@ -176160,16 +176165,16 @@ var Diff = class {
|
|
|
176160
176165
|
}
|
|
176161
176166
|
}
|
|
176162
176167
|
}
|
|
176163
|
-
addToPath(
|
|
176164
|
-
const last =
|
|
176168
|
+
addToPath(path46, added, removed, oldPosInc, options2) {
|
|
176169
|
+
const last = path46.lastComponent;
|
|
176165
176170
|
if (last && !options2.oneChangePerToken && last.added === added && last.removed === removed) {
|
|
176166
176171
|
return {
|
|
176167
|
-
oldPos:
|
|
176172
|
+
oldPos: path46.oldPos + oldPosInc,
|
|
176168
176173
|
lastComponent: { count: last.count + 1, added, removed, previousComponent: last.previousComponent }
|
|
176169
176174
|
};
|
|
176170
176175
|
} else {
|
|
176171
176176
|
return {
|
|
176172
|
-
oldPos:
|
|
176177
|
+
oldPos: path46.oldPos + oldPosInc,
|
|
176173
176178
|
lastComponent: { count: 1, added, removed, previousComponent: last }
|
|
176174
176179
|
};
|
|
176175
176180
|
}
|
|
@@ -181705,6 +181710,42 @@ var MAX_RUNTIME_WARNINGS = 20;
|
|
|
181705
181710
|
var MAX_COMMENT_OP = 64 * 1024;
|
|
181706
181711
|
var MAX_DOCUMENT_UPDATE = 8 * 1024 * 1024;
|
|
181707
181712
|
|
|
181713
|
+
// src/server/project-name.ts
|
|
181714
|
+
var import_node_child_process3 = require("node:child_process");
|
|
181715
|
+
var import_node_path27 = __toESM(require("node:path"), 1);
|
|
181716
|
+
var SCP_LIKE = /^(?:[^@/]+@)?[^:/]+:(?!\/)(.+)$/;
|
|
181717
|
+
function remotePath(url) {
|
|
181718
|
+
if (/^[a-z][a-z0-9+.-]*:\/\//i.test(url)) {
|
|
181719
|
+
try {
|
|
181720
|
+
const parsed = new URL(url);
|
|
181721
|
+
return parsed.protocol === "file:" ? null : parsed.pathname;
|
|
181722
|
+
} catch {
|
|
181723
|
+
return null;
|
|
181724
|
+
}
|
|
181725
|
+
}
|
|
181726
|
+
return SCP_LIKE.exec(url)?.[1] ?? null;
|
|
181727
|
+
}
|
|
181728
|
+
function remoteProject(url) {
|
|
181729
|
+
const pathname = remotePath(url.trim());
|
|
181730
|
+
if (!pathname) return null;
|
|
181731
|
+
const segments = pathname.replace(/\.git\/?$/, "").split("/").filter(Boolean);
|
|
181732
|
+
if (segments.length < 2) return null;
|
|
181733
|
+
return segments.join("/").toLowerCase();
|
|
181734
|
+
}
|
|
181735
|
+
function publishedProjectName(dir) {
|
|
181736
|
+
try {
|
|
181737
|
+
const url = (0, import_node_child_process3.execFileSync)("git", ["-C", dir, "remote", "get-url", "origin"], {
|
|
181738
|
+
encoding: "utf8",
|
|
181739
|
+
timeout: 2e3,
|
|
181740
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
181741
|
+
env: { ...process.env, GIT_TERMINAL_PROMPT: "0" }
|
|
181742
|
+
});
|
|
181743
|
+
return remoteProject(url) ?? import_node_path27.default.basename(dir);
|
|
181744
|
+
} catch {
|
|
181745
|
+
return import_node_path27.default.basename(dir);
|
|
181746
|
+
}
|
|
181747
|
+
}
|
|
181748
|
+
|
|
181708
181749
|
// src/server/artifact-file.ts
|
|
181709
181750
|
var import_node_fs30 = __toESM(require("node:fs"), 1);
|
|
181710
181751
|
var RESOLVE = {
|
|
@@ -181935,7 +181976,7 @@ async function handleRelay(ctx, key2, body, conn, contentOrigin = "") {
|
|
|
181935
181976
|
|
|
181936
181977
|
// src/server/selection.ts
|
|
181937
181978
|
var import_node_fs31 = __toESM(require("node:fs"), 1);
|
|
181938
|
-
var
|
|
181979
|
+
var import_node_path28 = __toESM(require("node:path"), 1);
|
|
181939
181980
|
|
|
181940
181981
|
// src/shared/selection.ts
|
|
181941
181982
|
var SELECTION_FULL_NODES = 20;
|
|
@@ -182080,7 +182121,7 @@ function readAnySelection(value) {
|
|
|
182080
182121
|
function createSelectionStore(stateDir, exists) {
|
|
182081
182122
|
const tabs = /* @__PURE__ */ new Map();
|
|
182082
182123
|
let clock = 0;
|
|
182083
|
-
const fileOf2 = (kind, id3) =>
|
|
182124
|
+
const fileOf2 = (kind, id3) => import_node_path28.default.join(stateDir, kind, id3, "selection.json");
|
|
182084
182125
|
const write = (kind, id3) => {
|
|
182085
182126
|
let winner;
|
|
182086
182127
|
for (const tab of tabs.values()) {
|
|
@@ -182130,7 +182171,7 @@ function createSelectionStore(stateDir, exists) {
|
|
|
182130
182171
|
for (const kind of ["artboard", "document", "whiteboard"]) {
|
|
182131
182172
|
let ids;
|
|
182132
182173
|
try {
|
|
182133
|
-
ids = import_node_fs31.default.readdirSync(
|
|
182174
|
+
ids = import_node_fs31.default.readdirSync(import_node_path28.default.join(stateDir, kind));
|
|
182134
182175
|
} catch {
|
|
182135
182176
|
continue;
|
|
182136
182177
|
}
|
|
@@ -182143,15 +182184,15 @@ function createSelectionStore(stateDir, exists) {
|
|
|
182143
182184
|
// src/server/verify-recordings.ts
|
|
182144
182185
|
var import_node_crypto11 = __toESM(require("node:crypto"), 1);
|
|
182145
182186
|
var import_node_fs33 = __toESM(require("node:fs"), 1);
|
|
182146
|
-
var
|
|
182187
|
+
var import_node_path30 = __toESM(require("node:path"), 1);
|
|
182147
182188
|
|
|
182148
182189
|
// src/server/recording-trim.ts
|
|
182149
|
-
var
|
|
182190
|
+
var import_node_child_process4 = require("node:child_process");
|
|
182150
182191
|
var import_node_fs32 = __toESM(require("node:fs"), 1);
|
|
182151
|
-
var
|
|
182192
|
+
var import_node_path29 = __toESM(require("node:path"), 1);
|
|
182152
182193
|
function run2(command, args, signal3) {
|
|
182153
182194
|
return new Promise((resolve, reject) => {
|
|
182154
|
-
(0,
|
|
182195
|
+
(0, import_node_child_process4.execFile)(
|
|
182155
182196
|
command,
|
|
182156
182197
|
args,
|
|
182157
182198
|
{ encoding: "utf8", maxBuffer: 16 * 1024 * 1024, timeout: 12e4, signal: signal3 },
|
|
@@ -182240,9 +182281,9 @@ async function trimRecording(input, output, signal3) {
|
|
|
182240
182281
|
if (start > 0 || end < duration) status = "trimmed";
|
|
182241
182282
|
}
|
|
182242
182283
|
if (status === "trimmed") {
|
|
182243
|
-
const temporary = import_node_fs32.default.mkdtempSync(
|
|
182284
|
+
const temporary = import_node_fs32.default.mkdtempSync(import_node_path29.default.join(import_node_path29.default.dirname(output), ".trim-"));
|
|
182244
182285
|
try {
|
|
182245
|
-
const encoded =
|
|
182286
|
+
const encoded = import_node_path29.default.join(temporary, "clip.mp4");
|
|
182246
182287
|
await run2(
|
|
182247
182288
|
"ffmpeg",
|
|
182248
182289
|
[
|
|
@@ -182305,7 +182346,7 @@ function createVerifyRecordings(options2) {
|
|
|
182305
182346
|
const notify = (job) => {
|
|
182306
182347
|
if (current(job)) options2.onChange(job.artifact);
|
|
182307
182348
|
};
|
|
182308
|
-
const cacheDir =
|
|
182349
|
+
const cacheDir = import_node_path30.default.join(options2.stateDir, "recordings");
|
|
182309
182350
|
async function process2(job) {
|
|
182310
182351
|
let temporary;
|
|
182311
182352
|
try {
|
|
@@ -182322,9 +182363,9 @@ function createVerifyRecordings(options2) {
|
|
|
182322
182363
|
return;
|
|
182323
182364
|
}
|
|
182324
182365
|
const key2 = digest2(`${POLICY}:${digest2(bytes)}`);
|
|
182325
|
-
const dir =
|
|
182326
|
-
const output =
|
|
182327
|
-
const metadata =
|
|
182366
|
+
const dir = import_node_path30.default.join(cacheDir, key2);
|
|
182367
|
+
const output = import_node_path30.default.join(dir, "clip.mp4");
|
|
182368
|
+
const metadata = import_node_path30.default.join(dir, "result.json");
|
|
182328
182369
|
let cached;
|
|
182329
182370
|
try {
|
|
182330
182371
|
const saved = JSON.parse(import_node_fs33.default.readFileSync(metadata, "utf8"));
|
|
@@ -182334,9 +182375,9 @@ function createVerifyRecordings(options2) {
|
|
|
182334
182375
|
}
|
|
182335
182376
|
if (!cached) {
|
|
182336
182377
|
import_node_fs33.default.mkdirSync(cacheDir, { recursive: true });
|
|
182337
|
-
temporary = import_node_fs33.default.mkdtempSync(
|
|
182338
|
-
const input =
|
|
182339
|
-
const prepared =
|
|
182378
|
+
temporary = import_node_fs33.default.mkdtempSync(import_node_path30.default.join(cacheDir, ".prepare-"));
|
|
182379
|
+
const input = import_node_path30.default.join(temporary, "capture");
|
|
182380
|
+
const prepared = import_node_path30.default.join(temporary, "clip.mp4");
|
|
182340
182381
|
import_node_fs33.default.writeFileSync(input, bytes);
|
|
182341
182382
|
const result = await (options2.prepare ?? trimRecording)(
|
|
182342
182383
|
input,
|
|
@@ -182494,7 +182535,7 @@ function createVerifyRecordings(options2) {
|
|
|
182494
182535
|
|
|
182495
182536
|
// src/server/whiteboard.ts
|
|
182496
182537
|
var import_node_fs34 = __toESM(require("node:fs"), 1);
|
|
182497
|
-
var
|
|
182538
|
+
var import_node_path31 = __toESM(require("node:path"), 1);
|
|
182498
182539
|
|
|
182499
182540
|
// src/server/whiteboard-lint.ts
|
|
182500
182541
|
var LINE_TYPES = /* @__PURE__ */ new Set(["arrow", "line"]);
|
|
@@ -182544,16 +182585,16 @@ var segmentsCross = (a5, b6, c10, d10) => side(a5, b6, c10) * side(a5, b6, d10)
|
|
|
182544
182585
|
var pathOf = (element) => {
|
|
182545
182586
|
const { points: points2 } = element;
|
|
182546
182587
|
if (!Array.isArray(points2) || points2.length < 2) return null;
|
|
182547
|
-
const
|
|
182588
|
+
const path46 = [];
|
|
182548
182589
|
for (const point2 of points2) {
|
|
182549
182590
|
if (!Array.isArray(point2) || typeof point2[0] !== "number" || typeof point2[1] !== "number")
|
|
182550
182591
|
return null;
|
|
182551
|
-
|
|
182592
|
+
path46.push([(element.x ?? 0) + point2[0], (element.y ?? 0) + point2[1]]);
|
|
182552
182593
|
}
|
|
182553
|
-
return
|
|
182594
|
+
return path46;
|
|
182554
182595
|
};
|
|
182555
|
-
var segmentsOf = (
|
|
182556
|
-
var lengthOf = (
|
|
182596
|
+
var segmentsOf = (path46) => path46.slice(1).map((end, index) => [path46[index], end]);
|
|
182597
|
+
var lengthOf = (path46) => segmentsOf(path46).reduce((sum2, [a5, b6]) => sum2 + Math.hypot(b6[0] - a5[0], b6[1] - a5[1]), 0);
|
|
182557
182598
|
var boundIds = (element) => [element.startBinding?.elementId, element.endBinding?.elementId].filter(
|
|
182558
182599
|
(id3) => typeof id3 === "string"
|
|
182559
182600
|
);
|
|
@@ -182590,18 +182631,18 @@ function arrowWarnings(live3, geometry) {
|
|
|
182590
182631
|
);
|
|
182591
182632
|
const arrows = live3.flatMap((element) => {
|
|
182592
182633
|
if (!LINE_TYPES.has(element.type) || ryugi(element).author !== "agent") return [];
|
|
182593
|
-
const
|
|
182594
|
-
return
|
|
182634
|
+
const path46 = pathOf(element);
|
|
182635
|
+
return path46 ? [{ element, path: path46, bound: boundIds(element) }] : [];
|
|
182595
182636
|
});
|
|
182596
182637
|
const warnings = [];
|
|
182597
|
-
for (const { element, path:
|
|
182598
|
-
const ends = [
|
|
182638
|
+
for (const { element, path: path46 } of arrows) {
|
|
182639
|
+
const ends = [path46[0], path46.at(-1)];
|
|
182599
182640
|
const around = obstacles.filter(
|
|
182600
182641
|
(shape2) => !ends.some((end) => holds(geometry[shape2.id], end))
|
|
182601
182642
|
);
|
|
182602
182643
|
for (const shape2 of around) {
|
|
182603
182644
|
const box2 = inset(geometry[shape2.id], GRAZE);
|
|
182604
|
-
if (segmentsOf(
|
|
182645
|
+
if (segmentsOf(path46).some(([a5, b6]) => segmentHits(a5, b6, box2)))
|
|
182605
182646
|
warnings.push(
|
|
182606
182647
|
`arrow ${element.id} crosses ${shape2.id} \u2014 move ${shape2.id} or bend the arrow around it`
|
|
182607
182648
|
);
|
|
@@ -182619,7 +182660,7 @@ function arrowWarnings(live3, geometry) {
|
|
|
182619
182660
|
const need = Math.ceil(
|
|
182620
182661
|
(Math.abs(dx2) * label.w + Math.abs(dy2) * label.h) / chord + LABEL_MARGIN
|
|
182621
182662
|
);
|
|
182622
|
-
const length = lengthOf(
|
|
182663
|
+
const length = lengthOf(path46);
|
|
182623
182664
|
if (length < need)
|
|
182624
182665
|
warnings.push(
|
|
182625
182666
|
`label of arrow ${element.id} needs the arrow to be at least ${need} px long (now ${Math.round(length)}) \u2014 move its ends apart or shorten the label`
|
|
@@ -182651,7 +182692,7 @@ function readWhiteboard(dir, id3) {
|
|
|
182651
182692
|
const version3 = latestMtime(dir);
|
|
182652
182693
|
let source;
|
|
182653
182694
|
try {
|
|
182654
|
-
source = import_node_fs34.default.readFileSync(
|
|
182695
|
+
source = import_node_fs34.default.readFileSync(import_node_path31.default.join(dir, ENTRY_FILE.whiteboard), "utf8");
|
|
182655
182696
|
} catch {
|
|
182656
182697
|
return {
|
|
182657
182698
|
title: id3,
|
|
@@ -182774,7 +182815,7 @@ function onlyPage(result, page, pages) {
|
|
|
182774
182815
|
}
|
|
182775
182816
|
|
|
182776
182817
|
// src/server/whiteboard-comments.ts
|
|
182777
|
-
var
|
|
182818
|
+
var import_node_path32 = __toESM(require("node:path"), 1);
|
|
182778
182819
|
|
|
182779
182820
|
// src/shared/whiteboard/comments.ts
|
|
182780
182821
|
var MAX_ELEMENTS = 50;
|
|
@@ -182899,7 +182940,7 @@ function createWhiteboardComments(options2) {
|
|
|
182899
182940
|
let found = stores.get(id3);
|
|
182900
182941
|
if (!found) {
|
|
182901
182942
|
found = createStore(
|
|
182902
|
-
|
|
182943
|
+
import_node_path32.default.join(options2.root, "whiteboard", id3, "comments.json"),
|
|
182903
182944
|
rules,
|
|
182904
182945
|
options2.names
|
|
182905
182946
|
);
|
|
@@ -182996,7 +183037,7 @@ function createWhiteboardComments(options2) {
|
|
|
182996
183037
|
|
|
182997
183038
|
// src/server/whiteboards.ts
|
|
182998
183039
|
var import_node_fs35 = __toESM(require("node:fs"), 1);
|
|
182999
|
-
var
|
|
183040
|
+
var import_node_path33 = __toESM(require("node:path"), 1);
|
|
183000
183041
|
|
|
183001
183042
|
// src/server/whiteboard-merge.ts
|
|
183002
183043
|
var nonce = () => Math.floor(Math.random() * 2 ** 31);
|
|
@@ -183151,9 +183192,9 @@ function createWhiteboards(opts) {
|
|
|
183151
183192
|
const geometries = /* @__PURE__ */ new Map();
|
|
183152
183193
|
const renders = /* @__PURE__ */ new Map();
|
|
183153
183194
|
const legacyCleared = /* @__PURE__ */ new Set();
|
|
183154
|
-
const stateDir = opts.stateDir ??
|
|
183155
|
-
const stateOf2 = (id3) =>
|
|
183156
|
-
const pageStateOf = (id3, page) =>
|
|
183195
|
+
const stateDir = opts.stateDir ?? import_node_path33.default.join(opts.root, ".state");
|
|
183196
|
+
const stateOf2 = (id3) => import_node_path33.default.join(stateDir, "whiteboard", id3);
|
|
183197
|
+
const pageStateOf = (id3, page) => import_node_path33.default.join(stateOf2(id3), "pages", page);
|
|
183157
183198
|
const keyOf = (id3, page) => `${id3}
|
|
183158
183199
|
${page}`;
|
|
183159
183200
|
const list2 = (id3) => {
|
|
@@ -183161,7 +183202,7 @@ ${page}`;
|
|
|
183161
183202
|
if (existing) return existing;
|
|
183162
183203
|
const dir = resolveArtifactDir(opts.root, "whiteboard", id3);
|
|
183163
183204
|
if (!dir) return null;
|
|
183164
|
-
const file =
|
|
183205
|
+
const file = import_node_path33.default.join(dir, PAGES_FILE);
|
|
183165
183206
|
const text5 = readText3(file);
|
|
183166
183207
|
const parsed = parsePages(text5);
|
|
183167
183208
|
const created = {
|
|
@@ -183195,7 +183236,7 @@ ${page}`;
|
|
|
183195
183236
|
if (existing) return existing;
|
|
183196
183237
|
const dir = resolveArtifactDir(opts.root, "whiteboard", id3);
|
|
183197
183238
|
if (!dir) return null;
|
|
183198
|
-
const file =
|
|
183239
|
+
const file = import_node_path33.default.join(dir, pageFileOf(page));
|
|
183199
183240
|
const text5 = readText3(file);
|
|
183200
183241
|
const parsed = text5 === null ? { scene: emptyScene() } : parseScene(text5, pageFileOf(page));
|
|
183201
183242
|
const session = {
|
|
@@ -183224,7 +183265,7 @@ ${page}`;
|
|
|
183224
183265
|
session.pending = false;
|
|
183225
183266
|
const text5 = serializeScene(session.scene);
|
|
183226
183267
|
if (text5 === session.written) return;
|
|
183227
|
-
import_node_fs35.default.mkdirSync(
|
|
183268
|
+
import_node_fs35.default.mkdirSync(import_node_path33.default.dirname(session.file), { recursive: true });
|
|
183228
183269
|
writeTextAtomic(session.file, text5);
|
|
183229
183270
|
session.written = text5;
|
|
183230
183271
|
};
|
|
@@ -183290,7 +183331,7 @@ ${page}`;
|
|
|
183290
183331
|
if (legacyCleared.has(id3)) return;
|
|
183291
183332
|
legacyCleared.add(id3);
|
|
183292
183333
|
for (const name of ["render.png", "render.json", "geometry.json"])
|
|
183293
|
-
import_node_fs35.default.rmSync(
|
|
183334
|
+
import_node_fs35.default.rmSync(import_node_path33.default.join(stateOf2(id3), name), { force: true });
|
|
183294
183335
|
};
|
|
183295
183336
|
const known = (id3, page) => isPageId(page) && resolveArtifactDir(opts.root, "whiteboard", id3) !== null;
|
|
183296
183337
|
const live3 = (id3) => livePages(normalized2(id3)?.pages ?? []);
|
|
@@ -183359,19 +183400,19 @@ ${page}`;
|
|
|
183359
183400
|
reportGeometry(id3, geometry, page = MAIN_PAGE) {
|
|
183360
183401
|
if (!validGeometry(geometry) || !known(id3, page)) return false;
|
|
183361
183402
|
geometries.set(keyOf(id3, page), geometry);
|
|
183362
|
-
writeJsonAtomic(
|
|
183403
|
+
writeJsonAtomic(import_node_path33.default.join(pageStateOf(id3, page), "geometry.json"), geometry);
|
|
183363
183404
|
stateWritten(id3);
|
|
183364
183405
|
return true;
|
|
183365
183406
|
},
|
|
183366
183407
|
render: (id3, page = MAIN_PAGE) => renders.get(keyOf(id3, page)) ?? null,
|
|
183367
|
-
renderPathOf: (id3, page = MAIN_PAGE) =>
|
|
183408
|
+
renderPathOf: (id3, page = MAIN_PAGE) => import_node_path33.default.join(pageStateOf(id3, page), "render.png"),
|
|
183368
183409
|
reportRender(id3, png, sceneVersion, page = MAIN_PAGE) {
|
|
183369
183410
|
if (!Number.isFinite(sceneVersion) || !known(id3, page)) return false;
|
|
183370
183411
|
import_node_fs35.default.mkdirSync(pageStateOf(id3, page), { recursive: true });
|
|
183371
|
-
writeTextAtomic(
|
|
183412
|
+
writeTextAtomic(import_node_path33.default.join(pageStateOf(id3, page), "render.png"), png);
|
|
183372
183413
|
const meta = { sceneVersion, at: (/* @__PURE__ */ new Date()).toISOString() };
|
|
183373
183414
|
renders.set(keyOf(id3, page), meta);
|
|
183374
|
-
writeJsonAtomic(
|
|
183415
|
+
writeJsonAtomic(import_node_path33.default.join(pageStateOf(id3, page), "render.json"), meta);
|
|
183375
183416
|
stateWritten(id3);
|
|
183376
183417
|
return true;
|
|
183377
183418
|
},
|
|
@@ -183425,15 +183466,15 @@ function titleOf(payload) {
|
|
|
183425
183466
|
return "Untitled artifact";
|
|
183426
183467
|
}
|
|
183427
183468
|
function createServerContext(options2) {
|
|
183428
|
-
const root =
|
|
183429
|
-
const viewerDir =
|
|
183430
|
-
const runtimeDir = options2.runtimeDir ?
|
|
183431
|
-
const stateDir =
|
|
183469
|
+
const root = import_node_path34.default.resolve(options2.root);
|
|
183470
|
+
const viewerDir = import_node_path34.default.resolve(options2.viewerDir);
|
|
183471
|
+
const runtimeDir = options2.runtimeDir ? import_node_path34.default.resolve(options2.runtimeDir) : null;
|
|
183472
|
+
const stateDir = import_node_path34.default.join(root, ".state");
|
|
183432
183473
|
import_node_fs36.default.mkdirSync(stateDir, { recursive: true, mode: 448 });
|
|
183433
|
-
import_node_fs36.default.writeFileSync(
|
|
183474
|
+
import_node_fs36.default.writeFileSync(import_node_path34.default.join(stateDir, ".gitignore"), "*\n");
|
|
183434
183475
|
if (options2.configFile) ensureConfig(options2.configFile);
|
|
183435
|
-
const portFile =
|
|
183436
|
-
const tokenFile =
|
|
183476
|
+
const portFile = import_node_path34.default.join(stateDir, ".last-port");
|
|
183477
|
+
const tokenFile = import_node_path34.default.join(stateDir, ".last-token");
|
|
183437
183478
|
const mount = options2.mount;
|
|
183438
183479
|
const token = mount?.token ?? (readPersisted(tokenFile) || randomToken());
|
|
183439
183480
|
if (!mount) import_node_fs36.default.writeFileSync(tokenFile, `${token}
|
|
@@ -183475,7 +183516,7 @@ function createServerContext(options2) {
|
|
|
183475
183516
|
const pages = whiteboards.livePages(id3).flatMap((page) => {
|
|
183476
183517
|
const scene = whiteboards.scene(id3, page.id);
|
|
183477
183518
|
if (!scene) return [];
|
|
183478
|
-
const bytes = import_node_fs36.default.statSync(
|
|
183519
|
+
const bytes = import_node_fs36.default.statSync(import_node_path34.default.join(dir, pageFileOf(page.id)), { throwIfNoEntry: false })?.size ?? 0;
|
|
183479
183520
|
return [
|
|
183480
183521
|
{
|
|
183481
183522
|
id: page.id,
|
|
@@ -183548,8 +183589,8 @@ function createServerContext(options2) {
|
|
|
183548
183589
|
});
|
|
183549
183590
|
const avatars = createAvatars(options2.fetch);
|
|
183550
183591
|
const names = commentNames({
|
|
183551
|
-
agentFile:
|
|
183552
|
-
projectDir:
|
|
183592
|
+
agentFile: import_node_path34.default.join(stateDir, "agent"),
|
|
183593
|
+
projectDir: import_node_path34.default.resolve(root, "../.."),
|
|
183553
183594
|
cloud: options2.cloud
|
|
183554
183595
|
});
|
|
183555
183596
|
const whiteboardComments = createWhiteboardComments({
|
|
@@ -183663,7 +183704,7 @@ function createServerContext(options2) {
|
|
|
183663
183704
|
const cloud = options2.cloud && options2.configFile ? createCloudRoutes({
|
|
183664
183705
|
...options2.cloud,
|
|
183665
183706
|
configFile: options2.configFile,
|
|
183666
|
-
project:
|
|
183707
|
+
project: publishedProjectName(import_node_path34.default.resolve(root, "../..")),
|
|
183667
183708
|
address: (ref) => artifactPath(root, ref.type, ref.id).split("/").pop(),
|
|
183668
183709
|
references: (ref) => referencesOf(root, `${ref.type}/${ref.id}`),
|
|
183669
183710
|
referrers: (ref) => referrersOf(root, `${ref.type}/${ref.id}`),
|
|
@@ -183674,7 +183715,7 @@ function createServerContext(options2) {
|
|
|
183674
183715
|
}
|
|
183675
183716
|
}) : null;
|
|
183676
183717
|
const autoPublisher = cloud ? createAutoPublisher({
|
|
183677
|
-
stateFile:
|
|
183718
|
+
stateFile: import_node_path34.default.join(stateDir, "auto-publish.json"),
|
|
183678
183719
|
enabled: cloud.autoPublishEnabled,
|
|
183679
183720
|
token: cloud.token,
|
|
183680
183721
|
publish: async (key2) => {
|
|
@@ -183735,7 +183776,7 @@ function createServerContext(options2) {
|
|
|
183735
183776
|
ref.type === "artboard" ? { ...extra, ...artboardHints(ref.id) } : extra
|
|
183736
183777
|
);
|
|
183737
183778
|
writeJsonAtomic(
|
|
183738
|
-
|
|
183779
|
+
import_node_path34.default.join(stateDir, ref.type, ref.id, "backlinks.json"),
|
|
183739
183780
|
backlinksOf(ref.id, ref.type)
|
|
183740
183781
|
);
|
|
183741
183782
|
} catch (err) {
|
|
@@ -183830,7 +183871,7 @@ function createServerContext(options2) {
|
|
|
183830
183871
|
};
|
|
183831
183872
|
return ctx;
|
|
183832
183873
|
}
|
|
183833
|
-
var projectName = (ctx) =>
|
|
183874
|
+
var projectName = (ctx) => import_node_path34.default.basename(import_node_path34.default.dirname(import_node_path34.default.dirname(ctx.root)));
|
|
183834
183875
|
|
|
183835
183876
|
// ../../node_modules/.pnpm/ws@8.18.3/node_modules/ws/wrapper.mjs
|
|
183836
183877
|
var import_stream = __toESM(require_stream(), 1);
|
|
@@ -184005,7 +184046,7 @@ function createRelayClient(options2) {
|
|
|
184005
184046
|
|
|
184006
184047
|
// src/server/routes/content.ts
|
|
184007
184048
|
var import_node_fs37 = __toESM(require("node:fs"), 1);
|
|
184008
|
-
var
|
|
184049
|
+
var import_node_path35 = __toESM(require("node:path"), 1);
|
|
184009
184050
|
function serveContent(ctx, res, rest, range, mode = "main") {
|
|
184010
184051
|
const { root, runtimeDir, recordings, options: options2 } = ctx;
|
|
184011
184052
|
if (rest.startsWith("runtime/")) {
|
|
@@ -184093,7 +184134,7 @@ var robotsRoute = {
|
|
|
184093
184134
|
path: "/robots.txt",
|
|
184094
184135
|
auth: "public",
|
|
184095
184136
|
handle: (_req, res, ctx) => {
|
|
184096
|
-
sendFile(res,
|
|
184137
|
+
sendFile(res, import_node_path35.default.join(ctx.viewerDir, "robots.txt"));
|
|
184097
184138
|
}
|
|
184098
184139
|
};
|
|
184099
184140
|
var contentRoute = {
|
|
@@ -184141,7 +184182,7 @@ var createBoardRequestHandler = (ctx) => (req, res) => {
|
|
|
184141
184182
|
|
|
184142
184183
|
// src/server/routes/agent.ts
|
|
184143
184184
|
var import_node_fs38 = __toESM(require("node:fs"), 1);
|
|
184144
|
-
var
|
|
184185
|
+
var import_node_path36 = __toESM(require("node:path"), 1);
|
|
184145
184186
|
|
|
184146
184187
|
// src/shared/whiteboard/summary.ts
|
|
184147
184188
|
var STICKY_FILL = "#ffec99";
|
|
@@ -184272,7 +184313,7 @@ var CHECK_BROWSER_WAIT_MS = 1e4;
|
|
|
184272
184313
|
var agentName = (fields) => typeof fields.agent === "string" && fields.agent.length > 0 && fields.agent.length <= 100 ? fields.agent : void 0;
|
|
184273
184314
|
var blockIdsOf = async (ctx, id3, dir) => {
|
|
184274
184315
|
await (await ctx.documents.open(id3))?.flush();
|
|
184275
|
-
const state2 = parseDocument2(import_node_fs38.default.readFileSync(
|
|
184316
|
+
const state2 = parseDocument2(import_node_fs38.default.readFileSync(import_node_path36.default.join(dir, "doc.xml"), "utf8"));
|
|
184276
184317
|
return new Set(
|
|
184277
184318
|
state2.root.children.flatMap(
|
|
184278
184319
|
(block) => block.$?.blockId ? [block.$.blockId] : []
|
|
@@ -184457,7 +184498,7 @@ async function serveAgentCheck(res, ctx, type, id3, page = null) {
|
|
|
184457
184498
|
let merging = false;
|
|
184458
184499
|
if (ref.type === "document") {
|
|
184459
184500
|
const session = await documents.open(ref.id);
|
|
184460
|
-
const text5 = await import_node_fs38.default.promises.readFile(
|
|
184501
|
+
const text5 = await import_node_fs38.default.promises.readFile(import_node_path36.default.join(dir, "doc.xml"), "utf8").catch(() => null);
|
|
184461
184502
|
if (session && text5 !== null) {
|
|
184462
184503
|
session.onFileText(text5);
|
|
184463
184504
|
const timeout = new Promise(
|
|
@@ -184470,7 +184511,7 @@ async function serveAgentCheck(res, ctx, type, id3, page = null) {
|
|
|
184470
184511
|
if (ref.type === "whiteboard") await whiteboardCaughtUp(ctx, ref.id, checkedPages);
|
|
184471
184512
|
const payload = ctx.writeState(ref, dir);
|
|
184472
184513
|
const written = JSON.parse(
|
|
184473
|
-
await import_node_fs38.default.promises.readFile(
|
|
184514
|
+
await import_node_fs38.default.promises.readFile(import_node_path36.default.join(stateDir, ref.type, ref.id, "warnings.json"), "utf8")
|
|
184474
184515
|
);
|
|
184475
184516
|
const state2 = page === null ? written : {
|
|
184476
184517
|
...written,
|
|
@@ -184637,7 +184678,7 @@ async function serveAgentWhiteboardScene(req, res, ctx, id3) {
|
|
|
184637
184678
|
sendJson(res, 404, { error: `whiteboard/${id3} not found` });
|
|
184638
184679
|
return;
|
|
184639
184680
|
}
|
|
184640
|
-
const selection = readSelectedIds(
|
|
184681
|
+
const selection = readSelectedIds(import_node_path36.default.join(ctx.stateDir, "whiteboard", id3, "selection.json"));
|
|
184641
184682
|
const summary = summarize(scene, { ...frame ? { frame } : {}, selected: selection });
|
|
184642
184683
|
sendJson(res, 200, {
|
|
184643
184684
|
artifact: `whiteboard/${id3}`,
|
|
@@ -184961,8 +185002,8 @@ function shape(element, at7, scale) {
|
|
|
184961
185002
|
case "arrow":
|
|
184962
185003
|
case "line":
|
|
184963
185004
|
case "freedraw": {
|
|
184964
|
-
const
|
|
184965
|
-
return
|
|
185005
|
+
const path46 = points(element).map(([dx2, dy2]) => at7(x9 + dx2, y5 + dy2).join(",")).join(" ");
|
|
185006
|
+
return path46 ? `<polyline points="${path46}" stroke="${stroke}" stroke-width="1.4" fill="none" stroke-linecap="round"/>` : "";
|
|
184966
185007
|
}
|
|
184967
185008
|
case "text": {
|
|
184968
185009
|
const size = Math.max(4, Math.min(28, h9 || 12 * scale));
|
|
@@ -185232,7 +185273,9 @@ function renderThumbnail(artifact, value) {
|
|
|
185232
185273
|
25,
|
|
185233
185274
|
505,
|
|
185234
185275
|
3
|
|
185235
|
-
).map((line2, i7) => text4(42, 160 + i7 * 36, line2, 25, "var(--ink)", 600)).join(
|
|
185276
|
+
).map((line2, i7) => text4(42, 160 + i7 * 36, line2, 25, "var(--ink)", 600)).join(
|
|
185277
|
+
""
|
|
185278
|
+
)}${text4(42, 318, `${artifact.project?.split("/").at(-1) ?? "RYUGI"} / HTML`, 11, "var(--muted)")}`;
|
|
185236
185279
|
}
|
|
185237
185280
|
return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 360"><title>${escape6(title)}</title>${STYLE3}${body}</svg>`;
|
|
185238
185281
|
}
|
|
@@ -185499,7 +185542,7 @@ var clientSocketRoute = {
|
|
|
185499
185542
|
|
|
185500
185543
|
// src/server/routes/viewer.ts
|
|
185501
185544
|
var import_node_fs39 = __toESM(require("node:fs"), 1);
|
|
185502
|
-
var
|
|
185545
|
+
var import_node_path37 = __toESM(require("node:path"), 1);
|
|
185503
185546
|
|
|
185504
185547
|
// src/shared/type-icons.ts
|
|
185505
185548
|
var TYPE_GLYPHS = {
|
|
@@ -185628,8 +185671,8 @@ function serveShell(req, res, ctx, { pathname, key: key2 }, embedded) {
|
|
|
185628
185671
|
if (ref) headers["Referrer-Policy"] = "same-origin";
|
|
185629
185672
|
if (key2 !== null && !loopback)
|
|
185630
185673
|
headers["Set-Cookie"] = `${ctx.cookieName}=${ctx.token}; HttpOnly; SameSite=Strict; Path=/`;
|
|
185631
|
-
const entry = preview2 && import_node_fs39.default.existsSync(
|
|
185632
|
-
void import_node_fs39.default.promises.readFile(
|
|
185674
|
+
const entry = preview2 && import_node_fs39.default.existsSync(import_node_path37.default.join(viewerDir, "preview.html")) ? "preview.html" : "index.html";
|
|
185675
|
+
void import_node_fs39.default.promises.readFile(import_node_path37.default.join(viewerDir, entry), "utf8").then((template) => {
|
|
185633
185676
|
const html = viewerPage(template, {
|
|
185634
185677
|
title,
|
|
185635
185678
|
description,
|
|
@@ -185990,7 +186033,7 @@ async function startArtifactsServer(options2) {
|
|
|
185990
186033
|
const boardServer = import_node_http.default.createServer(handleBoardRequest);
|
|
185991
186034
|
if (mount) ctx.boardPort = mount.boardPort;
|
|
185992
186035
|
else if (loopback) {
|
|
185993
|
-
const boardPortFile =
|
|
186036
|
+
const boardPortFile = import_node_path38.default.join(stateDir, BOARD_PORT_FILE);
|
|
185994
186037
|
const previousBoardPort = Number(readPersisted(boardPortFile));
|
|
185995
186038
|
try {
|
|
185996
186039
|
ctx.boardPort = await listen(
|
|
@@ -186020,7 +186063,7 @@ async function startArtifactsServer(options2) {
|
|
|
186020
186063
|
initialChanges.push({ ref: entry, payload, files: [] });
|
|
186021
186064
|
if (entry.type === "document") void ctx.documents.open(entry.id);
|
|
186022
186065
|
}
|
|
186023
|
-
writeJsonAtomic(
|
|
186066
|
+
writeJsonAtomic(import_node_path38.default.join(stateDir, "server-info"), {
|
|
186024
186067
|
type: "server-started",
|
|
186025
186068
|
url,
|
|
186026
186069
|
port,
|
|
@@ -186104,7 +186147,7 @@ async function startArtifactsServer(options2) {
|
|
|
186104
186147
|
});
|
|
186105
186148
|
await ctx.documents.close().catch(() => void 0);
|
|
186106
186149
|
ctx.whiteboards.close();
|
|
186107
|
-
if (mount) import_node_fs40.default.rmSync(
|
|
186150
|
+
if (mount) import_node_fs40.default.rmSync(import_node_path38.default.join(stateDir, "server-info"), { force: true });
|
|
186108
186151
|
}
|
|
186109
186152
|
};
|
|
186110
186153
|
}
|
|
@@ -186112,27 +186155,27 @@ var mountArtifactsProject = (options2) => startArtifactsServer(options2);
|
|
|
186112
186155
|
|
|
186113
186156
|
// src/server/artifact-index.ts
|
|
186114
186157
|
var import_node_fs42 = __toESM(require("node:fs"), 1);
|
|
186115
|
-
var
|
|
186158
|
+
var import_node_path40 = __toESM(require("node:path"), 1);
|
|
186116
186159
|
|
|
186117
186160
|
// src/server/machine.ts
|
|
186118
186161
|
var import_node_fs41 = __toESM(require("node:fs"), 1);
|
|
186119
186162
|
var import_node_os = __toESM(require("node:os"), 1);
|
|
186120
|
-
var
|
|
186163
|
+
var import_node_path39 = __toESM(require("node:path"), 1);
|
|
186121
186164
|
var DORMANT_AFTER_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
186122
186165
|
function machinePaths(env = process.env, homedir = import_node_os.default.homedir()) {
|
|
186123
|
-
const home = env.RYUGI_SERVER_HOME ||
|
|
186166
|
+
const home = env.RYUGI_SERVER_HOME || import_node_path39.default.join(homedir, ".ryugi", "server");
|
|
186124
186167
|
return {
|
|
186125
186168
|
home,
|
|
186126
|
-
pid:
|
|
186127
|
-
serverId:
|
|
186128
|
-
info:
|
|
186129
|
-
log:
|
|
186130
|
-
version:
|
|
186131
|
-
lock:
|
|
186132
|
-
key:
|
|
186133
|
-
projects:
|
|
186134
|
-
settings:
|
|
186135
|
-
stopped:
|
|
186169
|
+
pid: import_node_path39.default.join(home, "server.pid"),
|
|
186170
|
+
serverId: import_node_path39.default.join(home, "server-instance-id"),
|
|
186171
|
+
info: import_node_path39.default.join(home, "server-info"),
|
|
186172
|
+
log: import_node_path39.default.join(home, "server.log"),
|
|
186173
|
+
version: import_node_path39.default.join(home, "server-version"),
|
|
186174
|
+
lock: import_node_path39.default.join(home, "start.lock"),
|
|
186175
|
+
key: import_node_path39.default.join(home, "key"),
|
|
186176
|
+
projects: import_node_path39.default.join(home, "projects.json"),
|
|
186177
|
+
settings: import_node_path39.default.join(home, "settings.json"),
|
|
186178
|
+
stopped: import_node_path39.default.join(home, "server-stopped")
|
|
186136
186179
|
};
|
|
186137
186180
|
}
|
|
186138
186181
|
function ensureHome(home) {
|
|
@@ -186141,14 +186184,14 @@ function ensureHome(home) {
|
|
|
186141
186184
|
}
|
|
186142
186185
|
var realDir = (dir) => {
|
|
186143
186186
|
try {
|
|
186144
|
-
return import_node_fs41.default.realpathSync(
|
|
186187
|
+
return import_node_fs41.default.realpathSync(import_node_path39.default.resolve(dir));
|
|
186145
186188
|
} catch {
|
|
186146
|
-
return
|
|
186189
|
+
return import_node_path39.default.resolve(dir);
|
|
186147
186190
|
}
|
|
186148
186191
|
};
|
|
186149
186192
|
var validEntry = (value) => {
|
|
186150
186193
|
const entry = value;
|
|
186151
|
-
return !!entry && typeof entry.dir === "string" &&
|
|
186194
|
+
return !!entry && typeof entry.dir === "string" && import_node_path39.default.isAbsolute(entry.dir) && Number.isFinite(entry.registeredAt) && Number.isFinite(entry.lastUsedAt);
|
|
186152
186195
|
};
|
|
186153
186196
|
function readProjects(file) {
|
|
186154
186197
|
try {
|
|
@@ -186159,7 +186202,7 @@ function readProjects(file) {
|
|
|
186159
186202
|
}
|
|
186160
186203
|
}
|
|
186161
186204
|
function writeProjects(file, projects) {
|
|
186162
|
-
ensureHome(
|
|
186205
|
+
ensureHome(import_node_path39.default.dirname(file));
|
|
186163
186206
|
const tmp = `${file}.${process.pid}.tmp`;
|
|
186164
186207
|
import_node_fs41.default.writeFileSync(tmp, `${JSON.stringify({ projects }, null, 2)}
|
|
186165
186208
|
`, { mode: 384 });
|
|
@@ -186180,7 +186223,7 @@ function removeProject(file, projectDir) {
|
|
|
186180
186223
|
const kept = projects.filter((entry) => entry.dir !== dir);
|
|
186181
186224
|
if (kept.length !== projects.length) writeProjects(file, kept);
|
|
186182
186225
|
}
|
|
186183
|
-
var artifactsRootOf = (projectDir) =>
|
|
186226
|
+
var artifactsRootOf = (projectDir) => import_node_path39.default.join(projectDir, ".ryugi", "artifacts");
|
|
186184
186227
|
function pruneProjects(file) {
|
|
186185
186228
|
const projects = readProjects(file);
|
|
186186
186229
|
const kept = projects.filter((entry) => import_node_fs41.default.existsSync(artifactsRootOf(entry.dir)));
|
|
@@ -186192,7 +186235,7 @@ var isDormant = (entry, now = Date.now()) => now - entry.lastUsedAt > DORMANT_AF
|
|
|
186192
186235
|
// src/server/artifact-index.ts
|
|
186193
186236
|
var readAddress = (dir) => {
|
|
186194
186237
|
try {
|
|
186195
|
-
const value = import_node_fs42.default.readFileSync(
|
|
186238
|
+
const value = import_node_fs42.default.readFileSync(import_node_path40.default.join(dir, ".artifact-id"), "utf8").trim();
|
|
186196
186239
|
return isArtifactAddress(value) ? value : null;
|
|
186197
186240
|
} catch {
|
|
186198
186241
|
return null;
|
|
@@ -186299,7 +186342,7 @@ var ARTIFACT_KEY = /^(?:artboard|document|html)\/[a-z0-9][a-z0-9-]*$/;
|
|
|
186299
186342
|
var SEP = "\n";
|
|
186300
186343
|
var realDir2 = (dir) => {
|
|
186301
186344
|
try {
|
|
186302
|
-
return import_node_fs43.default.realpathSync(
|
|
186345
|
+
return import_node_fs43.default.realpathSync(import_node_path41.default.resolve(dir));
|
|
186303
186346
|
} catch {
|
|
186304
186347
|
return null;
|
|
186305
186348
|
}
|
|
@@ -186357,7 +186400,7 @@ async function startHub(options2) {
|
|
|
186357
186400
|
runtimeDir: options2.runtimeDir,
|
|
186358
186401
|
host: options2.host,
|
|
186359
186402
|
urlHost: options2.urlHost,
|
|
186360
|
-
configFile:
|
|
186403
|
+
configFile: import_node_path41.default.join(project, ".ryugi", "config.json"),
|
|
186361
186404
|
cloud: options2.cloud,
|
|
186362
186405
|
fetch: options2.fetch,
|
|
186363
186406
|
debounceMs: options2.debounceMs,
|
|
@@ -186372,7 +186415,7 @@ async function startHub(options2) {
|
|
|
186372
186415
|
}
|
|
186373
186416
|
return pending;
|
|
186374
186417
|
};
|
|
186375
|
-
const configFileOf = (project) =>
|
|
186418
|
+
const configFileOf = (project) => import_node_path41.default.join(project, ".ryugi", "config.json");
|
|
186376
186419
|
const servedBy = (project) => {
|
|
186377
186420
|
const mounted = ready.get(project);
|
|
186378
186421
|
if (mounted) return mounted.served();
|
|
@@ -186419,10 +186462,10 @@ async function startHub(options2) {
|
|
|
186419
186462
|
}) : null;
|
|
186420
186463
|
const origin = `http://${urlHostForHttp(options2.urlHost)}:${port}`;
|
|
186421
186464
|
const url = loopback ? `${origin}/` : `${origin}/?key=${options2.token}`;
|
|
186422
|
-
const infoFileOf = (project) =>
|
|
186465
|
+
const infoFileOf = (project) => import_node_path41.default.join(artifactsRootOf(project), ".state", "server-info");
|
|
186423
186466
|
const writeCompatInfo = (project) => {
|
|
186424
186467
|
try {
|
|
186425
|
-
import_node_fs43.default.mkdirSync(
|
|
186468
|
+
import_node_fs43.default.mkdirSync(import_node_path41.default.dirname(infoFileOf(project)), { recursive: true, mode: 448 });
|
|
186426
186469
|
writeJsonAtomic(infoFileOf(project), {
|
|
186427
186470
|
type: "server-started",
|
|
186428
186471
|
url,
|
|
@@ -186441,7 +186484,7 @@ async function startHub(options2) {
|
|
|
186441
186484
|
counts.set(entry.project, (counts.get(entry.project) ?? 0) + 1);
|
|
186442
186485
|
return ordered3().map((entry) => ({
|
|
186443
186486
|
dir: entry.dir,
|
|
186444
|
-
name:
|
|
186487
|
+
name: import_node_path41.default.basename(entry.dir),
|
|
186445
186488
|
lastUsedAt: entry.lastUsedAt,
|
|
186446
186489
|
dormant: isDormant(entry),
|
|
186447
186490
|
artifacts: counts.get(entry.dir) ?? 0
|
|
@@ -186454,7 +186497,7 @@ async function startHub(options2) {
|
|
|
186454
186497
|
const root = artifactsRootOf(entry.dir);
|
|
186455
186498
|
const listed = listArtifacts(root);
|
|
186456
186499
|
for (const warning of listed.warnings)
|
|
186457
|
-
warnings.push(`${
|
|
186500
|
+
warnings.push(`${import_node_path41.default.basename(entry.dir)}: ${warning}`);
|
|
186458
186501
|
for (const artifact of listed.artifacts) {
|
|
186459
186502
|
try {
|
|
186460
186503
|
artifacts.push({
|
|
@@ -186505,7 +186548,7 @@ async function startHub(options2) {
|
|
|
186505
186548
|
};
|
|
186506
186549
|
const publishedIn = (project, cloudId) => {
|
|
186507
186550
|
try {
|
|
186508
|
-
const { artifacts } = readConfig(
|
|
186551
|
+
const { artifacts } = readConfig(import_node_path41.default.join(project, ".ryugi", "config.json")).config;
|
|
186509
186552
|
return Object.values(artifacts).some((entry) => entry.cloud?.id === cloudId);
|
|
186510
186553
|
} catch {
|
|
186511
186554
|
return false;
|
|
@@ -186578,7 +186621,7 @@ async function startHub(options2) {
|
|
|
186578
186621
|
return entry;
|
|
186579
186622
|
};
|
|
186580
186623
|
const remove2 = async (dir) => {
|
|
186581
|
-
const real = realDir2(dir) ??
|
|
186624
|
+
const real = realDir2(dir) ?? import_node_path41.default.resolve(dir);
|
|
186582
186625
|
removeProject(projectsFile, real);
|
|
186583
186626
|
index.rescan();
|
|
186584
186627
|
import_node_fs43.default.rmSync(infoFileOf(real), { force: true });
|
|
@@ -186745,9 +186788,9 @@ async function startHub(options2) {
|
|
|
186745
186788
|
}
|
|
186746
186789
|
|
|
186747
186790
|
// src/server/relaunch.ts
|
|
186748
|
-
var
|
|
186791
|
+
var import_node_child_process5 = require("node:child_process");
|
|
186749
186792
|
var import_node_fs44 = __toESM(require("node:fs"), 1);
|
|
186750
|
-
var
|
|
186793
|
+
var import_node_path42 = __toESM(require("node:path"), 1);
|
|
186751
186794
|
var LAUNCHER_COMMAND = /^node "(.+)"$/;
|
|
186752
186795
|
var WAIT_THEN_RUN = `
|
|
186753
186796
|
const [pid, file, ...args] = process.argv.slice(1);
|
|
@@ -186761,17 +186804,17 @@ tick();
|
|
|
186761
186804
|
function relaunchCommand(env, serverDir) {
|
|
186762
186805
|
const launcher = LAUNCHER_COMMAND.exec(env.RYUGI_ARTIFACTS_LAUNCHER ?? "")?.[1];
|
|
186763
186806
|
if (launcher) return [process.execPath, launcher];
|
|
186764
|
-
const cli =
|
|
186807
|
+
const cli = import_node_path42.default.join(serverDir, "cli.cjs");
|
|
186765
186808
|
return import_node_fs44.default.existsSync(cli) ? [process.execPath, cli] : null;
|
|
186766
186809
|
}
|
|
186767
186810
|
function pinLauncherRelease(env, homedir, version3, now = Date.now()) {
|
|
186768
|
-
const releases =
|
|
186769
|
-
env.XDG_CACHE_HOME ||
|
|
186811
|
+
const releases = import_node_path42.default.join(
|
|
186812
|
+
env.XDG_CACHE_HOME || import_node_path42.default.join(homedir, ".cache"),
|
|
186770
186813
|
"ryugi",
|
|
186771
186814
|
"artifacts"
|
|
186772
186815
|
);
|
|
186773
186816
|
import_node_fs44.default.mkdirSync(releases, { recursive: true });
|
|
186774
|
-
const file =
|
|
186817
|
+
const file = import_node_path42.default.join(releases, "latest.json");
|
|
186775
186818
|
const tmp = `${file}.${process.pid}`;
|
|
186776
186819
|
import_node_fs44.default.writeFileSync(tmp, JSON.stringify({ version: version3, checkedAt: now }));
|
|
186777
186820
|
import_node_fs44.default.renameSync(tmp, file);
|
|
@@ -186779,7 +186822,7 @@ function pinLauncherRelease(env, homedir, version3, now = Date.now()) {
|
|
|
186779
186822
|
function spawnAfterExit(pid, argv, env = process.env) {
|
|
186780
186823
|
const [file, ...args] = argv;
|
|
186781
186824
|
if (!file) return;
|
|
186782
|
-
(0,
|
|
186825
|
+
(0, import_node_child_process5.spawn)(process.execPath, ["-e", WAIT_THEN_RUN, String(pid), file, ...args], {
|
|
186783
186826
|
detached: true,
|
|
186784
186827
|
stdio: "ignore",
|
|
186785
186828
|
windowsHide: true,
|
|
@@ -186853,14 +186896,14 @@ async function main2() {
|
|
|
186853
186896
|
const paths = machinePaths();
|
|
186854
186897
|
ensureHome(paths.home);
|
|
186855
186898
|
const updates = createUpdateCheck({
|
|
186856
|
-
cacheFile:
|
|
186899
|
+
cacheFile: import_node_path43.default.join(paths.home, "latest.json"),
|
|
186857
186900
|
current: version
|
|
186858
186901
|
});
|
|
186859
186902
|
const hub = await startHub({
|
|
186860
186903
|
host: config.host,
|
|
186861
186904
|
urlHost: config.urlHost,
|
|
186862
|
-
viewerDir:
|
|
186863
|
-
runtimeDir:
|
|
186905
|
+
viewerDir: import_node_path43.default.join(__dirname, "viewer"),
|
|
186906
|
+
runtimeDir: import_node_path43.default.join(__dirname, "runtime"),
|
|
186864
186907
|
ports: config.ports,
|
|
186865
186908
|
boardPorts: config.boardPorts,
|
|
186866
186909
|
paths,
|
|
@@ -186879,7 +186922,7 @@ async function main2() {
|
|
|
186879
186922
|
open: async (link, local, openCmd) => {
|
|
186880
186923
|
const command = openCmd ?? config.openCmd;
|
|
186881
186924
|
if (command) {
|
|
186882
|
-
(0,
|
|
186925
|
+
(0, import_node_child_process6.exec)(`${command} ${JSON.stringify(link)}`, () => {
|
|
186883
186926
|
});
|
|
186884
186927
|
return;
|
|
186885
186928
|
}
|