@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,317 @@
|
|
|
1
|
+
import {
|
|
2
|
+
disposeResource
|
|
3
|
+
} from "./chunk-QD6CCRMG.mjs";
|
|
4
|
+
import {
|
|
5
|
+
FALLBACK_REASONS,
|
|
6
|
+
VIEW_PROTOCOL,
|
|
7
|
+
VIEW_PROTOCOL_VERSION,
|
|
8
|
+
browserFallback,
|
|
9
|
+
createLeaseRequest,
|
|
10
|
+
sameRun,
|
|
11
|
+
serializeTarget,
|
|
12
|
+
viewDecision
|
|
13
|
+
} from "./chunk-GQBZMCTK.mjs";
|
|
14
|
+
|
|
15
|
+
// packages/view-plugin-display/src/page-broker.mjs
|
|
16
|
+
import { randomUUID } from "node:crypto";
|
|
17
|
+
var DEFAULT_CAPABILITIES = Object.freeze({
|
|
18
|
+
protocolVersion: VIEW_PROTOCOL_VERSION,
|
|
19
|
+
ready: true,
|
|
20
|
+
supportsPage: true,
|
|
21
|
+
// `auto` is safe as an intent; hardware/software require an explicit
|
|
22
|
+
// platform probe from the embedding runtime.
|
|
23
|
+
gpuModes: ["auto"],
|
|
24
|
+
maxWidth: 8192,
|
|
25
|
+
maxHeight: 8192,
|
|
26
|
+
canvasSizing: "fixed"
|
|
27
|
+
});
|
|
28
|
+
function copyCapabilities(capabilities = {}) {
|
|
29
|
+
const merged = {
|
|
30
|
+
...DEFAULT_CAPABILITIES,
|
|
31
|
+
...capabilities,
|
|
32
|
+
gpuModes: [...capabilities.gpuModes ?? DEFAULT_CAPABILITIES.gpuModes]
|
|
33
|
+
};
|
|
34
|
+
if (!Number.isInteger(merged.protocolVersion)) merged.protocolVersion = VIEW_PROTOCOL_VERSION;
|
|
35
|
+
return Object.freeze(merged);
|
|
36
|
+
}
|
|
37
|
+
function targetMatches(target, active) {
|
|
38
|
+
return Boolean(
|
|
39
|
+
target && active && target.leaseId === active.leaseId && target.targetId === active.target?.targetId && target.surfaceId === active.target?.surfaceId && target.generation === active.request.generation && sameRun(target.run, active.request.run)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function allocationFailureReason(error) {
|
|
43
|
+
if (error?.fallbackReason && Object.values(FALLBACK_REASONS).includes(error.fallbackReason)) {
|
|
44
|
+
return error.fallbackReason;
|
|
45
|
+
}
|
|
46
|
+
return FALLBACK_REASONS.ALLOCATION_FAILED;
|
|
47
|
+
}
|
|
48
|
+
var ViewResourceBroker = class {
|
|
49
|
+
constructor({ platform, capabilities, idFactory = randomUUID, clock = () => Date.now() } = {}) {
|
|
50
|
+
if (!platform || typeof platform.createPage !== "function") {
|
|
51
|
+
throw new TypeError("ViewResourceBroker requires a platform.createPage implementation");
|
|
52
|
+
}
|
|
53
|
+
this.platform = platform;
|
|
54
|
+
this.capabilityOverrides = { ...capabilities ?? {} };
|
|
55
|
+
this.capabilities = copyCapabilities({
|
|
56
|
+
...typeof platform.getCapabilities === "function" ? platform.getCapabilities() : {},
|
|
57
|
+
...this.capabilityOverrides
|
|
58
|
+
});
|
|
59
|
+
this.idFactory = idFactory;
|
|
60
|
+
this.clock = clock;
|
|
61
|
+
this.active = null;
|
|
62
|
+
this.pending = null;
|
|
63
|
+
this.latestGenerations = /* @__PURE__ */ new Map();
|
|
64
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
65
|
+
this.disposing = false;
|
|
66
|
+
}
|
|
67
|
+
/** Subscribe to status transitions owned by this broker. */
|
|
68
|
+
subscribe(listener) {
|
|
69
|
+
if (typeof listener !== "function") throw new TypeError("broker status listener must be a function");
|
|
70
|
+
this.listeners.add(listener);
|
|
71
|
+
listener(this.handshake());
|
|
72
|
+
return () => this.listeners.delete(listener);
|
|
73
|
+
}
|
|
74
|
+
notify() {
|
|
75
|
+
const snapshot = this.handshake();
|
|
76
|
+
for (const listener of this.listeners) {
|
|
77
|
+
try {
|
|
78
|
+
listener(snapshot);
|
|
79
|
+
} catch {
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
refreshCapabilities() {
|
|
84
|
+
if (typeof this.platform.getCapabilities !== "function") return this.capabilities;
|
|
85
|
+
const live = this.platform.getCapabilities() ?? {};
|
|
86
|
+
const overrides = { ...this.capabilityOverrides };
|
|
87
|
+
delete overrides.ready;
|
|
88
|
+
delete overrides.supportsPage;
|
|
89
|
+
delete overrides.gpuModes;
|
|
90
|
+
this.capabilities = copyCapabilities({ ...live, ...overrides });
|
|
91
|
+
return this.capabilities;
|
|
92
|
+
}
|
|
93
|
+
handshake() {
|
|
94
|
+
const capabilities = this.refreshCapabilities();
|
|
95
|
+
return {
|
|
96
|
+
protocol: VIEW_PROTOCOL,
|
|
97
|
+
protocolVersion: VIEW_PROTOCOL_VERSION,
|
|
98
|
+
state: this.disposing ? "stopping" : !capabilities.ready || !capabilities.supportsPage ? "unavailable" : this.active ? "occupied" : this.pending ? "allocating" : "ready",
|
|
99
|
+
capabilities: { ...capabilities, gpuModes: [...capabilities.gpuModes] },
|
|
100
|
+
occupancy: this.active ? {
|
|
101
|
+
leaseId: this.active.leaseId,
|
|
102
|
+
run: { ...this.active.request.run },
|
|
103
|
+
generation: this.active.request.generation,
|
|
104
|
+
...this.active.target?.targetId === void 0 ? {} : { targetId: this.active.target.targetId },
|
|
105
|
+
...this.active.target?.targetId === void 0 ? {} : { target: serializeTarget(this.active.target) }
|
|
106
|
+
} : null
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
get occupied() {
|
|
110
|
+
return this.active !== null;
|
|
111
|
+
}
|
|
112
|
+
capabilityFailure(request) {
|
|
113
|
+
const capabilities = this.refreshCapabilities();
|
|
114
|
+
if (this.disposing || !capabilities.ready || !capabilities.supportsPage) {
|
|
115
|
+
return "View platform is not ready";
|
|
116
|
+
}
|
|
117
|
+
if (capabilities.protocolVersion !== VIEW_PROTOCOL_VERSION) {
|
|
118
|
+
const error = new Error(`View protocol ${capabilities.protocolVersion} is incompatible`);
|
|
119
|
+
error.fallbackReason = FALLBACK_REASONS.PROTOCOL_UNSUPPORTED;
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
if (!capabilities.gpuModes.includes(request.gpu)) {
|
|
123
|
+
return `View does not support GPU mode ${request.gpu}`;
|
|
124
|
+
}
|
|
125
|
+
if (request.width > capabilities.maxWidth || request.height > capabilities.maxHeight) {
|
|
126
|
+
return `requested canvas ${request.width}x${request.height} exceeds View limits`;
|
|
127
|
+
}
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
async allocate(input, { signal } = {}) {
|
|
131
|
+
const request = createLeaseRequest(input);
|
|
132
|
+
if (request.headless) return browserFallback(FALLBACK_REASONS.HEADLESS_REQUESTED);
|
|
133
|
+
if (signal?.aborted || this.disposing) return browserFallback(FALLBACK_REASONS.CANCELLED);
|
|
134
|
+
const latest = this.latestGenerations.get(request.run.key);
|
|
135
|
+
if (latest !== void 0 && request.generation < latest) {
|
|
136
|
+
return browserFallback(FALLBACK_REASONS.STALE_GENERATION, { currentGeneration: latest });
|
|
137
|
+
}
|
|
138
|
+
if (latest === void 0 || request.generation > latest) {
|
|
139
|
+
this.latestGenerations.set(request.run.key, request.generation);
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
const capabilityMessage = this.capabilityFailure(request);
|
|
143
|
+
if (capabilityMessage) {
|
|
144
|
+
return browserFallback(FALLBACK_REASONS.CAPABILITY_MISMATCH, { message: capabilityMessage });
|
|
145
|
+
}
|
|
146
|
+
} catch (error) {
|
|
147
|
+
if (error?.fallbackReason === FALLBACK_REASONS.PROTOCOL_UNSUPPORTED) {
|
|
148
|
+
return browserFallback(FALLBACK_REASONS.PROTOCOL_UNSUPPORTED, { message: error.message });
|
|
149
|
+
}
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
if (this.active || this.pending) {
|
|
153
|
+
const occupied = this.active ?? this.pending;
|
|
154
|
+
return browserFallback(FALLBACK_REASONS.OCCUPIED, {
|
|
155
|
+
occupiedBy: { ...occupied.request.run }
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
const leaseId = this.idFactory();
|
|
159
|
+
const controller = new AbortController();
|
|
160
|
+
const reservation = {
|
|
161
|
+
leaseId,
|
|
162
|
+
request,
|
|
163
|
+
controller,
|
|
164
|
+
state: "allocating",
|
|
165
|
+
cancelled: false,
|
|
166
|
+
page: null,
|
|
167
|
+
target: null,
|
|
168
|
+
pageLost: null
|
|
169
|
+
};
|
|
170
|
+
this.pending = reservation;
|
|
171
|
+
this.notify();
|
|
172
|
+
const onAbort = () => {
|
|
173
|
+
reservation.cancelled = true;
|
|
174
|
+
controller.abort();
|
|
175
|
+
};
|
|
176
|
+
const onPageLost = (reason) => {
|
|
177
|
+
if (this.active !== reservation && this.pending !== reservation) return;
|
|
178
|
+
reservation.pageLost = reason ?? "page-lost";
|
|
179
|
+
reservation.state = "lost";
|
|
180
|
+
this.active = null;
|
|
181
|
+
if (this.pending === reservation) this.pending = null;
|
|
182
|
+
this.notify();
|
|
183
|
+
};
|
|
184
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
185
|
+
let page;
|
|
186
|
+
try {
|
|
187
|
+
page = await this.platform.createPage({
|
|
188
|
+
leaseId,
|
|
189
|
+
run: request.run,
|
|
190
|
+
generation: request.generation,
|
|
191
|
+
width: request.width,
|
|
192
|
+
height: request.height,
|
|
193
|
+
gpu: request.gpu,
|
|
194
|
+
signal: controller.signal,
|
|
195
|
+
onLost: onPageLost
|
|
196
|
+
});
|
|
197
|
+
if (reservation.pageLost) {
|
|
198
|
+
await disposeResource(page);
|
|
199
|
+
return browserFallback(FALLBACK_REASONS.TARGET_LOST, { message: reservation.pageLost });
|
|
200
|
+
}
|
|
201
|
+
if (reservation.cancelled || controller.signal.aborted || this.pending !== reservation || this.disposing) {
|
|
202
|
+
await disposeResource(page);
|
|
203
|
+
return browserFallback(FALLBACK_REASONS.CANCELLED);
|
|
204
|
+
}
|
|
205
|
+
if (!page || typeof page.targetId !== "string" && typeof page.targetId !== "number" || typeof page.surfaceId !== "string" || !/^[_A-Za-z][_A-Za-z0-9-]*$/.test(page.surfaceId)) {
|
|
206
|
+
throw new Error("platform did not return a stable page target and surface id");
|
|
207
|
+
}
|
|
208
|
+
reservation.page = page;
|
|
209
|
+
reservation.state = "active";
|
|
210
|
+
reservation.target = Object.freeze({
|
|
211
|
+
leaseId,
|
|
212
|
+
targetId: String(page.targetId),
|
|
213
|
+
kind: page.kind ?? "browser-page",
|
|
214
|
+
surfaceId: page.surfaceId,
|
|
215
|
+
run: request.run,
|
|
216
|
+
generation: request.generation,
|
|
217
|
+
width: request.width,
|
|
218
|
+
height: request.height,
|
|
219
|
+
gpu: request.gpu,
|
|
220
|
+
allocatedAt: this.clock()
|
|
221
|
+
});
|
|
222
|
+
this.pending = null;
|
|
223
|
+
this.active = reservation;
|
|
224
|
+
this.notify();
|
|
225
|
+
return viewDecision({
|
|
226
|
+
target: reservation.target,
|
|
227
|
+
request,
|
|
228
|
+
release: (reason = "engine-release") => this.release(reservation.target, reason)
|
|
229
|
+
});
|
|
230
|
+
} catch (error) {
|
|
231
|
+
if (page) await disposeResource(page).catch(() => {
|
|
232
|
+
});
|
|
233
|
+
if (reservation.cancelled || controller.signal.aborted) {
|
|
234
|
+
return browserFallback(FALLBACK_REASONS.CANCELLED);
|
|
235
|
+
}
|
|
236
|
+
return browserFallback(allocationFailureReason(error), { message: error?.message ?? String(error) });
|
|
237
|
+
} finally {
|
|
238
|
+
signal?.removeEventListener("abort", onAbort);
|
|
239
|
+
if (this.pending === reservation) this.pending = null;
|
|
240
|
+
if (this.active === reservation && reservation.state !== "active") this.active = null;
|
|
241
|
+
if (this.active === null) this.notify();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/** Return the exact platform page for an in-process Engine adapter. */
|
|
245
|
+
getPage(target) {
|
|
246
|
+
if (!targetMatches(target, this.active) || this.active.state !== "active") {
|
|
247
|
+
throw new Error("View target is not an active lease");
|
|
248
|
+
}
|
|
249
|
+
return this.active.page.page ?? this.active.page;
|
|
250
|
+
}
|
|
251
|
+
/** Return the exact Engine execution realm bound to the active target. */
|
|
252
|
+
getExecution(target) {
|
|
253
|
+
if (!targetMatches(target, this.active) || this.active.state !== "active") {
|
|
254
|
+
throw new Error("View target is not an active lease");
|
|
255
|
+
}
|
|
256
|
+
const execution = this.active.page.execution;
|
|
257
|
+
if (!execution || execution.ownerPage !== this.getPage(target)) {
|
|
258
|
+
throw new Error("View target does not expose an Engine execution realm");
|
|
259
|
+
}
|
|
260
|
+
return execution;
|
|
261
|
+
}
|
|
262
|
+
async release(target, reason = "engine-release") {
|
|
263
|
+
const reservation = this.active;
|
|
264
|
+
if (!reservation) return { released: false, reason: "not-active" };
|
|
265
|
+
if (!targetMatches(target, reservation)) return { released: false, reason: "lease-mismatch" };
|
|
266
|
+
if (reservation.releasePromise) return reservation.releasePromise;
|
|
267
|
+
reservation.state = "releasing";
|
|
268
|
+
reservation.cancelled = true;
|
|
269
|
+
reservation.controller.abort();
|
|
270
|
+
this.notify();
|
|
271
|
+
reservation.releasePromise = (async () => {
|
|
272
|
+
try {
|
|
273
|
+
await disposeResource(reservation.page);
|
|
274
|
+
return { released: true, leaseId: reservation.leaseId, reason };
|
|
275
|
+
} finally {
|
|
276
|
+
reservation.state = "released";
|
|
277
|
+
if (this.active === reservation) {
|
|
278
|
+
this.active = null;
|
|
279
|
+
this.notify();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
})();
|
|
283
|
+
return reservation.releasePromise;
|
|
284
|
+
}
|
|
285
|
+
async cancel(run, generation) {
|
|
286
|
+
const reservation = this.active ?? this.pending;
|
|
287
|
+
if (!reservation || !sameRun(run, reservation.request.run) || reservation.request.generation !== generation) {
|
|
288
|
+
return { released: false, reason: "not-active" };
|
|
289
|
+
}
|
|
290
|
+
if (reservation.target) return this.release(reservation.target, "cancelled");
|
|
291
|
+
reservation.cancelled = true;
|
|
292
|
+
reservation.controller.abort();
|
|
293
|
+
if (this.pending === reservation) this.pending = null;
|
|
294
|
+
this.notify();
|
|
295
|
+
return { released: true, leaseId: reservation.leaseId, reason: "cancelled" };
|
|
296
|
+
}
|
|
297
|
+
async dispose() {
|
|
298
|
+
if (this.disposing) return;
|
|
299
|
+
this.disposing = true;
|
|
300
|
+
this.notify();
|
|
301
|
+
const reservation = this.active ?? this.pending;
|
|
302
|
+
if (reservation?.target) await this.release(reservation.target, "broker-dispose");
|
|
303
|
+
else if (reservation) {
|
|
304
|
+
reservation.cancelled = true;
|
|
305
|
+
reservation.controller.abort();
|
|
306
|
+
if (this.pending === reservation) this.pending = null;
|
|
307
|
+
if (this.active === reservation) this.active = null;
|
|
308
|
+
}
|
|
309
|
+
await this.platform.dispose?.();
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
export {
|
|
314
|
+
DEFAULT_CAPABILITIES,
|
|
315
|
+
ViewResourceBroker
|
|
316
|
+
};
|
|
317
|
+
//# sourceMappingURL=chunk-XUYFV23R.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-display/src/page-broker.mjs"],
|
|
4
|
+
"sourcesContent": ["import { randomUUID } from 'node:crypto';\n\nimport {\n FALLBACK_REASONS,\n VIEW_CARRIER,\n VIEW_PROTOCOL,\n VIEW_PROTOCOL_VERSION,\n browserFallback,\n createLeaseRequest,\n sameRun,\n serializeTarget,\n viewDecision,\n} from './carrier-contract.mjs';\nimport { disposeResource } from './effects.mjs';\n\nconst DEFAULT_CAPABILITIES = Object.freeze({\n protocolVersion: VIEW_PROTOCOL_VERSION,\n ready: true,\n supportsPage: true,\n // `auto` is safe as an intent; hardware/software require an explicit\n // platform probe from the embedding runtime.\n gpuModes: ['auto'],\n maxWidth: 8192,\n maxHeight: 8192,\n canvasSizing: 'fixed',\n});\n\nfunction copyCapabilities(capabilities = {}) {\n const merged = {\n ...DEFAULT_CAPABILITIES,\n ...capabilities,\n gpuModes: [...(capabilities.gpuModes ?? DEFAULT_CAPABILITIES.gpuModes)],\n };\n if (!Number.isInteger(merged.protocolVersion)) merged.protocolVersion = VIEW_PROTOCOL_VERSION;\n return Object.freeze(merged);\n}\n\nfunction targetMatches(target, active) {\n return Boolean(\n target &&\n active &&\n target.leaseId === active.leaseId &&\n target.targetId === active.target?.targetId &&\n target.surfaceId === active.target?.surfaceId &&\n target.generation === active.request.generation &&\n sameRun(target.run, active.request.run),\n );\n}\n\nfunction allocationFailureReason(error) {\n if (error?.fallbackReason && Object.values(FALLBACK_REASONS).includes(error.fallbackReason)) {\n return error.fallbackReason;\n }\n return FALLBACK_REASONS.ALLOCATION_FAILED;\n}\n\n/**\n * Owns exactly one display page at a time. A private pending reservation makes\n * allocation atomic, while public occupancy is admitted only after the\n * platform confirms that the Frontend Fiber surface is ready.\n */\nexport class ViewResourceBroker {\n constructor({ platform, capabilities, idFactory = randomUUID, clock = () => Date.now() } = {}) {\n if (!platform || typeof platform.createPage !== 'function') {\n throw new TypeError('ViewResourceBroker requires a platform.createPage implementation');\n }\n this.platform = platform;\n // Keep caller-supplied limits and protocol overrides separate from the\n // platform's live readiness. A browser can lose its page after\n // the broker has been constructed, so a startup snapshot must never be\n // used as a durable \"ready\" claim.\n this.capabilityOverrides = { ...(capabilities ?? {}) };\n this.capabilities = copyCapabilities({\n ...(typeof platform.getCapabilities === 'function' ? platform.getCapabilities() : {}),\n ...this.capabilityOverrides,\n });\n this.idFactory = idFactory;\n this.clock = clock;\n this.active = null;\n this.pending = null;\n this.latestGenerations = new Map();\n this.listeners = new Set();\n this.disposing = false;\n }\n\n /** Subscribe to status transitions owned by this broker. */\n subscribe(listener) {\n if (typeof listener !== 'function') throw new TypeError('broker status listener must be a function');\n this.listeners.add(listener);\n listener(this.handshake());\n return () => this.listeners.delete(listener);\n }\n\n notify() {\n const snapshot = this.handshake();\n for (const listener of this.listeners) {\n try {\n listener(snapshot);\n } catch {\n // Status observers must not change lease admission or cleanup.\n }\n }\n }\n\n refreshCapabilities() {\n if (typeof this.platform.getCapabilities !== 'function') return this.capabilities;\n const live = this.platform.getCapabilities() ?? {};\n const overrides = { ...this.capabilityOverrides };\n // Readiness, page support, and GPU modes describe the current platform,\n // not broker configuration. Let a lost window withdraw those claims.\n delete overrides.ready;\n delete overrides.supportsPage;\n delete overrides.gpuModes;\n this.capabilities = copyCapabilities({ ...live, ...overrides });\n return this.capabilities;\n }\n\n handshake() {\n const capabilities = this.refreshCapabilities();\n return {\n protocol: VIEW_PROTOCOL,\n protocolVersion: VIEW_PROTOCOL_VERSION,\n state: this.disposing\n ? 'stopping'\n : !capabilities.ready || !capabilities.supportsPage\n ? 'unavailable'\n : this.active\n ? 'occupied'\n : this.pending\n ? 'allocating'\n : 'ready',\n capabilities: { ...capabilities, gpuModes: [...capabilities.gpuModes] },\n occupancy: this.active\n ? {\n leaseId: this.active.leaseId,\n run: { ...this.active.request.run },\n generation: this.active.request.generation,\n ...(this.active.target?.targetId === undefined\n ? {}\n : { targetId: this.active.target.targetId }),\n ...(this.active.target?.targetId === undefined\n ? {}\n : { target: serializeTarget(this.active.target) }),\n }\n : null,\n };\n }\n\n get occupied() {\n return this.active !== null;\n }\n\n capabilityFailure(request) {\n const capabilities = this.refreshCapabilities();\n if (this.disposing || !capabilities.ready || !capabilities.supportsPage) {\n return 'View platform is not ready';\n }\n if (capabilities.protocolVersion !== VIEW_PROTOCOL_VERSION) {\n const error = new Error(`View protocol ${capabilities.protocolVersion} is incompatible`);\n error.fallbackReason = FALLBACK_REASONS.PROTOCOL_UNSUPPORTED;\n throw error;\n }\n if (!capabilities.gpuModes.includes(request.gpu)) {\n return `View does not support GPU mode ${request.gpu}`;\n }\n if (request.width > capabilities.maxWidth || request.height > capabilities.maxHeight) {\n return `requested canvas ${request.width}x${request.height} exceeds View limits`;\n }\n return null;\n }\n\n async allocate(input, { signal } = {}) {\n const request = createLeaseRequest(input);\n if (request.headless) return browserFallback(FALLBACK_REASONS.HEADLESS_REQUESTED);\n if (signal?.aborted || this.disposing) return browserFallback(FALLBACK_REASONS.CANCELLED);\n\n const latest = this.latestGenerations.get(request.run.key);\n if (latest !== undefined && request.generation < latest) {\n return browserFallback(FALLBACK_REASONS.STALE_GENERATION, { currentGeneration: latest });\n }\n // Record a newer generation before any asynchronous platform work. An\n // older late completion can therefore never become the active target.\n if (latest === undefined || request.generation > latest) {\n this.latestGenerations.set(request.run.key, request.generation);\n }\n\n try {\n const capabilityMessage = this.capabilityFailure(request);\n if (capabilityMessage) {\n return browserFallback(FALLBACK_REASONS.CAPABILITY_MISMATCH, { message: capabilityMessage });\n }\n } catch (error) {\n if (error?.fallbackReason === FALLBACK_REASONS.PROTOCOL_UNSUPPORTED) {\n return browserFallback(FALLBACK_REASONS.PROTOCOL_UNSUPPORTED, { message: error.message });\n }\n throw error;\n }\n if (this.active || this.pending) {\n const occupied = this.active ?? this.pending;\n return browserFallback(FALLBACK_REASONS.OCCUPIED, {\n occupiedBy: { ...occupied.request.run },\n });\n }\n\n const leaseId = this.idFactory();\n const controller = new AbortController();\n const reservation = {\n leaseId,\n request,\n controller,\n state: 'allocating',\n cancelled: false,\n page: null,\n target: null,\n pageLost: null,\n };\n // Reserve allocation atomically without publishing false occupancy. The\n // platform resolves only after the display Fiber iframe is available.\n this.pending = reservation;\n this.notify();\n const onAbort = () => {\n reservation.cancelled = true;\n controller.abort();\n };\n const onPageLost = (reason) => {\n if (this.active !== reservation && this.pending !== reservation) return;\n reservation.pageLost = reason ?? 'page-lost';\n reservation.state = 'lost';\n // The platform has already destroyed the page. Drop occupancy now so\n // a new request can be admitted while old target handles fail closed.\n this.active = null;\n if (this.pending === reservation) this.pending = null;\n this.notify();\n };\n signal?.addEventListener('abort', onAbort, { once: true });\n\n let page;\n try {\n page = await this.platform.createPage({\n leaseId,\n run: request.run,\n generation: request.generation,\n width: request.width,\n height: request.height,\n gpu: request.gpu,\n signal: controller.signal,\n onLost: onPageLost,\n });\n if (reservation.pageLost) {\n await disposeResource(page);\n return browserFallback(FALLBACK_REASONS.TARGET_LOST, { message: reservation.pageLost });\n }\n if (reservation.cancelled || controller.signal.aborted || this.pending !== reservation || this.disposing) {\n await disposeResource(page);\n return browserFallback(FALLBACK_REASONS.CANCELLED);\n }\n if (\n !page ||\n (typeof page.targetId !== 'string' && typeof page.targetId !== 'number') ||\n typeof page.surfaceId !== 'string' ||\n !/^[_A-Za-z][_A-Za-z0-9-]*$/.test(page.surfaceId)\n ) {\n throw new Error('platform did not return a stable page target and surface id');\n }\n reservation.page = page;\n reservation.state = 'active';\n reservation.target = Object.freeze({\n leaseId,\n targetId: String(page.targetId),\n kind: page.kind ?? 'browser-page',\n surfaceId: page.surfaceId,\n run: request.run,\n generation: request.generation,\n width: request.width,\n height: request.height,\n gpu: request.gpu,\n allocatedAt: this.clock(),\n });\n this.pending = null;\n this.active = reservation;\n this.notify();\n return viewDecision({\n target: reservation.target,\n request,\n release: (reason = 'engine-release') => this.release(reservation.target, reason),\n });\n } catch (error) {\n if (page) await disposeResource(page).catch(() => {});\n if (reservation.cancelled || controller.signal.aborted) {\n return browserFallback(FALLBACK_REASONS.CANCELLED);\n }\n return browserFallback(allocationFailureReason(error), { message: error?.message ?? String(error) });\n } finally {\n signal?.removeEventListener('abort', onAbort);\n if (this.pending === reservation) this.pending = null;\n if (this.active === reservation && reservation.state !== 'active') this.active = null;\n if (this.active === null) this.notify();\n }\n }\n\n /** Return the exact platform page for an in-process Engine adapter. */\n getPage(target) {\n if (!targetMatches(target, this.active) || this.active.state !== 'active') {\n throw new Error('View target is not an active lease');\n }\n // A platform resource may carry the browser Page separately so its\n // lease-owned dispose method cannot accidentally close the user's page.\n return this.active.page.page ?? this.active.page;\n }\n\n /** Return the exact Engine execution realm bound to the active target. */\n getExecution(target) {\n if (!targetMatches(target, this.active) || this.active.state !== 'active') {\n throw new Error('View target is not an active lease');\n }\n const execution = this.active.page.execution;\n if (!execution || execution.ownerPage !== this.getPage(target)) {\n throw new Error('View target does not expose an Engine execution realm');\n }\n return execution;\n }\n\n async release(target, reason = 'engine-release') {\n const reservation = this.active;\n if (!reservation) return { released: false, reason: 'not-active' };\n if (!targetMatches(target, reservation)) return { released: false, reason: 'lease-mismatch' };\n if (reservation.releasePromise) return reservation.releasePromise;\n\n reservation.state = 'releasing';\n reservation.cancelled = true;\n reservation.controller.abort();\n this.notify();\n reservation.releasePromise = (async () => {\n try {\n await disposeResource(reservation.page);\n return { released: true, leaseId: reservation.leaseId, reason };\n } finally {\n reservation.state = 'released';\n if (this.active === reservation) {\n this.active = null;\n this.notify();\n }\n }\n })();\n return reservation.releasePromise;\n }\n\n async cancel(run, generation) {\n const reservation = this.active ?? this.pending;\n if (!reservation || !sameRun(run, reservation.request.run) || reservation.request.generation !== generation) {\n return { released: false, reason: 'not-active' };\n }\n if (reservation.target) return this.release(reservation.target, 'cancelled');\n reservation.cancelled = true;\n reservation.controller.abort();\n if (this.pending === reservation) this.pending = null;\n this.notify();\n return { released: true, leaseId: reservation.leaseId, reason: 'cancelled' };\n }\n\n async dispose() {\n if (this.disposing) return;\n this.disposing = true;\n this.notify();\n const reservation = this.active ?? this.pending;\n if (reservation?.target) await this.release(reservation.target, 'broker-dispose');\n else if (reservation) {\n reservation.cancelled = true;\n reservation.controller.abort();\n if (this.pending === reservation) this.pending = null;\n if (this.active === reservation) this.active = null;\n }\n await this.platform.dispose?.();\n }\n}\n\nexport { DEFAULT_CAPABILITIES };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RESOURCE_FALLBACK_LAYOUT
|
|
3
|
+
} from "./chunk-YYXQDUVT.mjs";
|
|
4
|
+
import {
|
|
5
|
+
VIEW_PAGE_TYPES
|
|
6
|
+
} from "./chunk-32GD5LL6.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__export
|
|
9
|
+
} from "./chunk-FLGC65SR.mjs";
|
|
10
|
+
|
|
11
|
+
// packages/view-plugin-asset/src/identity.mjs
|
|
12
|
+
var identity_exports = {};
|
|
13
|
+
__export(identity_exports, {
|
|
14
|
+
FRONTEND_MODULE: () => FRONTEND_MODULE,
|
|
15
|
+
FRONTEND_PLUGIN_ID: () => FRONTEND_PLUGIN_ID,
|
|
16
|
+
PAGE_ORDER: () => PAGE_ORDER,
|
|
17
|
+
PAGE_PRIORITY: () => PAGE_PRIORITY,
|
|
18
|
+
PAGE_TITLE_I18N_KEY: () => PAGE_TITLE_I18N_KEY,
|
|
19
|
+
PAGE_TYPE: () => PAGE_TYPE,
|
|
20
|
+
PLUGIN_ID: () => PLUGIN_ID,
|
|
21
|
+
PROPERTIES_ICON: () => PROPERTIES_ICON,
|
|
22
|
+
PROPERTIES_LAYOUT: () => PROPERTIES_LAYOUT,
|
|
23
|
+
PROPERTIES_PANEL: () => PROPERTIES_PANEL,
|
|
24
|
+
PROPERTIES_SLOT: () => PROPERTIES_SLOT,
|
|
25
|
+
PROPERTIES_TITLE_I18N_KEY: () => PROPERTIES_TITLE_I18N_KEY,
|
|
26
|
+
RESOURCE_SELECTOR: () => RESOURCE_SELECTOR
|
|
27
|
+
});
|
|
28
|
+
var PLUGIN_ID = "forgeax.view.asset";
|
|
29
|
+
var FRONTEND_PLUGIN_ID = "forgeax.view.page.asset.frontend";
|
|
30
|
+
var FRONTEND_MODULE = "@forgeax/view/plugins/asset/frontend";
|
|
31
|
+
var PAGE_TYPE = VIEW_PAGE_TYPES.asset;
|
|
32
|
+
var PAGE_TITLE_I18N_KEY = "view.pages.asset";
|
|
33
|
+
var PAGE_ORDER = 80;
|
|
34
|
+
var PROPERTIES_SLOT = "asset-properties";
|
|
35
|
+
var RESOURCE_SELECTOR = Object.freeze({ fallback: true });
|
|
36
|
+
var PAGE_PRIORITY = 0;
|
|
37
|
+
var PROPERTIES_LAYOUT = RESOURCE_FALLBACK_LAYOUT;
|
|
38
|
+
var PROPERTIES_PANEL = "AssetProperties";
|
|
39
|
+
var PROPERTIES_ICON = "detail";
|
|
40
|
+
var PROPERTIES_TITLE_I18N_KEY = "view.slots.assetProperties";
|
|
41
|
+
|
|
42
|
+
export {
|
|
43
|
+
PLUGIN_ID,
|
|
44
|
+
FRONTEND_PLUGIN_ID,
|
|
45
|
+
FRONTEND_MODULE,
|
|
46
|
+
PAGE_TYPE,
|
|
47
|
+
PAGE_TITLE_I18N_KEY,
|
|
48
|
+
PAGE_ORDER,
|
|
49
|
+
PROPERTIES_SLOT,
|
|
50
|
+
RESOURCE_SELECTOR,
|
|
51
|
+
PAGE_PRIORITY,
|
|
52
|
+
PROPERTIES_LAYOUT,
|
|
53
|
+
PROPERTIES_PANEL,
|
|
54
|
+
PROPERTIES_ICON,
|
|
55
|
+
PROPERTIES_TITLE_I18N_KEY,
|
|
56
|
+
identity_exports
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=chunk-Y5HXCPPQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-asset/src/identity.mjs"],
|
|
4
|
+
"sourcesContent": ["import { VIEW_PAGE_TYPES } from '@forgeax/view-workspace-core/contract';\nimport { RESOURCE_FALLBACK_LAYOUT } from '@forgeax/view-workspace-core/resource-page';\n\nexport const PLUGIN_ID = 'forgeax.view.asset';\nexport const FRONTEND_PLUGIN_ID = 'forgeax.view.page.asset.frontend';\nexport const FRONTEND_MODULE = '@forgeax/view/plugins/asset/frontend';\nexport const PAGE_TYPE = VIEW_PAGE_TYPES.asset;\nexport const PAGE_TITLE_I18N_KEY = 'view.pages.asset';\nexport const PAGE_ORDER = 80;\nexport const PROPERTIES_SLOT = 'asset-properties';\nexport const RESOURCE_SELECTOR = Object.freeze({ fallback: true });\nexport const PAGE_PRIORITY = 0;\nexport const PROPERTIES_LAYOUT = RESOURCE_FALLBACK_LAYOUT;\nexport const PROPERTIES_PANEL = 'AssetProperties';\nexport const PROPERTIES_ICON = 'detail';\nexport const PROPERTIES_TITLE_I18N_KEY = 'view.slots.assetProperties';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,IAAM,YAAY;AAClB,IAAM,qBAAqB;AAC3B,IAAM,kBAAkB;AACxB,IAAM,YAAY,gBAAgB;AAClC,IAAM,sBAAsB;AAC5B,IAAM,aAAa;AACnB,IAAM,kBAAkB;AACxB,IAAM,oBAAoB,OAAO,OAAO,EAAE,UAAU,KAAK,CAAC;AAC1D,IAAM,gBAAgB;AACtB,IAAM,oBAAoB;AAC1B,IAAM,mBAAmB;AACzB,IAAM,kBAAkB;AACxB,IAAM,4BAA4B;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mountRunObserver
|
|
3
|
+
} from "./chunk-UDVQHPWV.mjs";
|
|
4
|
+
import {
|
|
5
|
+
DISPLAY_SURFACE_ID,
|
|
6
|
+
DISPLAY_TARGET_ROLE,
|
|
7
|
+
FRONTEND_PLUGIN_ID,
|
|
8
|
+
PAGE_TITLE_I18N_KEY,
|
|
9
|
+
PAGE_TYPE,
|
|
10
|
+
VIEW_STATUS_SERVICE,
|
|
11
|
+
VIEW_STATUS_TOPIC
|
|
12
|
+
} from "./chunk-KNBAYU5I.mjs";
|
|
13
|
+
|
|
14
|
+
// packages/view-plugin-display/src/status.mjs
|
|
15
|
+
var ViewDisplayStatus = class {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.state = { status: "idle", run: null, target: null, error: null };
|
|
18
|
+
this.listeners = /* @__PURE__ */ new Set();
|
|
19
|
+
}
|
|
20
|
+
update(snapshot = {}) {
|
|
21
|
+
const state = snapshot.status ?? snapshot.state;
|
|
22
|
+
const status = state === "occupied" ? "running" : state === "ready" ? "idle" : state ?? (snapshot.occupancy ? "running" : "idle");
|
|
23
|
+
this.state = {
|
|
24
|
+
status,
|
|
25
|
+
run: snapshot.run ?? snapshot.occupancy?.run ?? null,
|
|
26
|
+
target: snapshot.target ?? null,
|
|
27
|
+
error: snapshot.error ? String(snapshot.error) : null,
|
|
28
|
+
observation: snapshot.observation ?? null,
|
|
29
|
+
binding: snapshot.binding ?? null
|
|
30
|
+
};
|
|
31
|
+
for (const listener of this.listeners) listener();
|
|
32
|
+
}
|
|
33
|
+
getSnapshot = () => this.state;
|
|
34
|
+
snapshot() {
|
|
35
|
+
return this.state;
|
|
36
|
+
}
|
|
37
|
+
renderStatus() {
|
|
38
|
+
if (this.state.error) return `View connection error: ${this.state.error}`;
|
|
39
|
+
if (this.state.status === "unavailable") return "View unavailable";
|
|
40
|
+
if (this.state.status === "stopping") return "View stopping";
|
|
41
|
+
return this.state.status === "running" ? "View ready (running)" : "View ready (idle)";
|
|
42
|
+
}
|
|
43
|
+
subscribe = (listener) => {
|
|
44
|
+
this.listeners.add(listener);
|
|
45
|
+
return () => this.listeners.delete(listener);
|
|
46
|
+
};
|
|
47
|
+
dispose() {
|
|
48
|
+
this.listeners.clear();
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// packages/view-plugin-display/src/frontend.mjs
|
|
53
|
+
var viewDisplayFrontendPlugin = {
|
|
54
|
+
name: FRONTEND_PLUGIN_ID,
|
|
55
|
+
inject: ["viewOperationClient"],
|
|
56
|
+
provide: ["viewDisplayStatus"],
|
|
57
|
+
async apply(ctx, config = {}) {
|
|
58
|
+
const pageHost = config.pageHost ?? ctx.get?.("pageHost", false);
|
|
59
|
+
const document = config.document ?? globalThis.document;
|
|
60
|
+
const status = new ViewDisplayStatus();
|
|
61
|
+
let unregisterPageType;
|
|
62
|
+
let unmountPage;
|
|
63
|
+
let disposeObservation;
|
|
64
|
+
let live = true;
|
|
65
|
+
if (document?.createElement) {
|
|
66
|
+
if (!pageHost) throw new TypeError("View display Frontend Plugin requires pageHost");
|
|
67
|
+
if (document.getElementById?.(DISPLAY_SURFACE_ID)) {
|
|
68
|
+
throw new Error(`Display Fiber requires one unique surface: ${DISPLAY_SURFACE_ID}`);
|
|
69
|
+
}
|
|
70
|
+
unregisterPageType = pageHost.registerType({
|
|
71
|
+
typeId: PAGE_TYPE,
|
|
72
|
+
titleKey: PAGE_TITLE_I18N_KEY,
|
|
73
|
+
order: 10,
|
|
74
|
+
closable: false,
|
|
75
|
+
singleton: true,
|
|
76
|
+
initial: true,
|
|
77
|
+
openable: false,
|
|
78
|
+
layout: "surface",
|
|
79
|
+
showPanelRail: false,
|
|
80
|
+
hideWhenInactive: config.displayCarrier !== true
|
|
81
|
+
});
|
|
82
|
+
const surface = document.createElement(config.displayCarrier === true ? "iframe" : "section");
|
|
83
|
+
surface.id = DISPLAY_SURFACE_ID;
|
|
84
|
+
surface.name = DISPLAY_SURFACE_ID;
|
|
85
|
+
surface.title = "ForgeaX runtime capture";
|
|
86
|
+
surface.className = "fx-view-display-surface";
|
|
87
|
+
surface.dataset.forgeaxViewSurface = "engine-target";
|
|
88
|
+
surface.dataset.forgeaxViewDisplayOwner = "frontend-fiber";
|
|
89
|
+
surface.dataset.forgeaxViewTargetRole = DISPLAY_TARGET_ROLE;
|
|
90
|
+
if (config.displayCarrier === true) surface.setAttribute("aria-hidden", "true");
|
|
91
|
+
surface.style.border = "0";
|
|
92
|
+
surface.style.display = "block";
|
|
93
|
+
surface.style.pointerEvents = config.displayCarrier === true ? "none" : "auto";
|
|
94
|
+
if (config.displayCarrier !== true) {
|
|
95
|
+
surface.dataset.forgeaxViewSurface = "run-observer";
|
|
96
|
+
surface.className = "fx-view-run-observer";
|
|
97
|
+
disposeObservation = mountRunObserver({
|
|
98
|
+
document,
|
|
99
|
+
surface,
|
|
100
|
+
status,
|
|
101
|
+
client: ctx.get("viewOperationClient")
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
unmountPage = pageHost.mount(PAGE_TYPE, surface);
|
|
106
|
+
} catch (error) {
|
|
107
|
+
unregisterPageType();
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
ctx.provide("viewDisplayStatus", status);
|
|
112
|
+
const transport = ctx.get?.("hostTransport", false);
|
|
113
|
+
let observedEvent = false;
|
|
114
|
+
const unsubscribe = transport?.subscribe?.(VIEW_STATUS_TOPIC, (payload) => {
|
|
115
|
+
observedEvent = true;
|
|
116
|
+
status.update(payload ?? {});
|
|
117
|
+
});
|
|
118
|
+
const initialController = new AbortController();
|
|
119
|
+
if (typeof transport?.request === "function") {
|
|
120
|
+
void transport.request(VIEW_STATUS_SERVICE, void 0, { signal: initialController.signal }).then((snapshot) => {
|
|
121
|
+
if (live && !observedEvent) status.update(snapshot ?? {});
|
|
122
|
+
}).catch(() => {
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const removeDisconnect = transport?.onDisconnect?.((error) => {
|
|
126
|
+
if (!live) return;
|
|
127
|
+
status.update({ status: "error", error: error?.message ?? String(error) });
|
|
128
|
+
});
|
|
129
|
+
ctx.effect(() => async () => {
|
|
130
|
+
live = false;
|
|
131
|
+
initialController.abort();
|
|
132
|
+
unsubscribe?.();
|
|
133
|
+
removeDisconnect?.();
|
|
134
|
+
unmountPage?.();
|
|
135
|
+
unregisterPageType?.();
|
|
136
|
+
disposeObservation?.();
|
|
137
|
+
status.dispose();
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
var frontend_default = viewDisplayFrontendPlugin;
|
|
142
|
+
|
|
143
|
+
export {
|
|
144
|
+
ViewDisplayStatus,
|
|
145
|
+
frontend_default
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=chunk-YTHGRKGI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../packages/view-plugin-display/src/status.mjs", "../../../packages/view-plugin-display/src/frontend.mjs"],
|
|
4
|
+
"sourcesContent": ["export class ViewDisplayStatus {\n constructor() {\n this.state = { status: 'idle', run: null, target: null, error: null };\n this.listeners = new Set();\n }\n\n update(snapshot = {}) {\n const state = snapshot.status ?? snapshot.state;\n const status =\n state === 'occupied'\n ? 'running'\n : state === 'ready'\n ? 'idle'\n : state ?? (snapshot.occupancy ? 'running' : 'idle');\n this.state = {\n status,\n run: snapshot.run ?? snapshot.occupancy?.run ?? null,\n target: snapshot.target ?? null,\n error: snapshot.error ? String(snapshot.error) : null,\n observation: snapshot.observation ?? null,\n binding: snapshot.binding ?? null,\n };\n for (const listener of this.listeners) listener();\n }\n\n getSnapshot = () => this.state;\n\n snapshot() {\n return this.state;\n }\n\n renderStatus() {\n if (this.state.error) return `View connection error: ${this.state.error}`;\n if (this.state.status === 'unavailable') return 'View unavailable';\n if (this.state.status === 'stopping') return 'View stopping';\n return this.state.status === 'running' ? 'View ready (running)' : 'View ready (idle)';\n }\n\n subscribe = (listener) => {\n this.listeners.add(listener);\n return () => this.listeners.delete(listener);\n }\n\n dispose() {\n this.listeners.clear();\n }\n}\n", "import {\n PAGE_TYPE,\n PAGE_TITLE_I18N_KEY,\n DISPLAY_SURFACE_ID,\n DISPLAY_TARGET_ROLE,\n FRONTEND_PLUGIN_ID,\n VIEW_STATUS_SERVICE,\n VIEW_STATUS_TOPIC,\n} from './identity.mjs';\n\nimport { ViewDisplayStatus } from './status.mjs';\nimport { mountRunObserver } from './ui/run-observer.mjs';\nexport { ViewDisplayStatus } from './status.mjs';\n\nconst viewDisplayFrontendPlugin = {\n name: FRONTEND_PLUGIN_ID,\n inject: ['viewOperationClient'],\n provide: ['viewDisplayStatus'],\n async apply(ctx, config = {}) {\n const pageHost = config.pageHost ?? ctx.get?.('pageHost', false);\n const document = config.document ?? globalThis.document;\n const status = new ViewDisplayStatus();\n let unregisterPageType;\n let unmountPage;\n let disposeObservation;\n let live = true;\n if (document?.createElement) {\n if (!pageHost) throw new TypeError('View display Frontend Plugin requires pageHost');\n if (document.getElementById?.(DISPLAY_SURFACE_ID)) {\n throw new Error(`Display Fiber requires one unique surface: ${DISPLAY_SURFACE_ID}`);\n }\n unregisterPageType = pageHost.registerType({\n typeId: PAGE_TYPE,\n titleKey: PAGE_TITLE_I18N_KEY,\n order: 10,\n closable: false,\n singleton: true,\n initial: true,\n openable: false,\n layout: 'surface',\n showPanelRail: false,\n hideWhenInactive: config.displayCarrier !== true,\n });\n const surface = document.createElement(config.displayCarrier === true ? 'iframe' : 'section');\n surface.id = DISPLAY_SURFACE_ID;\n surface.name = DISPLAY_SURFACE_ID;\n surface.title = 'ForgeaX runtime capture';\n surface.className = 'fx-view-display-surface';\n surface.dataset.forgeaxViewSurface = 'engine-target';\n surface.dataset.forgeaxViewDisplayOwner = 'frontend-fiber';\n surface.dataset.forgeaxViewTargetRole = DISPLAY_TARGET_ROLE;\n if (config.displayCarrier === true) surface.setAttribute('aria-hidden', 'true');\n surface.style.border = '0';\n surface.style.display = 'block';\n surface.style.pointerEvents = config.displayCarrier === true ? 'none' : 'auto';\n if (config.displayCarrier !== true) {\n surface.dataset.forgeaxViewSurface = 'run-observer';\n surface.className = 'fx-view-run-observer';\n disposeObservation = mountRunObserver({\n document, surface, status, client: ctx.get('viewOperationClient'),\n });\n }\n try {\n unmountPage = pageHost.mount(PAGE_TYPE, surface);\n } catch (error) {\n unregisterPageType();\n throw error;\n }\n }\n ctx.provide('viewDisplayStatus', status);\n const transport = ctx.get?.('hostTransport', false);\n let observedEvent = false;\n const unsubscribe = transport?.subscribe?.(VIEW_STATUS_TOPIC, (payload) => {\n observedEvent = true;\n status.update(payload ?? {});\n });\n const initialController = new AbortController();\n if (typeof transport?.request === 'function') {\n void transport\n .request(VIEW_STATUS_SERVICE, undefined, { signal: initialController.signal })\n .then((snapshot) => {\n if (live && !observedEvent) status.update(snapshot ?? {});\n })\n .catch(() => {});\n }\n const removeDisconnect = transport?.onDisconnect?.((error) => {\n if (!live) return;\n status.update({ status: 'error', error: error?.message ?? String(error) });\n });\n ctx.effect(() => async () => {\n live = false;\n initialController.abort();\n unsubscribe?.();\n removeDisconnect?.();\n unmountPage?.();\n unregisterPageType?.();\n disposeObservation?.();\n status.dispose();\n });\n },\n};\n\nexport default viewDisplayFrontendPlugin;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|