@ours.network/messenger-server 0.1.3 → 1.0.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.
- package/README.md +3 -3
- package/dist/chunks/{chunk-XVPKSCRB.js → chunk-LYV2Y5XE.js} +1 -1
- package/dist/chunks/{server-WGWDNI4R.js → server-A2X3ONIW.js} +163 -25
- package/dist/cli.js +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-7fD4vfRu.js → abnfDiagram-N423BO3Z-CSp6NRwP.js} +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-7fD4vfRu.js.map → abnfDiagram-N423BO3Z-CSp6NRwP.js.map} +1 -1
- package/dist/web/assets/{arc-Cp6lomZC.js → arc-4IykQt9D.js} +2 -2
- package/dist/web/assets/{arc-Cp6lomZC.js.map → arc-4IykQt9D.js.map} +1 -1
- package/dist/web/assets/{architectureDiagram-T3A2C74G-CCfQC7wz.js → architectureDiagram-T3A2C74G-CL9LPWsH.js} +2 -2
- package/dist/web/assets/{architectureDiagram-T3A2C74G-CCfQC7wz.js.map → architectureDiagram-T3A2C74G-CL9LPWsH.js.map} +1 -1
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-t1y3b-Vr.js → blockDiagram-VBNYF7ZC-yC0791PW.js} +2 -2
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-t1y3b-Vr.js.map → blockDiagram-VBNYF7ZC-yC0791PW.js.map} +1 -1
- package/dist/web/assets/{browser-BNMxq99E.js → browser-aSjxdi-G.js} +2 -2
- package/dist/web/assets/{browser-BNMxq99E.js.map → browser-aSjxdi-G.js.map} +1 -1
- package/dist/web/assets/{c4Diagram-5PPSVZJV-_fzHOoNV.js → c4Diagram-5PPSVZJV-DqgWj3tY.js} +2 -2
- package/dist/web/assets/{c4Diagram-5PPSVZJV-_fzHOoNV.js.map → c4Diagram-5PPSVZJV-DqgWj3tY.js.map} +1 -1
- package/dist/web/assets/channel-jfpEU_2y.js +2 -0
- package/dist/web/assets/{channel-a40DqgLG.js.map → channel-jfpEU_2y.js.map} +1 -1
- package/dist/web/assets/{chunk-2GRJ4B5K-C7bSs1Bs.js → chunk-2GRJ4B5K-BWs5rfuK.js} +2 -2
- package/dist/web/assets/{chunk-2GRJ4B5K-C7bSs1Bs.js.map → chunk-2GRJ4B5K-BWs5rfuK.js.map} +1 -1
- package/dist/web/assets/{chunk-2Q5K7J3B-CB6pcjHM.js → chunk-2Q5K7J3B-DKBbJc9E.js} +2 -2
- package/dist/web/assets/{chunk-2Q5K7J3B-CB6pcjHM.js.map → chunk-2Q5K7J3B-DKBbJc9E.js.map} +1 -1
- package/dist/web/assets/{chunk-5RXB4S5H-DGriCScm.js → chunk-5RXB4S5H-IaRBqmdn.js} +2 -2
- package/dist/web/assets/{chunk-5RXB4S5H-DGriCScm.js.map → chunk-5RXB4S5H-IaRBqmdn.js.map} +1 -1
- package/dist/web/assets/{chunk-5VM5RSS4-BXQhNaWP.js → chunk-5VM5RSS4-DdMb5ZAE.js} +2 -2
- package/dist/web/assets/{chunk-5VM5RSS4-BXQhNaWP.js.map → chunk-5VM5RSS4-DdMb5ZAE.js.map} +1 -1
- package/dist/web/assets/{chunk-6Q2QTUOP-DZak_lrB.js → chunk-6Q2QTUOP-CYMlpG2Z.js} +2 -2
- package/dist/web/assets/{chunk-6Q2QTUOP-DZak_lrB.js.map → chunk-6Q2QTUOP-CYMlpG2Z.js.map} +1 -1
- package/dist/web/assets/{chunk-GF5L2VYU-BhIg_LDW.js → chunk-GF5L2VYU-BuKSmGxd.js} +2 -2
- package/dist/web/assets/{chunk-GF5L2VYU-BhIg_LDW.js.map → chunk-GF5L2VYU-BuKSmGxd.js.map} +1 -1
- package/dist/web/assets/{chunk-JWPE2WC7-DRT5vrQ1.js → chunk-JWPE2WC7-Cj_r5SZM.js} +2 -2
- package/dist/web/assets/{chunk-JWPE2WC7-DRT5vrQ1.js.map → chunk-JWPE2WC7-Cj_r5SZM.js.map} +1 -1
- package/dist/web/assets/{chunk-KBJHAD2P-D-1yZi0Q.js → chunk-KBJHAD2P-DCCYhI_8.js} +2 -2
- package/dist/web/assets/{chunk-KBJHAD2P-D-1yZi0Q.js.map → chunk-KBJHAD2P-DCCYhI_8.js.map} +1 -1
- package/dist/web/assets/{chunk-RYQCIY6F-CORP_3zW.js → chunk-RYQCIY6F-D3VqOBN6.js} +2 -2
- package/dist/web/assets/{chunk-RYQCIY6F-CORP_3zW.js.map → chunk-RYQCIY6F-D3VqOBN6.js.map} +1 -1
- package/dist/web/assets/{chunk-XXDRQBXY-k7JDg6pT.js → chunk-XXDRQBXY-BxQt3H1p.js} +2 -2
- package/dist/web/assets/{chunk-XXDRQBXY-k7JDg6pT.js.map → chunk-XXDRQBXY-BxQt3H1p.js.map} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-Cvo-b8Qq.js +2 -0
- package/dist/web/assets/{classDiagram-JCYQIIEL-DEVG-qK8.js.map → classDiagram-JCYQIIEL-Cvo-b8Qq.js.map} +1 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-Cvo-b8Qq.js +2 -0
- package/dist/web/assets/{classDiagram-v2-OCEON4UE-DEVG-qK8.js.map → classDiagram-v2-OCEON4UE-Cvo-b8Qq.js.map} +1 -1
- package/dist/web/assets/{cose-bilkent-JH36ORCC-BRuFmEKf.js → cose-bilkent-JH36ORCC-D2wUnCFw.js} +2 -2
- package/dist/web/assets/{cose-bilkent-JH36ORCC-BRuFmEKf.js.map → cose-bilkent-JH36ORCC-D2wUnCFw.js.map} +1 -1
- package/dist/web/assets/{cynefin-VYW2F7L2-BIBC3C1E.js → cynefin-VYW2F7L2-BhGyk9U8.js} +2 -2
- package/dist/web/assets/{cynefin-VYW2F7L2-BIBC3C1E.js.map → cynefin-VYW2F7L2-BhGyk9U8.js.map} +1 -1
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-B1GP4GAZ.js → cynefinDiagram-MW4NZA55-8xsqHZI1.js} +2 -2
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-B1GP4GAZ.js.map → cynefinDiagram-MW4NZA55-8xsqHZI1.js.map} +1 -1
- package/dist/web/assets/{dagre-VZM6K2ZE-DNG5skDU.js → dagre-VZM6K2ZE-CRZ4XP8D.js} +2 -2
- package/dist/web/assets/{dagre-VZM6K2ZE-DNG5skDU.js.map → dagre-VZM6K2ZE-CRZ4XP8D.js.map} +1 -1
- package/dist/web/assets/{diagram-7IWD3JNH-CQUg24YJ.js → diagram-7IWD3JNH-CH1OHs8U.js} +2 -2
- package/dist/web/assets/{diagram-7IWD3JNH-CQUg24YJ.js.map → diagram-7IWD3JNH-CH1OHs8U.js.map} +1 -1
- package/dist/web/assets/{diagram-B4RE2ZJO-qbAY07Pq.js → diagram-B4RE2ZJO-Cgrp934H.js} +2 -2
- package/dist/web/assets/{diagram-B4RE2ZJO-qbAY07Pq.js.map → diagram-B4RE2ZJO-Cgrp934H.js.map} +1 -1
- package/dist/web/assets/{diagram-LBJQPF4R-BE1Kdgp2.js → diagram-LBJQPF4R-De8kC6ko.js} +2 -2
- package/dist/web/assets/{diagram-LBJQPF4R-BE1Kdgp2.js.map → diagram-LBJQPF4R-De8kC6ko.js.map} +1 -1
- package/dist/web/assets/{diagram-Q27KOJAE-p-O0kqgj.js → diagram-Q27KOJAE-CZuiMy7h.js} +2 -2
- package/dist/web/assets/{diagram-Q27KOJAE-p-O0kqgj.js.map → diagram-Q27KOJAE-CZuiMy7h.js.map} +1 -1
- package/dist/web/assets/{diagram-UB23O5K3-xdGc2e52.js → diagram-UB23O5K3-B9yVlHWE.js} +2 -2
- package/dist/web/assets/{diagram-UB23O5K3-xdGc2e52.js.map → diagram-UB23O5K3-B9yVlHWE.js.map} +1 -1
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-BlJlcjUV.js → ebnfDiagram-BXEA7PRR-Bpz82JkA.js} +2 -2
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-BlJlcjUV.js.map → ebnfDiagram-BXEA7PRR-Bpz82JkA.js.map} +1 -1
- package/dist/web/assets/{erDiagram-JOGREHBK-Bg5-2m62.js → erDiagram-JOGREHBK-C5a_pyMQ.js} +2 -2
- package/dist/web/assets/{erDiagram-JOGREHBK-Bg5-2m62.js.map → erDiagram-JOGREHBK-C5a_pyMQ.js.map} +1 -1
- package/dist/web/assets/{flowDiagram-UKHOOZJN-Dmoemhzb.js → flowDiagram-UKHOOZJN-DbZd2-Tp.js} +2 -2
- package/dist/web/assets/{flowDiagram-UKHOOZJN-Dmoemhzb.js.map → flowDiagram-UKHOOZJN-DbZd2-Tp.js.map} +1 -1
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-Dc-IwQME.js → ganttDiagram-PKOTCBZU-DWI87QsT.js} +2 -2
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-Dc-IwQME.js.map → ganttDiagram-PKOTCBZU-DWI87QsT.js.map} +1 -1
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-CN7YIxrd.js → gitGraphDiagram-DS77QQ5N-CECQyFvT.js} +2 -2
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-CN7YIxrd.js.map → gitGraphDiagram-DS77QQ5N-CECQyFvT.js.map} +1 -1
- package/dist/web/assets/index-0ny2lCl9.js +322 -0
- package/dist/web/assets/index-0ny2lCl9.js.map +1 -0
- package/dist/web/assets/index-B1juqaE-.css +1 -0
- package/dist/web/assets/{infoDiagram-6WML65LV-D-n8AFI2.js → infoDiagram-6WML65LV-DjP_yFP1.js} +2 -2
- package/dist/web/assets/{infoDiagram-6WML65LV-D-n8AFI2.js.map → infoDiagram-6WML65LV-DjP_yFP1.js.map} +1 -1
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-Cn-GcDLv.js → ishikawaDiagram-WSZJBQD7-B2surd2T.js} +2 -2
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-Cn-GcDLv.js.map → ishikawaDiagram-WSZJBQD7-B2surd2T.js.map} +1 -1
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-CPPrighZ.js → journeyDiagram-NVQOT4AX-GvN2Rb4g.js} +2 -2
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-CPPrighZ.js.map → journeyDiagram-NVQOT4AX-GvN2Rb4g.js.map} +1 -1
- package/dist/web/assets/{jsQR-BXk0yjjs.js → jsQR-2VAxy2ky.js} +2 -2
- package/dist/web/assets/{jsQR-BXk0yjjs.js.map → jsQR-2VAxy2ky.js.map} +1 -1
- package/dist/web/assets/{kanban-definition-27J2QSJJ-fT4ITqjW.js → kanban-definition-27J2QSJJ-CrW-YmkU.js} +2 -2
- package/dist/web/assets/{kanban-definition-27J2QSJJ-fT4ITqjW.js.map → kanban-definition-27J2QSJJ-CrW-YmkU.js.map} +1 -1
- package/dist/web/assets/{linear-nobKP7yF.js → linear-CQDslaR_.js} +2 -2
- package/dist/web/assets/{linear-nobKP7yF.js.map → linear-CQDslaR_.js.map} +1 -1
- package/dist/web/assets/{mermaid.core-BisAkIyL.js → mermaid.core-CgO1XnMl.js} +5 -5
- package/dist/web/assets/{mermaid.core-BisAkIyL.js.map → mermaid.core-CgO1XnMl.js.map} +1 -1
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-Bnutlp7Z.js → mindmap-definition-FAOFIHXS-CGUWfBSf.js} +2 -2
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-Bnutlp7Z.js.map → mindmap-definition-FAOFIHXS-CGUWfBSf.js.map} +1 -1
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CzCgLmQq.js → pegDiagram-VL7TDLO6-Co20Kd21.js} +2 -2
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CzCgLmQq.js.map → pegDiagram-VL7TDLO6-Co20Kd21.js.map} +1 -1
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-DEr0yE7X.js → pieDiagram-7S7Q4E2Y-DeuESLr1.js} +2 -2
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-DEr0yE7X.js.map → pieDiagram-7S7Q4E2Y-DeuESLr1.js.map} +1 -1
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-C2LgzIJW.js → quadrantDiagram-CIZ2JOQS-DyG_Rlre.js} +2 -2
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-C2LgzIJW.js.map → quadrantDiagram-CIZ2JOQS-DyG_Rlre.js.map} +1 -1
- package/dist/web/assets/{railroadDiagram-AXF67PYL-x-LatX3A.js → railroadDiagram-AXF67PYL-u8mUY3Rb.js} +2 -2
- package/dist/web/assets/{railroadDiagram-AXF67PYL-x-LatX3A.js.map → railroadDiagram-AXF67PYL-u8mUY3Rb.js.map} +1 -1
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-CGzjkfeX.js → requirementDiagram-LRYGKXZP-PQf6qnA1.js} +2 -2
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-CGzjkfeX.js.map → requirementDiagram-LRYGKXZP-PQf6qnA1.js.map} +1 -1
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-BTISD1zZ.js → sankeyDiagram-W5VNT64P-Dbcg6vhd.js} +2 -2
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-BTISD1zZ.js.map → sankeyDiagram-W5VNT64P-Dbcg6vhd.js.map} +1 -1
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-DbJ7oF41.js → sequenceDiagram-SI44F4Z6-RDUrI-vZ.js} +2 -2
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-DbJ7oF41.js.map → sequenceDiagram-SI44F4Z6-RDUrI-vZ.js.map} +1 -1
- package/dist/web/assets/{sizeCapture-X5ZJPWSS-CRPNTj6C.js → sizeCapture-X5ZJPWSS-JXUi75QS.js} +2 -2
- package/dist/web/assets/{sizeCapture-X5ZJPWSS-CRPNTj6C.js.map → sizeCapture-X5ZJPWSS-JXUi75QS.js.map} +1 -1
- package/dist/web/assets/{stateDiagram-OKZ733FA-nnD41U4P.js → stateDiagram-OKZ733FA-CWejbS_n.js} +2 -2
- package/dist/web/assets/{stateDiagram-OKZ733FA-nnD41U4P.js.map → stateDiagram-OKZ733FA-CWejbS_n.js.map} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-zZFXI91O.js +2 -0
- package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-BW2payX0.js.map → stateDiagram-v2-UEYNNEHI-zZFXI91O.js.map} +1 -1
- package/dist/web/assets/{swimlanes-SLNWSIFB-CUfYRF4W.js → swimlanes-SLNWSIFB-Bq-l7_tt.js} +3 -3
- package/dist/web/assets/{swimlanes-SLNWSIFB-CUfYRF4W.js.map → swimlanes-SLNWSIFB-Bq-l7_tt.js.map} +1 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-D4RKaS7N.js +9 -0
- package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-Bwk7oU9y.js.map → swimlanesDiagram-ULZ7WXOC-D4RKaS7N.js.map} +1 -1
- package/dist/web/assets/{timeline-definition-Z64GVDOM-tQRIpPqw.js → timeline-definition-Z64GVDOM-BM1qRR9l.js} +2 -2
- package/dist/web/assets/{timeline-definition-Z64GVDOM-tQRIpPqw.js.map → timeline-definition-Z64GVDOM-BM1qRR9l.js.map} +1 -1
- package/dist/web/assets/{vennDiagram-T6HMQDX7-B6xd83uW.js → vennDiagram-T6HMQDX7-nJF5zPxG.js} +2 -2
- package/dist/web/assets/{vennDiagram-T6HMQDX7-B6xd83uW.js.map → vennDiagram-T6HMQDX7-nJF5zPxG.js.map} +1 -1
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-CpKP_cr3.js → wardleyDiagram-T6FBY63Y-DTFZj_j_.js} +2 -2
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-CpKP_cr3.js.map → wardleyDiagram-T6FBY63Y-DTFZj_j_.js.map} +1 -1
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-BeTRjYgI.js → xychartDiagram-ELKLHX3M-D0sYk6hI.js} +2 -2
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-BeTRjYgI.js.map → xychartDiagram-ELKLHX3M-D0sYk6hI.js.map} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +5 -5
- package/dist/web/version.json +1 -1
- package/package.json +3 -3
- package/dist/web/assets/channel-a40DqgLG.js +0 -2
- package/dist/web/assets/classDiagram-JCYQIIEL-DEVG-qK8.js +0 -2
- package/dist/web/assets/classDiagram-v2-OCEON4UE-DEVG-qK8.js +0 -2
- package/dist/web/assets/index-Bja4dmXL.css +0 -1
- package/dist/web/assets/index-D7uZ1ZOu.js +0 -322
- package/dist/web/assets/index-D7uZ1ZOu.js.map +0 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-BW2payX0.js +0 -2
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-Bwk7oU9y.js +0 -9
package/README.md
CHANGED
|
@@ -110,9 +110,9 @@ The focused client does not persist messages, identities, receipts, or API
|
|
|
110
110
|
responses in browser storage. Its service worker caches only the application
|
|
111
111
|
shell and static assets for offline launch; all `/api/*` requests bypass it.
|
|
112
112
|
|
|
113
|
-
The web UI
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
The web UI and its same-origin transport adapter are maintained together in
|
|
114
|
+
this repository; their presentation scope and transport exclusions are recorded
|
|
115
|
+
in `web/src/CANONICAL_UI_PROVENANCE.md`. The interface
|
|
116
116
|
includes grouped identity-root contacts; contact add, approval, rename and
|
|
117
117
|
removal; one-time/public invite creation and revocation; public bio editing;
|
|
118
118
|
message and attachment replies; drag/drop/paste and picker uploads with bounded
|
|
@@ -37,7 +37,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
37
37
|
var define_MESSENGER_BUILD_INFO_default;
|
|
38
38
|
var init_define_MESSENGER_BUILD_INFO = __esm({
|
|
39
39
|
"<define:__MESSENGER_BUILD_INFO__>"() {
|
|
40
|
-
define_MESSENGER_BUILD_INFO_default = { name: "@ours.network/messenger-server", version: "0.1
|
|
40
|
+
define_MESSENGER_BUILD_INFO_default = { name: "@ours.network/messenger-server", version: "1.0.1", sha: "d760891b84055feeb0e95bf4e4356af534c00b83", dirty: false };
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
publicEngineError,
|
|
8
8
|
publicInternalError,
|
|
9
9
|
reportFailure
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LYV2Y5XE.js";
|
|
11
11
|
|
|
12
12
|
// node_modules/bn.js/lib/bn.js
|
|
13
13
|
var require_bn = __commonJS({
|
|
@@ -11130,12 +11130,18 @@ init_define_MESSENGER_BUILD_INFO();
|
|
|
11130
11130
|
var ROOM_VOICE_ROLE = "room";
|
|
11131
11131
|
var ROOM_KIND_PREFIX = "room_";
|
|
11132
11132
|
var ROOM_IDENTITY_PREFIX = "ours-cowork-room:";
|
|
11133
|
+
var NAMED_ROOM_IDENTITY_PREFIX = "ours-cowork:";
|
|
11133
11134
|
var CURRENT_ROOM_IDENTITY_PREFIX = "ours-cowork-";
|
|
11134
11135
|
var LEGACY_ROOM_IDENTITY_PREFIX = "cowork-room-";
|
|
11135
11136
|
var LOWER_CROCKFORD_ULID = /^[0-7][0-9a-hjkmnp-tv-z]{25}$/;
|
|
11137
|
+
var FRIENDLY_ROOM_SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
11138
|
+
var MAX_FRIENDLY_ROOM_SLUG_LENGTH = 25;
|
|
11139
|
+
var MAX_ROOM_NAME_CHARACTERS = 64;
|
|
11140
|
+
var MAX_FUTURE_KIND_CHARACTERS = 80;
|
|
11141
|
+
var MAX_FUTURE_TEXT_CHARACTERS = 1e3;
|
|
11136
11142
|
var isObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11137
11143
|
var isNonEmptyString = (value) => typeof value === "string" && value.length > 0;
|
|
11138
|
-
function
|
|
11144
|
+
function parseRoomBodyShape(text, requireSignature) {
|
|
11139
11145
|
if (typeof text !== "string") return null;
|
|
11140
11146
|
const trimmed = text.trim();
|
|
11141
11147
|
if (!trimmed.startsWith("{") || !trimmed.endsWith("}")) return null;
|
|
@@ -11149,7 +11155,7 @@ function parseRoomBody(text) {
|
|
|
11149
11155
|
if (parsed.version !== 1) return null;
|
|
11150
11156
|
if (!isNonEmptyString(parsed.kind) || !parsed.kind.startsWith(ROOM_KIND_PREFIX)) return null;
|
|
11151
11157
|
if (!isNonEmptyString(parsed.room_id)) return null;
|
|
11152
|
-
if (!isNonEmptyString(parsed.signature)) return null;
|
|
11158
|
+
if (requireSignature && !isNonEmptyString(parsed.signature)) return null;
|
|
11153
11159
|
return parsed;
|
|
11154
11160
|
}
|
|
11155
11161
|
function authorOf(body) {
|
|
@@ -11160,7 +11166,8 @@ function authorOf(body) {
|
|
|
11160
11166
|
};
|
|
11161
11167
|
}
|
|
11162
11168
|
function humanizeRoomKind(kind) {
|
|
11163
|
-
const
|
|
11169
|
+
const boundedKind = Array.from(String(kind)).slice(0, MAX_FUTURE_KIND_CHARACTERS).join("");
|
|
11170
|
+
const words = boundedKind.replace(/^room_/, "").split("_").filter(Boolean);
|
|
11164
11171
|
if (words.length === 0) return "Room notice";
|
|
11165
11172
|
return words.join(" ").replace(/^./, (c4) => c4.toUpperCase());
|
|
11166
11173
|
}
|
|
@@ -11170,20 +11177,66 @@ function renderRoomMessage(body) {
|
|
|
11170
11177
|
const author = authorOf(body);
|
|
11171
11178
|
const text = typeof body.text === "string" ? body.text : "";
|
|
11172
11179
|
const version = Number.isSafeInteger(body.briefing_version) && body.briefing_version > 0 ? body.briefing_version : null;
|
|
11180
|
+
const common = {
|
|
11181
|
+
roomName: normalizedRoomName(body.room_name) ?? "",
|
|
11182
|
+
authoredAt: isNonEmptyString(body.at) ? body.at : ""
|
|
11183
|
+
};
|
|
11173
11184
|
switch (kind) {
|
|
11174
11185
|
case "room_msg":
|
|
11175
|
-
return author.role === ROOM_VOICE_ROLE ? systemLine(kind, "Room", text || "Room notice") : { variant: "chat", kind, author: author.name || "Unknown member", role: author.role, label: "", text };
|
|
11186
|
+
return author.role === ROOM_VOICE_ROLE ? systemLine(kind, "Room message", text || "Room notice", { ...common, authoredBy: author.name }) : { variant: "chat", kind, author: author.name || "Unknown member", role: author.role, label: "", text, ...common };
|
|
11176
11187
|
case "room_briefing":
|
|
11177
|
-
return systemLine(
|
|
11188
|
+
return systemLine(
|
|
11189
|
+
kind,
|
|
11190
|
+
version === null ? "Room briefing" : `Room briefing \xB7 v${version}`,
|
|
11191
|
+
text || "The room briefing was updated.",
|
|
11192
|
+
{ ...common, authoredBy: author.name, presentation: "briefing" }
|
|
11193
|
+
);
|
|
11178
11194
|
case "room_role_briefing": {
|
|
11179
11195
|
const role = isNonEmptyString(body.briefing_role) ? body.briefing_role : "";
|
|
11180
11196
|
const label = ["Role briefing", role, version === null ? "" : `v${version}`].filter(Boolean).join(" \xB7 ");
|
|
11181
|
-
return systemLine(kind, label, text || "Your role briefing was updated."
|
|
11197
|
+
return systemLine(kind, label, text || "Your role briefing was updated.", {
|
|
11198
|
+
...common,
|
|
11199
|
+
authoredBy: author.name,
|
|
11200
|
+
presentation: "role",
|
|
11201
|
+
details: role ? [`Role: ${role}`] : []
|
|
11202
|
+
});
|
|
11203
|
+
}
|
|
11204
|
+
case "room_membership": {
|
|
11205
|
+
const membership = isObject(body.membership) ? body.membership : {};
|
|
11206
|
+
const details = [
|
|
11207
|
+
isNonEmptyString(membership.action) ? `Status: ${humanizeValue(membership.action)}` : "",
|
|
11208
|
+
isNonEmptyString(membership.alias) ? `Member: ${membership.alias}` : "",
|
|
11209
|
+
isNonEmptyString(membership.role) ? `Role: ${membership.role}` : "",
|
|
11210
|
+
Number.isSafeInteger(membership.epoch) && membership.epoch >= 0 ? `Epoch: ${membership.epoch}` : ""
|
|
11211
|
+
].filter(Boolean);
|
|
11212
|
+
return systemLine(kind, "Membership", text || membershipFallback(membership), {
|
|
11213
|
+
...common,
|
|
11214
|
+
authoredBy: author.name,
|
|
11215
|
+
presentation: "membership",
|
|
11216
|
+
details
|
|
11217
|
+
});
|
|
11218
|
+
}
|
|
11219
|
+
case "room_file": {
|
|
11220
|
+
const filename2 = isNonEmptyString(body.filename) ? body.filename : "Shared file";
|
|
11221
|
+
const details = [
|
|
11222
|
+
isNonEmptyString(body.mime) ? `Type: ${body.mime}` : "",
|
|
11223
|
+
Number.isSafeInteger(body.size) && body.size >= 0 ? `Size: ${formatBytes(body.size)}` : "",
|
|
11224
|
+
isNonEmptyString(body.sha256) ? `SHA-256: ${boundedToken(body.sha256)}` : ""
|
|
11225
|
+
].filter(Boolean);
|
|
11226
|
+
return systemLine(kind, "Room file", filename2, {
|
|
11227
|
+
...common,
|
|
11228
|
+
authoredBy: author.name,
|
|
11229
|
+
role: author.role,
|
|
11230
|
+
presentation: "file",
|
|
11231
|
+
details
|
|
11232
|
+
});
|
|
11182
11233
|
}
|
|
11183
|
-
case "room_membership":
|
|
11184
|
-
return systemLine(kind, "Membership", text || membershipFallback(body.membership));
|
|
11185
11234
|
case "room_not_member":
|
|
11186
|
-
return systemLine(kind, "Room", "You are no longer a member of this room."
|
|
11235
|
+
return systemLine(kind, "Room access", "You are no longer a member of this room.", {
|
|
11236
|
+
...common,
|
|
11237
|
+
presentation: "lifecycle",
|
|
11238
|
+
details: ["Status: Removed"]
|
|
11239
|
+
});
|
|
11187
11240
|
default:
|
|
11188
11241
|
return text ? {
|
|
11189
11242
|
variant: author.role && author.role !== ROOM_VOICE_ROLE ? "chat" : "system",
|
|
@@ -11191,35 +11244,84 @@ function renderRoomMessage(body) {
|
|
|
11191
11244
|
author: author.role && author.role !== ROOM_VOICE_ROLE ? author.name || "Unknown member" : "",
|
|
11192
11245
|
role: author.role && author.role !== ROOM_VOICE_ROLE ? author.role : "",
|
|
11193
11246
|
label: author.role && author.role !== ROOM_VOICE_ROLE ? "" : humanizeRoomKind(kind),
|
|
11194
|
-
text
|
|
11195
|
-
|
|
11247
|
+
text: boundedFutureText(text),
|
|
11248
|
+
...common
|
|
11249
|
+
} : systemLine(kind, humanizeRoomKind(kind), `${humanizeRoomKind(kind)} from the room.`, common);
|
|
11196
11250
|
}
|
|
11197
11251
|
}
|
|
11198
11252
|
function roomLineForContact(announcedContact, text) {
|
|
11199
11253
|
if (!isCoworkRoomContact(announcedContact)) return null;
|
|
11200
|
-
|
|
11254
|
+
const expectedRoomId = currentRoomMetadata(announcedContact)?.roomId ?? null;
|
|
11255
|
+
const expectedLegacyRoomId = legacyRoomId(announcedContact);
|
|
11256
|
+
const namedRoom = namedRoomLabel(announcedContact);
|
|
11257
|
+
const body = parseRoomBodyShape(text, expectedRoomId === null && namedRoom === null);
|
|
11258
|
+
if (body !== null && expectedRoomId !== null && body.room_id !== expectedRoomId) {
|
|
11259
|
+
return rejectedEnvelopeLine("Room provenance mismatch");
|
|
11260
|
+
}
|
|
11261
|
+
if (body !== null && expectedLegacyRoomId !== null && body.room_id !== expectedLegacyRoomId) {
|
|
11262
|
+
return rejectedEnvelopeLine("Room provenance mismatch");
|
|
11263
|
+
}
|
|
11264
|
+
return renderRoomMessage(body);
|
|
11265
|
+
}
|
|
11266
|
+
function normalizedRoomName(value) {
|
|
11267
|
+
if (typeof value !== "string" || /[\p{Cc}\p{Cf}]/u.test(value)) return null;
|
|
11268
|
+
const name = value.trim().normalize("NFC");
|
|
11269
|
+
const length = Array.from(name).length;
|
|
11270
|
+
return length >= 1 && length <= MAX_ROOM_NAME_CHARACTERS ? name : null;
|
|
11201
11271
|
}
|
|
11202
11272
|
function legacyRoomId(announced) {
|
|
11203
11273
|
if (typeof announced !== "string" || !announced.startsWith(LEGACY_ROOM_IDENTITY_PREFIX)) return null;
|
|
11204
11274
|
const roomId = announced.slice(LEGACY_ROOM_IDENTITY_PREFIX.length);
|
|
11205
11275
|
return LOWER_CROCKFORD_ULID.test(roomId) ? roomId : null;
|
|
11206
11276
|
}
|
|
11207
|
-
function
|
|
11277
|
+
function namedRoomLabel(announced) {
|
|
11278
|
+
if (typeof announced !== "string" || !announced.startsWith(NAMED_ROOM_IDENTITY_PREFIX)) return null;
|
|
11279
|
+
return normalizedRoomName(announced.slice(NAMED_ROOM_IDENTITY_PREFIX.length));
|
|
11280
|
+
}
|
|
11281
|
+
function currentRoomMetadata(announced) {
|
|
11208
11282
|
if (typeof announced !== "string" || !announced.startsWith(CURRENT_ROOM_IDENTITY_PREFIX)) return null;
|
|
11209
11283
|
const suffix = announced.slice(CURRENT_ROOM_IDENTITY_PREFIX.length);
|
|
11210
|
-
|
|
11284
|
+
if (LOWER_CROCKFORD_ULID.test(suffix)) return { roomId: suffix, slug: null };
|
|
11285
|
+
const roomId = suffix.slice(-26);
|
|
11286
|
+
const separator = suffix.at(-27);
|
|
11287
|
+
const slug = suffix.slice(0, -27);
|
|
11288
|
+
if (separator !== "-" || !LOWER_CROCKFORD_ULID.test(roomId)) return null;
|
|
11289
|
+
if (slug.length < 1 || slug.length > MAX_FRIENDLY_ROOM_SLUG_LENGTH) return null;
|
|
11290
|
+
return FRIENDLY_ROOM_SLUG.test(slug) ? { roomId, slug } : null;
|
|
11211
11291
|
}
|
|
11212
11292
|
function isCoworkRoomContact(announced) {
|
|
11213
11293
|
const identity = String(announced ?? "").trim();
|
|
11214
11294
|
const v04 = identity.startsWith(ROOM_IDENTITY_PREFIX) && identity.slice(ROOM_IDENTITY_PREFIX.length).trim().length > 0;
|
|
11215
|
-
return v04 ||
|
|
11295
|
+
return v04 || namedRoomLabel(announced) !== null || currentRoomMetadata(announced) !== null || legacyRoomId(announced) !== null;
|
|
11216
11296
|
}
|
|
11217
11297
|
function contactMessagePreview(announcedContact, text) {
|
|
11218
11298
|
const line = roomLineForContact(announcedContact, text);
|
|
11219
11299
|
return line ? roomMessagePreview(line) : String(text ?? "");
|
|
11220
11300
|
}
|
|
11221
|
-
function systemLine(kind, label, text) {
|
|
11222
|
-
return { variant: "system", kind, author: "", role: "", label, text };
|
|
11301
|
+
function systemLine(kind, label, text, extra = {}) {
|
|
11302
|
+
return { variant: "system", kind, author: "", role: "", label, text, ...extra };
|
|
11303
|
+
}
|
|
11304
|
+
function humanizeValue(value) {
|
|
11305
|
+
return String(value).replace(/_/g, " ").replace(/^./, (character) => character.toUpperCase());
|
|
11306
|
+
}
|
|
11307
|
+
function formatBytes(value) {
|
|
11308
|
+
if (value < 1024) return `${value} B`;
|
|
11309
|
+
if (value < 1024 * 1024) return `${(value / 1024).toFixed(1)} KiB`;
|
|
11310
|
+
return `${(value / (1024 * 1024)).toFixed(1)} MiB`;
|
|
11311
|
+
}
|
|
11312
|
+
function boundedToken(value) {
|
|
11313
|
+
const token = String(value);
|
|
11314
|
+
return token.length <= 20 ? token : `${token.slice(0, 12)}\u2026${token.slice(-6)}`;
|
|
11315
|
+
}
|
|
11316
|
+
function boundedFutureText(value) {
|
|
11317
|
+
const characters = Array.from(String(value));
|
|
11318
|
+
return characters.length <= MAX_FUTURE_TEXT_CHARACTERS ? characters.join("") : `${characters.slice(0, MAX_FUTURE_TEXT_CHARACTERS).join("")}\u2026`;
|
|
11319
|
+
}
|
|
11320
|
+
function rejectedEnvelopeLine(reason) {
|
|
11321
|
+
return systemLine("room_invalid", "Room notice", "This room envelope could not be displayed safely.", {
|
|
11322
|
+
presentation: "lifecycle",
|
|
11323
|
+
details: [`Status: ${reason}`]
|
|
11324
|
+
});
|
|
11223
11325
|
}
|
|
11224
11326
|
function membershipFallback(membership) {
|
|
11225
11327
|
if (!isObject(membership)) return "The room membership changed.";
|
|
@@ -11236,6 +11338,26 @@ function roomMessagePreview(line) {
|
|
|
11236
11338
|
function collapse(text) {
|
|
11237
11339
|
return String(text ?? "").replace(/\s+/g, " ").trim();
|
|
11238
11340
|
}
|
|
11341
|
+
function roomContactLabel(announced) {
|
|
11342
|
+
const identity = String(announced ?? "").trim();
|
|
11343
|
+
if (identity.startsWith(ROOM_IDENTITY_PREFIX)) {
|
|
11344
|
+
const shortName = identity.slice(ROOM_IDENTITY_PREFIX.length).trim();
|
|
11345
|
+
return shortName || null;
|
|
11346
|
+
}
|
|
11347
|
+
const named = namedRoomLabel(announced);
|
|
11348
|
+
if (named !== null) return named;
|
|
11349
|
+
const current = currentRoomMetadata(announced);
|
|
11350
|
+
if (current?.slug) {
|
|
11351
|
+
const readable = current.slug.replace(/-/g, " ");
|
|
11352
|
+
return readable.replace(/[a-z]/, (letter) => letter.toUpperCase());
|
|
11353
|
+
}
|
|
11354
|
+
if (current) return `Room ${current.roomId.slice(0, 8)}`;
|
|
11355
|
+
const roomId = legacyRoomId(announced);
|
|
11356
|
+
return roomId === null ? null : `Room ${roomId.slice(0, 8)}`;
|
|
11357
|
+
}
|
|
11358
|
+
function contactDisplayName(announced) {
|
|
11359
|
+
return roomContactLabel(announced) ?? String(announced ?? "");
|
|
11360
|
+
}
|
|
11239
11361
|
|
|
11240
11362
|
// src/conversation.ts
|
|
11241
11363
|
var DEFAULT_PAGE_LIMIT = 50;
|
|
@@ -11247,6 +11369,7 @@ var ConversationPageError = class extends Error {
|
|
|
11247
11369
|
};
|
|
11248
11370
|
function previewOf(announcedContact, newest) {
|
|
11249
11371
|
if (!newest) return "";
|
|
11372
|
+
if (newest.dir !== "in") return newest.text;
|
|
11250
11373
|
return contactMessagePreview(announcedContact, newest.text);
|
|
11251
11374
|
}
|
|
11252
11375
|
function projectHistoryPage(contact, history, summary, opts = {}) {
|
|
@@ -11574,6 +11697,19 @@ function publicFetchedFiles(value) {
|
|
|
11574
11697
|
...Array.isArray(result.requested) || result.requested === null ? { requested: result.requested } : {}
|
|
11575
11698
|
};
|
|
11576
11699
|
}
|
|
11700
|
+
function presentContacts(value) {
|
|
11701
|
+
return {
|
|
11702
|
+
...value,
|
|
11703
|
+
contacts: value.contacts.map((contact) => ({
|
|
11704
|
+
...contact,
|
|
11705
|
+
display_name: contactDisplayName(contact.name)
|
|
11706
|
+
})),
|
|
11707
|
+
pending: value.pending.map((contact) => ({
|
|
11708
|
+
...contact,
|
|
11709
|
+
display_name: contactDisplayName(contact.name)
|
|
11710
|
+
}))
|
|
11711
|
+
};
|
|
11712
|
+
}
|
|
11577
11713
|
async function resolveContact(client, contact) {
|
|
11578
11714
|
const contacts = await client.listContacts();
|
|
11579
11715
|
const row = contacts.contacts.find((item) => item.container_id === contact || item.name === contact);
|
|
@@ -11809,7 +11945,7 @@ var ROUTES = {
|
|
|
11809
11945
|
// is not.
|
|
11810
11946
|
"GET /api/messages/incoming": async ({ client }) => client.listIncomingMessages(),
|
|
11811
11947
|
// ---- contacts ------------------------------------------------------------
|
|
11812
|
-
"GET /api/contacts": async ({ client }) => client.listContacts(),
|
|
11948
|
+
"GET /api/contacts": async ({ client }) => presentContacts(await client.listContacts()),
|
|
11813
11949
|
// The old browser surface called this `listContactRoots`. It is not a separate
|
|
11814
11950
|
// operation: roots ride along on the contacts view.
|
|
11815
11951
|
"GET /api/contacts/roots": async ({ client }) => ({ roots: (await client.listContacts()).roots }),
|
|
@@ -13007,11 +13143,12 @@ async function projectFromSdk(client, job) {
|
|
|
13007
13143
|
if (!message || message.direction !== "in" || message.peer.id !== job.contactId) {
|
|
13008
13144
|
throw new Error("canonical message projection is not ready");
|
|
13009
13145
|
}
|
|
13146
|
+
const announcedSender = job.senderName ?? message.peer.name ?? "New message";
|
|
13010
13147
|
return {
|
|
13011
13148
|
v: 1,
|
|
13012
13149
|
kind: "message",
|
|
13013
|
-
title:
|
|
13014
|
-
body: message.text,
|
|
13150
|
+
title: contactDisplayName(announcedSender),
|
|
13151
|
+
body: contactMessagePreview(announcedSender, message.text),
|
|
13015
13152
|
contact_id: job.contactId,
|
|
13016
13153
|
wire_id: job.wireId,
|
|
13017
13154
|
url
|
|
@@ -13027,7 +13164,7 @@ async function projectFromSdk(client, job) {
|
|
|
13027
13164
|
return {
|
|
13028
13165
|
v: 1,
|
|
13029
13166
|
kind,
|
|
13030
|
-
title: file.from.name || job.senderName || label,
|
|
13167
|
+
title: contactDisplayName(file.from.name || job.senderName || label),
|
|
13031
13168
|
body: `${label}: ${file.filename}`,
|
|
13032
13169
|
contact_id: job.contactId,
|
|
13033
13170
|
wire_id: job.wireId,
|
|
@@ -13165,8 +13302,9 @@ async function pushEventFor(client, record) {
|
|
|
13165
13302
|
if (message) break;
|
|
13166
13303
|
}
|
|
13167
13304
|
if (!message) throw new Error("canonical message was not available for push projection");
|
|
13168
|
-
const
|
|
13169
|
-
const
|
|
13305
|
+
const announcedSender = nonEmpty4(record.sender_name) ? record.sender_name : "New message";
|
|
13306
|
+
const sender = contactDisplayName(announcedSender);
|
|
13307
|
+
const body = contactMessagePreview(announcedSender, message.text);
|
|
13170
13308
|
return { v: 1, kind: "message", title: sender, body, contact_id: contactId, wire_id: wireId, url };
|
|
13171
13309
|
}
|
|
13172
13310
|
if (record.event === "file_received") {
|
|
@@ -13183,7 +13321,7 @@ async function pushEventFor(client, record) {
|
|
|
13183
13321
|
return {
|
|
13184
13322
|
v: 1,
|
|
13185
13323
|
kind,
|
|
13186
|
-
title: file.from.name || label,
|
|
13324
|
+
title: contactDisplayName(file.from.name || label),
|
|
13187
13325
|
body: `${label}: ${file.filename}`,
|
|
13188
13326
|
contact_id: contactId,
|
|
13189
13327
|
wire_id: wireId,
|
package/dist/cli.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
init_define_MESSENGER_BUILD_INFO,
|
|
6
6
|
operatorError,
|
|
7
7
|
reportFailure
|
|
8
|
-
} from "./chunks/chunk-
|
|
8
|
+
} from "./chunks/chunk-LYV2Y5XE.js";
|
|
9
9
|
|
|
10
10
|
// src/cli.ts
|
|
11
11
|
init_define_MESSENGER_BUILD_INFO();
|
|
@@ -119,7 +119,7 @@ async function main() {
|
|
|
119
119
|
}
|
|
120
120
|
if (process.argv.length !== 3) throw new ConfigurationError("serve does not accept command-line options");
|
|
121
121
|
const cfg = loadConfig();
|
|
122
|
-
const { start } = await import("./chunks/server-
|
|
122
|
+
const { start } = await import("./chunks/server-A2X3ONIW.js");
|
|
123
123
|
const handle = await start(cfg, BUILD_INFO);
|
|
124
124
|
let closing = false;
|
|
125
125
|
const shutdown = (signal) => {
|
package/dist/web/assets/{abnfDiagram-N423BO3Z-7fD4vfRu.js → abnfDiagram-N423BO3Z-CSp6NRwP.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-
|
|
2
|
-
//# sourceMappingURL=abnfDiagram-N423BO3Z-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-6Q2QTUOP-CYMlpG2Z.js";import{p as f}from"./chunk-JWPE2WC7-Cj_r5SZM.js";import{_ as n,l as o}from"./mermaid.core-CgO1XnMl.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-BhGyk9U8.js";import"./index-0ny2lCl9.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};
|
|
2
|
+
//# sourceMappingURL=abnfDiagram-N423BO3Z-CSp6NRwP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abnfDiagram-N423BO3Z-
|
|
1
|
+
{"version":3,"file":"abnfDiagram-N423BO3Z-CSp6NRwP.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/abnfDiagram-N423BO3Z.mjs"],"sourcesContent":["import {\n db,\n getStyles,\n renderer\n} from \"./chunk-6Q2QTUOP.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport \"./chunk-3NCLNEKW.mjs\";\nimport \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/railroad/parser/abnfParser.ts\nimport {\n MermaidParseError,\n createRailroadAbnfServices\n} from \"@mermaid-js/parser\";\nvar langiumParser = createRailroadAbnfServices().RailroadAbnf.parser.LangiumParser;\nvar transformAlternation = /* @__PURE__ */ __name((alt) => {\n const alternatives = alt.alternatives.map(transformConcatenation);\n if (alternatives.length === 1) {\n return alternatives[0];\n }\n return {\n type: \"choice\",\n alternatives\n };\n}, \"transformAlternation\");\nvar transformConcatenation = /* @__PURE__ */ __name((concat) => {\n const elements = concat.elements.map(transformElement);\n if (elements.length === 1) {\n return elements[0];\n }\n return {\n type: \"sequence\",\n elements\n };\n}, \"transformConcatenation\");\nvar parseRepeat = /* @__PURE__ */ __name((repeat) => {\n if (repeat.includes(\"*\")) {\n const [minStr, maxStr] = repeat.split(\"*\");\n const min = minStr ? parseInt(minStr, 10) : 0;\n const max = maxStr ? parseInt(maxStr, 10) : Infinity;\n return { min, max };\n }\n const exact = parseInt(repeat, 10);\n return { min: exact, max: exact };\n}, \"parseRepeat\");\nvar transformElement = /* @__PURE__ */ __name((element) => {\n const inner = transformPrimary(element.primary);\n if (!element.repeat) {\n return inner;\n }\n const { min, max } = parseRepeat(element.repeat);\n if (min === 0 && max === 1) {\n return { type: \"optional\", element: inner };\n }\n return {\n type: \"repetition\",\n element: inner,\n min,\n max\n };\n}, \"transformElement\");\nvar transformPrimary = /* @__PURE__ */ __name((primary) => {\n switch (primary.$type) {\n case \"AbnfStringLiteral\":\n return {\n type: \"terminal\",\n value: primary.value\n };\n case \"AbnfNumVal\":\n return {\n type: \"terminal\",\n value: primary.value\n };\n case \"AbnfRuleName\":\n return {\n type: \"nonterminal\",\n name: primary.name\n };\n case \"AbnfGroup\":\n return transformAlternation(primary.element);\n case \"AbnfOptionalGroup\":\n return {\n type: \"optional\",\n element: transformAlternation(primary.element)\n };\n default:\n throw new Error(`Unsupported ABNF primary node: ${primary.$type}`);\n }\n}, \"transformPrimary\");\nvar transformRule = /* @__PURE__ */ __name((rule) => {\n return {\n name: rule.name,\n definition: transformAlternation(rule.definition)\n };\n}, \"transformRule\");\nvar populateDb = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n if (ast.title) {\n db.setTitle(ast.title);\n }\n ast.rules.map((rule) => db.addRule(transformRule(rule)));\n}, \"populateDb\");\nvar parser = {\n parse: /* @__PURE__ */ __name((input) => {\n db.clear();\n log.debug(\"[ABNF Parser] Starting Langium parse\");\n const result = langiumParser.parse(input);\n if (result.lexerErrors.length > 0 || result.parserErrors.length > 0) {\n throw new MermaidParseError(result);\n }\n const ast = result.value;\n log.debug(\"[ABNF Parser] Parsed rules:\", ast.rules.length);\n populateDb(ast);\n log.debug(\"[ABNF Parser] Parse complete\");\n }, \"parse\"),\n parser: {\n yy: db\n }\n};\n\n// src/diagrams/railroad/abnfDiagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles: getStyles\n};\nexport {\n diagram\n};\n"],"names":["langiumParser","createRailroadAbnfServices","transformAlternation","__name","alt","alternatives","transformConcatenation","concat","elements","transformElement","parseRepeat","repeat","minStr","maxStr","min","max","exact","element","inner","transformPrimary","primary","transformRule","rule","populateDb","ast","populateCommonDb","db","parser","input","log","result","MermaidParseError","diagram","renderer","getStyles"],"mappings":"4PAsBA,IAAIA,EAAgBC,EAA0B,EAAG,aAAa,OAAO,cACjEC,EAAuCC,EAAQC,GAAQ,CACzD,MAAMC,EAAeD,EAAI,aAAa,IAAIE,CAAsB,EAChE,OAAID,EAAa,SAAW,EACnBA,EAAa,CAAC,EAEhB,CACL,KAAM,SACN,aAAAA,CACJ,CACA,EAAG,sBAAsB,EACrBC,EAAyCH,EAAQI,GAAW,CAC9D,MAAMC,EAAWD,EAAO,SAAS,IAAIE,CAAgB,EACrD,OAAID,EAAS,SAAW,EACfA,EAAS,CAAC,EAEZ,CACL,KAAM,WACN,SAAAA,CACJ,CACA,EAAG,wBAAwB,EACvBE,EAA8BP,EAAQQ,GAAW,CACnD,GAAIA,EAAO,SAAS,GAAG,EAAG,CACxB,KAAM,CAACC,EAAQC,CAAM,EAAIF,EAAO,MAAM,GAAG,EACnCG,EAAMF,EAAS,SAASA,EAAQ,EAAE,EAAI,EACtCG,EAAMF,EAAS,SAASA,EAAQ,EAAE,EAAI,IAC5C,MAAO,CAAE,IAAAC,EAAK,IAAAC,CAAG,CACnB,CACA,MAAMC,EAAQ,SAASL,EAAQ,EAAE,EACjC,MAAO,CAAE,IAAKK,EAAO,IAAKA,CAAK,CACjC,EAAG,aAAa,EACZP,EAAmCN,EAAQc,GAAY,CACzD,MAAMC,EAAQC,EAAiBF,EAAQ,OAAO,EAC9C,GAAI,CAACA,EAAQ,OACX,OAAOC,EAET,KAAM,CAAE,IAAAJ,EAAK,IAAAC,CAAG,EAAKL,EAAYO,EAAQ,MAAM,EAC/C,OAAIH,IAAQ,GAAKC,IAAQ,EAChB,CAAE,KAAM,WAAY,QAASG,CAAK,EAEpC,CACL,KAAM,aACN,QAASA,EACT,IAAAJ,EACA,IAAAC,CACJ,CACA,EAAG,kBAAkB,EACjBI,EAAmChB,EAAQiB,GAAY,CACzD,OAAQA,EAAQ,MAAK,CACnB,IAAK,oBACH,MAAO,CACL,KAAM,WACN,MAAOA,EAAQ,KACvB,EACI,IAAK,aACH,MAAO,CACL,KAAM,WACN,MAAOA,EAAQ,KACvB,EACI,IAAK,eACH,MAAO,CACL,KAAM,cACN,KAAMA,EAAQ,IACtB,EACI,IAAK,YACH,OAAOlB,EAAqBkB,EAAQ,OAAO,EAC7C,IAAK,oBACH,MAAO,CACL,KAAM,WACN,QAASlB,EAAqBkB,EAAQ,OAAO,CACrD,EACI,QACE,MAAM,IAAI,MAAM,kCAAkCA,EAAQ,KAAK,EAAE,CACvE,CACA,EAAG,kBAAkB,EACjBC,EAAgClB,EAAQmB,IACnC,CACL,KAAMA,EAAK,KACX,WAAYpB,EAAqBoB,EAAK,UAAU,CACpD,GACG,eAAe,EACdC,EAA6BpB,EAAQqB,GAAQ,CAC/CC,EAAiBD,EAAKE,CAAE,EACpBF,EAAI,OACNE,EAAG,SAASF,EAAI,KAAK,EAEvBA,EAAI,MAAM,IAAKF,GAASI,EAAG,QAAQL,EAAcC,CAAI,CAAC,CAAC,CACzD,EAAG,YAAY,EACXK,EAAS,CACX,MAAuBxB,EAAQyB,GAAU,CACvCF,EAAG,MAAK,EACRG,EAAI,MAAM,sCAAsC,EAChD,MAAMC,EAAS9B,EAAc,MAAM4B,CAAK,EACxC,GAAIE,EAAO,YAAY,OAAS,GAAKA,EAAO,aAAa,OAAS,EAChE,MAAM,IAAIC,EAAkBD,CAAM,EAEpC,MAAMN,EAAMM,EAAO,MACnBD,EAAI,MAAM,8BAA+BL,EAAI,MAAM,MAAM,EACzDD,EAAWC,CAAG,EACdK,EAAI,MAAM,8BAA8B,CAC1C,EAAG,OAAO,EACV,OAAQ,CACN,GAAIH,CACR,CACA,EAGIM,EAAU,CACZ,OAAAL,EACA,GAAAD,EACA,SAAAO,EACA,OAAQC,CACV","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-
|
|
2
|
-
//# sourceMappingURL=arc-
|
|
1
|
+
import{Y as ln,$ as an,a0 as F,a1 as q,a2 as j,a3 as un,a4 as y,a5 as tn,a6 as J,a7 as _,a8 as rn,a9 as o,aa as on,ab as sn,ac as fn}from"./mermaid.core-CgO1XnMl.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(on(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=A.apply(this,arguments)-un,B=rn(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(rn(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<an)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(fn((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-an/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|
|
2
|
+
//# sourceMappingURL=arc-4IykQt9D.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arc-Cp6lomZC.js","sources":["../../../node_modules/d3-shape/src/arc.js"],"sourcesContent":["import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"arc-4IykQt9D.js","sources":["../../../node_modules/d3-shape/src/arc.js"],"sourcesContent":["import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n"],"names":["arcInnerRadius","d","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","epsilon","cornerTangents","r1","rc","cw","x01","y01","lo","sqrt","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","max","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3arc","innerRadius","outerRadius","cornerRadius","constant","padRadius","startAngle","endAngle","padAngle","context","path","withPath","arc","buffer","r0","a0","halfPi","a1","da","abs","tau","cos","sin","a01","a11","a00","a10","da0","da1","ap","rp","min","rc0","rc1","t0","t1","p0","asin","p1","oc","pi","ax","ay","bx","by","kc","acos","lc","atan2","a","_"],"mappings":"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","x_google_ignoreList":[0]}
|