ryugi-artifacts 1.42.2 → 1.44.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.
Files changed (199) hide show
  1. package/dist/cli.cjs +14504 -376
  2. package/dist/server.cjs +138 -85
  3. package/dist/viewer/{ArtboardLayout-7_rmu60e.js → ArtboardLayout-v5QCVEaH.js} +1 -1
  4. package/dist/viewer/{ArtifactList-CC5-1ZFP.js → ArtifactList-mxXh57SU.js} +1 -1
  5. package/dist/viewer/{AutoPublishPrompt-B2D53_Kz.js → AutoPublishPrompt-COIe6yz0.js} +1 -1
  6. package/dist/viewer/{Canvas-13klENDh.js → Canvas-DIlI-OTY.js} +1 -1
  7. package/dist/viewer/{DocumentLayout-DZ-2_UTn.js → DocumentLayout-CarX1EiV.js} +2 -2
  8. package/dist/viewer/{DocumentPage-BcgERMV0.js → DocumentPage-BgoMJYd6.js} +1 -1
  9. package/dist/viewer/{HtmlLayout-CtlWM446.js → HtmlLayout-BmYAOIJ4.js} +1 -1
  10. package/dist/viewer/{MenuRoot-CwCVByOp.js → MenuRoot-CCLU8wQR.js} +1 -1
  11. package/dist/viewer/{PopoverPopup-BA537pRU.js → PopoverPopup-By2qMtdn.js} +1 -1
  12. package/dist/viewer/{PreviewLayout-C5OKA9J4.js → PreviewLayout-Dzkz7UOF.js} +2 -2
  13. package/dist/viewer/{Select-D2-94UGe.js → Select-CpRtuH5I.js} +1 -1
  14. package/dist/viewer/{SnapshotDocument-kHyl0dKv.js → SnapshotDocument-D0Lkq1g9.js} +1 -1
  15. package/dist/viewer/{ThreadView-Qlz9Ufo7.js → ThreadView-CmAxKSZ7.js} +1 -1
  16. package/dist/viewer/{TooltipPopup-Cpm4Cwxn.js → TooltipPopup-CdpS4tTR.js} +1 -1
  17. package/dist/viewer/{WarningsBadge-BtRPiCiS.js → WarningsBadge-xIuKcdGp.js} +1 -1
  18. package/dist/viewer/{abnfDiagram-VCTEODGH-Cc589tRO.js → abnfDiagram-VCTEODGH-vYXwOi2L.js} +1 -1
  19. package/dist/viewer/{ar-SA-G6X2FPQ2-qNPFpNYG.js → ar-SA-G6X2FPQ2-9GXzPlrK.js} +1 -1
  20. package/dist/viewer/{architecture-7GRP2DOG-BizmpjHH.js → architecture-7GRP2DOG-Dy3GJfSN.js} +1 -1
  21. package/dist/viewer/{architectureDiagram-5GKGNRK7-BuHdaFmM.js → architectureDiagram-5GKGNRK7-1EQ6eTro.js} +1 -1
  22. package/dist/viewer/{az-AZ-76LH7QW2-CbXvPy4A.js → az-AZ-76LH7QW2-B6E08k0L.js} +1 -1
  23. package/dist/viewer/{bg-BG-XCXSNQG7-DcRkeEZa.js → bg-BG-XCXSNQG7-CT75Hh8J.js} +1 -1
  24. package/dist/viewer/{blockDiagram-I7D4REHJ-BjZAhqNZ.js → blockDiagram-I7D4REHJ-Bots_bLJ.js} +1 -1
  25. package/dist/viewer/{bn-BD-2XOGV67Q-CYG0oQ07.js → bn-BD-2XOGV67Q-CdBG2RJk.js} +1 -1
  26. package/dist/viewer/{c4Diagram-7LVT6UL2-Dw9Lqcc4.js → c4Diagram-7LVT6UL2-C7DksWh5.js} +1 -1
  27. package/dist/viewer/{ca-ES-6MX7JW3Y-DZg7oXog.js → ca-ES-6MX7JW3Y-DDc1wD41.js} +1 -1
  28. package/dist/viewer/channel-ByZrhKcD.js +1 -0
  29. package/dist/viewer/{channel-CgSk2sDt.js → channel-CK8VjRfv.js} +4 -4
  30. package/dist/viewer/{chunk-4HAMMTFA-CmIOM_4n.js → chunk-4HAMMTFA-CFwFBnb7.js} +1 -1
  31. package/dist/viewer/{chunk-75Z2AOVW-Bk3gHz3u.js → chunk-75Z2AOVW-Ckcf4HXf.js} +1 -1
  32. package/dist/viewer/{chunk-DU6HZSFF-Z871Xxjd.js → chunk-DU6HZSFF-DSkKm1Sg.js} +1 -1
  33. package/dist/viewer/{chunk-EIO257PC-BowPlGMj.js → chunk-EIO257PC-Cp5jHH2B.js} +1 -1
  34. package/dist/viewer/{chunk-F27PBJKO-Da_Uy85s.js → chunk-F27PBJKO-CGR7FwkE.js} +1 -1
  35. package/dist/viewer/{chunk-GMAD6QVW-D99eqSu1.js → chunk-GMAD6QVW-CrVyThKY.js} +1 -1
  36. package/dist/viewer/{chunk-GVQU2GXP-DpHE-JHS.js → chunk-GVQU2GXP-DeN7DWg4.js} +1 -1
  37. package/dist/viewer/{chunk-IMKFNOWR-DNlzjXm8.js → chunk-IMKFNOWR-fh_OFrpb.js} +1 -1
  38. package/dist/viewer/{chunk-L3NEJ4N5-CwGjxbjF.js → chunk-L3NEJ4N5-B5ku2yKH.js} +1 -1
  39. package/dist/viewer/{chunk-OSK3NFVY-B4adwKZF.js → chunk-OSK3NFVY-BZxVtLcj.js} +1 -1
  40. package/dist/viewer/{chunk-P2QGCYS3-CR8elxW8.js → chunk-P2QGCYS3-vj5npGX4.js} +1 -1
  41. package/dist/viewer/{chunk-POPQ4Y6H-D5X5fYtJ.js → chunk-POPQ4Y6H-y6gZTjTL.js} +1 -1
  42. package/dist/viewer/{chunk-PWAF6VOD-C52ljaIH.js → chunk-PWAF6VOD-C5U8QIrG.js} +1 -1
  43. package/dist/viewer/{chunk-SHT3W25Y-Bqd2yIYA.js → chunk-SHT3W25Y-CrNt-vdk.js} +1 -1
  44. package/dist/viewer/{chunk-SVP7TREG-B-2E6atr.js → chunk-SVP7TREG-B4H37B9Z.js} +1 -1
  45. package/dist/viewer/{chunk-TICWLB2K-C4hY4B9O.js → chunk-TICWLB2K-DYoGsdJA.js} +1 -1
  46. package/dist/viewer/classDiagram-ZZMXUADV-G09oZdI0.js +1 -0
  47. package/dist/viewer/classDiagram-v2-VYDZK3BY-G09oZdI0.js +1 -0
  48. package/dist/viewer/{cs-CZ-2BRQDIVT-DmUu99ZE.js → cs-CZ-2BRQDIVT-DgBiVbuw.js} +1 -1
  49. package/dist/viewer/{cynefin-OW5HDTMX-CNpCyJlF.js → cynefin-OW5HDTMX-bvMkVO6w.js} +1 -1
  50. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-D_E8exI5.js → cynefinDiagram-5FMLGOSQ-CjPrZzrG.js} +1 -1
  51. package/dist/viewer/{da-DK-5WZEPLOC-DrcqQnR5.js → da-DK-5WZEPLOC-D-yGNnLN.js} +1 -1
  52. package/dist/viewer/{dagre-GXQ25YYZ-B-hQNnoj.js → dagre-GXQ25YYZ-CuRrD3a3.js} +1 -1
  53. package/dist/viewer/{de-DE-XR44H4JA-BwGQ1Bu3.js → de-DE-XR44H4JA-Bgx9Q_D-.js} +1 -1
  54. package/dist/viewer/{diagram-S7CK7UJ4-DyrrPPnW.js → diagram-S7CK7UJ4-d9huVCZC.js} +1 -1
  55. package/dist/viewer/{diagram-UQ7AKVKN-DFdvde_8.js → diagram-UQ7AKVKN-Dw0NgQU7.js} +1 -1
  56. package/dist/viewer/{diagram-VSXAHHWV-BDdvfK3v.js → diagram-VSXAHHWV-BO48ZPAa.js} +1 -1
  57. package/dist/viewer/{diagram-VX7I27RA-Bv2wKJgk.js → diagram-VX7I27RA-CjjLbqAT.js} +1 -1
  58. package/dist/viewer/{diagram-Z3DM3KII-DVbVVBJH.js → diagram-Z3DM3KII-CqSQfWgq.js} +1 -1
  59. package/dist/viewer/{dist-DL1gyV3R.js → dist-96ICyKY0.js} +1 -1
  60. package/dist/viewer/{dist-DRMtu_-x.js → dist-BICCa23f.js} +1 -1
  61. package/dist/viewer/{dist-gv6IdArU.js → dist-BQJ_hgBh.js} +1 -1
  62. package/dist/viewer/{dist-DJjmFLDp.js → dist-BdwcfhMg.js} +1 -1
  63. package/dist/viewer/{dist-nHjoUtlT.js → dist-BohmHXvo.js} +1 -1
  64. package/dist/viewer/{dist-Cp67yPvp.js → dist-Bq5yGCvS.js} +1 -1
  65. package/dist/viewer/{dist-BpMGGlEV.js → dist-Bsxu0shl.js} +4 -4
  66. package/dist/viewer/{dist-C1no3jCb.js → dist-C8DkAQYd.js} +1 -1
  67. package/dist/viewer/{dist-B_G83rKD.js → dist-CACUOSsz.js} +1 -1
  68. package/dist/viewer/{dist-3KIsZmwj.js → dist-CFmM2XV7.js} +1 -1
  69. package/dist/viewer/{dist-C-Ceo6Fq.js → dist-CGDckSlK.js} +1 -1
  70. package/dist/viewer/{dist-BLMq_PiX.js → dist-CNKIbzP5.js} +1 -1
  71. package/dist/viewer/{dist-CLaYa349.js → dist-CoNkk-jP.js} +1 -1
  72. package/dist/viewer/{dist-DDjqhgMa.js → dist-Ct9Rv4Nb.js} +1 -1
  73. package/dist/viewer/{dist-Cs9q7OJl.js → dist-DFqgUaXc.js} +1 -1
  74. package/dist/viewer/{dist-Dril0ai0.js → dist-DHvxE90p.js} +1 -1
  75. package/dist/viewer/{dist-BfMsz_Mq.js → dist-DRVN9BoJ.js} +1 -1
  76. package/dist/viewer/{dist-Ks19j7-h.js → dist-DbTvrrue.js} +1 -1
  77. package/dist/viewer/{dist-DJtATNMP.js → dist-DeTBwAKa.js} +1 -1
  78. package/dist/viewer/{dist-BqBGd2fX.js → dist-DwmGeZQ2.js} +1 -1
  79. package/dist/viewer/{dist-Dbb4bImq.js → dist-PKCsW6uh.js} +1 -1
  80. package/dist/viewer/{dist-DpiVIFsv.js → dist-f6pfIPrl.js} +1 -1
  81. package/dist/viewer/{dist-2N6kKX64.js → dist-iWGU90nm.js} +1 -1
  82. package/dist/viewer/{dist-b6M4YQd0.js → dist-tEmP_1dP.js} +1 -1
  83. package/dist/viewer/{ebnfDiagram-PWID7BFC-BPZEgIKG.js → ebnfDiagram-PWID7BFC-DUuSLOwC.js} +1 -1
  84. package/dist/viewer/{el-GR-BZB4AONW-BHX9PTvB.js → el-GR-BZB4AONW-DBGnJY6B.js} +1 -1
  85. package/dist/viewer/{en-B4ZKOASM-ChdJoy_X.js → en-B4ZKOASM-ChYtA4ee.js} +1 -1
  86. package/dist/viewer/{erDiagram-RLTQ6QDP-teAVgmCA.js → erDiagram-RLTQ6QDP-6atcXUph.js} +1 -1
  87. package/dist/viewer/{es-ES-U4NZUMDT-DGRmVt9a.js → es-ES-U4NZUMDT-CktGk8Tg.js} +1 -1
  88. package/dist/viewer/{eu-ES-A7QVB2H4-6SSWUUs4.js → eu-ES-A7QVB2H4-CFlNXwf5.js} +1 -1
  89. package/dist/viewer/{eventmodeling-NTZA5JFV-B1I1Mylr.js → eventmodeling-NTZA5JFV-C5ZVZEiz.js} +1 -1
  90. package/dist/viewer/{fa-IR-HGAKTJCU-B_-FrT72.js → fa-IR-HGAKTJCU-CQRMDqXN.js} +1 -1
  91. package/dist/viewer/{fi-FI-Z5N7JZ37-C7SiOzZ-.js → fi-FI-Z5N7JZ37-CHKM1WB9.js} +1 -1
  92. package/dist/viewer/flowDiagram-HODETNUW-B9-KDJxc.js +1 -0
  93. package/dist/viewer/{fr-FR-RHASNOE6-B_QvfKMB.js → fr-FR-RHASNOE6-CUyuT7p6.js} +1 -1
  94. package/dist/viewer/{ganttDiagram-EL5Y4UJY-BMv_Q37E.js → ganttDiagram-EL5Y4UJY-DD2E-HAj.js} +1 -1
  95. package/dist/viewer/{gitGraph-4MIJSDKK-Bu1dbHFU.js → gitGraph-4MIJSDKK-BLvljQme.js} +1 -1
  96. package/dist/viewer/{gitGraphDiagram-WWUBYQGX-DUZ8_32F.js → gitGraphDiagram-WWUBYQGX-B0qzhOb6.js} +1 -1
  97. package/dist/viewer/{gl-ES-HMX3MZ6V-CmXVsVrw.js → gl-ES-HMX3MZ6V-CwJG5tWR.js} +1 -1
  98. package/dist/viewer/{he-IL-6SHJWFNN-8kv-3A3Y.js → he-IL-6SHJWFNN-_DosmhM7.js} +1 -1
  99. package/dist/viewer/{hi-IN-IWLTKZ5I-CvpAemRq.js → hi-IN-IWLTKZ5I-CrW9_EjK.js} +1 -1
  100. package/dist/viewer/{hu-HU-A5ZG7DT2-DOiAQ3qh.js → hu-HU-A5ZG7DT2-Dczvo59m.js} +1 -1
  101. package/dist/viewer/{id-ID-SAP4L64H-BK_k3fGY.js → id-ID-SAP4L64H-iSPag4VQ.js} +1 -1
  102. package/dist/viewer/{image-GAAHSSAO-WbKWFRU6.js → image-GAAHSSAO-BVJuAdML.js} +1 -1
  103. package/dist/viewer/{imperative-DfjHJwB9.js → imperative-_CkvZv3L.js} +1 -1
  104. package/dist/viewer/index.html +3 -3
  105. package/dist/viewer/index.js +3 -3
  106. package/dist/viewer/{info-A6RAGUB7-BVW83dCy.js → info-A6RAGUB7-Bhn0w0ii.js} +1 -1
  107. package/dist/viewer/{infoDiagram-27XIBGKW-C7TxtcWL.js → infoDiagram-27XIBGKW-BVSbmxC-.js} +1 -1
  108. package/dist/viewer/{ishikawaDiagram-5VMMS53U-BT-yQVRc.js → ishikawaDiagram-5VMMS53U-DdsbHCoI.js} +1 -1
  109. package/dist/viewer/{it-IT-JPQ66NNP-BNsEQmLq.js → it-IT-JPQ66NNP-8-_iFasU.js} +1 -1
  110. package/dist/viewer/{itemEquality-Dx2kxFQI.js → itemEquality-C3XfrMi2.js} +1 -1
  111. package/dist/viewer/{ja-JP-DBVTYXUO-jEL5Zohm.js → ja-JP-DBVTYXUO-irdMOHqC.js} +1 -1
  112. package/dist/viewer/{journeyDiagram-3NMN7TZE-D56mmWU7.js → journeyDiagram-3NMN7TZE-Cse6N-5p.js} +1 -1
  113. package/dist/viewer/{kaa-6HZHGXH3-B6pyJXZH.js → kaa-6HZHGXH3-DSu-PtX5.js} +1 -1
  114. package/dist/viewer/{kab-KAB-ZGHBKWFO-CLlf3rfz.js → kab-KAB-ZGHBKWFO-Bjc7u2yG.js} +1 -1
  115. package/dist/viewer/{kanban-definition-UXKFOSKX-hi8MCy0F.js → kanban-definition-UXKFOSKX-CdmNcOy5.js} +1 -1
  116. package/dist/viewer/{kk-KZ-P5N5QNE5-D-GnQDUN.js → kk-KZ-P5N5QNE5-CjQwQASw.js} +1 -1
  117. package/dist/viewer/{km-KH-HSX4SM5Z-CvlRaq6r.js → km-KH-HSX4SM5Z-CMslZbL1.js} +1 -1
  118. package/dist/viewer/{ko-KR-MTYHY66A-mYkZX31W.js → ko-KR-MTYHY66A-DBdzdGrw.js} +1 -1
  119. package/dist/viewer/{ku-TR-6OUDTVRD-CeXiI7eX.js → ku-TR-6OUDTVRD-C3zBzgJI.js} +1 -1
  120. package/dist/viewer/{lt-LT-XHIRWOB4-DNl9HTRS.js → lt-LT-XHIRWOB4-DWVw-ffO.js} +1 -1
  121. package/dist/viewer/{lv-LV-5QDEKY6T-_QejX_-F.js → lv-LV-5QDEKY6T-Zl3V2KMV.js} +1 -1
  122. package/dist/viewer/{mermaid-parser.core-8H71iLKg.js → mermaid-parser.core-CJFJTtR4.js} +3 -3
  123. package/dist/viewer/{mindmap-definition-YA3MSWOX-DDgO7tS-.js → mindmap-definition-YA3MSWOX-9mWYfj6-.js} +1 -1
  124. package/dist/viewer/{mr-IN-CRQNXWMA-OIHNnnu8.js → mr-IN-CRQNXWMA-D9aX0Bdo.js} +1 -1
  125. package/dist/viewer/{my-MM-5M5IBNSE-DYrw8pYH.js → my-MM-5M5IBNSE-SPXzrrJR.js} +1 -1
  126. package/dist/viewer/{nb-NO-T6EIAALU-DMd3Sg5d.js → nb-NO-T6EIAALU-C8h-KZrY.js} +1 -1
  127. package/dist/viewer/{nl-NL-IS3SIHDZ-D9AJQvsb.js → nl-NL-IS3SIHDZ-BflXY5YN.js} +1 -1
  128. package/dist/viewer/{nn-NO-6E72VCQL-DNeLg3d9.js → nn-NO-6E72VCQL-CFWc1uPu.js} +1 -1
  129. package/dist/viewer/{oc-FR-POXYY2M6-D6JMp-_j.js → oc-FR-POXYY2M6-BHz8giUr.js} +1 -1
  130. package/dist/viewer/{pa-IN-N4M65BXN-g5Vjsxo8.js → pa-IN-N4M65BXN-KYWN5LeG.js} +1 -1
  131. package/dist/viewer/{packet-AYTQ26CC-Dgk7eBb9.js → packet-AYTQ26CC-DrNZHDt7.js} +1 -1
  132. package/dist/viewer/{pegDiagram-XKGWAZYB-CVIwfqJt.js → pegDiagram-XKGWAZYB-DPszelm4.js} +1 -1
  133. package/dist/viewer/percentages-BXMCSKIN-BgOWZqvL.js +1 -0
  134. package/dist/viewer/{pie-WAS4IAKB-DS_tuosA.js → pie-WAS4IAKB-J0UiOL4B.js} +1 -1
  135. package/dist/viewer/{pieDiagram-E7YTZNPT-4vQIT90F.js → pieDiagram-E7YTZNPT-ClDIExzM.js} +1 -1
  136. package/dist/viewer/{pl-PL-T2D74RX3-CHeYNLpa.js → pl-PL-T2D74RX3-DhMivhiU.js} +1 -1
  137. package/dist/viewer/preview.html +4 -4
  138. package/dist/viewer/preview.js +1 -1
  139. package/dist/viewer/{prod-DiBc1897.js → prod-itzLn3X0.js} +8 -8
  140. package/dist/viewer/{pt-BR-5N22H2LF-taNFaSz0.js → pt-BR-5N22H2LF-gkkaKj42.js} +1 -1
  141. package/dist/viewer/{pt-PT-UZXXM6DQ-CsmK_jBH.js → pt-PT-UZXXM6DQ-NWnJTvgF.js} +1 -1
  142. package/dist/viewer/{quadrantDiagram-AXDQQJYC-BeirbPa5.js → quadrantDiagram-AXDQQJYC-CYy8PwM3.js} +1 -1
  143. package/dist/viewer/{radar-RG4KPBEZ-BsCRiS0D.js → radar-RG4KPBEZ-DQrCAAlO.js} +1 -1
  144. package/dist/viewer/{railroad-74A4TZTK--zO8tvea.js → railroad-74A4TZTK-Bie2KVo4.js} +1 -1
  145. package/dist/viewer/{railroad-abnf-HS5TGJTU-BZWetNTH.js → railroad-abnf-HS5TGJTU-CqHzfM_H.js} +1 -1
  146. package/dist/viewer/{railroad-ebnf-LZEXJU2U-Bdr-nXDi.js → railroad-ebnf-LZEXJU2U-Ba93pI_q.js} +1 -1
  147. package/dist/viewer/{railroad-peg-WCYAUIDC-5QbqtFhr.js → railroad-peg-WCYAUIDC-oFmY9M6i.js} +1 -1
  148. package/dist/viewer/{railroadDiagram-O6MQD6OU-CEc9eC2b.js → railroadDiagram-O6MQD6OU-Bl287Huh.js} +1 -1
  149. package/dist/viewer/{requirementDiagram-BXWQKSXE-gHO3OQpd.js → requirementDiagram-BXWQKSXE-C7qjeIWt.js} +1 -1
  150. package/dist/viewer/{ro-RO-JPDTUUEW-URJMRk3q.js → ro-RO-JPDTUUEW-Ci-CRtV_.js} +1 -1
  151. package/dist/viewer/{ru-RU-B4JR7IUQ-DI6p8dtR.js → ru-RU-B4JR7IUQ-BPm31ic_.js} +1 -1
  152. package/dist/viewer/{sankeyDiagram-P5KCCOFB-BKwmk90Q.js → sankeyDiagram-P5KCCOFB-CSV23yCW.js} +1 -1
  153. package/dist/viewer/{selection-BUarVaVG.js → selection-DiNkp8_u.js} +1 -1
  154. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-DNRtNYaC.js → sequenceDiagram-WJ2MYXX4-BbxTUdX6.js} +1 -1
  155. package/dist/viewer/{si-LK-N5RQ5JYF-CC3Wbwwt.js → si-LK-N5RQ5JYF-7zJDxmel.js} +1 -1
  156. package/dist/viewer/{sk-SK-C5VTKIMK-D4qIYJZm.js → sk-SK-C5VTKIMK-BNbR9mTT.js} +1 -1
  157. package/dist/viewer/{sl-SI-NN7IZMDC-BrX9Kjyd.js → sl-SI-NN7IZMDC-Dzy-6Up_.js} +1 -1
  158. package/dist/viewer/{stateDiagram-D77RDMKH-DFHhwDaw.js → stateDiagram-D77RDMKH-hpVLVGhL.js} +1 -1
  159. package/dist/viewer/stateDiagram-v2-MP3YSRHH-BH2KXEBo.js +1 -0
  160. package/dist/viewer/subset-shared.chunk-Czwfa2VQ.js +1 -0
  161. package/dist/viewer/{subset-worker.chunk-D_1PjTiM.js → subset-worker.chunk-Dgy8sQUD.js} +1 -1
  162. package/dist/viewer/{sv-SE-XGPEYMSR-CrLXWvFy.js → sv-SE-XGPEYMSR-C5bggny3.js} +1 -1
  163. package/dist/viewer/{swimlanes-42K2YHIH-DzGUJWU-.js → swimlanes-42K2YHIH-BRqXz7nV.js} +1 -1
  164. package/dist/viewer/swimlanesDiagram-VR7AAH4N-Blx0nEYQ.js +8 -0
  165. package/dist/viewer/{ta-IN-2NMHFXQM-BjEs1VFY.js → ta-IN-2NMHFXQM-Pw1wRofq.js} +1 -1
  166. package/dist/viewer/{th-TH-HPSO5L25-Cg6PzVXI.js → th-TH-HPSO5L25-Nz-UqtdD.js} +1 -1
  167. package/dist/viewer/{timeline-definition-24CTP7MA-CIpmMJhg.js → timeline-definition-24CTP7MA-Dp3nP8rd.js} +1 -1
  168. package/dist/viewer/{tr-TR-DEFEU3FU-DCEAv9nq.js → tr-TR-DEFEU3FU-DTlGCmld.js} +1 -1
  169. package/dist/viewer/{treeView-Q6P3EWNA-DHjfLsjZ.js → treeView-Q6P3EWNA-z3dPnkjZ.js} +1 -1
  170. package/dist/viewer/{treemap-WGGIJYW6-COOVf8-Y.js → treemap-WGGIJYW6-DeaU4Gxo.js} +1 -1
  171. package/dist/viewer/{type-icons-BonbxUGw.js → type-icons-BhI8cIWS.js} +1 -1
  172. package/dist/viewer/{uk-UA-QMV73CPH-DMWYOkg6.js → uk-UA-QMV73CPH-Bx9vPanC.js} +1 -1
  173. package/dist/viewer/useSystemTheme-Dzqcdh-y.js +64 -0
  174. package/dist/viewer/{useTranslation-Ci5tOdAN.js → useTranslation-B4Q9Bc_u.js} +1 -1
  175. package/dist/viewer/{useTypeFavicon-B--Z-Uwv.js → useTypeFavicon-B01CcUw4.js} +1 -1
  176. package/dist/viewer/{vennDiagram-4TSXK5OY-BWDC-eE0.js → vennDiagram-4TSXK5OY-B2g-6QAa.js} +1 -1
  177. package/dist/viewer/{vi-VN-M7AON7JQ-CVj2nFN-.js → vi-VN-M7AON7JQ-DvU5fCQK.js} +1 -1
  178. package/dist/viewer/{view-D0Odcpdb.js → view-R1KProyl.js} +1 -1
  179. package/dist/viewer/{wardley-WFR3VGLG-CDlPWlPO.js → wardley-WFR3VGLG-hhWao6Ek.js} +1 -1
  180. package/dist/viewer/{wardleyDiagram-VM6X3IG4-C9yxtxg6.js → wardleyDiagram-VM6X3IG4-pFu6p_Rn.js} +1 -1
  181. package/dist/viewer/{xychartDiagram-S5SC5T6Z-Dv4UxBWo.js → xychartDiagram-S5SC5T6Z-GC8fXUaM.js} +1 -1
  182. package/dist/viewer/{zh-CN-LNUGB5OW-i7Vn4Pqy.js → zh-CN-LNUGB5OW-LWpPfppU.js} +1 -1
  183. package/dist/viewer/{zh-HK-E62DVLB3-Cm16SoeD.js → zh-HK-E62DVLB3-BQrPpETb.js} +1 -1
  184. package/dist/viewer/{zh-TW-RAJ6MFWO-Lambeacv.js → zh-TW-RAJ6MFWO-O2w99mPI.js} +1 -1
  185. package/dist/viewer-lib/{Canvas-BdS1Xa5w.js → Canvas-Gv8uEhbb.js} +1 -1
  186. package/dist/viewer-lib/core.js +3 -3
  187. package/dist/viewer-lib/{ids-Crgtnwo0.js → ids-CJH3rRXm.js} +38 -38
  188. package/dist/viewer-lib/index.js +1002 -1002
  189. package/dist/viewer-lib/types/src/shared/ids.d.ts +3 -0
  190. package/package.json +1 -1
  191. package/dist/viewer/channel-DGerhKw9.js +0 -1
  192. package/dist/viewer/classDiagram-ZZMXUADV-DWXc-S98.js +0 -1
  193. package/dist/viewer/classDiagram-v2-VYDZK3BY-DWXc-S98.js +0 -1
  194. package/dist/viewer/flowDiagram-HODETNUW-DWhovppS.js +0 -1
  195. package/dist/viewer/percentages-BXMCSKIN-NLhw_fz5.js +0 -1
  196. package/dist/viewer/stateDiagram-v2-MP3YSRHH-D8ViYn3V.js +0 -1
  197. package/dist/viewer/subset-shared.chunk-Bx9OralH.js +0 -1
  198. package/dist/viewer/swimlanesDiagram-VR7AAH4N-Clea06qq.js +0 -8
  199. package/dist/viewer/useSystemTheme-BVZLLsnc.js +0 -64
