@forgeax/view 0.2.1-beta-20260924075842
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/CHANGELOG.md +11 -0
- package/README.md +742 -0
- package/dist/modules/backend.mjs +54 -0
- package/dist/modules/backend.mjs.map +7 -0
- package/dist/modules/browser.mjs +180 -0
- package/dist/modules/browser.mjs.map +7 -0
- package/dist/modules/carrier-contract.mjs +38 -0
- package/dist/modules/carrier-contract.mjs.map +7 -0
- package/dist/modules/carrier.mjs +13 -0
- package/dist/modules/carrier.mjs.map +7 -0
- package/dist/modules/chunks/chunk-2ASWB6IX.mjs +225 -0
- package/dist/modules/chunks/chunk-2ASWB6IX.mjs.map +7 -0
- package/dist/modules/chunks/chunk-2IJKOG2F.mjs +801 -0
- package/dist/modules/chunks/chunk-2IJKOG2F.mjs.map +7 -0
- package/dist/modules/chunks/chunk-2K3BBJ5S.mjs +9 -0
- package/dist/modules/chunks/chunk-2K3BBJ5S.mjs.map +7 -0
- package/dist/modules/chunks/chunk-32GD5LL6.mjs +482 -0
- package/dist/modules/chunks/chunk-32GD5LL6.mjs.map +7 -0
- package/dist/modules/chunks/chunk-3B4KFAEC.mjs +10 -0
- package/dist/modules/chunks/chunk-3B4KFAEC.mjs.map +7 -0
- package/dist/modules/chunks/chunk-46O5WX43.mjs +25 -0
- package/dist/modules/chunks/chunk-46O5WX43.mjs.map +7 -0
- package/dist/modules/chunks/chunk-47J5JXAB.mjs +237 -0
- package/dist/modules/chunks/chunk-47J5JXAB.mjs.map +7 -0
- package/dist/modules/chunks/chunk-4BXQOUDQ.mjs +17 -0
- package/dist/modules/chunks/chunk-4BXQOUDQ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-4GQWYU2V.mjs +126 -0
- package/dist/modules/chunks/chunk-4GQWYU2V.mjs.map +7 -0
- package/dist/modules/chunks/chunk-4N5X2PRQ.mjs +48 -0
- package/dist/modules/chunks/chunk-4N5X2PRQ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-4WXD2KYX.mjs +56 -0
- package/dist/modules/chunks/chunk-4WXD2KYX.mjs.map +7 -0
- package/dist/modules/chunks/chunk-6ZWWVAZK.mjs +468 -0
- package/dist/modules/chunks/chunk-6ZWWVAZK.mjs.map +7 -0
- package/dist/modules/chunks/chunk-73UZNRHN.mjs +296 -0
- package/dist/modules/chunks/chunk-73UZNRHN.mjs.map +7 -0
- package/dist/modules/chunks/chunk-7ITLCRND.mjs +10 -0
- package/dist/modules/chunks/chunk-7ITLCRND.mjs.map +7 -0
- package/dist/modules/chunks/chunk-7TGVWKH7.mjs +59 -0
- package/dist/modules/chunks/chunk-7TGVWKH7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-7URFF53W.mjs +42 -0
- package/dist/modules/chunks/chunk-7URFF53W.mjs.map +7 -0
- package/dist/modules/chunks/chunk-7YSDRIFN.mjs +14 -0
- package/dist/modules/chunks/chunk-7YSDRIFN.mjs.map +7 -0
- package/dist/modules/chunks/chunk-AAFVCQPK.mjs +52 -0
- package/dist/modules/chunks/chunk-AAFVCQPK.mjs.map +7 -0
- package/dist/modules/chunks/chunk-AEK7ZESQ.mjs +18 -0
- package/dist/modules/chunks/chunk-AEK7ZESQ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-AL6ZWIEU.mjs +42 -0
- package/dist/modules/chunks/chunk-AL6ZWIEU.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ALT7XVMQ.mjs +73 -0
- package/dist/modules/chunks/chunk-ALT7XVMQ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ASI2HBE6.mjs +116 -0
- package/dist/modules/chunks/chunk-ASI2HBE6.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ATWGCH7I.mjs +174 -0
- package/dist/modules/chunks/chunk-ATWGCH7I.mjs.map +7 -0
- package/dist/modules/chunks/chunk-C45U6IIY.mjs +692 -0
- package/dist/modules/chunks/chunk-C45U6IIY.mjs.map +7 -0
- package/dist/modules/chunks/chunk-C7R3YRA7.mjs +98 -0
- package/dist/modules/chunks/chunk-C7R3YRA7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-CRMICXKN.mjs +87 -0
- package/dist/modules/chunks/chunk-CRMICXKN.mjs.map +7 -0
- package/dist/modules/chunks/chunk-CUH2G6UF.mjs +81 -0
- package/dist/modules/chunks/chunk-CUH2G6UF.mjs.map +7 -0
- package/dist/modules/chunks/chunk-D7GWRZLL.mjs +77 -0
- package/dist/modules/chunks/chunk-D7GWRZLL.mjs.map +7 -0
- package/dist/modules/chunks/chunk-DBWUIBE3.mjs +10 -0
- package/dist/modules/chunks/chunk-DBWUIBE3.mjs.map +7 -0
- package/dist/modules/chunks/chunk-DQWVWWUU.mjs +77 -0
- package/dist/modules/chunks/chunk-DQWVWWUU.mjs.map +7 -0
- package/dist/modules/chunks/chunk-DZZ2WFEU.mjs +122 -0
- package/dist/modules/chunks/chunk-DZZ2WFEU.mjs.map +7 -0
- package/dist/modules/chunks/chunk-E4UIAN26.mjs +58 -0
- package/dist/modules/chunks/chunk-E4UIAN26.mjs.map +7 -0
- package/dist/modules/chunks/chunk-EJGBVKFE.mjs +77 -0
- package/dist/modules/chunks/chunk-EJGBVKFE.mjs.map +7 -0
- package/dist/modules/chunks/chunk-EPSTTHWV.mjs +173 -0
- package/dist/modules/chunks/chunk-EPSTTHWV.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ER7T6QJ3.mjs +64 -0
- package/dist/modules/chunks/chunk-ER7T6QJ3.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FD4BAJ6K.mjs +389 -0
- package/dist/modules/chunks/chunk-FD4BAJ6K.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FJM6WWIY.mjs +80 -0
- package/dist/modules/chunks/chunk-FJM6WWIY.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FKCQYDLX.mjs +162 -0
- package/dist/modules/chunks/chunk-FKCQYDLX.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FLGC65SR.mjs +10 -0
- package/dist/modules/chunks/chunk-FLGC65SR.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FMCACPX5.mjs +289 -0
- package/dist/modules/chunks/chunk-FMCACPX5.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FOBRLUQV.mjs +51 -0
- package/dist/modules/chunks/chunk-FOBRLUQV.mjs.map +7 -0
- package/dist/modules/chunks/chunk-FV3DSKZB.mjs +33 -0
- package/dist/modules/chunks/chunk-FV3DSKZB.mjs.map +7 -0
- package/dist/modules/chunks/chunk-G7BAFAGO.mjs +98 -0
- package/dist/modules/chunks/chunk-G7BAFAGO.mjs.map +7 -0
- package/dist/modules/chunks/chunk-GQBZMCTK.mjs +145 -0
- package/dist/modules/chunks/chunk-GQBZMCTK.mjs.map +7 -0
- package/dist/modules/chunks/chunk-GYWIY7AL.mjs +131 -0
- package/dist/modules/chunks/chunk-GYWIY7AL.mjs.map +7 -0
- package/dist/modules/chunks/chunk-H3KNBALD.mjs +256 -0
- package/dist/modules/chunks/chunk-H3KNBALD.mjs.map +7 -0
- package/dist/modules/chunks/chunk-H3M22JDL.mjs +144 -0
- package/dist/modules/chunks/chunk-H3M22JDL.mjs.map +7 -0
- package/dist/modules/chunks/chunk-HES3DNTM.mjs +40 -0
- package/dist/modules/chunks/chunk-HES3DNTM.mjs.map +7 -0
- package/dist/modules/chunks/chunk-I5BFP7SS.mjs +2392 -0
- package/dist/modules/chunks/chunk-I5BFP7SS.mjs.map +7 -0
- package/dist/modules/chunks/chunk-IGRMZYRD.mjs +15 -0
- package/dist/modules/chunks/chunk-IGRMZYRD.mjs.map +7 -0
- package/dist/modules/chunks/chunk-IKNGC766.mjs +321 -0
- package/dist/modules/chunks/chunk-IKNGC766.mjs.map +7 -0
- package/dist/modules/chunks/chunk-IVHNYKZB.mjs +35 -0
- package/dist/modules/chunks/chunk-IVHNYKZB.mjs.map +7 -0
- package/dist/modules/chunks/chunk-JHOURMYW.mjs +101 -0
- package/dist/modules/chunks/chunk-JHOURMYW.mjs.map +7 -0
- package/dist/modules/chunks/chunk-JURXMRFA.mjs +282 -0
- package/dist/modules/chunks/chunk-JURXMRFA.mjs.map +7 -0
- package/dist/modules/chunks/chunk-JWZIREC3.mjs +18 -0
- package/dist/modules/chunks/chunk-JWZIREC3.mjs.map +7 -0
- package/dist/modules/chunks/chunk-KHRTIZ56.mjs +1400 -0
- package/dist/modules/chunks/chunk-KHRTIZ56.mjs.map +7 -0
- package/dist/modules/chunks/chunk-KLJZZ23J.mjs +102 -0
- package/dist/modules/chunks/chunk-KLJZZ23J.mjs.map +7 -0
- package/dist/modules/chunks/chunk-KNBAYU5I.mjs +49 -0
- package/dist/modules/chunks/chunk-KNBAYU5I.mjs.map +7 -0
- package/dist/modules/chunks/chunk-KSZNCFU4.mjs +125 -0
- package/dist/modules/chunks/chunk-KSZNCFU4.mjs.map +7 -0
- package/dist/modules/chunks/chunk-L45W6KM6.mjs +158 -0
- package/dist/modules/chunks/chunk-L45W6KM6.mjs.map +7 -0
- package/dist/modules/chunks/chunk-LERMYZRC.mjs +239 -0
- package/dist/modules/chunks/chunk-LERMYZRC.mjs.map +7 -0
- package/dist/modules/chunks/chunk-LKJCXYSJ.mjs +91 -0
- package/dist/modules/chunks/chunk-LKJCXYSJ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-MBS3EICT.mjs +25 -0
- package/dist/modules/chunks/chunk-MBS3EICT.mjs.map +7 -0
- package/dist/modules/chunks/chunk-MUOQZPVH.mjs +609 -0
- package/dist/modules/chunks/chunk-MUOQZPVH.mjs.map +7 -0
- package/dist/modules/chunks/chunk-MVEPGFSB.mjs +1 -0
- package/dist/modules/chunks/chunk-MVEPGFSB.mjs.map +7 -0
- package/dist/modules/chunks/chunk-NBJKLWJ5.mjs +42 -0
- package/dist/modules/chunks/chunk-NBJKLWJ5.mjs.map +7 -0
- package/dist/modules/chunks/chunk-NBLGKTEM.mjs +86 -0
- package/dist/modules/chunks/chunk-NBLGKTEM.mjs.map +7 -0
- package/dist/modules/chunks/chunk-NI7CS3I2.mjs +110 -0
- package/dist/modules/chunks/chunk-NI7CS3I2.mjs.map +7 -0
- package/dist/modules/chunks/chunk-NJH2OJFC.mjs +2113 -0
- package/dist/modules/chunks/chunk-NJH2OJFC.mjs.map +7 -0
- package/dist/modules/chunks/chunk-OBK4LIJB.mjs +20 -0
- package/dist/modules/chunks/chunk-OBK4LIJB.mjs.map +7 -0
- package/dist/modules/chunks/chunk-PEUT3FW7.mjs +1 -0
- package/dist/modules/chunks/chunk-PEUT3FW7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-PRZOWPDN.mjs +66 -0
- package/dist/modules/chunks/chunk-PRZOWPDN.mjs.map +7 -0
- package/dist/modules/chunks/chunk-Q4RXBGQS.mjs +55 -0
- package/dist/modules/chunks/chunk-Q4RXBGQS.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QBHBKOIL.mjs +55 -0
- package/dist/modules/chunks/chunk-QBHBKOIL.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QD6CCRMG.mjs +20 -0
- package/dist/modules/chunks/chunk-QD6CCRMG.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QF4V23GW.mjs +39 -0
- package/dist/modules/chunks/chunk-QF4V23GW.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QK6W7MJO.mjs +42 -0
- package/dist/modules/chunks/chunk-QK6W7MJO.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QL7V6DK7.mjs +34 -0
- package/dist/modules/chunks/chunk-QL7V6DK7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QLBQQKRI.mjs +25 -0
- package/dist/modules/chunks/chunk-QLBQQKRI.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QLZQGZDC.mjs +418 -0
- package/dist/modules/chunks/chunk-QLZQGZDC.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QSKQZGK7.mjs +1625 -0
- package/dist/modules/chunks/chunk-QSKQZGK7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-QURKBAG4.mjs +25 -0
- package/dist/modules/chunks/chunk-QURKBAG4.mjs.map +7 -0
- package/dist/modules/chunks/chunk-R274XBEH.mjs +53 -0
- package/dist/modules/chunks/chunk-R274XBEH.mjs.map +7 -0
- package/dist/modules/chunks/chunk-R4I4JEY5.mjs +77 -0
- package/dist/modules/chunks/chunk-R4I4JEY5.mjs.map +7 -0
- package/dist/modules/chunks/chunk-RR6L6VVR.mjs +9 -0
- package/dist/modules/chunks/chunk-RR6L6VVR.mjs.map +7 -0
- package/dist/modules/chunks/chunk-RXF7SBBZ.mjs +125 -0
- package/dist/modules/chunks/chunk-RXF7SBBZ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-SR66S6EJ.mjs +138 -0
- package/dist/modules/chunks/chunk-SR66S6EJ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-SSQMQJ52.mjs +27 -0
- package/dist/modules/chunks/chunk-SSQMQJ52.mjs.map +7 -0
- package/dist/modules/chunks/chunk-TP26TASL.mjs +20 -0
- package/dist/modules/chunks/chunk-TP26TASL.mjs.map +7 -0
- package/dist/modules/chunks/chunk-TSAEK5P3.mjs +50 -0
- package/dist/modules/chunks/chunk-TSAEK5P3.mjs.map +7 -0
- package/dist/modules/chunks/chunk-UAY27HT3.mjs +68 -0
- package/dist/modules/chunks/chunk-UAY27HT3.mjs.map +7 -0
- package/dist/modules/chunks/chunk-UDLIWGWS.mjs +103 -0
- package/dist/modules/chunks/chunk-UDLIWGWS.mjs.map +7 -0
- package/dist/modules/chunks/chunk-UDVQHPWV.mjs +89 -0
- package/dist/modules/chunks/chunk-UDVQHPWV.mjs.map +7 -0
- package/dist/modules/chunks/chunk-UM23W3G7.mjs +237 -0
- package/dist/modules/chunks/chunk-UM23W3G7.mjs.map +7 -0
- package/dist/modules/chunks/chunk-VDZJWEAA.mjs +214 -0
- package/dist/modules/chunks/chunk-VDZJWEAA.mjs.map +7 -0
- package/dist/modules/chunks/chunk-VIGOJWSO.mjs +42 -0
- package/dist/modules/chunks/chunk-VIGOJWSO.mjs.map +7 -0
- package/dist/modules/chunks/chunk-VY3S5BWI.mjs +284 -0
- package/dist/modules/chunks/chunk-VY3S5BWI.mjs.map +7 -0
- package/dist/modules/chunks/chunk-VZXGRZYU.mjs +47 -0
- package/dist/modules/chunks/chunk-VZXGRZYU.mjs.map +7 -0
- package/dist/modules/chunks/chunk-W5DMQZB5.mjs +42 -0
- package/dist/modules/chunks/chunk-W5DMQZB5.mjs.map +7 -0
- package/dist/modules/chunks/chunk-WOMHSTVZ.mjs +918 -0
- package/dist/modules/chunks/chunk-WOMHSTVZ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-XFQT7XCG.mjs +42 -0
- package/dist/modules/chunks/chunk-XFQT7XCG.mjs.map +7 -0
- package/dist/modules/chunks/chunk-XJZEVRYX.mjs +98 -0
- package/dist/modules/chunks/chunk-XJZEVRYX.mjs.map +7 -0
- package/dist/modules/chunks/chunk-XUYFV23R.mjs +317 -0
- package/dist/modules/chunks/chunk-XUYFV23R.mjs.map +7 -0
- package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs +58 -0
- package/dist/modules/chunks/chunk-Y5HXCPPQ.mjs.map +7 -0
- package/dist/modules/chunks/chunk-YTHGRKGI.mjs +147 -0
- package/dist/modules/chunks/chunk-YTHGRKGI.mjs.map +7 -0
- package/dist/modules/chunks/chunk-YVQSDKAO.mjs +341 -0
- package/dist/modules/chunks/chunk-YVQSDKAO.mjs.map +7 -0
- package/dist/modules/chunks/chunk-YYXQDUVT.mjs +123 -0
- package/dist/modules/chunks/chunk-YYXQDUVT.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs +142 -0
- package/dist/modules/chunks/chunk-ZFXZ2NUI.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ZLNWF4ET.mjs +9 -0
- package/dist/modules/chunks/chunk-ZLNWF4ET.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ZLU5QW2O.mjs +9 -0
- package/dist/modules/chunks/chunk-ZLU5QW2O.mjs.map +7 -0
- package/dist/modules/chunks/chunk-ZNZPYE2V.mjs +28 -0
- package/dist/modules/chunks/chunk-ZNZPYE2V.mjs.map +7 -0
- package/dist/modules/chunks/core-564N45MO.mjs +7480 -0
- package/dist/modules/chunks/core-564N45MO.mjs.map +7 -0
- package/dist/modules/chunks/css-BKH4SVJG.mjs +8 -0
- package/dist/modules/chunks/css-BKH4SVJG.mjs.map +7 -0
- package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs +3241 -0
- package/dist/modules/chunks/engine-javascript-PDVIGNGR.mjs.map +7 -0
- package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs +8 -0
- package/dist/modules/chunks/github-dark-default-6HVTHEWF.mjs.map +7 -0
- package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs +8 -0
- package/dist/modules/chunks/github-light-default-LAXRA6XL.mjs.map +7 -0
- package/dist/modules/chunks/glsl-UC3YWUD2.mjs +18 -0
- package/dist/modules/chunks/glsl-UC3YWUD2.mjs.map +7 -0
- package/dist/modules/chunks/html-FRVIUV63.mjs +19 -0
- package/dist/modules/chunks/html-FRVIUV63.mjs.map +7 -0
- package/dist/modules/chunks/javascript-LN3OC7S2.mjs +8 -0
- package/dist/modules/chunks/javascript-LN3OC7S2.mjs.map +7 -0
- package/dist/modules/chunks/json-5CUGWTOP.mjs +11 -0
- package/dist/modules/chunks/json-5CUGWTOP.mjs.map +7 -0
- package/dist/modules/chunks/json5-YZQI5VNO.mjs +11 -0
- package/dist/modules/chunks/json5-YZQI5VNO.mjs.map +7 -0
- package/dist/modules/chunks/jsonc-SWID6VOZ.mjs +11 -0
- package/dist/modules/chunks/jsonc-SWID6VOZ.mjs.map +7 -0
- package/dist/modules/chunks/jsx-A7RDCLJO.mjs +11 -0
- package/dist/modules/chunks/jsx-A7RDCLJO.mjs.map +7 -0
- package/dist/modules/chunks/markdown-QTCU5KP5.mjs +11 -0
- package/dist/modules/chunks/markdown-QTCU5KP5.mjs.map +7 -0
- package/dist/modules/chunks/python-LAZONBIB.mjs +11 -0
- package/dist/modules/chunks/python-LAZONBIB.mjs.map +7 -0
- package/dist/modules/chunks/rust-XWTPJFJO.mjs +11 -0
- package/dist/modules/chunks/rust-XWTPJFJO.mjs.map +7 -0
- package/dist/modules/chunks/scss-CFXRHUUW.mjs +15 -0
- package/dist/modules/chunks/scss-CFXRHUUW.mjs.map +7 -0
- package/dist/modules/chunks/shellscript-OHO3LCVU.mjs +11 -0
- package/dist/modules/chunks/shellscript-OHO3LCVU.mjs.map +7 -0
- package/dist/modules/chunks/toml-IOHFZJ5B.mjs +11 -0
- package/dist/modules/chunks/toml-IOHFZJ5B.mjs.map +7 -0
- package/dist/modules/chunks/tsx-2E6WNX2E.mjs +11 -0
- package/dist/modules/chunks/tsx-2E6WNX2E.mjs.map +7 -0
- package/dist/modules/chunks/typescript-PBKAS54P.mjs +11 -0
- package/dist/modules/chunks/typescript-PBKAS54P.mjs.map +7 -0
- package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs +11 -0
- package/dist/modules/chunks/wgsl-PS6QPRLZ.mjs.map +7 -0
- package/dist/modules/chunks/xml-JECR2ACB.mjs +18 -0
- package/dist/modules/chunks/xml-JECR2ACB.mjs.map +7 -0
- package/dist/modules/chunks/yaml-P2SV4LOE.mjs +11 -0
- package/dist/modules/chunks/yaml-P2SV4LOE.mjs.map +7 -0
- package/dist/modules/cli-contributions.mjs +32 -0
- package/dist/modules/cli-contributions.mjs.map +7 -0
- package/dist/modules/cli.mjs +14 -0
- package/dist/modules/cli.mjs.map +7 -0
- package/dist/modules/command-executor.mjs +65 -0
- package/dist/modules/command-executor.mjs.map +7 -0
- package/dist/modules/commands.mjs +10 -0
- package/dist/modules/commands.mjs.map +7 -0
- package/dist/modules/embedded.mjs +18608 -0
- package/dist/modules/embedded.mjs.map +7 -0
- package/dist/modules/extension-bridge.mjs +18 -0
- package/dist/modules/extension-bridge.mjs.map +7 -0
- package/dist/modules/frontend-root.mjs +61 -0
- package/dist/modules/frontend-root.mjs.map +7 -0
- package/dist/modules/index.mjs +784 -0
- package/dist/modules/index.mjs.map +7 -0
- package/dist/modules/page.mjs +45 -0
- package/dist/modules/page.mjs.map +7 -0
- package/dist/modules/pages/scene.mjs +18 -0
- package/dist/modules/pages/scene.mjs.map +7 -0
- package/dist/modules/plugin.mjs +56 -0
- package/dist/modules/plugin.mjs.map +7 -0
- package/dist/modules/plugins/asset/frontend.mjs +23 -0
- package/dist/modules/plugins/asset/frontend.mjs.map +7 -0
- package/dist/modules/plugins/asset/i18n.mjs +15 -0
- package/dist/modules/plugins/asset/i18n.mjs.map +7 -0
- package/dist/modules/plugins/asset/identity.mjs +42 -0
- package/dist/modules/plugins/asset/identity.mjs.map +7 -0
- package/dist/modules/plugins/asset/schema.mjs +10 -0
- package/dist/modules/plugins/asset/schema.mjs.map +7 -0
- package/dist/modules/plugins/asset/ui.mjs +16 -0
- package/dist/modules/plugins/asset/ui.mjs.map +7 -0
- package/dist/modules/plugins/content-browser/frontend.mjs +17 -0
- package/dist/modules/plugins/content-browser/frontend.mjs.map +7 -0
- package/dist/modules/plugins/content-browser/i18n.mjs +15 -0
- package/dist/modules/plugins/content-browser/i18n.mjs.map +7 -0
- package/dist/modules/plugins/content-browser/identity.mjs +22 -0
- package/dist/modules/plugins/content-browser/identity.mjs.map +7 -0
- package/dist/modules/plugins/content-browser/schema.mjs +12 -0
- package/dist/modules/plugins/content-browser/schema.mjs.map +7 -0
- package/dist/modules/plugins/content-browser/ui.mjs +15 -0
- package/dist/modules/plugins/content-browser/ui.mjs.map +7 -0
- package/dist/modules/plugins/display/api.mjs +10 -0
- package/dist/modules/plugins/display/api.mjs.map +7 -0
- package/dist/modules/plugins/display/backend.mjs +16 -0
- package/dist/modules/plugins/display/backend.mjs.map +7 -0
- package/dist/modules/plugins/display/carrier-contract.mjs +38 -0
- package/dist/modules/plugins/display/carrier-contract.mjs.map +7 -0
- package/dist/modules/plugins/display/carrier.mjs +13 -0
- package/dist/modules/plugins/display/carrier.mjs.map +7 -0
- package/dist/modules/plugins/display/effects.mjs +8 -0
- package/dist/modules/plugins/display/effects.mjs.map +7 -0
- package/dist/modules/plugins/display/frontend.mjs +14 -0
- package/dist/modules/plugins/display/frontend.mjs.map +7 -0
- package/dist/modules/plugins/display/i18n.mjs +58 -0
- package/dist/modules/plugins/display/i18n.mjs.map +7 -0
- package/dist/modules/plugins/display/identity.mjs +30 -0
- package/dist/modules/plugins/display/identity.mjs.map +7 -0
- package/dist/modules/plugins/display/page-broker.mjs +12 -0
- package/dist/modules/plugins/display/page-broker.mjs.map +7 -0
- package/dist/modules/plugins/display/schema.mjs +40 -0
- package/dist/modules/plugins/display/schema.mjs.map +7 -0
- package/dist/modules/plugins/display/ui.mjs +9 -0
- package/dist/modules/plugins/display/ui.mjs.map +7 -0
- package/dist/modules/plugins/inspector/frontend.mjs +17 -0
- package/dist/modules/plugins/inspector/frontend.mjs.map +7 -0
- package/dist/modules/plugins/inspector/i18n.mjs +15 -0
- package/dist/modules/plugins/inspector/i18n.mjs.map +7 -0
- package/dist/modules/plugins/inspector/identity.mjs +22 -0
- package/dist/modules/plugins/inspector/identity.mjs.map +7 -0
- package/dist/modules/plugins/inspector/schema.mjs +12 -0
- package/dist/modules/plugins/inspector/schema.mjs.map +7 -0
- package/dist/modules/plugins/inspector/ui.mjs +16 -0
- package/dist/modules/plugins/inspector/ui.mjs.map +7 -0
- package/dist/modules/plugins/material/frontend.mjs +25 -0
- package/dist/modules/plugins/material/frontend.mjs.map +7 -0
- package/dist/modules/plugins/material/i18n.mjs +15 -0
- package/dist/modules/plugins/material/i18n.mjs.map +7 -0
- package/dist/modules/plugins/material/identity.mjs +60 -0
- package/dist/modules/plugins/material/identity.mjs.map +7 -0
- package/dist/modules/plugins/material/schema.mjs +47 -0
- package/dist/modules/plugins/material/schema.mjs.map +7 -0
- package/dist/modules/plugins/material/ui.mjs +28 -0
- package/dist/modules/plugins/material/ui.mjs.map +7 -0
- package/dist/modules/plugins/mesh/frontend.mjs +23 -0
- package/dist/modules/plugins/mesh/frontend.mjs.map +7 -0
- package/dist/modules/plugins/mesh/i18n.mjs +15 -0
- package/dist/modules/plugins/mesh/i18n.mjs.map +7 -0
- package/dist/modules/plugins/mesh/identity.mjs +54 -0
- package/dist/modules/plugins/mesh/identity.mjs.map +7 -0
- package/dist/modules/plugins/mesh/schema.mjs +10 -0
- package/dist/modules/plugins/mesh/schema.mjs.map +7 -0
- package/dist/modules/plugins/mesh/ui.mjs +26 -0
- package/dist/modules/plugins/mesh/ui.mjs.map +7 -0
- package/dist/modules/plugins/plugins/api.mjs +11 -0
- package/dist/modules/plugins/plugins/api.mjs.map +7 -0
- package/dist/modules/plugins/plugins/backend.mjs +21 -0
- package/dist/modules/plugins/plugins/backend.mjs.map +7 -0
- package/dist/modules/plugins/plugins/cli.mjs +12 -0
- package/dist/modules/plugins/plugins/cli.mjs.map +7 -0
- package/dist/modules/plugins/plugins/frontend.mjs +17 -0
- package/dist/modules/plugins/plugins/frontend.mjs.map +7 -0
- package/dist/modules/plugins/plugins/i18n.mjs +15 -0
- package/dist/modules/plugins/plugins/i18n.mjs.map +7 -0
- package/dist/modules/plugins/plugins/identity.mjs +26 -0
- package/dist/modules/plugins/plugins/identity.mjs.map +7 -0
- package/dist/modules/plugins/plugins/runtime.mjs +50 -0
- package/dist/modules/plugins/plugins/runtime.mjs.map +7 -0
- package/dist/modules/plugins/plugins/schema.mjs +12 -0
- package/dist/modules/plugins/plugins/schema.mjs.map +7 -0
- package/dist/modules/plugins/plugins/ui/panel.mjs +14 -0
- package/dist/modules/plugins/plugins/ui/panel.mjs.map +7 -0
- package/dist/modules/plugins/plugins/ui.mjs +15 -0
- package/dist/modules/plugins/plugins/ui.mjs.map +7 -0
- package/dist/modules/plugins/scene/frontend.mjs +18 -0
- package/dist/modules/plugins/scene/frontend.mjs.map +7 -0
- package/dist/modules/plugins/scene/identity.mjs +14 -0
- package/dist/modules/plugins/scene/identity.mjs.map +7 -0
- package/dist/modules/plugins/scene-tree/frontend.mjs +17 -0
- package/dist/modules/plugins/scene-tree/frontend.mjs.map +7 -0
- package/dist/modules/plugins/scene-tree/i18n.mjs +15 -0
- package/dist/modules/plugins/scene-tree/i18n.mjs.map +7 -0
- package/dist/modules/plugins/scene-tree/identity.mjs +22 -0
- package/dist/modules/plugins/scene-tree/identity.mjs.map +7 -0
- package/dist/modules/plugins/scene-tree/schema.mjs +12 -0
- package/dist/modules/plugins/scene-tree/schema.mjs.map +7 -0
- package/dist/modules/plugins/scene-tree/ui.mjs +16 -0
- package/dist/modules/plugins/scene-tree/ui.mjs.map +7 -0
- package/dist/modules/plugins/texture/frontend.mjs +23 -0
- package/dist/modules/plugins/texture/frontend.mjs.map +7 -0
- package/dist/modules/plugins/texture/i18n.mjs +15 -0
- package/dist/modules/plugins/texture/i18n.mjs.map +7 -0
- package/dist/modules/plugins/texture/identity.mjs +54 -0
- package/dist/modules/plugins/texture/identity.mjs.map +7 -0
- package/dist/modules/plugins/texture/schema.mjs +10 -0
- package/dist/modules/plugins/texture/schema.mjs.map +7 -0
- package/dist/modules/plugins/texture/ui.mjs +26 -0
- package/dist/modules/plugins/texture/ui.mjs.map +7 -0
- package/dist/modules/plugins/viewport/frontend.mjs +27 -0
- package/dist/modules/plugins/viewport/frontend.mjs.map +7 -0
- package/dist/modules/plugins/viewport/identity.mjs +28 -0
- package/dist/modules/plugins/viewport/identity.mjs.map +7 -0
- package/dist/modules/plugins/viewport/presentation-identity.mjs +10 -0
- package/dist/modules/plugins/viewport/presentation-identity.mjs.map +7 -0
- package/dist/modules/plugins/viewport/presentation.mjs +18 -0
- package/dist/modules/plugins/viewport/presentation.mjs.map +7 -0
- package/dist/modules/plugins/viewport/schema.mjs +18 -0
- package/dist/modules/plugins/viewport/schema.mjs.map +7 -0
- package/dist/modules/plugins/viewport/workspace-shell.mjs +29 -0
- package/dist/modules/plugins/viewport/workspace-shell.mjs.map +7 -0
- package/dist/modules/shell/contract.mjs +10 -0
- package/dist/modules/shell/contract.mjs.map +7 -0
- package/dist/modules/shell/frontend.mjs +14 -0
- package/dist/modules/shell/frontend.mjs.map +7 -0
- package/dist/modules/shell/layout-zones.mjs +20 -0
- package/dist/modules/shell/layout-zones.mjs.map +7 -0
- package/dist/modules/start-cli.mjs +57 -0
- package/dist/modules/start-cli.mjs.map +7 -0
- package/dist/modules/start.mjs +18 -0
- package/dist/modules/start.mjs.map +7 -0
- package/dist/modules/viewer/catalog/backend.mjs +47 -0
- package/dist/modules/viewer/catalog/backend.mjs.map +7 -0
- package/dist/modules/viewer/catalog/frontend.mjs +55 -0
- package/dist/modules/viewer/catalog/frontend.mjs.map +7 -0
- package/dist/modules/viewer/catalog/shared.mjs +43 -0
- package/dist/modules/viewer/catalog/shared.mjs.map +7 -0
- package/dist/modules/viewer/catalog.mjs +85 -0
- package/dist/modules/viewer/catalog.mjs.map +7 -0
- package/dist/modules/viewer/cli.mjs +23 -0
- package/dist/modules/viewer/cli.mjs.map +7 -0
- package/dist/modules/viewer-host/frontend.mjs +65 -0
- package/dist/modules/viewer-host/frontend.mjs.map +7 -0
- package/dist/modules/viewer-host/page-registry.mjs +27 -0
- package/dist/modules/viewer-host/page-registry.mjs.map +7 -0
- package/dist/modules/viewer-host/slot-registry.mjs +8 -0
- package/dist/modules/viewer-host/slot-registry.mjs.map +7 -0
- package/dist/modules/viewer-host.mjs +43 -0
- package/dist/modules/viewer-host.mjs.map +7 -0
- package/dist/modules/viewer.mjs +85 -0
- package/dist/modules/viewer.mjs.map +7 -0
- package/dist/modules/workspace/adopt-surface.mjs +16 -0
- package/dist/modules/workspace/adopt-surface.mjs.map +7 -0
- package/dist/modules/workspace/api.mjs +8 -0
- package/dist/modules/workspace/api.mjs.map +7 -0
- package/dist/modules/workspace/backend.mjs +23 -0
- package/dist/modules/workspace/backend.mjs.map +7 -0
- package/dist/modules/workspace/broker.mjs +16 -0
- package/dist/modules/workspace/broker.mjs.map +7 -0
- package/dist/modules/workspace/cli.mjs +9 -0
- package/dist/modules/workspace/cli.mjs.map +7 -0
- package/dist/modules/workspace/client.mjs +15 -0
- package/dist/modules/workspace/client.mjs.map +7 -0
- package/dist/modules/workspace/command-error.mjs +16 -0
- package/dist/modules/workspace/command-error.mjs.map +7 -0
- package/dist/modules/workspace/contract.mjs +71 -0
- package/dist/modules/workspace/contract.mjs.map +7 -0
- package/dist/modules/workspace/demo-client.mjs +127 -0
- package/dist/modules/workspace/demo-client.mjs.map +7 -0
- package/dist/modules/workspace/engine-adapter.mjs +16 -0
- package/dist/modules/workspace/engine-adapter.mjs.map +7 -0
- package/dist/modules/workspace/engine-presentation.mjs +10 -0
- package/dist/modules/workspace/engine-presentation.mjs.map +7 -0
- package/dist/modules/workspace/extension-bridge.mjs +18 -0
- package/dist/modules/workspace/extension-bridge.mjs.map +7 -0
- package/dist/modules/workspace/frontend-plugin.mjs +18 -0
- package/dist/modules/workspace/frontend-plugin.mjs.map +7 -0
- package/dist/modules/workspace/frontend.mjs +29 -0
- package/dist/modules/workspace/frontend.mjs.map +7 -0
- package/dist/modules/workspace/id.mjs +8 -0
- package/dist/modules/workspace/id.mjs.map +7 -0
- package/dist/modules/workspace/inspection-presentation.mjs +12 -0
- package/dist/modules/workspace/inspection-presentation.mjs.map +7 -0
- package/dist/modules/workspace/locale-bridge.mjs +14 -0
- package/dist/modules/workspace/locale-bridge.mjs.map +7 -0
- package/dist/modules/workspace/page-title.mjs +13 -0
- package/dist/modules/workspace/page-title.mjs.map +7 -0
- package/dist/modules/workspace/presentation.mjs +18 -0
- package/dist/modules/workspace/presentation.mjs.map +7 -0
- package/dist/modules/workspace/preview-surface.mjs +17 -0
- package/dist/modules/workspace/preview-surface.mjs.map +7 -0
- package/dist/modules/workspace/project-session.mjs +18 -0
- package/dist/modules/workspace/project-session.mjs.map +7 -0
- package/dist/modules/workspace/render-resize-sync.mjs +12 -0
- package/dist/modules/workspace/render-resize-sync.mjs.map +7 -0
- package/dist/modules/workspace/resident.mjs +16 -0
- package/dist/modules/workspace/resident.mjs.map +7 -0
- package/dist/modules/workspace/resource-open.mjs +34 -0
- package/dist/modules/workspace/resource-open.mjs.map +7 -0
- package/dist/modules/workspace/resource-page.mjs +27 -0
- package/dist/modules/workspace/resource-page.mjs.map +7 -0
- package/dist/modules/workspace/tool-runtime.mjs +14 -0
- package/dist/modules/workspace/tool-runtime.mjs.map +7 -0
- package/dist/modules/workspace/view-trace.mjs +60 -0
- package/dist/modules/workspace/view-trace.mjs.map +7 -0
- package/dist/modules/workspace/workspace-client-connection.mjs +22 -0
- package/dist/modules/workspace/workspace-client-connection.mjs.map +7 -0
- package/dist/modules/workspace/workspace-recovery.mjs +35 -0
- package/dist/modules/workspace/workspace-recovery.mjs.map +7 -0
- package/dist/modules/workspace/workspace-state.mjs +12 -0
- package/dist/modules/workspace/workspace-state.mjs.map +7 -0
- package/dist/modules/workspace-frontend.mjs +17 -0
- package/dist/modules/workspace-frontend.mjs.map +7 -0
- package/dist/viewer/assets/chunk-CilyBKbf.js +1 -0
- package/dist/viewer/assets/core-DSQma37-.js +13 -0
- package/dist/viewer/assets/core-DSQma37-.js.map +1 -0
- package/dist/viewer/assets/css-Bq1BXecw.js +2 -0
- package/dist/viewer/assets/css-Bq1BXecw.js.map +1 -0
- package/dist/viewer/assets/css-CWQWazmX.js +1 -0
- package/dist/viewer/assets/embedded-D4ZDx--W.js +2 -0
- package/dist/viewer/assets/embedded-D4ZDx--W.js.map +1 -0
- package/dist/viewer/assets/engine-javascript-BvokIV9O.js +142 -0
- package/dist/viewer/assets/engine-javascript-BvokIV9O.js.map +1 -0
- package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js +2 -0
- package/dist/viewer/assets/github-dark-default-DaDlj-WZ.js.map +1 -0
- package/dist/viewer/assets/github-light-default-BqhWxAZd.js +2 -0
- package/dist/viewer/assets/github-light-default-BqhWxAZd.js.map +1 -0
- package/dist/viewer/assets/glsl-BJgVnv11.js +2 -0
- package/dist/viewer/assets/glsl-BJgVnv11.js.map +1 -0
- package/dist/viewer/assets/html-AaaHGGyt.js +2 -0
- package/dist/viewer/assets/html-AaaHGGyt.js.map +1 -0
- package/dist/viewer/assets/javascript-BX9W64FE.js +1 -0
- package/dist/viewer/assets/javascript-DQODvD07.js +2 -0
- package/dist/viewer/assets/javascript-DQODvD07.js.map +1 -0
- package/dist/viewer/assets/json-CpcIDpT7.js +2 -0
- package/dist/viewer/assets/json-CpcIDpT7.js.map +1 -0
- package/dist/viewer/assets/json5-Czq4A7dk.js +2 -0
- package/dist/viewer/assets/json5-Czq4A7dk.js.map +1 -0
- package/dist/viewer/assets/jsonc-BXDfCMmu.js +2 -0
- package/dist/viewer/assets/jsonc-BXDfCMmu.js.map +1 -0
- package/dist/viewer/assets/jsx-DAWscEnf.js +2 -0
- package/dist/viewer/assets/jsx-DAWscEnf.js.map +1 -0
- package/dist/viewer/assets/main-C-2CHTN_.js +15 -0
- package/dist/viewer/assets/main-C-2CHTN_.js.map +1 -0
- package/dist/viewer/assets/markdown-Cx1FMNw-.js +2 -0
- package/dist/viewer/assets/markdown-Cx1FMNw-.js.map +1 -0
- package/dist/viewer/assets/panels-entry-Ddhfjgf0.js +46 -0
- package/dist/viewer/assets/panels-entry-Ddhfjgf0.js.map +1 -0
- package/dist/viewer/assets/python-CYPKjWV9.js +2 -0
- package/dist/viewer/assets/python-CYPKjWV9.js.map +1 -0
- package/dist/viewer/assets/rust-0e5cNx_V.js +2 -0
- package/dist/viewer/assets/rust-0e5cNx_V.js.map +1 -0
- package/dist/viewer/assets/scss-B-aKzLbT.js +2 -0
- package/dist/viewer/assets/scss-B-aKzLbT.js.map +1 -0
- package/dist/viewer/assets/shellscript-CpXD-pSm.js +2 -0
- package/dist/viewer/assets/shellscript-CpXD-pSm.js.map +1 -0
- package/dist/viewer/assets/style-ClttNKZk.css +2 -0
- package/dist/viewer/assets/styles-BXozhwiU.js +11 -0
- package/dist/viewer/assets/styles-BXozhwiU.js.map +1 -0
- package/dist/viewer/assets/toml-GmchYTXa.js +2 -0
- package/dist/viewer/assets/toml-GmchYTXa.js.map +1 -0
- package/dist/viewer/assets/tsx-Crj1Bi53.js +2 -0
- package/dist/viewer/assets/tsx-Crj1Bi53.js.map +1 -0
- package/dist/viewer/assets/typescript-xi0cSHCO.js +2 -0
- package/dist/viewer/assets/typescript-xi0cSHCO.js.map +1 -0
- package/dist/viewer/assets/wgsl-BoEPRo9U.js +2 -0
- package/dist/viewer/assets/wgsl-BoEPRo9U.js.map +1 -0
- package/dist/viewer/assets/xml-B8JqQrMD.js +2 -0
- package/dist/viewer/assets/xml-B8JqQrMD.js.map +1 -0
- package/dist/viewer/assets/yaml-DsIB85X9.js +2 -0
- package/dist/viewer/assets/yaml-DsIB85X9.js.map +1 -0
- package/dist/viewer/index.html +15 -0
- package/dist/viewer/panels.js +1 -0
- package/host.pack.json +13 -0
- package/package.json +174 -0
- package/skills/forgeax-view-cli/SKILL.md +74 -0
- package/skills/forgeax-view-start/SKILL.md +202 -0
- package/skills/forgeax-view-start/scripts/start-view.mjs +202 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/viewer/src/catalog-shared.mjs"],
|
|
4
|
+
"sourcesContent": ["import * as display from '@forgeax/view-plugin-display/identity';\nimport * as plugins from '@forgeax/view-plugin-plugins/identity';\nimport * as inspector from '@forgeax/view-plugin-inspector/identity';\nimport * as contentBrowser from '@forgeax/view-plugin-content-browser/identity';\nimport * as sceneTree from '@forgeax/view-plugin-scene-tree/identity';\nimport * as material from '@forgeax/view-plugin-material/identity';\nimport * as mesh from '@forgeax/view-plugin-mesh/identity';\nimport * as texture from '@forgeax/view-plugin-texture/identity';\nimport * as asset from '@forgeax/view-plugin-asset/identity';\nimport * as viewport from '@forgeax/view-plugin-viewport/identity';\nimport * as scene from '@forgeax/view-plugin-scene/identity';\n\nimport { SHELL_MODULE, SHELL_PLUGIN_ID } from './plugins/shell-identity.mjs';\nimport { PRESENTATION_MODULE, PRESENTATION_PLUGIN_ID } from '@forgeax/view-plugin-viewport/presentation-identity';\n\nexport const VIEW_PLUGIN_VERSION = '0.2.1-beta-20260924075842';\nexport const VIEW_FRONTEND_ROOT_PROGRAM = '@forgeax/view/frontend-root';\nexport const VIEW_FRONTEND_MODULE = Object.freeze({ specifier: VIEW_FRONTEND_ROOT_PROGRAM });\n\nexport function viewFrontendRoot(frontendConfig, disabledPages = []) {\n return Object.freeze({\n program: VIEW_FRONTEND_ROOT_PROGRAM,\n codeRevision: VIEW_PLUGIN_VERSION,\n config: { frontendConfig, disabledPages },\n });\n}\n\nexport const VIEW_WORKSPACE_CORE = Object.freeze({\n BACKEND_PLUGIN_ID: 'forgeax.view.service.workspace.backend',\n FRONTEND_PLUGIN_ID: 'forgeax.view.service.workspace-client.frontend',\n BACKEND_MODULE: '@forgeax/view-workspace-core/backend',\n FRONTEND_MODULE: '@forgeax/view/workspace-frontend',\n});\n\nexport const VIEW_PRODUCT_PLUGINS = Object.freeze([\n scene,\n display,\n viewport,\n contentBrowser,\n plugins,\n inspector,\n sceneTree,\n material,\n mesh,\n texture,\n asset,\n]);\n\n/** Static native composition. Pack assets own game plugin identity; View owns only its UI policy. */\nexport function createViewProductPlan({ backendConfig, frontendConfig, disabledPages = [] } = {}) {\n const pages = new Set(VIEW_PRODUCT_PLUGINS.map(plugin => plugin.PAGE_TYPE));\n for (const page of disabledPages) {\n if (!pages.has(page)) throw new TypeError(`Unknown View page: ${page}`);\n }\n const disabled = new Set(disabledPages);\n const displayBackendConfig = {\n platform: backendConfig?.platform,\n capabilities: backendConfig?.capabilities,\n };\n const workspaceBackendConfig = {\n workspaceEngine: backendConfig?.workspaceEngine,\n workspaceAccessToken: backendConfig?.workspaceAccessToken,\n workspaceAuthorize: backendConfig?.workspaceAuthorize,\n capabilities: backendConfig?.capabilities,\n };\n const backend = [\n { id: VIEW_WORKSPACE_CORE.BACKEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.BACKEND_MODULE, config: workspaceBackendConfig },\n { id: display.BACKEND_PLUGIN_ID, module: display.BACKEND_MODULE, config: displayBackendConfig },\n { id: plugins.BACKEND_PLUGIN_ID, module: plugins.BACKEND_MODULE, config: {} },\n ];\n const frontend = [\n { id: SHELL_PLUGIN_ID, module: SHELL_MODULE },\n { id: VIEW_WORKSPACE_CORE.FRONTEND_PLUGIN_ID, module: VIEW_WORKSPACE_CORE.FRONTEND_MODULE },\n ...(!disabled.has(scene.PAGE_TYPE) ? [{ id: scene.FRONTEND_PLUGIN_ID, module: scene.FRONTEND_MODULE }] : []),\n { id: PRESENTATION_PLUGIN_ID, module: PRESENTATION_MODULE },\n ...VIEW_PRODUCT_PLUGINS.filter(plugin => plugin !== scene && !disabled.has(plugin.PAGE_TYPE))\n .map(plugin => ({ id: plugin.FRONTEND_PLUGIN_ID, module: plugin.FRONTEND_MODULE })),\n ];\n return Object.freeze({\n backend: Object.freeze(backend),\n frontend: Object.freeze(frontend),\n frontendConfig,\n disabledPages: Object.freeze([...disabled]),\n });\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,IAAM,sBAAsB;AAC5B,IAAM,6BAA6B;AACnC,IAAM,uBAAuB,OAAO,OAAO,EAAE,WAAW,2BAA2B,CAAC;AAEpF,SAAS,iBAAiB,gBAAgB,gBAAgB,CAAC,GAAG;AACnE,SAAO,OAAO,OAAO;AAAA,IACnB,SAAS;AAAA,IACT,cAAc;AAAA,IACd,QAAQ,EAAE,gBAAgB,cAAc;AAAA,EAC1C,CAAC;AACH;AAEO,IAAM,sBAAsB,OAAO,OAAO;AAAA,EAC/C,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AACnB,CAAC;AAEM,IAAM,uBAAuB,OAAO,OAAO;AAAA,EAChD;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AACF,CAAC;AAGM,SAAS,sBAAsB,EAAE,eAAe,gBAAgB,gBAAgB,CAAC,EAAE,IAAI,CAAC,GAAG;AAChG,QAAM,QAAQ,IAAI,IAAI,qBAAqB,IAAI,YAAU,OAAO,SAAS,CAAC;AAC1E,aAAW,QAAQ,eAAe;AAChC,QAAI,CAAC,MAAM,IAAI,IAAI,EAAG,OAAM,IAAI,UAAU,sBAAsB,IAAI,EAAE;AAAA,EACxE;AACA,QAAM,WAAW,IAAI,IAAI,aAAa;AACtC,QAAM,uBAAuB;AAAA,IAC3B,UAAU,eAAe;AAAA,IACzB,cAAc,eAAe;AAAA,EAC/B;AACA,QAAM,yBAAyB;AAAA,IAC7B,iBAAiB,eAAe;AAAA,IAChC,sBAAsB,eAAe;AAAA,IACrC,oBAAoB,eAAe;AAAA,IACnC,cAAc,eAAe;AAAA,EAC/B;AACA,QAAM,UAAU;AAAA,IACd,EAAE,IAAI,oBAAoB,mBAAmB,QAAQ,oBAAoB,gBAAgB,QAAQ,uBAAuB;AAAA,IACxH,EAAE,IAAY,mBAAmB,QAAgB,gBAAgB,QAAQ,qBAAqB;AAAA,IAC9F,EAAE,IAAYC,oBAAmB,QAAgBC,iBAAgB,QAAQ,CAAC,EAAE;AAAA,EAC9E;AACA,QAAM,WAAW;AAAA,IACf,EAAE,IAAI,iBAAiB,QAAQ,aAAa;AAAA,IAC5C,EAAE,IAAI,oBAAoB,oBAAoB,QAAQ,oBAAoB,gBAAgB;AAAA,IAC1F,GAAI,CAAC,SAAS,IAAU,SAAS,IAAI,CAAC,EAAE,IAAU,oBAAoB,QAAc,gBAAgB,CAAC,IAAI,CAAC;AAAA,IAC1G,EAAE,IAAI,wBAAwB,QAAQ,oBAAoB;AAAA,IAC1D,GAAG,qBAAqB,OAAO,YAAU,WAAW,oBAAS,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,EACzF,IAAI,aAAW,EAAE,IAAI,OAAO,oBAAoB,QAAQ,OAAO,gBAAgB,EAAE;AAAA,EACtF;AACA,SAAO,OAAO,OAAO;AAAA,IACnB,SAAS,OAAO,OAAO,OAAO;AAAA,IAC9B,UAAU,OAAO,OAAO,QAAQ;AAAA,IAChC;AAAA,IACA,eAAe,OAAO,OAAO,CAAC,GAAG,QAAQ,CAAC;AAAA,EAC5C,CAAC;AACH;",
|
|
6
|
+
"names": ["identity_exports", "BACKEND_PLUGIN_ID", "BACKEND_MODULE"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// packages/viewer/src/host/slot-registry.mjs
|
|
2
|
+
var PANEL_DOCKS = /* @__PURE__ */ new Set(["fill", "top", "bottom", "left", "right"]);
|
|
3
|
+
var PANEL_STACKS = /* @__PURE__ */ new Set(["tabs", "split"]);
|
|
4
|
+
function normalizeLayout(layout) {
|
|
5
|
+
if (!layout || typeof layout !== "object" || Array.isArray(layout)) {
|
|
6
|
+
throw new TypeError("panel claim requires layout");
|
|
7
|
+
}
|
|
8
|
+
for (const field of Object.keys(layout)) {
|
|
9
|
+
if (!["dock", "size", "stack", "order"].includes(field)) {
|
|
10
|
+
throw new TypeError(`Unknown panel layout field: ${field}`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
if (!PANEL_DOCKS.has(layout.dock)) {
|
|
14
|
+
throw new TypeError("panel layout dock must be fill, top, bottom, left, or right");
|
|
15
|
+
}
|
|
16
|
+
if (!PANEL_STACKS.has(layout.stack)) {
|
|
17
|
+
throw new TypeError("panel layout stack must be tabs or split");
|
|
18
|
+
}
|
|
19
|
+
if (!Number.isFinite(layout.order)) throw new TypeError("panel layout requires numeric order");
|
|
20
|
+
let size;
|
|
21
|
+
if (layout.size !== void 0) {
|
|
22
|
+
if (!layout.size || typeof layout.size !== "object" || Array.isArray(layout.size)) {
|
|
23
|
+
throw new TypeError("panel layout size must be an object");
|
|
24
|
+
}
|
|
25
|
+
for (const field of Object.keys(layout.size)) {
|
|
26
|
+
if (!["value", "unit"].includes(field)) {
|
|
27
|
+
throw new TypeError(`Unknown panel layout size field: ${field}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (!Number.isFinite(layout.size.value) || layout.size.value <= 0) {
|
|
31
|
+
throw new TypeError("panel layout size value must be positive");
|
|
32
|
+
}
|
|
33
|
+
if (layout.size.unit !== "px" && layout.size.unit !== "fraction") {
|
|
34
|
+
throw new TypeError("panel layout size unit must be px or fraction");
|
|
35
|
+
}
|
|
36
|
+
if (layout.size.unit === "fraction" && layout.size.value > 1) {
|
|
37
|
+
throw new TypeError("panel layout fraction must not exceed 1");
|
|
38
|
+
}
|
|
39
|
+
size = Object.freeze({ value: layout.size.value, unit: layout.size.unit });
|
|
40
|
+
}
|
|
41
|
+
return Object.freeze({
|
|
42
|
+
dock: layout.dock,
|
|
43
|
+
...size === void 0 ? {} : { size },
|
|
44
|
+
stack: layout.stack,
|
|
45
|
+
order: layout.order
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function slotElementId(slot) {
|
|
49
|
+
return `forgeax-view-slot-${slot}`;
|
|
50
|
+
}
|
|
51
|
+
function createViewSlotRegistry(document = globalThis.document, { onChange } = {}) {
|
|
52
|
+
if (!document?.createElement) throw new TypeError("View slot registry requires a document");
|
|
53
|
+
const claims = /* @__PURE__ */ new Map();
|
|
54
|
+
const mountHosts = /* @__PURE__ */ new Map();
|
|
55
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
56
|
+
let snapshot = Object.freeze([]);
|
|
57
|
+
const notify = () => {
|
|
58
|
+
snapshot = Object.freeze(
|
|
59
|
+
[...claims.values()].sort((a, b) => {
|
|
60
|
+
const pageDelta = a.pageType.localeCompare(b.pageType);
|
|
61
|
+
return pageDelta || a.layout.order - b.layout.order || a.id.localeCompare(b.id);
|
|
62
|
+
})
|
|
63
|
+
);
|
|
64
|
+
for (const listener of listeners) listener(snapshot);
|
|
65
|
+
onChange?.(snapshot);
|
|
66
|
+
document.defaultView?.dispatchEvent?.(
|
|
67
|
+
new CustomEvent("forgeax-view-slot-layout", { detail: { claims: snapshot } })
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
const ensureMountHost = (id) => {
|
|
71
|
+
const claim = claims.get(id);
|
|
72
|
+
if (!claim) throw new Error(`View panel is not claimed: ${id}`);
|
|
73
|
+
let host = mountHosts.get(id);
|
|
74
|
+
if (!host) {
|
|
75
|
+
host = document.createElement("div");
|
|
76
|
+
host.className = "fx-view-slot-mount-host";
|
|
77
|
+
host.dataset.forgeaxViewMountHost = id;
|
|
78
|
+
mountHosts.set(id, host);
|
|
79
|
+
}
|
|
80
|
+
const anchor = document.getElementById(slotElementId(id));
|
|
81
|
+
if (anchor && host.parentNode !== anchor) anchor.replaceChildren(host);
|
|
82
|
+
return host;
|
|
83
|
+
};
|
|
84
|
+
const resolveWhenReady = (id) => Promise.resolve(ensureMountHost(id));
|
|
85
|
+
return Object.freeze({
|
|
86
|
+
subscribe(listener) {
|
|
87
|
+
listeners.add(listener);
|
|
88
|
+
listener(snapshot);
|
|
89
|
+
return () => listeners.delete(listener);
|
|
90
|
+
},
|
|
91
|
+
claim({ id, slot, pageType, titleKey, activity, layout, closable, dockTitleHidden } = {}) {
|
|
92
|
+
id ??= slot;
|
|
93
|
+
if (!id) throw new TypeError("panel claim requires id");
|
|
94
|
+
if (typeof pageType !== "string" || pageType.trim() === "") {
|
|
95
|
+
throw new TypeError("panel claim requires pageType");
|
|
96
|
+
}
|
|
97
|
+
if (closable !== void 0 && typeof closable !== "boolean") {
|
|
98
|
+
throw new TypeError("panel claim closable must be a boolean");
|
|
99
|
+
}
|
|
100
|
+
if (dockTitleHidden !== void 0 && typeof dockTitleHidden !== "boolean") {
|
|
101
|
+
throw new TypeError("panel claim dockTitleHidden must be a boolean");
|
|
102
|
+
}
|
|
103
|
+
const claim = Object.freeze({
|
|
104
|
+
id,
|
|
105
|
+
pageType,
|
|
106
|
+
titleKey,
|
|
107
|
+
...activity === void 0 ? {} : { activity: Object.freeze({ ...activity }) },
|
|
108
|
+
layout: normalizeLayout(layout),
|
|
109
|
+
...closable === void 0 ? {} : { closable },
|
|
110
|
+
...dockTitleHidden === void 0 ? {} : { dockTitleHidden }
|
|
111
|
+
});
|
|
112
|
+
claims.set(id, claim);
|
|
113
|
+
notify();
|
|
114
|
+
return () => {
|
|
115
|
+
if (claims.get(id) !== claim) return;
|
|
116
|
+
claims.delete(id);
|
|
117
|
+
mountHosts.get(id)?.replaceChildren?.();
|
|
118
|
+
mountHosts.delete(id);
|
|
119
|
+
notify();
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
getClaims: () => snapshot,
|
|
123
|
+
resolve: ensureMountHost,
|
|
124
|
+
resolveWhenReady,
|
|
125
|
+
mount(id, child) {
|
|
126
|
+
const parent = ensureMountHost(id);
|
|
127
|
+
parent.replaceChildren(child);
|
|
128
|
+
return () => {
|
|
129
|
+
if (parent.contains(child)) parent.replaceChildren();
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export {
|
|
136
|
+
createViewSlotRegistry
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=chunk-SR66S6EJ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/viewer/src/host/slot-registry.mjs"],
|
|
4
|
+
"sourcesContent": ["const PANEL_DOCKS = new Set(['fill', 'top', 'bottom', 'left', 'right']);\nconst PANEL_STACKS = new Set(['tabs', 'split']);\n\nfunction normalizeLayout(layout) {\n if (!layout || typeof layout !== 'object' || Array.isArray(layout)) {\n throw new TypeError('panel claim requires layout');\n }\n for (const field of Object.keys(layout)) {\n if (!['dock', 'size', 'stack', 'order'].includes(field)) {\n throw new TypeError(`Unknown panel layout field: ${field}`);\n }\n }\n if (!PANEL_DOCKS.has(layout.dock)) {\n throw new TypeError('panel layout dock must be fill, top, bottom, left, or right');\n }\n if (!PANEL_STACKS.has(layout.stack)) {\n throw new TypeError('panel layout stack must be tabs or split');\n }\n if (!Number.isFinite(layout.order)) throw new TypeError('panel layout requires numeric order');\n let size;\n if (layout.size !== undefined) {\n if (!layout.size || typeof layout.size !== 'object' || Array.isArray(layout.size)) {\n throw new TypeError('panel layout size must be an object');\n }\n for (const field of Object.keys(layout.size)) {\n if (!['value', 'unit'].includes(field)) {\n throw new TypeError(`Unknown panel layout size field: ${field}`);\n }\n }\n if (!Number.isFinite(layout.size.value) || layout.size.value <= 0) {\n throw new TypeError('panel layout size value must be positive');\n }\n if (layout.size.unit !== 'px' && layout.size.unit !== 'fraction') {\n throw new TypeError('panel layout size unit must be px or fraction');\n }\n if (layout.size.unit === 'fraction' && layout.size.value > 1) {\n throw new TypeError('panel layout fraction must not exceed 1');\n }\n size = Object.freeze({ value: layout.size.value, unit: layout.size.unit });\n }\n return Object.freeze({\n dock: layout.dock,\n ...(size === undefined ? {} : { size }),\n stack: layout.stack,\n order: layout.order,\n });\n}\n\nfunction slotElementId(slot) {\n return `forgeax-view-slot-${slot}`;\n}\n\nexport function createViewSlotRegistry(document = globalThis.document, { onChange } = {}) {\n if (!document?.createElement) throw new TypeError('View slot registry requires a document');\n const claims = new Map();\n const mountHosts = new Map();\n const listeners = new Set();\n let snapshot = Object.freeze([]);\n const notify = () => {\n snapshot = Object.freeze(\n [...claims.values()].sort((a, b) => {\n const pageDelta = a.pageType.localeCompare(b.pageType);\n return pageDelta || a.layout.order - b.layout.order || a.id.localeCompare(b.id);\n }),\n );\n for (const listener of listeners) listener(snapshot);\n onChange?.(snapshot);\n document.defaultView?.dispatchEvent?.(\n new CustomEvent('forgeax-view-slot-layout', { detail: { claims: snapshot } }),\n );\n };\n const ensureMountHost = (id) => {\n const claim = claims.get(id);\n if (!claim) throw new Error(`View panel is not claimed: ${id}`);\n let host = mountHosts.get(id);\n if (!host) {\n host = document.createElement('div');\n host.className = 'fx-view-slot-mount-host';\n host.dataset.forgeaxViewMountHost = id;\n mountHosts.set(id, host);\n }\n const anchor = document.getElementById(slotElementId(id));\n if (anchor && host.parentNode !== anchor) anchor.replaceChildren(host);\n return host;\n };\n const resolveWhenReady = (id) => Promise.resolve(ensureMountHost(id));\n return Object.freeze({\n subscribe(listener) {\n listeners.add(listener);\n listener(snapshot);\n return () => listeners.delete(listener);\n },\n claim({ id, slot, pageType, titleKey, activity, layout, closable, dockTitleHidden } = {}) {\n id ??= slot;\n if (!id) throw new TypeError('panel claim requires id');\n if (typeof pageType !== 'string' || pageType.trim() === '') {\n throw new TypeError('panel claim requires pageType');\n }\n if (closable !== undefined && typeof closable !== 'boolean') {\n throw new TypeError('panel claim closable must be a boolean');\n }\n if (dockTitleHidden !== undefined && typeof dockTitleHidden !== 'boolean') {\n throw new TypeError('panel claim dockTitleHidden must be a boolean');\n }\n const claim = Object.freeze({\n id,\n pageType,\n titleKey,\n ...(activity === undefined ? {} : { activity: Object.freeze({ ...activity }) }),\n layout: normalizeLayout(layout),\n ...(closable === undefined ? {} : { closable }),\n ...(dockTitleHidden === undefined ? {} : { dockTitleHidden }),\n });\n claims.set(id, claim);\n notify();\n return () => {\n if (claims.get(id) !== claim) return;\n claims.delete(id);\n mountHosts.get(id)?.replaceChildren?.();\n mountHosts.delete(id);\n notify();\n };\n },\n getClaims: () => snapshot,\n resolve: ensureMountHost,\n resolveWhenReady,\n mount(id, child) {\n const parent = ensureMountHost(id);\n parent.replaceChildren(child);\n return () => {\n if (parent.contains(child)) parent.replaceChildren();\n };\n },\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// packages/view-workspace-core/src/engine-presentation.mjs
|
|
2
|
+
function readEnginePresentation(config = {}, ctx) {
|
|
3
|
+
return config.presentation ?? config.targetPresentation ?? (ctx?.get?.("engineWorkspacePresentation", false) || void 0);
|
|
4
|
+
}
|
|
5
|
+
function liveEnginePresentation(ctx, config = {}) {
|
|
6
|
+
const read = () => readEnginePresentation(config, ctx);
|
|
7
|
+
return {
|
|
8
|
+
get surfacePlacement() {
|
|
9
|
+
return read()?.surfacePlacement;
|
|
10
|
+
},
|
|
11
|
+
createSurface(input) {
|
|
12
|
+
return read()?.createSurface?.(input);
|
|
13
|
+
},
|
|
14
|
+
attach(input) {
|
|
15
|
+
return read()?.attach?.(input);
|
|
16
|
+
},
|
|
17
|
+
detach(input) {
|
|
18
|
+
return read()?.detach?.(input);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
readEnginePresentation,
|
|
25
|
+
liveEnginePresentation
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-SSQMQJ52.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-workspace-core/src/engine-presentation.mjs"],
|
|
4
|
+
"sourcesContent": ["export function readEnginePresentation(config = {}, ctx) {\n return config.presentation\n ?? config.targetPresentation\n ?? (ctx?.get?.('engineWorkspacePresentation', false) || undefined);\n}\n\n/** Resolve Engine presentation at call time so either side can appear first. */\nexport function liveEnginePresentation(ctx, config = {}) {\n const read = () => readEnginePresentation(config, ctx);\n return {\n get surfacePlacement() {\n return read()?.surfacePlacement;\n },\n createSurface(input) {\n return read()?.createSurface?.(input);\n },\n attach(input) {\n return read()?.attach?.(input);\n },\n detach(input) {\n return read()?.detach?.(input);\n },\n };\n}\n"],
|
|
5
|
+
"mappings": ";AAAO,SAAS,uBAAuB,SAAS,CAAC,GAAG,KAAK;AACvD,SAAO,OAAO,gBACT,OAAO,uBACN,KAAK,MAAM,+BAA+B,KAAK,KAAK;AAC5D;AAGO,SAAS,uBAAuB,KAAK,SAAS,CAAC,GAAG;AACvD,QAAM,OAAO,MAAM,uBAAuB,QAAQ,GAAG;AACrD,SAAO;AAAA,IACL,IAAI,mBAAmB;AACrB,aAAO,KAAK,GAAG;AAAA,IACjB;AAAA,IACA,cAAc,OAAO;AACnB,aAAO,KAAK,GAAG,gBAAgB,KAAK;AAAA,IACtC;AAAA,IACA,OAAO,OAAO;AACZ,aAAO,KAAK,GAAG,SAAS,KAAK;AAAA,IAC/B;AAAA,IACA,OAAO,OAAO;AACZ,aAAO,KAAK,GAAG,SAAS,KAAK;AAAA,IAC/B;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// packages/view-workspace-core/src/id.mjs
|
|
2
|
+
var sequence = 0;
|
|
3
|
+
function createWorkspaceId(prefix = "workspace") {
|
|
4
|
+
const crypto = globalThis.crypto;
|
|
5
|
+
if (typeof crypto?.randomUUID === "function") {
|
|
6
|
+
return `${prefix}:${crypto.randomUUID()}`;
|
|
7
|
+
}
|
|
8
|
+
if (typeof crypto?.getRandomValues === "function") {
|
|
9
|
+
const values = new Uint32Array(4);
|
|
10
|
+
crypto.getRandomValues(values);
|
|
11
|
+
return `${prefix}:${Array.from(values, (value) => value.toString(16).padStart(8, "0")).join("")}`;
|
|
12
|
+
}
|
|
13
|
+
sequence = sequence + 1 >>> 0;
|
|
14
|
+
return `${prefix}:${Date.now().toString(36)}-${sequence.toString(36)}-${Math.random().toString(36).slice(2)}`;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export {
|
|
18
|
+
createWorkspaceId
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-TP26TASL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-workspace-core/src/id.mjs"],
|
|
4
|
+
"sourcesContent": ["let sequence = 0;\n\n/**\n * Generate an identifier in both browser and Node consumers. The workspace\n * contract is imported by the frontend bundle, so it must not depend on a\n * Node-only module. `crypto.randomUUID` remains the preferred source while\n * the other branches keep tests and older browser targets deterministic in\n * shape without introducing another runtime.\n */\nexport function createWorkspaceId(prefix = 'workspace') {\n const crypto = globalThis.crypto;\n if (typeof crypto?.randomUUID === 'function') {\n return `${prefix}:${crypto.randomUUID()}`;\n }\n if (typeof crypto?.getRandomValues === 'function') {\n const values = new Uint32Array(4);\n crypto.getRandomValues(values);\n return `${prefix}:${Array.from(values, (value) => value.toString(16).padStart(8, '0')).join('')}`;\n }\n sequence = (sequence + 1) >>> 0;\n return `${prefix}:${Date.now().toString(36)}-${sequence.toString(36)}-${Math.random()\n .toString(36)\n .slice(2)}`;\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,IAAI,WAAW;AASR,SAAS,kBAAkB,SAAS,aAAa;AACtD,QAAM,SAAS,WAAW;AAC1B,MAAI,OAAO,QAAQ,eAAe,YAAY;AAC5C,WAAO,GAAG,MAAM,IAAI,OAAO,WAAW,CAAC;AAAA,EACzC;AACA,MAAI,OAAO,QAAQ,oBAAoB,YAAY;AACjD,UAAM,SAAS,IAAI,YAAY,CAAC;AAChC,WAAO,gBAAgB,MAAM;AAC7B,WAAO,GAAG,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA,EACjG;AACA,aAAY,WAAW,MAAO;AAC9B,SAAO,GAAG,MAAM,IAAI,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC,IAAI,KAAK,OAAO,EACjF,SAAS,EAAE,EACX,MAAM,CAAC,CAAC;AACb;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
VIEW_PAGE_TYPES
|
|
3
|
+
} from "./chunk-32GD5LL6.mjs";
|
|
4
|
+
import {
|
|
5
|
+
__export
|
|
6
|
+
} from "./chunk-FLGC65SR.mjs";
|
|
7
|
+
|
|
8
|
+
// packages/view-plugin-viewport/src/identity.mjs
|
|
9
|
+
var identity_exports = {};
|
|
10
|
+
__export(identity_exports, {
|
|
11
|
+
FRONTEND_MODULE: () => FRONTEND_MODULE,
|
|
12
|
+
FRONTEND_PLUGIN_ID: () => FRONTEND_PLUGIN_ID,
|
|
13
|
+
PAGE_TYPE: () => PAGE_TYPE,
|
|
14
|
+
PANEL_CLOSABLE: () => PANEL_CLOSABLE,
|
|
15
|
+
PANEL_LAYOUT: () => PANEL_LAYOUT,
|
|
16
|
+
PLUGIN_ID: () => PLUGIN_ID,
|
|
17
|
+
SLOT: () => SLOT,
|
|
18
|
+
TITLE_I18N_KEY: () => TITLE_I18N_KEY,
|
|
19
|
+
VIEWPORT_SURFACE_ID: () => VIEWPORT_SURFACE_ID,
|
|
20
|
+
VIEWPORT_TARGET_ROLE: () => VIEWPORT_TARGET_ROLE
|
|
21
|
+
});
|
|
22
|
+
var PLUGIN_ID = "forgeax.view.viewport";
|
|
23
|
+
var FRONTEND_PLUGIN_ID = "forgeax.view.panel.scene-viewport.frontend";
|
|
24
|
+
var FRONTEND_MODULE = "@forgeax/view/plugins/viewport/frontend";
|
|
25
|
+
var SLOT = "viewport";
|
|
26
|
+
var PAGE_TYPE = VIEW_PAGE_TYPES.editor;
|
|
27
|
+
var PANEL_LAYOUT = Object.freeze({
|
|
28
|
+
dock: "fill",
|
|
29
|
+
stack: "tabs",
|
|
30
|
+
order: 0
|
|
31
|
+
});
|
|
32
|
+
var PANEL_CLOSABLE = false;
|
|
33
|
+
var TITLE_I18N_KEY = "view.slots.viewport";
|
|
34
|
+
var VIEWPORT_SURFACE_ID = "forgeax-view-viewport-surface";
|
|
35
|
+
var VIEWPORT_TARGET_ROLE = "human-readonly";
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
PLUGIN_ID,
|
|
39
|
+
FRONTEND_PLUGIN_ID,
|
|
40
|
+
FRONTEND_MODULE,
|
|
41
|
+
SLOT,
|
|
42
|
+
PAGE_TYPE,
|
|
43
|
+
PANEL_LAYOUT,
|
|
44
|
+
PANEL_CLOSABLE,
|
|
45
|
+
TITLE_I18N_KEY,
|
|
46
|
+
VIEWPORT_SURFACE_ID,
|
|
47
|
+
VIEWPORT_TARGET_ROLE,
|
|
48
|
+
identity_exports
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=chunk-TSAEK5P3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-viewport/src/identity.mjs"],
|
|
4
|
+
"sourcesContent": ["import { VIEW_PAGE_TYPES } from '@forgeax/view-workspace-core/contract';\n\nexport const PLUGIN_ID = 'forgeax.view.viewport';\nexport const FRONTEND_PLUGIN_ID = 'forgeax.view.panel.scene-viewport.frontend';\nexport const FRONTEND_MODULE = '@forgeax/view/plugins/viewport/frontend';\nexport const SLOT = 'viewport';\nexport const PAGE_TYPE = VIEW_PAGE_TYPES.editor;\nexport const PANEL_LAYOUT = Object.freeze({\n dock: 'fill',\n stack: 'tabs',\n order: 0,\n});\n/** Editor page center viewport is pinned; the shell must not offer a close affordance. */\nexport const PANEL_CLOSABLE = false;\nexport const TITLE_I18N_KEY = 'view.slots.viewport';\nexport const VIEWPORT_SURFACE_ID = 'forgeax-view-viewport-surface';\nexport const VIEWPORT_TARGET_ROLE = 'human-readonly';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,IAAM,YAAY;AAClB,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AACxB,IAAM,OAAO;AACb,IAAM,YAAY,gBAAgB;AAClC,IAAM,eAAe,OAAO,OAAO;AAAA,EACxC,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AACT,CAAC;AAEM,IAAM,iBAAiB;AACvB,IAAM,iBAAiB;AACvB,IAAM,sBAAsB;AAC5B,IAAM,uBAAuB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FRONTEND_MODULE,
|
|
3
|
+
FRONTEND_PLUGIN_ID,
|
|
4
|
+
PAGE_TYPE,
|
|
5
|
+
PANEL_LAYOUT,
|
|
6
|
+
SLOT,
|
|
7
|
+
TITLE_I18N_KEY
|
|
8
|
+
} from "./chunk-7URFF53W.mjs";
|
|
9
|
+
|
|
10
|
+
// packages/view-plugin-content-browser/src/frontend.mjs
|
|
11
|
+
var VIEW_CONTENT_BROWSER_FRONTEND_PLUGIN_ID = FRONTEND_PLUGIN_ID;
|
|
12
|
+
var VIEW_CONTENT_BROWSER_FRONTEND_MODULE = FRONTEND_MODULE;
|
|
13
|
+
var viewContentBrowserFrontendPlugin = {
|
|
14
|
+
name: VIEW_CONTENT_BROWSER_FRONTEND_PLUGIN_ID,
|
|
15
|
+
inject: ["viewOperationClient", "viewScenePage"],
|
|
16
|
+
async apply(ctx, config = {}) {
|
|
17
|
+
const document = config.document ?? globalThis.document;
|
|
18
|
+
const workspaceClient = ctx.get("viewOperationClient");
|
|
19
|
+
const panelHost = config.panelHost ?? ctx.get("panelHost");
|
|
20
|
+
if (!document?.createElement) return;
|
|
21
|
+
if (!panelHost || typeof panelHost.claim !== "function") {
|
|
22
|
+
throw new TypeError("View content-browser Frontend Plugin requires panelHost");
|
|
23
|
+
}
|
|
24
|
+
const wrapper = document.createElement("div");
|
|
25
|
+
wrapper.className = "fx-view-content-browser-host";
|
|
26
|
+
wrapper.dataset.forgeaxView = "content-browser-root";
|
|
27
|
+
const reactMount = document.createElement("div");
|
|
28
|
+
reactMount.className = "fx-view-content-browser-ui";
|
|
29
|
+
wrapper.append(reactMount);
|
|
30
|
+
const unclaim = panelHost.claim({
|
|
31
|
+
id: SLOT,
|
|
32
|
+
pageType: PAGE_TYPE,
|
|
33
|
+
titleKey: TITLE_I18N_KEY,
|
|
34
|
+
activity: { labelKey: TITLE_I18N_KEY, icon: "boxes" },
|
|
35
|
+
layout: PANEL_LAYOUT
|
|
36
|
+
});
|
|
37
|
+
let unmountSlot;
|
|
38
|
+
let disposePanel;
|
|
39
|
+
try {
|
|
40
|
+
await panelHost.waitForSlot(SLOT);
|
|
41
|
+
unmountSlot = panelHost.mount(SLOT, wrapper);
|
|
42
|
+
disposePanel = await panelHost.mountPanelInto({
|
|
43
|
+
element: reactMount,
|
|
44
|
+
panel: "ContentBrowser",
|
|
45
|
+
props: { client: workspaceClient }
|
|
46
|
+
});
|
|
47
|
+
} catch (error) {
|
|
48
|
+
await disposePanel?.();
|
|
49
|
+
unmountSlot?.();
|
|
50
|
+
unclaim();
|
|
51
|
+
throw error;
|
|
52
|
+
}
|
|
53
|
+
ctx.effect(() => async () => {
|
|
54
|
+
await disposePanel?.();
|
|
55
|
+
unmountSlot?.();
|
|
56
|
+
unclaim();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
var frontend_default = viewContentBrowserFrontendPlugin;
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
VIEW_CONTENT_BROWSER_FRONTEND_PLUGIN_ID,
|
|
64
|
+
VIEW_CONTENT_BROWSER_FRONTEND_MODULE,
|
|
65
|
+
viewContentBrowserFrontendPlugin,
|
|
66
|
+
frontend_default
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=chunk-UAY27HT3.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-content-browser/src/frontend.mjs"],
|
|
4
|
+
"sourcesContent": ["import { FRONTEND_PLUGIN_ID, FRONTEND_MODULE, PAGE_TYPE, PANEL_LAYOUT, SLOT, TITLE_I18N_KEY } from './identity.mjs';\n\nexport const VIEW_CONTENT_BROWSER_FRONTEND_PLUGIN_ID = FRONTEND_PLUGIN_ID;\nexport const VIEW_CONTENT_BROWSER_FRONTEND_MODULE = FRONTEND_MODULE;\n\nconst viewContentBrowserFrontendPlugin = {\n name: VIEW_CONTENT_BROWSER_FRONTEND_PLUGIN_ID,\n inject: ['viewOperationClient', 'viewScenePage'],\n async apply(ctx, config = {}) {\n const document = config.document ?? globalThis.document;\n const workspaceClient = ctx.get('viewOperationClient');\n const panelHost = config.panelHost ?? ctx.get('panelHost');\n if (!document?.createElement) return;\n if (!panelHost || typeof panelHost.claim !== 'function') {\n throw new TypeError('View content-browser Frontend Plugin requires panelHost');\n }\n const wrapper = document.createElement('div');\n wrapper.className = 'fx-view-content-browser-host';\n wrapper.dataset.forgeaxView = 'content-browser-root';\n const reactMount = document.createElement('div');\n reactMount.className = 'fx-view-content-browser-ui';\n wrapper.append(reactMount);\n const unclaim = panelHost.claim({\n id: SLOT,\n pageType: PAGE_TYPE,\n titleKey: TITLE_I18N_KEY,\n activity: { labelKey: TITLE_I18N_KEY, icon: 'boxes' },\n layout: PANEL_LAYOUT,\n });\n let unmountSlot;\n let disposePanel;\n try {\n await panelHost.waitForSlot(SLOT);\n unmountSlot = panelHost.mount(SLOT, wrapper);\n disposePanel = await panelHost.mountPanelInto({\n element: reactMount,\n panel: 'ContentBrowser',\n props: { client: workspaceClient },\n });\n } catch (error) {\n await disposePanel?.();\n unmountSlot?.();\n unclaim();\n throw error;\n }\n ctx.effect(() => async () => {\n await disposePanel?.();\n unmountSlot?.();\n unclaim();\n });\n },\n};\n\nexport { viewContentBrowserFrontendPlugin };\nexport default viewContentBrowserFrontendPlugin;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;AAEO,IAAM,0CAA0C;AAChD,IAAM,uCAAuC;AAEpD,IAAM,mCAAmC;AAAA,EACvC,MAAM;AAAA,EACN,QAAQ,CAAC,uBAAuB,eAAe;AAAA,EAC/C,MAAM,MAAM,KAAK,SAAS,CAAC,GAAG;AAC5B,UAAM,WAAW,OAAO,YAAY,WAAW;AAC/C,UAAM,kBAAkB,IAAI,IAAI,qBAAqB;AACrD,UAAM,YAAY,OAAO,aAAa,IAAI,IAAI,WAAW;AACzD,QAAI,CAAC,UAAU,cAAe;AAC9B,QAAI,CAAC,aAAa,OAAO,UAAU,UAAU,YAAY;AACvD,YAAM,IAAI,UAAU,yDAAyD;AAAA,IAC/E;AACA,UAAM,UAAU,SAAS,cAAc,KAAK;AAC5C,YAAQ,YAAY;AACpB,YAAQ,QAAQ,cAAc;AAC9B,UAAM,aAAa,SAAS,cAAc,KAAK;AAC/C,eAAW,YAAY;AACvB,YAAQ,OAAO,UAAU;AACzB,UAAM,UAAU,UAAU,MAAM;AAAA,MAC9B,IAAI;AAAA,MACJ,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU,EAAE,UAAU,gBAAgB,MAAM,QAAQ;AAAA,MACpD,QAAQ;AAAA,IACV,CAAC;AACD,QAAI;AACJ,QAAI;AACJ,QAAI;AACF,YAAM,UAAU,YAAY,IAAI;AAChC,oBAAc,UAAU,MAAM,MAAM,OAAO;AAC3C,qBAAe,MAAM,UAAU,eAAe;AAAA,QAC5C,SAAS;AAAA,QACT,OAAO;AAAA,QACP,OAAO,EAAE,QAAQ,gBAAgB;AAAA,MACnC,CAAC;AAAA,IACH,SAAS,OAAO;AACd,YAAM,eAAe;AACrB,oBAAc;AACd,cAAQ;AACR,YAAM;AAAA,IACR;AACA,QAAI,OAAO,MAAM,YAAY;AAC3B,YAAM,eAAe;AACrB,oBAAc;AACd,cAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACF;AAGA,IAAO,mBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createViewWorkspaceClient,
|
|
3
|
+
workspaceBrowserEndpoint
|
|
4
|
+
} from "./chunk-VY3S5BWI.mjs";
|
|
5
|
+
import {
|
|
6
|
+
createProjectSession
|
|
7
|
+
} from "./chunk-FMCACPX5.mjs";
|
|
8
|
+
import {
|
|
9
|
+
logResourceOpen,
|
|
10
|
+
observeWorkspaceOpenRequests
|
|
11
|
+
} from "./chunk-FKCQYDLX.mjs";
|
|
12
|
+
import {
|
|
13
|
+
initViewTraceFromEnvironment,
|
|
14
|
+
wrapViewWorkspaceClient
|
|
15
|
+
} from "./chunk-2IJKOG2F.mjs";
|
|
16
|
+
|
|
17
|
+
// packages/view-workspace-core/src/frontend-plugin.mjs
|
|
18
|
+
import { createHostWebSocketClient } from "@forgeax/engine-host/transport";
|
|
19
|
+
var viewWorkspaceCoreFrontendPlugin = {
|
|
20
|
+
name: "forgeax.view.service.workspace-client.frontend",
|
|
21
|
+
provide: ["viewOperationClient"],
|
|
22
|
+
async apply(ctx, config = {}) {
|
|
23
|
+
ctx.effect(initViewTraceFromEnvironment);
|
|
24
|
+
const lifetime = new AbortController();
|
|
25
|
+
ctx.on("internal/plugin", (fiber) => {
|
|
26
|
+
if (fiber === ctx.fiber && fiber.uid === null) lifetime.abort();
|
|
27
|
+
});
|
|
28
|
+
ctx.effect(() => () => lifetime.abort());
|
|
29
|
+
const pageHost = config.pageHost ?? ctx.get?.("pageHost", false);
|
|
30
|
+
const workspace = config.workspace;
|
|
31
|
+
const window = config.window ?? globalThis;
|
|
32
|
+
let transport = ctx.get?.("hostTransport", false);
|
|
33
|
+
if (workspace?.endpoint) {
|
|
34
|
+
const url = workspaceBrowserEndpoint(workspace.endpoint, workspace.token, window.location?.href, "frontend", workspace.frontendTicket);
|
|
35
|
+
let socket;
|
|
36
|
+
let ownedTransport;
|
|
37
|
+
let disposed = false;
|
|
38
|
+
ctx.effect(() => {
|
|
39
|
+
socket = new window.WebSocket(url);
|
|
40
|
+
const close = () => {
|
|
41
|
+
disposed = true;
|
|
42
|
+
if (ownedTransport) ownedTransport.close("View workspace client disposed");
|
|
43
|
+
else socket.close(1e3, "View workspace client disposed");
|
|
44
|
+
};
|
|
45
|
+
lifetime.signal.addEventListener("abort", close, { once: true });
|
|
46
|
+
return () => {
|
|
47
|
+
lifetime.signal.removeEventListener("abort", close);
|
|
48
|
+
close();
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
try {
|
|
52
|
+
ownedTransport = await createHostWebSocketClient(socket);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
if (lifetime.signal.aborted) return;
|
|
55
|
+
throw error;
|
|
56
|
+
}
|
|
57
|
+
if (disposed) {
|
|
58
|
+
ownedTransport.close("View workspace client disposed");
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
transport = ownedTransport;
|
|
62
|
+
}
|
|
63
|
+
const rawClient = transport && workspace?.clientId && workspace?.token ? createViewWorkspaceClient({
|
|
64
|
+
transport,
|
|
65
|
+
clientId: workspace.clientId,
|
|
66
|
+
token: workspace.token
|
|
67
|
+
}) : void 0;
|
|
68
|
+
const client = wrapViewWorkspaceClient(rawClient);
|
|
69
|
+
if (lifetime.signal.aborted) return;
|
|
70
|
+
if (rawClient && (config.window ?? globalThis).location) {
|
|
71
|
+
const session = createProjectSession(rawClient, { window: config.window ?? globalThis });
|
|
72
|
+
rawClient.projectSession = session;
|
|
73
|
+
const dispose = () => session.dispose();
|
|
74
|
+
lifetime.signal.addEventListener("abort", dispose, { once: true });
|
|
75
|
+
ctx.effect(() => () => {
|
|
76
|
+
lifetime.signal.removeEventListener("abort", dispose);
|
|
77
|
+
dispose();
|
|
78
|
+
});
|
|
79
|
+
if (new URL(window.location.href).searchParams.has("forgeaxWorkspaceTarget"))
|
|
80
|
+
await session.ready;
|
|
81
|
+
}
|
|
82
|
+
if (lifetime.signal.aborted) return;
|
|
83
|
+
ctx.provide("viewOperationClient", client);
|
|
84
|
+
if (pageHost?.openResource && client) {
|
|
85
|
+
logResourceOpen("open-request-observer-wired", {});
|
|
86
|
+
const stop = observeWorkspaceOpenRequests(client, (request) => pageHost.openResource(request));
|
|
87
|
+
ctx.effect(() => stop);
|
|
88
|
+
} else {
|
|
89
|
+
logResourceOpen("open-request-observer-skipped", {
|
|
90
|
+
hasPageHost: Boolean(pageHost),
|
|
91
|
+
hasOpenResource: Boolean(pageHost?.openResource),
|
|
92
|
+
hasClient: Boolean(client)
|
|
93
|
+
}, { level: "warn" });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
var frontend_plugin_default = viewWorkspaceCoreFrontendPlugin;
|
|
98
|
+
|
|
99
|
+
export {
|
|
100
|
+
viewWorkspaceCoreFrontendPlugin,
|
|
101
|
+
frontend_plugin_default
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=chunk-UDLIWGWS.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-workspace-core/src/frontend-plugin.mjs"],
|
|
4
|
+
"sourcesContent": ["import { createHostWebSocketClient } from '@forgeax/engine-host/transport';\nimport { createViewWorkspaceClient, workspaceBrowserEndpoint } from './client.mjs';\nimport { createProjectSession } from './project-session.mjs';\nimport { logResourceOpen, observeWorkspaceOpenRequests } from './resource-open.mjs';\nimport { initViewTraceFromEnvironment, wrapViewWorkspaceClient } from './view-trace.mjs';\n\nexport const viewWorkspaceCoreFrontendPlugin = {\n name: 'forgeax.view.service.workspace-client.frontend',\n provide: ['viewOperationClient'],\n async apply(ctx, config = {}) {\n ctx.effect(initViewTraceFromEnvironment);\n const lifetime = new AbortController();\n // Cordis emits removal before waiting for an asynchronous apply to settle.\n // Cancel pending I/O then, so ordinary effect cleanup can finish.\n ctx.on('internal/plugin', fiber => {\n if (fiber === ctx.fiber && fiber.uid === null) lifetime.abort();\n });\n ctx.effect(() => () => lifetime.abort());\n const pageHost = config.pageHost ?? ctx.get?.('pageHost', false);\n const workspace = config.workspace;\n const window = config.window ?? globalThis;\n let transport = ctx.get?.('hostTransport', false);\n if (workspace?.endpoint) {\n const url = workspaceBrowserEndpoint(workspace.endpoint, workspace.token, window.location?.href, 'frontend', workspace.frontendTicket);\n let socket;\n let ownedTransport;\n let disposed = false;\n ctx.effect(() => {\n socket = new window.WebSocket(url);\n const close = () => {\n disposed = true;\n if (ownedTransport) ownedTransport.close('View workspace client disposed');\n else socket.close(1000, 'View workspace client disposed');\n };\n lifetime.signal.addEventListener('abort', close, { once: true });\n return () => { lifetime.signal.removeEventListener('abort', close); close(); };\n });\n try { ownedTransport = await createHostWebSocketClient(socket); }\n catch (error) { if (lifetime.signal.aborted) return; throw error; }\n if (disposed) { ownedTransport.close('View workspace client disposed'); return; }\n transport = ownedTransport;\n }\n const rawClient =\n transport && workspace?.clientId && workspace?.token\n ? createViewWorkspaceClient({\n transport,\n clientId: workspace.clientId,\n token: workspace.token,\n })\n : undefined;\n const client = wrapViewWorkspaceClient(rawClient);\n if (lifetime.signal.aborted) return;\n if (rawClient && (config.window ?? globalThis).location) {\n const session = createProjectSession(rawClient, { window: config.window ?? globalThis });\n rawClient.projectSession = session;\n const dispose = () => session.dispose();\n lifetime.signal.addEventListener('abort', dispose, { once: true });\n ctx.effect(() => () => { lifetime.signal.removeEventListener('abort', dispose); dispose(); });\n // A headed document must finish exact-target recovery before its\n // plugins can construct an App. The View entry has no Engine workspace\n // surface, so let its Shell activate while a cold project opens.\n if (new URL(window.location.href).searchParams.has('forgeaxWorkspaceTarget'))\n await session.ready;\n }\n if (lifetime.signal.aborted) return;\n ctx.provide('viewOperationClient', client);\n if (pageHost?.openResource && client) {\n logResourceOpen('open-request-observer-wired', {});\n const stop = observeWorkspaceOpenRequests(client, (request) => pageHost.openResource(request));\n ctx.effect(() => stop);\n } else {\n logResourceOpen('open-request-observer-skipped', {\n hasPageHost: Boolean(pageHost),\n hasOpenResource: Boolean(pageHost?.openResource),\n hasClient: Boolean(client),\n }, { level: 'warn' });\n }\n },\n};\n\nexport default viewWorkspaceCoreFrontendPlugin;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,iCAAiC;AAMnC,IAAM,kCAAkC;AAAA,EAC7C,MAAM;AAAA,EACN,SAAS,CAAC,qBAAqB;AAAA,EAC/B,MAAM,MAAM,KAAK,SAAS,CAAC,GAAG;AAC5B,QAAI,OAAO,4BAA4B;AACvC,UAAM,WAAW,IAAI,gBAAgB;AAGrC,QAAI,GAAG,mBAAmB,WAAS;AACjC,UAAI,UAAU,IAAI,SAAS,MAAM,QAAQ,KAAM,UAAS,MAAM;AAAA,IAChE,CAAC;AACD,QAAI,OAAO,MAAM,MAAM,SAAS,MAAM,CAAC;AACvC,UAAM,WAAW,OAAO,YAAY,IAAI,MAAM,YAAY,KAAK;AAC/D,UAAM,YAAY,OAAO;AACzB,UAAM,SAAS,OAAO,UAAU;AAChC,QAAI,YAAY,IAAI,MAAM,iBAAiB,KAAK;AAChD,QAAI,WAAW,UAAU;AACvB,YAAM,MAAM,yBAAyB,UAAU,UAAU,UAAU,OAAO,OAAO,UAAU,MAAM,YAAY,UAAU,cAAc;AACrI,UAAI;AACJ,UAAI;AACJ,UAAI,WAAW;AACf,UAAI,OAAO,MAAM;AACf,iBAAS,IAAI,OAAO,UAAU,GAAG;AACjC,cAAM,QAAQ,MAAM;AAClB,qBAAW;AACX,cAAI,eAAgB,gBAAe,MAAM,gCAAgC;AAAA,cACpE,QAAO,MAAM,KAAM,gCAAgC;AAAA,QAC1D;AACA,iBAAS,OAAO,iBAAiB,SAAS,OAAO,EAAE,MAAM,KAAK,CAAC;AAC/D,eAAO,MAAM;AAAE,mBAAS,OAAO,oBAAoB,SAAS,KAAK;AAAG,gBAAM;AAAA,QAAG;AAAA,MAC/E,CAAC;AACD,UAAI;AAAE,yBAAiB,MAAM,0BAA0B,MAAM;AAAA,MAAG,SACzD,OAAO;AAAE,YAAI,SAAS,OAAO,QAAS;AAAQ,cAAM;AAAA,MAAO;AAClE,UAAI,UAAU;AAAE,uBAAe,MAAM,gCAAgC;AAAG;AAAA,MAAQ;AAChF,kBAAY;AAAA,IACd;AACA,UAAM,YACJ,aAAa,WAAW,YAAY,WAAW,QAC3C,0BAA0B;AAAA,MACxB;AAAA,MACA,UAAU,UAAU;AAAA,MACpB,OAAO,UAAU;AAAA,IACnB,CAAC,IACD;AACN,UAAM,SAAS,wBAAwB,SAAS;AAChD,QAAI,SAAS,OAAO,QAAS;AAC7B,QAAI,cAAc,OAAO,UAAU,YAAY,UAAU;AACvD,YAAM,UAAU,qBAAqB,WAAW,EAAE,QAAQ,OAAO,UAAU,WAAW,CAAC;AACvF,gBAAU,iBAAiB;AAC3B,YAAM,UAAU,MAAM,QAAQ,QAAQ;AACtC,eAAS,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACjE,UAAI,OAAO,MAAM,MAAM;AAAE,iBAAS,OAAO,oBAAoB,SAAS,OAAO;AAAG,gBAAQ;AAAA,MAAG,CAAC;AAI5F,UAAI,IAAI,IAAI,OAAO,SAAS,IAAI,EAAE,aAAa,IAAI,wBAAwB;AACzE,cAAM,QAAQ;AAAA,IAClB;AACA,QAAI,SAAS,OAAO,QAAS;AAC7B,QAAI,QAAQ,uBAAuB,MAAM;AACzC,QAAI,UAAU,gBAAgB,QAAQ;AACpC,sBAAgB,+BAA+B,CAAC,CAAC;AACjD,YAAM,OAAO,6BAA6B,QAAQ,CAAC,YAAY,SAAS,aAAa,OAAO,CAAC;AAC7F,UAAI,OAAO,MAAM,IAAI;AAAA,IACvB,OAAO;AACL,sBAAgB,iCAAiC;AAAA,QAC/C,aAAa,QAAQ,QAAQ;AAAA,QAC7B,iBAAiB,QAAQ,UAAU,YAAY;AAAA,QAC/C,WAAW,QAAQ,MAAM;AAAA,MAC3B,GAAG,EAAE,OAAO,OAAO,CAAC;AAAA,IACtB;AAAA,EACF;AACF;AAEA,IAAO,0BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// packages/view-plugin-display/src/ui/run-observer.mjs
|
|
2
|
+
function mountRunObserver({ document, surface, status, client }) {
|
|
3
|
+
let live = true;
|
|
4
|
+
const summary = document.createElement("p");
|
|
5
|
+
summary.setAttribute("role", "status");
|
|
6
|
+
const picture = document.createElement("img");
|
|
7
|
+
picture.alt = "Latest Engine run capture";
|
|
8
|
+
const logs = document.createElement("pre");
|
|
9
|
+
logs.setAttribute("aria-label", "Run log");
|
|
10
|
+
const form = document.createElement("form");
|
|
11
|
+
const project = document.createElement("input");
|
|
12
|
+
project.className = "fx-input";
|
|
13
|
+
project.placeholder = "Engine project path";
|
|
14
|
+
project.setAttribute("aria-label", "Observed project path");
|
|
15
|
+
const run = document.createElement("input");
|
|
16
|
+
run.className = "fx-input";
|
|
17
|
+
run.placeholder = "Run ID";
|
|
18
|
+
run.setAttribute("aria-label", "Observed run ID");
|
|
19
|
+
const connect = document.createElement("button");
|
|
20
|
+
connect.className = "fx-button fx-button--primary fx-button--compact";
|
|
21
|
+
connect.type = "submit";
|
|
22
|
+
connect.textContent = "Observe run";
|
|
23
|
+
const disconnect = document.createElement("button");
|
|
24
|
+
disconnect.className = "fx-button fx-button--secondary fx-button--compact";
|
|
25
|
+
disconnect.type = "button";
|
|
26
|
+
disconnect.textContent = "Disconnect";
|
|
27
|
+
form.append(project, run, connect, disconnect);
|
|
28
|
+
const bind = async (args) => {
|
|
29
|
+
connect.disabled = disconnect.disabled = true;
|
|
30
|
+
try {
|
|
31
|
+
const next = await client.call("display.bind", args);
|
|
32
|
+
if (live) status.update(next);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
if (live) summary.textContent = error.message ?? String(error);
|
|
35
|
+
} finally {
|
|
36
|
+
if (live) connect.disabled = disconnect.disabled = false;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const submit = (event) => {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
void bind({ root: project.value, runId: run.value });
|
|
42
|
+
};
|
|
43
|
+
const detach = () => {
|
|
44
|
+
void bind({ root: null });
|
|
45
|
+
};
|
|
46
|
+
form.addEventListener("submit", submit);
|
|
47
|
+
disconnect.addEventListener("click", detach);
|
|
48
|
+
surface.append(form, summary, picture, logs);
|
|
49
|
+
let bindingKey;
|
|
50
|
+
const render = () => {
|
|
51
|
+
const value = status.snapshot();
|
|
52
|
+
const nextKey = JSON.stringify(value.binding);
|
|
53
|
+
if (bindingKey !== nextKey) {
|
|
54
|
+
bindingKey = nextKey;
|
|
55
|
+
project.value = value.binding?.root ?? "";
|
|
56
|
+
run.value = value.binding?.runId ?? "";
|
|
57
|
+
}
|
|
58
|
+
const observation = value.observation;
|
|
59
|
+
const image = observation?.image;
|
|
60
|
+
const stamp = image?.capturedAt;
|
|
61
|
+
const stale = stamp && (Date.now() - Date.parse(stamp) > 15e3 || image.revision !== observation.status?.revision || observation.status?.phase !== "ready");
|
|
62
|
+
const nextSummary = value.error ?? (observation ? `${observation.status?.phase ?? value.status}${observation.status?.runId ? ` \xB7 Run ${observation.status.runId.slice(0, 8)}` : ""}${observation.status?.inputVersion ? ` \xB7 Input ${observation.status.inputVersion.slice(7, 19)}` : ""} \xB7 ${stamp ? `Captured ${stamp}${image.frameId === void 0 ? "" : ` \xB7 Frame ${image.frameId}`}${stale ? " \xB7 Stale image" : ""}` : "No captured image yet"}` : "No Engine run is connected.");
|
|
63
|
+
if (summary.textContent !== nextSummary) summary.textContent = nextSummary;
|
|
64
|
+
if (image?.png?.startsWith("data:image/png;base64,")) {
|
|
65
|
+
if (picture.getAttribute("src") !== image.png) picture.setAttribute("src", image.png);
|
|
66
|
+
if (picture.hidden !== false) picture.hidden = false;
|
|
67
|
+
} else {
|
|
68
|
+
if (picture.getAttribute("src") != null) picture.removeAttribute("src");
|
|
69
|
+
if (picture.hidden !== true) picture.hidden = true;
|
|
70
|
+
}
|
|
71
|
+
const nextLogs = (observation?.droppedLogs ? `${observation.droppedLogs} earlier log entries omitted.
|
|
72
|
+
` : "") + (observation?.logs?.map((entry) => `[${entry.sequence}] ${entry.level}: ${entry.text}`).join("\n") ?? "");
|
|
73
|
+
if (logs.textContent !== nextLogs) logs.textContent = nextLogs;
|
|
74
|
+
};
|
|
75
|
+
const unsubscribeObservation = status.subscribe(render);
|
|
76
|
+
const dispose = () => {
|
|
77
|
+
live = false;
|
|
78
|
+
unsubscribeObservation();
|
|
79
|
+
form.removeEventListener("submit", submit);
|
|
80
|
+
disconnect.removeEventListener("click", detach);
|
|
81
|
+
};
|
|
82
|
+
render();
|
|
83
|
+
return dispose;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export {
|
|
87
|
+
mountRunObserver
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=chunk-UDVQHPWV.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-display/src/ui/run-observer.mjs"],
|
|
4
|
+
"sourcesContent": ["/** DOM presentation only; the frontend Fiber owns this mount and its disposal. */\nexport function mountRunObserver({ document, surface, status, client }) {\n let live = true;\n const summary = document.createElement('p');\n summary.setAttribute('role', 'status');\n const picture = document.createElement('img');\n picture.alt = 'Latest Engine run capture';\n const logs = document.createElement('pre');\n logs.setAttribute('aria-label', 'Run log');\n const form = document.createElement('form');\n const project = document.createElement('input');\n project.className = 'fx-input';\n project.placeholder = 'Engine project path';\n project.setAttribute('aria-label', 'Observed project path');\n const run = document.createElement('input');\n run.className = 'fx-input';\n run.placeholder = 'Run ID';\n run.setAttribute('aria-label', 'Observed run ID');\n const connect = document.createElement('button');\n connect.className = 'fx-button fx-button--primary fx-button--compact';\n connect.type = 'submit'; connect.textContent = 'Observe run';\n const disconnect = document.createElement('button');\n disconnect.className = 'fx-button fx-button--secondary fx-button--compact';\n disconnect.type = 'button'; disconnect.textContent = 'Disconnect';\n form.append(project, run, connect, disconnect);\n const bind = async args => {\n connect.disabled = disconnect.disabled = true;\n try { const next = await client.call('display.bind', args); if (live) status.update(next); }\n catch (error) { if (live) summary.textContent = error.message ?? String(error); }\n finally { if (live) connect.disabled = disconnect.disabled = false; }\n };\n const submit = event => { event.preventDefault(); void bind({ root: project.value, runId: run.value }); };\n const detach = () => { void bind({ root: null }); };\n form.addEventListener('submit', submit);\n disconnect.addEventListener('click', detach);\n surface.append(form, summary, picture, logs);\n let bindingKey;\n const render = () => {\n const value = status.snapshot();\n const nextKey = JSON.stringify(value.binding);\n if (bindingKey !== nextKey) {\n bindingKey = nextKey;\n project.value = value.binding?.root ?? '';\n run.value = value.binding?.runId ?? '';\n }\n const observation = value.observation;\n const image = observation?.image;\n const stamp = image?.capturedAt;\n const stale = stamp && (Date.now() - Date.parse(stamp) > 15000 || image.revision !== observation.status?.revision || observation.status?.phase !== 'ready');\n const nextSummary = value.error ?? (observation\n ? `${observation.status?.phase ?? value.status}${observation.status?.runId ? ` \u00B7 Run ${observation.status.runId.slice(0, 8)}` : ''}${observation.status?.inputVersion ? ` \u00B7 Input ${observation.status.inputVersion.slice(7, 19)}` : ''} \u00B7 ${stamp ? `Captured ${stamp}${image.frameId === undefined ? '' : ` \u00B7 Frame ${image.frameId}`}${stale ? ' \u00B7 Stale image' : ''}` : 'No captured image yet'}`\n : 'No Engine run is connected.');\n if (summary.textContent !== nextSummary) summary.textContent = nextSummary;\n if (image?.png?.startsWith('data:image/png;base64,')) {\n if (picture.getAttribute('src') !== image.png) picture.setAttribute('src', image.png);\n if (picture.hidden !== false) picture.hidden = false;\n } else {\n if (picture.getAttribute('src') != null) picture.removeAttribute('src');\n if (picture.hidden !== true) picture.hidden = true;\n }\n const nextLogs = (observation?.droppedLogs ? `${observation.droppedLogs} earlier log entries omitted.\\n` : '') + (observation?.logs?.map(entry => `[${entry.sequence}] ${entry.level}: ${entry.text}`).join('\\n') ?? '');\n if (logs.textContent !== nextLogs) logs.textContent = nextLogs;\n };\n const unsubscribeObservation = status.subscribe(render);\n const dispose = () => {\n live = false;\n unsubscribeObservation();\n form.removeEventListener('submit', submit);\n disconnect.removeEventListener('click', detach);\n };\n render();\n return dispose;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|