ryugi-artifacts 1.4.1 → 1.5.1

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 (168) hide show
  1. package/dist/server.cjs +221 -68
  2. package/dist/viewer/{DocumentPage-B8-SlHYe.css → DocumentPage-BzpgW0O1.css} +1 -1
  3. package/dist/viewer/{DocumentPage-CUMc7_Xs.js → DocumentPage-JjnvDcez.js} +160 -160
  4. package/dist/viewer/{abnfDiagram-VCTEODGH-6sqmJ1ax.js → abnfDiagram-VCTEODGH-ALENPaIm.js} +1 -1
  5. package/dist/viewer/{ar-SA-G6X2FPQ2-B1vyJLm-.js → ar-SA-G6X2FPQ2-BqpIy199.js} +1 -1
  6. package/dist/viewer/{architecture-7GRP2DOG-KR6uqV6s.js → architecture-7GRP2DOG-BklKKRgi.js} +1 -1
  7. package/dist/viewer/{architectureDiagram-5GKGNRK7-C7b-KLYZ.js → architectureDiagram-5GKGNRK7-wRTR7oM6.js} +1 -1
  8. package/dist/viewer/{az-AZ-76LH7QW2-7A-x2jlX.js → az-AZ-76LH7QW2-KED3KKvY.js} +1 -1
  9. package/dist/viewer/{bg-BG-XCXSNQG7-DhUmN2uV.js → bg-BG-XCXSNQG7-BsLptJx2.js} +1 -1
  10. package/dist/viewer/{blockDiagram-I7D4REHJ-vzR0MLtr.js → blockDiagram-I7D4REHJ-4bvqmBjz.js} +1 -1
  11. package/dist/viewer/{bn-BD-2XOGV67Q-shwCf3Bm.js → bn-BD-2XOGV67Q-DUqiZ34C.js} +1 -1
  12. package/dist/viewer/{bundle-full-zufxvbLq.js → bundle-full-COZdUq0J.js} +1 -1
  13. package/dist/viewer/{c4Diagram-7LVT6UL2-58pCA6H1.js → c4Diagram-7LVT6UL2-Hb1Lz3Rr.js} +1 -1
  14. package/dist/viewer/{ca-ES-6MX7JW3Y-CFF7L0QN.js → ca-ES-6MX7JW3Y-BW4cn0HL.js} +1 -1
  15. package/dist/viewer/channel-9zFn1XUZ.js +1 -0
  16. package/dist/viewer/{chunk-4HAMMTFA-CRwFsbSE.js → chunk-4HAMMTFA-BMAI-jw2.js} +1 -1
  17. package/dist/viewer/{chunk-75Z2AOVW-BO91GF6X.js → chunk-75Z2AOVW-xTyaS-ou.js} +1 -1
  18. package/dist/viewer/{chunk-DU6HZSFF-B-WqfBhT.js → chunk-DU6HZSFF-BnNI-hjm.js} +1 -1
  19. package/dist/viewer/{chunk-EIO257PC-B5jdzPER.js → chunk-EIO257PC-2nmqi2pV.js} +1 -1
  20. package/dist/viewer/{chunk-F27PBJKO-Cmm2r1I6.js → chunk-F27PBJKO-PNrLZNah.js} +1 -1
  21. package/dist/viewer/{chunk-GMAD6QVW-JoFSIaD3.js → chunk-GMAD6QVW-BevEqp1S.js} +1 -1
  22. package/dist/viewer/{chunk-GVQU2GXP-CFOzMg3Y.js → chunk-GVQU2GXP-BkCg7fPb.js} +1 -1
  23. package/dist/viewer/{chunk-IMKFNOWR-DV7sFi2S.js → chunk-IMKFNOWR-DDHtrnFL.js} +1 -1
  24. package/dist/viewer/{chunk-L3NEJ4N5-BRIO8Vch.js → chunk-L3NEJ4N5-BT7kpcKi.js} +1 -1
  25. package/dist/viewer/{chunk-OSK3NFVY-BFuxpkWW.js → chunk-OSK3NFVY-Db_d8buV.js} +1 -1
  26. package/dist/viewer/{chunk-P2QGCYS3-Cwk7tBPM.js → chunk-P2QGCYS3-BM06KU7a.js} +1 -1
  27. package/dist/viewer/{chunk-POPQ4Y6H-DADRBc8I.js → chunk-POPQ4Y6H-ap38DGDn.js} +1 -1
  28. package/dist/viewer/{chunk-PWAF6VOD-jQqRXQjQ.js → chunk-PWAF6VOD-BjX_NdtA.js} +1 -1
  29. package/dist/viewer/{chunk-SHT3W25Y-CkrosGkz.js → chunk-SHT3W25Y--pQiRj1B.js} +1 -1
  30. package/dist/viewer/{chunk-SVP7TREG-DM5F3zf9.js → chunk-SVP7TREG-CGfKxV-H.js} +1 -1
  31. package/dist/viewer/{chunk-TICWLB2K-C7IgvsFS.js → chunk-TICWLB2K-BBgrKEZe.js} +1 -1
  32. package/dist/viewer/classDiagram-ZZMXUADV-bjp9x1P4.js +1 -0
  33. package/dist/viewer/classDiagram-v2-VYDZK3BY-bjp9x1P4.js +1 -0
  34. package/dist/viewer/{cs-CZ-2BRQDIVT-Cpg2fi5O.js → cs-CZ-2BRQDIVT-CYaTPvMH.js} +1 -1
  35. package/dist/viewer/{cynefin-OW5HDTMX-FJ-E_1vc.js → cynefin-OW5HDTMX-DkcNTZzB.js} +1 -1
  36. package/dist/viewer/{cynefinDiagram-5FMLGOSQ-DCWaj-ji.js → cynefinDiagram-5FMLGOSQ-DQh6kHEr.js} +1 -1
  37. package/dist/viewer/{da-DK-5WZEPLOC-Dkrwy7UF.js → da-DK-5WZEPLOC-B3YdhVo8.js} +1 -1
  38. package/dist/viewer/{dagre-GXQ25YYZ-CkvqswXB.js → dagre-GXQ25YYZ-CL6DMrx1.js} +1 -1
  39. package/dist/viewer/{de-DE-XR44H4JA-BsFATsQ7.js → de-DE-XR44H4JA-B3W-WHJQ.js} +1 -1
  40. package/dist/viewer/{diagram-S7CK7UJ4-BLgTnal4.js → diagram-S7CK7UJ4-9MKqKfs3.js} +1 -1
  41. package/dist/viewer/{diagram-UQ7AKVKN-BOOuIOAi.js → diagram-UQ7AKVKN-u-aQrQze.js} +1 -1
  42. package/dist/viewer/{diagram-VSXAHHWV-5cSa3og7.js → diagram-VSXAHHWV-CQKqNVdK.js} +1 -1
  43. package/dist/viewer/{diagram-VX7I27RA-CBejVfwX.js → diagram-VX7I27RA-dunNPndI.js} +1 -1
  44. package/dist/viewer/{diagram-Z3DM3KII-Dsfn4cQT.js → diagram-Z3DM3KII-3SEnjQkU.js} +1 -1
  45. package/dist/viewer/{dist-BrnE25fw.js → dist-0sFgpV5f.js} +1 -1
  46. package/dist/viewer/{dist-C8j96inZ.js → dist-B09pmgFG.js} +1 -1
  47. package/dist/viewer/{dist-DbN_am5s.js → dist-B93pzZkt.js} +1 -1
  48. package/dist/viewer/{dist-B8j_djl3.js → dist-BEg7eEWG.js} +1 -1
  49. package/dist/viewer/{dist-Co80CdmK.js → dist-BWEGY_wC.js} +1 -1
  50. package/dist/viewer/{dist-bzUY2uMM.js → dist-BnM2Qzml.js} +1 -1
  51. package/dist/viewer/{dist-DcltHyjJ.js → dist-BvgWAsJz.js} +1 -1
  52. package/dist/viewer/{dist-DOYu8Ulf.js → dist-Bwu1pCA4.js} +1 -1
  53. package/dist/viewer/{dist-yFvAy8Ar.js → dist-BxQrpqbZ.js} +1 -1
  54. package/dist/viewer/{dist-D0Cs-QWY.js → dist-CLufBeVD.js} +1 -1
  55. package/dist/viewer/{dist-jdF19sCi.js → dist-CPtaY_AD.js} +1 -1
  56. package/dist/viewer/{dist-BW3kaAUU.js → dist-CXiKVdKw.js} +1 -1
  57. package/dist/viewer/{dist-Bmu2jBZ8.js → dist-Ce_N-cBo.js} +1 -1
  58. package/dist/viewer/{dist-CD80Ls-w.js → dist-D2wzN7xg.js} +1 -1
  59. package/dist/viewer/{dist-DT68yNv9.js → dist-D66djvQO.js} +1 -1
  60. package/dist/viewer/{dist-rmtkIkJZ.js → dist-DI0O51Gw.js} +1 -1
  61. package/dist/viewer/{dist-DV6DLjjc.js → dist-DOaTOSim.js} +1 -1
  62. package/dist/viewer/{dist-CawMU58Z.js → dist-DOqVRpNe.js} +4 -4
  63. package/dist/viewer/{dist-CEi-EHZz.js → dist-DTBtDPNZ.js} +1 -1
  64. package/dist/viewer/{dist-DlOGd3i_.js → dist-DYMSs6bf.js} +1 -1
  65. package/dist/viewer/{dist-BeeoOAkJ.js → dist-DgDn6JyG.js} +1 -1
  66. package/dist/viewer/{dist-BmGBmrLO.js → dist-DnAlRZCn.js} +1 -1
  67. package/dist/viewer/{dist-DOfoiRwk.js → dist-Dnl_oB43.js} +1 -1
  68. package/dist/viewer/{dist-DjWWbDD5.js → dist-kN2wYtB_.js} +1 -1
  69. package/dist/viewer/{ebnfDiagram-PWID7BFC-BKgqXbrD.js → ebnfDiagram-PWID7BFC-CsCGgiNG.js} +1 -1
  70. package/dist/viewer/{el-GR-BZB4AONW-3fIJfxnW.js → el-GR-BZB4AONW-C2w6tdzn.js} +1 -1
  71. package/dist/viewer/{en-B4ZKOASM-d6lCBBpL.js → en-B4ZKOASM-CLiU0Dpm.js} +1 -1
  72. package/dist/viewer/{erDiagram-RLTQ6QDP-DHNRCaQI.js → erDiagram-RLTQ6QDP-a3hHN5GN.js} +1 -1
  73. package/dist/viewer/{es-ES-U4NZUMDT-CRzZW3JH.js → es-ES-U4NZUMDT-CXqYmZIB.js} +1 -1
  74. package/dist/viewer/{eu-ES-A7QVB2H4-DfzgRZX0.js → eu-ES-A7QVB2H4-CIWpiUPb.js} +1 -1
  75. package/dist/viewer/{eventmodeling-NTZA5JFV-C187vXDx.js → eventmodeling-NTZA5JFV-BxSIs5tc.js} +1 -1
  76. package/dist/viewer/{fa-IR-HGAKTJCU-iFq4OcLj.js → fa-IR-HGAKTJCU-Bqb_Yb2V.js} +1 -1
  77. package/dist/viewer/{fi-FI-Z5N7JZ37-CVMpTDOY.js → fi-FI-Z5N7JZ37-JkXZ42WO.js} +1 -1
  78. package/dist/viewer/flowDiagram-HODETNUW-CiLdzc3K.js +1 -0
  79. package/dist/viewer/{fr-FR-RHASNOE6-lZ6pWX75.js → fr-FR-RHASNOE6-DaLHcJRJ.js} +1 -1
  80. package/dist/viewer/{ganttDiagram-EL5Y4UJY-BntFzPhy.js → ganttDiagram-EL5Y4UJY-C641PiRf.js} +1 -1
  81. package/dist/viewer/{gitGraph-4MIJSDKK-D7DU5wFT.js → gitGraph-4MIJSDKK-z7Gw08nk.js} +1 -1
  82. package/dist/viewer/{gitGraphDiagram-WWUBYQGX-DL7EIS9i.js → gitGraphDiagram-WWUBYQGX-WHGfcYN_.js} +1 -1
  83. package/dist/viewer/{gl-ES-HMX3MZ6V-CYVyT8xT.js → gl-ES-HMX3MZ6V-DsgaFJPN.js} +1 -1
  84. package/dist/viewer/{he-IL-6SHJWFNN-Bao7Zmwl.js → he-IL-6SHJWFNN-CLl0fzD_.js} +1 -1
  85. package/dist/viewer/{hi-IN-IWLTKZ5I-hKM14O0N.js → hi-IN-IWLTKZ5I-Cyau2nZL.js} +1 -1
  86. package/dist/viewer/{hu-HU-A5ZG7DT2-CUb5NDCe.js → hu-HU-A5ZG7DT2-DUIXfgeJ.js} +1 -1
  87. package/dist/viewer/{id-ID-SAP4L64H-CQuTxtOp.js → id-ID-SAP4L64H-DRkceP_-.js} +1 -1
  88. package/dist/viewer/{image-GAAHSSAO-BgjnXzFc.js → image-GAAHSSAO-pkjKef39.js} +1 -1
  89. package/dist/viewer/index.js +2 -2
  90. package/dist/viewer/{info-A6RAGUB7-Dcg7I9DT.js → info-A6RAGUB7-Cf5to2ar.js} +1 -1
  91. package/dist/viewer/{infoDiagram-27XIBGKW-CrRdoMz5.js → infoDiagram-27XIBGKW-Cy7El3X0.js} +1 -1
  92. package/dist/viewer/{ishikawaDiagram-5VMMS53U-DIOQi7Cg.js → ishikawaDiagram-5VMMS53U-BcHMTncZ.js} +1 -1
  93. package/dist/viewer/{it-IT-JPQ66NNP-DyTa4yNl.js → it-IT-JPQ66NNP-BBCGCx0t.js} +1 -1
  94. package/dist/viewer/{ja-JP-DBVTYXUO-yQ9cDwPd.js → ja-JP-DBVTYXUO-DZe4vOmA.js} +1 -1
  95. package/dist/viewer/{journeyDiagram-3NMN7TZE-BiI8dwZq.js → journeyDiagram-3NMN7TZE-BuGK0rm9.js} +1 -1
  96. package/dist/viewer/{kaa-6HZHGXH3-wsDFuKqq.js → kaa-6HZHGXH3-Dtz0pS5v.js} +1 -1
  97. package/dist/viewer/{kab-KAB-ZGHBKWFO-DrWLwoIp.js → kab-KAB-ZGHBKWFO-BSNbUD9c.js} +1 -1
  98. package/dist/viewer/{kanban-definition-UXKFOSKX-w8sX7hiq.js → kanban-definition-UXKFOSKX-DwmNTyLJ.js} +1 -1
  99. package/dist/viewer/{kk-KZ-P5N5QNE5-B1pGaoUJ.js → kk-KZ-P5N5QNE5-D7MtLbI2.js} +1 -1
  100. package/dist/viewer/{km-KH-HSX4SM5Z-peuqig33.js → km-KH-HSX4SM5Z-DXQ4K8fx.js} +1 -1
  101. package/dist/viewer/{ko-KR-MTYHY66A-H2BvroMZ.js → ko-KR-MTYHY66A-BDHsDOA8.js} +1 -1
  102. package/dist/viewer/{ku-TR-6OUDTVRD-D8yGB2lq.js → ku-TR-6OUDTVRD-BrpLQus7.js} +1 -1
  103. package/dist/viewer/{lt-LT-XHIRWOB4-C7hY3ayX.js → lt-LT-XHIRWOB4-BUgCRdEm.js} +1 -1
  104. package/dist/viewer/{lv-LV-5QDEKY6T-CdQY_o2B.js → lv-LV-5QDEKY6T-BYFPYYr3.js} +1 -1
  105. package/dist/viewer/{mermaid-parser.core-CiQjjSll.js → mermaid-parser.core-BdSSxVU7.js} +3 -3
  106. package/dist/viewer/{mindmap-definition-YA3MSWOX-wcZRhXKP.js → mindmap-definition-YA3MSWOX-JYi9dp9r.js} +1 -1
  107. package/dist/viewer/{mr-IN-CRQNXWMA-oxX7F2ME.js → mr-IN-CRQNXWMA-C2ad1NuX.js} +1 -1
  108. package/dist/viewer/{my-MM-5M5IBNSE-CzPg5_UV.js → my-MM-5M5IBNSE-CY9g7lEq.js} +1 -1
  109. package/dist/viewer/{nb-NO-T6EIAALU-C3-LoToi.js → nb-NO-T6EIAALU-BJ-seIIs.js} +1 -1
  110. package/dist/viewer/{nl-NL-IS3SIHDZ-BBv3k8Gy.js → nl-NL-IS3SIHDZ-CVb1yWN3.js} +1 -1
  111. package/dist/viewer/{nn-NO-6E72VCQL-D1beVxxr.js → nn-NO-6E72VCQL-DObBv3UU.js} +1 -1
  112. package/dist/viewer/{oc-FR-POXYY2M6-BmOG0UP2.js → oc-FR-POXYY2M6-BnUFzBTh.js} +1 -1
  113. package/dist/viewer/{pa-IN-N4M65BXN-BjoeRd7k.js → pa-IN-N4M65BXN-CdYXl2tE.js} +1 -1
  114. package/dist/viewer/{packet-AYTQ26CC-Dq0PzH6h.js → packet-AYTQ26CC-usauJtTa.js} +1 -1
  115. package/dist/viewer/{pegDiagram-XKGWAZYB-XRFpYjCF.js → pegDiagram-XKGWAZYB-DrMRe99E.js} +1 -1
  116. package/dist/viewer/percentages-BXMCSKIN-DLfkZyPa.js +1 -0
  117. package/dist/viewer/{pie-WAS4IAKB-BIk7HN9V.js → pie-WAS4IAKB-DknaY_2m.js} +1 -1
  118. package/dist/viewer/{pieDiagram-E7YTZNPT-C3cG1M0U.js → pieDiagram-E7YTZNPT-ChFl-xRc.js} +1 -1
  119. package/dist/viewer/{pl-PL-T2D74RX3-Cm1gxJBm.js → pl-PL-T2D74RX3-DziHWuu2.js} +1 -1
  120. package/dist/viewer/{prod-DEzUWFeR.js → prod-BHfZzBWL.js} +11 -11
  121. package/dist/viewer/{pt-BR-5N22H2LF-aoLcWXkM.js → pt-BR-5N22H2LF-2gBhLx5O.js} +1 -1
  122. package/dist/viewer/{pt-PT-UZXXM6DQ-D-uSzCOy.js → pt-PT-UZXXM6DQ-DMiSUsE5.js} +1 -1
  123. package/dist/viewer/{quadrantDiagram-AXDQQJYC-DacPT28Y.js → quadrantDiagram-AXDQQJYC-B127zoW9.js} +1 -1
  124. package/dist/viewer/{radar-RG4KPBEZ-aZmHtbIp.js → radar-RG4KPBEZ-Dbo2ldml.js} +1 -1
  125. package/dist/viewer/{railroad-74A4TZTK-C2OJdJbX.js → railroad-74A4TZTK-C5ptSrdP.js} +1 -1
  126. package/dist/viewer/{railroad-abnf-HS5TGJTU-DgqLPo8Q.js → railroad-abnf-HS5TGJTU-B5-w1gmO.js} +1 -1
  127. package/dist/viewer/{railroad-ebnf-LZEXJU2U-Ci8zsmh_.js → railroad-ebnf-LZEXJU2U-DgzWo47b.js} +1 -1
  128. package/dist/viewer/{railroad-peg-WCYAUIDC-CK2xbTV3.js → railroad-peg-WCYAUIDC-Rohr0jWN.js} +1 -1
  129. package/dist/viewer/{railroadDiagram-O6MQD6OU-CJPW5CjY.js → railroadDiagram-O6MQD6OU-DYIbRJ8X.js} +1 -1
  130. package/dist/viewer/{requirementDiagram-BXWQKSXE-C3UBy5Lz.js → requirementDiagram-BXWQKSXE-BZR8Ecw3.js} +1 -1
  131. package/dist/viewer/{ro-RO-JPDTUUEW-CmxHLZQI.js → ro-RO-JPDTUUEW-Bya4ecAb.js} +1 -1
  132. package/dist/viewer/{ru-RU-B4JR7IUQ-Cafw4aZs.js → ru-RU-B4JR7IUQ-CGvg2tte.js} +1 -1
  133. package/dist/viewer/{sankeyDiagram-P5KCCOFB-QWvobIj_.js → sankeyDiagram-P5KCCOFB-wkQgztcK.js} +1 -1
  134. package/dist/viewer/{sequenceDiagram-WJ2MYXX4-D68qb_4_.js → sequenceDiagram-WJ2MYXX4-sAUafBFB.js} +1 -1
  135. package/dist/viewer/{si-LK-N5RQ5JYF-DQfjIpcc.js → si-LK-N5RQ5JYF-BqSDvPIB.js} +1 -1
  136. package/dist/viewer/{sk-SK-C5VTKIMK-Bq4SYKDN.js → sk-SK-C5VTKIMK-DtZ5ETi8.js} +1 -1
  137. package/dist/viewer/{sl-SI-NN7IZMDC-Bh-RezGM.js → sl-SI-NN7IZMDC-DtTmiI5p.js} +1 -1
  138. package/dist/viewer/{stateDiagram-D77RDMKH-BT2Jdlqs.js → stateDiagram-D77RDMKH-oQXZtflc.js} +1 -1
  139. package/dist/viewer/stateDiagram-v2-MP3YSRHH-BCCl6Nmx.js +1 -0
  140. package/dist/viewer/subset-shared.chunk-pPywhFmr.js +1 -0
  141. package/dist/viewer/{subset-worker.chunk-kUSnMaQ3.js → subset-worker.chunk-DbCZA4fn.js} +1 -1
  142. package/dist/viewer/{sv-SE-XGPEYMSR-BdJ34kbq.js → sv-SE-XGPEYMSR-6YChrP4w.js} +1 -1
  143. package/dist/viewer/{swimlanes-42K2YHIH-DbqvhUWz.js → swimlanes-42K2YHIH-CdQ0cniH.js} +1 -1
  144. package/dist/viewer/swimlanesDiagram-VR7AAH4N-Bm7U-YMT.js +8 -0
  145. package/dist/viewer/{ta-IN-2NMHFXQM-BrlxbbKL.js → ta-IN-2NMHFXQM-Dq4djze9.js} +1 -1
  146. package/dist/viewer/{th-TH-HPSO5L25-BvwUkuqj.js → th-TH-HPSO5L25-B_ryFE2n.js} +1 -1
  147. package/dist/viewer/{timeline-definition-24CTP7MA-CfRv8Y4n.js → timeline-definition-24CTP7MA-BDi-Y9HI.js} +1 -1
  148. package/dist/viewer/{tr-TR-DEFEU3FU-CAAj2nYr.js → tr-TR-DEFEU3FU-DBL5s7tV.js} +1 -1
  149. package/dist/viewer/{treeView-Q6P3EWNA-BkXTosZV.js → treeView-Q6P3EWNA-CZswEJX-.js} +1 -1
  150. package/dist/viewer/{treemap-WGGIJYW6-B_HV3jwD.js → treemap-WGGIJYW6-Bxu2ANKb.js} +1 -1
  151. package/dist/viewer/{uk-UA-QMV73CPH-BMbpyf9T.js → uk-UA-QMV73CPH-DrkQWKvT.js} +1 -1
  152. package/dist/viewer/{vennDiagram-4TSXK5OY-BUdpujzY.js → vennDiagram-4TSXK5OY-etdvF9lq.js} +1 -1
  153. package/dist/viewer/{vi-VN-M7AON7JQ-CxPDfBGZ.js → vi-VN-M7AON7JQ-DrHmTPDG.js} +1 -1
  154. package/dist/viewer/{wardley-WFR3VGLG-CRwhUR3W.js → wardley-WFR3VGLG-B5ClAPZx.js} +1 -1
  155. package/dist/viewer/{wardleyDiagram-VM6X3IG4-CjTt7HCf.js → wardleyDiagram-VM6X3IG4-MJM6p8kg.js} +1 -1
  156. package/dist/viewer/{xychartDiagram-S5SC5T6Z-K6R8M-rp.js → xychartDiagram-S5SC5T6Z-DydY5SJi.js} +1 -1
  157. package/dist/viewer/{zh-CN-LNUGB5OW-Ns7aJuNy.js → zh-CN-LNUGB5OW-Dl7YFr1_.js} +1 -1
  158. package/dist/viewer/{zh-HK-E62DVLB3-BXcuB03B.js → zh-HK-E62DVLB3-DbY1HnW7.js} +1 -1
  159. package/dist/viewer/{zh-TW-RAJ6MFWO-DM0fBdpl.js → zh-TW-RAJ6MFWO-D3m1Jlzg.js} +1 -1
  160. package/package.json +14 -14
  161. package/dist/viewer/channel-CsIk49p3.js +0 -1
  162. package/dist/viewer/classDiagram-ZZMXUADV-DoyHBIFT.js +0 -1
  163. package/dist/viewer/classDiagram-v2-VYDZK3BY-DoyHBIFT.js +0 -1
  164. package/dist/viewer/flowDiagram-HODETNUW-CLU6w8F4.js +0 -1
  165. package/dist/viewer/percentages-BXMCSKIN-Cox4vFeW.js +0 -1
  166. package/dist/viewer/stateDiagram-v2-MP3YSRHH-D3NDVC0z.js +0 -1
  167. package/dist/viewer/subset-shared.chunk-sjf42WzB.js +0 -1
  168. package/dist/viewer/swimlanesDiagram-VR7AAH4N-BnVB12ID.js +0 -8