package/dist/server.cjs CHANGED
@@ -5191,8 +5191,14 @@ var import_node_fs = __toESM(require("node:fs"), 1);
5191
5191
  var import_node_path = __toESM(require("node:path"), 1);
5192
5192
 
5193
5193
  // src/shared/ids.ts
5194
- var ID_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
5194
+ var SLUG_SOURCE = "[a-z0-9][a-z0-9-]*";
5195
+ var ADDRESS_SOURCE = "(?:[A-Za-z0-9_-]{21}|[a-f0-9]{32})";
5196
+ var ARTIFACT_LOCATOR_SOURCE = `(?:${SLUG_SOURCE}|${ADDRESS_SOURCE})`;
5197
+ var ID_PATTERN = new RegExp(`^${SLUG_SOURCE}$`);
5198
+ var ADDRESS_PATTERN = new RegExp(`^${ADDRESS_SOURCE}$`);
5195
5199
  var isArtifactId = (id2) => ID_PATTERN.test(id2);
5200
+ var isArtifactAddress = (id2) => ADDRESS_PATTERN.test(id2);
5201
+ var isArtifactLocator = (id2) => ID_PATTERN.test(id2) || ADDRESS_PATTERN.test(id2);
5196
5202
  var isArtifactType = (type) => ARTIFACT_TYPES.includes(type);
