elanous 0.2.27 → 0.2.29
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/apps/pwa/out/404/index.html +1 -1
- package/apps/pwa/out/404.html +1 -1
- package/apps/pwa/out/_next/static/{Ev2jivDMTSoEc-5rIXdcy → cIpv5nU9AycwYWZI9H589}/_buildManifest.js +1 -1
- package/apps/pwa/out/_next/static/chunks/{ab4d57c2.e90bc2cb31949045.js → 058a98ba.7eb28d5e6dc03565.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{4565-67e4c620597965c8.js → 1015-9cba22a5a4554797.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/1084-4e66af7376a18db7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1106.3a6410b7b0c70ad4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1127.32fc642f70423506.js +8 -0
- package/apps/pwa/out/_next/static/chunks/{1516.83dd2c1b86b4e507.js → 1142.65d002789ab3af7d.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/1189-d9b8e1995a831fae.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1224.6da98c7ad0eb7dd8.js +34 -0
- package/apps/pwa/out/_next/static/chunks/1370.4e3e2558f111fd5d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1514-b7da377fdc4eb17a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1516.dfaceff3fd2d0e0d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1577.3c24c32584e10d70.js +286 -0
- package/apps/pwa/out/_next/static/chunks/161.130a569855c4d68c.js +24 -0
- package/apps/pwa/out/_next/static/chunks/1782-59db1b5aa06df38a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{1743.563d3168e95825ef.js → 1852.7f7b53991fcb99ef.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/1864.16da9556e78a9236.js +1 -0
- package/apps/pwa/out/_next/static/chunks/1b6f6b2a.aff090122be3726e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2341.e8a9135e5b910dd5.js +36 -0
- package/apps/pwa/out/_next/static/chunks/257.10afdbe3520f2fc2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2658.87550e692dc493f6.js +64 -0
- package/apps/pwa/out/_next/static/chunks/2673.85e2f02efae7a85f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2766-bee623b37472ed63.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2794.6d836872b0bf43e2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2806.eb57ced1a528ed39.js +1 -0
- package/apps/pwa/out/_next/static/chunks/283.7a121c4910e6dad7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{65ebff95.081daeff622d238e.js → 285adb1a.5654e605dddf86d2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/2870.1dc29aa5fc01f09f.js +115 -0
- package/apps/pwa/out/_next/static/chunks/293.fd38e77ce5d48103.js +1 -0
- package/apps/pwa/out/_next/static/chunks/2993-5952a1cd3fd5d441.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3160-95c96f4d2a21dd26.js +1 -0
- package/apps/pwa/out/_next/static/chunks/32-a523427c5bd5ed00.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3280.af38002a6424a905.js +90 -0
- package/apps/pwa/out/_next/static/chunks/328bb3ab-6628a1114fe3fb3b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3292-5ddffdb2f517b44f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9917-9e26abc5f7772735.js → 3396-97b97928c49190c9.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{6196.34d6b229079e9e28.js → 3403.7199205e65124486.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/3523.d3231daaf7aba993.js +1 -0
- package/apps/pwa/out/_next/static/chunks/3763.577de3181e1e6ea0.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4138-cc56b0938ef72783.js +1 -0
- package/apps/pwa/out/_next/static/chunks/419.736c0d6f426249a7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4255-8350c43d307a8875.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{6def8a8e.c81f9ca41028eccf.js → 425cfc4d.fb91158e3971c39f.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4352.a4954693499c2714.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4421-f2dcbc6fd80ec013.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4513-51b94aeee37c9905.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{16e57f67.3ea19e893461e611.js → 46bd8bea.2f4b4099172fcdb7.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{5081.a240b63fad28663a.js → 4759.1f76713aefb87db5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/4928-c3b72f99aa588699.js +1 -0
- package/apps/pwa/out/_next/static/chunks/4986-f9fc0283fb325219.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5014.671a7b9f69c2b7b1.js +94 -0
- package/apps/pwa/out/_next/static/chunks/5137.d398e24710b3feb6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5298.0bea74885cabe754.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5315.74c53a39739b11c4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5317-8b1df8d02105cd07.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5358-33051f41a2b239af.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5388.a2ec02501f714ad5.js +62 -0
- package/apps/pwa/out/_next/static/chunks/5395.e6ac948a2d15058d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5409-f282bf533c151849.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5466.d0f4aba9d52acfa8.js +27 -0
- package/apps/pwa/out/_next/static/chunks/5564.3d28b353470fe305.js +104 -0
- package/apps/pwa/out/_next/static/chunks/{9974.e77b4ff4884557b3.js → 5591.a35e7a217734a8b9.js} +2 -2
- package/apps/pwa/out/_next/static/chunks/569.b0cbfb4dee4a167a.js +93 -0
- package/apps/pwa/out/_next/static/chunks/5835-72465b73a8bb8d74.js +1 -0
- package/apps/pwa/out/_next/static/chunks/5941.045d6093139e1f7a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{5492-e05e26a033ba80d2.js → 6013-2f769370d8b4c2c6.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/6228.47cabb83564dfe54.js +24 -0
- package/apps/pwa/out/_next/static/chunks/6457-8d1993002a87d0fe.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6513.ef54cfae52351982.js +2 -0
- package/apps/pwa/out/_next/static/chunks/{5408.377c8c543635b81f.js → 6534.1ab00f370db7b105.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/6582.13d245bf87df69f1.js +148 -0
- package/apps/pwa/out/_next/static/chunks/6655.c33f6acc2c61bb89.js +149 -0
- package/apps/pwa/out/_next/static/chunks/6731-9d7195af289c8d4c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6733.0be05b1db9279fc5.js +79 -0
- package/apps/pwa/out/_next/static/chunks/6742-90937146253a8b9e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{8578.dff22d988cc2b106.js → 6767.1fcfc9b8be83975f.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/6776.06ff1e3b464cc607.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{9311.24c8f5ea793253dd.js → 6853.cc5174a9dee59593.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/687-816858f77a396a4e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6888.72c7b8cfb02a7e61.js +1 -0
- package/apps/pwa/out/_next/static/chunks/6993.c17c828ac3ef3253.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7076.9f27ef666b0cefdd.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7113.1403c5d451804e8c.js +287 -0
- package/apps/pwa/out/_next/static/chunks/7169.9dd603c726c2cd7c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7247-e3ec21f761f86710.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7261-a47b72f96f5199df.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7335-5cda81ac90310077.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7356-c2e4af090546e2d4.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{94.4cfed21c0b781a06.js → 7375.050ea0d72968e49f.js} +16 -16
- package/apps/pwa/out/_next/static/chunks/738-59518742078fda71.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7385.a7375f10db73243a.js +77 -0
- package/apps/pwa/out/_next/static/chunks/7445.cf1cf2fe109bcd96.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7505.a2057432ab6ef99a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7515.31f45fac1f9c70cb.js +74 -0
- package/apps/pwa/out/_next/static/chunks/7658-d4ce8c72a9548a91.js +1 -0
- package/apps/pwa/out/_next/static/chunks/7725-4f83d5541fbdb81b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8107-0b1ae46bc5bcb788.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8132.bfea2f016ce8d992.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8332.6f0f49df772e163b.js +23 -0
- package/apps/pwa/out/_next/static/chunks/{7483.ba01c6c209b81bba.js → 8398.73a19b39715eda04.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/{2846.d6a433b8663819a5.js → 8471.8d2a8c74f09c36ff.js} +3 -3
- package/apps/pwa/out/_next/static/chunks/8672.e299832bc7d18ee2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8735.f1ef798a5f260f6f.js +226 -0
- package/apps/pwa/out/_next/static/chunks/{5785-ea8d2c633b6688e3.js → 8767-2f6a634f5abeaa01.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/8774-88f67f7d8d53d299.js +1 -0
- package/apps/pwa/out/_next/static/chunks/8782.252e5a405d86e4ed.js +32 -0
- package/apps/pwa/out/_next/static/chunks/8795.32573a185af18c7b.js +41 -0
- package/apps/pwa/out/_next/static/chunks/909-9ed7aa0dba804316.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9100.22b0301256827007.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9140-dde77575570bc71e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4593.10f5b9bd702d4a6c.js → 9143.ff14585db1d275ff.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9292-a7ad9a01c7044b93.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9517.00627dc51b02821c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9725.dcbb585652d8e9c5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9761.a3ebf5c389c24ddc.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{4204.a409ab6250c0f6a8.js → 9907.49be0fcadaf214b5.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/9972.834d2b2b7d48f1ed.js +1 -0
- package/apps/pwa/out/_next/static/chunks/9995-1a90486f5ae01546.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{973cbf1b.3bbcf2b41548eca7.js → a435ad95.577add051b4facb2.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-d69256d7613c140a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-352c5e9ba3f9b858.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/board/page-69f1d725524201a8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-a5635eba0d73b84e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/bots/page-ad9181d84285e4ea.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-86feb08080261a2f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/chat/page-ffa15987e4756d03.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/consult/page-11a3ab44ac327cc1.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/control/page-6309b11c4264d24d.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-8800472079612e87.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-d387bf3f2301882a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/editor/page-048f88d8c8658da6.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/exec/page-6c14f9739b7f6880.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/field/page-2834f44f64e98d74.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/inside/page-a13df6f88e824887.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/intake/page-8a4397248754cf2b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/layout-daf0bd329360a336.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live/page-f7ef1c28764cb476.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-61e74f28b9353dac.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/loops/{page-ff27902d0b11ef4f.js → page-8aaa6dedc4c10dfb.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-294602ba649be829.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-5fa5f41ed3fce323.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/morning/{page-25a302273b054fd7.js → page-33bf667a5fb297bf.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-5ae3cbd6e5dba515.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-eb867d16ad6fdede.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-1ab789fa68682f7e.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-6fd41b5b6ff13a71.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-fb3d5f7642c99fba.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-70f705b2b5ed42ca.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/page-c9c93b358a7667b5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-1563c556b81c96ed.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-ce89c20c45b3a673.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-423ae63d786f4ee9.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-591a5378a4c4447c.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/settings/page-a250496b19a5824b.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-c36a9277febc5911.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-83372d8b5863ebf7.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/setup/page-29900ed0011b2c83.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/share/page-a5de57edc6d7f942.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-16bdd4c9f40498df.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-75e946e6e71cc6d8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/term/{page-87b88f551f421d8b.js → page-9eb56166774eb256.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-1c5f9ef35dbb22c5.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/trace/page-657ff9985e508498.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/vault/page-22dc72499da68fb2.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-9f92737b8766009a.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-094ad334e40f8169.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-8bcd379852ff6287.js +1 -0
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-6b04413f280cd344.js +1 -0
- package/apps/pwa/out/_next/static/chunks/{f4dfbfc0.a69fb12f854882aa.js → bc324b7c.02a09dd93f6a399b.js} +1 -1
- package/apps/pwa/out/_next/static/chunks/de70ab42-d28d47437208d458.js +1 -0
- package/apps/pwa/out/_next/static/chunks/f800c5e3.46dbd7f2af8c3fce.js +1 -0
- package/apps/pwa/out/_next/static/chunks/f8bc19ad.47579f6d684b0760.js +122 -0
- package/apps/pwa/out/_next/static/chunks/framework-ca9ac4609fb9fed8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-app-0dd08d32d15a030f.js +1 -0
- package/apps/pwa/out/_next/static/chunks/main-f0399d33955c4e01.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_app-d42caca6f8ac2211.js +1 -0
- package/apps/pwa/out/_next/static/chunks/pages/_error-42e713c13aa41ca8.js +1 -0
- package/apps/pwa/out/_next/static/chunks/webpack-8fbf8f61a377aa16.js +1 -0
- package/apps/pwa/out/approvals/index.html +1 -1
- package/apps/pwa/out/approvals/index.txt +22 -22
- package/apps/pwa/out/autopilot/index.html +1 -1
- package/apps/pwa/out/autopilot/index.txt +22 -22
- package/apps/pwa/out/board/index.html +1 -1
- package/apps/pwa/out/board/index.txt +22 -22
- package/apps/pwa/out/botlab/index.html +1 -1
- package/apps/pwa/out/botlab/index.txt +21 -21
- package/apps/pwa/out/bots/index.html +1 -1
- package/apps/pwa/out/bots/index.txt +21 -21
- package/apps/pwa/out/ceo/index.html +1 -1
- package/apps/pwa/out/ceo/index.txt +22 -22
- package/apps/pwa/out/chat/index.html +1 -1
- package/apps/pwa/out/chat/index.txt +21 -21
- package/apps/pwa/out/consult/index.html +1 -1
- package/apps/pwa/out/consult/index.txt +22 -22
- package/apps/pwa/out/control/index.html +1 -1
- package/apps/pwa/out/control/index.txt +22 -22
- package/apps/pwa/out/decisions/index.html +1 -1
- package/apps/pwa/out/decisions/index.txt +21 -21
- package/apps/pwa/out/design-check/index.html +1 -1
- package/apps/pwa/out/design-check/index.txt +22 -22
- package/apps/pwa/out/editor/index.html +1 -1
- package/apps/pwa/out/editor/index.txt +22 -22
- package/apps/pwa/out/exec/index.html +1 -1
- package/apps/pwa/out/exec/index.txt +22 -22
- package/apps/pwa/out/field/index.html +1 -1
- package/apps/pwa/out/field/index.txt +22 -22
- package/apps/pwa/out/healthz +1 -1
- package/apps/pwa/out/index.html +1 -1
- package/apps/pwa/out/index.txt +21 -21
- package/apps/pwa/out/inside/index.html +1 -1
- package/apps/pwa/out/inside/index.txt +21 -21
- package/apps/pwa/out/intake/index.html +1 -1
- package/apps/pwa/out/intake/index.txt +22 -22
- package/apps/pwa/out/live/index.html +1 -1
- package/apps/pwa/out/live/index.txt +22 -22
- package/apps/pwa/out/live-run/index.html +1 -1
- package/apps/pwa/out/live-run/index.txt +22 -22
- package/apps/pwa/out/loops/index.html +1 -1
- package/apps/pwa/out/loops/index.txt +21 -21
- package/apps/pwa/out/market/index.html +1 -1
- package/apps/pwa/out/market/index.txt +21 -21
- package/apps/pwa/out/missions/placeholder/index.html +1 -1
- package/apps/pwa/out/missions/placeholder/index.txt +21 -21
- package/apps/pwa/out/morning/index.html +1 -1
- package/apps/pwa/out/morning/index.txt +22 -22
- package/apps/pwa/out/observatory/index.html +1 -1
- package/apps/pwa/out/observatory/index.txt +22 -22
- package/apps/pwa/out/ops/checklist/index.html +1 -1
- package/apps/pwa/out/ops/checklist/index.txt +21 -21
- package/apps/pwa/out/ops/release/index.html +1 -1
- package/apps/pwa/out/ops/release/index.txt +21 -21
- package/apps/pwa/out/ops/seats/index.html +1 -1
- package/apps/pwa/out/ops/seats/index.txt +21 -21
- package/apps/pwa/out/outputs/index.html +1 -1
- package/apps/pwa/out/outputs/index.txt +21 -21
- package/apps/pwa/out/reflection/index.html +1 -1
- package/apps/pwa/out/reflection/index.txt +22 -22
- package/apps/pwa/out/scheduler/index.html +1 -1
- package/apps/pwa/out/scheduler/index.txt +22 -22
- package/apps/pwa/out/sessions/index.html +1 -1
- package/apps/pwa/out/sessions/index.txt +21 -21
- package/apps/pwa/out/settings/devices/index.html +1 -1
- package/apps/pwa/out/settings/devices/index.txt +22 -22
- package/apps/pwa/out/settings/index.html +1 -1
- package/apps/pwa/out/settings/index.txt +22 -22
- package/apps/pwa/out/setup/done/index.html +1 -1
- package/apps/pwa/out/setup/done/index.txt +22 -22
- package/apps/pwa/out/setup/index.html +1 -1
- package/apps/pwa/out/setup/index.txt +22 -22
- package/apps/pwa/out/share/index.html +1 -1
- package/apps/pwa/out/share/index.txt +22 -22
- package/apps/pwa/out/showroom/index.html +1 -1
- package/apps/pwa/out/showroom/index.txt +21 -21
- package/apps/pwa/out/tasks/index.html +1 -1
- package/apps/pwa/out/tasks/index.txt +22 -22
- package/apps/pwa/out/term/index.html +1 -1
- package/apps/pwa/out/term/index.txt +22 -22
- package/apps/pwa/out/today/index.html +1 -1
- package/apps/pwa/out/today/index.txt +22 -22
- package/apps/pwa/out/trace/index.html +1 -1
- package/apps/pwa/out/trace/index.txt +22 -22
- package/apps/pwa/out/vault/index.html +1 -1
- package/apps/pwa/out/vault/index.txt +22 -22
- package/apps/pwa/out/workflows/chat-ui/index.html +1 -1
- package/apps/pwa/out/workflows/chat-ui/index.txt +22 -22
- package/apps/pwa/out/workflows/index.html +1 -1
- package/apps/pwa/out/workflows/index.txt +22 -22
- package/apps/pwa/out/workspace/index.html +1 -1
- package/apps/pwa/out/workspace/index.txt +22 -22
- package/apps/pwa/out/worktrees/index.html +1 -1
- package/apps/pwa/out/worktrees/index.txt +22 -22
- package/graphs/implement-loop.yaml +38 -1
- package/graphs/release/release-loop.yaml +6 -2
- package/graphs/steward/recipes.yaml +6 -0
- package/graphs/steward/release-day.yaml +23 -0
- package/graphs/steward/steward.yaml +9 -1
- package/graphs/work/code-pr.yaml +23 -0
- package/package.json +1 -1
- package/plugins/agent-team/agents/research.md +1 -0
- package/scripts/browser-observe-cycle.ts +76 -2
- package/scripts/ci-typecheck-changed.ts +53 -19
- package/scripts/coord-channel-watch.sh +26 -6
- package/scripts/coord-role-pack.ts +143 -0
- package/scripts/detect-test-interference.ts +31 -1
- package/scripts/lib/morning-report-options.ts +41 -0
- package/scripts/pr-land-extra-remote-gates.ts +49 -0
- package/scripts/release-loop/docs-node.ts +51 -22
- package/scripts/release-loop/gate-batch-safe.ts +23 -0
- package/scripts/release-loop/gate-history.ts +422 -0
- package/scripts/release-loop/gate-node.ts +336 -39
- package/scripts/release-loop/gate-triage-node.ts +190 -0
- package/scripts/release-loop/node-verdict.ts +3 -1
- package/scripts/release-loop/publish-node.ts +3 -0
- package/scripts/release-loop/spawn-lane.ts +68 -0
- package/scripts/release-loop/tui-node-checks.ts +28 -2
- package/scripts/release-loop/version-node.ts +62 -4
- package/scripts/skills/public-check.ts +5 -2
- package/scripts/test-deterministic.ts +549 -37
- package/scripts/usage-rollup.ts +11 -3
- package/scripts/ux-sim.ts +7 -1
- package/scripts/verify-kpack6-live.ts +230 -0
- package/src/acp/codex-plugins.ts +17 -0
- package/src/acp/core-turn-bridge.ts +98 -22
- package/src/acp/elanous-extensions.ts +2 -0
- package/src/acp/server.ts +2 -0
- package/src/agent/ref-grounding.ts +18 -0
- package/src/agent/task-notification.ts +2 -1
- package/src/agent-mission/in-agent-plugin.ts +8 -3
- package/src/agent-substrate/pr-reviewer.ts +29 -21
- package/src/agent-substrate/self-review-cli.ts +34 -10
- package/src/briefing/brief-items.ts +151 -35
- package/src/budget/llm-cost.ts +25 -2
- package/src/budget/pty-usage-reemit.ts +7 -0
- package/src/budget/run-usage-rollup.ts +9 -0
- package/src/budget/usage-daily-store.ts +98 -0
- package/src/budget/usage-outcomes.ts +32 -0
- package/src/capture/tui-self-report.ts +22 -4
- package/src/chat/index.ts +31 -10
- package/src/chat/pickers/modal-runtime.ts +1 -0
- package/src/chat/pickers/modals.ts +3 -1
- package/src/chat/turn-typeahead.ts +123 -16
- package/src/claims/claims-ledger.ts +23 -0
- package/src/claims/claims-render.ts +22 -2
- package/src/cli/brief-cli.ts +131 -10
- package/src/cli/claims-cli.ts +24 -4
- package/src/cli/dashboard-name-flag.ts +48 -0
- package/src/cli/doctor-cli.ts +80 -0
- package/src/cli/log-event-names.ts +12 -0
- package/src/cli/msg-cli.ts +210 -11
- package/src/cli/plugin-cli.ts +11 -3
- package/src/cli/pr-cli.ts +443 -104
- package/src/cli/pr-land-heavy-remote.ts +233 -0
- package/src/cli/pr-land-overlap-evidence.ts +104 -5
- package/src/cli/pr-land-refusal.ts +20 -0
- package/src/cli/pty-takeover-cli.ts +125 -16
- package/src/cli/release-cli.ts +46 -2
- package/src/cli/remote-resolve.ts +2 -1
- package/src/cli/rfc-cli.ts +24 -0
- package/src/cli/seat-cli.ts +26 -16
- package/src/cli/tailscale-serve.ts +5 -8
- package/src/cli/tasks-cli.ts +400 -27
- package/src/cli/usage-cli.ts +155 -16
- package/src/cli/usage-daily-cli.ts +84 -0
- package/src/context-bus/context-now.ts +82 -5
- package/src/core-turn/auth-rejected-notice.ts +41 -0
- package/src/core-turn/run-core-turn.ts +13 -2
- package/src/core-turn/run-goal-loop.ts +17 -1
- package/src/core-turn/short-question.ts +45 -12
- package/src/core-turn/types.ts +7 -0
- package/src/dashboard/acp-active-model.ts +40 -0
- package/src/dashboard/auto-compact-runtime.ts +2 -0
- package/src/dashboard/boot-banner.ts +80 -0
- package/src/dashboard/dashboard-status-lines.ts +11 -0
- package/src/dashboard/detail-viewer-runtime.ts +15 -2
- package/src/dashboard/event-loop-stall-monitor.ts +4 -0
- package/src/dashboard/first-screen-band.ts +63 -13
- package/src/dashboard/goal-loop-thinking.ts +16 -0
- package/src/dashboard/hitl-boot.ts +9 -4
- package/src/dashboard/index.ts +235 -389
- package/src/dashboard/input/chat-main-entry-runtime.ts +2 -0
- package/src/dashboard/input/chat-main-log-actions.ts +4 -0
- package/src/dashboard/input/chat-main-log-command.ts +12 -1
- package/src/dashboard/input/chat-main-plain-turn-runtime.ts +172 -3
- package/src/dashboard/input/chat-main-session.ts +6 -2
- package/src/dashboard/input/chat-main-slash-command.ts +7 -0
- package/src/dashboard/input/chat-main-turn.ts +2 -1
- package/src/dashboard/input/compact-prepass-recovery.ts +97 -0
- package/src/dashboard/input/dashboard-chord-actions.ts +10 -1
- package/src/dashboard/input/dashboard-chord-runtime.ts +2 -0
- package/src/dashboard/input/external-input-host.ts +45 -0
- package/src/dashboard/input/log-fold-binding.ts +18 -0
- package/src/dashboard/input/mouse-wiring.ts +17 -4
- package/src/dashboard/input/turn-steer-bridge.ts +94 -0
- package/src/dashboard/log-click-runtime.ts +5 -3
- package/src/dashboard/running-build-status.ts +74 -0
- package/src/dashboard/seat-boot-preamble.ts +113 -0
- package/src/dashboard/seat-local-instructions.ts +305 -0
- package/src/dashboard/skill-detection-runtime.ts +24 -4
- package/src/dashboard/slash-runtime/dashboard-handlers.ts +100 -28
- package/src/dashboard/slash-runtime/model-choices.ts +35 -0
- package/src/dashboard/term-slash-runtime.ts +15 -0
- package/src/dashboard/turn-preamble.ts +30 -2
- package/src/dashboard/turn-session-layers.ts +176 -0
- package/src/dashboard/turn-stream-formatter.ts +14 -6
- package/src/dashboard/turn-stream-presentation-applier.ts +8 -0
- package/src/domains/morning-report.ts +3 -1
- package/src/domains/release-tool.ts +8 -9
- package/src/domains/surface-events.ts +4 -1
- package/src/domains/watch-default-scheduler.ts +8 -9
- package/src/fold-stack.ts +24 -1
- package/src/git-fs/dirty.ts +32 -4
- package/src/git-fs/index.ts +43 -1
- package/src/github/pr-labels.ts +10 -4
- package/src/graph-runner/runner.ts +102 -14
- package/src/harness/harness-clean.ts +21 -3
- package/src/harness/harness-cli-command.ts +22 -6
- package/src/harness/harness-gc.ts +32 -5
- package/src/harness/harness-pod-dispatch.ts +11 -4
- package/src/hq/seats.ts +17 -3
- package/src/index.ts +48 -6
- package/src/input/external-input-queue.ts +219 -0
- package/src/intelligence-map/model-bench-scores.ts +102 -0
- package/src/interactive-terminal-modal.ts +13 -0
- package/src/llm/route-decision.ts +25 -0
- package/src/llm-stream-retry-display.ts +59 -0
- package/src/llm.ts +253 -55
- package/src/log-entry.ts +3 -3
- package/src/log-pane/search.ts +29 -4
- package/src/loops/agent-reply.ts +256 -0
- package/src/loops/budget.ts +37 -7
- package/src/loops/loop-cli.ts +3 -2
- package/src/loops/msg-address.ts +57 -0
- package/src/loops/msg-wake.ts +282 -0
- package/src/loops/orchestrator/inbox.ts +130 -0
- package/src/loops/orchestrator/resync-shadow.ts +100 -12
- package/src/loops/orchestrator/tick.ts +94 -3
- package/src/loops/registry.ts +42 -4
- package/src/maturity/feature-maturity.ts +1 -1
- package/src/memory.ts +20 -5
- package/src/msg/msg-sse-server.ts +141 -0
- package/src/msg/msg-store.ts +84 -14
- package/src/native-tool-catalog.ts +125 -0
- package/src/nexus/api/http-server.ts +5 -0
- package/src/nexus/api/ops-api.ts +2 -0
- package/src/nexus/api/project-autopsy.ts +127 -0
- package/src/nexus/api/terminals.ts +3 -0
- package/src/nexus/api/workflow-approvals.ts +2 -0
- package/src/nexus/onboarding/first-boot-wizard.ts +56 -2
- package/src/oauth/codex-account-store.ts +15 -3
- package/src/oauth/codex-billing-route.ts +31 -0
- package/src/ops/overview-collect.ts +19 -2
- package/src/panes/log-pane.ts +67 -8
- package/src/patents/ledger.ts +128 -0
- package/src/persona/presets.ts +44 -0
- package/src/plugins/install/market-fetch.ts +32 -1
- package/src/plugins/maker/wizard-generate.ts +6 -4
- package/src/pod-lease/admission.ts +116 -41
- package/src/preview/terminal.ts +14 -1
- package/src/prompt-cache/types.ts +2 -0
- package/src/prompt-enhance/enhance.ts +24 -8
- package/src/prompt-library/universal-preamble.ts +273 -56
- package/src/pty-shell/pty-control-ipc.ts +4 -1
- package/src/pty-shell/pty-manifest.ts +77 -5
- package/src/pty-shell/registry.ts +19 -2
- package/src/pty-shell/tui-run-state.ts +253 -0
- package/src/release-loop/checklist.ts +11 -0
- package/src/release-loop/light-rc.ts +28 -3
- package/src/release-loop/merged-pr-checklist.ts +24 -5
- package/src/release-loop/rehearsal.ts +1 -1
- package/src/release-loop/rubric.ts +70 -0
- package/src/render.ts +5 -1
- package/src/rfc-registry/registry.ts +88 -0
- package/src/seat-dispatch/seat-request-ledger.ts +4 -0
- package/src/seat-loop/knowhow-lint.ts +233 -0
- package/src/seat-loop/seat-pack.ts +16 -4
- package/src/seat-loop/seat-report.ts +42 -2
- package/src/seat-loop/traffic-signal.ts +7 -0
- package/src/self-dev/ask-launch-flow.ts +48 -8
- package/src/self-dev/ask-path-candidates.ts +69 -14
- package/src/self-dev/decompose-proposal.ts +43 -1
- package/src/self-dev/graph-journey-nodes.ts +2 -0
- package/src/self-dev/launch-preflight-text.ts +5 -1
- package/src/self-dev/launch-preflight.ts +143 -10
- package/src/self-dev/run-supervisor.ts +71 -5
- package/src/self-dev/shard-aggregate.ts +2 -0
- package/src/self-dev/shard-run.ts +23 -2
- package/src/self-health/signatures.ts +132 -0
- package/src/self-implement/doctor-visit.ts +118 -0
- package/src/self-implement/gate-cli.ts +17 -4
- package/src/self-implement/goal-author-decompose.ts +80 -16
- package/src/self-implement/goal-author.ts +116 -73
- package/src/self-implement/goal-authoring-grounding.ts +1 -1
- package/src/self-implement/goal-file-name.ts +65 -0
- package/src/self-implement/goal-new-paths.ts +4 -5
- package/src/self-implement/graph-authority.ts +17 -3
- package/src/self-implement/graph-yaml.ts +15 -7
- package/src/self-implement/ground-goal.ts +2 -1
- package/src/self-implement/headless-elanous-driver.ts +16 -1
- package/src/self-implement/host-regate.ts +58 -9
- package/src/self-implement/orchestrator.ts +3 -10
- package/src/self-implement/review-mustfix-class.ts +115 -0
- package/src/self-implement/rework-policy.ts +80 -2
- package/src/self-implement/run-ledger.ts +111 -7
- package/src/self-implement/running-runs.ts +10 -6
- package/src/self-implement/self-implement-runtime.ts +32 -0
- package/src/self-implement/speed-claims.ts +145 -6
- package/src/session/pending-input.ts +62 -11
- package/src/session-runtime/index.ts +7 -1
- package/src/skills/tools/ops-ledger.ts +707 -0
- package/src/skills/tools/persistent-grounding.ts +103 -8
- package/src/skills/tools/shell.ts +196 -2
- package/src/status/bar.ts +32 -2
- package/src/status/status-provider-info.ts +58 -0
- package/src/steward/rejudge-tick.ts +12 -1
- package/src/steward/release-day.ts +158 -0
- package/src/steward/resync-tick.ts +123 -0
- package/src/task-agent/actions.ts +1 -0
- package/src/task-agent/adopt-pr.ts +140 -0
- package/src/task-agent/board.ts +11 -1
- package/src/task-agent/card-evidence.ts +37 -5
- package/src/task-agent/cover.ts +84 -17
- package/src/task-agent/failure-notify.ts +61 -0
- package/src/task-agent/green-sweep.ts +170 -0
- package/src/task-agent/land-worktree.ts +52 -5
- package/src/task-agent/live-move-history.ts +1 -0
- package/src/task-agent/live-moves.ts +43 -12
- package/src/task-agent/parent-host.ts +1 -1
- package/src/task-agent/postland-card.ts +139 -0
- package/src/task-agent/rejudge-on-head.ts +109 -7
- package/src/task-agent/remote-rejudge-bind.ts +91 -0
- package/src/task-agent/repair-branch-cas.ts +182 -0
- package/src/task-agent/repair-cycle.ts +288 -0
- package/src/task-agent/repair-next-move.ts +31 -0
- package/src/task-agent/repair-review.ts +24 -0
- package/src/task-agent/repair-worker.ts +87 -0
- package/src/task-agent/review-result-capture.ts +2 -1
- package/src/task-agent/shadow.ts +13 -7
- package/src/task-agent/task-hand.ts +115 -6
- package/src/task-orchestrator/surfaces/kubectl-transient-retry.ts +51 -0
- package/src/task-orchestrator/surfaces/pod-command-job.ts +63 -7
- package/src/task-orchestrator/surfaces/pod-install-slots.ts +6 -11
- package/src/task-orchestrator/surfaces/pod-mirror-seed.ts +76 -0
- package/src/task-orchestrator/surfaces/pod-repair-commit.ts +96 -0
- package/src/task-orchestrator/surfaces/self-implement-pod.ts +175 -43
- package/src/telegram.ts +30 -1
- package/src/terminal/session-registry.ts +6 -0
- package/src/thinking-line.ts +12 -3
- package/src/tool-runtime/index.ts +4 -0
- package/src/tool-runtime/ops-ledger-runtimes.ts +84 -0
- package/src/tool-runtime/ref-consult-runtime.ts +17 -2
- package/src/tool-runtime/run-shell-runtime.ts +4 -1
- package/src/tool-runtime/self-cognition-runtimes.ts +5 -1
- package/src/tui.ts +5 -0
- package/src/user-config.ts +62 -7
- package/src/ux-sim/fake-llm.ts +29 -0
- package/src/ux-sim/fault-sqlite-busy.ts +50 -0
- package/src/ux-sim/in-process-cli.ts +175 -0
- package/src/version/packed-revision.json +1 -1
- package/apps/pwa/out/_next/static/chunks/1027.a0f04663d24c2779.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1038.676007ae505822e7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1113.a37eadf7f740d955.js +0 -1
- package/apps/pwa/out/_next/static/chunks/112-fa7c526c20ce1405.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1144.5fa1fa1d48dbcd12.js +0 -36
- package/apps/pwa/out/_next/static/chunks/1146.80d15ea7c6e6ee95.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1157.f08bf2b70915e176.js +0 -148
- package/apps/pwa/out/_next/static/chunks/119b405e.8fdd0e44d1ff37aa.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1296.04560d98e73fbf51.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1314-f604ba013ec535b0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1454-a9c338f5bb556f42.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1464.f3209af0d8ae4ff2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1729-d73dd25e564679d4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/1843.5924c24295243261.js +0 -27
- package/apps/pwa/out/_next/static/chunks/1987.e28149724b92918b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2066-5ca18ffa5a4be68b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2240.d10a66695155fd93.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2391.e2cbc98d4abbb41a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2528.3868070ef1be69f9.js +0 -24
- package/apps/pwa/out/_next/static/chunks/2566-734cb83bbd405886.js +0 -1
- package/apps/pwa/out/_next/static/chunks/2697.76ca2ac3efef6f3b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/275.0e6bad414729bfa0.js +0 -32
- package/apps/pwa/out/_next/static/chunks/2803-33bdae771855a8d1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3143.257997a5f1ed79df.js +0 -34
- package/apps/pwa/out/_next/static/chunks/3259-86f3be56e43eaf6a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3280-e177c33bfbdcfb0a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3294-2b6a6d45a46a6c1c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3309.364573ceedbdfd5f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3522.758840fc5e7fe630.js +0 -287
- package/apps/pwa/out/_next/static/chunks/3525-a7c989c1a661e880.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3694.b1a66387756458c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/370.124f9e678a76fc01.js +0 -1
- package/apps/pwa/out/_next/static/chunks/3797-9643105335e660fe.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4084.15ecaf4240bd9e77.js +0 -286
- package/apps/pwa/out/_next/static/chunks/4089-b3382b8843114eee.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4293.928a8d573c16aab7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4402.f9238a3b18a7bd43.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4490-9b090b0f9427f902.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4548.13502d0ca3b4f862.js +0 -8
- package/apps/pwa/out/_next/static/chunks/4599-548bc96cda44a5a7.js +0 -1
- package/apps/pwa/out/_next/static/chunks/4625.206574e33a9e7ae8.js +0 -104
- package/apps/pwa/out/_next/static/chunks/4862-392c9a71f0d8dfb4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5054.2906d1b02542edc5.js +0 -149
- package/apps/pwa/out/_next/static/chunks/5102-c822bbbee5a022a4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5194-8c93f2e7e4b6f717.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5305-bacd7eca0b9a5848.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5311.9071ee3f44fd7ff5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5369.9f34353442daa421.js +0 -1
- package/apps/pwa/out/_next/static/chunks/589-49d730cb8138b397.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5904-264a6412ae3c9028.js +0 -1
- package/apps/pwa/out/_next/static/chunks/5980.728531d5c566535c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/599-a914cc0468f56143.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6011.f525002e21bef0ac.js +0 -23
- package/apps/pwa/out/_next/static/chunks/6132.4381ab93683f1acf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6149.2e698635e454d8f6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6356-0afafc4230cf9767.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6406.64756073f7df35b8.js +0 -77
- package/apps/pwa/out/_next/static/chunks/6479-16e62aedafa0e310.js +0 -1
- package/apps/pwa/out/_next/static/chunks/6599.b5246b46a2453329.js +0 -64
- package/apps/pwa/out/_next/static/chunks/6610.5c26eec011565acb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/666.37d18474edc1c552.js +0 -2
- package/apps/pwa/out/_next/static/chunks/6904.a0b5b1ed4f2d2c20.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7247-1f4aba94aba50d9f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7274-e71a7c5b7760cd02.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7290.1fcaeef3adb5d0d4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7477-2c64e42760f82f33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7505-47002b76ff1aef6c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7600-11884ca4da68e5d9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7607.40d8bb3689697ccb.js +0 -62
- package/apps/pwa/out/_next/static/chunks/7752.5cbdd0b433c54af9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7763.f51fcc19ca1414ec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7785.846140c859b1adf6.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7807-a0fdac6393e0bf36.js +0 -1
- package/apps/pwa/out/_next/static/chunks/7837-20a63b4b7e9342b1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/800.7815414cf280545d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8085-1e5fce59500a2cc2.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8100.415f2105faa63e97.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8290.701aa42ed13aa767.js +0 -226
- package/apps/pwa/out/_next/static/chunks/83a80514-b897b64df43ce108.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8444.d9c74214a3145a43.js +0 -93
- package/apps/pwa/out/_next/static/chunks/8569.98c915534928c7f9.js +0 -24
- package/apps/pwa/out/_next/static/chunks/8591.b1c7f876e5ec7cfb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8715-f63756021d3ab989.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8879.776c2ec7732aa114.js +0 -115
- package/apps/pwa/out/_next/static/chunks/8881.ddca15b3c82c490c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/8946.5da5c87f32a2e1a8.js +0 -41
- package/apps/pwa/out/_next/static/chunks/9117.080b9b75be90e14d.js +0 -74
- package/apps/pwa/out/_next/static/chunks/9167.f3ecb28f367d6e69.js +0 -94
- package/apps/pwa/out/_next/static/chunks/9224.66095370ee28c93b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9238-0682b013c83d6449.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9449.d3ed795da4befb1c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/949.1e7d45ccb71580aa.js +0 -90
- package/apps/pwa/out/_next/static/chunks/9638-d268329f2c6f4f8d.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9842-d6644eb53d3dc6bf.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9863.94ca3263e760696e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/9938.b23e4d4dfa0114cd.js +0 -79
- package/apps/pwa/out/_next/static/chunks/app/_not-found/page-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/approvals/page-a1ce306364f08da9.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/autopilot/page-07110da72c45e68f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/board/page-d2d76d4a7eae91bd.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/botlab/page-30007380f2e2a3c1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/bots/page-e5a9302c105725a3.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ceo/page-b93c04b5311c97ec.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/chat/page-718a49e86bf25f9c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/consult/page-20662900d6b4b455.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/control/page-f707a509515ac50c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/decisions/page-6a16a48d1aa6e91f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/design-check/page-fcb06e305f515527.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/editor/page-6acf5ec4e6c6d1af.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/exec/page-39f82acf619cca23.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/field/page-7c2c8f81b185f9c0.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/healthz/route-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/inside/page-ae7aff07e32676bb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/intake/page-482c60c1bc540d0a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/layout-7cb996c1aa08b6f5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live/page-623e08fe4477d606.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/live-run/page-db460cd8aecb8490.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/market/page-8397a5c6ca569bf4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/missions/[id]/page-1917ea87ea71ab6b.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/not-found-670510eda8b9443f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/observatory/page-d73c3f1e00d93986.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/checklist/page-65caacf54389081e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/release/page-4bb7556e2e97a750.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/ops/seats/page-77e04b4f8762c666.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/outputs/page-15c0a4095baddfba.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/page-4eb96fc7241c2456.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/reflection/page-63e272a4cd3b6634.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/scheduler/page-0d64ff212dc55d03.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/sessions/page-7f096248993fc2d4.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/devices/page-e47fc72049149a38.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/settings/page-f7d808e31e005895.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/done/page-5c2b24b5496dad73.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/layout-d9babd8795f396a5.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/setup/page-76cdb531668b5191.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/share/page-e2b63345bba1a11f.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/showroom/page-d376e0c83edc041a.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/tasks/page-d6db55fe2c04d128.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/today/page-dab163b338e3b966.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/trace/page-08019efef111ed2e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/vault/page-0260ffc7eda50db1.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/chat-ui/page-980ce6fe36ad95eb.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workflows/page-99c4e6c7345a9156.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/workspace/page-0ab42e0f05823013.js +0 -1
- package/apps/pwa/out/_next/static/chunks/app/worktrees/page-ad9220422d20ba33.js +0 -1
- package/apps/pwa/out/_next/static/chunks/dcf24383-2f82e35f2d827393.js +0 -1
- package/apps/pwa/out/_next/static/chunks/e117f801.e92bf10242653497.js +0 -1
- package/apps/pwa/out/_next/static/chunks/e87d89b9.2e71c0ae475d28a1.js +0 -122
- package/apps/pwa/out/_next/static/chunks/framework-bf135b997155e90e.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-5571537543bea91c.js +0 -1
- package/apps/pwa/out/_next/static/chunks/main-app-25c51c7df7f3a442.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_app-e3b2c1f5d82abd65.js +0 -1
- package/apps/pwa/out/_next/static/chunks/pages/_error-083f2e23e9bc3641.js +0 -1
- package/apps/pwa/out/_next/static/chunks/webpack-e94d22b7a028217b.js +0 -1
- package/src/dashboard/bench-slash-runtime.ts +0 -40
- package/src/dashboard/input/search-modal-router.ts +0 -9
- package/src/dashboard/modals/pane-key-router.ts +0 -27
- package/src/dashboard/view-slash-runtime.ts +0 -48
- /package/apps/pwa/out/_next/static/{Ev2jivDMTSoEc-5rIXdcy → cIpv5nU9AycwYWZI9H589}/_ssgManifest.js +0 -0
package/apps/pwa/out/_next/static/chunks/{2846.d6a433b8663819a5.js → 8471.8d2a8c74f09c36ff.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2846],{61085:(e,t,s)=>{s.d(t,{A:()=>a});var i=s(13345),n=s(57626),a=(0,i.K)((e,t)=>{let s;return"sandbox"===t&&(s=(0,n.Ltv)("#i"+e)),("sandbox"===t?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")},82846:(e,t,s)=>{s.d(t,{diagram:()=>nN});var i,n,a,r,o=s(61085),l=s(95138),c=s(77044);s(15081),s(42527),s(70314),s(93464),s(54722),s(93189);var h=s(14126);s(22174);var d=s(31183),u=s(86256),p=s(57541),f=s(17487),m=s(13345);function E(e){function t(){}t.prototype=e;let s=new t;function i(){return typeof s.bar}return i(),i(),e}class T{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),this.definition.forEach(t=>{t.accept(e)})}}class g extends T{constructor(e){super([]),this.idx=1,Object.assign(this,b(e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class y extends T{constructor(e){super(e.definition),this.orgText="",Object.assign(this,b(e))}}class A extends T{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Object.assign(this,b(e))}}class S extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class L extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class O extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class R extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class k extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class I extends T{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,b(e))}}class N{constructor(e){this.idx=1,Object.assign(this,b(e))}accept(e){e.visit(this)}}function b(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>void 0!==e))}class C{visit(e){switch(e.constructor){case g:return this.visitNonTerminal(e);case A:return this.visitAlternative(e);case S:return this.visitOption(e);case L:return this.visitRepetitionMandatory(e);case O:return this.visitRepetitionMandatoryWithSeparator(e);case k:return this.visitRepetitionWithSeparator(e);case R:return this.visitRepetition(e);case I:return this.visitAlternation(e);case N:return this.visitTerminal(e);case y:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function _(e,t=[]){return e instanceof S||e instanceof R||e instanceof k||(e instanceof I?e.definition.some(e=>_(e,t)):!(e instanceof g&&t.includes(e))&&e instanceof T&&(e instanceof g&&t.push(e),e.definition.every(e=>_(e,t))))}function v(e){if(e instanceof g)return"SUBRULE";if(e instanceof S)return"OPTION";if(e instanceof I)return"OR";if(e instanceof L)return"AT_LEAST_ONE";if(e instanceof O)return"AT_LEAST_ONE_SEP";else if(e instanceof k)return"MANY_SEP";else if(e instanceof R)return"MANY";else if(e instanceof N)return"CONSUME";else throw Error("non exhaustive match")}class x{walk(e,t=[]){e.definition.forEach((s,i)=>{let n=e.definition.slice(i+1);if(s instanceof g)this.walkProdRef(s,n,t);else if(s instanceof N)this.walkTerminal(s,n,t);else if(s instanceof A)this.walkFlat(s,n,t);else if(s instanceof S)this.walkOption(s,n,t);else if(s instanceof L)this.walkAtLeastOne(s,n,t);else if(s instanceof O)this.walkAtLeastOneSep(s,n,t);else if(s instanceof k)this.walkManySep(s,n,t);else if(s instanceof R)this.walkMany(s,n,t);else if(s instanceof I)this.walkOr(s,n,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,s){}walkProdRef(e,t,s){}walkFlat(e,t,s){let i=t.concat(s);this.walk(e,i)}walkOption(e,t,s){let i=t.concat(s);this.walk(e,i)}walkAtLeastOne(e,t,s){let i=[new S({definition:e.definition})].concat(t,s);this.walk(e,i)}walkAtLeastOneSep(e,t,s){let i=U(e,t,s);this.walk(e,i)}walkMany(e,t,s){let i=[new S({definition:e.definition})].concat(t,s);this.walk(e,i)}walkManySep(e,t,s){let i=U(e,t,s);this.walk(e,i)}walkOr(e,t,s){let i=t.concat(s);e.definition.forEach(e=>{let t=new A({definition:[e]});this.walk(t,i)})}}function U(e,t,s){return[new S({definition:[new N({terminalType:e.separator})].concat(e.definition)})].concat(t,s)}function M(e){if(e instanceof g)return M(e.referencedRule);if(e instanceof N)return[e.terminalType];if(e instanceof A||e instanceof S||e instanceof R||e instanceof L||e instanceof O||e instanceof k||e instanceof N||e instanceof y)return function(e){let t,s=[],i=e.definition,n=0,a=i.length>n,r=!0;for(;a&&r;)r=_(t=i[n]),s=s.concat(M(t)),n+=1,a=i.length>n;return[...new Set(s)]}(e);if(e instanceof I)return[...new Set(e.definition.map(e=>M(e)).flat())];throw Error("non exhaustive match")}let w="_~IN~_";class P extends x{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,s){}walkProdRef(e,t,s){var i,n;let a=(i=e.referencedRule,n=e.idx,i.name+n+w+this.topProd.name),r=M(new A({definition:t.concat(s)}));this.follows[a]=r}}function D(e){return e.charCodeAt(0)}function $(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function K(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function F(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function B(){throw Error("Internal Error - Should never get here!")}function j(e){return"Character"===e.type}let G=[];for(let e=D("0");e<=D("9");e++)G.push(e);let W=[D("_")].concat(G);for(let e=D("a");e<=D("z");e++)W.push(e);for(let e=D("A");e<=D("Z");e++)W.push(e);let V=[D(" "),D("\f"),D("\n"),D("\r"),D(" "),D("\v"),D(" "),D("\xa0"),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D("\u2028"),D("\u2029"),D(" "),D(" "),D(" "),D("\uFEFF")],z=/[0-9a-fA-F]/,H=/[0-9]/,Y=/[1-9]/;class X{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let s={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":K(s,"global");break;case"i":K(s,"ignoreCase");break;case"m":K(s,"multiLine");break;case"u":K(s,"unicode");break;case"y":K(s,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:s,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}}F(t);let s=this.disjunction();return this.consumeChar(")"),{type:t,value:s,loc:this.loc(e)}}return B()}quantifier(e=!1){let t,s=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":t=this.isDigit()?{atLeast:i,atMost:this.integerIncludingZero()}:{atLeast:i,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;F(t)}if((!0!==e||void 0!==t)&&F(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(s),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),F(e))?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):B()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[D("\n"),D("\r"),D("\u2028"),D("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=G;break;case"D":e=G,t=!0;break;case"s":e=V;break;case"S":e=V,t=!0;break;case"w":e=W;break;case"W":e=W,t=!0}return F(e)?{type:"Set",value:e,complement:t}:B()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=D("\f");break;case"n":e=D("\n");break;case"r":e=D("\r");break;case"t":e=D(" ");break;case"v":e=D("\v")}return F(e)?{type:"Character",value:e}:B()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:D("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:D(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:D(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,j(t)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom();if(s.type,j(s)){if(s.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:s.value})}else $(t.value,e),e.push(D("-")),$(s.value,e)}else $(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:D("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),"?"===this.peekChar(0)?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let s={type:"Group",capturing:e,value:t};return e&&(s.idx=this.groupIdx),s}positiveInteger(){let e=this.popChar();if(!1===Y.test(e))throw Error("Expecting a positive integer");for(;H.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===H.test(e))throw Error("Expecting an integer");for(;H.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:D(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return H.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2)||"<"===this.peekChar(2)&&("="===this.peekChar(3)||"!"===this.peekChar(3)));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch(e){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let s=0;s<e;s++){let e=this.popChar();if(!1===z.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class q{visitChildren(e){for(let t in e){let s=e[t];e.hasOwnProperty(t)&&(void 0!==s.type?this.visit(s):Array.isArray(s)&&s.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}function J(e){console&&console.error&&console.error(`Error: ${e}`)}function Z(e){console&&console.warn&&console.warn(`Warning: ${e}`)}let Q={},ee=new X;function et(e){let t=e.toString();if(Q.hasOwnProperty(t))return Q[t];{let e=ee.pattern(t);return Q[t]=e,e}}let es="Complement Sets are not supported for first char optimization",ei='Unable to use "first char" lexer optimizations:\n';function en(e,t,s){let i=eS(e);t[i]=i,!0===s&&function(e,t){let s=String.fromCharCode(e),i=s.toUpperCase();if(i!==s){let e=eS(i.charCodeAt(0));t[e]=e}else{let e=s.toLowerCase();if(e!==s){let s=eS(e.charCodeAt(0));t[s]=s}}}(e,t)}function ea(e,t){return e.value.find(e=>"number"==typeof e?t.includes(e):void 0!==t.find(t=>e.from<=t&&t<=e.to))}class er extends q{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){this.targetCharCodes.includes(e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===ea(e,this.targetCharCodes)&&(this.found=!0):void 0!==ea(e,this.targetCharCodes)&&(this.found=!0)}}function eo(e,t){if(t instanceof RegExp){let s=et(t),i=new er(e);return i.visit(s),i.found}for(let s of t){let t=s.charCodeAt(0);if(e.includes(t))return!0}return!1}let el="PATTERN",ec="defaultMode",eh="modes",ed=/[^\\][$]/,eu=/[^\\[][\^]|^\^/;function ep(e){let t=e.ignoreCase?"iy":"y";return RegExp(`${e.source}`,t)}function ef(e){let t=e.PATTERN;if(t instanceof RegExp)return!1;if("function"==typeof t)return!0;if(Object.hasOwn(t,"exec"))return!0;if("string"==typeof t)return!1;throw Error("non exhaustive match")}function em(e){return"string"==typeof e&&1===e.length&&e.charCodeAt(0)}let eE={test:function(e){let t=e.length;for(let s=this.lastIndex;s<t;s++){let t=e.charCodeAt(s);if(10===t)return this.lastIndex=s+1,!0;if(13===t)return 10===e.charCodeAt(s+1)?this.lastIndex=s+2:this.lastIndex=s+1,!0}return!1},lastIndex:0};function eT(e,t){if(Object.hasOwn(e,"LINE_BREAKS"))return!1;if(e.PATTERN instanceof RegExp){try{eo(t,e.PATTERN)}catch(e){return{issue:i.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if("string"==typeof e.PATTERN)return!1;if(ef(e))return{issue:i.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function eg(e){return e.map(e=>"string"==typeof e?e.charCodeAt(0):e)}function ey(e,t,s){void 0===e[t]?e[t]=[s]:e[t].push(s)}let eA=[];function eS(e){return e<256?e:eA[e]}function eL(e){let t=new Date().getTime(),s=e();return{time:new Date().getTime()-t,value:s}}function eO(e,t){let s=e.tokenTypeIdx;return s===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[s]}function eR(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let ek=1,eI={};function eN(e){let t=function(e){let t=[...e],s=e,i=!0;for(;i;){let e=(s=s.map(e=>e.CATEGORIES).flat().filter(Boolean)).filter(e=>!t.includes(e));t=t.concat(e),0===e.length?i=!1:s=e}return t}(e);t.forEach(e=>{var t,s;eb(e)||(eI[ek]=e,e.tokenTypeIdx=ek++),eC(e)&&!Array.isArray(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),eC(e)||(e.CATEGORIES=[]),Object.hasOwn(null!=(t=e)?t:{},"categoryMatches")||(e.categoryMatches=[]),Object.hasOwn(null!=(s=e)?s:{},"categoryMatchesMap")||(e.categoryMatchesMap={})}),t.forEach(e=>{!function e(t,s){t.forEach(e=>{s.categoryMatchesMap[e.tokenTypeIdx]=!0}),s.CATEGORIES.forEach(i=>{let n=t.concat(s);n.includes(i)||e(n,i)})}([],e)}),t.forEach(e=>{e.categoryMatches=[],Object.keys(e.categoryMatchesMap).forEach(t=>{e.categoryMatches.push(eI[t].tokenTypeIdx)})}),t.forEach(e=>{e.isParent=e.categoryMatches.length>0})}function eb(e){return Object.hasOwn(null!=e?e:{},"tokenTypeIdx")}function eC(e){return Object.hasOwn(null!=e?e:{},"CATEGORIES")}function e_(e){return Object.hasOwn(null!=e?e:{},"tokenTypeIdx")}!function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"}(i||(i={}));let ev={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:{buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,s,i,n,a)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${s} characters.`},traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(ev);class ex{constructor(e,t=ev){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.cachedGroupKeys=[],this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let s=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${s}--> <${e}>`);let{time:i,value:n}=eL(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${s}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,n}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=Object.assign({},ev,t);let s=this.config.traceInitPerf;!0===s?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof s&&(this.traceInitMaxIdent=s,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let s,n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ev.lineTerminatorsPattern)this.config.lineTerminatorsPattern=eE;else if(this.config.lineTerminatorCharacters===ev.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Array.isArray(e)?s={modes:{defaultMode:[...e]},defaultMode:ec}:(n=!1,s=Object.assign({},e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,s){let n=[];return Object.hasOwn(e,ec)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+ec+"> property in its definition\n",type:i.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Object.hasOwn(e,eh)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+eh+"> property in its definition\n",type:i.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Object.hasOwn(e,eh)&&Object.hasOwn(e,ec)&&!Object.hasOwn(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${ec}: <${e.defaultMode}>which does not exist
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8471],{24175:(e,t,s)=>{s.d(t,{P:()=>r});var i=s(7328),n=s(42398),a=s(66432),r=(0,a.K)((e,t,s,a)=>{e.attr("class",s);let{width:r,height:c,x:h,y:d}=o(e,t);(0,i.a$)(e,c,r,a);let u=l(h,d,r,c,t);e.attr("viewBox",u),n.R.debug(`viewBox configured: ${u} with padding: ${t}`)},"setupViewPortForSVG"),o=(0,a.K)((e,t)=>{let s=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:s.width+2*t,height:s.height+2*t,x:s.x,y:s.y}},"calculateDimensionsWithPadding"),l=(0,a.K)((e,t,s,i,n)=>`${e-n} ${t-n} ${s} ${i}`,"createViewBox")},50996:(e,t,s)=>{s.d(t,{A:()=>a});var i=s(66432),n=s(25885),a=(0,i.K)((e,t)=>{let s;return"sandbox"===t&&(s=(0,n.Ltv)("#i"+e)),("sandbox"===t?(0,n.Ltv)(s.nodes()[0].contentDocument.body):(0,n.Ltv)("body")).select(`[id="${e}"]`)},"getDiagramElement")},98471:(e,t,s)=>{s.d(t,{diagram:()=>nN});var i,n,a,r,o=s(50996),l=s(24175),c=s(38805);s(40776),s(53014),s(13663),s(9833),s(97119),s(27292);var h=s(26621);s(51537);var d=s(27254),u=s(88472),p=s(7328),f=s(42398),m=s(66432);function E(e){function t(){}t.prototype=e;let s=new t;function i(){return typeof s.bar}return i(),i(),e}class T{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),this.definition.forEach(t=>{t.accept(e)})}}class g extends T{constructor(e){super([]),this.idx=1,Object.assign(this,b(e))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class y extends T{constructor(e){super(e.definition),this.orgText="",Object.assign(this,b(e))}}class A extends T{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Object.assign(this,b(e))}}class S extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class L extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class O extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class R extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class k extends T{constructor(e){super(e.definition),this.idx=1,Object.assign(this,b(e))}}class I extends T{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,b(e))}}class N{constructor(e){this.idx=1,Object.assign(this,b(e))}accept(e){e.visit(this)}}function b(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>void 0!==e))}class C{visit(e){switch(e.constructor){case g:return this.visitNonTerminal(e);case A:return this.visitAlternative(e);case S:return this.visitOption(e);case L:return this.visitRepetitionMandatory(e);case O:return this.visitRepetitionMandatoryWithSeparator(e);case k:return this.visitRepetitionWithSeparator(e);case R:return this.visitRepetition(e);case I:return this.visitAlternation(e);case N:return this.visitTerminal(e);case y:return this.visitRule(e);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function _(e,t=[]){return e instanceof S||e instanceof R||e instanceof k||(e instanceof I?e.definition.some(e=>_(e,t)):!(e instanceof g&&t.includes(e))&&e instanceof T&&(e instanceof g&&t.push(e),e.definition.every(e=>_(e,t))))}function v(e){if(e instanceof g)return"SUBRULE";if(e instanceof S)return"OPTION";if(e instanceof I)return"OR";if(e instanceof L)return"AT_LEAST_ONE";if(e instanceof O)return"AT_LEAST_ONE_SEP";else if(e instanceof k)return"MANY_SEP";else if(e instanceof R)return"MANY";else if(e instanceof N)return"CONSUME";else throw Error("non exhaustive match")}class x{walk(e,t=[]){e.definition.forEach((s,i)=>{let n=e.definition.slice(i+1);if(s instanceof g)this.walkProdRef(s,n,t);else if(s instanceof N)this.walkTerminal(s,n,t);else if(s instanceof A)this.walkFlat(s,n,t);else if(s instanceof S)this.walkOption(s,n,t);else if(s instanceof L)this.walkAtLeastOne(s,n,t);else if(s instanceof O)this.walkAtLeastOneSep(s,n,t);else if(s instanceof k)this.walkManySep(s,n,t);else if(s instanceof R)this.walkMany(s,n,t);else if(s instanceof I)this.walkOr(s,n,t);else throw Error("non exhaustive match")})}walkTerminal(e,t,s){}walkProdRef(e,t,s){}walkFlat(e,t,s){let i=t.concat(s);this.walk(e,i)}walkOption(e,t,s){let i=t.concat(s);this.walk(e,i)}walkAtLeastOne(e,t,s){let i=[new S({definition:e.definition})].concat(t,s);this.walk(e,i)}walkAtLeastOneSep(e,t,s){let i=U(e,t,s);this.walk(e,i)}walkMany(e,t,s){let i=[new S({definition:e.definition})].concat(t,s);this.walk(e,i)}walkManySep(e,t,s){let i=U(e,t,s);this.walk(e,i)}walkOr(e,t,s){let i=t.concat(s);e.definition.forEach(e=>{let t=new A({definition:[e]});this.walk(t,i)})}}function U(e,t,s){return[new S({definition:[new N({terminalType:e.separator})].concat(e.definition)})].concat(t,s)}function M(e){if(e instanceof g)return M(e.referencedRule);if(e instanceof N)return[e.terminalType];if(e instanceof A||e instanceof S||e instanceof R||e instanceof L||e instanceof O||e instanceof k||e instanceof N||e instanceof y)return function(e){let t,s=[],i=e.definition,n=0,a=i.length>n,r=!0;for(;a&&r;)r=_(t=i[n]),s=s.concat(M(t)),n+=1,a=i.length>n;return[...new Set(s)]}(e);if(e instanceof I)return[...new Set(e.definition.map(e=>M(e)).flat())];throw Error("non exhaustive match")}let w="_~IN~_";class P extends x{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,s){}walkProdRef(e,t,s){var i,n;let a=(i=e.referencedRule,n=e.idx,i.name+n+w+this.topProd.name),r=M(new A({definition:t.concat(s)}));this.follows[a]=r}}function D(e){return e.charCodeAt(0)}function $(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function K(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function F(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function B(){throw Error("Internal Error - Should never get here!")}function j(e){return"Character"===e.type}let G=[];for(let e=D("0");e<=D("9");e++)G.push(e);let W=[D("_")].concat(G);for(let e=D("a");e<=D("z");e++)W.push(e);for(let e=D("A");e<=D("Z");e++)W.push(e);let V=[D(" "),D("\f"),D("\n"),D("\r"),D(" "),D("\v"),D(" "),D("\xa0"),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D(" "),D("\u2028"),D("\u2029"),D(" "),D(" "),D(" "),D("\uFEFF")],z=/[0-9a-fA-F]/,H=/[0-9]/,Y=/[1-9]/;class X{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");let t=this.disjunction();this.consumeChar("/");let s={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":K(s,"global");break;case"i":K(s,"ignoreCase");break;case"m":K(s,"multiLine");break;case"u":K(s,"unicode");break;case"y":K(s,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:s,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break;case"<":switch(this.popChar()){case"=":t="Lookbehind";break;case"!":t="NegativeLookbehind"}}F(t);let s=this.disjunction();return this.consumeChar(")"),{type:t,value:s,loc:this.loc(e)}}return B()}quantifier(e=!1){let t,s=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":t=this.isDigit()?{atLeast:i,atMost:this.integerIncludingZero()}:{atLeast:i,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;F(t)}if((!0!==e||void 0!==t)&&F(t))return"?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(s),t}atom(){let e,t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}return(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),F(e))?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):B()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[D("\n"),D("\r"),D("\u2028"),D("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=G;break;case"D":e=G,t=!0;break;case"s":e=V;break;case"S":e=V,t=!0;break;case"w":e=W;break;case"W":e=W,t=!0}return F(e)?{type:"Set",value:e,complement:t}:B()}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=D("\f");break;case"n":e=D("\n");break;case"r":e=D("\r");break;case"t":e=D(" ");break;case"v":e=D("\v")}return F(e)?{type:"Character",value:e}:B()}controlLetterEscapeAtom(){this.consumeChar("c");let e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:D("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:D(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:D(this.popChar())}}}characterClass(){let e=[],t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){let t=this.classAtom();if(t.type,j(t)&&this.isRangeDash()){this.consumeChar("-");let s=this.classAtom();if(s.type,j(s)){if(s.value<t.value)throw Error("Range out of order in character class");e.push({from:t.value,to:s.value})}else $(t.value,e),e.push(D("-")),$(s.value,e)}else $(t.value,e)}return this.consumeChar("]"),{type:"Set",complement:t,value:e}}classAtom(){switch(this.peekChar()){case"]":case"\n":case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:D("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let e=!0;this.consumeChar("("),"?"===this.peekChar(0)?(this.consumeChar("?"),this.consumeChar(":"),e=!1):this.groupIdx++;let t=this.disjunction();this.consumeChar(")");let s={type:"Group",capturing:e,value:t};return e&&(s.idx=this.groupIdx),s}positiveInteger(){let e=this.popChar();if(!1===Y.test(e))throw Error("Expecting a positive integer");for(;H.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}integerIncludingZero(){let e=this.popChar();if(!1===H.test(e))throw Error("Expecting an integer");for(;H.test(this.peekChar(0));)e+=this.popChar();return parseInt(e,10)}patternCharacter(){let e=this.popChar();switch(e){case"\n":case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:D(e)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return"-"===this.peekChar()&&this.isClassAtom(1)}isDigit(){return H.test(this.peekChar(0))}isClassAtom(e=0){switch(this.peekChar(e)){case"]":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return"?"===this.peekChar(1)&&("="===this.peekChar(2)||"!"===this.peekChar(2)||"<"===this.peekChar(2)&&("="===this.peekChar(3)||"!"===this.peekChar(3)));default:return!1}}isQuantifier(){let e=this.saveState();try{return void 0!==this.quantifier(!0)}catch(e){return!1}finally{this.restoreState(e)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case"\n":case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(e){let t="";for(let s=0;s<e;s++){let e=this.popChar();if(!1===z.test(e))throw Error("Expecting a HexDecimal digits");t+=e}return{type:"Character",value:parseInt(t,16)}}peekChar(e=0){return this.input[this.idx+e]}popChar(){let e=this.peekChar(0);return this.consumeChar(void 0),e}consumeChar(e){if(void 0!==e&&this.input[this.idx]!==e)throw Error("Expected: '"+e+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}}class q{visitChildren(e){for(let t in e){let s=e[t];e.hasOwnProperty(t)&&(void 0!==s.type?this.visit(s):Array.isArray(s)&&s.forEach(e=>{this.visit(e)},this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Lookbehind":this.visitLookbehind(e);break;case"NegativeLookbehind":this.visitNegativeLookbehind(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitLookbehind(e){}visitNegativeLookbehind(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}function J(e){console&&console.error&&console.error(`Error: ${e}`)}function Z(e){console&&console.warn&&console.warn(`Warning: ${e}`)}let Q={},ee=new X;function et(e){let t=e.toString();if(Q.hasOwnProperty(t))return Q[t];{let e=ee.pattern(t);return Q[t]=e,e}}let es="Complement Sets are not supported for first char optimization",ei='Unable to use "first char" lexer optimizations:\n';function en(e,t,s){let i=eS(e);t[i]=i,!0===s&&function(e,t){let s=String.fromCharCode(e),i=s.toUpperCase();if(i!==s){let e=eS(i.charCodeAt(0));t[e]=e}else{let e=s.toLowerCase();if(e!==s){let s=eS(e.charCodeAt(0));t[s]=s}}}(e,t)}function ea(e,t){return e.value.find(e=>"number"==typeof e?t.includes(e):void 0!==t.find(t=>e.from<=t&&t<=e.to))}class er extends q{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":this.visitLookahead(e);return;case"NegativeLookahead":this.visitNegativeLookahead(e);return;case"Lookbehind":this.visitLookbehind(e);return;case"NegativeLookbehind":this.visitNegativeLookbehind(e);return}super.visitChildren(e)}}visitCharacter(e){this.targetCharCodes.includes(e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===ea(e,this.targetCharCodes)&&(this.found=!0):void 0!==ea(e,this.targetCharCodes)&&(this.found=!0)}}function eo(e,t){if(t instanceof RegExp){let s=et(t),i=new er(e);return i.visit(s),i.found}for(let s of t){let t=s.charCodeAt(0);if(e.includes(t))return!0}return!1}let el="PATTERN",ec="defaultMode",eh="modes",ed=/[^\\][$]/,eu=/[^\\[][\^]|^\^/;function ep(e){let t=e.ignoreCase?"iy":"y";return RegExp(`${e.source}`,t)}function ef(e){let t=e.PATTERN;if(t instanceof RegExp)return!1;if("function"==typeof t)return!0;if(Object.hasOwn(t,"exec"))return!0;if("string"==typeof t)return!1;throw Error("non exhaustive match")}function em(e){return"string"==typeof e&&1===e.length&&e.charCodeAt(0)}let eE={test:function(e){let t=e.length;for(let s=this.lastIndex;s<t;s++){let t=e.charCodeAt(s);if(10===t)return this.lastIndex=s+1,!0;if(13===t)return 10===e.charCodeAt(s+1)?this.lastIndex=s+2:this.lastIndex=s+1,!0}return!1},lastIndex:0};function eT(e,t){if(Object.hasOwn(e,"LINE_BREAKS"))return!1;if(e.PATTERN instanceof RegExp){try{eo(t,e.PATTERN)}catch(e){return{issue:i.IDENTIFY_TERMINATOR,errMsg:e.message}}return!1}if("string"==typeof e.PATTERN)return!1;if(ef(e))return{issue:i.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}function eg(e){return e.map(e=>"string"==typeof e?e.charCodeAt(0):e)}function ey(e,t,s){void 0===e[t]?e[t]=[s]:e[t].push(s)}let eA=[];function eS(e){return e<256?e:eA[e]}function eL(e){let t=new Date().getTime(),s=e();return{time:new Date().getTime()-t,value:s}}function eO(e,t){let s=e.tokenTypeIdx;return s===t.tokenTypeIdx||!0===t.isParent&&!0===t.categoryMatchesMap[s]}function eR(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}let ek=1,eI={};function eN(e){let t=function(e){let t=[...e],s=e,i=!0;for(;i;){let e=(s=s.map(e=>e.CATEGORIES).flat().filter(Boolean)).filter(e=>!t.includes(e));t=t.concat(e),0===e.length?i=!1:s=e}return t}(e);t.forEach(e=>{var t,s;eb(e)||(eI[ek]=e,e.tokenTypeIdx=ek++),eC(e)&&!Array.isArray(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),eC(e)||(e.CATEGORIES=[]),Object.hasOwn(null!=(t=e)?t:{},"categoryMatches")||(e.categoryMatches=[]),Object.hasOwn(null!=(s=e)?s:{},"categoryMatchesMap")||(e.categoryMatchesMap={})}),t.forEach(e=>{!function e(t,s){t.forEach(e=>{s.categoryMatchesMap[e.tokenTypeIdx]=!0}),s.CATEGORIES.forEach(i=>{let n=t.concat(s);n.includes(i)||e(n,i)})}([],e)}),t.forEach(e=>{e.categoryMatches=[],Object.keys(e.categoryMatchesMap).forEach(t=>{e.categoryMatches.push(eI[t].tokenTypeIdx)})}),t.forEach(e=>{e.isParent=e.categoryMatches.length>0})}function eb(e){return Object.hasOwn(null!=e?e:{},"tokenTypeIdx")}function eC(e){return Object.hasOwn(null!=e?e:{},"CATEGORIES")}function e_(e){return Object.hasOwn(null!=e?e:{},"tokenTypeIdx")}!function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"}(i||(i={}));let ev={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:{buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,s,i,n,a)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${s} characters.`},traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(ev);class ex{constructor(e,t=ev){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.cachedGroupKeys=[],this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let s=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${s}--> <${e}>`);let{time:i,value:n}=eL(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${s}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,n}},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=Object.assign({},ev,t);let s=this.config.traceInitPerf;!0===s?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof s&&(this.traceInitMaxIdent=s,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let s,n=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ev.lineTerminatorsPattern)this.config.lineTerminatorsPattern=eE;else if(this.config.lineTerminatorCharacters===ev.lineTerminatorCharacters)throw Error("Error: Missing <lineTerminatorCharacters> property on the Lexer config.\n For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Array.isArray(e)?s={modes:{defaultMode:[...e]},defaultMode:ec}:(n=!1,s=Object.assign({},e))}),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,s){let n=[];return Object.hasOwn(e,ec)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+ec+"> property in its definition\n",type:i.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Object.hasOwn(e,eh)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+eh+"> property in its definition\n",type:i.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Object.hasOwn(e,eh)&&Object.hasOwn(e,ec)&&!Object.hasOwn(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${ec}: <${e.defaultMode}>which does not exist
|
|
2
2
|
`,type:i.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Object.hasOwn(e,eh)&&Object.keys(e.modes).forEach(t=>{let s=e.modes[t];s.forEach((e,a)=>{void 0===e?n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${a}>
|
|
3
3
|
`,type:i.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):Object.hasOwn(e,"LONGER_ALT")&&(Array.isArray(e.LONGER_ALT)?e.LONGER_ALT:[e.LONGER_ALT]).forEach(a=>{void 0===a||s.includes(a)||n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${a.name}> on token <${e.name}> outside of mode <${t}>
|
|
4
4
|
`,type:i.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),n}(s,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(function(e,t,s){let n=[],a=!1,r=Object.values(e.modes||{}).flat().filter(Boolean).filter(e=>e[el]!==ex.NA),o=eg(s);return t&&r.forEach(e=>{let t=eT(e,o);if(!1!==t){let s={message:function(e,t){if(t.issue===i.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
|
|
@@ -54,7 +54,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
54
54
|
inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=this.recordingProdStack.at(-1),n=new g({idx:t,nonTerminalName:e.ruleName,label:null==s?void 0:s.LABEL,referencedRule:void 0});return i.definition.push(n),this.outputCst?tG:tF}consumeInternalRecord(e,t,s){if(tY(t),!eb(e)){let s=Error(`<CONSUME${tH(t)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>
|
|
55
55
|
inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=this.recordingProdStack.at(-1),n=new N({idx:t,terminalType:e,label:null==s?void 0:s.LABEL});return i.definition.push(n),tj}}function tV(e,t,s,i=!1){tY(s);let n=this.recordingProdStack.at(-1),a="function"==typeof t?t:t.DEF,r=new e({definition:[],idx:s});return i&&(r.separator=t.SEP),Object.hasOwn(t,"MAX_LOOKAHEAD")&&(r.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(r),a.call(this),n.definition.push(r),this.recordingProdStack.pop(),tF}function tz(e,t){tY(t);let s=this.recordingProdStack.at(-1),i=!1===Array.isArray(e),n=!1===i?e:e.DEF,a=new I({definition:[],idx:t,ignoreAmbiguities:i&&!0===e.IGNORE_AMBIGUITIES});return Object.hasOwn(e,"MAX_LOOKAHEAD")&&(a.maxLookahead=e.MAX_LOOKAHEAD),a.hasPredicates=n.some(e=>"function"==typeof e.GATE),s.definition.push(a),n.forEach(e=>{let t=new A({definition:[]});a.definition.push(t),Object.hasOwn(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:Object.hasOwn(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()}),tF}function tH(e){return 0===e?"":`${e}`}function tY(e){if(e<0||e>255){let t=Error(`Invalid DSL Method idx value: <${e}>
|
|
56
56
|
Idx value must be a none negative value smaller than 256`);throw t.KNOWN_RECORDER_ERROR=!0,t}}class tX{initPerformanceTracer(e){if(Object.hasOwn(e,"traceInitPerf")){let t=e.traceInitPerf,s="number"==typeof t;this.traceInitMaxIdent=s?t:1/0,this.traceInitPerf=s?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=tJ.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0!==this.traceInitPerf)return t();{this.traceInitIndent++;let s=Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${s}--> <${e}>`);let{time:i,value:n}=eL(t),a=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&a(`${s}<-- <${e}> time: ${i}ms`),this.traceInitIndent--,n}}}let tq=eV(eW,"",-1,-1,-1,-1,-1,-1);Object.freeze(tq);let tJ=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:ez,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),tZ=Object.freeze({recoveryValueFunc:()=>void 0,resyncEnabled:!0});!function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"}(r||(r={}));class tQ{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let e;this.selfAnalysisDone=!0;let t=this.className;this.TRACE_INIT("toFastProps",()=>{E(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),this.definedRulesNames.forEach(e=>{let t,s=this[e].originalGrammarAction;this.TRACE_INIT(`${e} Rule`,()=>{t=this.topLevelRuleRecord(e,s)}),this.gastProductionsCache[e]=t})}finally{this.disableRecording()}});let s=[];if(this.TRACE_INIT("Grammar Resolving",()=>{s=function(e){let t=Object.assign({errMsgProvider:eH},e),s={};e.rules.forEach(e=>{s[e.name]=e});let i=new eX(s,t.errMsgProvider);return i.resolveRefs(),i.errors}({rules:Object.values(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(s)}),this.TRACE_INIT("Grammar Validations",()=>{if(0===s.length&&!1===this.skipValidations){var e;let s=function(e){var t;let s=null!=(t=e.errMsgProvider)?t:eY;return function(e,t,s,i){let n=e.flatMap(e=>(function(e,t){let s=new tl;return e.accept(s),Object.values(Object.fromEntries(Object.entries(Object.groupBy(s.allProductions,tr)).filter(([e,t])=>t.length>1))).map(s=>{let i=s[0],n=t.buildDuplicateFoundError(e,s),a=v(i),o={message:n,type:r.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:a,occurrence:i.idx},l=to(i);return l&&(o.parameter=l),o})})(e,s)),a=function(e,t,s){let i=[],n=t.map(e=>e.name);return e.forEach(e=>{let t=e.name;if(n.includes(t)){let n=s.buildNamespaceConflictError(e);i.push({message:n,type:r.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}}),i}(e,t,s),o=e.flatMap(e=>(function(e,t){let s=new tc;return e.accept(s),s.alternations.flatMap(s=>s.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:s}),type:r.TOO_MANY_ALTS,ruleName:e.name,occurrence:s.idx}]:[])})(e,s)),l=e.flatMap(t=>(function(e,t,s,i){let n=[];if(t.reduce((t,s)=>s.name===e.name?t+1:t,0)>1){let t=i.buildDuplicateRuleNameError({topLevelRule:e,grammarName:s});n.push({message:t,type:r.DUPLICATE_RULE_NAME,ruleName:e.name})}return n})(t,e,i,s));return n.concat(a,o,l)}(e.rules,e.tokenTypes,s,e.grammarName)}({rules:Object.values(this.gastProductionsCache),tokenTypes:Object.values(this.tokensMap),errMsgProvider:eY,grammarName:t}),i=(e={lookaheadStrategy:this.lookaheadStrategy,rules:Object.values(this.gastProductionsCache),tokenTypes:Object.values(this.tokensMap),grammarName:t}).lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}).map(e=>Object.assign({type:r.CUSTOM_LOOKAHEAD_VALIDATION},e));this.definitionErrors=this.definitionErrors.concat(s,i)}}),0===this.definitionErrors.length&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let e=function(e){let t={};return e.forEach(e=>{Object.assign(t,new P(e).startWalking())}),t}(Object.values(this.gastProductionsCache));this.resyncFollows=e}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var e,t;null==(t=(e=this.lookaheadStrategy).initialize)||t.call(e,{rules:Object.values(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Object.values(this.gastProductionsCache))})),!tQ.DEFER_DEFINITION_ERRORS_HANDLING&&0!==this.definitionErrors.length)throw e=this.definitionErrors.map(e=>e.message),Error(`Parser Definition Errors detected:
|
|
57
|
-
${e.join("\n-------------------------------\n")}`)})}constructor(e,t){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initGastRecorder(t),this.initPerformanceTracer(t),Object.hasOwn(t,"ignoredIssues"))throw Error("The <ignoredIssues> IParserConfig property has been deprecated.\n Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=Object.hasOwn(t,"skipValidations")?t.skipValidations:tJ.skipValidations}}tQ.DEFER_DEFINITION_ERRORS_HANDLING=!1,function(e,t){t.forEach(t=>{let s=t.prototype;Object.getOwnPropertyNames(s).forEach(i=>{if("constructor"===i)return;let n=Object.getOwnPropertyDescriptor(s,i);n&&(n.get||n.set)?Object.defineProperty(e.prototype,i,n):e.prototype[i]=t.prototype[i]})})}(tQ,[tk,tb,tw,tP,t$,tD,tK,tW,tX]);class t0 extends tQ{constructor(e,t=tJ){let s=Object.assign({},t);s.outputCst=!0,super(e,s)}}var t1=s(57626),t2=(0,m.K)(e=>void 0!==e&&e>=0,"isKnownLocation");function t5(e,t){let s=e.lexer.tokenize(t);if(s.errors.length>0){let i=s.errors[0],n=t2(i.offset)?i.offset:t.length,a=n+(t2(i.length)?i.length:0);throw Error(`Error lexing ${e.diagramType} diagram: ${i.message} at line ${i.line??1}, column ${i.column??1} [${n},${a})`)}e.parser.input=s.tokens;let i=e.entry();if(e.parser.errors.length>0)throw Error(`Error parsing ${e.diagramType} diagram: ${e.parser.errors[0].message}`);e.visit(i)}(0,m.K)(t5,"runChevrotainParse");var t6={SOLID_ARROW:0,BACK_ARROW:1,LINE_SOLID:2,CIRCLE_ARROW:3,CROSS_ARROW:4,CIRCLE_ARROW_REVERSED:5,CROSS_ARROW_REVERSED:6},t3=p.UI.usecase,t4=(0,m.K)(()=>({actors:new Map,useCases:new Map,systemBoundaries:new Map,relationships:[],notes:new Map,jsonNodes:new Map,classDefs:new Map,symbols:new Map,direction:"LR",relationshipCounter:0,noteCounter:0,accTitle:"",accDescription:"",ast:void 0,config:structuredClone(t3)}),"createModel"),t8=(0,m.K)(e=>{if(!(e.actors instanceof Map)||!(e.useCases instanceof Map)||!(e.systemBoundaries instanceof Map)||!Array.isArray(e.relationships)||!(e.notes instanceof Map)||!(e.jsonNodes instanceof Map)||!(e.classDefs instanceof Map)||!(e.symbols instanceof Map)||!["TB","TD","BT","RL","LR"].includes(e.direction)||!Number.isSafeInteger(e.relationshipCounter)||e.relationshipCounter<0||!Number.isSafeInteger(e.noteCounter)||e.noteCounter<0||"string"!=typeof e.accTitle||"string"!=typeof e.accDescription||!e.config)throw Error("Cannot commit an incomplete usecase model")},"assertCompleteModel"),t9=t4(),t7=(0,m.K)(()=>structuredClone(t9.config),"getConfig"),se=(0,m.K)(()=>t9.ast,"getAST"),st=(0,m.K)(e=>{let t=structuredClone(e);t8(t);let s=(0,p.iN)(),i=(0,p.m7)();try{(0,p.SV)(t.accTitle),(0,p.EI)(t.accDescription),t9=t}catch(e){throw(0,p.SV)(s),(0,p.EI)(i),e}},"commit"),ss=(0,m.K)(()=>{t9=t4(),(0,p.IU)()},"clear"),si=(0,m.K)(()=>t9.actors,"getActors"),sn=(0,m.K)(e=>t9.actors.get(e),"getActor"),sa=(0,m.K)(()=>t9.useCases,"getUseCases"),sr=(0,m.K)(e=>t9.useCases.get(e),"getUseCase"),so=(0,m.K)(()=>t9.systemBoundaries,"getSystemBoundaries"),sl=(0,m.K)(e=>t9.systemBoundaries.get(e),"getSystemBoundary"),sc=(0,m.K)(()=>t9.relationships,"getRelationships"),sh=(0,m.K)(()=>t9.notes,"getNotes"),sd=(0,m.K)(e=>t9.notes.get(e),"getNote"),su=(0,m.K)(()=>t9.jsonNodes,"getJsonNodes"),sp=(0,m.K)(e=>t9.jsonNodes.get(e),"getJsonNode"),sf=(0,m.K)(()=>t9.classDefs,"getClassDefs"),sm=(0,m.K)(e=>t9.classDefs.get(e),"getClassDef"),sE=(0,m.K)(()=>t9.direction,"getDirection"),sT=(0,m.K)(e=>{let t=new Map;for(let s of["default",...e]){let e=t9.classDefs.get(s);if(e)for(let s of e.styles){let e=s.trim(),i=e.indexOf(":"),n=(-1===i?e:e.slice(0,i)).trim();n&&t.set(n,e)}}return[...t.values()]},"getCompiledStyles"),sg=(0,m.K)(e=>e.replaceAll("~","~0").replaceAll("/","~1"),"escapeJsonPointerPart"),sy=(0,m.K)(e=>"string"==typeof e?e:null===e?"null":String(e),"displayJsonScalar"),sA=(0,m.K)((e,t,s=e=>e)=>{let i=[],n=(0,m.K)((e,t,n)=>{i.push({key:s(e),accessibleKey:s(t),value:s(n)})},"append"),a=(0,m.K)((e,s,i)=>{if(Array.isArray(e)){if(0===e.length)return void n(s,s,"[]");if(e.every(e=>null===e||["string","number","boolean"].includes(typeof e))){for(let[t,i]of e.entries())n(0===t?s:"",s,sy(i));return}for(let[t,n]of e.entries())a(n,`${s}[${t}]`,`${i}/${t}`);return}if(null!==e&&"object"==typeof e){let r=t[i]??Object.keys(e);if(0===r.length)return void n(s,s,"{}");for(let t of r){let n=s?`${s}.${t}`:t;a(e[t],n,`${i}/${sg(t)}`)}return}n(s,s,sy(e))},"visit");return a(e,"",""),i},"flattenJsonRows"),sS=(0,m.K)(e=>{switch(e.type){case"hollow":return"usecaseActorHollow";case"awesome":return"usecaseActorAwesome";case"icon":return"usecaseActorIcon";case"normal":return"usecaseActor"}},"actorShape"),sL=(0,m.K)(e=>"ellipse"===e.shape?e.business?"usecaseBusiness":"usecaseEllipse":e.shape,"useCaseShape"),sO=(0,m.K)(e=>{switch(e){case t6.SOLID_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_point"};case t6.BACK_ARROW:return{arrowTypeStart:"arrow_point",arrowTypeEnd:"none"};case t6.CIRCLE_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_circle"};case t6.CROSS_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_cross"};case t6.CIRCLE_ARROW_REVERSED:return{arrowTypeStart:"arrow_circle",arrowTypeEnd:"none"};case t6.CROSS_ARROW_REVERSED:return{arrowTypeStart:"arrow_cross",arrowTypeEnd:"none"};case t6.LINE_SOLID:return{arrowTypeStart:"none",arrowTypeEnd:"none"}}},"associationMarkers"),sR=(0,m.K)(e=>{switch(e.type){case"include":case"extend":return{arrowTypeStart:"none",arrowTypeEnd:"arrow_point",pattern:"dotted",label:e.type,labelType:"text"};case"generalization":return{arrowTypeStart:"none",arrowTypeEnd:"extension",pattern:"solid"};case"association":return{...sO(e.arrowType),pattern:"solid",...e.label?{label:e.label}:{},...e.labelType?{labelType:e.labelType}:{}}}},"relationshipVisuals"),sk=(0,m.K)(e=>e.animate||e.animation?[`edge-animation-${e.animation??"fast"}`]:[],"animationClasses"),sI=(0,m.K)((...e)=>e.filter(e=>!!e).join(" "),"classNames"),sN=(0,m.K)(()=>{let e=(0,p.D7)(),t={...t9.config,...e.usecase},s=(0,m.K)(t=>(0,p.jZ)(t,e),"sanitize"),i=(0,m.K)(e=>s(t9.actors.get(e)?.label??t9.useCases.get(e)?.label??t9.jsonNodes.get(e)?.id??t9.notes.get(e)?.label??e),"endpointLabel"),n=[],a=[],r=0,o=0;for(let t of t9.actors.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:sS(t),isGroup:!1,padding:10,look:e.look,colorIndex:r++,cssClasses:sI("default","usecase-actor",`usecase-actor-${t.type}`,t.business&&"usecase-business",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),actorType:t.type,business:t.business,...t.icon?{icon:t.icon}:{},...t.stereotype?{stereotype:s(t.stereotype)}:{},...t.parentId?{parentId:t.parentId}:{}});for(let t of t9.useCases.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:sL(t),isGroup:!1,padding:"ellipse"===t.shape?20:10,look:e.look,colorIndex:r++,cssClasses:sI("default","usecase-element",`usecase-${t.shape}`,t.business&&"usecase-business",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),business:t.business,...t.stereotype?{stereotype:s(t.stereotype)}:{},...t.parentId?{parentId:t.parentId}:{}});for(let t of t9.notes.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:"note",isGroup:!1,padding:10,look:e.look,cssClasses:"default usecase-note",cssStyles:[],cssCompiledStyles:sT([]),noteTarget:t.target,noteTargetLabel:s(t9.actors.get(t.target)?.label??t9.useCases.get(t.target)?.label??t9.jsonNodes.get(t.target)?.id??t.target)});for(let t of t9.jsonNodes.values())n.push({id:t.id,label:s(t.id),labelType:"text",shape:"usecaseJsonTable",isGroup:!1,padding:10,look:e.look,cssClasses:sI("default","usecase-json-table",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),jsonRows:sA(t.value,t.propertyOrder,s)});for(let t of t9.systemBoundaries.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:"usecaseSystemBoundary",isGroup:!0,padding:20,look:e.look,colorIndex:o++,cssClasses:sI("default","system-boundary",`system-boundary-${t.type}`,...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),boundaryType:t.type});for(let t of t9.relationships){let{label:n,...r}=sR(t);a.push({id:t.id,start:t.source,end:t.target,source:t.source,target:t.target,sourceLabel:i(t.source),targetLabel:i(t.target),type:"edge",relationshipType:t.type,internal:!1,...r,...void 0!==n?{label:s(n)}:{},labelpos:"c",classes:sI("default","relationship",`relationship-${t.type}`,...t.classes,...sk(t)),style:[...t.styles],cssCompiledStyles:sT(t.classes),animate:t.animate,...t.animation?{animation:t.animation}:{},look:e.look,thickness:"normal",minlen:t.minlen,isUserDefinedId:t.explicitId})}for(let t of t9.notes.values())a.push({id:`${t.id}-edge`,start:t.id,end:t.target,source:t.id,target:t.target,type:"edge",relationshipType:"note",sourceLabel:i(t.id),targetLabel:i(t.target),internal:!0,pattern:"dotted",arrowTypeStart:"none",arrowTypeEnd:"none",labelpos:"c",classes:"default relationship relationship-note",style:[],cssCompiledStyles:sT([]),animate:!1,look:e.look,thickness:"normal",minlen:1,isUserDefinedId:!1});for(let e of n)e.wrappingWidth??=t.wrappingWidth,e.isGroup||e.shape.startsWith("usecaseActor")||(e.minWidth??=t.minNodeWidth),("usecaseEllipse"===e.shape||"usecaseBusiness"===e.shape)&&(e.spreadPorts=!0);return{nodes:n,edges:a,config:e,type:"usecase",layoutAlgorithm:"dagre",direction:sE(),nodeSpacing:t.nodeSpacing,rankSpacing:t.rankSpacing,actorFontSize:t.actorFontSize,actorFontFamily:t.actorFontFamily,actorFontWeight:t.actorFontWeight,usecaseFontSize:t.usecaseFontSize,usecaseFontFamily:t.usecaseFontFamily,usecaseFontWeight:t.usecaseFontWeight,diagramPadding:t.diagramPadding,useMaxWidth:t.useMaxWidth,markers:["point","circle","cross","extension"]}},"getData"),sb={getConfig:t7,createModel:t4,commit:st,getAST:se,clear:ss,setDiagramTitle:p.ke,getDiagramTitle:p.ab,setAccTitle:p.SV,getAccTitle:p.iN,setAccDescription:p.EI,getAccDescription:p.m7,getActors:si,getActor:sn,getUseCases:sa,getUseCase:sr,getSystemBoundaries:so,getSystemBoundary:sl,getRelationships:sc,getNotes:sh,getNote:sd,getJsonNodes:su,getJsonNode:sp,getClassDefs:sf,getClassDef:sm,getDirection:sE,getData:sN};function sC(e,t,s){let i=[s];return i.index=t,i.input=e,i}(0,m.K)(sC,"customMatch");var s_=(0,m.K)((e,t)=>{if('"'!==e[t]||"`"!==e[t+1])return null;for(let s=t+2;s<e.length-1;s++)if("`"===e[s]&&'"'===e[s+1])return sC(e,t,e.slice(t,s+2));return null},"matchMarkdownString"),sv=(0,m.K)((e,t)=>{if("%"!==e[t]||"%"!==e[t+1])return null;for(let s=t-1;s>=0;s--){let t=e[s];if("\n"===t||"\r"===t)break;if(" "!==t&&" "!==t)return null}let s=t+2;for(;s<e.length&&"\n"!==e[s]&&"\r"!==e[s];)s++;return sC(e,t,e.slice(t,s))},"matchComment"),sx=(0,m.K)((e,t)=>{for(let s=t-1;s>=0;s--){let t=e[s];if("\n"===t||"\r"===t)break;if(" "!==t&&" "!==t)return!1}return!0},"isIndentedLineStart"),sU=(0,m.K)((e,t,s)=>{if(!sx(e,t))return null;let i=s.exec(e.slice(t));return i?sC(e,t,i[0]):null},"matchAccessibilityLine"),sM=(0,m.K)((e,t)=>{if(!sx(e,t))return null;let s=/^accDescr[\t ]*{/.exec(e.slice(t));if(!s)return null;let i=e.indexOf("}",t+s[0].length);return -1===i?null:sC(e,t,e.slice(t,i+1))},"matchAccDescrBlock"),sw=(0,m.K)((e,t)=>{if("{"!==e[t])return null;let s=0,i=!1,n=!1;for(let a=t;a<e.length;a++){let r=e[a];if(i){n?n=!1:"\\"===r?n=!0:'"'===r&&(i=!1);continue}if('"'===r)i=!0;else if("{"===r)s++;else if("}"===r&&0==--s)return sC(e,t,e.slice(t,a+1))}return null},"matchJsonObject"),sP=(0,m.K)((e,t)=>{let s=e.indexOf(">>",t);if(-1===s||/[\n\r]/.test(e.slice(t,s)))return null;let i=e.slice(t,s);return i.trim()?sC(e,t,i):null},"matchStereotypeText"),sD=eG({name:"LABEL_TEXT",pattern:ex.NA}),s$=eG({name:"WORD",pattern:ex.NA,categories:sD}),sK=eG({name:"NUMBER",pattern:/(?:\d+\.\d+|\d+|\.\d+)(?:[A-Za-z]+)?/,categories:sD}),sF=eG({name:"IDENTIFIER",pattern:/\w+/,longer_alt:sK,categories:s$}),sB=eG({name:"HWS",pattern:/[\t ]+/,group:ex.SKIPPED}),sj=eG({name:"MARKDOWN_STRING",pattern:s_,start_chars_hint:['"'],line_breaks:!0}),sG=eG({name:"UNCLOSED_MARKDOWN_STRING",pattern:/"`[^]*/,line_breaks:!0}),sW=eG({name:"COMMENT",pattern:sv,start_chars_hint:["%"],line_breaks:!1}),sV=eG({name:"NEWLINE",pattern:/\r\n|\n|\r/,line_breaks:!0}),sz=eG({name:"ACC_DESCR_BLOCK",pattern:sM,start_chars_hint:["a"],line_breaks:!0}),sH=/^accTitle[\t ]*:[^\n\r]*/,sY=/^accDescr[\t ]*:[^\n\r]*/,sX=eG({name:"ACC_TITLE_LINE",pattern:(0,m.K)((e,t)=>sU(e,t,sH),"pattern"),start_chars_hint:["a"],line_breaks:!1}),sq=eG({name:"ACC_DESCR_LINE",pattern:(0,m.K)((e,t)=>sU(e,t,sY),"pattern"),start_chars_hint:["a"],line_breaks:!1}),sJ=eG({name:"JSON_DECLARATION_START",pattern:/json[\t ]+\w+[\t ]*@[\t ]*(?={)/,push_mode:"jsonBody"}),sZ=eG({name:"JSON_OBJECT_LITERAL",pattern:sw,start_chars_hint:["{"],line_breaks:!0,pop_mode:!0}),sQ=eG({name:"UNCLOSED_JSON_OBJECT_LITERAL",pattern:/{[^]*/,line_breaks:!0,pop_mode:!0}),s0=(0,m.K)((e,t)=>eG({name:e,pattern:t,longer_alt:sF,categories:s$}),"keyword"),s1=s0("USECASE",/usecase-beta/),s2=s0("ACTOR",/actor/),s5=s0("SYSTEM_BOUNDARY",/systemBoundary/),s6=s0("END",/end/),s3=s0("DIRECTION",/direction/),s4=s0("TD",/TD/),s8=s0("TB",/TB/),s9=s0("BT",/BT/),s7=s0("LR",/LR/),ie=s0("RL",/RL/),it=s0("NOTE",/note/),is=s0("FOR",/for/),ii=s0("JSON",/json/),ia=s0("CLASS_DEF",/classDef/),ir=s0("CLASS",/class/),io=s0("STYLE",/style/),il=s0("INCLUDE",/include/i),ic=s0("EXTEND",/extend/i),ih=s0("TRUE",/true/),id=s0("FALSE",/false/),iu=eG({name:"GENERALIZATION",pattern:/--\|>/}),ip=eG({name:"DEPENDENCY_ARROW",pattern:/\.\.>/}),im=eG({name:"STEREOTYPE_START",pattern:/<</,push_mode:"stereotype"}),iE=eG({name:"STEREOTYPE_END",pattern:/>>/,pop_mode:!0}),iT=eG({name:"STEREOTYPE_TEXT",pattern:sP,line_breaks:!1}),ig=eG({name:"UNCLOSED_STEREOTYPE_TEXT",pattern:/[^\n\r]+/,line_breaks:!1,pop_mode:!0}),iy=eG({name:"CLASS_SEPARATOR",pattern:/:::/}),iA=eG({name:"FORWARD_SOLID",pattern:/--+>/}),iS=eG({name:"BACKWARD_SOLID",pattern:/<--+/}),iL=eG({name:"FORWARD_CIRCLE",pattern:/--o/}),iO=eG({name:"BACKWARD_CIRCLE",pattern:/o--/}),iR=eG({name:"FORWARD_CROSS",pattern:/--x/}),ik=eG({name:"BACKWARD_CROSS",pattern:/x--/}),iI=eG({name:"MARKERLESS_SOLID",pattern:/--+/}),iN=eG({name:"METADATA_START",pattern:/@{/}),ib=eG({name:"AT",pattern:/@/,categories:sD}),iC=eG({name:"LBRACE",pattern:/{/}),i_=eG({name:"RBRACE",pattern:/}/}),iv=eG({name:"LBRACKET",pattern:/\[/}),ix=eG({name:"RBRACKET",pattern:/]/}),iU=eG({name:"LPAREN",pattern:/\(/}),iM=eG({name:"RPAREN",pattern:/\)/}),iw=eG({name:"COMMA",pattern:/,/,categories:sD}),iP=eG({name:"COLON",pattern:/:/,categories:sD}),iD=eG({name:"HASH_COLOR",pattern:/#[\dA-Fa-f]+/,categories:sD}),i$=eG({name:"PLAIN_STRING",pattern:/"[^\n\r"]*"|'[^\n\r']*'/}),iK=eG({name:"CSS_IDENTIFIER",pattern:/--[A-Z_a-z][\w-]*|[A-Z_a-z]\w*(?:-\w+)+/,categories:sD}),iF=eG({name:"CSS_ESCAPED_COMMA",pattern:/\\,/,categories:sD}),iB=eG({name:"DASH",pattern:/-/,categories:sD}),ij=eG({name:"DOT",pattern:/\./,categories:sD}),iG=eG({name:"PERCENT",pattern:/%/,categories:sD}),iW=eG({name:"CSS_PUNCTUATION",pattern:/[!#$&*+/=?^_|~]/,categories:sD}),iV=eG({name:"LABEL_PUNCTUATION",pattern:/[;<>\\`]/,categories:sD}),iz=eG({name:"LABEL_SYMBOL",pattern:/[^\t\n\r !-~]+/,categories:sD}),iH=[sD,s$,sB,sj,sG,sW,sV,sz,sX,sq,sJ,s1,s2,s5,s6,s3,s4,s8,s9,s7,ie,it,is,ii,ia,ir,io,il,ic,ih,id,iu,ip,im,iy,iA,iS,iL,iO,iR,ik,iI,iN,ib,iC,i_,iv,ix,iU,iM,iw,iP,iD,i$,iK,sF,sK,iF,iB,ij,iG,iW,iV,iz],iY={defaultMode:"defaultMode",modes:{defaultMode:[...iH],jsonBody:[sZ,sQ],stereotype:[iE,iT,ig]}},iX=[...iH,sZ,sQ,iE,iT,ig],iq=new ex(iY),iJ=(0,m.K)(e=>eO(e,sD)||e.tokenType===i$||e.tokenType===sj,"isLabelToken"),iZ={allowmixing:!0,newpage:!0,package:!0,rectangle:!0,skinparam:!0},iQ=new class extends t0{static{(0,m.K)(this,"UsecaseParser")}constructor(){super(iX,{nodeLocationTracking:"full"}),this.RULE("start",()=>{this.CONSUME(s1),this.SUBRULE(this.lineEnd),this.MANY(()=>this.SUBRULE(this.line))}),this.RULE("line",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.blankLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.commentLine),"ALT")},{GATE:(0,m.K)(()=>this.isStatementStart(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.statement),"ALT")}])}),this.RULE("statement",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.accTitleStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.accDescrStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.directionStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.actorStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.systemBoundaryStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.noteStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.jsonStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.classDefStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.classStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.styleStatement),"ALT")},{GATE:(0,m.K)(()=>this.isMetadataAssignment(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.metadataAssignmentStatement),"ALT")},{GATE:(0,m.K)(()=>!this.isForbiddenPlantUmlStatement(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.entityStatement),"ALT")}])}),this.RULE("lineEnd",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sV),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(eW),"ALT")}])}),this.RULE("blankLine",()=>{this.CONSUME(sV)}),this.RULE("commentLine",()=>{this.CONSUME(sW),this.SUBRULE(this.lineEnd)}),this.RULE("accTitleStatement",()=>{this.CONSUME(sX),this.SUBRULE(this.lineEnd)}),this.RULE("accDescrStatement",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sq),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sz),"ALT")}]),this.SUBRULE(this.lineEnd)}),this.RULE("actorStatement",()=>{this.CONSUME(s2),this.SUBRULE(this.actorItem),this.OPTION(()=>{this.OR([{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>{this.CONSUME(iw),this.SUBRULE2(this.actorItem)}),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.relationTail),"ALT")}])}),this.SUBRULE(this.lineEnd)}),this.RULE("actorItem",()=>{this.SUBRULE(this.actorName),this.OPTION(()=>this.SUBRULE(this.metadata)),this.OPTION2(()=>this.SUBRULE(this.stereotype)),this.OPTION3(()=>this.SUBRULE(this.classSuffix))}),this.RULE("actorName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("actorDeclarationOnly",()=>{this.CONSUME(s2),this.SUBRULE(this.actorItem),this.MANY(()=>{this.CONSUME(iw),this.SUBRULE2(this.actorItem)}),this.SUBRULE(this.lineEnd)}),this.RULE("entityStatement",()=>{this.SUBRULE(this.entityName),this.OPTION(()=>this.SUBRULE(this.relationTail)),this.SUBRULE(this.lineEnd)}),this.RULE("entityName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.OR2([{ALT:(0,m.K)(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)},"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iv),this.SUBRULE2(this.nodeLabel),this.CONSUME(ix)},"ALT")}])})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}]),this.OPTION2(()=>this.SUBRULE(this.useCaseMetadata)),this.OPTION3(()=>this.SUBRULE(this.stereotype)),this.OPTION4(()=>this.SUBRULE(this.classSuffix))}),this.RULE("nodeLabel",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")},{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>this.CONSUME(sD)),"ALT")}])}),this.RULE("useCaseMetadata",()=>{this.SUBRULE(this.metadata)}),this.RULE("relationTail",()=>{this.OPTION({GATE:(0,m.K)(()=>this.LA(1).tokenType===sF&&this.LA(2).tokenType===ib,"GATE"),DEF:(0,m.K)(()=>{this.CONSUME(sF),this.CONSUME(ib)},"DEF")}),this.SUBRULE(this.arrow),this.SUBRULE(this.entityName)}),this.RULE("arrow",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.semanticRelation),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.markerlessSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardCircleOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardCircleOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardCrossOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardCrossOperator),"ALT")}])}),this.RULE("forwardSolidOperator",()=>{this.CONSUME(iA)}),this.RULE("backwardSolidOperator",()=>{this.CONSUME(iS),this.OPTION({GATE:(0,m.K)(()=>"<--"===this.LA(0).image&&this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("markerlessSolidOperator",()=>{this.CONSUME(iI),this.OPTION({GATE:(0,m.K)(()=>"--"===this.LA(0).image&&this.hasLabeledRight([iA,iI,iL,iR]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.OR([{ALT:(0,m.K)(()=>this.CONSUME(iA),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME2(iI),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iL),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iR),"ALT")}])},"DEF")})}),this.RULE("forwardCircleOperator",()=>{this.CONSUME(iL)}),this.RULE("backwardCircleOperator",()=>{this.CONSUME(iO),this.OPTION({GATE:(0,m.K)(()=>this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("forwardCrossOperator",()=>{this.CONSUME(iR)}),this.RULE("backwardCrossOperator",()=>{this.CONSUME(ik),this.OPTION({GATE:(0,m.K)(()=>this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("edgeLabel",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")},{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>this.CONSUME(sD)),"ALT")}])}),this.RULE("semanticRelation",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(ip),this.CONSUME(iP),this.OR2([{ALT:(0,m.K)(()=>this.CONSUME(il),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ic),"ALT")}])},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iu),"ALT")}])}),this.RULE("metadata",()=>{this.CONSUME(iN),this.MANY(()=>this.CONSUME(sV)),this.OPTION(()=>{this.SUBRULE(this.metadataProperty),this.MANY2(()=>{this.SUBRULE(this.metadataSeparator),this.SUBRULE2(this.metadataProperty)}),this.OPTION2(()=>this.CONSUME(iw)),this.MANY3(()=>this.CONSUME2(sV))}),this.CONSUME(i_)}),this.RULE("metadataProperty",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")}]),this.CONSUME(iP),this.OR2([{ALT:(0,m.K)(()=>this.CONSUME2(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME2(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ih),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(id),"ALT")}])}),this.RULE("metadataSeparator",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(iw),this.MANY(()=>this.CONSUME(sV))},"ALT")},{ALT:(0,m.K)(()=>{this.AT_LEAST_ONE(()=>this.CONSUME2(sV)),this.OPTION(()=>this.CONSUME2(iw)),this.MANY2(()=>this.CONSUME3(sV))},"ALT")}])}),this.RULE("systemBoundaryStatement",()=>{this.CONSUME(s5),this.SUBRULE(this.systemBoundaryName),this.OPTION(()=>this.SUBRULE(this.metadata)),this.OPTION2(()=>this.SUBRULE(this.classSuffix)),this.SUBRULE(this.lineEnd),this.SUBRULE(this.systemBoundaryContent),this.CONSUME(s6),this.SUBRULE2(this.lineEnd)}),this.RULE("systemBoundaryName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.OR2([{ALT:(0,m.K)(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)},"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iv),this.SUBRULE2(this.nodeLabel),this.CONSUME(ix)},"ALT")}])})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("systemBoundaryContent",()=>{this.MANY(()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.blankLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.commentLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.boundaryElement),"ALT")}])})}),this.RULE("boundaryElement",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.actorDeclarationOnly),"ALT")},{ALT:(0,m.K)(()=>{this.SUBRULE(this.entityName),this.SUBRULE(this.lineEnd)},"ALT")}])}),this.RULE("metadataAssignmentStatement",()=>{this.SUBRULE(this.metadataAssignmentTarget),this.SUBRULE(this.metadata),this.SUBRULE(this.lineEnd)}),this.RULE("metadataAssignmentTarget",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("noteStatement",()=>{this.CONSUME(it),this.CONSUME(is),this.CONSUME(sF),this.SUBRULE(this.nodeLabel),this.SUBRULE(this.lineEnd)}),this.RULE("stereotype",()=>{this.CONSUME(im),this.CONSUME(iT),this.CONSUME(iE)}),this.RULE("classSuffix",()=>{this.CONSUME(iy),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)})}),this.RULE("jsonStatement",()=>{this.CONSUME(sJ),this.CONSUME(sZ),this.OPTION(()=>this.SUBRULE(this.classSuffix)),this.SUBRULE(this.lineEnd)}),this.RULE("directionStatement",()=>{this.CONSUME(s3),this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s4),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s8),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s9),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s7),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ie),"ALT")}]),this.SUBRULE(this.lineEnd)}),this.RULE("classDefStatement",()=>{this.CONSUME(ia),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)}),this.SUBRULE(this.styles),this.SUBRULE(this.lineEnd)}),this.RULE("classStatement",()=>{this.CONSUME(ir),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)}),this.CONSUME3(sF),this.MANY2(()=>{this.CONSUME2(iw),this.CONSUME4(sF)}),this.SUBRULE(this.lineEnd)}),this.RULE("styleStatement",()=>{this.CONSUME(io),this.CONSUME(sF),this.SUBRULE(this.styles),this.SUBRULE(this.lineEnd)}),this.RULE("styles",()=>{this.SUBRULE(this.styleValue),this.MANY(()=>{this.CONSUME(iw),this.SUBRULE2(this.styleValue)})}),this.RULE("styleValue",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iK),"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iI),this.CONSUME2(s$)},"ALT")}]),this.CONSUME(iP),this.AT_LEAST_ONE(()=>this.SUBRULE(this.styleComponent))}),this.RULE("styleComponent",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sK),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iD),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iK),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iB),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ij),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iG),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iW),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iP),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iU),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iM),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iv),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ix),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iC),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i_),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ib),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iI),"ALT")}])}),this.performSelfAnalysis()}isMetadataAssignment(){let e=this.LA(1).tokenType;return(e===sF||e===i$||e===sj)&&this.LA(2).tokenType===iN}isStatementStart(){let e=this.LA(1).tokenType;return e!==eW&&e!==sV&&e!==sW}isForbiddenPlantUmlStatement(){return this.LA(1).tokenType===sF&&!0===iZ[this.LA(1).image.toLowerCase()]}hasLabeledRight(e){if(!iJ(this.LA(1)))return!1;for(let t=2;;t++){let s=this.LA(t);if(e.includes(s.tokenType))return!0;if(!iJ(s))return!1}}},i0=class extends Error{constructor(e,t,s){super(`${e} (line ${t}, column ${s})`),this.line=t,this.column=s,this.name="UsecaseJsonError"}static{(0,m.K)(this,"UsecaseJsonError")}},i1=(0,m.K)((e,t,s,i)=>{let n=s,a=i,r=Math.min(Math.max(t,0),e.length);for(let t=0;t<r;t++){let s=e[t];"\r"===s?(n++,a=1):"\n"===s?(0===t||"\r"!==e[t-1])&&(n++,a=1):a++}return{line:n,column:a}},"locationAtOffset"),i2=(0,m.K)((e,t,s,i)=>{let n=/\bposition (\d+)\b/u.exec(e);if(n)return i1(t,Number.parseInt(n[1],10),s,i);let a=/\bline (\d+) column (\d+)\b/u.exec(e);if(a){let e=Number.parseInt(a[1],10),t=Number.parseInt(a[2],10);return{line:s+e-1,column:1===e?i+t-1:t}}if(/unexpected end|end of json input/iu.test(e))return i1(t,t.length,s,i)},"locationFromErrorMessage"),i5=class extends Error{constructor(e){super("Invalid JSON token"),this.offset=e}static{(0,m.K)(this,"JsonWalkError")}},i6=class{constructor(e){this.text=e,this.offset=0,this.propertyOrder={}}static{(0,m.K)(this,"PropertyOrderCollector")}collect(){if(this.skipWhitespace(),this.collectValue(""),this.skipWhitespace(),this.offset!==this.text.length)throw new i5(this.offset);return this.propertyOrder}collectValue(e){this.skipWhitespace();let t=this.text[this.offset];if("{"===t)this.collectObject(e);else if("["===t)this.collectArray(e);else if('"'===t)this.readString(!1);else if("t"===t)this.consumeLiteral("true");else if("f"===t)this.consumeLiteral("false");else if("n"===t)this.consumeLiteral("null");else if("-"===t||t>="0"&&t<="9")this.consumeNumber();else throw new i5(this.offset)}collectObject(e){this.offset++;let t=[],s=new Set;if(this.propertyOrder[e]=t,this.skipWhitespace(),"}"===this.text[this.offset])return void this.offset++;for(;this.offset<this.text.length&&'"'===this.text[this.offset];){let i=this.readString(!0),n=`${e}/${i.replaceAll("~","~0").replaceAll("/","~1")}`;if(s.has(i)?this.deletePointerSubtree(n):(s.add(i),t.push(i)),this.skipWhitespace(),":"!==this.text[this.offset])break;if(this.offset++,this.collectValue(n),this.skipWhitespace(),"}"===this.text[this.offset])return void this.offset++;if(","!==this.text[this.offset])break;this.offset++,this.skipWhitespace()}throw new i5(this.offset)}collectArray(e){if(this.offset++,this.skipWhitespace(),"]"===this.text[this.offset])return void this.offset++;let t=0;for(;this.offset<this.text.length;){if(this.collectValue(`${e}/${t}`),t++,this.skipWhitespace(),"]"===this.text[this.offset])return void this.offset++;if(","!==this.text[this.offset])break;this.offset++,this.skipWhitespace()}throw new i5(this.offset)}readString(e){this.offset++;let t="";for(;this.offset<this.text.length;){let s=this.offset,i=this.text[this.offset++];if('"'===i)return t;if(32>i.charCodeAt(0))throw new i5(s);if("\\"!==i){e&&(t+=i);continue}let n=this.offset,a=this.text[this.offset++];switch(a){case'"':case"\\":case"/":e&&(t+=a);break;case"b":e&&(t+="\b");break;case"f":e&&(t+="\f");break;case"n":e&&(t+="\n");break;case"r":e&&(t+="\r");break;case"t":e&&(t+=" ");break;case"u":{let s=this.text.slice(this.offset,this.offset+4);if(!/^[\dA-Fa-f]{4}$/u.test(s))throw new i5(this.offset);e&&(t+=String.fromCharCode(Number.parseInt(s,16))),this.offset+=4;break}default:throw new i5(n)}}throw new i5(this.offset)}consumeLiteral(e){let t=0;for(let s of e){if(this.text[this.offset+t]!==s)throw new i5(this.offset+t);t++}this.offset+=e.length}consumeNumber(){if("-"===this.text[this.offset]&&this.offset++,"0"===this.text[this.offset])this.offset++;else if(this.text[this.offset]>="1"&&this.text[this.offset]<="9")for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++;else throw new i5(this.offset);if("."===this.text[this.offset]){if(this.offset++,this.text[this.offset]<"0"||this.text[this.offset]>"9")throw new i5(this.offset);for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++}if("e"===this.text[this.offset]||"E"===this.text[this.offset]){if(this.offset++,("+"===this.text[this.offset]||"-"===this.text[this.offset])&&this.offset++,this.text[this.offset]<"0"||this.text[this.offset]>"9")throw new i5(this.offset);for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++}}skipWhitespace(){for(;this.offset<this.text.length;){let e=this.text[this.offset];if(" "!==e&&" "!==e&&"\n"!==e&&"\r"!==e)return;this.offset++}}deletePointerSubtree(e){let t=`${e}/`;for(let s of Object.keys(this.propertyOrder))(s===e||s.startsWith(t))&&delete this.propertyOrder[s]}};function i3(e,t,s){let i;try{i=JSON.parse(e)}catch(a){let i=a instanceof Error?a.message:String(a),n=i2(i,e,t,s);if(!n){let i=0;try{new i6(e).collect()}catch(e){e instanceof i5&&(i=e.offset)}n=i1(e,i,t,s)}throw new i0(`Invalid JSON: ${i}`,n.line,n.column)}if("object"!=typeof i||null===i||Array.isArray(i))throw new i0("JSON value must have an object root",t,s);return{value:i,propertyOrder:new i6(e).collect()}}(0,m.K)(i3,"parseOrderedJsonObject");var i4=(0,m.K)(e=>({shape:"normal"===e.type?"actor":"hollow"===e.type?"actor-hollow":"awesome"===e.type?"actor-awesome":"actor-icon",...e.label===e.id?{}:{label:e.label},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"actor",actorType:e.type,business:e.business,labelType:e.labelType,...e.icon?{icon:e.icon}:{},...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{}}}),"actorNode"),i8=(0,m.K)(e=>({shape:e.shape,...e.label===e.id?{}:{label:e.label},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"usecase",useCaseShape:e.shape,business:e.business,labelType:e.labelType,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{}}}),"useCaseNode"),i9=(0,m.K)(e=>({label:e.label,shape:"note",attrs:{kind:"note",target:e.target,labelType:e.labelType}}),"noteNode"),i7=(0,m.K)(e=>({label:e.id,shape:"json-table",...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"json",value:e.value,propertyOrder:e.propertyOrder,labelType:"text"}}),"jsonNode"),ne=(0,m.K)(e=>({id:e.id,source:e.source,target:e.target,...e.label?{label:e.label}:{},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{relationshipType:e.type,arrowType:e.arrowType,minlen:e.minlen,explicitId:e.explicitId,animate:e.animate,...e.animation?{animation:e.animation}:{},...e.labelType?{labelType:e.labelType}:{}}}),"relationshipEdge"),nt=(0,m.K)(e=>({id:`${e.id}-edge`,source:e.id,target:e.target,attrs:{relationshipType:"note",arrowType:t6.LINE_SOLID,pattern:"dotted",minlen:1,explicitId:!1,animate:!1,internal:!0}}),"noteEdge"),ns=(0,m.K)((e,t,s,i)=>{let n={};for(let t of e.getActors().values())n[t.id]=i4(t);for(let t of e.getUseCases().values())n[t.id]=i8(t);for(let t of e.getNotes().values())n[t.id]=i9(t);for(let t of e.getJsonNodes().values())n[t.id]=i7(t);let a={};for(let t of e.getSystemBoundaries().values())a[t.id]={...t.label===t.id?{}:{title:t.label},nodes:[...t.members],...t.classes.length?{classes:[...t.classes]}:{},...t.styles.length?{styles:[...t.styles]}:{},attrs:{kind:"systemBoundary",boundaryType:t.type,labelType:t.labelType}};let r={};for(let t of e.getClassDefs().values())r[t.id]={styles:[...t.styles]};let o=e.getDirection();return{version:1,diagramType:"usecase",source:t,header:{keyword:"usecase",direction:"TD"===o?"TB":o,span:s},...e.getAccTitle()?{accTitle:e.getAccTitle()}:{},...e.getAccDescription()?{accDescr:e.getAccDescription()}:{},nodes:n,edges:[...e.getRelationships().map(ne),...[...e.getNotes().values()].map(nt)],groups:a,classDefs:r,statements:i}},"buildUsecaseGraphAST"),ni=(0,m.K)(e=>`line ${e.line}, column ${e.column} [${e.span[0]},${e.span[1]})`,"locationText"),nn=(0,m.K)(e=>void 0===e?"":` (label "${e}")`,"labelSuffix"),na=(0,m.K)(e=>e.generated?e.label:void 0,"generatedFrom"),nr=(0,m.K)((e,t)=>{for(let s of t)e.includes(s)||e.push(s)},"pushUnique"),no=class{constructor(e){this.db=e,this.source="",this.statements=[],this.elements=[],this.boundaries=[],this.jsonDrafts=[],this.relationshipDrafts=[],this.noteDrafts=[],this.metadataAssignments=[],this.classAssignments=[],this.styleAssignments=[],this.classDefinitions=[],this.directions=[],this.model=e.createModel()}static{(0,m.K)(this,"UsecaseModelBuilder")}reset(e){this.model=this.db.createModel(),this.source=e,this.statements=[],this.elements.length=0,this.boundaries.length=0,this.jsonDrafts.length=0,this.relationshipDrafts.length=0,this.noteDrafts.length=0,this.metadataAssignments.length=0,this.classAssignments.length=0,this.styleAssignments.length=0,this.classDefinitions.length=0,this.directions.length=0}addElement(e){this.elements.push(e)}addBoundary(e){this.boundaries.push(e)}addJson(e){this.jsonDrafts.push(e)}addRelationship(e){this.relationshipDrafts.push(e)}addNote(e){this.noteDrafts.push(e)}addMetadataAssignment(e,t,s,i){this.metadataAssignments.push({target:e,targetLocation:t,metadata:s,statement:i})}addClassDef(e,t){this.classDefinitions.push({ids:e,styles:t})}addClassAssignment(e,t){this.classAssignments.push({targets:e,classes:t})}addStyleAssignment(e,t,s){this.styleAssignments.push({target:e,location:t,styles:s})}setDirection(e){this.directions.push("TD"===e?"TB":e)}setAccTitle(e){this.model.accTitle=e}setAccDescription(e){this.model.accDescription=e}setStatements(e){this.statements=e}getActors(){return this.model.actors}getUseCases(){return this.model.useCases}getSystemBoundaries(){return this.model.systemBoundaries}getRelationships(){return this.model.relationships}getNotes(){return this.model.notes}getJsonNodes(){return this.model.jsonNodes}getClassDefs(){return this.model.classDefs}getDirection(){return this.model.direction}getAccTitle(){return this.model.accTitle}getAccDescription(){return this.model.accDescription}finalize(e){let t=new Map,s=new Map,i=new Map,n=new Map;for(let e of this.relationshipDrafts)this.recordFirst(n,e.source.id,e.source.location.span[0]),this.recordFirst(n,e.target.id,e.target.location.span[0]);for(let e of this.elements)this.recordFirst(n,e.id,e.location.span[0]);for(let e of this.boundaries)this.recordFirst(n,e.id,e.location.span[0]);for(let e of this.jsonDrafts)this.recordFirst(n,e.id,e.location.span[0]);for(let e of[...this.elements.map(e=>({offset:e.location.span[0],type:"element",value:e})),...this.boundaries.map(e=>({offset:e.location.span[0],type:"boundary",value:e})),...this.jsonDrafts.map(e=>({offset:e.location.span[0],type:"json",value:e})),...this.relationshipDrafts.filter(e=>e.explicitId).map(e=>({offset:e.explicitIdLocation.span[0],type:"edge",value:e}))].sort((e,t)=>e.offset-t.offset))"element"===e.type?this.collectElement(e.value,t,s):"boundary"===e.type?this.collectBoundary(e.value,t,i):"json"===e.type?this.registerUnique(t,e.value.id,"json",e.value.location,!1):this.registerUnique(t,e.value.explicitId,"edge",e.value.explicitIdLocation,!1);this.materializeElements(s,n),this.materializeBoundaries(i,n),this.materializeJson(n);let a=this.materializeRelationships(t,s,n);this.reorderElements(s,n),this.applyMetadataAssignments(t,s,i,a),this.validateAndRefreshElements(s),this.refreshBoundaries(i,s),this.materializeNotes(t),this.applyClassDefinitions(),this.applyClassesAndStyles(t,a),this.model.direction=this.directions.at(-1)??this.model.direction,this.model.symbols=new Map([...t].map(([e,t])=>[e,t.kind]));let r=ns(this,this.source,e,this.statements);return this.model.ast=r,this.db.commit(this.model),r}collectElement(e,t,s){let i=t.get(e.id),n=na({generated:e.generated,label:e.label.text});i&&i.kind!==e.kind&&this.conflict(`ID '${e.id}' is declared as both ${i.kind} and ${e.kind}`,e.location,i.location,n,na(i)),i&&(i.generated||e.generated)&&this.conflict(`Generated ID '${e.id}' collides with another declaration`,e.location,i.location,n,na(i));let a=s.get(e.id);if(!a){let i={kind:e.kind,id:e.id,label:e.label,location:e.location,generated:e.generated,classes:[...e.classes],...e.parentId?{parentId:e.parentId,parentLocation:e.parentLocation}:{},...e.shape?{shape:e.shape}:{},...e.stereotype?{stereotype:e.stereotype,stereotypeLocation:e.location}:{}};this.applyDeclarationMetadata(i,e.metadata),s.set(e.id,i),t.set(e.id,{kind:e.kind,location:e.location,generated:e.generated,label:e.label.text});return}(a.label.text!==e.label.text||a.label.type!==e.label.type)&&this.conflict(`ID '${e.id}' has conflicting labels`,e.location,a.location),e.shape&&a.shape&&e.shape!==a.shape&&this.conflict(`Use case '${e.id}' has conflicting shapes`,e.location,a.location),e.parentId&&a.parentId&&e.parentId!==a.parentId&&this.conflict(`Element '${e.id}' belongs to more than one system boundary`,e.parentLocation??e.location,a.parentLocation??a.location),e.stereotype&&a.stereotype&&e.stereotype!==a.stereotype&&this.conflict(`Element '${e.id}' has conflicting stereotypes`,e.location,a.stereotypeLocation??a.location),a.shape??=e.shape,a.parentId??=e.parentId,a.parentLocation??=e.parentLocation,a.stereotype??=e.stereotype,a.stereotypeLocation??=e.stereotype?e.location:void 0,nr(a.classes,e.classes),this.applyDeclarationMetadata(a,e.metadata)}collectBoundary(e,t,s){let i=t.get(e.id),n=na({generated:e.generated,label:e.label.text});i&&"boundary"!==i.kind&&this.conflict(`ID '${e.id}' is declared as both ${i.kind} and boundary`,e.location,i.location,n,na(i)),i&&(i.generated||e.generated)&&this.conflict(`Generated ID '${e.id}' collides with another declaration`,e.location,i.location,n,na(i));let a=s.get(e.id);if(a){(a.label.text!==e.label.text||a.label.type!==e.label.type)&&this.conflict(`Boundary '${e.id}' has conflicting titles`,e.location,a.location),nr(a.classes,e.classes);return}s.set(e.id,{id:e.id,label:e.label,location:e.location,generated:e.generated,classes:[...e.classes],styles:[],members:[]}),t.set(e.id,{kind:"boundary",location:e.location,generated:e.generated,label:e.label.text})}materializeElements(e,t){for(let s of[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))this.setElementModel(s)}materializeBoundaries(e,t){for(let s of[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))this.model.systemBoundaries.set(s.id,{id:s.id,label:s.label.text,labelType:s.label.type,type:s.type??"rect",members:[],classes:[...s.classes],styles:[...s.styles]})}materializeJson(e){for(let t of[...this.jsonDrafts].sort((t,s)=>(e.get(t.id)??0)-(e.get(s.id)??0)))this.model.jsonNodes.set(t.id,{id:t.id,value:t.value,propertyOrder:t.propertyOrder,classes:[...t.classes],styles:[]})}materializeRelationships(e,t,s){let i=new Map,n=0;for(let a of this.relationshipDrafts){let r=this.resolveEndpoint(a.source,e,t,s),o=this.resolveEndpoint(a.target,e,t,s);this.validateRelationship(a,r,o,e);let l=a.explicitId??`edge-${n++}`,c={id:l,explicitId:!!a.explicitId,source:a.source.id,target:a.target.id,type:a.type,arrowType:a.arrowType,...a.label?{label:a.label.text,labelType:a.label.type}:{},minlen:a.minlen,classes:[],styles:[],animate:!1};this.model.relationships.push(c),i.set(l,{draft:a,relationship:c})}return this.model.relationshipCounter=n,i}resolveEndpoint(e,t,s,i){if(e.classesOnReference&&!e.declaration)throw Error(`Relationship endpoint '${e.id}' uses ::: without declaring the node at ${ni(e.location)}`);let n=t.get(e.id);return n?n.kind:(s.set(e.id,{kind:"usecase",id:e.id,label:e.label,location:e.location,generated:e.generated,shape:"ellipse",classes:[]}),t.set(e.id,{kind:"usecase",location:e.location,generated:e.generated,label:e.label.text}),this.recordFirst(i,e.id,e.location.span[0]),"usecase")}reorderElements(e,t){let s=new Map(this.model.actors),i=new Map(this.model.useCases);for(let n of(this.model.actors.clear(),this.model.useCases.clear(),[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))){s.has(n.id)||i.has(n.id)||this.setElementModel(n);let e=s.get(n.id)??this.model.actors.get(n.id),t=i.get(n.id)??this.model.useCases.get(n.id);e?this.model.actors.set(n.id,e):t&&this.model.useCases.set(n.id,t)}}applyMetadataAssignments(e,t,s,i){for(let n of this.metadataAssignments){let a=e.get(n.target);if(!a){let e=this.inferMetadataKind(n.metadata);throw Error(`Metadata target '${n.target}' is unresolved${e?` (metadata implies ${e})`:""} at ${ni(n.targetLocation)}`)}if("actor"===a.kind||"usecase"===a.kind)this.applyStandaloneElementMetadata(t.get(n.target),n.metadata);else if("boundary"===a.kind){let e=s.get(n.target);for(let t of n.metadata.properties)("type"!==t.key||"rect"!==t.value&&"package"!==t.value)&&this.invalidMetadata(n.target,a.kind,t),e.type=t.value}else if("edge"===a.kind){let e=i.get(n.target);if(!e)throw Error(`Metadata target '${n.target}' is not an explicit edge at ${ni(n.targetLocation)}`);for(let t of(n.statement.kind="edgeMetadata",n.statement.edges=[{id:n.target,span:n.statement.span,idSpan:n.targetLocation.span,...n.statement.metadata?{metadata:n.statement.metadata}:{}}],delete n.statement.nodes,n.metadata.properties))"animate"===t.key&&"boolean"==typeof t.value?e.relationship.animate=t.value:"animation"===t.key&&("fast"===t.value||"slow"===t.value)?(e.relationship.animation=t.value,e.relationship.animate=!0):this.invalidMetadata(n.target,a.kind,t)}else for(let e of n.metadata.properties)this.invalidMetadata(n.target,a.kind,e)}for(let{relationship:e}of i.values())e.animation&&(e.animate=!0)}applyStandaloneElementMetadata(e,t){for(let s of t.properties)"actor"===e.kind?this.applyActorProperty(e,s,!0):"business"===s.key&&"boolean"==typeof s.value?e.business=s.value:this.invalidMetadata(e.id,e.kind,s)}applyDeclarationMetadata(e,t){if(t)for(let s of t.properties)"actor"===e.kind?this.applyActorProperty(e,s,!1):"business"===s.key&&"boolean"==typeof s.value?(void 0!==e.business&&e.business!==s.value&&this.conflict(`Use case '${e.id}' has conflicting business metadata`,s.location,e.location),e.business=s.value):this.invalidMetadata(e.id,e.kind,s)}applyActorProperty(e,t,s){"type"===t.key&&("normal"===t.value||"hollow"===t.value||"awesome"===t.value)?(s||void 0===e.actorType||e.actorType===t.value||this.conflict(`Actor '${e.id}' has conflicting type metadata`,t.location,e.location),e.actorType=t.value):"icon"===t.key&&"string"==typeof t.value?(s||void 0===e.icon||e.icon===t.value||this.conflict(`Actor '${e.id}' has conflicting icon metadata`,t.location,e.location),e.icon=t.value):"business"===t.key&&"boolean"==typeof t.value?(s||void 0===e.business||e.business===t.value||this.conflict(`Actor '${e.id}' has conflicting business metadata`,t.location,e.location),e.business=t.value):this.invalidMetadata(e.id,e.kind,t)}validateAndRefreshElements(e){for(let t of e.values()){let e=t.icon?"icon":t.actorType??"normal";if("actor"===t.kind){if(t.icon&&t.actorType&&"normal"!==t.actorType)throw Error(`Actor '${t.id}' cannot combine icon with type '${t.actorType}' at ${ni(t.location)}`);if(t.business&&("icon"===e||"awesome"===e))throw Error(`Business actor '${t.id}' must use normal or hollow geometry at ${ni(t.location)}`)}else if((t.shape??"ellipse")==="rect"&&t.business)throw Error(`Rectangular use case '${t.id}' cannot be a business use case at ${ni(t.location)}`);this.setElementModel(t)}}refreshBoundaries(e,t){for(let t of e.values())t.members.length=0;for(let t of[...this.elements].sort((e,t)=>e.location.span[0]-t.location.span[0])){if(!t.parentId)continue;let s=e.get(t.parentId);if(!s)throw Error(`Parent boundary '${t.parentId}' for '${t.id}' is unresolved at ${ni(t.parentLocation??t.location)}`);s.members.includes(t.id)||s.members.push(t.id)}for(let s of t.values())if(s.parentId&&!e.has(s.parentId))throw Error(`Parent boundary '${s.parentId}' for '${s.id}' is unresolved at ${ni(s.parentLocation??s.location)}`);for(let t of e.values()){let e=this.model.systemBoundaries.get(t.id);e.type=t.type??"rect",e.members=[...t.members],e.classes=[...t.classes],e.styles=[...t.styles]}}materializeNotes(e){let t=0;for(let s of this.noteDrafts){let i=e.get(s.target);if(!i)throw Error(`Note target '${s.target}' is unresolved at ${ni(s.targetLocation)}`);"actor"!==i.kind&&"usecase"!==i.kind&&this.conflict(`Note target '${s.target}' must be an actor or use case, not ${i.kind}`,s.targetLocation,i.location);let n=`note-${t++}`;this.model.notes.set(n,{id:n,target:s.target,label:s.label.text,labelType:s.label.type})}this.model.noteCounter=t}applyClassDefinitions(){for(let e of this.classDefinitions)for(let t of e.ids)this.model.classDefs.set(t,{id:t,styles:[...e.styles]})}applyClassesAndStyles(e,t){for(let s of this.classAssignments)for(let i of s.targets)nr(this.getStylable(i.id,e,t,i.location).classes,s.classes);for(let s of this.styleAssignments)this.getStylable(s.target,e,t,s.location).styles.push(...s.styles)}getStylable(e,t,s,i){let n=t.get(e)?.kind,a="actor"===n?this.model.actors.get(e):"usecase"===n?this.model.useCases.get(e):"boundary"===n?this.model.systemBoundaries.get(e):"json"===n?this.model.jsonNodes.get(e):"edge"===n?s.get(e)?.relationship:void 0;if(!a)throw Error(`Class/style target '${e}' is unresolved or anonymous at ${ni(i)}`);return a}validateRelationship(e,t,s,i){let n=(0,m.K)(e=>"actor"===e||"usecase"===e||"json"===e,"allowed");if(n(t)||this.conflict(`Relationship source '${e.source.id}' cannot be ${t}`,e.source.location,i.get(e.source.id).location),n(s)||this.conflict(`Relationship target '${e.target.id}' cannot be ${s}`,e.target.location,i.get(e.target.id).location),("include"===e.type||"extend"===e.type)&&("usecase"!==t||"usecase"!==s))throw Error(`${e.type} relationship requires use-case endpoints at ${ni(e.location)}`);if("generalization"===e.type&&("actor"!==t&&"usecase"!==t||t!==s))throw Error(`Generalization requires actor-to-actor or use-case-to-use-case endpoints at ${ni(e.location)}`);if("association"===e.type&&("json"===t||"json"===s)&&![0,1,2].includes(e.arrowType))throw Error(`JSON relationship '${e.source.id}' to '${e.target.id}' permits only point, reversed-point, or markerless solid association at ${ni(e.location)}`)}setElementModel(e){if("actor"===e.kind){let t=e.icon?"icon":e.actorType??"normal";this.model.useCases.delete(e.id),this.model.actors.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,type:t,...e.icon?{icon:e.icon}:{},business:e.business??!1,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{},classes:[...e.classes],styles:this.model.actors.get(e.id)?.styles??[]})}else this.model.actors.delete(e.id),this.model.useCases.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,shape:e.shape??"ellipse",business:e.business??!1,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{},classes:[...e.classes],styles:this.model.useCases.get(e.id)?.styles??[]})}inferMetadataKind(e){let t=new Set(["actor","usecase","boundary","edge"]);for(let s of e.properties)if("icon"===s.key)t.clear(),t.add("actor");else if("animate"===s.key||"animation"===s.key)t.clear(),t.add("edge");else if("type"===s.key)t.clear(),"rect"===s.value||"package"===s.value?t.add("boundary"):("normal"===s.value||"hollow"===s.value||"awesome"===s.value)&&t.add("actor");else{if("business"!==s.key)return;t.delete("boundary"),t.delete("edge")}return 1===t.size?[...t][0]:void 0}invalidMetadata(e,t,s){throw Error(`Metadata property '${s.key}' is invalid for ${t} '${e}' at ${ni(s.location)}`)}registerUnique(e,t,s,i,n){let a=e.get(t);a&&this.conflict(`ID '${t}' is declared more than once (${a.kind} and ${s})`,i,a.location,void 0,na(a)),e.set(t,{kind:s,location:i,generated:n})}recordFirst(e,t,s){let i=e.get(t);(void 0===i||s<i)&&e.set(t,s)}conflict(e,t,s,i,n){throw Error(`${e} at ${ni(t)}${nn(i)}; previous declaration at ${ni(s)}${nn(n)}`)}},nl=iQ.getBaseCstVisitorConstructor(),nc=new class extends nl{constructor(){super(),this.builder=new no(sb),this.source="",this.anonymousEdge=0,this.anonymousNote=0,this.validateVisitor()}static{(0,m.K)(this,"UsecaseVisitor")}build(e,t){this.source=t,this.parentBoundary=void 0,this.anonymousEdge=0,this.anonymousNote=0,this.builder.reset(t),this.visit(e)}start(e){let t=this.tokens(e,"USECASE")[0],s=[];for(let t of this.nodes(e,"line"))s.push(this.visit(t));this.builder.setStatements(s),this.builder.finalize(this.tokenSpan(t))}line(e){let t=this.firstNode(e,"blankLine","commentLine","statement");return this.wrap(t,this.visit(t))}statement(e){return this.visit(this.firstNode(e,"accTitleStatement","accDescrStatement","directionStatement","actorStatement","systemBoundaryStatement","noteStatement","jsonStatement","classDefStatement","classStatement","styleStatement","metadataAssignmentStatement","entityStatement"))}lineEnd(e){}blankLine(e){return{kind:"blank",span:this.tokenSpan(this.tokens(e,"NEWLINE")[0])}}commentLine(e){return{kind:"comment",span:this.tokenSpan(this.tokens(e,"COMMENT")[0])}}accTitleStatement(e){let t=this.tokens(e,"ACC_TITLE_LINE")[0].image;return this.builder.setAccTitle(t.slice(t.indexOf(":")+1).trim()),{kind:"accTitle",span:[0,0]}}accDescrStatement(e){let t=this.tokens(e,"ACC_DESCR_LINE")[0],s=this.tokens(e,"ACC_DESCR_BLOCK")[0],i=t?t.image.slice(t.image.indexOf(":")+1).trim():s.image.slice(s.image.indexOf("{")+1,s.image.lastIndexOf("}")).trim();return this.builder.setAccDescription(i),{kind:"accDescr",span:[0,0]}}actorStatement(e){let t=this.nodes(e,"actorItem"),s=t.map(e=>this.visit(e)),i=this.nodes(e,"relationTail")[0],n=s.map((e,s)=>this.actorOccurrence(t[s],e,!0));for(let e of s)this.builder.addElement(this.actorDraft(e));if(!i)return{kind:"node",span:[0,0],nodes:n};let a=this.visit(i);a.target.explicitDeclaration&&this.builder.addElement(this.entityDraft(a.target));let r=this.relationshipDraft(s[0],a,this.nodeLocation(i));this.builder.addRelationship(r);let o=r.explicitId??`edge-${this.anonymousEdge++}`;return n.push(this.entityOccurrence(this.nodes(i.children,"entityName")[0],a.target,a.target.explicitDeclaration)),{kind:"edge",span:[0,0],nodes:n,edges:[{id:o,span:[0,0],...r.explicitIdLocation?{idSpan:r.explicitIdLocation.span}:{},...r.label?{labelSpan:r.label.span}:{}}]}}actorItem(e){let t=this.visit(this.nodes(e,"actorName")[0]),s=this.nodes(e,"metadata")[0],i=this.nodes(e,"stereotype")[0],n=this.nodes(e,"classSuffix")[0],a=n?this.visit(n):{classes:[],spans:[]};return{...t,...s?{metadata:this.visit(s)}:{},...i?{stereotype:this.visit(i)}:{},classes:a.classes,classSpans:a.spans}}actorName(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0];if(t){let s=this.nodes(e,"nodeLabel")[0],i=s?this.visit(s):this.tokenLabel(t);return{id:t.image,label:i,location:this.tokenLocation(t),generated:!1,classes:[],classSpans:[]}}let i=this.tokenLabel(s);return{id:this.generateId(i.text),label:i,location:this.tokenLocation(s),generated:!0,classes:[],classSpans:[]}}actorDeclarationOnly(e){let t=this.nodes(e,"actorItem"),s=t.map(e=>this.visit(e));for(let e of s)this.builder.addElement(this.actorDraft(e));return{kind:"node",span:[0,0],nodes:s.map((e,s)=>this.actorOccurrence(t[s],e,!0))}}entityStatement(e){let t=this.nodes(e,"entityName"),s=this.visit(t[0]),i=this.nodes(e,"relationTail")[0];if(!i)return s.explicitDeclaration=!0,s.shape??="ellipse",this.builder.addElement(this.entityDraft(s)),{kind:"node",span:[0,0],nodes:[this.entityOccurrence(t[0],s,!0)]};s.explicitDeclaration&&this.builder.addElement(this.entityDraft(s));let n=this.visit(i);n.target.explicitDeclaration&&this.builder.addElement(this.entityDraft(n.target));let a={source:this.endpoint(s),target:this.endpoint(n.target),location:this.nodeLocation(i),...n.explicitId?{explicitId:n.explicitId,explicitIdLocation:n.explicitIdLocation}:{},...n.arrow};this.builder.addRelationship(a);let r=a.explicitId??`edge-${this.anonymousEdge++}`;return{kind:"edge",span:[0,0],nodes:[this.entityOccurrence(t[0],s,s.explicitDeclaration),this.entityOccurrence(this.nodes(i.children,"entityName")[0],n.target,n.target.explicitDeclaration)],edges:[{id:r,span:[0,0],...a.explicitIdLocation?{idSpan:a.explicitIdLocation.span}:{},...a.label?{labelSpan:a.label.span}:{}}]}}entityName(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0],i=this.nodes(e,"nodeLabel")[0],n=this.nodes(e,"useCaseMetadata")[0],a=this.nodes(e,"stereotype")[0],r=this.nodes(e,"classSuffix")[0],o=r?this.visit(r):{classes:[],spans:[]};if(t){let s=i?this.visit(i):this.tokenLabel(t),r=i?this.tokens(e,"LBRACKET").length?"rect":"ellipse":void 0;return{id:t.image,label:s,location:this.tokenLocation(t),generated:!1,...r?{shape:r}:{},...n?{metadata:this.visit(n)}:{},...a?{stereotype:this.visit(a)}:{},classes:o.classes,classSpans:o.spans,explicitDeclaration:!!(r||n||a)}}let l=this.tokenLabel(s);return{id:this.generateId(l.text),label:l,location:this.tokenLocation(s),generated:!0,...n?{metadata:this.visit(n)}:{},...a?{stereotype:this.visit(a)}:{},classes:o.classes,classSpans:o.spans,explicitDeclaration:!!(n||a)}}nodeLabel(e){let t=this.allTokens(e);if(1===t.length&&("PLAIN_STRING"===t[0].tokenType.name||"MARKDOWN_STRING"===t[0].tokenType.name))return this.tokenLabel(t[0]);let s=[t[0].startOffset,(t.at(-1).endOffset??t.at(-1).startOffset)+1];return{text:this.source.slice(s[0],s[1]),type:"text",span:s}}useCaseMetadata(e){return this.visit(this.nodes(e,"metadata")[0])}relationTail(e){let t=this.tokens(e,"IDENTIFIER")[0];return{...t?{explicitId:t.image,explicitIdLocation:this.tokenLocation(t)}:{},arrow:this.visit(this.nodes(e,"arrow")[0]),target:this.visit(this.nodes(e,"entityName")[0])}}arrow(e){return this.visit(this.firstNode(e,"semanticRelation","forwardSolidOperator","backwardSolidOperator","markerlessSolidOperator","forwardCircleOperator","backwardCircleOperator","forwardCrossOperator","backwardCrossOperator"))}edgeLabel(e){return this.nodeLabel(e)}semanticRelation(e){if(this.tokens(e,"GENERALIZATION").length)return{type:"generalization",arrowType:t6.SOLID_ARROW,minlen:1};let t=this.tokens(e,"INCLUDE").length?"include":"extend",s=this.tokens(e,"include"===t?"INCLUDE":"EXTEND")[0];return{type:t,arrowType:t6.SOLID_ARROW,label:{text:t,type:"text",span:this.tokenSpan(s)},minlen:1}}metadata(e){return{properties:this.nodes(e,"metadataProperty").map(e=>this.visit(e)),location:this.ctxLocation(e)}}metadataProperty(e){let t=this.allTokens(e).filter(e=>"COLON"!==e.tokenType.name),s=t[0],i=t[1],n="TRUE"===i.tokenType.name||"FALSE"!==i.tokenType.name&&this.decodePlain(i),a=[s.startOffset,(i.endOffset??i.startOffset)+1];return{key:this.decodePlain(s),value:n,span:a,keySpan:this.contentSpan(s),valueSpan:this.contentSpan(i),location:this.tokenLocation(s)}}metadataSeparator(e){}systemBoundaryStatement(e){let t=this.visit(this.nodes(e,"systemBoundaryName")[0]),s=this.nodes(e,"classSuffix")[0],i=s?this.visit(s):{classes:[],spans:[]};t.classes=i.classes,this.builder.addBoundary(t);let n=this.parentBoundary;this.parentBoundary={id:t.id,location:t.location};let a=this.nodes(e,"systemBoundaryContent")[0],r=a?this.visit(a):[];this.parentBoundary=n;let o=this.tokens(e,"END")[0],l=this.nodes(e,"metadata")[0],c=l?this.visit(l):void 0,h={kind:"group",span:[0,0],group:t.id,idSpan:t.location.span,titleSpan:t.label.span,endSpan:this.tokenSpan(o),classSpans:i.spans,...c?{metadata:c.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))}:{},...r.length?{children:r}:{}};return c&&this.builder.addMetadataAssignment(t.id,t.location,c,h),h}systemBoundaryName(e){let t=this.tokens(e,"IDENTIFIER")[0];if(t){let s=this.nodes(e,"nodeLabel")[0];return{id:t.image,label:s?this.visit(s):this.tokenLabel(t),location:this.tokenLocation(t),generated:!1,classes:[]}}let s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0],i=this.tokenLabel(s);return{id:this.generateId(i.text),label:i,location:this.tokenLocation(s),generated:!0,classes:[]}}systemBoundaryContent(e){return[...this.nodes(e,"blankLine"),...this.nodes(e,"commentLine"),...this.nodes(e,"boundaryElement")].sort((e,t)=>(e.location?.startOffset??0)-(t.location?.startOffset??0)).map(e=>this.wrap(e,this.visit(e)))}boundaryElement(e){let t=this.nodes(e,"actorDeclarationOnly")[0];if(t)return this.visit(t);let s=this.nodes(e,"entityName")[0],i=this.visit(s);return i.explicitDeclaration=!0,i.shape??="ellipse",this.builder.addElement(this.entityDraft(i)),{kind:"node",span:[0,0],nodes:[this.entityOccurrence(s,i,!0)]}}metadataAssignmentStatement(e){let t=this.visit(this.nodes(e,"metadataAssignmentTarget")[0]),s=this.visit(this.nodes(e,"metadata")[0]),i={kind:"metadata",span:[0,0],nodes:[{id:t.id,span:t.location.span,idSpan:t.location.span}],metadata:s.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))};return this.builder.addMetadataAssignment(t.id,t.location,s,i),i}metadataAssignmentTarget(e){let t=this.allTokens(e)[0],s=this.tokenLabel(t);return{id:"IDENTIFIER"===t.tokenType.name?t.image:this.generateId(s.text),location:this.tokenLocation(t)}}noteStatement(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.visit(this.nodes(e,"nodeLabel")[0]);return this.builder.addNote({target:t.image,targetLocation:this.tokenLocation(t),label:s,location:this.ctxLocation(e)}),{kind:"note",span:[0,0],ref:`note-${this.anonymousNote++}`,refSpan:s.span,nodes:[{id:t.image,span:this.tokenSpan(t),idSpan:this.tokenSpan(t)}]}}stereotype(e){let t=this.tokens(e,"STEREOTYPE_TEXT")[0];return{value:t.image.trim(),span:this.tokenSpan(t)}}classSuffix(e){let t=this.tokens(e,"IDENTIFIER");return{classes:t.map(e=>e.image),spans:t.map(e=>this.tokenSpan(e))}}jsonStatement(e){let t=this.tokens(e,"JSON_DECLARATION_START")[0],s=this.tokens(e,"JSON_OBJECT_LITERAL")[0],i=/^json[\t ]+(\w+)/.exec(t.image),n=i[1],a=i[0].length-n.length,r={span:[t.startOffset+a,t.startOffset+a+n.length],line:t.startLine??1,column:(t.startColumn??1)+a},o=i3(s.image,s.startLine??1,s.startColumn??1),l=this.nodes(e,"classSuffix")[0],c=l?this.visit(l):{classes:[],spans:[]},h={id:n,value:o.value,propertyOrder:o.propertyOrder,location:r,classes:c.classes};return this.builder.addJson(h),{kind:"json",span:[0,0],nodes:[{id:n,span:r.span,idSpan:r.span,defines:!0,classSpans:c.spans}],classSpans:c.spans}}directionStatement(e){let t=this.allTokens(e).find(e=>["TD","TB","BT","RL","LR"].includes(e.tokenType.name));return this.builder.setDirection(t.image),{kind:"direction",span:[0,0]}}classDefStatement(e){let t=this.tokens(e,"IDENTIFIER"),s=this.visit(this.nodes(e,"styles")[0]);return this.builder.addClassDef(t.map(e=>e.image),s),{kind:"classDef",span:[0,0],ref:t[0].image,refSpan:this.tokenSpan(t[0])}}classStatement(e){let t=this.tokens(e,"IDENTIFIER"),s=1;for(;s<t.length&&this.source.slice((t[s-1].endOffset??t[s-1].startOffset)+1,t[s].startOffset).includes(",");s++);let i=t.slice(0,s).map(e=>({id:e.image,location:this.tokenLocation(e)})),n=t.slice(s).map(e=>e.image);return this.builder.addClassAssignment(i,n),{kind:"classAssign",span:[0,0],ref:n[0],refSpan:this.tokenSpan(t[s]),nodes:i.map(({id:e,location:t})=>({id:e,span:t.span,idSpan:t.span}))}}styleStatement(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.visit(this.nodes(e,"styles")[0]);return this.builder.addStyleAssignment(t.image,this.tokenLocation(t),s),{kind:"style",span:[0,0],nodes:[{id:t.image,span:this.tokenSpan(t),idSpan:this.tokenSpan(t)}]}}styles(e){return this.nodes(e,"styleValue").map(e=>this.visit(e))}styleValue(e){let t=this.allTokens(e),s=[t[0].startOffset,(t.at(-1).endOffset??t.at(-1).startOffset)+1];return this.source.slice(s[0],s[1]).replaceAll("\\,",",")}styleComponent(e){return this.allTokens(e).map(e=>e.image).join("")}forwardSolidOperator(e){let t=this.tokens(e,"FORWARD_SOLID")[0];return{type:"association",arrowType:t6.SOLID_ARROW,minlen:this.solidMinlen(t)}}backwardSolidOperator(e){let t=this.tokens(e,"BACKWARD_SOLID")[0],s=this.nodes(e,"edgeLabel")[0],i=s?this.tokens(e,"MARKERLESS_SOLID").at(-1):t;return{type:"association",arrowType:t6.BACK_ARROW,minlen:this.solidMinlen(i),...s?{label:this.visit(s)}:{}}}markerlessSolidOperator(e){let t=this.nodes(e,"edgeLabel")[0],s=this.allTokens(e);if(!t)return{type:"association",arrowType:t6.LINE_SOLID,minlen:this.solidMinlen(this.tokens(e,"MARKERLESS_SOLID")[0])};let i=s.at(-1),n="FORWARD_SOLID"===i.tokenType.name?t6.SOLID_ARROW:"FORWARD_CIRCLE"===i.tokenType.name?t6.CIRCLE_ARROW:"FORWARD_CROSS"===i.tokenType.name?t6.CROSS_ARROW:t6.LINE_SOLID;return{type:"association",arrowType:n,label:this.visit(t),minlen:n===t6.SOLID_ARROW||n===t6.LINE_SOLID?this.solidMinlen(i):1}}forwardCircleOperator(e){return{type:"association",arrowType:t6.CIRCLE_ARROW,minlen:1}}backwardCircleOperator(e){let t=this.nodes(e,"edgeLabel")[0];return{type:"association",arrowType:t6.CIRCLE_ARROW_REVERSED,minlen:1,...t?{label:this.visit(t)}:{}}}forwardCrossOperator(e){return{type:"association",arrowType:t6.CROSS_ARROW,minlen:1}}backwardCrossOperator(e){let t=this.nodes(e,"edgeLabel")[0];return{type:"association",arrowType:t6.CROSS_ARROW_REVERSED,minlen:1,...t?{label:this.visit(t)}:{}}}actorDraft(e){return{id:e.id,kind:"actor",label:e.label,location:e.location,generated:e.generated,...this.parentBoundary?{parentId:this.parentBoundary.id,parentLocation:this.parentBoundary.location}:{},...e.metadata?{metadata:e.metadata}:{},...e.stereotype?{stereotype:e.stereotype.value,stereotypeSpan:e.stereotype.span}:{},classes:e.classes}}entityDraft(e){return{id:e.id,kind:"usecase",label:e.label,location:e.location,generated:e.generated,...this.parentBoundary?{parentId:this.parentBoundary.id,parentLocation:this.parentBoundary.location}:{},...e.shape?{shape:e.shape}:{},...e.metadata?{metadata:e.metadata}:{},...e.stereotype?{stereotype:e.stereotype.value,stereotypeSpan:e.stereotype.span}:{},classes:e.classes}}endpoint(e,t=e.explicitDeclaration??!0){return{id:e.id,label:e.label,location:e.location,generated:e.generated,declaration:t,classesOnReference:e.classes.length>0}}relationshipDraft(e,t,s){return{source:this.endpoint(e,!0),target:this.endpoint(t.target),location:s,...t.explicitId?{explicitId:t.explicitId,explicitIdLocation:t.explicitIdLocation}:{},...t.arrow}}actorOccurrence(e,t,s){return{id:t.id,span:this.nodeSpan(e),idSpan:t.location.span,labelSpan:t.label.span,...s?{defines:!0}:{},...t.stereotype?{stereotypeSpan:t.stereotype.span}:{},...t.metadata?{metadata:t.metadata.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))}:{},...t.classSpans.length?{classSpans:t.classSpans}:{}}}entityOccurrence(e,t,s){return this.actorOccurrence(e,t,s)}wrap(e,t){if("blank"===t.kind||"comment"===t.kind)return t;for(let s of(t.span=this.nodeSpan(e),t.edges??[]))s.span=t.span;return t}tokenLabel(e){let t="MARKDOWN_STRING"===e.tokenType.name?"markdown":"text",s="markdown"===t?2:+("PLAIN_STRING"===e.tokenType.name),i=this.tokenSpan(e,s);return{text:this.source.slice(i[0],i[1]),type:t,span:i}}decodePlain(e){return"PLAIN_STRING"===e.tokenType.name?e.image.slice(1,-1):e.image}contentSpan(e){return this.tokenSpan(e,"PLAIN_STRING"===e.tokenType.name?1:2*("MARKDOWN_STRING"===e.tokenType.name))}generateId(e){return e.replace(/\W/g,"_")}solidMinlen(e){return Math.max(1,(e.image.match(/-/g)?.length??2)-1)}nodeLocation(e){let t=this.allTokens(e.children)[0];return{span:this.nodeSpan(e),line:t.startLine??1,column:t.startColumn??1}}ctxLocation(e){let t=this.allTokens(e).filter(e=>"NEWLINE"!==e.tokenType.name&&"EOF"!==e.tokenType.name),s=t[0],i=t.at(-1);return{span:[s.startOffset,Math.min(this.source.length,(i.endOffset??i.startOffset+i.image.length-1)+1)],line:s.startLine??1,column:s.startColumn??1}}tokenLocation(e){let t="PLAIN_STRING"===e.tokenType.name?1:2*("MARKDOWN_STRING"===e.tokenType.name);return{span:this.tokenSpan(e,t),line:e.startLine??1,column:(e.startColumn??1)+t}}nodeSpan(e){let t=this.allTokens(e.children).filter(e=>"NEWLINE"!==e.tokenType.name&&"EOF"!==e.tokenType.name),s=t[0],i=t.at(-1);if(!s||!i)throw Error("Usecase CST node has no source token");return[s.startOffset,Math.min(this.source.length,(i.endOffset??i.startOffset+i.image.length-1)+1)]}tokenSpan(e,t=0){return[e.startOffset+t,Math.min(this.source.length,(e.endOffset??e.startOffset+e.image.length-1)+1-t)]}nodes(e,t){return(e[t]??[]).filter(e=>"children"in e)}tokens(e,t){return(e[t]??[]).filter(e=>"tokenTypeIdx"in e)}firstNode(e,...t){for(let s of t){let t=this.nodes(e,s)[0];if(t)return t}throw Error(`Usecase CST is missing one of: ${t.join(", ")}`)}allTokens(e){let t=[];for(let s of Object.values(e))for(let e of s)"tokenTypeIdx"in e?t.push(e):t.push(...this.allTokens(e.children));return t.sort((e,t)=>e.startOffset-t.startOffset)}},nh={parse:(0,m.K)(async e=>{sb.clear(),iQ.input=[];try{t5({diagramType:"usecase",lexer:iq,parser:iQ,entry:(0,m.K)(()=>iQ.start(),"entry"),visit:(0,m.K)(t=>nc.build(t,e),"visit")},e)}catch(s){sb.clear();let t=iQ.errors[0];if(t){let{token:i}=t,n=t2(i.startOffset)?i.startOffset:e.length,a=t2(i.endOffset)?i.endOffset+1:n,r=t2(i.startLine)?i.startLine:e.slice(0,n).split(/\r\n|\r|\n/).length,o=Math.max(e.lastIndexOf("\n",n-1),e.lastIndexOf("\r",n-1)),l=t2(i.startColumn)?i.startColumn:n-o,c=s instanceof Error?s.message:String(s);throw Error(`${c} at line ${r}, column ${l} [${n},${a})`)}throw s}},"parse")},nd=["point","circle","cross","extension"],nu={usecaseActor:!0,usecaseActorHollow:!0,usecaseActorAwesome:!0,usecaseActorIcon:!0},np=(0,m.K)((e,t)=>{let[s,i]=[e,t].map(e=>e.replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"")||"element");return`usecase-${s}-${i}`},"usecaseDomId"),nf=(0,m.K)(e=>`usecase-${e.replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"")||"element"}`,"usecaseNodeDomId"),nm=(0,m.K)((e,t)=>"markdown"!==t?e:(0,h.O6)(e).map(e=>e.map(e=>e.content).join(" ")).join("\n"),"getAccessibleLabel"),nE=(0,m.K)(e=>{let t=nm(e.label??e.id,e.labelType);if(nu[e.shape]){let s=e.actorType&&"normal"!==e.actorType?`${e.actorType} `:"",i=e.business?"business ":"",n=e.stereotype?`, stereotype ${e.stereotype}`:"";return`${i}${s}actor ${t}${n}`}if("note"===e.shape)return`Note for ${e.noteTargetLabel??e.noteTarget??""}: ${t}`;if("usecaseJsonTable"===e.shape){let s=(e.jsonRows??[]).map(e=>`${e.accessibleKey}: ${e.value}`).join("; ");return s?`${t}: ${s}`:t}let s=e.stereotype?`, stereotype ${e.stereotype}`:"";return`${e.business?"business ":""}use case ${t}${s}`},"getUsecaseNodeAccessibleName"),nT=(0,m.K)(e=>`${e.boundaryType} system boundary ${nm(e.label??e.id,e.labelType)}`,"getUsecaseBoundaryAccessibleName"),ng=(0,m.K)(e=>{if("note"===e.relationshipType)return"";let t="association"===e.relationshipType&&e.label?`association ${nm(e.label,e.labelType)}`:e.relationshipType;return`${t} from ${e.sourceLabel} to ${e.targetLabel}`},"getUsecaseEdgeAccessibleName"),ny=(0,m.K)(e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),"escapePlainLabel"),nA=(0,m.K)(e=>e.replace(/([*[\\\]_`])/g,"\\$1"),"escapeMarkdownMarkers"),nS=(0,m.K)((e,t)=>{for(let s of(e.diagramId=t,e.markers=[...nd],e.nodes))if(s.domId=nf(s.id),void 0!==s.label&&"text"===s.labelType&&(s.label=ny(s.label)),s.stereotype&&(s.stereotype=ny(s.stereotype)),s.isGroup||"usecaseJsonTable"!==s.shape||(s.jsonRows=s.jsonRows?.map(e=>({...e,key:ny(e.key),value:ny(e.value)}))),!s.isGroup&&("usecaseEllipse"===s.shape||"rect"===s.shape)&&s.stereotype){let e=s.label??ny(s.id);s.label=`\xab${nA(s.stereotype)}\xbb<br/>${"text"===s.labelType?nA(e):e}`,s.labelType="markdown",s.hasFoldedStereotype=!0,delete s.stereotype}for(let t of e.edges)void 0!==t.label&&"text"===t.labelType&&(t.label=ny(t.label));return e},"prepareUsecaseLayoutData"),nL=(0,m.K)((e,t,s)=>{for(let i of t.nodes){let n="string"==typeof i.domId?i.domId:np(t.diagramId,i.id),a=e.select(`#${n}`),r=i.isGroup?"boundary":nu[i.shape]?"actor":"note"===i.shape?"note":"usecaseJsonTable"===i.shape?"json":"usecase",o=s.nodes.get(i.id)??i.id;if(a.attr("data-usecase-id",i.id).attr("data-usecase-kind",r).attr("role","img").attr("aria-label",o),!i.isGroup&&("usecaseEllipse"===i.shape||"rect"===i.shape)&&"hasFoldedStereotype"in i&&!0===i.hasFoldedStereotype){let e=a.node(),t=e?.querySelector(".nodeLabel"),s=t?.querySelector("p")??t,i=s?.firstChild;if(s&&i?.nodeType===3){let e=s.ownerDocument.createElement("span");e.className="usecase-stereotype",s.insertBefore(e,i),e.appendChild(i)}else e?.querySelector(".label tspan tspan, .label tspan")?.classList.add("usecase-stereotype")}}let i=new Map(t.edges.map(e=>[e.id,e]));e.selectAll('path[data-et="edge"]').each(function(){let e=i.get(this.getAttribute("data-id")??"");if(!e)return;let n=(0,t1.Ltv)(this);n.attr("id",np(t.diagramId,e.id)).attr("data-usecase-id",e.id).attr("data-usecase-kind",e.internal?"note-connector":"relationship"),e.internal?n.attr("aria-hidden","true"):n.attr("role","img").attr("aria-label",s.edges.get(e.id)??e.id)})},"annotateUsecaseElements"),nO=(0,m.K)((e,t)=>{e.style("--mermaid-usecase-actor-font-size",`${t.actorFontSize}px`).style("--mermaid-usecase-actor-font-family",t.actorFontFamily).style("--mermaid-usecase-actor-font-weight",t.actorFontWeight).style("--mermaid-usecase-font-size",`${t.usecaseFontSize}px`).style("--mermaid-usecase-font-family",t.usecaseFontFamily).style("--mermaid-usecase-font-weight",t.usecaseFontWeight)},"applyUsecaseFonts"),nR=(0,m.K)(async(e,t,s,i)=>{f.R.info("Drawing usecase diagram (unified)",t);let{layout:n}=(0,p.D7)(),a=i.db,r=a.getData(),h=new Map(r.nodes.map(e=>[e.id,nm(e.label??e.id,e.labelType)])),d={nodes:new Map(r.nodes.map(e=>[e.id,e.isGroup?nT(e):nE("note"===e.shape?{...e,noteTargetLabel:h.get(e.noteTarget??"")}:e)])),edges:new Map(r.edges.map(e=>[e.id,ng({...e,sourceLabel:h.get(e.source)??e.sourceLabel,targetLabel:h.get(e.target)??e.targetLabel})]))},m=(0,o.A)(t,r.config.securityLevel);r.layoutAlgorithm=(0,c.q7)(n),nS(r,t),nO(m,r),await (0,c.XX)(r,m),nL(m,r,d);let E=r.diagramPadding;u._K.insertTitle(m,"usecaseDiagramTitleText",0,a.getDiagramTitle?.()??""),(0,l.P)(m,E,"usecaseDiagram",r.useMaxWidth),nO(m,r)},"draw"),nk=(0,m.K)(e=>({actorBkg:e.usecaseActorBkg??e.actorBkg??e.mainBkg,actorBorder:e.usecaseActorBorder??e.actorBorder??e.primaryColor,bkg:e.usecaseBkg??e.mainBkg,border:e.usecaseBorder??e.nodeBorder??e.primaryColor,boundaryBkg:e.usecaseBoundaryBkg??e.clusterBkg,boundaryBorder:e.usecaseBoundaryBorder??e.clusterBorder,includeLine:e.usecaseIncludeLine??e.lineColor,extendLine:e.usecaseExtendLine??e.lineColor}),"roleColors"),nI=(0,m.K)(e=>{let{theme:t,bkgColorArray:s,borderColorArray:i}=e;if(!(0,d.P1)(t,i))return"";let n=(0,p.zj)().usecase?.colorScheme==="rotate",a=(0,d.rq)(e.look),r="handDrawn"===a,o=(0,d.Ic)(s),l="";for(let e=0;e<(0,d.Hu)(i);e++){let t=i[e],c=o?`fill: ${s[e%s.length]};`:"",h=`[data-look="${a}"][data-color-id="color-${e}"]`;l+=`
|
|
57
|
+
${e.join("\n-------------------------------\n")}`)})}constructor(e,t){if(this.definitionErrors=[],this.selfAnalysisDone=!1,this.initErrorHandler(t),this.initLexerAdapter(),this.initLooksAhead(t),this.initRecognizerEngine(e,t),this.initRecoverable(t),this.initTreeBuilder(t),this.initGastRecorder(t),this.initPerformanceTracer(t),Object.hasOwn(t,"ignoredIssues"))throw Error("The <ignoredIssues> IParserConfig property has been deprecated.\n Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.\n See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n For further details.");this.skipValidations=Object.hasOwn(t,"skipValidations")?t.skipValidations:tJ.skipValidations}}tQ.DEFER_DEFINITION_ERRORS_HANDLING=!1,function(e,t){t.forEach(t=>{let s=t.prototype;Object.getOwnPropertyNames(s).forEach(i=>{if("constructor"===i)return;let n=Object.getOwnPropertyDescriptor(s,i);n&&(n.get||n.set)?Object.defineProperty(e.prototype,i,n):e.prototype[i]=t.prototype[i]})})}(tQ,[tk,tb,tw,tP,t$,tD,tK,tW,tX]);class t0 extends tQ{constructor(e,t=tJ){let s=Object.assign({},t);s.outputCst=!0,super(e,s)}}var t1=s(25885),t2=(0,m.K)(e=>void 0!==e&&e>=0,"isKnownLocation");function t5(e,t){let s=e.lexer.tokenize(t);if(s.errors.length>0){let i=s.errors[0],n=t2(i.offset)?i.offset:t.length,a=n+(t2(i.length)?i.length:0);throw Error(`Error lexing ${e.diagramType} diagram: ${i.message} at line ${i.line??1}, column ${i.column??1} [${n},${a})`)}e.parser.input=s.tokens;let i=e.entry();if(e.parser.errors.length>0)throw Error(`Error parsing ${e.diagramType} diagram: ${e.parser.errors[0].message}`);e.visit(i)}(0,m.K)(t5,"runChevrotainParse");var t6={SOLID_ARROW:0,BACK_ARROW:1,LINE_SOLID:2,CIRCLE_ARROW:3,CROSS_ARROW:4,CIRCLE_ARROW_REVERSED:5,CROSS_ARROW_REVERSED:6},t3=p.UI.usecase,t4=(0,m.K)(()=>({actors:new Map,useCases:new Map,systemBoundaries:new Map,relationships:[],notes:new Map,jsonNodes:new Map,classDefs:new Map,symbols:new Map,direction:"LR",relationshipCounter:0,noteCounter:0,accTitle:"",accDescription:"",ast:void 0,config:structuredClone(t3)}),"createModel"),t8=(0,m.K)(e=>{if(!(e.actors instanceof Map)||!(e.useCases instanceof Map)||!(e.systemBoundaries instanceof Map)||!Array.isArray(e.relationships)||!(e.notes instanceof Map)||!(e.jsonNodes instanceof Map)||!(e.classDefs instanceof Map)||!(e.symbols instanceof Map)||!["TB","TD","BT","RL","LR"].includes(e.direction)||!Number.isSafeInteger(e.relationshipCounter)||e.relationshipCounter<0||!Number.isSafeInteger(e.noteCounter)||e.noteCounter<0||"string"!=typeof e.accTitle||"string"!=typeof e.accDescription||!e.config)throw Error("Cannot commit an incomplete usecase model")},"assertCompleteModel"),t9=t4(),t7=(0,m.K)(()=>structuredClone(t9.config),"getConfig"),se=(0,m.K)(()=>t9.ast,"getAST"),st=(0,m.K)(e=>{let t=structuredClone(e);t8(t);let s=(0,p.iN)(),i=(0,p.m7)();try{(0,p.SV)(t.accTitle),(0,p.EI)(t.accDescription),t9=t}catch(e){throw(0,p.SV)(s),(0,p.EI)(i),e}},"commit"),ss=(0,m.K)(()=>{t9=t4(),(0,p.IU)()},"clear"),si=(0,m.K)(()=>t9.actors,"getActors"),sn=(0,m.K)(e=>t9.actors.get(e),"getActor"),sa=(0,m.K)(()=>t9.useCases,"getUseCases"),sr=(0,m.K)(e=>t9.useCases.get(e),"getUseCase"),so=(0,m.K)(()=>t9.systemBoundaries,"getSystemBoundaries"),sl=(0,m.K)(e=>t9.systemBoundaries.get(e),"getSystemBoundary"),sc=(0,m.K)(()=>t9.relationships,"getRelationships"),sh=(0,m.K)(()=>t9.notes,"getNotes"),sd=(0,m.K)(e=>t9.notes.get(e),"getNote"),su=(0,m.K)(()=>t9.jsonNodes,"getJsonNodes"),sp=(0,m.K)(e=>t9.jsonNodes.get(e),"getJsonNode"),sf=(0,m.K)(()=>t9.classDefs,"getClassDefs"),sm=(0,m.K)(e=>t9.classDefs.get(e),"getClassDef"),sE=(0,m.K)(()=>t9.direction,"getDirection"),sT=(0,m.K)(e=>{let t=new Map;for(let s of["default",...e]){let e=t9.classDefs.get(s);if(e)for(let s of e.styles){let e=s.trim(),i=e.indexOf(":"),n=(-1===i?e:e.slice(0,i)).trim();n&&t.set(n,e)}}return[...t.values()]},"getCompiledStyles"),sg=(0,m.K)(e=>e.replaceAll("~","~0").replaceAll("/","~1"),"escapeJsonPointerPart"),sy=(0,m.K)(e=>"string"==typeof e?e:null===e?"null":String(e),"displayJsonScalar"),sA=(0,m.K)((e,t,s=e=>e)=>{let i=[],n=(0,m.K)((e,t,n)=>{i.push({key:s(e),accessibleKey:s(t),value:s(n)})},"append"),a=(0,m.K)((e,s,i)=>{if(Array.isArray(e)){if(0===e.length)return void n(s,s,"[]");if(e.every(e=>null===e||["string","number","boolean"].includes(typeof e))){for(let[t,i]of e.entries())n(0===t?s:"",s,sy(i));return}for(let[t,n]of e.entries())a(n,`${s}[${t}]`,`${i}/${t}`);return}if(null!==e&&"object"==typeof e){let r=t[i]??Object.keys(e);if(0===r.length)return void n(s,s,"{}");for(let t of r){let n=s?`${s}.${t}`:t;a(e[t],n,`${i}/${sg(t)}`)}return}n(s,s,sy(e))},"visit");return a(e,"",""),i},"flattenJsonRows"),sS=(0,m.K)(e=>{switch(e.type){case"hollow":return"usecaseActorHollow";case"awesome":return"usecaseActorAwesome";case"icon":return"usecaseActorIcon";case"normal":return"usecaseActor"}},"actorShape"),sL=(0,m.K)(e=>"ellipse"===e.shape?e.business?"usecaseBusiness":"usecaseEllipse":e.shape,"useCaseShape"),sO=(0,m.K)(e=>{switch(e){case t6.SOLID_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_point"};case t6.BACK_ARROW:return{arrowTypeStart:"arrow_point",arrowTypeEnd:"none"};case t6.CIRCLE_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_circle"};case t6.CROSS_ARROW:return{arrowTypeStart:"none",arrowTypeEnd:"arrow_cross"};case t6.CIRCLE_ARROW_REVERSED:return{arrowTypeStart:"arrow_circle",arrowTypeEnd:"none"};case t6.CROSS_ARROW_REVERSED:return{arrowTypeStart:"arrow_cross",arrowTypeEnd:"none"};case t6.LINE_SOLID:return{arrowTypeStart:"none",arrowTypeEnd:"none"}}},"associationMarkers"),sR=(0,m.K)(e=>{switch(e.type){case"include":case"extend":return{arrowTypeStart:"none",arrowTypeEnd:"arrow_point",pattern:"dotted",label:e.type,labelType:"text"};case"generalization":return{arrowTypeStart:"none",arrowTypeEnd:"extension",pattern:"solid"};case"association":return{...sO(e.arrowType),pattern:"solid",...e.label?{label:e.label}:{},...e.labelType?{labelType:e.labelType}:{}}}},"relationshipVisuals"),sk=(0,m.K)(e=>e.animate||e.animation?[`edge-animation-${e.animation??"fast"}`]:[],"animationClasses"),sI=(0,m.K)((...e)=>e.filter(e=>!!e).join(" "),"classNames"),sN=(0,m.K)(()=>{let e=(0,p.D7)(),t={...t9.config,...e.usecase},s=(0,m.K)(t=>(0,p.jZ)(t,e),"sanitize"),i=(0,m.K)(e=>s(t9.actors.get(e)?.label??t9.useCases.get(e)?.label??t9.jsonNodes.get(e)?.id??t9.notes.get(e)?.label??e),"endpointLabel"),n=[],a=[],r=0,o=0;for(let t of t9.actors.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:sS(t),isGroup:!1,padding:10,look:e.look,colorIndex:r++,cssClasses:sI("default","usecase-actor",`usecase-actor-${t.type}`,t.business&&"usecase-business",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),actorType:t.type,business:t.business,...t.icon?{icon:t.icon}:{},...t.stereotype?{stereotype:s(t.stereotype)}:{},...t.parentId?{parentId:t.parentId}:{}});for(let t of t9.useCases.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:sL(t),isGroup:!1,padding:"ellipse"===t.shape?20:10,look:e.look,colorIndex:r++,cssClasses:sI("default","usecase-element",`usecase-${t.shape}`,t.business&&"usecase-business",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),business:t.business,...t.stereotype?{stereotype:s(t.stereotype)}:{},...t.parentId?{parentId:t.parentId}:{}});for(let t of t9.notes.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:"note",isGroup:!1,padding:10,look:e.look,cssClasses:"default usecase-note",cssStyles:[],cssCompiledStyles:sT([]),noteTarget:t.target,noteTargetLabel:s(t9.actors.get(t.target)?.label??t9.useCases.get(t.target)?.label??t9.jsonNodes.get(t.target)?.id??t.target)});for(let t of t9.jsonNodes.values())n.push({id:t.id,label:s(t.id),labelType:"text",shape:"usecaseJsonTable",isGroup:!1,padding:10,look:e.look,cssClasses:sI("default","usecase-json-table",...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),jsonRows:sA(t.value,t.propertyOrder,s)});for(let t of t9.systemBoundaries.values())n.push({id:t.id,label:s(t.label),labelType:t.labelType,shape:"usecaseSystemBoundary",isGroup:!0,padding:20,look:e.look,colorIndex:o++,cssClasses:sI("default","system-boundary",`system-boundary-${t.type}`,...t.classes),cssStyles:[...t.styles],cssCompiledStyles:sT(t.classes),boundaryType:t.type});for(let t of t9.relationships){let{label:n,...r}=sR(t);a.push({id:t.id,start:t.source,end:t.target,source:t.source,target:t.target,sourceLabel:i(t.source),targetLabel:i(t.target),type:"edge",relationshipType:t.type,internal:!1,...r,...void 0!==n?{label:s(n)}:{},labelpos:"c",classes:sI("default","relationship",`relationship-${t.type}`,...t.classes,...sk(t)),style:[...t.styles],cssCompiledStyles:sT(t.classes),animate:t.animate,...t.animation?{animation:t.animation}:{},look:e.look,thickness:"normal",minlen:t.minlen,isUserDefinedId:t.explicitId})}for(let t of t9.notes.values())a.push({id:`${t.id}-edge`,start:t.id,end:t.target,source:t.id,target:t.target,type:"edge",relationshipType:"note",sourceLabel:i(t.id),targetLabel:i(t.target),internal:!0,pattern:"dotted",arrowTypeStart:"none",arrowTypeEnd:"none",labelpos:"c",classes:"default relationship relationship-note",style:[],cssCompiledStyles:sT([]),animate:!1,look:e.look,thickness:"normal",minlen:1,isUserDefinedId:!1});for(let e of n)e.wrappingWidth??=t.wrappingWidth,e.isGroup||e.shape.startsWith("usecaseActor")||(e.minWidth??=t.minNodeWidth),("usecaseEllipse"===e.shape||"usecaseBusiness"===e.shape)&&(e.spreadPorts=!0);return{nodes:n,edges:a,config:e,type:"usecase",layoutAlgorithm:"dagre",direction:sE(),nodeSpacing:t.nodeSpacing,rankSpacing:t.rankSpacing,actorFontSize:t.actorFontSize,actorFontFamily:t.actorFontFamily,actorFontWeight:t.actorFontWeight,usecaseFontSize:t.usecaseFontSize,usecaseFontFamily:t.usecaseFontFamily,usecaseFontWeight:t.usecaseFontWeight,diagramPadding:t.diagramPadding,useMaxWidth:t.useMaxWidth,markers:["point","circle","cross","extension"]}},"getData"),sb={getConfig:t7,createModel:t4,commit:st,getAST:se,clear:ss,setDiagramTitle:p.ke,getDiagramTitle:p.ab,setAccTitle:p.SV,getAccTitle:p.iN,setAccDescription:p.EI,getAccDescription:p.m7,getActors:si,getActor:sn,getUseCases:sa,getUseCase:sr,getSystemBoundaries:so,getSystemBoundary:sl,getRelationships:sc,getNotes:sh,getNote:sd,getJsonNodes:su,getJsonNode:sp,getClassDefs:sf,getClassDef:sm,getDirection:sE,getData:sN};function sC(e,t,s){let i=[s];return i.index=t,i.input=e,i}(0,m.K)(sC,"customMatch");var s_=(0,m.K)((e,t)=>{if('"'!==e[t]||"`"!==e[t+1])return null;for(let s=t+2;s<e.length-1;s++)if("`"===e[s]&&'"'===e[s+1])return sC(e,t,e.slice(t,s+2));return null},"matchMarkdownString"),sv=(0,m.K)((e,t)=>{if("%"!==e[t]||"%"!==e[t+1])return null;for(let s=t-1;s>=0;s--){let t=e[s];if("\n"===t||"\r"===t)break;if(" "!==t&&" "!==t)return null}let s=t+2;for(;s<e.length&&"\n"!==e[s]&&"\r"!==e[s];)s++;return sC(e,t,e.slice(t,s))},"matchComment"),sx=(0,m.K)((e,t)=>{for(let s=t-1;s>=0;s--){let t=e[s];if("\n"===t||"\r"===t)break;if(" "!==t&&" "!==t)return!1}return!0},"isIndentedLineStart"),sU=(0,m.K)((e,t,s)=>{if(!sx(e,t))return null;let i=s.exec(e.slice(t));return i?sC(e,t,i[0]):null},"matchAccessibilityLine"),sM=(0,m.K)((e,t)=>{if(!sx(e,t))return null;let s=/^accDescr[\t ]*{/.exec(e.slice(t));if(!s)return null;let i=e.indexOf("}",t+s[0].length);return -1===i?null:sC(e,t,e.slice(t,i+1))},"matchAccDescrBlock"),sw=(0,m.K)((e,t)=>{if("{"!==e[t])return null;let s=0,i=!1,n=!1;for(let a=t;a<e.length;a++){let r=e[a];if(i){n?n=!1:"\\"===r?n=!0:'"'===r&&(i=!1);continue}if('"'===r)i=!0;else if("{"===r)s++;else if("}"===r&&0==--s)return sC(e,t,e.slice(t,a+1))}return null},"matchJsonObject"),sP=(0,m.K)((e,t)=>{let s=e.indexOf(">>",t);if(-1===s||/[\n\r]/.test(e.slice(t,s)))return null;let i=e.slice(t,s);return i.trim()?sC(e,t,i):null},"matchStereotypeText"),sD=eG({name:"LABEL_TEXT",pattern:ex.NA}),s$=eG({name:"WORD",pattern:ex.NA,categories:sD}),sK=eG({name:"NUMBER",pattern:/(?:\d+\.\d+|\d+|\.\d+)(?:[A-Za-z]+)?/,categories:sD}),sF=eG({name:"IDENTIFIER",pattern:/\w+/,longer_alt:sK,categories:s$}),sB=eG({name:"HWS",pattern:/[\t ]+/,group:ex.SKIPPED}),sj=eG({name:"MARKDOWN_STRING",pattern:s_,start_chars_hint:['"'],line_breaks:!0}),sG=eG({name:"UNCLOSED_MARKDOWN_STRING",pattern:/"`[^]*/,line_breaks:!0}),sW=eG({name:"COMMENT",pattern:sv,start_chars_hint:["%"],line_breaks:!1}),sV=eG({name:"NEWLINE",pattern:/\r\n|\n|\r/,line_breaks:!0}),sz=eG({name:"ACC_DESCR_BLOCK",pattern:sM,start_chars_hint:["a"],line_breaks:!0}),sH=/^accTitle[\t ]*:[^\n\r]*/,sY=/^accDescr[\t ]*:[^\n\r]*/,sX=eG({name:"ACC_TITLE_LINE",pattern:(0,m.K)((e,t)=>sU(e,t,sH),"pattern"),start_chars_hint:["a"],line_breaks:!1}),sq=eG({name:"ACC_DESCR_LINE",pattern:(0,m.K)((e,t)=>sU(e,t,sY),"pattern"),start_chars_hint:["a"],line_breaks:!1}),sJ=eG({name:"JSON_DECLARATION_START",pattern:/json[\t ]+\w+[\t ]*@[\t ]*(?={)/,push_mode:"jsonBody"}),sZ=eG({name:"JSON_OBJECT_LITERAL",pattern:sw,start_chars_hint:["{"],line_breaks:!0,pop_mode:!0}),sQ=eG({name:"UNCLOSED_JSON_OBJECT_LITERAL",pattern:/{[^]*/,line_breaks:!0,pop_mode:!0}),s0=(0,m.K)((e,t)=>eG({name:e,pattern:t,longer_alt:sF,categories:s$}),"keyword"),s1=s0("USECASE",/usecase-beta/),s2=s0("ACTOR",/actor/),s5=s0("SYSTEM_BOUNDARY",/systemBoundary/),s6=s0("END",/end/),s3=s0("DIRECTION",/direction/),s4=s0("TD",/TD/),s8=s0("TB",/TB/),s9=s0("BT",/BT/),s7=s0("LR",/LR/),ie=s0("RL",/RL/),it=s0("NOTE",/note/),is=s0("FOR",/for/),ii=s0("JSON",/json/),ia=s0("CLASS_DEF",/classDef/),ir=s0("CLASS",/class/),io=s0("STYLE",/style/),il=s0("INCLUDE",/include/i),ic=s0("EXTEND",/extend/i),ih=s0("TRUE",/true/),id=s0("FALSE",/false/),iu=eG({name:"GENERALIZATION",pattern:/--\|>/}),ip=eG({name:"DEPENDENCY_ARROW",pattern:/\.\.>/}),im=eG({name:"STEREOTYPE_START",pattern:/<</,push_mode:"stereotype"}),iE=eG({name:"STEREOTYPE_END",pattern:/>>/,pop_mode:!0}),iT=eG({name:"STEREOTYPE_TEXT",pattern:sP,line_breaks:!1}),ig=eG({name:"UNCLOSED_STEREOTYPE_TEXT",pattern:/[^\n\r]+/,line_breaks:!1,pop_mode:!0}),iy=eG({name:"CLASS_SEPARATOR",pattern:/:::/}),iA=eG({name:"FORWARD_SOLID",pattern:/--+>/}),iS=eG({name:"BACKWARD_SOLID",pattern:/<--+/}),iL=eG({name:"FORWARD_CIRCLE",pattern:/--o/}),iO=eG({name:"BACKWARD_CIRCLE",pattern:/o--/}),iR=eG({name:"FORWARD_CROSS",pattern:/--x/}),ik=eG({name:"BACKWARD_CROSS",pattern:/x--/}),iI=eG({name:"MARKERLESS_SOLID",pattern:/--+/}),iN=eG({name:"METADATA_START",pattern:/@{/}),ib=eG({name:"AT",pattern:/@/,categories:sD}),iC=eG({name:"LBRACE",pattern:/{/}),i_=eG({name:"RBRACE",pattern:/}/}),iv=eG({name:"LBRACKET",pattern:/\[/}),ix=eG({name:"RBRACKET",pattern:/]/}),iU=eG({name:"LPAREN",pattern:/\(/}),iM=eG({name:"RPAREN",pattern:/\)/}),iw=eG({name:"COMMA",pattern:/,/,categories:sD}),iP=eG({name:"COLON",pattern:/:/,categories:sD}),iD=eG({name:"HASH_COLOR",pattern:/#[\dA-Fa-f]+/,categories:sD}),i$=eG({name:"PLAIN_STRING",pattern:/"[^\n\r"]*"|'[^\n\r']*'/}),iK=eG({name:"CSS_IDENTIFIER",pattern:/--[A-Z_a-z][\w-]*|[A-Z_a-z]\w*(?:-\w+)+/,categories:sD}),iF=eG({name:"CSS_ESCAPED_COMMA",pattern:/\\,/,categories:sD}),iB=eG({name:"DASH",pattern:/-/,categories:sD}),ij=eG({name:"DOT",pattern:/\./,categories:sD}),iG=eG({name:"PERCENT",pattern:/%/,categories:sD}),iW=eG({name:"CSS_PUNCTUATION",pattern:/[!#$&*+/=?^_|~]/,categories:sD}),iV=eG({name:"LABEL_PUNCTUATION",pattern:/[;<>\\`]/,categories:sD}),iz=eG({name:"LABEL_SYMBOL",pattern:/[^\t\n\r !-~]+/,categories:sD}),iH=[sD,s$,sB,sj,sG,sW,sV,sz,sX,sq,sJ,s1,s2,s5,s6,s3,s4,s8,s9,s7,ie,it,is,ii,ia,ir,io,il,ic,ih,id,iu,ip,im,iy,iA,iS,iL,iO,iR,ik,iI,iN,ib,iC,i_,iv,ix,iU,iM,iw,iP,iD,i$,iK,sF,sK,iF,iB,ij,iG,iW,iV,iz],iY={defaultMode:"defaultMode",modes:{defaultMode:[...iH],jsonBody:[sZ,sQ],stereotype:[iE,iT,ig]}},iX=[...iH,sZ,sQ,iE,iT,ig],iq=new ex(iY),iJ=(0,m.K)(e=>eO(e,sD)||e.tokenType===i$||e.tokenType===sj,"isLabelToken"),iZ={allowmixing:!0,newpage:!0,package:!0,rectangle:!0,skinparam:!0},iQ=new class extends t0{static{(0,m.K)(this,"UsecaseParser")}constructor(){super(iX,{nodeLocationTracking:"full"}),this.RULE("start",()=>{this.CONSUME(s1),this.SUBRULE(this.lineEnd),this.MANY(()=>this.SUBRULE(this.line))}),this.RULE("line",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.blankLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.commentLine),"ALT")},{GATE:(0,m.K)(()=>this.isStatementStart(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.statement),"ALT")}])}),this.RULE("statement",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.accTitleStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.accDescrStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.directionStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.actorStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.systemBoundaryStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.noteStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.jsonStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.classDefStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.classStatement),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.styleStatement),"ALT")},{GATE:(0,m.K)(()=>this.isMetadataAssignment(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.metadataAssignmentStatement),"ALT")},{GATE:(0,m.K)(()=>!this.isForbiddenPlantUmlStatement(),"GATE"),ALT:(0,m.K)(()=>this.SUBRULE(this.entityStatement),"ALT")}])}),this.RULE("lineEnd",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sV),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(eW),"ALT")}])}),this.RULE("blankLine",()=>{this.CONSUME(sV)}),this.RULE("commentLine",()=>{this.CONSUME(sW),this.SUBRULE(this.lineEnd)}),this.RULE("accTitleStatement",()=>{this.CONSUME(sX),this.SUBRULE(this.lineEnd)}),this.RULE("accDescrStatement",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sq),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sz),"ALT")}]),this.SUBRULE(this.lineEnd)}),this.RULE("actorStatement",()=>{this.CONSUME(s2),this.SUBRULE(this.actorItem),this.OPTION(()=>{this.OR([{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>{this.CONSUME(iw),this.SUBRULE2(this.actorItem)}),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.relationTail),"ALT")}])}),this.SUBRULE(this.lineEnd)}),this.RULE("actorItem",()=>{this.SUBRULE(this.actorName),this.OPTION(()=>this.SUBRULE(this.metadata)),this.OPTION2(()=>this.SUBRULE(this.stereotype)),this.OPTION3(()=>this.SUBRULE(this.classSuffix))}),this.RULE("actorName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("actorDeclarationOnly",()=>{this.CONSUME(s2),this.SUBRULE(this.actorItem),this.MANY(()=>{this.CONSUME(iw),this.SUBRULE2(this.actorItem)}),this.SUBRULE(this.lineEnd)}),this.RULE("entityStatement",()=>{this.SUBRULE(this.entityName),this.OPTION(()=>this.SUBRULE(this.relationTail)),this.SUBRULE(this.lineEnd)}),this.RULE("entityName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.OR2([{ALT:(0,m.K)(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)},"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iv),this.SUBRULE2(this.nodeLabel),this.CONSUME(ix)},"ALT")}])})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}]),this.OPTION2(()=>this.SUBRULE(this.useCaseMetadata)),this.OPTION3(()=>this.SUBRULE(this.stereotype)),this.OPTION4(()=>this.SUBRULE(this.classSuffix))}),this.RULE("nodeLabel",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")},{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>this.CONSUME(sD)),"ALT")}])}),this.RULE("useCaseMetadata",()=>{this.SUBRULE(this.metadata)}),this.RULE("relationTail",()=>{this.OPTION({GATE:(0,m.K)(()=>this.LA(1).tokenType===sF&&this.LA(2).tokenType===ib,"GATE"),DEF:(0,m.K)(()=>{this.CONSUME(sF),this.CONSUME(ib)},"DEF")}),this.SUBRULE(this.arrow),this.SUBRULE(this.entityName)}),this.RULE("arrow",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.semanticRelation),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.markerlessSolidOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardCircleOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardCircleOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.forwardCrossOperator),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.backwardCrossOperator),"ALT")}])}),this.RULE("forwardSolidOperator",()=>{this.CONSUME(iA)}),this.RULE("backwardSolidOperator",()=>{this.CONSUME(iS),this.OPTION({GATE:(0,m.K)(()=>"<--"===this.LA(0).image&&this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("markerlessSolidOperator",()=>{this.CONSUME(iI),this.OPTION({GATE:(0,m.K)(()=>"--"===this.LA(0).image&&this.hasLabeledRight([iA,iI,iL,iR]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.OR([{ALT:(0,m.K)(()=>this.CONSUME(iA),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME2(iI),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iL),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iR),"ALT")}])},"DEF")})}),this.RULE("forwardCircleOperator",()=>{this.CONSUME(iL)}),this.RULE("backwardCircleOperator",()=>{this.CONSUME(iO),this.OPTION({GATE:(0,m.K)(()=>this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("forwardCrossOperator",()=>{this.CONSUME(iR)}),this.RULE("backwardCrossOperator",()=>{this.CONSUME(ik),this.OPTION({GATE:(0,m.K)(()=>this.hasLabeledRight([iI]),"GATE"),DEF:(0,m.K)(()=>{this.SUBRULE(this.edgeLabel),this.CONSUME(iI)},"DEF")})}),this.RULE("edgeLabel",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")},{ALT:(0,m.K)(()=>this.AT_LEAST_ONE(()=>this.CONSUME(sD)),"ALT")}])}),this.RULE("semanticRelation",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(ip),this.CONSUME(iP),this.OR2([{ALT:(0,m.K)(()=>this.CONSUME(il),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ic),"ALT")}])},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iu),"ALT")}])}),this.RULE("metadata",()=>{this.CONSUME(iN),this.MANY(()=>this.CONSUME(sV)),this.OPTION(()=>{this.SUBRULE(this.metadataProperty),this.MANY2(()=>{this.SUBRULE(this.metadataSeparator),this.SUBRULE2(this.metadataProperty)}),this.OPTION2(()=>this.CONSUME(iw)),this.MANY3(()=>this.CONSUME2(sV))}),this.CONSUME(i_)}),this.RULE("metadataProperty",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")}]),this.CONSUME(iP),this.OR2([{ALT:(0,m.K)(()=>this.CONSUME2(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME2(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ih),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(id),"ALT")}])}),this.RULE("metadataSeparator",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(iw),this.MANY(()=>this.CONSUME(sV))},"ALT")},{ALT:(0,m.K)(()=>{this.AT_LEAST_ONE(()=>this.CONSUME2(sV)),this.OPTION(()=>this.CONSUME2(iw)),this.MANY2(()=>this.CONSUME3(sV))},"ALT")}])}),this.RULE("systemBoundaryStatement",()=>{this.CONSUME(s5),this.SUBRULE(this.systemBoundaryName),this.OPTION(()=>this.SUBRULE(this.metadata)),this.OPTION2(()=>this.SUBRULE(this.classSuffix)),this.SUBRULE(this.lineEnd),this.SUBRULE(this.systemBoundaryContent),this.CONSUME(s6),this.SUBRULE2(this.lineEnd)}),this.RULE("systemBoundaryName",()=>{this.OR([{ALT:(0,m.K)(()=>{this.CONSUME(sF),this.OPTION(()=>{this.OR2([{ALT:(0,m.K)(()=>{this.CONSUME(iU),this.SUBRULE(this.nodeLabel),this.CONSUME(iM)},"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iv),this.SUBRULE2(this.nodeLabel),this.CONSUME(ix)},"ALT")}])})},"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("systemBoundaryContent",()=>{this.MANY(()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.blankLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.commentLine),"ALT")},{ALT:(0,m.K)(()=>this.SUBRULE(this.boundaryElement),"ALT")}])})}),this.RULE("boundaryElement",()=>{this.OR([{ALT:(0,m.K)(()=>this.SUBRULE(this.actorDeclarationOnly),"ALT")},{ALT:(0,m.K)(()=>{this.SUBRULE(this.entityName),this.SUBRULE(this.lineEnd)},"ALT")}])}),this.RULE("metadataAssignmentStatement",()=>{this.SUBRULE(this.metadataAssignmentTarget),this.SUBRULE(this.metadata),this.SUBRULE(this.lineEnd)}),this.RULE("metadataAssignmentTarget",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(sF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sj),"ALT")}])}),this.RULE("noteStatement",()=>{this.CONSUME(it),this.CONSUME(is),this.CONSUME(sF),this.SUBRULE(this.nodeLabel),this.SUBRULE(this.lineEnd)}),this.RULE("stereotype",()=>{this.CONSUME(im),this.CONSUME(iT),this.CONSUME(iE)}),this.RULE("classSuffix",()=>{this.CONSUME(iy),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)})}),this.RULE("jsonStatement",()=>{this.CONSUME(sJ),this.CONSUME(sZ),this.OPTION(()=>this.SUBRULE(this.classSuffix)),this.SUBRULE(this.lineEnd)}),this.RULE("directionStatement",()=>{this.CONSUME(s3),this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s4),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s8),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s9),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(s7),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ie),"ALT")}]),this.SUBRULE(this.lineEnd)}),this.RULE("classDefStatement",()=>{this.CONSUME(ia),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)}),this.SUBRULE(this.styles),this.SUBRULE(this.lineEnd)}),this.RULE("classStatement",()=>{this.CONSUME(ir),this.CONSUME(sF),this.MANY(()=>{this.CONSUME(iw),this.CONSUME2(sF)}),this.CONSUME3(sF),this.MANY2(()=>{this.CONSUME2(iw),this.CONSUME4(sF)}),this.SUBRULE(this.lineEnd)}),this.RULE("styleStatement",()=>{this.CONSUME(io),this.CONSUME(sF),this.SUBRULE(this.styles),this.SUBRULE(this.lineEnd)}),this.RULE("styles",()=>{this.SUBRULE(this.styleValue),this.MANY(()=>{this.CONSUME(iw),this.SUBRULE2(this.styleValue)})}),this.RULE("styleValue",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iK),"ALT")},{ALT:(0,m.K)(()=>{this.CONSUME(iI),this.CONSUME2(s$)},"ALT")}]),this.CONSUME(iP),this.AT_LEAST_ONE(()=>this.SUBRULE(this.styleComponent))}),this.RULE("styleComponent",()=>{this.OR([{ALT:(0,m.K)(()=>this.CONSUME(s$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i$),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(sK),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iD),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iK),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iF),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iB),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ij),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iG),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iW),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iP),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iU),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iM),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iv),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ix),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iC),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(i_),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(ib),"ALT")},{ALT:(0,m.K)(()=>this.CONSUME(iI),"ALT")}])}),this.performSelfAnalysis()}isMetadataAssignment(){let e=this.LA(1).tokenType;return(e===sF||e===i$||e===sj)&&this.LA(2).tokenType===iN}isStatementStart(){let e=this.LA(1).tokenType;return e!==eW&&e!==sV&&e!==sW}isForbiddenPlantUmlStatement(){return this.LA(1).tokenType===sF&&!0===iZ[this.LA(1).image.toLowerCase()]}hasLabeledRight(e){if(!iJ(this.LA(1)))return!1;for(let t=2;;t++){let s=this.LA(t);if(e.includes(s.tokenType))return!0;if(!iJ(s))return!1}}},i0=class extends Error{constructor(e,t,s){super(`${e} (line ${t}, column ${s})`),this.line=t,this.column=s,this.name="UsecaseJsonError"}static{(0,m.K)(this,"UsecaseJsonError")}},i1=(0,m.K)((e,t,s,i)=>{let n=s,a=i,r=Math.min(Math.max(t,0),e.length);for(let t=0;t<r;t++){let s=e[t];"\r"===s?(n++,a=1):"\n"===s?(0===t||"\r"!==e[t-1])&&(n++,a=1):a++}return{line:n,column:a}},"locationAtOffset"),i2=(0,m.K)((e,t,s,i)=>{let n=/\bposition (\d+)\b/u.exec(e);if(n)return i1(t,Number.parseInt(n[1],10),s,i);let a=/\bline (\d+) column (\d+)\b/u.exec(e);if(a){let e=Number.parseInt(a[1],10),t=Number.parseInt(a[2],10);return{line:s+e-1,column:1===e?i+t-1:t}}if(/unexpected end|end of json input/iu.test(e))return i1(t,t.length,s,i)},"locationFromErrorMessage"),i5=class extends Error{constructor(e){super("Invalid JSON token"),this.offset=e}static{(0,m.K)(this,"JsonWalkError")}},i6=class{constructor(e){this.text=e,this.offset=0,this.propertyOrder={}}static{(0,m.K)(this,"PropertyOrderCollector")}collect(){if(this.skipWhitespace(),this.collectValue(""),this.skipWhitespace(),this.offset!==this.text.length)throw new i5(this.offset);return this.propertyOrder}collectValue(e){this.skipWhitespace();let t=this.text[this.offset];if("{"===t)this.collectObject(e);else if("["===t)this.collectArray(e);else if('"'===t)this.readString(!1);else if("t"===t)this.consumeLiteral("true");else if("f"===t)this.consumeLiteral("false");else if("n"===t)this.consumeLiteral("null");else if("-"===t||t>="0"&&t<="9")this.consumeNumber();else throw new i5(this.offset)}collectObject(e){this.offset++;let t=[],s=new Set;if(this.propertyOrder[e]=t,this.skipWhitespace(),"}"===this.text[this.offset])return void this.offset++;for(;this.offset<this.text.length&&'"'===this.text[this.offset];){let i=this.readString(!0),n=`${e}/${i.replaceAll("~","~0").replaceAll("/","~1")}`;if(s.has(i)?this.deletePointerSubtree(n):(s.add(i),t.push(i)),this.skipWhitespace(),":"!==this.text[this.offset])break;if(this.offset++,this.collectValue(n),this.skipWhitespace(),"}"===this.text[this.offset])return void this.offset++;if(","!==this.text[this.offset])break;this.offset++,this.skipWhitespace()}throw new i5(this.offset)}collectArray(e){if(this.offset++,this.skipWhitespace(),"]"===this.text[this.offset])return void this.offset++;let t=0;for(;this.offset<this.text.length;){if(this.collectValue(`${e}/${t}`),t++,this.skipWhitespace(),"]"===this.text[this.offset])return void this.offset++;if(","!==this.text[this.offset])break;this.offset++,this.skipWhitespace()}throw new i5(this.offset)}readString(e){this.offset++;let t="";for(;this.offset<this.text.length;){let s=this.offset,i=this.text[this.offset++];if('"'===i)return t;if(32>i.charCodeAt(0))throw new i5(s);if("\\"!==i){e&&(t+=i);continue}let n=this.offset,a=this.text[this.offset++];switch(a){case'"':case"\\":case"/":e&&(t+=a);break;case"b":e&&(t+="\b");break;case"f":e&&(t+="\f");break;case"n":e&&(t+="\n");break;case"r":e&&(t+="\r");break;case"t":e&&(t+=" ");break;case"u":{let s=this.text.slice(this.offset,this.offset+4);if(!/^[\dA-Fa-f]{4}$/u.test(s))throw new i5(this.offset);e&&(t+=String.fromCharCode(Number.parseInt(s,16))),this.offset+=4;break}default:throw new i5(n)}}throw new i5(this.offset)}consumeLiteral(e){let t=0;for(let s of e){if(this.text[this.offset+t]!==s)throw new i5(this.offset+t);t++}this.offset+=e.length}consumeNumber(){if("-"===this.text[this.offset]&&this.offset++,"0"===this.text[this.offset])this.offset++;else if(this.text[this.offset]>="1"&&this.text[this.offset]<="9")for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++;else throw new i5(this.offset);if("."===this.text[this.offset]){if(this.offset++,this.text[this.offset]<"0"||this.text[this.offset]>"9")throw new i5(this.offset);for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++}if("e"===this.text[this.offset]||"E"===this.text[this.offset]){if(this.offset++,("+"===this.text[this.offset]||"-"===this.text[this.offset])&&this.offset++,this.text[this.offset]<"0"||this.text[this.offset]>"9")throw new i5(this.offset);for(;this.text[this.offset]>="0"&&this.text[this.offset]<="9";)this.offset++}}skipWhitespace(){for(;this.offset<this.text.length;){let e=this.text[this.offset];if(" "!==e&&" "!==e&&"\n"!==e&&"\r"!==e)return;this.offset++}}deletePointerSubtree(e){let t=`${e}/`;for(let s of Object.keys(this.propertyOrder))(s===e||s.startsWith(t))&&delete this.propertyOrder[s]}};function i3(e,t,s){let i;try{i=JSON.parse(e)}catch(a){let i=a instanceof Error?a.message:String(a),n=i2(i,e,t,s);if(!n){let i=0;try{new i6(e).collect()}catch(e){e instanceof i5&&(i=e.offset)}n=i1(e,i,t,s)}throw new i0(`Invalid JSON: ${i}`,n.line,n.column)}if("object"!=typeof i||null===i||Array.isArray(i))throw new i0("JSON value must have an object root",t,s);return{value:i,propertyOrder:new i6(e).collect()}}(0,m.K)(i3,"parseOrderedJsonObject");var i4=(0,m.K)(e=>({shape:"normal"===e.type?"actor":"hollow"===e.type?"actor-hollow":"awesome"===e.type?"actor-awesome":"actor-icon",...e.label===e.id?{}:{label:e.label},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"actor",actorType:e.type,business:e.business,labelType:e.labelType,...e.icon?{icon:e.icon}:{},...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{}}}),"actorNode"),i8=(0,m.K)(e=>({shape:e.shape,...e.label===e.id?{}:{label:e.label},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"usecase",useCaseShape:e.shape,business:e.business,labelType:e.labelType,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{}}}),"useCaseNode"),i9=(0,m.K)(e=>({label:e.label,shape:"note",attrs:{kind:"note",target:e.target,labelType:e.labelType}}),"noteNode"),i7=(0,m.K)(e=>({label:e.id,shape:"json-table",...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{kind:"json",value:e.value,propertyOrder:e.propertyOrder,labelType:"text"}}),"jsonNode"),ne=(0,m.K)(e=>({id:e.id,source:e.source,target:e.target,...e.label?{label:e.label}:{},...e.classes.length?{classes:[...e.classes]}:{},...e.styles.length?{styles:[...e.styles]}:{},attrs:{relationshipType:e.type,arrowType:e.arrowType,minlen:e.minlen,explicitId:e.explicitId,animate:e.animate,...e.animation?{animation:e.animation}:{},...e.labelType?{labelType:e.labelType}:{}}}),"relationshipEdge"),nt=(0,m.K)(e=>({id:`${e.id}-edge`,source:e.id,target:e.target,attrs:{relationshipType:"note",arrowType:t6.LINE_SOLID,pattern:"dotted",minlen:1,explicitId:!1,animate:!1,internal:!0}}),"noteEdge"),ns=(0,m.K)((e,t,s,i)=>{let n={};for(let t of e.getActors().values())n[t.id]=i4(t);for(let t of e.getUseCases().values())n[t.id]=i8(t);for(let t of e.getNotes().values())n[t.id]=i9(t);for(let t of e.getJsonNodes().values())n[t.id]=i7(t);let a={};for(let t of e.getSystemBoundaries().values())a[t.id]={...t.label===t.id?{}:{title:t.label},nodes:[...t.members],...t.classes.length?{classes:[...t.classes]}:{},...t.styles.length?{styles:[...t.styles]}:{},attrs:{kind:"systemBoundary",boundaryType:t.type,labelType:t.labelType}};let r={};for(let t of e.getClassDefs().values())r[t.id]={styles:[...t.styles]};let o=e.getDirection();return{version:1,diagramType:"usecase",source:t,header:{keyword:"usecase",direction:"TD"===o?"TB":o,span:s},...e.getAccTitle()?{accTitle:e.getAccTitle()}:{},...e.getAccDescription()?{accDescr:e.getAccDescription()}:{},nodes:n,edges:[...e.getRelationships().map(ne),...[...e.getNotes().values()].map(nt)],groups:a,classDefs:r,statements:i}},"buildUsecaseGraphAST"),ni=(0,m.K)(e=>`line ${e.line}, column ${e.column} [${e.span[0]},${e.span[1]})`,"locationText"),nn=(0,m.K)(e=>void 0===e?"":` (label "${e}")`,"labelSuffix"),na=(0,m.K)(e=>e.generated?e.label:void 0,"generatedFrom"),nr=(0,m.K)((e,t)=>{for(let s of t)e.includes(s)||e.push(s)},"pushUnique"),no=class{constructor(e){this.db=e,this.source="",this.statements=[],this.elements=[],this.boundaries=[],this.jsonDrafts=[],this.relationshipDrafts=[],this.noteDrafts=[],this.metadataAssignments=[],this.classAssignments=[],this.styleAssignments=[],this.classDefinitions=[],this.directions=[],this.model=e.createModel()}static{(0,m.K)(this,"UsecaseModelBuilder")}reset(e){this.model=this.db.createModel(),this.source=e,this.statements=[],this.elements.length=0,this.boundaries.length=0,this.jsonDrafts.length=0,this.relationshipDrafts.length=0,this.noteDrafts.length=0,this.metadataAssignments.length=0,this.classAssignments.length=0,this.styleAssignments.length=0,this.classDefinitions.length=0,this.directions.length=0}addElement(e){this.elements.push(e)}addBoundary(e){this.boundaries.push(e)}addJson(e){this.jsonDrafts.push(e)}addRelationship(e){this.relationshipDrafts.push(e)}addNote(e){this.noteDrafts.push(e)}addMetadataAssignment(e,t,s,i){this.metadataAssignments.push({target:e,targetLocation:t,metadata:s,statement:i})}addClassDef(e,t){this.classDefinitions.push({ids:e,styles:t})}addClassAssignment(e,t){this.classAssignments.push({targets:e,classes:t})}addStyleAssignment(e,t,s){this.styleAssignments.push({target:e,location:t,styles:s})}setDirection(e){this.directions.push("TD"===e?"TB":e)}setAccTitle(e){this.model.accTitle=e}setAccDescription(e){this.model.accDescription=e}setStatements(e){this.statements=e}getActors(){return this.model.actors}getUseCases(){return this.model.useCases}getSystemBoundaries(){return this.model.systemBoundaries}getRelationships(){return this.model.relationships}getNotes(){return this.model.notes}getJsonNodes(){return this.model.jsonNodes}getClassDefs(){return this.model.classDefs}getDirection(){return this.model.direction}getAccTitle(){return this.model.accTitle}getAccDescription(){return this.model.accDescription}finalize(e){let t=new Map,s=new Map,i=new Map,n=new Map;for(let e of this.relationshipDrafts)this.recordFirst(n,e.source.id,e.source.location.span[0]),this.recordFirst(n,e.target.id,e.target.location.span[0]);for(let e of this.elements)this.recordFirst(n,e.id,e.location.span[0]);for(let e of this.boundaries)this.recordFirst(n,e.id,e.location.span[0]);for(let e of this.jsonDrafts)this.recordFirst(n,e.id,e.location.span[0]);for(let e of[...this.elements.map(e=>({offset:e.location.span[0],type:"element",value:e})),...this.boundaries.map(e=>({offset:e.location.span[0],type:"boundary",value:e})),...this.jsonDrafts.map(e=>({offset:e.location.span[0],type:"json",value:e})),...this.relationshipDrafts.filter(e=>e.explicitId).map(e=>({offset:e.explicitIdLocation.span[0],type:"edge",value:e}))].sort((e,t)=>e.offset-t.offset))"element"===e.type?this.collectElement(e.value,t,s):"boundary"===e.type?this.collectBoundary(e.value,t,i):"json"===e.type?this.registerUnique(t,e.value.id,"json",e.value.location,!1):this.registerUnique(t,e.value.explicitId,"edge",e.value.explicitIdLocation,!1);this.materializeElements(s,n),this.materializeBoundaries(i,n),this.materializeJson(n);let a=this.materializeRelationships(t,s,n);this.reorderElements(s,n),this.applyMetadataAssignments(t,s,i,a),this.validateAndRefreshElements(s),this.refreshBoundaries(i,s),this.materializeNotes(t),this.applyClassDefinitions(),this.applyClassesAndStyles(t,a),this.model.direction=this.directions.at(-1)??this.model.direction,this.model.symbols=new Map([...t].map(([e,t])=>[e,t.kind]));let r=ns(this,this.source,e,this.statements);return this.model.ast=r,this.db.commit(this.model),r}collectElement(e,t,s){let i=t.get(e.id),n=na({generated:e.generated,label:e.label.text});i&&i.kind!==e.kind&&this.conflict(`ID '${e.id}' is declared as both ${i.kind} and ${e.kind}`,e.location,i.location,n,na(i)),i&&(i.generated||e.generated)&&this.conflict(`Generated ID '${e.id}' collides with another declaration`,e.location,i.location,n,na(i));let a=s.get(e.id);if(!a){let i={kind:e.kind,id:e.id,label:e.label,location:e.location,generated:e.generated,classes:[...e.classes],...e.parentId?{parentId:e.parentId,parentLocation:e.parentLocation}:{},...e.shape?{shape:e.shape}:{},...e.stereotype?{stereotype:e.stereotype,stereotypeLocation:e.location}:{}};this.applyDeclarationMetadata(i,e.metadata),s.set(e.id,i),t.set(e.id,{kind:e.kind,location:e.location,generated:e.generated,label:e.label.text});return}(a.label.text!==e.label.text||a.label.type!==e.label.type)&&this.conflict(`ID '${e.id}' has conflicting labels`,e.location,a.location),e.shape&&a.shape&&e.shape!==a.shape&&this.conflict(`Use case '${e.id}' has conflicting shapes`,e.location,a.location),e.parentId&&a.parentId&&e.parentId!==a.parentId&&this.conflict(`Element '${e.id}' belongs to more than one system boundary`,e.parentLocation??e.location,a.parentLocation??a.location),e.stereotype&&a.stereotype&&e.stereotype!==a.stereotype&&this.conflict(`Element '${e.id}' has conflicting stereotypes`,e.location,a.stereotypeLocation??a.location),a.shape??=e.shape,a.parentId??=e.parentId,a.parentLocation??=e.parentLocation,a.stereotype??=e.stereotype,a.stereotypeLocation??=e.stereotype?e.location:void 0,nr(a.classes,e.classes),this.applyDeclarationMetadata(a,e.metadata)}collectBoundary(e,t,s){let i=t.get(e.id),n=na({generated:e.generated,label:e.label.text});i&&"boundary"!==i.kind&&this.conflict(`ID '${e.id}' is declared as both ${i.kind} and boundary`,e.location,i.location,n,na(i)),i&&(i.generated||e.generated)&&this.conflict(`Generated ID '${e.id}' collides with another declaration`,e.location,i.location,n,na(i));let a=s.get(e.id);if(a){(a.label.text!==e.label.text||a.label.type!==e.label.type)&&this.conflict(`Boundary '${e.id}' has conflicting titles`,e.location,a.location),nr(a.classes,e.classes);return}s.set(e.id,{id:e.id,label:e.label,location:e.location,generated:e.generated,classes:[...e.classes],styles:[],members:[]}),t.set(e.id,{kind:"boundary",location:e.location,generated:e.generated,label:e.label.text})}materializeElements(e,t){for(let s of[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))this.setElementModel(s)}materializeBoundaries(e,t){for(let s of[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))this.model.systemBoundaries.set(s.id,{id:s.id,label:s.label.text,labelType:s.label.type,type:s.type??"rect",members:[],classes:[...s.classes],styles:[...s.styles]})}materializeJson(e){for(let t of[...this.jsonDrafts].sort((t,s)=>(e.get(t.id)??0)-(e.get(s.id)??0)))this.model.jsonNodes.set(t.id,{id:t.id,value:t.value,propertyOrder:t.propertyOrder,classes:[...t.classes],styles:[]})}materializeRelationships(e,t,s){let i=new Map,n=0;for(let a of this.relationshipDrafts){let r=this.resolveEndpoint(a.source,e,t,s),o=this.resolveEndpoint(a.target,e,t,s);this.validateRelationship(a,r,o,e);let l=a.explicitId??`edge-${n++}`,c={id:l,explicitId:!!a.explicitId,source:a.source.id,target:a.target.id,type:a.type,arrowType:a.arrowType,...a.label?{label:a.label.text,labelType:a.label.type}:{},minlen:a.minlen,classes:[],styles:[],animate:!1};this.model.relationships.push(c),i.set(l,{draft:a,relationship:c})}return this.model.relationshipCounter=n,i}resolveEndpoint(e,t,s,i){if(e.classesOnReference&&!e.declaration)throw Error(`Relationship endpoint '${e.id}' uses ::: without declaring the node at ${ni(e.location)}`);let n=t.get(e.id);return n?n.kind:(s.set(e.id,{kind:"usecase",id:e.id,label:e.label,location:e.location,generated:e.generated,shape:"ellipse",classes:[]}),t.set(e.id,{kind:"usecase",location:e.location,generated:e.generated,label:e.label.text}),this.recordFirst(i,e.id,e.location.span[0]),"usecase")}reorderElements(e,t){let s=new Map(this.model.actors),i=new Map(this.model.useCases);for(let n of(this.model.actors.clear(),this.model.useCases.clear(),[...e.values()].sort((e,s)=>(t.get(e.id)??0)-(t.get(s.id)??0)))){s.has(n.id)||i.has(n.id)||this.setElementModel(n);let e=s.get(n.id)??this.model.actors.get(n.id),t=i.get(n.id)??this.model.useCases.get(n.id);e?this.model.actors.set(n.id,e):t&&this.model.useCases.set(n.id,t)}}applyMetadataAssignments(e,t,s,i){for(let n of this.metadataAssignments){let a=e.get(n.target);if(!a){let e=this.inferMetadataKind(n.metadata);throw Error(`Metadata target '${n.target}' is unresolved${e?` (metadata implies ${e})`:""} at ${ni(n.targetLocation)}`)}if("actor"===a.kind||"usecase"===a.kind)this.applyStandaloneElementMetadata(t.get(n.target),n.metadata);else if("boundary"===a.kind){let e=s.get(n.target);for(let t of n.metadata.properties)("type"!==t.key||"rect"!==t.value&&"package"!==t.value)&&this.invalidMetadata(n.target,a.kind,t),e.type=t.value}else if("edge"===a.kind){let e=i.get(n.target);if(!e)throw Error(`Metadata target '${n.target}' is not an explicit edge at ${ni(n.targetLocation)}`);for(let t of(n.statement.kind="edgeMetadata",n.statement.edges=[{id:n.target,span:n.statement.span,idSpan:n.targetLocation.span,...n.statement.metadata?{metadata:n.statement.metadata}:{}}],delete n.statement.nodes,n.metadata.properties))"animate"===t.key&&"boolean"==typeof t.value?e.relationship.animate=t.value:"animation"===t.key&&("fast"===t.value||"slow"===t.value)?(e.relationship.animation=t.value,e.relationship.animate=!0):this.invalidMetadata(n.target,a.kind,t)}else for(let e of n.metadata.properties)this.invalidMetadata(n.target,a.kind,e)}for(let{relationship:e}of i.values())e.animation&&(e.animate=!0)}applyStandaloneElementMetadata(e,t){for(let s of t.properties)"actor"===e.kind?this.applyActorProperty(e,s,!0):"business"===s.key&&"boolean"==typeof s.value?e.business=s.value:this.invalidMetadata(e.id,e.kind,s)}applyDeclarationMetadata(e,t){if(t)for(let s of t.properties)"actor"===e.kind?this.applyActorProperty(e,s,!1):"business"===s.key&&"boolean"==typeof s.value?(void 0!==e.business&&e.business!==s.value&&this.conflict(`Use case '${e.id}' has conflicting business metadata`,s.location,e.location),e.business=s.value):this.invalidMetadata(e.id,e.kind,s)}applyActorProperty(e,t,s){"type"===t.key&&("normal"===t.value||"hollow"===t.value||"awesome"===t.value)?(s||void 0===e.actorType||e.actorType===t.value||this.conflict(`Actor '${e.id}' has conflicting type metadata`,t.location,e.location),e.actorType=t.value):"icon"===t.key&&"string"==typeof t.value?(s||void 0===e.icon||e.icon===t.value||this.conflict(`Actor '${e.id}' has conflicting icon metadata`,t.location,e.location),e.icon=t.value):"business"===t.key&&"boolean"==typeof t.value?(s||void 0===e.business||e.business===t.value||this.conflict(`Actor '${e.id}' has conflicting business metadata`,t.location,e.location),e.business=t.value):this.invalidMetadata(e.id,e.kind,t)}validateAndRefreshElements(e){for(let t of e.values()){let e=t.icon?"icon":t.actorType??"normal";if("actor"===t.kind){if(t.icon&&t.actorType&&"normal"!==t.actorType)throw Error(`Actor '${t.id}' cannot combine icon with type '${t.actorType}' at ${ni(t.location)}`);if(t.business&&("icon"===e||"awesome"===e))throw Error(`Business actor '${t.id}' must use normal or hollow geometry at ${ni(t.location)}`)}else if((t.shape??"ellipse")==="rect"&&t.business)throw Error(`Rectangular use case '${t.id}' cannot be a business use case at ${ni(t.location)}`);this.setElementModel(t)}}refreshBoundaries(e,t){for(let t of e.values())t.members.length=0;for(let t of[...this.elements].sort((e,t)=>e.location.span[0]-t.location.span[0])){if(!t.parentId)continue;let s=e.get(t.parentId);if(!s)throw Error(`Parent boundary '${t.parentId}' for '${t.id}' is unresolved at ${ni(t.parentLocation??t.location)}`);s.members.includes(t.id)||s.members.push(t.id)}for(let s of t.values())if(s.parentId&&!e.has(s.parentId))throw Error(`Parent boundary '${s.parentId}' for '${s.id}' is unresolved at ${ni(s.parentLocation??s.location)}`);for(let t of e.values()){let e=this.model.systemBoundaries.get(t.id);e.type=t.type??"rect",e.members=[...t.members],e.classes=[...t.classes],e.styles=[...t.styles]}}materializeNotes(e){let t=0;for(let s of this.noteDrafts){let i=e.get(s.target);if(!i)throw Error(`Note target '${s.target}' is unresolved at ${ni(s.targetLocation)}`);"actor"!==i.kind&&"usecase"!==i.kind&&this.conflict(`Note target '${s.target}' must be an actor or use case, not ${i.kind}`,s.targetLocation,i.location);let n=`note-${t++}`;this.model.notes.set(n,{id:n,target:s.target,label:s.label.text,labelType:s.label.type})}this.model.noteCounter=t}applyClassDefinitions(){for(let e of this.classDefinitions)for(let t of e.ids)this.model.classDefs.set(t,{id:t,styles:[...e.styles]})}applyClassesAndStyles(e,t){for(let s of this.classAssignments)for(let i of s.targets)nr(this.getStylable(i.id,e,t,i.location).classes,s.classes);for(let s of this.styleAssignments)this.getStylable(s.target,e,t,s.location).styles.push(...s.styles)}getStylable(e,t,s,i){let n=t.get(e)?.kind,a="actor"===n?this.model.actors.get(e):"usecase"===n?this.model.useCases.get(e):"boundary"===n?this.model.systemBoundaries.get(e):"json"===n?this.model.jsonNodes.get(e):"edge"===n?s.get(e)?.relationship:void 0;if(!a)throw Error(`Class/style target '${e}' is unresolved or anonymous at ${ni(i)}`);return a}validateRelationship(e,t,s,i){let n=(0,m.K)(e=>"actor"===e||"usecase"===e||"json"===e,"allowed");if(n(t)||this.conflict(`Relationship source '${e.source.id}' cannot be ${t}`,e.source.location,i.get(e.source.id).location),n(s)||this.conflict(`Relationship target '${e.target.id}' cannot be ${s}`,e.target.location,i.get(e.target.id).location),("include"===e.type||"extend"===e.type)&&("usecase"!==t||"usecase"!==s))throw Error(`${e.type} relationship requires use-case endpoints at ${ni(e.location)}`);if("generalization"===e.type&&("actor"!==t&&"usecase"!==t||t!==s))throw Error(`Generalization requires actor-to-actor or use-case-to-use-case endpoints at ${ni(e.location)}`);if("association"===e.type&&("json"===t||"json"===s)&&![0,1,2].includes(e.arrowType))throw Error(`JSON relationship '${e.source.id}' to '${e.target.id}' permits only point, reversed-point, or markerless solid association at ${ni(e.location)}`)}setElementModel(e){if("actor"===e.kind){let t=e.icon?"icon":e.actorType??"normal";this.model.useCases.delete(e.id),this.model.actors.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,type:t,...e.icon?{icon:e.icon}:{},business:e.business??!1,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{},classes:[...e.classes],styles:this.model.actors.get(e.id)?.styles??[]})}else this.model.actors.delete(e.id),this.model.useCases.set(e.id,{id:e.id,label:e.label.text,labelType:e.label.type,shape:e.shape??"ellipse",business:e.business??!1,...e.stereotype?{stereotype:e.stereotype}:{},...e.parentId?{parentId:e.parentId}:{},classes:[...e.classes],styles:this.model.useCases.get(e.id)?.styles??[]})}inferMetadataKind(e){let t=new Set(["actor","usecase","boundary","edge"]);for(let s of e.properties)if("icon"===s.key)t.clear(),t.add("actor");else if("animate"===s.key||"animation"===s.key)t.clear(),t.add("edge");else if("type"===s.key)t.clear(),"rect"===s.value||"package"===s.value?t.add("boundary"):("normal"===s.value||"hollow"===s.value||"awesome"===s.value)&&t.add("actor");else{if("business"!==s.key)return;t.delete("boundary"),t.delete("edge")}return 1===t.size?[...t][0]:void 0}invalidMetadata(e,t,s){throw Error(`Metadata property '${s.key}' is invalid for ${t} '${e}' at ${ni(s.location)}`)}registerUnique(e,t,s,i,n){let a=e.get(t);a&&this.conflict(`ID '${t}' is declared more than once (${a.kind} and ${s})`,i,a.location,void 0,na(a)),e.set(t,{kind:s,location:i,generated:n})}recordFirst(e,t,s){let i=e.get(t);(void 0===i||s<i)&&e.set(t,s)}conflict(e,t,s,i,n){throw Error(`${e} at ${ni(t)}${nn(i)}; previous declaration at ${ni(s)}${nn(n)}`)}},nl=iQ.getBaseCstVisitorConstructor(),nc=new class extends nl{constructor(){super(),this.builder=new no(sb),this.source="",this.anonymousEdge=0,this.anonymousNote=0,this.validateVisitor()}static{(0,m.K)(this,"UsecaseVisitor")}build(e,t){this.source=t,this.parentBoundary=void 0,this.anonymousEdge=0,this.anonymousNote=0,this.builder.reset(t),this.visit(e)}start(e){let t=this.tokens(e,"USECASE")[0],s=[];for(let t of this.nodes(e,"line"))s.push(this.visit(t));this.builder.setStatements(s),this.builder.finalize(this.tokenSpan(t))}line(e){let t=this.firstNode(e,"blankLine","commentLine","statement");return this.wrap(t,this.visit(t))}statement(e){return this.visit(this.firstNode(e,"accTitleStatement","accDescrStatement","directionStatement","actorStatement","systemBoundaryStatement","noteStatement","jsonStatement","classDefStatement","classStatement","styleStatement","metadataAssignmentStatement","entityStatement"))}lineEnd(e){}blankLine(e){return{kind:"blank",span:this.tokenSpan(this.tokens(e,"NEWLINE")[0])}}commentLine(e){return{kind:"comment",span:this.tokenSpan(this.tokens(e,"COMMENT")[0])}}accTitleStatement(e){let t=this.tokens(e,"ACC_TITLE_LINE")[0].image;return this.builder.setAccTitle(t.slice(t.indexOf(":")+1).trim()),{kind:"accTitle",span:[0,0]}}accDescrStatement(e){let t=this.tokens(e,"ACC_DESCR_LINE")[0],s=this.tokens(e,"ACC_DESCR_BLOCK")[0],i=t?t.image.slice(t.image.indexOf(":")+1).trim():s.image.slice(s.image.indexOf("{")+1,s.image.lastIndexOf("}")).trim();return this.builder.setAccDescription(i),{kind:"accDescr",span:[0,0]}}actorStatement(e){let t=this.nodes(e,"actorItem"),s=t.map(e=>this.visit(e)),i=this.nodes(e,"relationTail")[0],n=s.map((e,s)=>this.actorOccurrence(t[s],e,!0));for(let e of s)this.builder.addElement(this.actorDraft(e));if(!i)return{kind:"node",span:[0,0],nodes:n};let a=this.visit(i);a.target.explicitDeclaration&&this.builder.addElement(this.entityDraft(a.target));let r=this.relationshipDraft(s[0],a,this.nodeLocation(i));this.builder.addRelationship(r);let o=r.explicitId??`edge-${this.anonymousEdge++}`;return n.push(this.entityOccurrence(this.nodes(i.children,"entityName")[0],a.target,a.target.explicitDeclaration)),{kind:"edge",span:[0,0],nodes:n,edges:[{id:o,span:[0,0],...r.explicitIdLocation?{idSpan:r.explicitIdLocation.span}:{},...r.label?{labelSpan:r.label.span}:{}}]}}actorItem(e){let t=this.visit(this.nodes(e,"actorName")[0]),s=this.nodes(e,"metadata")[0],i=this.nodes(e,"stereotype")[0],n=this.nodes(e,"classSuffix")[0],a=n?this.visit(n):{classes:[],spans:[]};return{...t,...s?{metadata:this.visit(s)}:{},...i?{stereotype:this.visit(i)}:{},classes:a.classes,classSpans:a.spans}}actorName(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0];if(t){let s=this.nodes(e,"nodeLabel")[0],i=s?this.visit(s):this.tokenLabel(t);return{id:t.image,label:i,location:this.tokenLocation(t),generated:!1,classes:[],classSpans:[]}}let i=this.tokenLabel(s);return{id:this.generateId(i.text),label:i,location:this.tokenLocation(s),generated:!0,classes:[],classSpans:[]}}actorDeclarationOnly(e){let t=this.nodes(e,"actorItem"),s=t.map(e=>this.visit(e));for(let e of s)this.builder.addElement(this.actorDraft(e));return{kind:"node",span:[0,0],nodes:s.map((e,s)=>this.actorOccurrence(t[s],e,!0))}}entityStatement(e){let t=this.nodes(e,"entityName"),s=this.visit(t[0]),i=this.nodes(e,"relationTail")[0];if(!i)return s.explicitDeclaration=!0,s.shape??="ellipse",this.builder.addElement(this.entityDraft(s)),{kind:"node",span:[0,0],nodes:[this.entityOccurrence(t[0],s,!0)]};s.explicitDeclaration&&this.builder.addElement(this.entityDraft(s));let n=this.visit(i);n.target.explicitDeclaration&&this.builder.addElement(this.entityDraft(n.target));let a={source:this.endpoint(s),target:this.endpoint(n.target),location:this.nodeLocation(i),...n.explicitId?{explicitId:n.explicitId,explicitIdLocation:n.explicitIdLocation}:{},...n.arrow};this.builder.addRelationship(a);let r=a.explicitId??`edge-${this.anonymousEdge++}`;return{kind:"edge",span:[0,0],nodes:[this.entityOccurrence(t[0],s,s.explicitDeclaration),this.entityOccurrence(this.nodes(i.children,"entityName")[0],n.target,n.target.explicitDeclaration)],edges:[{id:r,span:[0,0],...a.explicitIdLocation?{idSpan:a.explicitIdLocation.span}:{},...a.label?{labelSpan:a.label.span}:{}}]}}entityName(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0],i=this.nodes(e,"nodeLabel")[0],n=this.nodes(e,"useCaseMetadata")[0],a=this.nodes(e,"stereotype")[0],r=this.nodes(e,"classSuffix")[0],o=r?this.visit(r):{classes:[],spans:[]};if(t){let s=i?this.visit(i):this.tokenLabel(t),r=i?this.tokens(e,"LBRACKET").length?"rect":"ellipse":void 0;return{id:t.image,label:s,location:this.tokenLocation(t),generated:!1,...r?{shape:r}:{},...n?{metadata:this.visit(n)}:{},...a?{stereotype:this.visit(a)}:{},classes:o.classes,classSpans:o.spans,explicitDeclaration:!!(r||n||a)}}let l=this.tokenLabel(s);return{id:this.generateId(l.text),label:l,location:this.tokenLocation(s),generated:!0,...n?{metadata:this.visit(n)}:{},...a?{stereotype:this.visit(a)}:{},classes:o.classes,classSpans:o.spans,explicitDeclaration:!!(n||a)}}nodeLabel(e){let t=this.allTokens(e);if(1===t.length&&("PLAIN_STRING"===t[0].tokenType.name||"MARKDOWN_STRING"===t[0].tokenType.name))return this.tokenLabel(t[0]);let s=[t[0].startOffset,(t.at(-1).endOffset??t.at(-1).startOffset)+1];return{text:this.source.slice(s[0],s[1]),type:"text",span:s}}useCaseMetadata(e){return this.visit(this.nodes(e,"metadata")[0])}relationTail(e){let t=this.tokens(e,"IDENTIFIER")[0];return{...t?{explicitId:t.image,explicitIdLocation:this.tokenLocation(t)}:{},arrow:this.visit(this.nodes(e,"arrow")[0]),target:this.visit(this.nodes(e,"entityName")[0])}}arrow(e){return this.visit(this.firstNode(e,"semanticRelation","forwardSolidOperator","backwardSolidOperator","markerlessSolidOperator","forwardCircleOperator","backwardCircleOperator","forwardCrossOperator","backwardCrossOperator"))}edgeLabel(e){return this.nodeLabel(e)}semanticRelation(e){if(this.tokens(e,"GENERALIZATION").length)return{type:"generalization",arrowType:t6.SOLID_ARROW,minlen:1};let t=this.tokens(e,"INCLUDE").length?"include":"extend",s=this.tokens(e,"include"===t?"INCLUDE":"EXTEND")[0];return{type:t,arrowType:t6.SOLID_ARROW,label:{text:t,type:"text",span:this.tokenSpan(s)},minlen:1}}metadata(e){return{properties:this.nodes(e,"metadataProperty").map(e=>this.visit(e)),location:this.ctxLocation(e)}}metadataProperty(e){let t=this.allTokens(e).filter(e=>"COLON"!==e.tokenType.name),s=t[0],i=t[1],n="TRUE"===i.tokenType.name||"FALSE"!==i.tokenType.name&&this.decodePlain(i),a=[s.startOffset,(i.endOffset??i.startOffset)+1];return{key:this.decodePlain(s),value:n,span:a,keySpan:this.contentSpan(s),valueSpan:this.contentSpan(i),location:this.tokenLocation(s)}}metadataSeparator(e){}systemBoundaryStatement(e){let t=this.visit(this.nodes(e,"systemBoundaryName")[0]),s=this.nodes(e,"classSuffix")[0],i=s?this.visit(s):{classes:[],spans:[]};t.classes=i.classes,this.builder.addBoundary(t);let n=this.parentBoundary;this.parentBoundary={id:t.id,location:t.location};let a=this.nodes(e,"systemBoundaryContent")[0],r=a?this.visit(a):[];this.parentBoundary=n;let o=this.tokens(e,"END")[0],l=this.nodes(e,"metadata")[0],c=l?this.visit(l):void 0,h={kind:"group",span:[0,0],group:t.id,idSpan:t.location.span,titleSpan:t.label.span,endSpan:this.tokenSpan(o),classSpans:i.spans,...c?{metadata:c.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))}:{},...r.length?{children:r}:{}};return c&&this.builder.addMetadataAssignment(t.id,t.location,c,h),h}systemBoundaryName(e){let t=this.tokens(e,"IDENTIFIER")[0];if(t){let s=this.nodes(e,"nodeLabel")[0];return{id:t.image,label:s?this.visit(s):this.tokenLabel(t),location:this.tokenLocation(t),generated:!1,classes:[]}}let s=this.tokens(e,"PLAIN_STRING")[0]??this.tokens(e,"MARKDOWN_STRING")[0],i=this.tokenLabel(s);return{id:this.generateId(i.text),label:i,location:this.tokenLocation(s),generated:!0,classes:[]}}systemBoundaryContent(e){return[...this.nodes(e,"blankLine"),...this.nodes(e,"commentLine"),...this.nodes(e,"boundaryElement")].sort((e,t)=>(e.location?.startOffset??0)-(t.location?.startOffset??0)).map(e=>this.wrap(e,this.visit(e)))}boundaryElement(e){let t=this.nodes(e,"actorDeclarationOnly")[0];if(t)return this.visit(t);let s=this.nodes(e,"entityName")[0],i=this.visit(s);return i.explicitDeclaration=!0,i.shape??="ellipse",this.builder.addElement(this.entityDraft(i)),{kind:"node",span:[0,0],nodes:[this.entityOccurrence(s,i,!0)]}}metadataAssignmentStatement(e){let t=this.visit(this.nodes(e,"metadataAssignmentTarget")[0]),s=this.visit(this.nodes(e,"metadata")[0]),i={kind:"metadata",span:[0,0],nodes:[{id:t.id,span:t.location.span,idSpan:t.location.span}],metadata:s.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))};return this.builder.addMetadataAssignment(t.id,t.location,s,i),i}metadataAssignmentTarget(e){let t=this.allTokens(e)[0],s=this.tokenLabel(t);return{id:"IDENTIFIER"===t.tokenType.name?t.image:this.generateId(s.text),location:this.tokenLocation(t)}}noteStatement(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.visit(this.nodes(e,"nodeLabel")[0]);return this.builder.addNote({target:t.image,targetLocation:this.tokenLocation(t),label:s,location:this.ctxLocation(e)}),{kind:"note",span:[0,0],ref:`note-${this.anonymousNote++}`,refSpan:s.span,nodes:[{id:t.image,span:this.tokenSpan(t),idSpan:this.tokenSpan(t)}]}}stereotype(e){let t=this.tokens(e,"STEREOTYPE_TEXT")[0];return{value:t.image.trim(),span:this.tokenSpan(t)}}classSuffix(e){let t=this.tokens(e,"IDENTIFIER");return{classes:t.map(e=>e.image),spans:t.map(e=>this.tokenSpan(e))}}jsonStatement(e){let t=this.tokens(e,"JSON_DECLARATION_START")[0],s=this.tokens(e,"JSON_OBJECT_LITERAL")[0],i=/^json[\t ]+(\w+)/.exec(t.image),n=i[1],a=i[0].length-n.length,r={span:[t.startOffset+a,t.startOffset+a+n.length],line:t.startLine??1,column:(t.startColumn??1)+a},o=i3(s.image,s.startLine??1,s.startColumn??1),l=this.nodes(e,"classSuffix")[0],c=l?this.visit(l):{classes:[],spans:[]},h={id:n,value:o.value,propertyOrder:o.propertyOrder,location:r,classes:c.classes};return this.builder.addJson(h),{kind:"json",span:[0,0],nodes:[{id:n,span:r.span,idSpan:r.span,defines:!0,classSpans:c.spans}],classSpans:c.spans}}directionStatement(e){let t=this.allTokens(e).find(e=>["TD","TB","BT","RL","LR"].includes(e.tokenType.name));return this.builder.setDirection(t.image),{kind:"direction",span:[0,0]}}classDefStatement(e){let t=this.tokens(e,"IDENTIFIER"),s=this.visit(this.nodes(e,"styles")[0]);return this.builder.addClassDef(t.map(e=>e.image),s),{kind:"classDef",span:[0,0],ref:t[0].image,refSpan:this.tokenSpan(t[0])}}classStatement(e){let t=this.tokens(e,"IDENTIFIER"),s=1;for(;s<t.length&&this.source.slice((t[s-1].endOffset??t[s-1].startOffset)+1,t[s].startOffset).includes(",");s++);let i=t.slice(0,s).map(e=>({id:e.image,location:this.tokenLocation(e)})),n=t.slice(s).map(e=>e.image);return this.builder.addClassAssignment(i,n),{kind:"classAssign",span:[0,0],ref:n[0],refSpan:this.tokenSpan(t[s]),nodes:i.map(({id:e,location:t})=>({id:e,span:t.span,idSpan:t.span}))}}styleStatement(e){let t=this.tokens(e,"IDENTIFIER")[0],s=this.visit(this.nodes(e,"styles")[0]);return this.builder.addStyleAssignment(t.image,this.tokenLocation(t),s),{kind:"style",span:[0,0],nodes:[{id:t.image,span:this.tokenSpan(t),idSpan:this.tokenSpan(t)}]}}styles(e){return this.nodes(e,"styleValue").map(e=>this.visit(e))}styleValue(e){let t=this.allTokens(e),s=[t[0].startOffset,(t.at(-1).endOffset??t.at(-1).startOffset)+1];return this.source.slice(s[0],s[1]).replaceAll("\\,",",")}styleComponent(e){return this.allTokens(e).map(e=>e.image).join("")}forwardSolidOperator(e){let t=this.tokens(e,"FORWARD_SOLID")[0];return{type:"association",arrowType:t6.SOLID_ARROW,minlen:this.solidMinlen(t)}}backwardSolidOperator(e){let t=this.tokens(e,"BACKWARD_SOLID")[0],s=this.nodes(e,"edgeLabel")[0],i=s?this.tokens(e,"MARKERLESS_SOLID").at(-1):t;return{type:"association",arrowType:t6.BACK_ARROW,minlen:this.solidMinlen(i),...s?{label:this.visit(s)}:{}}}markerlessSolidOperator(e){let t=this.nodes(e,"edgeLabel")[0],s=this.allTokens(e);if(!t)return{type:"association",arrowType:t6.LINE_SOLID,minlen:this.solidMinlen(this.tokens(e,"MARKERLESS_SOLID")[0])};let i=s.at(-1),n="FORWARD_SOLID"===i.tokenType.name?t6.SOLID_ARROW:"FORWARD_CIRCLE"===i.tokenType.name?t6.CIRCLE_ARROW:"FORWARD_CROSS"===i.tokenType.name?t6.CROSS_ARROW:t6.LINE_SOLID;return{type:"association",arrowType:n,label:this.visit(t),minlen:n===t6.SOLID_ARROW||n===t6.LINE_SOLID?this.solidMinlen(i):1}}forwardCircleOperator(e){return{type:"association",arrowType:t6.CIRCLE_ARROW,minlen:1}}backwardCircleOperator(e){let t=this.nodes(e,"edgeLabel")[0];return{type:"association",arrowType:t6.CIRCLE_ARROW_REVERSED,minlen:1,...t?{label:this.visit(t)}:{}}}forwardCrossOperator(e){return{type:"association",arrowType:t6.CROSS_ARROW,minlen:1}}backwardCrossOperator(e){let t=this.nodes(e,"edgeLabel")[0];return{type:"association",arrowType:t6.CROSS_ARROW_REVERSED,minlen:1,...t?{label:this.visit(t)}:{}}}actorDraft(e){return{id:e.id,kind:"actor",label:e.label,location:e.location,generated:e.generated,...this.parentBoundary?{parentId:this.parentBoundary.id,parentLocation:this.parentBoundary.location}:{},...e.metadata?{metadata:e.metadata}:{},...e.stereotype?{stereotype:e.stereotype.value,stereotypeSpan:e.stereotype.span}:{},classes:e.classes}}entityDraft(e){return{id:e.id,kind:"usecase",label:e.label,location:e.location,generated:e.generated,...this.parentBoundary?{parentId:this.parentBoundary.id,parentLocation:this.parentBoundary.location}:{},...e.shape?{shape:e.shape}:{},...e.metadata?{metadata:e.metadata}:{},...e.stereotype?{stereotype:e.stereotype.value,stereotypeSpan:e.stereotype.span}:{},classes:e.classes}}endpoint(e,t=e.explicitDeclaration??!0){return{id:e.id,label:e.label,location:e.location,generated:e.generated,declaration:t,classesOnReference:e.classes.length>0}}relationshipDraft(e,t,s){return{source:this.endpoint(e,!0),target:this.endpoint(t.target),location:s,...t.explicitId?{explicitId:t.explicitId,explicitIdLocation:t.explicitIdLocation}:{},...t.arrow}}actorOccurrence(e,t,s){return{id:t.id,span:this.nodeSpan(e),idSpan:t.location.span,labelSpan:t.label.span,...s?{defines:!0}:{},...t.stereotype?{stereotypeSpan:t.stereotype.span}:{},...t.metadata?{metadata:t.metadata.properties.map(({key:e,span:t,keySpan:s,valueSpan:i})=>({key:e,span:t,keySpan:s,valueSpan:i}))}:{},...t.classSpans.length?{classSpans:t.classSpans}:{}}}entityOccurrence(e,t,s){return this.actorOccurrence(e,t,s)}wrap(e,t){if("blank"===t.kind||"comment"===t.kind)return t;for(let s of(t.span=this.nodeSpan(e),t.edges??[]))s.span=t.span;return t}tokenLabel(e){let t="MARKDOWN_STRING"===e.tokenType.name?"markdown":"text",s="markdown"===t?2:+("PLAIN_STRING"===e.tokenType.name),i=this.tokenSpan(e,s);return{text:this.source.slice(i[0],i[1]),type:t,span:i}}decodePlain(e){return"PLAIN_STRING"===e.tokenType.name?e.image.slice(1,-1):e.image}contentSpan(e){return this.tokenSpan(e,"PLAIN_STRING"===e.tokenType.name?1:2*("MARKDOWN_STRING"===e.tokenType.name))}generateId(e){return e.replace(/\W/g,"_")}solidMinlen(e){return Math.max(1,(e.image.match(/-/g)?.length??2)-1)}nodeLocation(e){let t=this.allTokens(e.children)[0];return{span:this.nodeSpan(e),line:t.startLine??1,column:t.startColumn??1}}ctxLocation(e){let t=this.allTokens(e).filter(e=>"NEWLINE"!==e.tokenType.name&&"EOF"!==e.tokenType.name),s=t[0],i=t.at(-1);return{span:[s.startOffset,Math.min(this.source.length,(i.endOffset??i.startOffset+i.image.length-1)+1)],line:s.startLine??1,column:s.startColumn??1}}tokenLocation(e){let t="PLAIN_STRING"===e.tokenType.name?1:2*("MARKDOWN_STRING"===e.tokenType.name);return{span:this.tokenSpan(e,t),line:e.startLine??1,column:(e.startColumn??1)+t}}nodeSpan(e){let t=this.allTokens(e.children).filter(e=>"NEWLINE"!==e.tokenType.name&&"EOF"!==e.tokenType.name),s=t[0],i=t.at(-1);if(!s||!i)throw Error("Usecase CST node has no source token");return[s.startOffset,Math.min(this.source.length,(i.endOffset??i.startOffset+i.image.length-1)+1)]}tokenSpan(e,t=0){return[e.startOffset+t,Math.min(this.source.length,(e.endOffset??e.startOffset+e.image.length-1)+1-t)]}nodes(e,t){return(e[t]??[]).filter(e=>"children"in e)}tokens(e,t){return(e[t]??[]).filter(e=>"tokenTypeIdx"in e)}firstNode(e,...t){for(let s of t){let t=this.nodes(e,s)[0];if(t)return t}throw Error(`Usecase CST is missing one of: ${t.join(", ")}`)}allTokens(e){let t=[];for(let s of Object.values(e))for(let e of s)"tokenTypeIdx"in e?t.push(e):t.push(...this.allTokens(e.children));return t.sort((e,t)=>e.startOffset-t.startOffset)}},nh={parse:(0,m.K)(async e=>{sb.clear(),iQ.input=[];try{t5({diagramType:"usecase",lexer:iq,parser:iQ,entry:(0,m.K)(()=>iQ.start(),"entry"),visit:(0,m.K)(t=>nc.build(t,e),"visit")},e)}catch(s){sb.clear();let t=iQ.errors[0];if(t){let{token:i}=t,n=t2(i.startOffset)?i.startOffset:e.length,a=t2(i.endOffset)?i.endOffset+1:n,r=t2(i.startLine)?i.startLine:e.slice(0,n).split(/\r\n|\r|\n/).length,o=Math.max(e.lastIndexOf("\n",n-1),e.lastIndexOf("\r",n-1)),l=t2(i.startColumn)?i.startColumn:n-o,c=s instanceof Error?s.message:String(s);throw Error(`${c} at line ${r}, column ${l} [${n},${a})`)}throw s}},"parse")},nd=["point","circle","cross","extension"],nu={usecaseActor:!0,usecaseActorHollow:!0,usecaseActorAwesome:!0,usecaseActorIcon:!0},np=(0,m.K)((e,t)=>{let[s,i]=[e,t].map(e=>e.replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"")||"element");return`usecase-${s}-${i}`},"usecaseDomId"),nf=(0,m.K)(e=>`usecase-${e.replace(/[^\w-]+/g,"_").replace(/^_+|_+$/g,"")||"element"}`,"usecaseNodeDomId"),nm=(0,m.K)((e,t)=>"markdown"!==t?e:(0,h.O6)(e).map(e=>e.map(e=>e.content).join(" ")).join("\n"),"getAccessibleLabel"),nE=(0,m.K)(e=>{let t=nm(e.label??e.id,e.labelType);if(nu[e.shape]){let s=e.actorType&&"normal"!==e.actorType?`${e.actorType} `:"",i=e.business?"business ":"",n=e.stereotype?`, stereotype ${e.stereotype}`:"";return`${i}${s}actor ${t}${n}`}if("note"===e.shape)return`Note for ${e.noteTargetLabel??e.noteTarget??""}: ${t}`;if("usecaseJsonTable"===e.shape){let s=(e.jsonRows??[]).map(e=>`${e.accessibleKey}: ${e.value}`).join("; ");return s?`${t}: ${s}`:t}let s=e.stereotype?`, stereotype ${e.stereotype}`:"";return`${e.business?"business ":""}use case ${t}${s}`},"getUsecaseNodeAccessibleName"),nT=(0,m.K)(e=>`${e.boundaryType} system boundary ${nm(e.label??e.id,e.labelType)}`,"getUsecaseBoundaryAccessibleName"),ng=(0,m.K)(e=>{if("note"===e.relationshipType)return"";let t="association"===e.relationshipType&&e.label?`association ${nm(e.label,e.labelType)}`:e.relationshipType;return`${t} from ${e.sourceLabel} to ${e.targetLabel}`},"getUsecaseEdgeAccessibleName"),ny=(0,m.K)(e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"),"escapePlainLabel"),nA=(0,m.K)(e=>e.replace(/([*[\\\]_`])/g,"\\$1"),"escapeMarkdownMarkers"),nS=(0,m.K)((e,t)=>{for(let s of(e.diagramId=t,e.markers=[...nd],e.nodes))if(s.domId=nf(s.id),void 0!==s.label&&"text"===s.labelType&&(s.label=ny(s.label)),s.stereotype&&(s.stereotype=ny(s.stereotype)),s.isGroup||"usecaseJsonTable"!==s.shape||(s.jsonRows=s.jsonRows?.map(e=>({...e,key:ny(e.key),value:ny(e.value)}))),!s.isGroup&&("usecaseEllipse"===s.shape||"rect"===s.shape)&&s.stereotype){let e=s.label??ny(s.id);s.label=`\xab${nA(s.stereotype)}\xbb<br/>${"text"===s.labelType?nA(e):e}`,s.labelType="markdown",s.hasFoldedStereotype=!0,delete s.stereotype}for(let t of e.edges)void 0!==t.label&&"text"===t.labelType&&(t.label=ny(t.label));return e},"prepareUsecaseLayoutData"),nL=(0,m.K)((e,t,s)=>{for(let i of t.nodes){let n="string"==typeof i.domId?i.domId:np(t.diagramId,i.id),a=e.select(`#${n}`),r=i.isGroup?"boundary":nu[i.shape]?"actor":"note"===i.shape?"note":"usecaseJsonTable"===i.shape?"json":"usecase",o=s.nodes.get(i.id)??i.id;if(a.attr("data-usecase-id",i.id).attr("data-usecase-kind",r).attr("role","img").attr("aria-label",o),!i.isGroup&&("usecaseEllipse"===i.shape||"rect"===i.shape)&&"hasFoldedStereotype"in i&&!0===i.hasFoldedStereotype){let e=a.node(),t=e?.querySelector(".nodeLabel"),s=t?.querySelector("p")??t,i=s?.firstChild;if(s&&i?.nodeType===3){let e=s.ownerDocument.createElement("span");e.className="usecase-stereotype",s.insertBefore(e,i),e.appendChild(i)}else e?.querySelector(".label tspan tspan, .label tspan")?.classList.add("usecase-stereotype")}}let i=new Map(t.edges.map(e=>[e.id,e]));e.selectAll('path[data-et="edge"]').each(function(){let e=i.get(this.getAttribute("data-id")??"");if(!e)return;let n=(0,t1.Ltv)(this);n.attr("id",np(t.diagramId,e.id)).attr("data-usecase-id",e.id).attr("data-usecase-kind",e.internal?"note-connector":"relationship"),e.internal?n.attr("aria-hidden","true"):n.attr("role","img").attr("aria-label",s.edges.get(e.id)??e.id)})},"annotateUsecaseElements"),nO=(0,m.K)((e,t)=>{e.style("--mermaid-usecase-actor-font-size",`${t.actorFontSize}px`).style("--mermaid-usecase-actor-font-family",t.actorFontFamily).style("--mermaid-usecase-actor-font-weight",t.actorFontWeight).style("--mermaid-usecase-font-size",`${t.usecaseFontSize}px`).style("--mermaid-usecase-font-family",t.usecaseFontFamily).style("--mermaid-usecase-font-weight",t.usecaseFontWeight)},"applyUsecaseFonts"),nR=(0,m.K)(async(e,t,s,i)=>{f.R.info("Drawing usecase diagram (unified)",t);let{layout:n}=(0,p.D7)(),a=i.db,r=a.getData(),h=new Map(r.nodes.map(e=>[e.id,nm(e.label??e.id,e.labelType)])),d={nodes:new Map(r.nodes.map(e=>[e.id,e.isGroup?nT(e):nE("note"===e.shape?{...e,noteTargetLabel:h.get(e.noteTarget??"")}:e)])),edges:new Map(r.edges.map(e=>[e.id,ng({...e,sourceLabel:h.get(e.source)??e.sourceLabel,targetLabel:h.get(e.target)??e.targetLabel})]))},m=(0,o.A)(t,r.config.securityLevel);r.layoutAlgorithm=(0,c.q7)(n),nS(r,t),nO(m,r),await (0,c.XX)(r,m),nL(m,r,d);let E=r.diagramPadding;u._K.insertTitle(m,"usecaseDiagramTitleText",0,a.getDiagramTitle?.()??""),(0,l.P)(m,E,"usecaseDiagram",r.useMaxWidth),nO(m,r)},"draw"),nk=(0,m.K)(e=>({actorBkg:e.usecaseActorBkg??e.actorBkg??e.mainBkg,actorBorder:e.usecaseActorBorder??e.actorBorder??e.primaryColor,bkg:e.usecaseBkg??e.mainBkg,border:e.usecaseBorder??e.nodeBorder??e.primaryColor,boundaryBkg:e.usecaseBoundaryBkg??e.clusterBkg,boundaryBorder:e.usecaseBoundaryBorder??e.clusterBorder,includeLine:e.usecaseIncludeLine??e.lineColor,extendLine:e.usecaseExtendLine??e.lineColor}),"roleColors"),nI=(0,m.K)(e=>{let{theme:t,bkgColorArray:s,borderColorArray:i}=e;if(!(0,d.P1)(t,i))return"";let n=(0,p.zj)().usecase?.colorScheme==="rotate",a=(0,d.rq)(e.look),r="handDrawn"===a,o=(0,d.Ic)(s),l="";for(let e=0;e<(0,d.Hu)(i);e++){let t=i[e],c=o?`fill: ${s[e%s.length]};`:"",h=`[data-look="${a}"][data-color-id="color-${e}"]`;l+=`
|
|
58
58
|
|
|
59
59
|
& ${h}.system-boundary rect.boundary-body,
|
|
60
60
|
& ${h}.system-boundary rect.boundary-tab,
|
|
@@ -306,4 +306,4 @@ ${s?"":`
|
|
|
306
306
|
fill: ${e.mainBkg};
|
|
307
307
|
stroke: ${e.lineColor};
|
|
308
308
|
}
|
|
309
|
-
`},"getStyles")}}
|
|
309
|
+
`},"getStyles")}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8672],{78672:(e,s,a)=>{a.d(s,{createGitGraphServices:()=>c.b});var c=a(32515);a(75599)}}]);
|