ryugi-artifacts 1.43.0 → 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 +662 -335
  2. package/dist/server.cjs +128 -80
  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 {
@@ -89174,7 +89222,7 @@ function injectRuntime(html, options = {}) {
89174
89222
  }
89175
89223
 
89176
89224
  // src/server/http.ts
89177
- var import_node_crypto5 = __toESM(require("node:crypto"), 1);
89225
+ var import_node_crypto4 = __toESM(require("node:crypto"), 1);
89178
89226
  var import_node_fs11 = __toESM(require("node:fs"), 1);
89179
89227
  var import_node_path11 = __toESM(require("node:path"), 1);
89180
89228
  var MIME2 = {
@@ -89200,11 +89248,11 @@ var MIME2 = {
89200
89248
  ".webm": "video/webm"
89201
89249
  };
89202
89250
  var mimeOf = (file) => MIME2[import_node_path11.default.extname(file).toLowerCase()] ?? "application/octet-stream";
89203
- var randomToken = () => import_node_crypto5.default.randomBytes(24).toString("base64url");
89251
+ var randomToken = () => import_node_crypto4.default.randomBytes(24).toString("base64url");
89204
89252
  function safeEqual(a5, b6) {
89205
89253
  const ab = Buffer.from(a5);
89206
89254
  const bb = Buffer.from(b6);
89207
- 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);
89208
89256
  }
89209
89257
  function parseCookies(header) {
89210
89258
  const cookies = {};
@@ -89719,7 +89767,7 @@ function createRelayClient(options) {
89719
89767
  }
89720
89768
 
89721
89769
  // src/server/ws.ts
89722
- var import_node_crypto6 = __toESM(require("node:crypto"), 1);
89770
+ var import_node_crypto5 = __toESM(require("node:crypto"), 1);
89723
89771
  var WS_MAGIC = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
89724
89772
  var OPCODE_TEXT = 1;
89725
89773
  var OPCODE_CLOSE = 8;
@@ -89727,7 +89775,7 @@ var OPCODE_PING = 9;
89727
89775
  var OPCODE_PONG = 10;
89728
89776
  var MAX_CLIENT_FRAME = 8 * 1024 * 1024;
89729
89777
  function acceptKey(clientKey) {
89730
- 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");
89731
89779
  }
89732
89780
  function encodeFrame(opcode, payload) {
89733
89781
  const len = payload.length;
@@ -89866,7 +89914,7 @@ function hostIdFor(credentialsFile2) {
89866
89914
  }
89867
89915
 
89868
89916
  // src/server/avatars.ts
89869
- var import_node_crypto7 = require("node:crypto");
89917
+ var import_node_crypto6 = require("node:crypto");
89870
89918
  var AVATAR_ROUTE = /^\/api\/avatar\/([a-z]+)\/([^/]+)$/;
89871
89919
  var MAX_BYTES = 512 * 1024;
89872
89920
  var TIMEOUT_MS = 5e3;
@@ -89875,7 +89923,7 @@ var SOURCES = {
89875
89923
  gravatar: { valid: /^[0-9a-f]{64}$/, url: (id2) => `https://gravatar.com/avatar/${id2}?s=64&d=404` }
89876
89924
  };
89877
89925
  var githubAvatar = (login) => `/api/avatar/github/${login}`;
89878
- 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")}`;
89879
89927
  function createAvatars(fetchImpl = fetch) {
89880
89928
  const cache = /* @__PURE__ */ new Map();
89881
89929
  const fetchAvatar = async (url) => {
@@ -89907,7 +89955,7 @@ function createAvatars(fetchImpl = fetch) {
89907
89955
  }
89908
89956
 
89909
89957
  // src/server/cloud.ts
89910
- var import_node_crypto8 = __toESM(require("node:crypto"), 1);
89958
+ var import_node_crypto7 = __toESM(require("node:crypto"), 1);
89911
89959
 
89912
89960
  // src/shared/brand.ts
89913
89961
  var RYUGI_MARK_VIEWBOX = "0 0 512 512";
@@ -90329,7 +90377,7 @@ function createCloudRoutes(options) {
90329
90377
  const state = randomToken();
90330
90378
  const verifier = randomToken();
90331
90379
  pendingStates.set(state, { expires: now + LOGIN_STATE_TTL_MS, verifier });
90332
- 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");
90333
90381
  return `${origin}/auth/cli?port=${options.port()}&state=${state}&challenge=${challenge}`;
90334
90382
  };
90335
90383
  const cloudFetch = async (method, path24, body) => {
@@ -90413,7 +90461,7 @@ function createCloudRoutes(options) {
90413
90461
  } catch (err) {
90414
90462
  throw new CloudRefused(413, err.message);
90415
90463
  }
90416
- 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");
90417
90465
  const hashed = withCloudRuntime(ref.type, packed).map((file) => ({ ...file, hash: sha(file.data) }));
90418
90466
  const content = { title: inspected.title, payload: inspected.payload, files: hashed.map(({ path: path24, hash }) => ({ path: path24, hash })) };
90419
90467
  const fingerprint = sha(JSON.stringify({ title: inspected.title, payload: fingerprintPayload(inspected.payload), files: packed.map((file) => ({ path: file.path, hash: sha(file.data) })) }));
@@ -91022,7 +91070,7 @@ function renderThumbnail(artifact, value) {
91022
91070
  }
91023
91071
 
91024
91072
  // src/server/viewer-page.ts
91025
- var import_node_crypto9 = require("node:crypto");
91073
+ var import_node_crypto8 = require("node:crypto");
91026
91074
  var escapeHtml2 = (value) => value.replace(/[&<>"']/g, (ch) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" })[ch]);
91027
91075
  function viewerPage(template, page) {
91028
91076
  const locale = page.locale ?? "en";
@@ -91044,12 +91092,12 @@ function viewerPage(template, page) {
91044
91092
  }
91045
91093
  var INLINE_SCRIPT = /<script\b(?![^>]*\bsrc=)[^>]*>([\s\S]*?)<\/script>/gi;
91046
91094
  function allowInlineScripts(csp, html) {
91047
- 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")}'`);
91048
91096
  return hashes.length ? csp.replace(/script-src [^;]*/, (directive) => `${directive} ${hashes.join(" ")}`) : csp;
91049
91097
  }
91050
91098
 
91051
91099
  // src/server/auto-publish.ts
91052
- var import_node_crypto10 = __toESM(require("node:crypto"), 1);
91100
+ var import_node_crypto9 = __toESM(require("node:crypto"), 1);
91053
91101
  var import_node_fs21 = __toESM(require("node:fs"), 1);
91054
91102
  var IDLE_MS = 5 * 60 * 1e3;
91055
91103
  var MAX_WAIT_MS = 15 * 60 * 1e3;
@@ -91084,7 +91132,7 @@ function createAutoPublisher(options) {
91084
91132
  const failures = /* @__PURE__ */ new Map();
91085
91133
  const save = () => writeJsonAtomic(options.stateFile, { dirty: [...dirty], notice, paused });
91086
91134
  const raise = (kind, message, upgradeUrl) => {
91087
- 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 } : {} };
91088
91136
  };
91089
91137
  let idleTimer = null;
91090
91138
  let maxTimer = null;
@@ -91292,7 +91340,7 @@ var CLOSE_FLUSH_MS = 5e3;
91292
91340
  var DIRECT_RELAY_ROUTE = /^\/relay\/a\/([A-Za-z0-9_-]{1,64})$/;
91293
91341
  var SHELL_ROUTE = new RegExp(`^/(?:(${ARTIFACT_TYPES.join("|")})/([^/]+)/?)?$`);
91294
91342
  var API_ARTIFACT_ROUTE = /^\/api\/artifacts\/([^/]+)\/([^/]+)$/;
91295
- 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}/?$`);
91296
91344
  var API_PREVIEW_ROUTE = /^\/api\/preview\/([^/]+)\/([^/]+)$/;
91297
91345
  var API_THUMBNAIL_ROUTE = /^\/api\/thumbnail\/([^/]+)\/([^/]+)\.svg$/;
91298
91346
  var API_DOCUMENT_ROUTE = /^\/api\/document\/([^/]+)\/(state|update|comments)$/;
@@ -91793,7 +91841,7 @@ async function startArtifactsServer(options) {
91793
91841
  }
91794
91842
  const thumbnailMatch = API_THUMBNAIL_ROUTE.exec(pathname);
91795
91843
  if (thumbnailMatch) {
91796
- const requested = artifactKeyOf(`${thumbnailMatch[1]}/${thumbnailMatch[2]}`);
91844
+ const requested = artifactKeyOf(`${thumbnailMatch[1]}/${thumbnailMatch[2]}`, isArtifactLocator);
91797
91845
  let resolved = null;
91798
91846
  try {
91799
91847
  resolved = requested && resolveArtifactAddress(root, requested.type, requested.id);
@@ -91896,7 +91944,7 @@ async function startArtifactsServer(options) {
91896
91944
  return;
91897
91945
  }
91898
91946
  if (SHELL_ROUTE.test(pathname) || PREVIEW_ROUTE.test(pathname) || pathname === "/index.html") {
91899
- const requested = artifactKeyOf(pathname.replace(/^\/(?:preview\/)?/, "").replace(/\/$/, ""));
91947
+ const requested = artifactKeyOf(pathname.replace(/^\/(?:preview\/)?/, "").replace(/\/$/, ""), isArtifactLocator);
91900
91948
  const resolved = requested && resolveArtifactAddress(root, requested.type, requested.id);
91901
91949
  const ref = resolved ?? requested;
91902
91950
  const dir = resolved?.dir;
@@ -92326,7 +92374,7 @@ function openReady(payload) {
92326
92374
  }
92327
92375
 
92328
92376
  // src/server/registry.ts
92329
- var import_node_crypto11 = __toESM(require("node:crypto"), 1);
92377
+ var import_node_crypto10 = __toESM(require("node:crypto"), 1);
92330
92378
  var import_node_fs26 = __toESM(require("node:fs"), 1);
92331
92379
  var import_node_os = __toESM(require("node:os"), 1);
92332
92380
  var import_node_path22 = __toESM(require("node:path"), 1);
@@ -92335,7 +92383,7 @@ function registryDir(env = process.env, platform = process.platform, uid = proce
92335
92383
  if (platform === "win32") return import_node_path22.default.join(tmpdir, "ryugi", "servers");
92336
92384
  return `/tmp/ryugi-${uid}/servers`;
92337
92385
  }
92338
- 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`);
92339
92387
  function verifyDir(dir) {
92340
92388
  if (process.platform === "win32") return;
92341
92389
  for (const target of [import_node_path22.default.dirname(dir), dir]) {
@@ -92380,7 +92428,7 @@ function touchEntry(dir, entry) {
92380
92428
  }
92381
92429
 
92382
92430
  // package.json
92383
- var version = "1.43.0";
92431
+ var version = "1.44.0";
92384
92432
 
92385
92433
  // src/server/main.ts
92386
92434
  async function main() {