5197
5203
 
5198
5204
  // src/server/artifacts.ts
@@ -5228,9 +5234,9 @@ function resolveArtifactDir(root, type, id2) {
5228
5234
  return null;
5229
5235
  }
5230
5236
  }
5231
- function artifactKeyOf(relative) {
5237
+ function artifactKeyOf(relative, isId2 = isArtifactId) {
5232
5238
  const [type, id2] = relative.split("/");
5233
- if (!type || !id2 || !isArtifactType(type) || !isArtifactId(id2)) return null;
5239
+ if (!type || !id2 || !isArtifactType(type) || !isId2(id2)) return null;
5234
5240
  return { type, id: id2 };
5235
5241
  }
5236
5242
  function artifactSignature(dir, type) {
@@ -5265,9 +5271,87 @@ function artifactSignature(dir, type) {
5265
5271
  }
5266
5272
 
5267
5273
  // src/server/artifact-address.ts
5268
- var import_node_crypto2 = __toESM(require("node:crypto"), 1);
5269
5274
  var import_node_fs2 = __toESM(require("node:fs"), 1);
5270
5275
  var import_node_path2 = __toESM(require("node:path"), 1);
5276
+
5277
+ // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.js
5278
+ var import_node_crypto2 = require("node:crypto");
5279
+
5280
+ // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/url-alphabet/index.js
5281
+ var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
5282
+
5283
+ // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.js
5284
+ var POOL_SIZE_MULTIPLIER = 128;
5285
+ var pool;
5286
+ var poolOffset;
5287
+ function fillPool(bytes) {
5288
+ if (bytes < 0) throw new RangeError("Wrong ID size");
5289
+ try {
5290
+ if (!pool || pool.length < bytes) {
5291
+ pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
5292
+ import_node_crypto2.webcrypto.getRandomValues(pool);
5293
+ poolOffset = 0;
5294
+ } else if (poolOffset + bytes > pool.length) {
5295
+ import_node_crypto2.webcrypto.getRandomValues(pool);
5296
+ poolOffset = 0;
5297
+ }
5298
+ } catch (e5) {
5299
+ pool = void 0;
5300
+ throw e5;
5301
+ }
5302
+ poolOffset += bytes;
5303
+ }
5304
+ function random(bytes) {
5305
+ fillPool(bytes |= 0);
5306
+ return pool.subarray(poolOffset - bytes, poolOffset);
5307
+ }
5308
+ function customRandom(alphabet, defaultSize, getRandom) {
5309
+ let safeByteCutoff = 256 - 256 % alphabet.length;
5310
+ if (safeByteCutoff === 256) {
5311
+ let mask = alphabet.length - 1;
5312
+ return (size = defaultSize) => {
5313
+ if (!size) return "";
5314
+ let id2 = "";
5315
+ while (true) {
5316
+ let bytes = getRandom(size);
5317
+ let i6 = size;
5318
+ while (i6--) {
5319
+ id2 += alphabet[bytes[i6] & mask];
5320
+ if (id2.length >= size) return id2;
5321
+ }
5322
+ }
5323
+ };
5324
+ }
5325
+ let step = Math.ceil(1.6 * 256 * defaultSize / safeByteCutoff);
5326
+ return (size = defaultSize) => {
5327
+ if (!size) return "";
5328
+ let id2 = "";
5329
+ while (true) {
5330
+ let bytes = getRandom(step);
5331
+ let i6 = step;
5332
+ while (i6--) {
5333
+ if (bytes[i6] < safeByteCutoff) {
5334
+ id2 += alphabet[bytes[i6] % alphabet.length];
5335
+ if (id2.length >= size) return id2;
5336
+ }
5337
+ }
5338
+ }
5339
+ };
5340
+ }
5341
+ function customAlphabet(alphabet, size = 21) {
5342
+ return customRandom(alphabet, size, random);
5343
+ }
5344
+ function nanoid(size = 21) {
5345
+ fillPool(size |= 0);
5346
+ let id2 = "";
5347
+ for (let i6 = poolOffset - size; i6 < poolOffset; i6++) {
5348
+ id2 += urlAlphabet[pool[i6] & 63];
5349
+ }
5350
+ return id2;
5351
+ }
5352
+
5353
+ // src/server/artifact-address.ts
5354
+ var newArtifactId = customAlphabet("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 21);
5271
5355
  function artifactId(dir) {
5272
5356
  const file = import_node_path2.default.join(dir, ".artifact-id");
5273
5357
  let id2;
@@ -5275,7 +5359,7 @@ function artifactId(dir) {
5275
5359
  id2 = import_node_fs2.default.readFileSync(file, "utf8").trim();
5276
5360
  } catch (err) {
5277
5361
  if (err.code !== "ENOENT") throw err;
5278
- id2 = import_node_crypto2.default.randomBytes(16).toString("hex");
5362
+ id2 = newArtifactId();
5279
5363
  try {
5280
5364
  import_node_fs2.default.writeFileSync(file, `${id2}
5281
5365
  `, { flag: "wx" });
@@ -5284,7 +5368,7 @@ function artifactId(dir) {
5284
5368
  return artifactId(dir);
5285
5369
  }
5286
5370
  }
5287
- if (!/^[a-f0-9]{32}$/.test(id2)) throw new Error(`Invalid artifact ID in ${file}`);
5371
+ if (!isArtifactAddress(id2)) throw new Error(`Invalid artifact ID in ${file}`);
5288
5372
  return id2;
5289
5373
  }
5290
5374
  function artifactPath(root, type, slug) {
@@ -5351,7 +5435,7 @@ function readDocument(dir, id2) {
5351
5435
  }
5352
5436
 
5353
5437
  // node_modules/.pnpm/nanoid@6.0.2/node_modules/nanoid/url-alphabet/index.js
5354
- var urlAlphabet = "57X6y3wQZNzYjJB2L_10pxbackgroundhimselfUTF-8DEMOGRAPHICSVqvt4KW9";
5438
+ var urlAlphabet2 = "57X6y3wQZNzYjJB2L_10pxbackgroundhimselfUTF-8DEMOGRAPHICSVqvt4KW9";
5355
5439
 
5356
5440
  // node_modules/.pnpm/nanoid@6.0.2/node_modules/nanoid/index.js
5357
5441
  var GET_RANDOM_LIMIT = 65536;
@@ -5363,14 +5447,14 @@ function fillRandom(buffer) {
5363
5447
  from = to3;
5364
5448
  }
5365
5449
  }
5366
- function random(bytes) {
5450
+ function random2(bytes) {
5367
5451
  bytes |= 0;
5368
5452
  if (bytes < 0) throw new RangeError("Wrong ID size");
5369
5453
  let buffer = Buffer.allocUnsafe(bytes);
5370
5454
  fillRandom(buffer);
5371
5455
  return buffer;
5372
5456
  }
5373
- function customRandom(alphabet, defaultSize, getRandom) {
5457
+ function customRandom2(alphabet, defaultSize, getRandom) {
5374
5458
  let safeByteCutoff = 256 - 256 % alphabet.length;
5375
5459
  if (safeByteCutoff === 256) {
5376
5460
  let mask = alphabet.length - 1;
@@ -5404,13 +5488,13 @@ function customRandom(alphabet, defaultSize, getRandom) {
5404
5488
  };
5405
5489
  }
5406
5490
  var POOL_MAX = GET_RANDOM_LIMIT / 2;
5407
- function customAlphabet(alphabet, defaultSize = 21) {
5491
+ function customAlphabet2(alphabet, defaultSize = 21) {
5408
5492
  if (typeof alphabet !== "string" || !alphabet || alphabet.length > 256) {
5409
- return customRandom(alphabet, defaultSize, random);
5493
+ return customRandom2(alphabet, defaultSize, random2);
5410
5494
  }
5411
5495
  for (let i6 = 0; i6 < alphabet.length; i6++) {
5412
5496
  if (alphabet.charCodeAt(i6) > 255) {
5413
- return customRandom(alphabet, defaultSize, random);
5497
+ return customRandom2(alphabet, defaultSize, random2);
5414
5498
  }
5415
5499
  }
5416
5500
  let charCodes = Uint8Array.from(alphabet, (str) => {
@@ -5457,7 +5541,7 @@ function customAlphabet(alphabet, defaultSize = 21) {
5457
5541
  return pool2.substring(poolOffset2 - size, poolOffset2);
5458
5542
  };
5459
5543
  }
5460
- var nanoid = customAlphabet(urlAlphabet);
5544
+ var nanoid2 = customAlphabet2(urlAlphabet2);
5461
5545
 
5462
5546
  // node_modules/.pnpm/@haklex+rich-litexml@0.58.0_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/src-CwO17cE7.js
5463
5547
  var impl = null;
@@ -5603,11 +5687,11 @@ function registerBuiltinReaders(registry2) {
5603
5687
  }));
5604
5688
  }
5605
5689
  var idAlphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
5606
- var makePollIdSuffix = customAlphabet(idAlphabet, 10);
5607
- var makeOptionIdSuffix = customAlphabet(idAlphabet, 6);
5608
- var makeChatParticipantId = customAlphabet(idAlphabet, 6);
5609
- var makeChatMessageId = customAlphabet(idAlphabet, 8);
5610
- var makeStepId = customAlphabet(idAlphabet, 8);
5690
+ var makePollIdSuffix = customAlphabet2(idAlphabet, 10);
5691
+ var makeOptionIdSuffix = customAlphabet2(idAlphabet, 6);
5692
+ var makeChatParticipantId = customAlphabet2(idAlphabet, 6);
5693
+ var makeChatMessageId = customAlphabet2(idAlphabet, 8);
5694
+ var makeStepId = customAlphabet2(idAlphabet, 8);
5611
5695
  function extractBlockId(el2) {
5612
5696
  const id2 = el2.getAttribute("id");
5613
5697
  return id2 ? { $: { blockId: id2 } } : {};
@@ -17610,42 +17694,6 @@ setPrototypeOf(Document4, Document2).prototype = Document2.prototype;
17610
17694
  // node_modules/.pnpm/@haklex+rich-litexml@0.58.0_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/node.mjs
17611
17695
  registerParseHTML((html) => parseHTML2(html).document);
17612
17696
 
17613
- // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.js
17614
- var import_node_crypto3 = require("node:crypto");
17615
-
17616
- // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/url-alphabet/index.js
17617
- var urlAlphabet2 = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
17618
-
17619
- // node_modules/.pnpm/nanoid@5.1.16/node_modules/nanoid/index.js
17620
- var POOL_SIZE_MULTIPLIER = 128;
17621
- var pool;
17622
- var poolOffset;
17623
- function fillPool(bytes) {
17624
- if (bytes < 0) throw new RangeError("Wrong ID size");
17625
- try {
17626
- if (!pool || pool.length < bytes) {
17627
- pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);
17628
- import_node_crypto3.webcrypto.getRandomValues(pool);
17629
- poolOffset = 0;
17630
- } else if (poolOffset + bytes > pool.length) {
17631
- import_node_crypto3.webcrypto.getRandomValues(pool);
17632
- poolOffset = 0;
17633
- }
17634
- } catch (e5) {
17635
- pool = void 0;
17636
- throw e5;
17637
- }
17638
- poolOffset += bytes;
17639
- }
17640
- function nanoid2(size = 21) {
17641
- fillPool(size |= 0);
17642
- let id2 = "";
17643
- for (let i6 = poolOffset - size; i6 < poolOffset; i6++) {
17644
- id2 += urlAlphabet2[pool[i6] & 63];
17645
- }
17646
- return id2;
17647
- }
17648
-
17649
17697
  // src/shared/dynamic.ts
17650
17698
  var DYNAMIC_URL = /^assets\/[\w-][\w.-]*\.html$/;
17651
17699
 
@@ -17820,8 +17868,8 @@ function stampBlockIds(state) {
17820
17868
  seen.add(id2);
17821
17869
  return block;
17822
17870
  }
17823
- let fresh = nanoid2(8);
17824
- while (seen.has(fresh)) fresh = nanoid2(8);
17871
+ let fresh = nanoid(8);
17872
+ while (seen.has(fresh)) fresh = nanoid(8);
17825
17873
  seen.add(fresh);
17826
17874
  return { ...block, $: { ...block.$, blockId: fresh } };
17827
17875
  });
@@ -17838,7 +17886,7 @@ function boxDrawingDiagrams(state) {
17838
17886
  }
17839
17887
 
17840
17888
  // src/server/board-comments.ts
17841
- var import_node_crypto4 = __toESM(require("node:crypto"), 1);
17889
+ var import_node_crypto3 = __toESM(require("node:crypto"), 1);
17842
17890
  var import_node_fs9 = __toESM(require("node:fs"), 1);
17843
17891
  var import_node_path8 = __toESM(require("node:path"), 1);
17844
17892
 
@@ -18578,10 +18626,10 @@ var documentRules = {
18578
18626
  agent: applyAgentOp
18579
18627
  };
18580
18628
  var noNames = { human: () => void 0, agent: () => void 0 };
18581
- function createCommentStore(file, names = noNames, now = () => (/* @__PURE__ */ new Date()).toISOString(), newId = () => nanoid2(10)) {
18629
+ function createCommentStore(file, names = noNames, now = () => (/* @__PURE__ */ new Date()).toISOString(), newId = () => nanoid(10)) {
18582
18630
  return createStore(file, documentRules, names, now, newId);
18583
18631
  }
18584
- function createStore(file, rules, names = noNames, now = () => (/* @__PURE__ */ new Date()).toISOString(), newId = () => nanoid2(10)) {
18632
+ function createStore(file, rules, names = noNames, now = () => (/* @__PURE__ */ new Date()).toISOString(), newId = () => nanoid(10)) {
18585
18633
  let current = rules.empty();
18586
18634
  let lastSeen = null;
18587
18635
  let warnings = [];
@@ -18701,7 +18749,7 @@ function fileHash(dir, relative) {
18701
18749
  const stamp2 = `${stat.size}:${stat.mtimeMs}`;
18702
18750
  const cached = hashCache.get(file);
18703
18751
  if (cached?.stamp === stamp2) return cached.hash;
18704
- const hash = import_node_crypto4.default.createHash("sha1").update(import_node_fs9.default.readFileSync(file)).digest("hex").slice(0, 12);
18752
+ const hash = import_node_crypto3.default.createHash("sha1").update(import_node_fs9.default.readFileSync(file)).digest("hex").slice(0, 12);
18705
18753
  hashCache.set(file, { stamp: stamp2, hash });
18706
18754
  return hash;
18707
18755
  } catch {
@@ -89050,6 +89098,15 @@ function installTweaks(win, makeTools) {
89050
89098
  });
89051
89099
  }
89052
89100
 
89101
+ // src/server/strip-runtime.ts
89102
+ var HEAD = /<head(\s[^>]*)?>/i;
89103
+ var PROLOGUE = /^\s*(<!doctype[^>]*>)?\s*(<html(\s[^>]*)?>)?/i;
89104
+ var EMBEDDED_STYLE = "<style>:root{color-scheme:light dark;background:transparent}body{margin:0;font-family:var(--lobe-font-family,system-ui,-apple-system,sans-serif)}</style>";
89105
+ function injectionPoint(html) {
89106
+ const head = HEAD.exec(html);
89107
+ return head ? head.index + head[0].length : PROLOGUE.exec(html)?.[0].length ?? 0;
89108
+ }
89109
+
89053
89110
  // src/server/inject.ts
89054
89111
  var RUNTIME = `(() => {
89055
89112
  const post = (message) => parent.postMessage(message, '*');
@@ -89152,10 +89209,7 @@ var RUNTIME = `(() => {
89152
89209
  }
89153
89210
  });
89154
89211
  })();`;
89155
- var HEAD = /<head(\s[^>]*)?>/i;
89156
- var PROLOGUE = /^\s*(<!doctype[^>]*>)?\s*(<html(\s[^>]*)?>)?/i;
89157
89212
  var RUNTIME_LINE = RUNTIME.split("\n").map((line) => line.trim()).join(" ");
89158
- var EMBEDDED_STYLE = "<style>:root{color-scheme:light dark;background:transparent}body{margin:0;font-family:var(--lobe-font-family,system-ui,-apple-system,sans-serif)}</style>";
89159
89213
  var UI_MARKER = /<ryugi-(?!icon(?:\s|>))[a-z0-9-]+(?:\s|>)/i;
89160
89214
  var UI_META = /<meta[^>]+name=["']ryugi-ui["'][^>]*>/i;
89161
89215
  function injectRuntime(html, options = {}) {
@@ -89163,13 +89217,12 @@ function injectRuntime(html, options = {}) {
89163
89217
  const tag = `${options.embedded ? EMBEDDED_STYLE : ""}<script>${inspect || RUNTIME_LINE}</script>`;
89164
89218
  const ui2 = options.uiRuntimeUrl && !options.inspector && (UI_MARKER.test(html) || UI_META.test(html)) ? `<script defer src="${options.uiRuntimeUrl.replace(/"/g, "&quot;")}"></script>` : "";
89165
89219
  const icons = options.uiRuntimeUrl && (ui2 || /<ryugi-icon(?:\s|>)|<meta[^>]+name=["']ryugi-icons["']/i.test(html)) ? `<script defer src="${options.uiRuntimeUrl.replace(/ryugi-ui\.js$/, "ryugi-icons.js").replace(/"/g, "&quot;")}"></script>` : "";
89166
- const head = HEAD.exec(html);
89167
- const at7 = head ? head.index + head[0].length : PROLOGUE.exec(html)?.[0].length ?? 0;
89220
+ const at7 = injectionPoint(html);
89168
89221
  return html.slice(0, at7) + tag + icons + ui2 + html.slice(at7);
89169
89222
  }
89170
89223
 
89171
89224
  // src/server/http.ts
89172
- var import_node_crypto5 = __toESM(require("node:crypto"), 1);
89225
+ var import_node_crypto4 = __toESM(require("node:crypto"), 1);
89173
89226
  var import_node_fs11 = __toESM(require("node:fs"), 1);
89174
89227
  var import_node_path11 = __toESM(require("node:path"), 1);
89175
89228
  var MIME2 = {
@@ -89195,11 +89248,11 @@ var MIME2 = {
89195
89248
  ".webm": "video/webm"
89196
89249
  };
89197
89250
  var mimeOf = (file) => MIME2[import_node_path11.default.extname(file).toLowerCase()] ?? "application/octet-stream";
89198
- var randomToken = () => import_node_crypto5.default.randomBytes(24).toString("base64url");
89251
+ var randomToken = () => import_node_crypto4.default.randomBytes(24).toString("base64url");
89199
89252
  function safeEqual(a5, b6) {
89200
89253
  const ab = Buffer.from(a5);
89201
89254
  const bb = Buffer.from(b6);
89202
- return ab.length === bb.length && import_node_crypto5.default.timingSafeEqual(ab, bb);
89255
+ return ab.length === bb.length && import_node_crypto4.default.timingSafeEqual(ab, bb);
89203
89256
  }
89204
89257
  function parseCookies(header) {
89205
89258
  const cookies = {};
@@ -89714,7 +89767,7 @@ function createRelayClient(options) {
89714
89767
  }
89715
89768
 
89716
89769
  // src/server/ws.ts
89717
- var import_node_crypto6 = __toESM(require("node:crypto"), 1);
89770
+ var import_node_crypto5 = __toESM(require("node:crypto"), 1);
89718
89771
  var WS_MAGIC = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
89719
89772
  var OPCODE_TEXT = 1;
89720
89773
  var OPCODE_CLOSE = 8;
@@ -89722,7 +89775,7 @@ var OPCODE_PING = 9;
89722
89775
  var OPCODE_PONG = 10;
89723
89776
  var MAX_CLIENT_FRAME = 8 * 1024 * 1024;
89724
89777
  function acceptKey(clientKey) {
89725
- return import_node_crypto6.default.createHash("sha1").update(clientKey + WS_MAGIC).digest("base64");
89778
+ return import_node_crypto5.default.createHash("sha1").update(clientKey + WS_MAGIC).digest("base64");
89726
89779
  }
89727
89780
  function encodeFrame(opcode, payload) {
89728
89781
  const len = payload.length;
@@ -89861,7 +89914,7 @@ function hostIdFor(credentialsFile2) {
89861
89914
  }
89862
89915
 
89863
89916
  // src/server/avatars.ts
89864
- var import_node_crypto7 = require("node:crypto");
89917
+ var import_node_crypto6 = require("node:crypto");
89865
89918
  var AVATAR_ROUTE = /^\/api\/avatar\/([a-z]+)\/([^/]+)$/;
89866
89919
  var MAX_BYTES = 512 * 1024;
89867
89920
  var TIMEOUT_MS = 5e3;
@@ -89870,7 +89923,7 @@ var SOURCES = {
89870
89923
  gravatar: { valid: /^[0-9a-f]{64}$/, url: (id2) => `https://gravatar.com/avatar/${id2}?s=64&d=404` }
89871
89924
  };
89872
89925
  var githubAvatar = (login) => `/api/avatar/github/${login}`;
89873
- var gravatarAvatar = (email) => `/api/avatar/gravatar/${(0, import_node_crypto7.createHash)("sha256").update(email.trim().toLowerCase()).digest("hex")}`;
89926
+ var gravatarAvatar = (email) => `/api/avatar/gravatar/${(0, import_node_crypto6.createHash)("sha256").update(email.trim().toLowerCase()).digest("hex")}`;
89874
89927
  function createAvatars(fetchImpl = fetch) {
89875
89928
  const cache = /* @__PURE__ */ new Map();
89876
89929
  const fetchAvatar = async (url) => {
@@ -89902,7 +89955,7 @@ function createAvatars(fetchImpl = fetch) {
89902
89955
  }
89903
89956
 
89904
89957
  // src/server/cloud.ts
89905
- var import_node_crypto8 = __toESM(require("node:crypto"), 1);
89958
+ var import_node_crypto7 = __toESM(require("node:crypto"), 1);
89906
89959
 
89907
89960
  // src/shared/brand.ts
89908
89961
  var RYUGI_MARK_VIEWBOX = "0 0 512 512";
@@ -90324,7 +90377,7 @@ function createCloudRoutes(options) {
90324
90377
  const state = randomToken();
90325
90378
  const verifier = randomToken();
90326
90379
  pendingStates.set(state, { expires: now + LOGIN_STATE_TTL_MS, verifier });
90327
- const challenge = import_node_crypto8.default.createHash("sha256").update(verifier).digest("base64url");
90380
+ const challenge = import_node_crypto7.default.createHash("sha256").update(verifier).digest("base64url");
90328
90381
  return `${origin}/auth/cli?port=${options.port()}&state=${state}&challenge=${challenge}`;
90329
90382
  };
90330
90383
  const cloudFetch = async (method, path24, body) => {
@@ -90408,7 +90461,7 @@ function createCloudRoutes(options) {
90408
90461
  } catch (err) {
90409
90462
  throw new CloudRefused(413, err.message);
90410
90463
  }
90411
- const sha = (data) => import_node_crypto8.default.createHash("sha256").update(data).digest("hex");
90464
+ const sha = (data) => import_node_crypto7.default.createHash("sha256").update(data).digest("hex");
90412
90465
  const hashed = withCloudRuntime(ref.type, packed).map((file) => ({ ...file, hash: sha(file.data) }));
90413
90466
  const content = { title: inspected.title, payload: inspected.payload, files: hashed.map(({ path: path24, hash }) => ({ path: path24, hash })) };
90414
90467
  const fingerprint = sha(JSON.stringify({ title: inspected.title, payload: fingerprintPayload(inspected.payload), files: packed.map((file) => ({ path: file.path, hash: sha(file.data) })) }));
@@ -91017,7 +91070,7 @@ function renderThumbnail(artifact, value) {
91017
91070
  }
91018
91071
 
91019
91072
  // src/server/viewer-page.ts
91020
- var import_node_crypto9 = require("node:crypto");
91073
+ var import_node_crypto8 = require("node:crypto");
91021
91074
  var escapeHtml2 = (value) => value.replace(/[&<>"']/g, (ch) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" })[ch]);
91022
91075
  function viewerPage(template, page) {
91023
91076
  const locale = page.locale ?? "en";
@@ -91039,12 +91092,12 @@ function viewerPage(template, page) {
91039
91092
  }
91040
91093
  var INLINE_SCRIPT = /<script\b(?![^>]*\bsrc=)[^>]*>([\s\S]*?)<\/script>/gi;
91041
91094
  function allowInlineScripts(csp, html) {
91042
- const hashes = [...html.matchAll(INLINE_SCRIPT)].map(([, body]) => `'sha256-${(0, import_node_crypto9.createHash)("sha256").update(body).digest("base64")}'`);
91095
+ const hashes = [...html.matchAll(INLINE_SCRIPT)].map(([, body]) => `'sha256-${(0, import_node_crypto8.createHash)("sha256").update(body).digest("base64")}'`);
91043
91096
  return hashes.length ? csp.replace(/script-src [^;]*/, (directive) => `${directive} ${hashes.join(" ")}`) : csp;
91044
91097
  }
91045
91098
 
91046
91099
  // src/server/auto-publish.ts
91047
- var import_node_crypto10 = __toESM(require("node:crypto"), 1);
91100
+ var import_node_crypto9 = __toESM(require("node:crypto"), 1);
91048
91101
  var import_node_fs21 = __toESM(require("node:fs"), 1);
91049
91102
  var IDLE_MS = 5 * 60 * 1e3;
91050
91103
  var MAX_WAIT_MS = 15 * 60 * 1e3;
@@ -91079,7 +91132,7 @@ function createAutoPublisher(options) {
91079
91132
  const failures = /* @__PURE__ */ new Map();
91080
91133
  const save = () => writeJsonAtomic(options.stateFile, { dirty: [...dirty], notice, paused });
91081
91134
  const raise = (kind, message, upgradeUrl) => {
91082
- if (notice?.kind !== kind) notice = { id: import_node_crypto10.default.randomUUID(), kind, message, ...upgradeUrl ? { upgradeUrl } : {} };
91135
+ if (notice?.kind !== kind) notice = { id: import_node_crypto9.default.randomUUID(), kind, message, ...upgradeUrl ? { upgradeUrl } : {} };
91083
91136
  };
91084
91137
  let idleTimer = null;
91085
91138
  let maxTimer = null;
@@ -91287,7 +91340,7 @@ var CLOSE_FLUSH_MS = 5e3;
91287
91340
  var DIRECT_RELAY_ROUTE = /^\/relay\/a\/([A-Za-z0-9_-]{1,64})$/;
91288
91341
  var SHELL_ROUTE = new RegExp(`^/(?:(${ARTIFACT_TYPES.join("|")})/([^/]+)/?)?$`);
91289
91342
  var API_ARTIFACT_ROUTE = /^\/api\/artifacts\/([^/]+)\/([^/]+)$/;
91290
- var PREVIEW_ROUTE = /^\/preview\/(artboard|document|html)\/([a-z0-9][a-z0-9-]*)\/?$/;
91343
+ var PREVIEW_ROUTE = new RegExp(`^/preview/(artboard|document|html)/${ARTIFACT_LOCATOR_SOURCE}/?$`);
91291
91344
  var API_PREVIEW_ROUTE = /^\/api\/preview\/([^/]+)\/([^/]+)$/;
91292
91345
  var API_THUMBNAIL_ROUTE = /^\/api\/thumbnail\/([^/]+)\/([^/]+)\.svg$/;
91293
91346
  var API_DOCUMENT_ROUTE = /^\/api\/document\/([^/]+)\/(state|update|comments)$/;
@@ -91788,7 +91841,7 @@ async function startArtifactsServer(options) {
91788
91841
  }
91789
91842
  const thumbnailMatch = API_THUMBNAIL_ROUTE.exec(pathname);
91790
91843
  if (thumbnailMatch) {
91791
- const requested = artifactKeyOf(`${thumbnailMatch[1]}/${thumbnailMatch[2]}`);
91844
+ const requested = artifactKeyOf(`${thumbnailMatch[1]}/${thumbnailMatch[2]}`, isArtifactLocator);
91792
91845
  let resolved = null;
91793
91846
  try {
91794
91847
  resolved = requested && resolveArtifactAddress(root, requested.type, requested.id);
@@ -91891,7 +91944,7 @@ async function startArtifactsServer(options) {
91891
91944
  return;
91892
91945
  }
91893
91946
  if (SHELL_ROUTE.test(pathname) || PREVIEW_ROUTE.test(pathname) || pathname === "/index.html") {
91894
- const requested = artifactKeyOf(pathname.replace(/^\/(?:preview\/)?/, "").replace(/\/$/, ""));
91947
+ const requested = artifactKeyOf(pathname.replace(/^\/(?:preview\/)?/, "").replace(/\/$/, ""), isArtifactLocator);
91895
91948
  const resolved = requested && resolveArtifactAddress(root, requested.type, requested.id);
91896
91949
  const ref = resolved ?? requested;
91897
91950
  const dir = resolved?.dir;
@@ -92321,7 +92374,7 @@ function openReady(payload) {
92321
92374
  }
92322
92375
 
92323
92376
  // src/server/registry.ts
92324
- var import_node_crypto11 = __toESM(require("node:crypto"), 1);
92377
+ var import_node_crypto10 = __toESM(require("node:crypto"), 1);
92325
92378
  var import_node_fs26 = __toESM(require("node:fs"), 1);
92326
92379
  var import_node_os = __toESM(require("node:os"), 1);
92327
92380
  var import_node_path22 = __toESM(require("node:path"), 1);
@@ -92330,7 +92383,7 @@ function registryDir(env = process.env, platform = process.platform, uid = proce
92330
92383
  if (platform === "win32") return import_node_path22.default.join(tmpdir, "ryugi", "servers");
92331
92384
  return `/tmp/ryugi-${uid}/servers`;
92332
92385
  }
92333
- var fileFor = (dir, project) => import_node_path22.default.join(dir, `${import_node_crypto11.default.createHash("sha256").update(project).digest("hex").slice(0, 16)}.json`);
92386
+ var fileFor = (dir, project) => import_node_path22.default.join(dir, `${import_node_crypto10.default.createHash("sha256").update(project).digest("hex").slice(0, 16)}.json`);
92334
92387
  function verifyDir(dir) {
92335
92388
  if (process.platform === "win32") return;
92336
92389
  for (const target of [import_node_path22.default.dirname(dir), dir]) {
@@ -92375,7 +92428,7 @@ function touchEntry(dir, entry) {
92375
92428
  }
92376
92429
 
92377
92430
  // package.json
92378
- var version = "1.42.2";
92431
+ var version = "1.44.0";
92379
92432
 
92380
92433
  // src/server/main.ts
92381
92434
  async function main() {