package/dist/server.cjs CHANGED
@@ -1563,13 +1563,13 @@ var require_canvas = __commonJS({
1563
1563
 
1564
1564
  // src/server/main.ts
1565
1565
  var import_node_child_process = require("node:child_process");
1566
- var import_node_fs12 = __toESM(require("node:fs"), 1);
1567
- var import_node_path11 = __toESM(require("node:path"), 1);
1566
+ var import_node_fs13 = __toESM(require("node:fs"), 1);
1567
+ var import_node_path12 = __toESM(require("node:path"), 1);
1568
1568
 
1569
1569
  // src/server/app.ts
1570
- var import_node_fs10 = __toESM(require("node:fs"), 1);
1570
+ var import_node_fs11 = __toESM(require("node:fs"), 1);
1571
1571
  var import_node_http = __toESM(require("node:http"), 1);
1572
- var import_node_path10 = __toESM(require("node:path"), 1);
1572
+ var import_node_path11 = __toESM(require("node:path"), 1);
1573
1573
 
1574
1574
  // src/shared/types.ts
1575
1575
  var ARTIFACT_TYPES = ["artboard", "document", "html"];
@@ -3113,19 +3113,19 @@ var ElementDOMSlot = class _ElementDOMSlot extends DOMSlot {
3113
3113
  }
3114
3114
  };
3115
3115
  function indexPath(root, child) {
3116
- const path12 = [];
3116
+ const path13 = [];
3117
3117
  let node = child;
3118
3118
  for (; node !== root && node !== null; node = node.parentNode) {
3119
3119
  let i6 = 0;
3120
3120
  for (let sibling = node.previousSibling; sibling !== null; sibling = sibling.previousSibling) {
3121
3121
  i6++;
3122
3122
  }
3123
- path12.push(i6);
3123
+ path13.push(i6);
3124
3124
  }
3125
3125
  if (!(node === root)) {
3126
3126
  formatDevErrorMessage(`indexPath: root is not a parent of child`);
3127
3127
  }
3128
- return path12.reverse();
3128
+ return path13.reverse();
3129
3129
  }
3130
3130
  // @__NO_SIDE_EFFECTS__
3131
3131
  function readLexicalVersion() {
@@ -17905,9 +17905,9 @@ function getActiveElementDeep(root) {
17905
17905
  function getComposedEventTarget(event) {
17906
17906
  const target = event.target;
17907
17907
  if (target !== null && isHTMLElement(target) && target.shadowRoot !== null && typeof event.composedPath === "function") {
17908
- const path12 = event.composedPath();
17909
- if (path12.length > 0) {
17910
- return path12[0];
17908
+ const path13 = event.composedPath();
17909
+ if (path13.length > 0) {
17910
+ return path13[0];
17911
17911
  }
17912
17912
  }
17913
17913
  return target;
@@ -28003,10 +28003,10 @@ function _loadWasmModule(sync, filepath, src, imports2) {
28003
28003
  var buf = null;
28004
28004
  var isNode2 = typeof process !== "undefined" && process.versions != null && process.versions.node != null;
28005
28005
  if (filepath && isNode2) {
28006
- var fs15 = null;
28007
- var path12 = null;
28006
+ var fs16 = null;
28007
+ var path13 = null;
28008
28008
  return new Promise((resolve, reject) => {
28009
- fs15.readFile(path12.resolve(__dirname, filepath), (error, buffer) => {
28009
+ fs16.readFile(path13.resolve(__dirname, filepath), (error, buffer) => {
28010
28010
  if (error != null) {
28011
28011
  reject(error);
28012
28012
  } else {
@@ -29309,10 +29309,10 @@ var LoroDoc = class _LoroDoc {
29309
29309
  * @param {string} path
29310
29310
  * @returns {Value | Container | undefined}
29311
29311
  */
29312
- getByPath(path12) {
29312
+ getByPath(path13) {
29313
29313
  try {
29314
29314
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
29315
- const ptr0 = passStringToWasm0(path12, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
29315
+ const ptr0 = passStringToWasm0(path13, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
29316
29316
  const len0 = WASM_VECTOR_LEN;
29317
29317
  wasm.lorodoc_getByPath(retptr, this.__wbg_ptr, ptr0, len0);
29318
29318
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
@@ -36491,7 +36491,7 @@ decorateMethods(EphemeralStoreWasm.prototype, [
36491
36491
  ]);
36492
36492
  decorateMethods(UndoManager.prototype, ["undo", "redo"]);
36493
36493
 
36494
- // node_modules/.pnpm/@haklex+rich-collab-loro@0.50.0_lexical@0.52.0_typescript@5.9.3__loro-crdt@1.16.4/node_modules/@haklex/rich-collab-loro/dist/index.mjs
36494
+ // node_modules/.pnpm/@haklex+rich-collab-loro@0.50.1_lexical@0.52.0_typescript@5.9.3__loro-crdt@1.16.4/node_modules/@haklex/rich-collab-loro/dist/index.mjs
36495
36495
  function transformOffset(previous, next, offset) {
36496
36496
  const limit = Math.min(previous.length, next.length);
36497
36497
  let prefix = 0;
@@ -67902,7 +67902,7 @@ var UNORDERED_LIST2 = mod28.UNORDERED_LIST;
67902
67902
  var isTableRowDivider2 = mod28.isTableRowDivider;
67903
67903
  var registerMarkdownShortcuts2 = mod28.registerMarkdownShortcuts;
67904
67904
 
67905
- // node_modules/.pnpm/@haklex+rich-headless@0.50.0_lexical@0.52.0_typescript@5.9.3__typescript@5.9.3/node_modules/@haklex/rich-headless/dist/transformers.mjs
67905
+ // node_modules/.pnpm/@haklex+rich-headless@0.50.1_lexical@0.52.0_typescript@5.9.3__typescript@5.9.3/node_modules/@haklex/rich-headless/dist/transformers.mjs
67906
67906
  var NEVER = /a^/;
67907
67907
  var NOOP = () => {
67908
67908
  };
@@ -70559,7 +70559,7 @@ var signal2 = mod43.signal;
70559
70559
  var untracked2 = mod43.untracked;
70560
70560
  var watchedSignal3 = mod43.watchedSignal;
70561
70561
 
70562
- // node_modules/.pnpm/@haklex+rich-headless@0.50.0_lexical@0.52.0_typescript@5.9.3__typescript@5.9.3/node_modules/@haklex/rich-headless/dist/index.mjs
70562
+ // node_modules/.pnpm/@haklex+rich-headless@0.50.1_lexical@0.52.0_typescript@5.9.3__typescript@5.9.3/node_modules/@haklex/rich-headless/dist/index.mjs
70563
70563
  var builtinNodes = [
70564
70564
  HeadingNode2,
70565
70565
  QuoteNode2,
@@ -71352,7 +71352,7 @@ function customAlphabet(alphabet, defaultSize = 21) {
71352
71352
  }
71353
71353
  var nanoid2 = customAlphabet(urlAlphabet2);
71354
71354
 
71355
- // node_modules/.pnpm/@haklex+rich-litexml@0.50.0_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/src-COIhAhyB.js
71355
+ // node_modules/.pnpm/@haklex+rich-litexml@0.50.1_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/src-COIhAhyB.js
71356
71356
  var impl = null;
71357
71357
  function registerParseHTML(fn5) {
71358
71358
  impl = fn5;
@@ -83456,9 +83456,12 @@ function Document4() {
83456
83456
  }
83457
83457
  setPrototypeOf(Document4, Document2).prototype = Document2.prototype;
83458
83458
 
83459
- // node_modules/.pnpm/@haklex+rich-litexml@0.50.0_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/node.mjs
83459
+ // node_modules/.pnpm/@haklex+rich-litexml@0.50.1_typescript@5.9.3/node_modules/@haklex/rich-litexml/dist/node.mjs
83460
83460
  registerParseHTML((html) => parseHTML2(html).document);
83461
83461
 
83462
+ // src/shared/dynamic.ts
83463
+ var DYNAMIC_URL = /^assets\/[\w-][\w.-]*\.html$/;
83464
+
83462
83465
  // src/server/balance.ts
83463
83466
  var VOID_TAGS = /* @__PURE__ */ new Set(["br", "hr", "img"]);
83464
83467
  var TAG = /<(\/?)([a-z][\w-]*)\b[^>]*?(\/?)>/gi;
@@ -83520,9 +83523,13 @@ var BLOCK_TAGS2 = [
83520
83523
  "excalidraw",
83521
83524
  "chart",
83522
83525
  "math",
83523
- "alert"
83526
+ "alert",
83527
+ "details",
83528
+ "footnote-section",
83529
+ "def",
83530
+ "dynamic"
83524
83531
  ];
83525
- var INLINE_TAGS2 = ["b", "strong", "i", "em", "u", "s", "del", "strike", "code", "sub", "sup", "mark", "a", "br"];
83532
+ var INLINE_TAGS2 = ["b", "strong", "i", "em", "u", "s", "del", "strike", "code", "sub", "sup", "mark", "a", "br", "footnote"];
83526
83533
  var DOCUMENT_TAGS = /* @__PURE__ */ new Set([...BLOCK_TAGS2, ...INLINE_TAGS2]);
83527
83534
  var LITEXML_ONLY_TAGS = /* @__PURE__ */ new Set([
83528
83535
  "agent-diff",
@@ -83531,11 +83538,7 @@ var LITEXML_ONLY_TAGS = /* @__PURE__ */ new Set([
83531
83538
  "chat",
83532
83539
  "code-snippet",
83533
83540
  "comment",
83534
- "details",
83535
- "dynamic",
83536
83541
  "embed",
83537
- "footnote",
83538
- "footnote-section",
83539
83542
  "gallery",
83540
83543
  "grid",
83541
83544
  "link-card",
@@ -83550,6 +83553,11 @@ var LITEXML_ONLY_TAGS = /* @__PURE__ */ new Set([
83550
83553
  var registry = createDefaultRegistry();
83551
83554
  var DocumentRejected = class extends Error {
83552
83555
  };
83556
+ var URL_ATTR = /\surl\s*=\s*(?:"([^"]*)"|'([^']*)')/i;
83557
+ var DYNAMIC_BODY = /<dynamic\b[^>]*?(?<!\/)>([\s\S]*?)<\/dynamic>/gi;
83558
+ var FOOTNOTE_SECTION = /<footnote-section\b[\s\S]*?<\/footnote-section>/gi;
83559
+ var DEF_TAG = /<def[\s>/]/i;
83560
+ var CDATA_BODY = /^\s*<!\[CDATA\[([\s\S]*)\]\]>\s*$/;
83553
83561
  function unsupportedTag(xml) {
83554
83562
  for (const match of stripOpaque(xml).matchAll(TAG)) {
83555
83563
  const name = match[2].toLowerCase();
@@ -83559,15 +83567,44 @@ function unsupportedTag(xml) {
83559
83567
  }
83560
83568
  return null;
83561
83569
  }
83570
+ function strayDef(xml) {
83571
+ return DEF_TAG.test(stripOpaque(xml).replace(FOOTNOTE_SECTION, "")) ? "<def> belongs inside <footnote-section>" : null;
83572
+ }
83573
+ function badDynamicProps(xml) {
83574
+ for (const match of xml.matchAll(DYNAMIC_BODY)) {
83575
+ const body = match[1];
83576
+ const raw = (CDATA_BODY.exec(body)?.[1] ?? body).trim();
83577
+ if (!raw) continue;
83578
+ try {
83579
+ const props = JSON.parse(raw);
83580
+ if (props && typeof props === "object" && !Array.isArray(props)) continue;
83581
+ } catch {
83582
+ }
83583
+ return "<dynamic> props must be a JSON object";
83584
+ }
83585
+ return null;
83586
+ }
83587
+ function badDynamicUrl(nodes) {
83588
+ for (const node of nodes) {
83589
+ if (node.type === "dynamic" && !DYNAMIC_URL.test(node.url ?? "")) return "<dynamic> url must be assets/<name>.html";
83590
+ const nested = badDynamicUrl(node.children ?? []);
83591
+ if (nested) return nested;
83592
+ }
83593
+ return null;
83594
+ }
83562
83595
  function parseDocument2(xml) {
83563
83596
  const wrapped = /^\s*<doc[\s>]/.test(xml) ? xml : `<doc>${xml}</doc>`;
83564
- const problem = unbalancedTag(wrapped) ?? unsupportedTag(wrapped);
83597
+ const problem = unbalancedTag(wrapped) ?? unsupportedTag(wrapped) ?? strayDef(wrapped) ?? badDynamicProps(wrapped);
83565
83598
  if (problem) throw new DocumentRejected(problem);
83599
+ let state;
83566
83600
  try {
83567
- return deserializeFromXml(wrapped, registry);
83601
+ state = deserializeFromXml(wrapped, registry);
83568
83602
  } catch (err) {
83569
83603
  throw new DocumentRejected(err.message);
83570
83604
  }
83605
+ const url = badDynamicUrl(state.root.children);
83606
+ if (url) throw new DocumentRejected(url);
83607
+ return state;
83571
83608
  }
83572
83609
  var serializeDocument = (state) => `${serializeToXml(state, registry, { compact: false })}
83573
83610
  `;
@@ -83920,6 +83957,27 @@ function createDocumentRegistry(options) {
83920
83957
  // src/server/inject.ts
83921
83958
  var RUNTIME = `(() => {
83922
83959
  const post = (message) => parent.postMessage(message, '*');
83960
+ const readProps = () => {
83961
+ const match = /[#&]ryugi-props=([^&]*)/.exec(location.hash);
83962
+ try {
83963
+ const props = match ? JSON.parse(decodeURIComponent(match[1])) : {};
83964
+ return props && typeof props === 'object' && !Array.isArray(props) ? props : {};
83965
+ } catch {
83966
+ return {};
83967
+ }
83968
+ };
83969
+ window.ryugiProps = readProps();
83970
+ addEventListener('hashchange', () => {
83971
+ window.ryugiProps = readProps();
83972
+ document.dispatchEvent(new CustomEvent('ryugi-props', { detail: window.ryugiProps }));
83973
+ });
83974
+ let height = 0;
83975
+ new ResizeObserver(() => {
83976
+ const next = Math.ceil(document.documentElement.offsetHeight);
83977
+ if (next === height) return;
83978
+ height = next;
83979
+ post({ type: 'ryugi:height', height });
83980
+ }).observe(document.documentElement);
83923
83981
  addEventListener('error', (event) => {
83924
83982
  const el = event.target;
83925
83983
  if (el && el !== window && el.getAttribute) {
@@ -84001,10 +84059,11 @@ var RUNTIME = `(() => {
84001
84059
  var HEAD = /<head(\s[^>]*)?>/i;
84002
84060
  var PROLOGUE = /^\s*(<!doctype[^>]*>)?\s*(<html(\s[^>]*)?>)?/i;
84003
84061
  var RUNTIME_LINE = RUNTIME.split("\n").map((line) => line.trim()).join(" ");
84062
+ var EMBEDDED_STYLE = "<style>:root{color-scheme:light dark;background:transparent}body{margin:0;font-family:system-ui,-apple-system,sans-serif}</style>";
84004
84063
  var UI_MARKER = /<ryugi-[a-z0-9-]+(?:\s|>)/i;
84005
84064
  var UI_META = /<meta[^>]+name=["']ryugi-ui["'][^>]*>/i;
84006
84065
  function injectRuntime(html, options = {}) {
84007
- const tag = `<script>${RUNTIME_LINE}</script>`;
84066
+ const tag = `${options.embedded ? EMBEDDED_STYLE : ""}<script>${RUNTIME_LINE}</script>`;
84008
84067
  const ui2 = options.uiRuntimeUrl && (UI_MARKER.test(html) || UI_META.test(html)) ? `<script defer src="${options.uiRuntimeUrl.replace(/"/g, "&quot;")}"></script>` : "";
84009
84068
  const head = HEAD.exec(html);
84010
84069
  const at7 = head ? head.index + head[0].length : PROLOGUE.exec(html)?.[0].length ?? 0;
@@ -84089,26 +84148,105 @@ function sendFile(res, file, headers = {}) {
84089
84148
  });
84090
84149
  }
84091
84150
 
84092
- // src/server/watch.ts
84151
+ // src/server/dynamic-blocks.ts
84093
84152
  var import_node_fs9 = __toESM(require("node:fs"), 1);
84094
84153
  var import_node_path9 = __toESM(require("node:path"), 1);
84095
- var toPosix = (file) => file.split(import_node_path9.default.sep).join("/");
84154
+ function dynamicUrls(xml) {
84155
+ const urls = /* @__PURE__ */ new Set();
84156
+ for (const match of stripOpaque(xml).matchAll(TAG)) {
84157
+ if (match[1] || match[2].toLowerCase() !== "dynamic") continue;
84158
+ const url = URL_ATTR.exec(match[0]);
84159
+ const value = url?.[1] ?? url?.[2] ?? "";
84160
+ if (DYNAMIC_URL.test(value)) urls.add(value);
84161
+ }
84162
+ return [...urls];
84163
+ }
84164
+ var mtimeOf = (file) => {
84165
+ try {
84166
+ return import_node_fs9.default.statSync(file).mtimeMs;
84167
+ } catch {
84168
+ return -1;
84169
+ }
84170
+ };
84171
+ function createDynamicBlocks(limits) {
84172
+ const byDocument = /* @__PURE__ */ new Map();
84173
+ const files = (id2) => {
84174
+ let map = byDocument.get(id2);
84175
+ if (!map) {
84176
+ map = /* @__PURE__ */ new Map();
84177
+ byDocument.set(id2, map);
84178
+ }
84179
+ return map;
84180
+ };
84181
+ const entry = (id2, dir, file) => {
84182
+ const map = files(id2);
84183
+ const mtime = mtimeOf(import_node_path9.default.join(dir, file));
84184
+ let state = map.get(file);
84185
+ if (!state || state.mtime !== mtime) {
84186
+ state = { mtime, errors: [], ran: false };
84187
+ map.set(file, state);
84188
+ }
84189
+ return state;
84190
+ };
84191
+ return {
84192
+ accepts: (file) => typeof file === "string" && DYNAMIC_URL.test(file),
84193
+ report(id2, dir, file, message) {
84194
+ const state = entry(id2, dir, file);
84195
+ if (state.errors.includes(message) || state.errors.length >= limits.maxErrors) return false;
84196
+ state.errors.push(message);
84197
+ return true;
84198
+ },
84199
+ loaded(id2, dir, file) {
84200
+ const state = entry(id2, dir, file);
84201
+ if (state.ran) return false;
84202
+ state.ran = true;
84203
+ return true;
84204
+ },
84205
+ state(id2, dir) {
84206
+ let xml = "";
84207
+ try {
84208
+ xml = import_node_fs9.default.readFileSync(import_node_path9.default.join(dir, "doc.xml"), "utf8");
84209
+ } catch {
84210
+ return { warnings: [], dynamic: {} };
84211
+ }
84212
+ const urls = dynamicUrls(xml);
84213
+ const map = files(id2);
84214
+ for (const [file, state] of map) {
84215
+ if (!urls.includes(file) || state.mtime !== mtimeOf(import_node_path9.default.join(dir, file))) map.delete(file);
84216
+ }
84217
+ const warnings = [];
84218
+ const dynamic = {};
84219
+ for (const url of urls) {
84220
+ if (!import_node_fs9.default.existsSync(import_node_path9.default.join(dir, url))) warnings.push(`${url} not found`);
84221
+ const state = map.get(url);
84222
+ for (const error of state?.errors ?? []) warnings.push(`runtime: ${url}: ${error}`);
84223
+ dynamic[url] = { ran: state?.ran ?? false };
84224
+ }
84225
+ return { warnings, dynamic };
84226
+ }
84227
+ };
84228
+ }
84229
+
84230
+ // src/server/watch.ts
84231
+ var import_node_fs10 = __toESM(require("node:fs"), 1);
84232
+ var import_node_path10 = __toESM(require("node:path"), 1);
84233
+ var toPosix = (file) => file.split(import_node_path10.default.sep).join("/");
84096
84234
  var ignored = (file) => file === ".state" || file.startsWith(".state/");
84097
84235
  function snapshot(root, dir = root, out = /* @__PURE__ */ new Map()) {
84098
84236
  let entries2;
84099
84237
  try {
84100
- entries2 = import_node_fs9.default.readdirSync(dir, { withFileTypes: true });
84238
+ entries2 = import_node_fs10.default.readdirSync(dir, { withFileTypes: true });
84101
84239
  } catch {
84102
84240
  return out;
84103
84241
  }
84104
84242
  for (const entry of entries2) {
84105
- const full = import_node_path9.default.join(dir, entry.name);
84106
- const rel = toPosix(import_node_path9.default.relative(root, full));
84243
+ const full = import_node_path10.default.join(dir, entry.name);
84244
+ const rel = toPosix(import_node_path10.default.relative(root, full));
84107
84245
  if (ignored(rel)) continue;
84108
84246
  if (entry.isDirectory()) snapshot(root, full, out);
84109
84247
  else {
84110
84248
  try {
84111
- out.set(rel, import_node_fs9.default.statSync(full).mtimeMs);
84249
+ out.set(rel, import_node_fs10.default.statSync(full).mtimeMs);
84112
84250
  } catch {
84113
84251
  }
84114
84252
  }
@@ -84141,7 +84279,7 @@ function watchTree(root, onChange, debounceMs = 120, backupPollMs = 1e3) {
84141
84279
  }, debounceMs);
84142
84280
  };
84143
84281
  try {
84144
- const watcher = import_node_fs9.default.watch(root, { recursive: true }, (_event, filename) => {
84282
+ const watcher = import_node_fs10.default.watch(root, { recursive: true }, (_event, filename) => {
84145
84283
  if (filename) queue([toPosix(filename.toString())]);
84146
84284
  });
84147
84285
  watcher.on("error", () => {
@@ -84283,21 +84421,22 @@ function titleOf(payload, ref) {
84283
84421
  return payload.canvas?.title || ref.id;
84284
84422
  }
84285
84423
  async function startArtifactsServer(options) {
84286
- const root = import_node_path10.default.resolve(options.root);
84287
- const viewerDir = import_node_path10.default.resolve(options.viewerDir);
84288
- const runtimeDir = options.runtimeDir ? import_node_path10.default.resolve(options.runtimeDir) : null;
84289
- const stateDir = import_node_path10.default.join(root, ".state");
84290
- import_node_fs10.default.mkdirSync(stateDir, { recursive: true, mode: 448 });
84291
- import_node_fs10.default.writeFileSync(import_node_path10.default.join(stateDir, ".gitignore"), "*\n");
84292
- const portFile = import_node_path10.default.join(stateDir, ".last-port");
84293
- const tokenFile = import_node_path10.default.join(stateDir, ".last-token");
84424
+ const root = import_node_path11.default.resolve(options.root);
84425
+ const viewerDir = import_node_path11.default.resolve(options.viewerDir);
84426
+ const runtimeDir = options.runtimeDir ? import_node_path11.default.resolve(options.runtimeDir) : null;
84427
+ const stateDir = import_node_path11.default.join(root, ".state");
84428
+ import_node_fs11.default.mkdirSync(stateDir, { recursive: true, mode: 448 });
84429
+ import_node_fs11.default.writeFileSync(import_node_path11.default.join(stateDir, ".gitignore"), "*\n");
84430
+ const portFile = import_node_path11.default.join(stateDir, ".last-port");
84431
+ const tokenFile = import_node_path11.default.join(stateDir, ".last-token");
84294
84432
  const token = readPersisted(tokenFile) || randomToken();
84295
- import_node_fs10.default.writeFileSync(tokenFile, `${token}
84433
+ import_node_fs11.default.writeFileSync(tokenFile, `${token}
84296
84434
  `, { mode: 384 });
84297
84435
  const contentToken = randomToken();
84298
84436
  const runtimeWarnings = /* @__PURE__ */ new Map();
84299
84437
  const ranVersions = /* @__PURE__ */ new Map();
84300
- const runtimeOf = (ref) => ref.type === "document" ? documents.warnings(ref.id) : runtimeWarnings.get(`${ref.type}/${ref.id}`) ?? [];
84438
+ const dynamicBlocks = createDynamicBlocks({ maxErrors: MAX_RUNTIME_WARNINGS });
84439
+ const runtimeOf = (ref, dir) => ref.type === "document" ? [...documents.warnings(ref.id), ...dynamicBlocks.state(ref.id, dir).warnings] : runtimeWarnings.get(`${ref.type}/${ref.id}`) ?? [];
84301
84440
  const contentPrefix = `/c/${contentToken}/`;
84302
84441
  const clients = /* @__PURE__ */ new Set();
84303
84442
  const changeListeners = [];
@@ -84429,16 +84568,17 @@ async function startArtifactsServer(options) {
84429
84568
  send(res, 404, "Not found");
84430
84569
  return;
84431
84570
  }
84432
- const headers = { "Content-Security-Policy": CONTENT_CSP[ref.type], "Access-Control-Allow-Origin": "*" };
84433
- if (ref.type !== "html" || relative !== "index.html") {
84571
+ const page = ref.type === "html" ? relative === "index.html" : ref.type === "document" && relative.endsWith(".html");
84572
+ const headers = { "Content-Security-Policy": CONTENT_CSP[page ? "html" : ref.type], "Access-Control-Allow-Origin": "*" };
84573
+ if (!page) {
84434
84574
  sendFile(res, target, headers);
84435
84575
  return;
84436
84576
  }
84437
- import_node_fs10.default.readFile(target, "utf8", (err, source) => {
84577
+ import_node_fs11.default.readFile(target, "utf8", (err, source) => {
84438
84578
  if (err) send(res, 404, "Not found");
84439
84579
  else {
84440
84580
  const uiRuntimeUrl = runtimeDir ? `${contentPrefix}runtime/ryugi-ui.js` : void 0;
84441
- send(res, 200, injectRuntime(source, { uiRuntimeUrl }), { "Content-Type": "text/html; charset=utf-8", ...headers });
84581
+ send(res, 200, injectRuntime(source, { uiRuntimeUrl, embedded: ref.type === "document" }), { "Content-Type": "text/html; charset=utf-8", ...headers });
84442
84582
  }
84443
84583
  });
84444
84584
  };
@@ -84449,7 +84589,7 @@ async function startArtifactsServer(options) {
84449
84589
  return;
84450
84590
  }
84451
84591
  const ref = artifactKeyOf(`${type}/${id2}`);
84452
- sendJson(res, 200, { ...readArtifact(dir, ref, runtimeOf(ref)), contentBase: `${contentPrefix}${type}/${id2}/` });
84592
+ sendJson(res, 200, { ...readArtifact(dir, ref, runtimeOf(ref, dir)), contentBase: `${contentPrefix}${type}/${id2}/` });
84453
84593
  };
84454
84594
  const serveList = (res) => {
84455
84595
  const { artifacts, warnings } = listArtifacts(root);
@@ -84468,12 +84608,25 @@ async function startArtifactsServer(options) {
84468
84608
  return;
84469
84609
  }
84470
84610
  if (typeof message !== "object" || message === null) return;
84471
- const { type, artifact, message: detail, version } = message;
84611
+ const { type, artifact, message: detail, version, file } = message;
84472
84612
  if (typeof artifact !== "string") return;
84473
84613
  const ref = artifactKeyOf(artifact);
84474
- if (!ref || ref.type !== "html" || artifact !== `${ref.type}/${ref.id}`) return;
84614
+ if (!ref || ref.type === "artboard" || artifact !== `${ref.type}/${ref.id}`) return;
84475
84615
  const dir = resolveArtifactDir(root, ref.type, ref.id);
84476
84616
  if (!dir) return;
84617
+ if (ref.type === "document") {
84618
+ if (!dynamicBlocks.accepts(file)) return;
84619
+ if (type === "loaded") {
84620
+ if (dynamicBlocks.loaded(ref.id, dir, file)) writeState(ref, dir);
84621
+ return;
84622
+ }
84623
+ if (type !== "runtime-error" || typeof detail !== "string") return;
84624
+ if (detail.length === 0 || detail.length > MAX_RUNTIME_MESSAGE) return;
84625
+ if (!dynamicBlocks.report(ref.id, dir, file, detail)) return;
84626
+ writeState(ref, dir);
84627
+ broadcast({ type: "change", artifact, files: [] });
84628
+ return;
84629
+ }
84477
84630
  if (type === "loaded") {
84478
84631
  if (typeof version !== "number" || version !== readHtml(dir, ref.id).version) return;
84479
84632
  ranVersions.set(artifact, version);
@@ -84528,7 +84681,7 @@ async function startArtifactsServer(options) {
84528
84681
  if (SHELL_ROUTE.test(pathname) || pathname === "/index.html") {
84529
84682
  const headers = { "Content-Security-Policy": VIEWER_CSP };
84530
84683
  if (key2 !== null) headers["Set-Cookie"] = `${cookieName}=${token}; HttpOnly; SameSite=Strict; Path=/`;
84531
- sendFile(res, import_node_path10.default.join(viewerDir, "index.html"), headers);
84684
+ sendFile(res, import_node_path11.default.join(viewerDir, "index.html"), headers);
84532
84685
  return;
84533
84686
  }
84534
84687
  const target = resolveInside(viewerDir, pathname.slice(1));
@@ -84567,15 +84720,15 @@ async function startArtifactsServer(options) {
84567
84720
  port = await listen(server, options.host, 0);
84568
84721
  }
84569
84722
  cookieName = `ryugi_artifacts_${port}`;
84570
- import_node_fs10.default.writeFileSync(portFile, `${port}
84723
+ import_node_fs11.default.writeFileSync(portFile, `${port}
84571
84724
  `, { mode: 384 });
84572
84725
  const origin = `http://${urlHostForHttp(options.urlHost)}:${port}`;
84573
84726
  const url = `${origin}/?key=${token}`;
84574
84727
  const linkFor = (type, id2) => `${origin}/${type}/${id2}?key=${token}`;
84575
84728
  const signatures = /* @__PURE__ */ new Map();
84576
84729
  const writeState = (ref, dir) => {
84577
- const payload = readArtifact(dir, ref, runtimeOf(ref));
84578
- const extra = ref.type === "html" && "version" in payload ? { ran: ranVersions.get(`${ref.type}/${ref.id}`) === payload.version } : {};
84730
+ const payload = readArtifact(dir, ref, runtimeOf(ref, dir));
84731
+ const extra = ref.type === "document" ? { dynamic: dynamicBlocks.state(ref.id, dir).dynamic } : ref.type === "html" && "version" in payload ? { ran: ranVersions.get(`${ref.type}/${ref.id}`) === payload.version } : {};
84579
84732
  try {
84580
84733
  writeArtifactState(stateDir, ref, payload, extra);
84581
84734
  } catch (err) {
@@ -84593,7 +84746,7 @@ async function startArtifactsServer(options) {
84593
84746
  initialChanges.push({ ref: entry, payload, files: [] });
84594
84747
  if (entry.type === "document") void documents.open(entry.id);
84595
84748
  }
84596
- writeJsonAtomic(import_node_path10.default.join(stateDir, "server-info"), { type: "server-started", url, port, root });
84749
+ writeJsonAtomic(import_node_path11.default.join(stateDir, "server-info"), { type: "server-started", url, port, root });
84597
84750
  const watcher = watchTree(
84598
84751
  root,
84599
84752
  (files) => {
@@ -84648,7 +84801,7 @@ async function startArtifactsServer(options) {
84648
84801
  }
84649
84802
 
84650
84803
  // src/server/lifecycle.ts
84651
- var import_node_fs11 = __toESM(require("node:fs"), 1);
84804
+ var import_node_fs12 = __toESM(require("node:fs"), 1);
84652
84805
  var DEFAULT_IDLE_TIMEOUT_MS = 4 * 60 * 60 * 1e3;
84653
84806
  var DEFAULT_LIFECYCLE_CHECK_MS = 60 * 1e3;
84654
84807
  var SERVER_ID_ARG = "--artifacts-server-id=";
@@ -84678,7 +84831,7 @@ function parseEnv(env, argv = []) {
84678
84831
  function readOwners(file) {
84679
84832
  let text;
84680
84833
  try {
84681
- text = import_node_fs11.default.readFileSync(file, "utf8");
84834
+ text = import_node_fs12.default.readFileSync(file, "utf8");
84682
84835
  } catch {
84683
84836
  return [];
84684
84837
  }
@@ -84742,12 +84895,12 @@ function openReady(payload) {
84742
84895
  // src/server/main.ts
84743
84896
  async function main() {
84744
84897
  const config = parseEnv(process.env, process.argv.slice(2));
84745
- const root = import_node_path11.default.resolve(config.root);
84746
- const stateDir = import_node_path11.default.join(root, ".state");
84898
+ const root = import_node_path12.default.resolve(config.root);
84899
+ const stateDir = import_node_path12.default.join(root, ".state");
84747
84900
  const server = await startArtifactsServer({
84748
84901
  root,
84749
- viewerDir: import_node_path11.default.join(__dirname, "viewer"),
84750
- runtimeDir: import_node_path11.default.join(__dirname, "runtime"),
84902
+ viewerDir: import_node_path12.default.join(__dirname, "viewer"),
84903
+ runtimeDir: import_node_path12.default.join(__dirname, "runtime"),
84751
84904
  host: config.host,
84752
84905
  urlHost: config.urlHost
84753
84906
  });
@@ -84774,12 +84927,12 @@ async function main() {
84774
84927
  });
84775
84928
  const shutdown = async (reason) => {
84776
84929
  console.log(JSON.stringify({ type: "server-stopped", reason }));
84777
- import_node_fs12.default.rmSync(import_node_path11.default.join(stateDir, "server-info"), { force: true });
84778
- writeJsonAtomic(import_node_path11.default.join(stateDir, "server-stopped"), { reason, timestamp: Date.now() });
84930
+ import_node_fs13.default.rmSync(import_node_path12.default.join(stateDir, "server-info"), { force: true });
84931
+ writeJsonAtomic(import_node_path12.default.join(stateDir, "server-stopped"), { reason, timestamp: Date.now() });
84779
84932
  await server.close();
84780
84933
  process.exit(0);
84781
84934
  };
84782
- const ownersFile = import_node_path11.default.join(stateDir, "owners");
84935
+ const ownersFile = import_node_path12.default.join(stateDir, "owners");
84783
84936
  const timer = setInterval(() => {
84784
84937
  const owners = readOwners(ownersFile);
84785
84938
  const reason = shutdownReason({
@@ -84793,7 +84946,7 @@ async function main() {
84793
84946
  timer.unref();
84794
84947
  process.on("SIGTERM", () => void shutdown("SIGTERM"));
84795
84948
  process.on("SIGINT", () => void shutdown("SIGINT"));
84796
- import_node_fs12.default.rmSync(import_node_path11.default.join(stateDir, "server-stopped"), { force: true });
84949
+ import_node_fs13.default.rmSync(import_node_path12.default.join(stateDir, "server-stopped"), { force: true });
84797
84950
  console.log(JSON.stringify({ type: "server-started", url: server.url, port: server.port, root }));
84798
84951
  }
84799
84952
  main().catch((err) => {