ryugi-artifacts 1.27.0 → 1.29.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 +60 -23
- package/dist/viewer/{CloudDocument-BWuXcyA5.js → CloudDocument-DaS9ceOa.js} +1 -1
- package/dist/viewer/{CloudLiveDocument-WbsGlhSr.js → CloudLiveDocument-BDga8aEj.js} +1 -1
- package/dist/viewer/{DocumentLayout-Byi-FSqu.js → DocumentLayout-DYTnCgfH.js} +139 -139
- package/dist/viewer/DocumentPage-BLL9x3pY.js +1 -0
- package/dist/viewer/{abnfDiagram-VCTEODGH-B76YgVSl.js → abnfDiagram-VCTEODGH-B4hF9R2U.js} +1 -1
- package/dist/viewer/{ar-SA-G6X2FPQ2-DLDk3Fr1.js → ar-SA-G6X2FPQ2-B0MSU5l9.js} +1 -1
- package/dist/viewer/{architectureDiagram-5GKGNRK7-DJ2b0H6u.js → architectureDiagram-5GKGNRK7-Cd8Xx-hV.js} +1 -1
- package/dist/viewer/{az-AZ-76LH7QW2-BNE3cqGu.js → az-AZ-76LH7QW2-DQpVWUnU.js} +1 -1
- package/dist/viewer/{bg-BG-XCXSNQG7-Ba6gRSVy.js → bg-BG-XCXSNQG7-CFWizXaa.js} +1 -1
- package/dist/viewer/{blockDiagram-I7D4REHJ-CFQQSd-A.js → blockDiagram-I7D4REHJ-C2yu7mK-.js} +1 -1
- package/dist/viewer/{bn-BD-2XOGV67Q-ByJdIgWh.js → bn-BD-2XOGV67Q-DoeoV9n5.js} +1 -1
- package/dist/viewer/{c4Diagram-7LVT6UL2-CbJzjhvB.js → c4Diagram-7LVT6UL2-B5orhRgE.js} +1 -1
- package/dist/viewer/{ca-ES-6MX7JW3Y-Bn0HEIfv.js → ca-ES-6MX7JW3Y-B6_hkxTX.js} +1 -1
- package/dist/viewer/{chunk-4HAMMTFA-B9aeqO2F.js → chunk-4HAMMTFA-BGybz_si.js} +1 -1
- package/dist/viewer/{chunk-EIO257PC-DPOhWzKh.js → chunk-EIO257PC-D9F5NHVA.js} +1 -1
- package/dist/viewer/{chunk-GMAD6QVW-BpmihfGs.js → chunk-GMAD6QVW-C0XbWNVH.js} +1 -1
- package/dist/viewer/{chunk-GVQU2GXP-DF7F0sgS.js → chunk-GVQU2GXP-vRk2m9ao.js} +1 -1
- package/dist/viewer/{chunk-IMKFNOWR-C-YO3NQ2.js → chunk-IMKFNOWR-DmpawLXk.js} +1 -1
- package/dist/viewer/{chunk-L3NEJ4N5-DlmncLgE.js → chunk-L3NEJ4N5-DUZfiZWj.js} +1 -1
- package/dist/viewer/{chunk-OSK3NFVY-CL7h-mBo.js → chunk-OSK3NFVY-BvVtm98g.js} +1 -1
- package/dist/viewer/{chunk-PWAF6VOD-B8BPkPFW.js → chunk-PWAF6VOD-BugGgSc5.js} +1 -1
- package/dist/viewer/{chunk-SHT3W25Y-BpyOxjUT.js → chunk-SHT3W25Y-BIOqc_9G.js} +1 -1
- package/dist/viewer/{chunk-SVP7TREG-Rl8tIF8A.js → chunk-SVP7TREG-CzXvGBkp.js} +1 -1
- package/dist/viewer/{chunk-TICWLB2K-B9QJjkf4.js → chunk-TICWLB2K-BGDOLNPy.js} +1 -1
- package/dist/viewer/{classDiagram-ZZMXUADV-DLD_6HAr.js → classDiagram-ZZMXUADV-1LD9MdPj.js} +1 -1
- package/dist/viewer/{classDiagram-v2-VYDZK3BY-DLD_6HAr.js → classDiagram-v2-VYDZK3BY-1LD9MdPj.js} +1 -1
- package/dist/viewer/{cs-CZ-2BRQDIVT-CP2adRFB.js → cs-CZ-2BRQDIVT-DvQX9epx.js} +1 -1
- package/dist/viewer/{cynefinDiagram-5FMLGOSQ-D9ppMSAA.js → cynefinDiagram-5FMLGOSQ-Ck6iqdN1.js} +1 -1
- package/dist/viewer/{da-DK-5WZEPLOC-C854LrBe.js → da-DK-5WZEPLOC-CIkD-mT-.js} +1 -1
- package/dist/viewer/{dagre-GXQ25YYZ-CwJRgiLt.js → dagre-GXQ25YYZ-Bw4MivVe.js} +1 -1
- package/dist/viewer/{de-DE-XR44H4JA-DwXVAz5d.js → de-DE-XR44H4JA-CkZg3nnD.js} +1 -1
- package/dist/viewer/{diagram-S7CK7UJ4-BvzLjbsx.js → diagram-S7CK7UJ4-DcU-yw6G.js} +1 -1
- package/dist/viewer/{diagram-UQ7AKVKN-DVhbPMxc.js → diagram-UQ7AKVKN-DnKTK9PW.js} +1 -1
- package/dist/viewer/{diagram-VX7I27RA-CiZPn2lF.js → diagram-VX7I27RA-BBU-ZVb0.js} +1 -1
- package/dist/viewer/{diagram-Z3DM3KII-DXPygDoX.js → diagram-Z3DM3KII-CKk14xfI.js} +1 -1
- package/dist/viewer/{dist-ClaGSrjh.js → dist-7oXSkB_P.js} +1 -1
- package/dist/viewer/{dist-8IahudhA.js → dist-8kfzVrJL.js} +1 -1
- package/dist/viewer/{dist-FgUijJl1.js → dist-B0J-I7r2.js} +1 -1
- package/dist/viewer/{dist-CK0OLGCF.js → dist-B5g7S3C3.js} +1 -1
- package/dist/viewer/{dist-B5lO5wnx.js → dist-B9K9D6SC.js} +1 -1
- package/dist/viewer/{dist-BzgaaK2T.js → dist-BKBE5pov.js} +1 -1
- package/dist/viewer/{dist-BPFV7HsR.js → dist-BRb242lg.js} +1 -1
- package/dist/viewer/{dist-SiyuNGPI.js → dist-BUHcTBPN.js} +1 -1
- package/dist/viewer/{dist-qDaS3xgU.js → dist-BhZ13kjD.js} +1 -1
- package/dist/viewer/{dist-k5Bay5go.js → dist-BkV7Dy_o.js} +1 -1
- package/dist/viewer/{dist-B1Ptot19.js → dist-CCKpuvTI.js} +1 -1
- package/dist/viewer/{dist-9M_yJcOs.js → dist-CGL9Y16x.js} +1 -1
- package/dist/viewer/{dist-QOs0jlFD.js → dist-CYozWt7T.js} +1 -1
- package/dist/viewer/{dist-CvwCGpfr.js → dist-C_kp_dU8.js} +1 -1
- package/dist/viewer/{dist-DNNj2aMA.js → dist-CqRkCb8-.js} +1 -1
- package/dist/viewer/{dist-vne2aEcf.js → dist-DH-ho6_2.js} +1 -1
- package/dist/viewer/{dist-DP6MYfia.js → dist-DImjGUkS.js} +1 -1
- package/dist/viewer/{dist-CbUvo-PD.js → dist-DVVjoE8q.js} +1 -1
- package/dist/viewer/{dist-CGrJjp88.js → dist-D_WrKoQ5.js} +4 -4
- package/dist/viewer/{dist-Be1IcO6Q.js → dist-DcUDFAUF.js} +1 -1
- package/dist/viewer/{dist-BOP0LsZa.js → dist-Dj78KV6Q.js} +1 -1
- package/dist/viewer/{dist-CFgqvLZ2.js → dist-DmaYQh00.js} +1 -1
- package/dist/viewer/{dist-CY7v7M0d.js → dist-DpLi82dR.js} +1 -1
- package/dist/viewer/{dist-tNvHCVhP.js → dist-uAqigpP8.js} +1 -1
- package/dist/viewer/{ebnfDiagram-PWID7BFC-8drQoH7p.js → ebnfDiagram-PWID7BFC-CUH9C71X.js} +1 -1
- package/dist/viewer/{el-GR-BZB4AONW-BljLqMZ_.js → el-GR-BZB4AONW-Cl1kWlzB.js} +1 -1
- package/dist/viewer/{en-B4ZKOASM-BfV31NDk.js → en-B4ZKOASM-CT3OzVWV.js} +1 -1
- package/dist/viewer/{erDiagram-RLTQ6QDP-0fkPgBMS.js → erDiagram-RLTQ6QDP-BZbuVZrG.js} +1 -1
- package/dist/viewer/{es-ES-U4NZUMDT-Da1qIc4a.js → es-ES-U4NZUMDT-BAD-ccHs.js} +1 -1
- package/dist/viewer/{eu-ES-A7QVB2H4-CQp4OaxH.js → eu-ES-A7QVB2H4-Cj2NDws-.js} +1 -1
- package/dist/viewer/{fa-IR-HGAKTJCU-BvXOUytP.js → fa-IR-HGAKTJCU-C0FVEGIZ.js} +1 -1
- package/dist/viewer/{fi-FI-Z5N7JZ37-Bgx3Gedw.js → fi-FI-Z5N7JZ37-D2AdBx48.js} +1 -1
- package/dist/viewer/flowDiagram-HODETNUW-CAHqUwH1.js +1 -0
- package/dist/viewer/{fr-FR-RHASNOE6-C-fh7evs.js → fr-FR-RHASNOE6-BFreNJCR.js} +1 -1
- package/dist/viewer/{ganttDiagram-EL5Y4UJY-BvfQnVc2.js → ganttDiagram-EL5Y4UJY-CF5GNdln.js} +1 -1
- package/dist/viewer/{gl-ES-HMX3MZ6V-DYeSOfSa.js → gl-ES-HMX3MZ6V-DkkhEoWc.js} +1 -1
- package/dist/viewer/{he-IL-6SHJWFNN-DnGoCpZV.js → he-IL-6SHJWFNN-VvaCcliL.js} +1 -1
- package/dist/viewer/{hi-IN-IWLTKZ5I-Bx7eNYDf.js → hi-IN-IWLTKZ5I-DJSuk02I.js} +1 -1
- package/dist/viewer/{hu-HU-A5ZG7DT2-DijmTnRH.js → hu-HU-A5ZG7DT2-CNvqWgoH.js} +1 -1
- package/dist/viewer/{id-ID-SAP4L64H-DCmr4bop.js → id-ID-SAP4L64H-BdPRkPOp.js} +1 -1
- package/dist/viewer/{image-GAAHSSAO-BHoF2Vsu.js → image-GAAHSSAO-C5hSHSJ9.js} +1 -1
- package/dist/viewer/index.html +1 -1
- package/dist/viewer/index.js +10 -10
- package/dist/viewer/index2.css +1 -1
- package/dist/viewer/{infoDiagram-27XIBGKW-C-j3_tDE.js → infoDiagram-27XIBGKW-Dz669Ti5.js} +1 -1
- package/dist/viewer/{ishikawaDiagram-5VMMS53U-CrrJKAfN.js → ishikawaDiagram-5VMMS53U-BO2EV1vm.js} +1 -1
- package/dist/viewer/{it-IT-JPQ66NNP-B_1ONva5.js → it-IT-JPQ66NNP-BAm2zqLD.js} +1 -1
- package/dist/viewer/{ja-JP-DBVTYXUO-COt_mEp7.js → ja-JP-DBVTYXUO-Dux__a-p.js} +1 -1
- package/dist/viewer/{journeyDiagram-3NMN7TZE-Bb_vzuuE.js → journeyDiagram-3NMN7TZE-B8pnfhpY.js} +1 -1
- package/dist/viewer/{kaa-6HZHGXH3-CtBWieDY.js → kaa-6HZHGXH3-5P_fyC_H.js} +1 -1
- package/dist/viewer/{kab-KAB-ZGHBKWFO-B1isjGxm.js → kab-KAB-ZGHBKWFO-9hTPNvCU.js} +1 -1
- package/dist/viewer/{kanban-definition-UXKFOSKX-C8L3qBCD.js → kanban-definition-UXKFOSKX-B8Pjf3dY.js} +1 -1
- package/dist/viewer/{kk-KZ-P5N5QNE5-6r2ptdHm.js → kk-KZ-P5N5QNE5-CGou3WF6.js} +1 -1
- package/dist/viewer/{km-KH-HSX4SM5Z-DYRHwFjm.js → km-KH-HSX4SM5Z-DOyT_tEV.js} +1 -1
- package/dist/viewer/{ko-KR-MTYHY66A-DtXg7Y--.js → ko-KR-MTYHY66A-DftVvGn6.js} +1 -1
- package/dist/viewer/{ku-TR-6OUDTVRD-6p-SD1d8.js → ku-TR-6OUDTVRD-CVdlBZmx.js} +1 -1
- package/dist/viewer/{lt-LT-XHIRWOB4-CJ-U7kN9.js → lt-LT-XHIRWOB4-CUlT0RyT.js} +1 -1
- package/dist/viewer/{lv-LV-5QDEKY6T-CGuh47HO.js → lv-LV-5QDEKY6T-6wWFJoM0.js} +1 -1
- package/dist/viewer/{mindmap-definition-YA3MSWOX-0eisP1RB.js → mindmap-definition-YA3MSWOX-BcDNUqMO.js} +1 -1
- package/dist/viewer/{mr-IN-CRQNXWMA-C5M5PNpN.js → mr-IN-CRQNXWMA-DnzpVGTc.js} +1 -1
- package/dist/viewer/{my-MM-5M5IBNSE-DIENd2KG.js → my-MM-5M5IBNSE-Cm4pCcPj.js} +1 -1
- package/dist/viewer/{nb-NO-T6EIAALU-DXVgc5SE.js → nb-NO-T6EIAALU-BcuxE4U7.js} +1 -1
- package/dist/viewer/{nl-NL-IS3SIHDZ-8qumey8Z.js → nl-NL-IS3SIHDZ-CQexxASS.js} +1 -1
- package/dist/viewer/{nn-NO-6E72VCQL-CDCdtw1B.js → nn-NO-6E72VCQL-C6pPjApO.js} +1 -1
- package/dist/viewer/{oc-FR-POXYY2M6-Fc7Bh2Zf.js → oc-FR-POXYY2M6-CovxAT6s.js} +1 -1
- package/dist/viewer/{pa-IN-N4M65BXN-B_4vn2yt.js → pa-IN-N4M65BXN-CM-0Bi_k.js} +1 -1
- package/dist/viewer/{pegDiagram-XKGWAZYB-CuIetWDp.js → pegDiagram-XKGWAZYB-DHtXRebi.js} +1 -1
- package/dist/viewer/percentages-BXMCSKIN-dSCeY2Vz.js +1 -0
- package/dist/viewer/{pieDiagram-E7YTZNPT-DJZP8D-Y.js → pieDiagram-E7YTZNPT-CxPTGmMv.js} +1 -1
- package/dist/viewer/{pl-PL-T2D74RX3-De3SYqY6.js → pl-PL-T2D74RX3-Ce8egCLJ.js} +1 -1
- package/dist/viewer/{prod-C348eXRq.js → prod-DLkZlcd2.js} +8 -8
- package/dist/viewer/{pt-BR-5N22H2LF-7nvQLf7O.js → pt-BR-5N22H2LF-CwjXtf87.js} +1 -1
- package/dist/viewer/{pt-PT-UZXXM6DQ-DtY6VsPE.js → pt-PT-UZXXM6DQ-Q9ejxTg5.js} +1 -1
- package/dist/viewer/{quadrantDiagram-AXDQQJYC-mSYxZRrZ.js → quadrantDiagram-AXDQQJYC-z7Tz0_0k.js} +1 -1
- package/dist/viewer/{railroadDiagram-O6MQD6OU-BB4IbxIB.js → railroadDiagram-O6MQD6OU-DwyNHCPY.js} +1 -1
- package/dist/viewer/{requirementDiagram-BXWQKSXE-BsFDYkmh.js → requirementDiagram-BXWQKSXE-BTL35j9A.js} +1 -1
- package/dist/viewer/{ro-RO-JPDTUUEW-C2UUKQUY.js → ro-RO-JPDTUUEW-J9XQ6U80.js} +1 -1
- package/dist/viewer/{ru-RU-B4JR7IUQ-Bl2--IBH.js → ru-RU-B4JR7IUQ-BBA1AdyW.js} +1 -1
- package/dist/viewer/{sequenceDiagram-WJ2MYXX4-BGfuVGG1.js → sequenceDiagram-WJ2MYXX4-DLJNXQ8o.js} +1 -1
- package/dist/viewer/{si-LK-N5RQ5JYF-DPrn5n2l.js → si-LK-N5RQ5JYF-U__xLKqD.js} +1 -1
- package/dist/viewer/{sk-SK-C5VTKIMK-COiEvIHd.js → sk-SK-C5VTKIMK-DnbPvh29.js} +1 -1
- package/dist/viewer/{sl-SI-NN7IZMDC-B_lH3TnL.js → sl-SI-NN7IZMDC-C8Eoz0pl.js} +1 -1
- package/dist/viewer/{stateDiagram-D77RDMKH-DpCE9DL-.js → stateDiagram-D77RDMKH-BfdN30HE.js} +1 -1
- package/dist/viewer/{stateDiagram-v2-MP3YSRHH-C0rABr6s.js → stateDiagram-v2-MP3YSRHH-CXwzb1Xj.js} +1 -1
- package/dist/viewer/subset-shared.chunk-Cd4b8GJL.js +1 -0
- package/dist/viewer/{subset-worker.chunk-B6O2iSJs.js → subset-worker.chunk-B0UjzhBX.js} +1 -1
- package/dist/viewer/{sv-SE-XGPEYMSR-DVjXhx9f.js → sv-SE-XGPEYMSR-B82M1B45.js} +1 -1
- package/dist/viewer/{swimlanes-42K2YHIH-DUwALMlk.js → swimlanes-42K2YHIH-CVnTCkti.js} +1 -1
- package/dist/viewer/{swimlanesDiagram-VR7AAH4N-BdC_UzvH.js → swimlanesDiagram-VR7AAH4N-CAsLGxAi.js} +1 -1
- package/dist/viewer/{ta-IN-2NMHFXQM-CMaH6ve7.js → ta-IN-2NMHFXQM-CDtoSBaY.js} +1 -1
- package/dist/viewer/{th-TH-HPSO5L25-VndAJUSw.js → th-TH-HPSO5L25-CiNISjF4.js} +1 -1
- package/dist/viewer/{timeline-definition-24CTP7MA-w3XLPWpz.js → timeline-definition-24CTP7MA-DCb3aOrx.js} +1 -1
- package/dist/viewer/{tr-TR-DEFEU3FU-BBdNf75x.js → tr-TR-DEFEU3FU-CJmFpjiQ.js} +1 -1
- package/dist/viewer/{uk-UA-QMV73CPH-BXI-Vp7U.js → uk-UA-QMV73CPH-BMLxQJ4h.js} +1 -1
- package/dist/viewer/useSandboxFrame-rZO0A3sZ.js +58 -0
- package/dist/viewer/{vennDiagram-4TSXK5OY-DctGHju1.js → vennDiagram-4TSXK5OY-CuIg1PcQ.js} +1 -1
- package/dist/viewer/{vi-VN-M7AON7JQ-bJa-6QK7.js → vi-VN-M7AON7JQ-BOwqnpoG.js} +1 -1
- package/dist/viewer/{wardleyDiagram-VM6X3IG4-BQZsrNDk.js → wardleyDiagram-VM6X3IG4-D7TjtyXK.js} +1 -1
- package/dist/viewer/{xychartDiagram-S5SC5T6Z-CgaT07RV.js → xychartDiagram-S5SC5T6Z-D6WkQ4f2.js} +1 -1
- package/dist/viewer/{zh-CN-LNUGB5OW-C2xLUp3o.js → zh-CN-LNUGB5OW-BGvgy1n4.js} +1 -1
- package/dist/viewer/{zh-HK-E62DVLB3-C19QGzmQ.js → zh-HK-E62DVLB3-D7vhuMPK.js} +1 -1
- package/dist/viewer/{zh-TW-RAJ6MFWO-BgCf3zhS.js → zh-TW-RAJ6MFWO-vpZcm2KN.js} +1 -1
- package/package.json +1 -1
- package/dist/viewer/DocumentPage-OOUWnUbI.js +0 -1
- package/dist/viewer/flowDiagram-HODETNUW-7aJd59hN.js +0 -1
- package/dist/viewer/percentages-BXMCSKIN-7tGDPb_F.js +0 -1
- package/dist/viewer/subset-shared.chunk-BAO8Kml0.js +0 -1
- package/dist/viewer/useSandboxFrame-8NPM2cx_.js +0 -58
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.29.0");
|
|
929
932
|
return 0;
|
|
930
933
|
}
|
|
931
934
|
if (command === "--help" || command === "-h") {
|
package/dist/server.cjs
CHANGED
|
@@ -89912,6 +89912,13 @@ var CloudRefused = class extends Error {
|
|
|
89912
89912
|
};
|
|
89913
89913
|
var CloudCopyGone = class extends Error {
|
|
89914
89914
|
};
|
|
89915
|
+
var PlanLimited = class extends CloudRefused {
|
|
89916
|
+
constructor(message, upgradeUrl) {
|
|
89917
|
+
super(402, message);
|
|
89918
|
+
this.upgradeUrl = upgradeUrl;
|
|
89919
|
+
}
|
|
89920
|
+
upgradeUrl;
|
|
89921
|
+
};
|
|
89915
89922
|
var CreateRefused = class extends CloudRefused {
|
|
89916
89923
|
constructor(detail) {
|
|
89917
89924
|
super(502, `cloud refused (403): ${detail}`);
|
|
@@ -89933,6 +89940,17 @@ async function readJsonBody(req) {
|
|
|
89933
89940
|
return null;
|
|
89934
89941
|
}
|
|
89935
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
|
+
}
|
|
89936
89954
|
async function errorMessage(res) {
|
|
89937
89955
|
const text2 = await res.text().catch(() => "");
|
|
89938
89956
|
try {
|
|
@@ -89987,7 +90005,7 @@ function createCloudRoutes(options) {
|
|
|
89987
90005
|
return res;
|
|
89988
90006
|
};
|
|
89989
90007
|
const expectOk = async (res) => {
|
|
89990
|
-
if (!res.ok)
|
|
90008
|
+
if (!res.ok) await refuse(res);
|
|
89991
90009
|
return res;
|
|
89992
90010
|
};
|
|
89993
90011
|
const artifactEntry = (key2) => readConfig(configFile).config.artifacts[key2] ?? {};
|
|
@@ -90015,14 +90033,14 @@ function createCloudRoutes(options) {
|
|
|
90015
90033
|
const reserve = async (ref) => {
|
|
90016
90034
|
const key2 = `${ref.type}/${ref.id}`;
|
|
90017
90035
|
const entry = artifactEntry(key2);
|
|
90018
|
-
if (entry.cloud) return entry.cloud.url;
|
|
90019
|
-
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 };
|
|
90020
90038
|
try {
|
|
90021
90039
|
await createRecord2(ref, entry.visibility ?? "private");
|
|
90022
|
-
} catch {
|
|
90023
|
-
return null;
|
|
90040
|
+
} catch (err) {
|
|
90041
|
+
return err instanceof PlanLimited ? { url: null, limit: { message: err.message, upgradeUrl: err.upgradeUrl } } : { url: null };
|
|
90024
90042
|
}
|
|
90025
|
-
return artifactEntry(key2).cloud?.url ?? null;
|
|
90043
|
+
return { url: artifactEntry(key2).cloud?.url ?? null };
|
|
90026
90044
|
};
|
|
90027
90045
|
const prepare = async (ref) => {
|
|
90028
90046
|
const inspected = await options.inspect(ref);
|
|
@@ -90083,7 +90101,7 @@ function createCloudRoutes(options) {
|
|
|
90083
90101
|
};
|
|
90084
90102
|
let res = entry.cloud ? await commit(entry.cloud.id, requested) : await commit(await create3(), void 0);
|
|
90085
90103
|
if (res.status === 404 && entry.cloud) {
|
|
90086
|
-
if (!recreate) throw new CloudCopyGone();
|
|
90104
|
+
if (!recreate && entry.cloud.publishedAt) throw new CloudCopyGone();
|
|
90087
90105
|
res = await commit(await create3(), void 0);
|
|
90088
90106
|
}
|
|
90089
90107
|
const published = await (await expectOk(res)).json();
|
|
@@ -90138,6 +90156,7 @@ function createCloudRoutes(options) {
|
|
|
90138
90156
|
return { kind: "opted-out" };
|
|
90139
90157
|
}
|
|
90140
90158
|
if (err instanceof SignedOut) return { kind: "signed-out" };
|
|
90159
|
+
if (err instanceof PlanLimited) return { kind: "cannot-create", message: err.message, upgradeUrl: err.upgradeUrl };
|
|
90141
90160
|
if (err instanceof CreateRefused) return { kind: "cannot-create", message: err.detail };
|
|
90142
90161
|
if (err instanceof CloudRefused && err.status === 404) return { kind: "gone" };
|
|
90143
90162
|
if (err instanceof CloudRefused && err.status === 413) return { kind: "not-ready" };
|
|
@@ -90197,7 +90216,7 @@ function createCloudRoutes(options) {
|
|
|
90197
90216
|
return;
|
|
90198
90217
|
}
|
|
90199
90218
|
if (action === "reserve" && ref && method === "POST") {
|
|
90200
|
-
sendJson(res, 200,
|
|
90219
|
+
sendJson(res, 200, await serialized(`${ref.type}/${ref.id}`, () => reserve(ref)));
|
|
90201
90220
|
return;
|
|
90202
90221
|
}
|
|
90203
90222
|
if (action === "publish" && ref && method === "DELETE") {
|
|
@@ -90274,6 +90293,8 @@ function createCloudRoutes(options) {
|
|
|
90274
90293
|
if (res.headersSent) return;
|
|
90275
90294
|
if (err instanceof SignedOut) {
|
|
90276
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 });
|
|
90277
90298
|
} else if (err instanceof CloudRefused) {
|
|
90278
90299
|
sendJson(res, err.status, { error: err.message });
|
|
90279
90300
|
} else {
|
|
@@ -90435,10 +90456,11 @@ var import_node_fs20 = __toESM(require("node:fs"), 1);
|
|
|
90435
90456
|
var IDLE_MS = 5 * 60 * 1e3;
|
|
90436
90457
|
var MAX_WAIT_MS = 15 * 60 * 1e3;
|
|
90437
90458
|
var SIGNED_OUT_MESSAGE = "auto-publish paused: the Ryugi Cloud sign-in expired";
|
|
90459
|
+
var FAILURES_BEFORE_NOTICE = 3;
|
|
90438
90460
|
function isNotice(value) {
|
|
90439
90461
|
if (typeof value !== "object" || value === null) return false;
|
|
90440
90462
|
const { id: id2, kind, message } = value;
|
|
90441
|
-
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";
|
|
90442
90464
|
}
|
|
90443
90465
|
function readAutoPublishState(file) {
|
|
90444
90466
|
let raw = {};
|
|
@@ -90461,9 +90483,10 @@ function createAutoPublisher(options) {
|
|
|
90461
90483
|
let notice = saved.notice;
|
|
90462
90484
|
let paused = saved.paused;
|
|
90463
90485
|
const remarked = /* @__PURE__ */ new Set();
|
|
90486
|
+
const failures = /* @__PURE__ */ new Map();
|
|
90464
90487
|
const save = () => writeJsonAtomic(options.stateFile, { dirty: [...dirty], notice, paused });
|
|
90465
|
-
const raise = (kind, message) => {
|
|
90466
|
-
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 } : {} };
|
|
90467
90490
|
};
|
|
90468
90491
|
let idleTimer = null;
|
|
90469
90492
|
let maxTimer = null;
|
|
@@ -90490,6 +90513,15 @@ function createAutoPublisher(options) {
|
|
|
90490
90513
|
for (const key2 of [...dirty]) {
|
|
90491
90514
|
remarked.delete(key2);
|
|
90492
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
|
+
}
|
|
90493
90525
|
if (outcome.kind === "signed-out") {
|
|
90494
90526
|
paused = { token };
|
|
90495
90527
|
raise("signed-out", SIGNED_OUT_MESSAGE);
|
|
@@ -90502,7 +90534,7 @@ function createAutoPublisher(options) {
|
|
|
90502
90534
|
} else if (outcome.kind === "opted-out" || outcome.kind === "gone") {
|
|
90503
90535
|
dirty.delete(key2);
|
|
90504
90536
|
} else if (outcome.kind === "cannot-create") {
|
|
90505
|
-
raise("cap", outcome.message);
|
|
90537
|
+
raise("cap", outcome.message, outcome.upgradeUrl);
|
|
90506
90538
|
} else {
|
|
90507
90539
|
retry = true;
|
|
90508
90540
|
}
|
|
@@ -90658,6 +90690,7 @@ var CONTENT_CSP = {
|
|
|
90658
90690
|
document: "sandbox; default-src 'none'",
|
|
90659
90691
|
html: "sandbox allow-scripts allow-modals allow-forms allow-popups allow-downloads"
|
|
90660
90692
|
};
|
|
90693
|
+
var CLOSE_FLUSH_MS = 5e3;
|
|
90661
90694
|
var DIRECT_RELAY_ROUTE = /^\/relay\/a\/([A-Za-z0-9_-]{1,64})$/;
|
|
90662
90695
|
var SHELL_ROUTE = new RegExp(`^/(?:(${ARTIFACT_TYPES.join("|")})/([^/]+)/?)?$`);
|
|
90663
90696
|
var API_ARTIFACT_ROUTE = /^\/api\/artifacts\/([^/]+)\/([^/]+)$/;
|
|
@@ -91433,16 +91466,20 @@ async function startArtifactsServer(options) {
|
|
|
91433
91466
|
for (const change of initialChanges) listener(change.ref, change.payload, change.files);
|
|
91434
91467
|
},
|
|
91435
91468
|
onActivity: (listener) => activityListeners.push(listener),
|
|
91436
|
-
close:
|
|
91437
|
-
|
|
91438
|
-
|
|
91439
|
-
|
|
91440
|
-
|
|
91441
|
-
|
|
91442
|
-
|
|
91443
|
-
|
|
91444
|
-
|
|
91445
|
-
|
|
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
|
+
}
|
|
91446
91483
|
};
|
|
91447
91484
|
}
|
|
91448
91485
|
|
|
@@ -91542,7 +91579,7 @@ function openReady(payload) {
|
|
|
91542
91579
|
}
|
|
91543
91580
|
|
|
91544
91581
|
// package.json
|
|
91545
|
-
var version = "1.
|
|
91582
|
+
var version = "1.29.0";
|
|
91546
91583
|
|
|
91547
91584
|
// src/server/main.ts
|
|
91548
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-
|
|
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-rZO0A3sZ.js";import{_ as a,d as o,f as s,g as c,t as l,v as u,y as d}from"./DocumentLayout-DYTnCgfH.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-
|
|
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-rZO0A3sZ.js";import{t as i}from"./index.js";import a from"./CloudDocument-DaS9ceOa.js";import{DocumentView as o,t as s}from"./DocumentPage-BLL9x3pY.js";var c=e(t(),1),l=`1.29.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};
|