ryugi-artifacts 1.18.4 → 1.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +1 -1
- package/dist/server.cjs +90 -11
- package/dist/viewer/CloudDocument-fPJO17RB.js +1 -0
- package/dist/viewer/{CloudLiveDocument-DS85XF0L.js → CloudLiveDocument-tsrwl8T1.js} +1 -1
- package/dist/viewer/{DocumentLayout-BmFhvhLU.js → DocumentLayout-D4LN2imT.js} +144 -144
- package/dist/viewer/DocumentPage-DU7AlIYi.js +1 -0
- package/dist/viewer/{abnfDiagram-VCTEODGH-CV9ilrv6.js → abnfDiagram-VCTEODGH-BwLfP_w2.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-oZEeiz6u.js → ar-SA-G6X2FPQ2-BI0wJ8yR.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-B7gMzXkW.js → architectureDiagram-5GKGNRK7-CRQpQyO-.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-yL1UB6w_.js → az-AZ-76LH7QW2-CxsCUo3P.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-BVuMowqe.js → bg-BG-XCXSNQG7-zmLNtpI8.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-BvS7PEBE.js → blockDiagram-I7D4REHJ-BJJKBHFX.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-TK2Nt4AS.js → bn-BD-2XOGV67Q-D6zzfXu3.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-DiPixCgw.js → c4Diagram-7LVT6UL2-CLivMEyH.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-ssAQ_aeA.js → ca-ES-6MX7JW3Y-G1FH_576.js} +1 -1
- package/dist/viewer/{chunk-4HAMMTFA-Dx6b40xi.js → chunk-4HAMMTFA-Di0xdyz8.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-BtM_VLQE.js → chunk-EIO257PC-C_A0ItX_.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-COZQExf-.js → chunk-GMAD6QVW-Yd9B1P6N.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-BzZEH01V.js → chunk-GVQU2GXP-BlQ5Hc4C.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-DoSmXTi7.js → chunk-IMKFNOWR-sLl17KlZ.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-BoNKpHsG.js → chunk-L3NEJ4N5-ByzPblyy.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-fma5qDgd.js → chunk-OSK3NFVY-B8lsSjgE.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-B-FOPc-q.js → chunk-PWAF6VOD-Dt03PokQ.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-Bo8j1N02.js → chunk-SHT3W25Y-D8tOADu9.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-B62eBjLz.js → chunk-SVP7TREG-BCCTaJFp.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-p6Tzdi_n.js → chunk-TICWLB2K-CKvZ1F5E.js} +1 -1
- package/dist/viewer/{classDiagram-ZZMXUADV-yDzvlm9G.js → classDiagram-ZZMXUADV-BPsoNR3A.js} +1 -1
- package/dist/viewer/{classDiagram-v2-VYDZK3BY-yDzvlm9G.js → classDiagram-v2-VYDZK3BY-BPsoNR3A.js} +1 -1
- package/dist/viewer/{cs-CZ-2BRQDIVT-CJRjmWM6.js → cs-CZ-2BRQDIVT-KdoHU-Qi.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-B5NowWLs.js → cynefinDiagram-5FMLGOSQ-CPAZlTbz.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-D-dHqXdP.js → da-DK-5WZEPLOC-D_MTuSXJ.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-CnMtZyQJ.js → dagre-GXQ25YYZ-CGJi5tfA.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-C-TB_N6V.js → de-DE-XR44H4JA-BLOov6di.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-BUqW7fG2.js → diagram-S7CK7UJ4-v4jY9cY2.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-8txdjYKW.js → diagram-UQ7AKVKN-CHWKBoDd.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-VRK1Xx-r.js → diagram-VX7I27RA-BVUIPSa6.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-CFTEE6hm.js → diagram-Z3DM3KII-C4Y7zZHg.js} +1 -1
- package/dist/viewer/{dist-GYlII7AN.js → dist-1IcdPIYN.js} +2 -2
- package/dist/viewer/dist-B2FPj3Qt.js +9 -0
- package/dist/viewer/{dist-4VxRqYLb.js → dist-B3RoMAF6.js} +1 -1
- package/dist/viewer/{dist-SaSQiH_S.js → dist-BQs1NNpk.js} +1 -1
- package/dist/viewer/{dist-BBOT2Dod.js → dist-BVTHDHV6.js} +1 -1
- package/dist/viewer/{dist-U9k2HrGK.js → dist-Bc8tMTe5.js} +1 -1
- package/dist/viewer/dist-Bqez8J_a.js +1 -0
- package/dist/viewer/dist-C4Lc0ZFP.js +1 -0
- package/dist/viewer/{dist-CmRhIDCA.js → dist-CCwaS8Bu.js} +1 -1
- package/dist/viewer/{dist-CFAaHddG.js → dist-CRx0ZMXK.js} +1 -1
- package/dist/viewer/{dist-B7cBbeKI.js → dist-CeYG0ueU.js} +1 -1
- package/dist/viewer/{dist-DI46xOxZ.js → dist-Ct-E_S8r.js} +1 -1
- package/dist/viewer/{dist-6lhXFIAO.js → dist-D8bI9sBL.js} +1 -1
- package/dist/viewer/{dist-DhFC_v-5.js → dist-DFGQshKp.js} +4 -4
- package/dist/viewer/{dist-Du5bWJ2g.js → dist-DXnqzoeB.js} +1 -1
- package/dist/viewer/{dist-D_UP42BZ.js → dist-DYMwViBu.js} +1 -1
- package/dist/viewer/dist-DpVonJ_O.js +1 -0
- package/dist/viewer/{dist-CydgyGeV.js → dist-DsDINnzX.js} +1 -1
- package/dist/viewer/{dist-BCqz-HqX.js → dist-JfoSPkrU.js} +1 -1
- package/dist/viewer/{dist-CH0akeCq.js → dist-KZC5UOjy.js} +9 -9
- package/dist/viewer/dist-TLcUQst5.js +6 -0
- package/dist/viewer/{dist-DbkbyA0U.js → dist-WN2tr_mQ.js} +1 -1
- package/dist/viewer/{dist-BPVVld5s.js → dist-_d7trXgy.js} +1 -1
- package/dist/viewer/{dist-CPVcHWlQ.js → dist-xVN1cHRs.js} +2 -2
- package/dist/viewer/{ebnfDiagram-PWID7BFC-B2uFP8zT.js → ebnfDiagram-PWID7BFC-BfH0Kwma.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-Cin0hSuv.js → el-GR-BZB4AONW-DytlrCPc.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-r25weJ3i.js → en-B4ZKOASM-CxMHMjTS.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-C_wdcD3l.js → erDiagram-RLTQ6QDP-DiANaX5a.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-BTfNIW-f.js → es-ES-U4NZUMDT-CWOlOrxS.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-CwpkrMfM.js → eu-ES-A7QVB2H4-7rIki6yl.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-xR6FbJG0.js → fa-IR-HGAKTJCU-XuLQk-Tn.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-aFZzomat.js → fi-FI-Z5N7JZ37-BVT2imWO.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-CCTrPmhX.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-CudNlR7s.js → fr-FR-RHASNOE6-BDrE0Sar.js} +1 -1
- package/dist/viewer/ganttDiagram-EL5Y4UJY-C0kMmivD.js +292 -0
- package/dist/viewer/{gl-ES-HMX3MZ6V-gVz21kpP.js → gl-ES-HMX3MZ6V-BGePYNwa.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-BJKBOspV.js → he-IL-6SHJWFNN-C_h7ANwh.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-CbzuQ896.js → hi-IN-IWLTKZ5I-DO6JQv11.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-B_jSyb1P.js → hu-HU-A5ZG7DT2-CYW6-QvY.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-DG5B5Nbw.js → id-ID-SAP4L64H-lnrwwUQv.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-Daq9X6yp.js → image-GAAHSSAO-DPKo0Z9B.js} +1 -1
- package/dist/viewer/index.html +1 -1
- package/dist/viewer/index.js +6 -6
- package/dist/viewer/index2.css +141 -50
- package/dist/viewer/{infoDiagram-27XIBGKW-BEcf3Mgz.js → infoDiagram-27XIBGKW-BrpKtrz1.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-BaiLcmxa.js → ishikawaDiagram-5VMMS53U-Bzzm1Qn9.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-Be6ERDzQ.js → it-IT-JPQ66NNP-Bmrd9W_k.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-rzX72p52.js → ja-JP-DBVTYXUO-BzIPu9Sq.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-CF0kgq6e.js → journeyDiagram-3NMN7TZE-BnypDAuH.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-xkB9EtaK.js → kaa-6HZHGXH3-DKokUJUv.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-A9TW4l6B.js → kab-KAB-ZGHBKWFO-DPboBUhX.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-B1yViTEB.js → kanban-definition-UXKFOSKX-xl1KXBhm.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-D-_fY8Gw.js → kk-KZ-P5N5QNE5-CW1AnK2i.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-BcY5m6VJ.js → km-KH-HSX4SM5Z-Cy-Jz187.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-et49DOjn.js → ko-KR-MTYHY66A-ENrzcom-.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-CctJtizJ.js → ku-TR-6OUDTVRD-ujaIeZ6d.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-CKIcj0xZ.js → lt-LT-XHIRWOB4-DCHudAUH.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-eD_nIZ1C.js → lv-LV-5QDEKY6T-CkczV-YS.js} +1 -1
- package/dist/viewer/{mindmap-definition-YA3MSWOX-eSx4puWQ.js → mindmap-definition-YA3MSWOX-Cmaw8zST.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-DZE-1OVW.js → mr-IN-CRQNXWMA-CAULhacb.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-C4RtxqYT.js → my-MM-5M5IBNSE-CIK3iNzd.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-BR4xmg8K.js → nb-NO-T6EIAALU-awDYmeD3.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-CC_ODK0w.js → nl-NL-IS3SIHDZ-DnN7YgqH.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-B1B5ggd_.js → nn-NO-6E72VCQL-CirX0qpy.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-C4ylGoRV.js → oc-FR-POXYY2M6-BmRoBPJJ.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-CeGYxP4x.js → pa-IN-N4M65BXN-C3t1i1uP.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-Dh89osCP.js → pegDiagram-XKGWAZYB-CRs_uYT9.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-BgW3KG9t.js +1 -0
- package/dist/viewer/{pieDiagram-E7YTZNPT-DLjCSZj7.js → pieDiagram-E7YTZNPT-CX1dwbeD.js} +3 -3
- package/dist/viewer/{pl-PL-T2D74RX3-DG-CBlvr.js → pl-PL-T2D74RX3-LcmmmlyH.js} +1 -1
- package/dist/viewer/{prod-BkhfMLuD.js → prod-B8PlumMX.js} +9 -9
- package/dist/viewer/{pt-BR-5N22H2LF-DHX82eiC.js → pt-BR-5N22H2LF-CSwh6Qow.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-C7hcCDRC.js → pt-PT-UZXXM6DQ-Dik_tH8d.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-C8ex_GP4.js → quadrantDiagram-AXDQQJYC-DAlIHzj1.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-1tVqy-R1.js → railroadDiagram-O6MQD6OU-3sbXCT8O.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-MJWMqh0i.js → requirementDiagram-BXWQKSXE-_SmB-iGu.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-kNmvlxGQ.js → ro-RO-JPDTUUEW-5pEQNah0.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-DIPjZ7JJ.js → ru-RU-B4JR7IUQ-D_Kg9Hzp.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-BmytocXO.js → sequenceDiagram-WJ2MYXX4-CNxS0HZg.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-CklMTI2L.js → si-LK-N5RQ5JYF-Bp_qk_kO.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-TIEeBTSD.js → sk-SK-C5VTKIMK-dZmproWt.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-BzfdTTSQ.js → sl-SI-NN7IZMDC-DCPnVelb.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-ASSh2jQr.js → stateDiagram-D77RDMKH-DLlcIj9E.js} +1 -1
- package/dist/viewer/{stateDiagram-v2-MP3YSRHH-QqO49gLr.js → stateDiagram-v2-MP3YSRHH-BQGIuopX.js} +1 -1
- package/dist/viewer/subset-shared.chunk-CvpSwkWA.js +1 -0
- package/dist/viewer/{subset-worker.chunk-ByFgYWrP.js → subset-worker.chunk-KysBifhs.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-Ca92kj7e.js → sv-SE-XGPEYMSR-DQC8YOoA.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-B6PLFQO7.js → swimlanes-42K2YHIH-pPhC0efI.js} +1 -1
- package/dist/viewer/{swimlanesDiagram-VR7AAH4N-N8AFiqh9.js → swimlanesDiagram-VR7AAH4N-BknwjiJI.js} +1 -1
- package/dist/viewer/{ta-IN-2NMHFXQM-VcTgcAra.js → ta-IN-2NMHFXQM-XJN8sySm.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-CQK6U6zN.js → th-TH-HPSO5L25-CrVxkBUt.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-bdnxX84c.js → timeline-definition-24CTP7MA-djWWXfng.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-BK4O5HPq.js → tr-TR-DEFEU3FU-CL6S5zlq.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-Dgto1rbO.js → uk-UA-QMV73CPH-CMrgmof-.js} +1 -1
- package/dist/viewer/{useSandboxFrame-3fuBOs0A.js → useSandboxFrame-Cx7xofoM.js} +1 -1
- package/dist/viewer/{vennDiagram-4TSXK5OY-DPdqusDE.js → vennDiagram-4TSXK5OY-DnkQnhE7.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-dbrYvw7t.js → vi-VN-M7AON7JQ-DcU7HmKI.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-B4FxaO_K.js → wardleyDiagram-VM6X3IG4-BiN7N4S8.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-B-xgw6AE.js → xychartDiagram-S5SC5T6Z-DR4L47nZ.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-B9JwAL-C.js → zh-CN-LNUGB5OW-B58c_p8w.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-yrlUVHxC.js → zh-HK-E62DVLB3-D-pcM14T.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-6sxLjcXU.js → zh-TW-RAJ6MFWO-Dcb5-RNU.js} +1 -1
- package/package.json +1 -1
- package/dist/viewer/CloudDocument-CotgQhd8.js +0 -1
- package/dist/viewer/DocumentPage-0GGJlY-j.js +0 -1
- package/dist/viewer/dist-C10VRgAd.js +0 -1
- package/dist/viewer/dist-CL7kKeXL.js +0 -1
- package/dist/viewer/dist-DAw97NG5.js +0 -1
- package/dist/viewer/dist-DGBiXrP7.js +0 -9
- package/dist/viewer/dist-DTI9Lw8b.js +0 -6
- package/dist/viewer/flowDiagram-HODETNUW-DuNy2QCx.js +0 -1
- package/dist/viewer/ganttDiagram-EL5Y4UJY-CmFhbbr4.js +0 -292
- package/dist/viewer/percentages-BXMCSKIN-BlwZCNS5.js +0 -1
- package/dist/viewer/subset-shared.chunk-CThXukp8.js +0 -1
package/dist/cli.cjs
CHANGED
package/dist/server.cjs
CHANGED
|
@@ -17633,7 +17633,8 @@ var BLOCK_TAGS2 = [
|
|
|
17633
17633
|
"details",
|
|
17634
17634
|
"footnote-section",
|
|
17635
17635
|
"def",
|
|
17636
|
-
"dynamic"
|
|
17636
|
+
"dynamic",
|
|
17637
|
+
"pending"
|
|
17637
17638
|
];
|
|
17638
17639
|
var INLINE_TAGS2 = ["b", "strong", "i", "em", "u", "s", "del", "strike", "code", "sub", "sup", "mark", "a", "br", "footnote"];
|
|
17639
17640
|
var DOCUMENT_TAGS = /* @__PURE__ */ new Set([...BLOCK_TAGS2, ...INLINE_TAGS2]);
|
|
@@ -17657,6 +17658,14 @@ var LITEXML_ONLY_TAGS = /* @__PURE__ */ new Set([
|
|
|
17657
17658
|
"video"
|
|
17658
17659
|
]);
|
|
17659
17660
|
var registry = createDefaultRegistry();
|
|
17661
|
+
registry.registerReader("pending", (el2) => {
|
|
17662
|
+
const id2 = el2.getAttribute("id");
|
|
17663
|
+
return { type: "pending", ...id2 ? { $: { blockId: id2 } } : {}, intent: el2.getAttribute("intent") ?? "", version: 1 };
|
|
17664
|
+
});
|
|
17665
|
+
registry.registerWriter("pending", (node) => {
|
|
17666
|
+
const { $: state, intent } = node;
|
|
17667
|
+
return { tag: "pending", attrs: { ...state?.blockId ? { id: state.blockId } : {}, intent: intent ?? "" }, selfClosing: true };
|
|
17668
|
+
});
|
|
17660
17669
|
var DocumentRejected = class extends Error {
|
|
17661
17670
|
};
|
|
17662
17671
|
var URL_ATTR = /\surl\s*=\s*(?:"([^"]*)"|'([^']*)')/i;
|
|
@@ -17690,6 +17699,12 @@ function badDynamicProps(xml) {
|
|
|
17690
17699
|
}
|
|
17691
17700
|
return null;
|
|
17692
17701
|
}
|
|
17702
|
+
function containsPending(value) {
|
|
17703
|
+
if (Array.isArray(value)) return value.some(containsPending);
|
|
17704
|
+
if (!value || typeof value !== "object") return false;
|
|
17705
|
+
return value.type === "pending" || Object.values(value).some(containsPending);
|
|
17706
|
+
}
|
|
17707
|
+
var nestedPending = (blocks) => blocks.some((block) => block.type !== "pending" && containsPending(block)) ? "<pending> must be a top-level block" : null;
|
|
17693
17708
|
function badDynamicUrl(nodes) {
|
|
17694
17709
|
for (const node of nodes) {
|
|
17695
17710
|
if (node.type === "dynamic" && !DYNAMIC_URL.test(node.url ?? "")) return "<dynamic> url must be assets/<name>.html";
|
|
@@ -17708,7 +17723,7 @@ function parseDocument2(xml) {
|
|
|
17708
17723
|
} catch (err) {
|
|
17709
17724
|
throw new DocumentRejected(err.message);
|
|
17710
17725
|
}
|
|
17711
|
-
const url = badDynamicUrl(state.root.children);
|
|
17726
|
+
const url = badDynamicUrl(state.root.children) ?? nestedPending(state.root.children);
|
|
17712
17727
|
if (url) throw new DocumentRejected(url);
|
|
17713
17728
|
return state;
|
|
17714
17729
|
}
|
|
@@ -53451,6 +53466,10 @@ function streamAtVersion(doc, frontiers, createEditor3, base, target, commitMess
|
|
|
53451
53466
|
};
|
|
53452
53467
|
}
|
|
53453
53468
|
|
|
53469
|
+
// src/shared/document-features.ts
|
|
53470
|
+
var DOCUMENT_FEATURES = ["pending"];
|
|
53471
|
+
var DOCUMENT_FEATURES_HEADER = "x-ryugi-document-features";
|
|
53472
|
+
|
|
53454
53473
|
// node_modules/.pnpm/@lexical+table@0.52.0_typescript@5.9.3/node_modules/@lexical/table/dist/LexicalTable.dev.js
|
|
53455
53474
|
var LexicalTable_dev_exports = {};
|
|
53456
53475
|
__export(LexicalTable_dev_exports, {
|
|
@@ -87704,8 +87723,39 @@ var HeadlessExtension3 = mod45.HeadlessExtension;
|
|
|
87704
87723
|
var createHeadlessEditor2 = mod45.createHeadlessEditor;
|
|
87705
87724
|
|
|
87706
87725
|
// src/server/document-headless.ts
|
|
87726
|
+
var PendingNode = class _PendingNode extends DecoratorNode2 {
|
|
87727
|
+
__intent;
|
|
87728
|
+
static getType() {
|
|
87729
|
+
return "pending";
|
|
87730
|
+
}
|
|
87731
|
+
static clone(node) {
|
|
87732
|
+
return new _PendingNode(node.__intent, node.__key);
|
|
87733
|
+
}
|
|
87734
|
+
static importJSON(json) {
|
|
87735
|
+
return new _PendingNode(json.intent).updateFromJSON(json);
|
|
87736
|
+
}
|
|
87737
|
+
constructor(intent = "", key2) {
|
|
87738
|
+
super(key2);
|
|
87739
|
+
this.__intent = intent;
|
|
87740
|
+
}
|
|
87741
|
+
exportJSON() {
|
|
87742
|
+
return { ...super.exportJSON(), type: "pending", version: 1, intent: this.__intent };
|
|
87743
|
+
}
|
|
87744
|
+
createDOM() {
|
|
87745
|
+
throw new Error("headless");
|
|
87746
|
+
}
|
|
87747
|
+
updateDOM() {
|
|
87748
|
+
return false;
|
|
87749
|
+
}
|
|
87750
|
+
isInline() {
|
|
87751
|
+
return false;
|
|
87752
|
+
}
|
|
87753
|
+
decorate() {
|
|
87754
|
+
return null;
|
|
87755
|
+
}
|
|
87756
|
+
};
|
|
87707
87757
|
var createDocumentHeadlessEditor = () => createHeadlessEditor2({
|
|
87708
|
-
nodes: allHeadlessNodes,
|
|
87758
|
+
nodes: [...allHeadlessNodes, PendingNode],
|
|
87709
87759
|
onError: (err) => {
|
|
87710
87760
|
throw err;
|
|
87711
87761
|
}
|
|
@@ -87713,6 +87763,8 @@ var createDocumentHeadlessEditor = () => createHeadlessEditor2({
|
|
|
87713
87763
|
|
|
87714
87764
|
// src/server/document-session.ts
|
|
87715
87765
|
var WRITTEN_LIMIT = 50;
|
|
87766
|
+
var OutdatedClient = class extends Error {
|
|
87767
|
+
};
|
|
87716
87768
|
var messageOf = (err) => err instanceof Error ? err.message : String(err);
|
|
87717
87769
|
function lcsLength(a5, b6) {
|
|
87718
87770
|
const table = Array.from({ length: a5.length + 1 }, () => new Uint32Array(b6.length + 1));
|
|
@@ -87747,6 +87799,15 @@ function closestBase(written, text2, fallback) {
|
|
|
87747
87799
|
}
|
|
87748
87800
|
return best;
|
|
87749
87801
|
}
|
|
87802
|
+
async function lastAgentWrite(activityFile, file) {
|
|
87803
|
+
const recorded = Number(await readText(activityFile));
|
|
87804
|
+
if (recorded > 0) return recorded;
|
|
87805
|
+
try {
|
|
87806
|
+
return Math.round((await import_promises.default.stat(file)).mtimeMs);
|
|
87807
|
+
} catch {
|
|
87808
|
+
return Date.now();
|
|
87809
|
+
}
|
|
87810
|
+
}
|
|
87750
87811
|
async function readText(file) {
|
|
87751
87812
|
try {
|
|
87752
87813
|
return await import_promises.default.readFile(file, "utf8");
|
|
@@ -87790,9 +87851,13 @@ async function createDocumentSession(options) {
|
|
|
87790
87851
|
let lastCursor = null;
|
|
87791
87852
|
let lastGoodText = null;
|
|
87792
87853
|
let lastFileText = await readText(file) ?? "";
|
|
87854
|
+
const activityFile = import_node_path8.default.join(import_node_path8.default.dirname(snapshotFile), "agent-active");
|
|
87855
|
+
let agentActiveAt = await lastAgentWrite(activityFile, file);
|
|
87856
|
+
let activitySaved = Promise.resolve();
|
|
87857
|
+
const emitStatus = () => emit({ type: "status", outcome, streaming: streaming > 0, agentActiveAt });
|
|
87793
87858
|
const setOutcome = (next) => {
|
|
87794
87859
|
outcome = next;
|
|
87795
|
-
|
|
87860
|
+
emitStatus();
|
|
87796
87861
|
};
|
|
87797
87862
|
try {
|
|
87798
87863
|
const initial = parseDocument2(lastFileText);
|
|
@@ -87833,6 +87898,9 @@ async function createDocumentSession(options) {
|
|
|
87833
87898
|
const onFileText = (text2) => {
|
|
87834
87899
|
if (text2 === lastFileText) return;
|
|
87835
87900
|
lastFileText = text2;
|
|
87901
|
+
agentActiveAt = Date.now();
|
|
87902
|
+
const at7 = agentActiveAt;
|
|
87903
|
+
activitySaved = activitySaved.then(() => writeAtomic(activityFile, String(at7))).catch((err) => log(`agent activity not saved: ${messageOf(err)}`));
|
|
87836
87904
|
let target;
|
|
87837
87905
|
try {
|
|
87838
87906
|
target = parseDocument2(text2);
|
|
@@ -87845,7 +87913,7 @@ async function createDocumentSession(options) {
|
|
|
87845
87913
|
const queued = streaming > 0;
|
|
87846
87914
|
lastGoodText = text2;
|
|
87847
87915
|
streaming += 1;
|
|
87848
|
-
|
|
87916
|
+
emitStatus();
|
|
87849
87917
|
playing = playing.then(async () => {
|
|
87850
87918
|
try {
|
|
87851
87919
|
const baseText = queued ? fallback : closestBase(written, text2, fallback);
|
|
@@ -87921,7 +87989,11 @@ async function createDocumentSession(options) {
|
|
|
87921
87989
|
return {
|
|
87922
87990
|
snapshot: () => loro.export({ mode: "snapshot" }),
|
|
87923
87991
|
lineage: () => loro.getTree(TREE_NAME).roots()[0]?.id ?? "",
|
|
87924
|
-
importUpdate: (bytes) => {
|
|
87992
|
+
importUpdate: (bytes, features = []) => {
|
|
87993
|
+
const undeclared2 = DOCUMENT_FEATURES.filter((feature) => !features.includes(feature));
|
|
87994
|
+
const types = undeclared2.length ? editor.getEditorState().read(() => new Set($getRoot2().getChildren().map((block) => block.getType()))) : /* @__PURE__ */ new Set();
|
|
87995
|
+
const missing = undeclared2.filter((feature) => types.has(feature));
|
|
87996
|
+
if (missing.length) throw new OutdatedClient(`this page cannot show <${missing.join(">, <")}> blocks; reload the page`);
|
|
87925
87997
|
const probe = loro.fork();
|
|
87926
87998
|
probe.import(bytes);
|
|
87927
87999
|
if (probe.getTree(TREE_NAME).roots().length > 1) throw new Error("update belongs to a different document; reload the page");
|
|
@@ -87936,6 +88008,7 @@ async function createDocumentSession(options) {
|
|
|
87936
88008
|
},
|
|
87937
88009
|
outcome: () => outcome,
|
|
87938
88010
|
streaming: () => streaming > 0,
|
|
88011
|
+
agentActiveAt: () => agentActiveAt,
|
|
87939
88012
|
cursor: () => lastCursor,
|
|
87940
88013
|
settled: () => playing,
|
|
87941
88014
|
flush,
|
|
@@ -87943,6 +88016,7 @@ async function createDocumentSession(options) {
|
|
|
87943
88016
|
clearInterval(snapshotTimer);
|
|
87944
88017
|
await flush();
|
|
87945
88018
|
await saveSnapshot();
|
|
88019
|
+
await activitySaved;
|
|
87946
88020
|
binding.dispose();
|
|
87947
88021
|
listeners.clear();
|
|
87948
88022
|
}
|
|
@@ -88004,7 +88078,7 @@ function createDocumentRegistry(options) {
|
|
|
88004
88078
|
} else if (event.type === "cursor") {
|
|
88005
88079
|
options.broadcast({ type: "doc-cursor", artifact, cursor: event.cursor });
|
|
88006
88080
|
} else {
|
|
88007
|
-
options.broadcast({ type: "doc-status", artifact, streaming: event.streaming, outcome: event.outcome });
|
|
88081
|
+
options.broadcast({ type: "doc-status", artifact, streaming: event.streaming, outcome: event.outcome, agentActiveAt: event.agentActiveAt, now: Date.now() });
|
|
88008
88082
|
setWarnings(outcomeWarnings(event.outcome, event.streaming));
|
|
88009
88083
|
}
|
|
88010
88084
|
});
|
|
@@ -90347,6 +90421,8 @@ async function startArtifactsServer(options) {
|
|
|
90347
90421
|
lineage: session.lineage(),
|
|
90348
90422
|
outcome: session.outcome(),
|
|
90349
90423
|
streaming: session.streaming(),
|
|
90424
|
+
agentActiveAt: session.agentActiveAt(),
|
|
90425
|
+
now: Date.now(),
|
|
90350
90426
|
cursor: session.cursor(),
|
|
90351
90427
|
comments: documents.comments(id2)
|
|
90352
90428
|
});
|
|
@@ -90392,11 +90468,13 @@ async function startArtifactsServer(options) {
|
|
|
90392
90468
|
send(res, 413, "Update too large");
|
|
90393
90469
|
return;
|
|
90394
90470
|
}
|
|
90471
|
+
const header = req.headers[DOCUMENT_FEATURES_HEADER];
|
|
90472
|
+
const features = typeof header === "string" ? header.split(",").map((feature) => feature.trim()) : [];
|
|
90395
90473
|
try {
|
|
90396
|
-
session.importUpdate(new Uint8Array(Buffer.concat(chunks)));
|
|
90474
|
+
session.importUpdate(new Uint8Array(Buffer.concat(chunks)), features);
|
|
90397
90475
|
send(res, 204, "");
|
|
90398
90476
|
} catch (err) {
|
|
90399
|
-
sendJson(res, 400, { error: err.message });
|
|
90477
|
+
sendJson(res, err instanceof OutdatedClient ? 409 : 400, { error: err.message });
|
|
90400
90478
|
}
|
|
90401
90479
|
};
|
|
90402
90480
|
const blockIdsOf = async (id2, dir) => {
|
|
@@ -90882,7 +90960,8 @@ async function startArtifactsServer(options) {
|
|
|
90882
90960
|
const bytes = typeof request.bytes === "string" ? Buffer.from(request.bytes, "base64") : null;
|
|
90883
90961
|
if (!bytes) throw new Error("update needs bytes");
|
|
90884
90962
|
if (bytes.length > MAX_DOCUMENT_UPDATE) throw new Error("update too large");
|
|
90885
|
-
|
|
90963
|
+
const features = Array.isArray(request.features) ? request.features.filter((feature) => typeof feature === "string") : [];
|
|
90964
|
+
session.importUpdate(new Uint8Array(bytes), features);
|
|
90886
90965
|
return null;
|
|
90887
90966
|
}
|
|
90888
90967
|
if (request.op === "comment") {
|
|
@@ -91079,7 +91158,7 @@ function openReady(payload) {
|
|
|
91079
91158
|
}
|
|
91080
91159
|
|
|
91081
91160
|
// package.json
|
|
91082
|
-
var version = "1.
|
|
91161
|
+
var version = "1.19.0";
|
|
91083
91162
|
|
|
91084
91163
|
// src/server/main.ts
|
|
91085
91164
|
async function main() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{n as t,t as n}from"./jsx-runtime-CldxteV5.js";import{a as r,m as i}from"./useSandboxFrame-Cx7xofoM.js";import{_ as a,d as o,g as s,h as c,t as l,u,v as d}from"./DocumentLayout-D4LN2imT.js";var f=e(t(),1),p=n();function m(){let e=(0,f.useMemo)(()=>window.matchMedia(`(prefers-color-scheme: dark)`),[]),[t,n]=(0,f.useState)(e.matches);return(0,f.useEffect)(()=>{let t=()=>n(e.matches);return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[e]),t}function h({id:e,state:t,contentBase:n,comments:h=i(),offline:g=!1}){let _=m(),[v,y]=(0,f.useState)(null),b=(0,f.useMemo)(()=>({artifact:`cloud/${e}`,contentBase:n,channel:s(),send:()=>void 0}),[e,n]),x=r(e,{comments:h.threads.filter(e=>e.status===`open`).length,activity:null,retrying:!1,reason:null});return(0,f.useEffect)(()=>{let e=document.createElement(`base`);return e.href=n,document.head.prepend(e),()=>e.remove()},[n]),(0,p.jsxs)(`div`,{className:`x1us19tq x1rozbrz xo2rkog`,className:`ryugi-doc ${{className:`x1us19tq x1rozbrz xo2rkog`}.className??``}`,children:[g?(0,p.jsxs)(`div`,{...{0:{className:`x78zum5 x6s0dn4 x17d4w8g x1vqgdyp x4l9tsp x1bo0w0s xqfszdh xfifm61`},1:{className:`x6s0dn4 x17d4w8g x1vqgdyp x4l9tsp x1bo0w0s xqfszdh xfifm61 x1s85apg x1ux6vrq`}}[!!x|0],children:[(0,p.jsx)(`i`,{className:`xci0xqf x1hagigm x16rqkct xxwmxtg`}),`电脑离线,暂时不能评论`]}):null,(0,p.jsx)(l,{editor:v,threads:h.threads,children:(0,p.jsx)(c.Provider,{value:b,children:(0,p.jsx)(d,{variant:`article`,theme:_?`dark`:`light`,initialValue:t,extraNodes:u,rendererConfig:o,onEditorReady:e=>{e?.setEditable(!1),y(e??null)},children:(0,p.jsx)(a,{})})})})]})}export{h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{n as t,t as n}from"./jsx-runtime-CldxteV5.js";import{a as r}from"./useSandboxFrame-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-COiEfhsA.js";import{n as t,t as n}from"./jsx-runtime-CldxteV5.js";import{a as r}from"./useSandboxFrame-Cx7xofoM.js";import{t as i}from"./index.js";import a from"./CloudDocument-fPJO17RB.js";import{DocumentView as o,t as s}from"./DocumentPage-DU7AlIYi.js";var c=e(t(),1),l=`1.19.0`,u=e=>/^(\d+)\.(\d+)\./.exec(e??``)?.slice(1,3).join(`.`)??null;function d(e,t){let n=u(e);return n!==null&&n===u(t)}var f=(e,t)=>`电脑上的 ryugi 是 ${t??`未知版本`},网页是 ${e},版本对上之前只能评论`,p=n();function m({id:e,state:t,contentBase:n,liveContentBase:u,comments:m}){let{transport:h,presence:g}=s(e,u??n??``),_=g?.online??!1;r(e,{online:g?.online??null});let[v,y]=(0,c.useState)(!1);if((0,c.useEffect)(()=>{_&&y(!0)},[_]),!h||!(v||_))return!t||!n?(0,p.jsx)(i,{children:g===null?`正在连接…`:`还没发布。电脑在线时,这里会实时显示。`}):(0,p.jsx)(a,{id:e,state:t,contentBase:n,comments:m,offline:g!==null&&!_});let b=_&&d(l,g?.version??null),x=_&&!b?f(l,g?.version??null):null;return(0,p.jsx)(o,{id:e,transport:h,live:_,cloud:{online:_,canEdit:b,reason:x}})}export{m as default};
|