ryugi-artifacts 1.26.1 → 1.28.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 +6 -3
- package/dist/server.cjs +63 -25
- package/dist/viewer/{CloudDocument-D3S7e7RC.js → CloudDocument-BWuXcyA5.js} +1 -1
- package/dist/viewer/{CloudLiveDocument-CRPSKpFi.js → CloudLiveDocument-DY2AK2fW.js} +1 -1
- package/dist/viewer/{DocumentLayout-DCqaPuH2.js → DocumentLayout-Byi-FSqu.js} +4 -4
- package/dist/viewer/{DocumentPage-U7FIJYbX.js → DocumentPage-OOUWnUbI.js} +1 -1
- package/dist/viewer/{abnfDiagram-VCTEODGH-3r_i2uTk.js → abnfDiagram-VCTEODGH-B76YgVSl.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-CwNjAezr.js → ar-SA-G6X2FPQ2-DLDk3Fr1.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-By620ee3.js → architectureDiagram-5GKGNRK7-DJ2b0H6u.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-CZFC99eK.js → az-AZ-76LH7QW2-BNE3cqGu.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-CdHl5mL3.js → bg-BG-XCXSNQG7-Ba6gRSVy.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-BBNwPBui.js → blockDiagram-I7D4REHJ-CFQQSd-A.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-BCcfNU1w.js → bn-BD-2XOGV67Q-ByJdIgWh.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-W0oo4SZL.js → c4Diagram-7LVT6UL2-CbJzjhvB.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-D1LVE_KZ.js → ca-ES-6MX7JW3Y-Bn0HEIfv.js} +1 -1
- package/dist/viewer/{chunk-4HAMMTFA-CkqsGoaq.js → chunk-4HAMMTFA-B9aeqO2F.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-CU7XpdH7.js → chunk-EIO257PC-DPOhWzKh.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-BaeLTMI4.js → chunk-GMAD6QVW-BpmihfGs.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-BIBhDhue.js → chunk-GVQU2GXP-DF7F0sgS.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-CEG0s9FD.js → chunk-IMKFNOWR-C-YO3NQ2.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-Ck17hjBg.js → chunk-L3NEJ4N5-DlmncLgE.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-CNSvj6xi.js → chunk-OSK3NFVY-CL7h-mBo.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-mVgGIJrT.js → chunk-PWAF6VOD-B8BPkPFW.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-C4Y6RPj0.js → chunk-SHT3W25Y-BpyOxjUT.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-Casm8Nvh.js → chunk-SVP7TREG-Rl8tIF8A.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-CoU4Z4HC.js → chunk-TICWLB2K-B9QJjkf4.js} +1 -1
- package/dist/viewer/{classDiagram-ZZMXUADV-D6UCj2L0.js → classDiagram-ZZMXUADV-DLD_6HAr.js} +1 -1
- package/dist/viewer/{classDiagram-v2-VYDZK3BY-D6UCj2L0.js → classDiagram-v2-VYDZK3BY-DLD_6HAr.js} +1 -1
- package/dist/viewer/{cs-CZ-2BRQDIVT-5Fad8-92.js → cs-CZ-2BRQDIVT-CP2adRFB.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-B2ZRSjmw.js → cynefinDiagram-5FMLGOSQ-D9ppMSAA.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-BFBLv4Uk.js → da-DK-5WZEPLOC-C854LrBe.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-BFgBhyr3.js → dagre-GXQ25YYZ-CwJRgiLt.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-qyJtGLTH.js → de-DE-XR44H4JA-DwXVAz5d.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-hmI-Gut0.js → diagram-S7CK7UJ4-BvzLjbsx.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-DPjoAEc4.js → diagram-UQ7AKVKN-DVhbPMxc.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-GCjWgZ9y.js → diagram-VX7I27RA-CiZPn2lF.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-C2M991ko.js → diagram-Z3DM3KII-DXPygDoX.js} +1 -1
- package/dist/viewer/{dist-Dwk2pFvp.js → dist-8IahudhA.js} +1 -1
- package/dist/viewer/{dist-GN5sxa0R.js → dist-9M_yJcOs.js} +1 -1
- package/dist/viewer/{dist-CXDzUM_N.js → dist-B1Ptot19.js} +1 -1
- package/dist/viewer/{dist-DI3XZN2p.js → dist-B5lO5wnx.js} +1 -1
- package/dist/viewer/{dist-ByR4-IkI.js → dist-BOP0LsZa.js} +1 -1
- package/dist/viewer/{dist-CdTPm-OW.js → dist-BPFV7HsR.js} +1 -1
- package/dist/viewer/{dist-Yrf-RYLb.js → dist-Be1IcO6Q.js} +1 -1
- package/dist/viewer/{dist-B2zokIna.js → dist-BzgaaK2T.js} +1 -1
- package/dist/viewer/{dist-DqKbfOWo.js → dist-CFgqvLZ2.js} +1 -1
- package/dist/viewer/{dist-C3FADbMn.js → dist-CGrJjp88.js} +4 -4
- package/dist/viewer/{dist-Ogq2hBPJ.js → dist-CK0OLGCF.js} +1 -1
- package/dist/viewer/{dist-42dQbZqK.js → dist-CY7v7M0d.js} +1 -1
- package/dist/viewer/{dist-Bt08qAY3.js → dist-CbUvo-PD.js} +1 -1
- package/dist/viewer/{dist-zqqKIyiY.js → dist-ClaGSrjh.js} +1 -1
- package/dist/viewer/{dist-C8Q-Pgp3.js → dist-CvwCGpfr.js} +1 -1
- package/dist/viewer/{dist-BVz3Wdll.js → dist-DNNj2aMA.js} +1 -1
- package/dist/viewer/{dist-DXMGdH-z.js → dist-DP6MYfia.js} +1 -1
- package/dist/viewer/{dist-DT7JKS37.js → dist-FgUijJl1.js} +1 -1
- package/dist/viewer/{dist-BGIgMJuT.js → dist-QOs0jlFD.js} +1 -1
- package/dist/viewer/{dist-BL8ZPE60.js → dist-SiyuNGPI.js} +1 -1
- package/dist/viewer/{dist-DywgOf-d.js → dist-k5Bay5go.js} +1 -1
- package/dist/viewer/{dist-DB07IXf4.js → dist-qDaS3xgU.js} +1 -1
- package/dist/viewer/{dist-BE-ykq1O.js → dist-tNvHCVhP.js} +1 -1
- package/dist/viewer/{dist-BMLwzVoq.js → dist-vne2aEcf.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-DL8-fLh7.js → ebnfDiagram-PWID7BFC-8drQoH7p.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-D-E4EuSl.js → el-GR-BZB4AONW-BljLqMZ_.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-nyCkEpWd.js → en-B4ZKOASM-BfV31NDk.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-BqSCLMWa.js → erDiagram-RLTQ6QDP-0fkPgBMS.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-BWAoORmX.js → es-ES-U4NZUMDT-Da1qIc4a.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-DtV46eSh.js → eu-ES-A7QVB2H4-CQp4OaxH.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-BR6zB-uH.js → fa-IR-HGAKTJCU-BvXOUytP.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-Bd3JIrkT.js → fi-FI-Z5N7JZ37-Bgx3Gedw.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-7aJd59hN.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-CppFZqNA.js → fr-FR-RHASNOE6-C-fh7evs.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-CEu1jOoU.js → ganttDiagram-EL5Y4UJY-BvfQnVc2.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-D7Y53A4G.js → gl-ES-HMX3MZ6V-DYeSOfSa.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-CY-wLZAr.js → he-IL-6SHJWFNN-DnGoCpZV.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-DVJuRdDe.js → hi-IN-IWLTKZ5I-Bx7eNYDf.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-CKLayeMf.js → hu-HU-A5ZG7DT2-DijmTnRH.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-CYt7c7f4.js → id-ID-SAP4L64H-DCmr4bop.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-CjEkSOs2.js → image-GAAHSSAO-BHoF2Vsu.js} +1 -1
- package/dist/viewer/index.js +7 -7
- package/dist/viewer/index2.css +67 -19
- package/dist/viewer/{infoDiagram-27XIBGKW-Dpr34g-Z.js → infoDiagram-27XIBGKW-C-j3_tDE.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-B-hfckVK.js → ishikawaDiagram-5VMMS53U-CrrJKAfN.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-Odx1hSA-.js → it-IT-JPQ66NNP-B_1ONva5.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-gIE5dmB-.js → ja-JP-DBVTYXUO-COt_mEp7.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-D_FnYj8i.js → journeyDiagram-3NMN7TZE-Bb_vzuuE.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-B6ZYHIQ6.js → kaa-6HZHGXH3-CtBWieDY.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-Da2SBW6w.js → kab-KAB-ZGHBKWFO-B1isjGxm.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-JBHo4MMu.js → kanban-definition-UXKFOSKX-C8L3qBCD.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-BmXrsfBx.js → kk-KZ-P5N5QNE5-6r2ptdHm.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-B4L5JI34.js → km-KH-HSX4SM5Z-DYRHwFjm.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-MXhfFcg1.js → ko-KR-MTYHY66A-DtXg7Y--.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-CkgfpJpw.js → ku-TR-6OUDTVRD-6p-SD1d8.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-DW8fVSzC.js → lt-LT-XHIRWOB4-CJ-U7kN9.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-DN5qFDVd.js → lv-LV-5QDEKY6T-CGuh47HO.js} +1 -1
- package/dist/viewer/{mindmap-definition-YA3MSWOX-BqBzYnHU.js → mindmap-definition-YA3MSWOX-0eisP1RB.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-BtKz2Eiz.js → mr-IN-CRQNXWMA-C5M5PNpN.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-BE3fojCJ.js → my-MM-5M5IBNSE-DIENd2KG.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-D6TzkiN5.js → nb-NO-T6EIAALU-DXVgc5SE.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-CFz9XZrF.js → nl-NL-IS3SIHDZ-8qumey8Z.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-BtqyyXIG.js → nn-NO-6E72VCQL-CDCdtw1B.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-Y5Cl6BCx.js → oc-FR-POXYY2M6-Fc7Bh2Zf.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-CwDhAj5G.js → pa-IN-N4M65BXN-B_4vn2yt.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-DWX_F2Dw.js → pegDiagram-XKGWAZYB-CuIetWDp.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-7tGDPb_F.js +1 -0
- package/dist/viewer/{pieDiagram-E7YTZNPT-cO8NWDVq.js → pieDiagram-E7YTZNPT-DJZP8D-Y.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-Ce-3yAtJ.js → pl-PL-T2D74RX3-De3SYqY6.js} +1 -1
- package/dist/viewer/{prod-CLgKnmys.js → prod-C348eXRq.js} +8 -8
- package/dist/viewer/{pt-BR-5N22H2LF-B9ovUxsk.js → pt-BR-5N22H2LF-7nvQLf7O.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-B_ZeBHpV.js → pt-PT-UZXXM6DQ-DtY6VsPE.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-D_lbVSgg.js → quadrantDiagram-AXDQQJYC-mSYxZRrZ.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-BM1YiPzi.js → railroadDiagram-O6MQD6OU-BB4IbxIB.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-BqqWiApZ.js → requirementDiagram-BXWQKSXE-BsFDYkmh.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-CWSGs13z.js → ro-RO-JPDTUUEW-C2UUKQUY.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-Cyw1cykq.js → ru-RU-B4JR7IUQ-Bl2--IBH.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-Cbt6VzGR.js → sequenceDiagram-WJ2MYXX4-BGfuVGG1.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-kiNYcIfx.js → si-LK-N5RQ5JYF-DPrn5n2l.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-B7ki64Vo.js → sk-SK-C5VTKIMK-COiEvIHd.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-Bfw6P3Pg.js → sl-SI-NN7IZMDC-B_lH3TnL.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-DCZ2vSP1.js → stateDiagram-D77RDMKH-DpCE9DL-.js} +1 -1
- package/dist/viewer/{stateDiagram-v2-MP3YSRHH-zcIB9aMp.js → stateDiagram-v2-MP3YSRHH-C0rABr6s.js} +1 -1
- package/dist/viewer/subset-shared.chunk-BAO8Kml0.js +1 -0
- package/dist/viewer/{subset-worker.chunk-CLv09uw4.js → subset-worker.chunk-B6O2iSJs.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-Dd33JzgN.js → sv-SE-XGPEYMSR-DVjXhx9f.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-BzMr0L-8.js → swimlanes-42K2YHIH-DUwALMlk.js} +1 -1
- package/dist/viewer/{swimlanesDiagram-VR7AAH4N-BrdAbdj0.js → swimlanesDiagram-VR7AAH4N-BdC_UzvH.js} +1 -1
- package/dist/viewer/{ta-IN-2NMHFXQM-C3tYlmxb.js → ta-IN-2NMHFXQM-CMaH6ve7.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-CMjireIs.js → th-TH-HPSO5L25-VndAJUSw.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-BJYzYYGo.js → timeline-definition-24CTP7MA-w3XLPWpz.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-C5O33K6o.js → tr-TR-DEFEU3FU-BBdNf75x.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-m01EdSwq.js → uk-UA-QMV73CPH-BXI-Vp7U.js} +1 -1
- package/dist/viewer/{vennDiagram-4TSXK5OY-DK9-uj1H.js → vennDiagram-4TSXK5OY-DctGHju1.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-Cwye8jKZ.js → vi-VN-M7AON7JQ-bJa-6QK7.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-BTYwSp7p.js → wardleyDiagram-VM6X3IG4-BQZsrNDk.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-B8APE590.js → xychartDiagram-S5SC5T6Z-CgaT07RV.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-aECTzkFT.js → zh-CN-LNUGB5OW-C2xLUp3o.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-49C3nMPL.js → zh-HK-E62DVLB3-C19QGzmQ.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-Dbh3W6RH.js → zh-TW-RAJ6MFWO-BgCf3zhS.js} +1 -1
- package/package.json +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-BRezqzgn.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-B0PKM54b.js +0 -1
- package/dist/viewer/subset-shared.chunk-DeW66Lwh.js +0 -1
package/dist/cli.cjs
CHANGED
|
@@ -502,8 +502,10 @@ async function withCloudLink(out, artifact) {
|
|
|
502
502
|
method: "POST",
|
|
503
503
|
signal: AbortSignal.timeout(RESERVE_TIMEOUT_MS)
|
|
504
504
|
});
|
|
505
|
-
const { url } = await res.json();
|
|
506
|
-
|
|
505
|
+
const { url, limit } = await res.json();
|
|
506
|
+
if (typeof url === "string") return { ...out, cloudLink: url };
|
|
507
|
+
if (typeof limit?.upgradeUrl === "string") return { ...out, cloudLimit: { message: limit.message, upgradeUrl: limit.upgradeUrl } };
|
|
508
|
+
return out;
|
|
507
509
|
} catch {
|
|
508
510
|
return out;
|
|
509
511
|
}
|
|
@@ -684,6 +686,7 @@ async function publish(options, emit) {
|
|
|
684
686
|
const call = async (method, route, body) => {
|
|
685
687
|
const { status, json } = await server.call(method, route, body);
|
|
686
688
|
if (status === 401) throw new CliError("", { type: "login-required", url: json.loginUrl, message: "Open url to sign in to the Ryugi cloud, then run the same command again." }, 2);
|
|
689
|
+
if (status === 402 && json.code === "plan_limit") throw new CliError("", { type: "plan-limit", message: json.error, upgradeUrl: json.upgradeUrl }, 2);
|
|
687
690
|
if (status < 200 || status >= 300) throw new CliError(json.error || `HTTP ${status}`, json.reasons ? { reasons: json.reasons } : {});
|
|
688
691
|
return json;
|
|
689
692
|
};
|
|
@@ -925,7 +928,7 @@ async function main(argv) {
|
|
|
925
928
|
}, emit);
|
|
926
929
|
}
|
|
927
930
|
if (command === "--version" || command === "-v") {
|
|
928
|
-
console.log("1.
|
|
931
|
+
console.log("1.28.0");
|
|
929
932
|
return 0;
|
|
930
933
|
}
|
|
931
934
|
if (command === "--help" || command === "-h") {
|
package/dist/server.cjs
CHANGED
|
@@ -88684,8 +88684,9 @@ var INSPECTOR_PROPERTIES = [
|
|
|
88684
88684
|
"color",
|
|
88685
88685
|
"box-shadow"
|
|
88686
88686
|
];
|
|
88687
|
-
var
|
|
88688
|
-
var
|
|
88687
|
+
var COMMENT_BUBBLE = "M14.5 3a10.5 10.5 0 1 1-4.2 20.1l-5 1.6c-.9.3-1.7-.5-1.4-1.4l1.6-5A10.5 10.5 0 0 1 14.5 3z";
|
|
88688
|
+
var COMMENT_CURSOR_SVG = `<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'><path d='${COMMENT_BUBBLE}' fill='none' stroke='white' stroke-width='4' stroke-linejoin='round'/><path d='${COMMENT_BUBBLE}' fill='#c65d3b'/><path d='M14.5 9.3v8.4M10.3 13.5h8.4' stroke='white' stroke-width='2.4' stroke-linecap='round'/></svg>`;
|
|
88689
|
+
var COMMENT_CURSOR = `url("data:image/svg+xml,${encodeURIComponent(COMMENT_CURSOR_SVG)}") 4 24, crosshair`;
|
|
88689
88690
|
|
|
88690
88691
|
// src/shared/tweaks.ts
|
|
88691
88692
|
function tweakTools() {
|
|
@@ -89911,6 +89912,13 @@ var CloudRefused = class extends Error {
|
|
|
89911
89912
|
};
|
|
89912
89913
|
var CloudCopyGone = class extends Error {
|
|
89913
89914
|
};
|
|
89915
|
+
var PlanLimited = class extends CloudRefused {
|
|
89916
|
+
constructor(message, upgradeUrl) {
|
|
89917
|
+
super(402, message);
|
|
89918
|
+
this.upgradeUrl = upgradeUrl;
|
|
89919
|
+
}
|
|
89920
|
+
upgradeUrl;
|
|
89921
|
+
};
|
|
89914
89922
|
var CreateRefused = class extends CloudRefused {
|
|
89915
89923
|
constructor(detail) {
|
|
89916
89924
|
super(502, `cloud refused (403): ${detail}`);
|
|
@@ -89932,6 +89940,17 @@ async function readJsonBody(req) {
|
|
|
89932
89940
|
return null;
|
|
89933
89941
|
}
|
|
89934
89942
|
}
|
|
89943
|
+
async function refuse(res) {
|
|
89944
|
+
const text2 = await res.text().catch(() => "");
|
|
89945
|
+
let parsed = {};
|
|
89946
|
+
try {
|
|
89947
|
+
parsed = JSON.parse(text2);
|
|
89948
|
+
} catch {
|
|
89949
|
+
}
|
|
89950
|
+
const message = typeof parsed.error === "string" ? parsed.error : text2 || res.statusText;
|
|
89951
|
+
if (res.status === 402 && parsed.code === "plan_limit" && typeof parsed.upgradeUrl === "string") throw new PlanLimited(message, parsed.upgradeUrl);
|
|
89952
|
+
throw new CloudRefused(502, `cloud refused (${res.status}): ${message}`);
|
|
89953
|
+
}
|
|
89935
89954
|
async function errorMessage(res) {
|
|
89936
89955
|
const text2 = await res.text().catch(() => "");
|
|
89937
89956
|
try {
|
|
@@ -89986,7 +90005,7 @@ function createCloudRoutes(options) {
|
|
|
89986
90005
|
return res;
|
|
89987
90006
|
};
|
|
89988
90007
|
const expectOk = async (res) => {
|
|
89989
|
-
if (!res.ok)
|
|
90008
|
+
if (!res.ok) await refuse(res);
|
|
89990
90009
|
return res;
|
|
89991
90010
|
};
|
|
89992
90011
|
const artifactEntry = (key2) => readConfig(configFile).config.artifacts[key2] ?? {};
|
|
@@ -90014,14 +90033,14 @@ function createCloudRoutes(options) {
|
|
|
90014
90033
|
const reserve = async (ref) => {
|
|
90015
90034
|
const key2 = `${ref.type}/${ref.id}`;
|
|
90016
90035
|
const entry = artifactEntry(key2);
|
|
90017
|
-
if (entry.cloud) return entry.cloud.url;
|
|
90018
|
-
if (entry.autoPublish === false || !autoPublishState().enabled) return null;
|
|
90036
|
+
if (entry.cloud) return { url: entry.cloud.url };
|
|
90037
|
+
if (entry.autoPublish === false || !autoPublishState().enabled) return { url: null };
|
|
90019
90038
|
try {
|
|
90020
90039
|
await createRecord2(ref, entry.visibility ?? "private");
|
|
90021
|
-
} catch {
|
|
90022
|
-
return null;
|
|
90040
|
+
} catch (err) {
|
|
90041
|
+
return err instanceof PlanLimited ? { url: null, limit: { message: err.message, upgradeUrl: err.upgradeUrl } } : { url: null };
|
|
90023
90042
|
}
|
|
90024
|
-
return artifactEntry(key2).cloud?.url ?? null;
|
|
90043
|
+
return { url: artifactEntry(key2).cloud?.url ?? null };
|
|
90025
90044
|
};
|
|
90026
90045
|
const prepare = async (ref) => {
|
|
90027
90046
|
const inspected = await options.inspect(ref);
|
|
@@ -90082,7 +90101,7 @@ function createCloudRoutes(options) {
|
|
|
90082
90101
|
};
|
|
90083
90102
|
let res = entry.cloud ? await commit(entry.cloud.id, requested) : await commit(await create3(), void 0);
|
|
90084
90103
|
if (res.status === 404 && entry.cloud) {
|
|
90085
|
-
if (!recreate) throw new CloudCopyGone();
|
|
90104
|
+
if (!recreate && entry.cloud.publishedAt) throw new CloudCopyGone();
|
|
90086
90105
|
res = await commit(await create3(), void 0);
|
|
90087
90106
|
}
|
|
90088
90107
|
const published = await (await expectOk(res)).json();
|
|
@@ -90137,6 +90156,7 @@ function createCloudRoutes(options) {
|
|
|
90137
90156
|
return { kind: "opted-out" };
|
|
90138
90157
|
}
|
|
90139
90158
|
if (err instanceof SignedOut) return { kind: "signed-out" };
|
|
90159
|
+
if (err instanceof PlanLimited) return { kind: "cannot-create", message: err.message, upgradeUrl: err.upgradeUrl };
|
|
90140
90160
|
if (err instanceof CreateRefused) return { kind: "cannot-create", message: err.detail };
|
|
90141
90161
|
if (err instanceof CloudRefused && err.status === 404) return { kind: "gone" };
|
|
90142
90162
|
if (err instanceof CloudRefused && err.status === 413) return { kind: "not-ready" };
|
|
@@ -90196,7 +90216,7 @@ function createCloudRoutes(options) {
|
|
|
90196
90216
|
return;
|
|
90197
90217
|
}
|
|
90198
90218
|
if (action === "reserve" && ref && method === "POST") {
|
|
90199
|
-
sendJson(res, 200,
|
|
90219
|
+
sendJson(res, 200, await serialized(`${ref.type}/${ref.id}`, () => reserve(ref)));
|
|
90200
90220
|
return;
|
|
90201
90221
|
}
|
|
90202
90222
|
if (action === "publish" && ref && method === "DELETE") {
|
|
@@ -90273,6 +90293,8 @@ function createCloudRoutes(options) {
|
|
|
90273
90293
|
if (res.headersSent) return;
|
|
90274
90294
|
if (err instanceof SignedOut) {
|
|
90275
90295
|
sendJson(res, 401, { error: "not signed in to the Ryugi cloud", loginUrl: loginUrl() });
|
|
90296
|
+
} else if (err instanceof PlanLimited) {
|
|
90297
|
+
sendJson(res, 402, { error: err.message, code: "plan_limit", upgradeUrl: err.upgradeUrl });
|
|
90276
90298
|
} else if (err instanceof CloudRefused) {
|
|
90277
90299
|
sendJson(res, err.status, { error: err.message });
|
|
90278
90300
|
} else {
|
|
@@ -90434,10 +90456,11 @@ var import_node_fs20 = __toESM(require("node:fs"), 1);
|
|
|
90434
90456
|
var IDLE_MS = 5 * 60 * 1e3;
|
|
90435
90457
|
var MAX_WAIT_MS = 15 * 60 * 1e3;
|
|
90436
90458
|
var SIGNED_OUT_MESSAGE = "auto-publish paused: the Ryugi Cloud sign-in expired";
|
|
90459
|
+
var FAILURES_BEFORE_NOTICE = 3;
|
|
90437
90460
|
function isNotice(value) {
|
|
90438
90461
|
if (typeof value !== "object" || value === null) return false;
|
|
90439
90462
|
const { id: id2, kind, message } = value;
|
|
90440
|
-
return typeof id2 === "string" && (kind === "signed-out" || kind === "cap") && typeof message === "string";
|
|
90463
|
+
return typeof id2 === "string" && (kind === "signed-out" || kind === "cap" || kind === "failing") && typeof message === "string";
|
|
90441
90464
|
}
|
|
90442
90465
|
function readAutoPublishState(file) {
|
|
90443
90466
|
let raw = {};
|
|
@@ -90460,9 +90483,10 @@ function createAutoPublisher(options) {
|
|
|
90460
90483
|
let notice = saved.notice;
|
|
90461
90484
|
let paused = saved.paused;
|
|
90462
90485
|
const remarked = /* @__PURE__ */ new Set();
|
|
90486
|
+
const failures = /* @__PURE__ */ new Map();
|
|
90463
90487
|
const save = () => writeJsonAtomic(options.stateFile, { dirty: [...dirty], notice, paused });
|
|
90464
|
-
const raise = (kind, message) => {
|
|
90465
|
-
if (notice?.kind !== kind) notice = { id: import_node_crypto8.default.randomUUID(), kind, message };
|
|
90488
|
+
const raise = (kind, message, upgradeUrl) => {
|
|
90489
|
+
if (notice?.kind !== kind) notice = { id: import_node_crypto8.default.randomUUID(), kind, message, ...upgradeUrl ? { upgradeUrl } : {} };
|
|
90466
90490
|
};
|
|
90467
90491
|
let idleTimer = null;
|
|
90468
90492
|
let maxTimer = null;
|
|
@@ -90489,6 +90513,15 @@ function createAutoPublisher(options) {
|
|
|
90489
90513
|
for (const key2 of [...dirty]) {
|
|
90490
90514
|
remarked.delete(key2);
|
|
90491
90515
|
const outcome = await options.publish(key2);
|
|
90516
|
+
console.error(JSON.stringify({ type: "auto-publish", key: key2, outcome: outcome.kind, ..."message" in outcome ? { message: outcome.message } : {} }));
|
|
90517
|
+
if (outcome.kind === "failed" || outcome.kind === "not-ready") {
|
|
90518
|
+
const count = (failures.get(key2) ?? 0) + 1;
|
|
90519
|
+
failures.set(key2, count);
|
|
90520
|
+
if (count >= FAILURES_BEFORE_NOTICE) raise("failing", `${key2}: ${outcome.kind === "failed" ? outcome.message : "not ready to publish; fix its warnings"}`);
|
|
90521
|
+
} else {
|
|
90522
|
+
failures.delete(key2);
|
|
90523
|
+
if (failures.size === 0 && notice?.kind === "failing") notice = null;
|
|
90524
|
+
}
|
|
90492
90525
|
if (outcome.kind === "signed-out") {
|
|
90493
90526
|
paused = { token };
|
|
90494
90527
|
raise("signed-out", SIGNED_OUT_MESSAGE);
|
|
@@ -90501,7 +90534,7 @@ function createAutoPublisher(options) {
|
|
|
90501
90534
|
} else if (outcome.kind === "opted-out" || outcome.kind === "gone") {
|
|
90502
90535
|
dirty.delete(key2);
|
|
90503
90536
|
} else if (outcome.kind === "cannot-create") {
|
|
90504
|
-
raise("cap", outcome.message);
|
|
90537
|
+
raise("cap", outcome.message, outcome.upgradeUrl);
|
|
90505
90538
|
} else {
|
|
90506
90539
|
retry = true;
|
|
90507
90540
|
}
|
|
@@ -90657,6 +90690,7 @@ var CONTENT_CSP = {
|
|
|
90657
90690
|
document: "sandbox; default-src 'none'",
|
|
90658
90691
|
html: "sandbox allow-scripts allow-modals allow-forms allow-popups allow-downloads"
|
|
90659
90692
|
};
|
|
90693
|
+
var CLOSE_FLUSH_MS = 5e3;
|
|
90660
90694
|
var DIRECT_RELAY_ROUTE = /^\/relay\/a\/([A-Za-z0-9_-]{1,64})$/;
|
|
90661
90695
|
var SHELL_ROUTE = new RegExp(`^/(?:(${ARTIFACT_TYPES.join("|")})/([^/]+)/?)?$`);
|
|
90662
90696
|
var API_ARTIFACT_ROUTE = /^\/api\/artifacts\/([^/]+)\/([^/]+)$/;
|
|
@@ -91432,16 +91466,20 @@ async function startArtifactsServer(options) {
|
|
|
91432
91466
|
for (const change of initialChanges) listener(change.ref, change.payload, change.files);
|
|
91433
91467
|
},
|
|
91434
91468
|
onActivity: (listener) => activityListeners.push(listener),
|
|
91435
|
-
close:
|
|
91436
|
-
|
|
91437
|
-
|
|
91438
|
-
|
|
91439
|
-
|
|
91440
|
-
|
|
91441
|
-
|
|
91442
|
-
|
|
91443
|
-
|
|
91444
|
-
|
|
91469
|
+
close: async () => {
|
|
91470
|
+
await Promise.race([autoPublisher?.flush(), new Promise((resolve) => setTimeout(resolve, CLOSE_FLUSH_MS).unref())]);
|
|
91471
|
+
await new Promise((resolve) => {
|
|
91472
|
+
watcher.close();
|
|
91473
|
+
autoPublisher?.close();
|
|
91474
|
+
relay?.close();
|
|
91475
|
+
direct.close();
|
|
91476
|
+
selections.clearAll();
|
|
91477
|
+
for (const socket of clients) socket.destroy();
|
|
91478
|
+
server.close(() => resolve());
|
|
91479
|
+
server.closeAllConnections();
|
|
91480
|
+
});
|
|
91481
|
+
await documents.close().catch(() => void 0);
|
|
91482
|
+
}
|
|
91445
91483
|
};
|
|
91446
91484
|
}
|
|
91447
91485
|
|
|
@@ -91541,7 +91579,7 @@ function openReady(payload) {
|
|
|
91541
91579
|
}
|
|
91542
91580
|
|
|
91543
91581
|
// package.json
|
|
91544
|
-
var version = "1.
|
|
91582
|
+
var version = "1.28.0";
|
|
91545
91583
|
|
|
91546
91584
|
// src/server/main.ts
|
|
91547
91585
|
async function main() {
|
|
@@ -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,x as i}from"./useSandboxFrame-8NPM2cx_.js";import{_ as a,d as o,f as s,g as c,t as l,v as u,y as d}from"./DocumentLayout-
|
|
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,x as i}from"./useSandboxFrame-8NPM2cx_.js";import{_ as a,d as o,f as s,g as c,t as l,v as u,y as d}from"./DocumentLayout-Byi-FSqu.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:a(),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:o,rendererConfig:s,onEditorReady:e=>{e?.setEditable(!1),y(e??null)},children:(0,p.jsx)(u,{})})})})]})}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-8NPM2cx_.js";import{t as i}from"./index.js";import a from"./CloudDocument-
|
|
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-8NPM2cx_.js";import{t as i}from"./index.js";import a from"./CloudDocument-BWuXcyA5.js";import{DocumentView as o,t as s}from"./DocumentPage-OOUWnUbI.js";var c=e(t(),1),l=`1.28.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};
|