framefields 2.0.2
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/LICENCE +202 -0
- package/README.md +740 -0
- package/dist/audio/index.d.mts +5 -0
- package/dist/audio/index.mjs +14 -0
- package/dist/audio-Dvwwz8xU.d.mts +37 -0
- package/dist/audio-Dvwwz8xU.d.mts.map +1 -0
- package/dist/audio-TAvPwzLR.mjs +214 -0
- package/dist/audio-TAvPwzLR.mjs.map +1 -0
- package/dist/audio-x28ZgQBP.mjs +85 -0
- package/dist/audio-x28ZgQBP.mjs.map +1 -0
- package/dist/chunk-GMkBE123.mjs +47 -0
- package/dist/client-C74hb7fy.mjs +66 -0
- package/dist/client-C74hb7fy.mjs.map +1 -0
- package/dist/dist-1iUYuPct.mjs +1859 -0
- package/dist/dist-1iUYuPct.mjs.map +1 -0
- package/dist/dist-Bx6J0VcM.mjs +1859 -0
- package/dist/dist-Bx6J0VcM.mjs.map +1 -0
- package/dist/dist-C_hjvkdN.mjs +2220 -0
- package/dist/dist-C_hjvkdN.mjs.map +1 -0
- package/dist/dist-DKm2IyEJ.mjs +94 -0
- package/dist/dist-DKm2IyEJ.mjs.map +1 -0
- package/dist/dist-cjs-B5EVqDFp.mjs +85 -0
- package/dist/dist-cjs-B5EVqDFp.mjs.map +1 -0
- package/dist/dist-cjs-BGJkdexX.mjs +437 -0
- package/dist/dist-cjs-BGJkdexX.mjs.map +1 -0
- package/dist/dist-cjs-BKmGCgtm.mjs +9069 -0
- package/dist/dist-cjs-BKmGCgtm.mjs.map +1 -0
- package/dist/dist-cjs-BUc0_kg-.mjs +1091 -0
- package/dist/dist-cjs-BUc0_kg-.mjs.map +1 -0
- package/dist/dist-cjs-BUwe2XhR.mjs +153 -0
- package/dist/dist-cjs-BUwe2XhR.mjs.map +1 -0
- package/dist/dist-cjs-BWgoUCXJ.mjs +137 -0
- package/dist/dist-cjs-BWgoUCXJ.mjs.map +1 -0
- package/dist/dist-cjs-CmZEMtO6.mjs +6 -0
- package/dist/dist-cjs-D7kEM-Mj.mjs +181 -0
- package/dist/dist-cjs-D7kEM-Mj.mjs.map +1 -0
- package/dist/dist-cjs-DFUmy89O.mjs +48 -0
- package/dist/dist-cjs-DFUmy89O.mjs.map +1 -0
- package/dist/dist-cjs-Df7144zM.mjs +209 -0
- package/dist/dist-cjs-Df7144zM.mjs.map +1 -0
- package/dist/dist-cjs-DgxjcvBN.mjs +98 -0
- package/dist/dist-cjs-DgxjcvBN.mjs.map +1 -0
- package/dist/dist-cjs-DsMdld8l.mjs +5015 -0
- package/dist/dist-cjs-DsMdld8l.mjs.map +1 -0
- package/dist/dist-cjs-Dzs5P3K0.mjs +51 -0
- package/dist/dist-cjs-Dzs5P3K0.mjs.map +1 -0
- package/dist/dist-cjs-ECMuIF57.mjs +323 -0
- package/dist/dist-cjs-ECMuIF57.mjs.map +1 -0
- package/dist/dist-cjs-lYvO8aDo.mjs +64 -0
- package/dist/dist-cjs-lYvO8aDo.mjs.map +1 -0
- package/dist/dist-cjs-qEJrwjGk.mjs +66 -0
- package/dist/dist-cjs-qEJrwjGk.mjs.map +1 -0
- package/dist/dist-cjs-x5cwlqA5.mjs +43 -0
- package/dist/dist-cjs-x5cwlqA5.mjs.map +1 -0
- package/dist/dist-gjHmorxL.mjs +27479 -0
- package/dist/dist-gjHmorxL.mjs.map +1 -0
- package/dist/effects/index.d.mts +5 -0
- package/dist/effects/index.mjs +35 -0
- package/dist/effects-CHWORCYd.mjs +811 -0
- package/dist/effects-CHWORCYd.mjs.map +1 -0
- package/dist/event-streams-D-APZ7Ke.mjs +204 -0
- package/dist/event-streams-D-APZ7Ke.mjs.map +1 -0
- package/dist/fonts/index.d.mts +2 -0
- package/dist/fonts/index.mjs +3 -0
- package/dist/fonts-DrGTBJJk.mjs +188 -0
- package/dist/fonts-DrGTBJJk.mjs.map +1 -0
- package/dist/index-B0BNPEoH.d.mts +2117 -0
- package/dist/index-B0BNPEoH.d.mts.map +1 -0
- package/dist/index-BMVVmc4G.d.mts +72 -0
- package/dist/index-BMVVmc4G.d.mts.map +1 -0
- package/dist/index-D1ZsMpke.d.mts +264 -0
- package/dist/index-D1ZsMpke.d.mts.map +1 -0
- package/dist/index-D2jDC7O5.d.mts +3643 -0
- package/dist/index-D2jDC7O5.d.mts.map +1 -0
- package/dist/index-D2wJqSl5.d.mts +114 -0
- package/dist/index-D2wJqSl5.d.mts.map +1 -0
- package/dist/index-DKFGNyMB.d.mts +309 -0
- package/dist/index-DKFGNyMB.d.mts.map +1 -0
- package/dist/index-DiSKzDGR.d.mts +65 -0
- package/dist/index-DiSKzDGR.d.mts.map +1 -0
- package/dist/index.d.mts +4425 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +2623 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package-C58KmGKw.mjs +6 -0
- package/dist/package-C58KmGKw.mjs.map +1 -0
- package/dist/preview/index.d.mts +90 -0
- package/dist/preview/index.d.mts.map +1 -0
- package/dist/preview/index.mjs +15 -0
- package/dist/preview-engine/audio.mjs +1 -0
- package/dist/preview-engine/child_process-AIL2NBWS.mjs +1 -0
- package/dist/preview-engine/chunk-24P6DAB3.mjs +1 -0
- package/dist/preview-engine/chunk-37EFVZWT.mjs +1 -0
- package/dist/preview-engine/chunk-3O5OKR6D.mjs +223 -0
- package/dist/preview-engine/chunk-47VT677S.mjs +8 -0
- package/dist/preview-engine/chunk-4BEJJKEU.mjs +315 -0
- package/dist/preview-engine/chunk-4GEWSUX5.mjs +1 -0
- package/dist/preview-engine/chunk-55CCFPUX.mjs +237 -0
- package/dist/preview-engine/chunk-5JD65JSJ.mjs +110 -0
- package/dist/preview-engine/chunk-5UP7FSGT.mjs +294 -0
- package/dist/preview-engine/chunk-5XDHHOF2.mjs +367 -0
- package/dist/preview-engine/chunk-6YJP57MZ.mjs +729 -0
- package/dist/preview-engine/chunk-6ZOXGAYA.mjs +112 -0
- package/dist/preview-engine/chunk-AOLAHYVV.mjs +529 -0
- package/dist/preview-engine/chunk-B6PLCMBM.mjs +1 -0
- package/dist/preview-engine/chunk-BJKH76OM.mjs +264 -0
- package/dist/preview-engine/chunk-BUIQ5TUH.mjs +104 -0
- package/dist/preview-engine/chunk-BVF64D6H.mjs +1 -0
- package/dist/preview-engine/chunk-CA5N7JRZ.mjs +138 -0
- package/dist/preview-engine/chunk-CNSHAFEA.mjs +1 -0
- package/dist/preview-engine/chunk-CURR5X7D.mjs +1 -0
- package/dist/preview-engine/chunk-CVGM2U4J.mjs +47 -0
- package/dist/preview-engine/chunk-CYY366IE.mjs +1 -0
- package/dist/preview-engine/chunk-D5PHI6ET.mjs +109 -0
- package/dist/preview-engine/chunk-D7MZHP2Y.mjs +275 -0
- package/dist/preview-engine/chunk-DPPH3NK2.mjs +182 -0
- package/dist/preview-engine/chunk-DPST2XLC.mjs +418 -0
- package/dist/preview-engine/chunk-DRLEOHN5.mjs +1 -0
- package/dist/preview-engine/chunk-EDIZNO3P.mjs +1 -0
- package/dist/preview-engine/chunk-EHIIT4ZR.mjs +52 -0
- package/dist/preview-engine/chunk-FKZ4XXPE.mjs +1 -0
- package/dist/preview-engine/chunk-G3HW4VER.mjs +60 -0
- package/dist/preview-engine/chunk-G76HSKOS.mjs +184 -0
- package/dist/preview-engine/chunk-GYG2IIBR.mjs +1 -0
- package/dist/preview-engine/chunk-H2F5NVQ6.mjs +63 -0
- package/dist/preview-engine/chunk-H5BPCY7N.mjs +188 -0
- package/dist/preview-engine/chunk-HAXK42HG.mjs +997 -0
- package/dist/preview-engine/chunk-HXMDPMLB.mjs +1 -0
- package/dist/preview-engine/chunk-HYBAPT6I.mjs +1 -0
- package/dist/preview-engine/chunk-I4FH6HYU.mjs +73 -0
- package/dist/preview-engine/chunk-IYVN2QEL.mjs +1 -0
- package/dist/preview-engine/chunk-JPXQPP6J.mjs +1 -0
- package/dist/preview-engine/chunk-JWNHTRED.mjs +164 -0
- package/dist/preview-engine/chunk-KZOLCZIV.mjs +103 -0
- package/dist/preview-engine/chunk-L62MRHGZ.mjs +89 -0
- package/dist/preview-engine/chunk-LEEZXHQO.mjs +117 -0
- package/dist/preview-engine/chunk-LKYN3BM2.mjs +1 -0
- package/dist/preview-engine/chunk-LP3EP33S.mjs +610 -0
- package/dist/preview-engine/chunk-M2GRYRLM.mjs +111 -0
- package/dist/preview-engine/chunk-MC7TZZLD.mjs +134 -0
- package/dist/preview-engine/chunk-MT2DZQHO.mjs +1 -0
- package/dist/preview-engine/chunk-MTJHQATU.mjs +1 -0
- package/dist/preview-engine/chunk-N4LHIPHZ.mjs +340 -0
- package/dist/preview-engine/chunk-N4PWLBZ7.mjs +5 -0
- package/dist/preview-engine/chunk-NQZKBFC6.mjs +40 -0
- package/dist/preview-engine/chunk-NWRSVVTF.mjs +186 -0
- package/dist/preview-engine/chunk-P3HBP725.mjs +1 -0
- package/dist/preview-engine/chunk-PIAJWALT.mjs +1 -0
- package/dist/preview-engine/chunk-PJ3DVG45.mjs +1 -0
- package/dist/preview-engine/chunk-QP2NI4XD.mjs +82 -0
- package/dist/preview-engine/chunk-SA3JUR6D.mjs +52 -0
- package/dist/preview-engine/chunk-SRT2OCQW.mjs +1 -0
- package/dist/preview-engine/chunk-SWD76532.mjs +98 -0
- package/dist/preview-engine/chunk-SXX7HX34.mjs +191 -0
- package/dist/preview-engine/chunk-SZ7YRPKO.mjs +3 -0
- package/dist/preview-engine/chunk-TMRLZV5X.mjs +1 -0
- package/dist/preview-engine/chunk-U446SQP3.mjs +292 -0
- package/dist/preview-engine/chunk-UDNCEHUI.mjs +141 -0
- package/dist/preview-engine/chunk-V3H7WWOT.mjs +271 -0
- package/dist/preview-engine/chunk-V7ZVVUQU.mjs +108 -0
- package/dist/preview-engine/chunk-VJGK7MLJ.mjs +3 -0
- package/dist/preview-engine/chunk-VSSB73UU.mjs +58 -0
- package/dist/preview-engine/chunk-VXUJWPIK.mjs +1 -0
- package/dist/preview-engine/chunk-XD4GKD6H.mjs +5 -0
- package/dist/preview-engine/chunk-XKO4RYKN.mjs +3 -0
- package/dist/preview-engine/chunk-XOEEGC4Z.mjs +1 -0
- package/dist/preview-engine/chunk-YAQFFQPG.mjs +1 -0
- package/dist/preview-engine/chunk-YKMBRUAE.mjs +1 -0
- package/dist/preview-engine/chunk-YSTLMWCG.mjs +1 -0
- package/dist/preview-engine/chunk-Z4ERCLNF.mjs +1 -0
- package/dist/preview-engine/chunk-ZEYUXJIV.mjs +1 -0
- package/dist/preview-engine/chunk-ZX6APG6E.mjs +117 -0
- package/dist/preview-engine/effects.mjs +1 -0
- package/dist/preview-engine/esbuild-GWV7CM7D.mjs +1 -0
- package/dist/preview-engine/fonts.mjs +1 -0
- package/dist/preview-engine/framefields.mjs +1959 -0
- package/dist/preview-engine/onnxruntime-node-56GSZEH3.mjs +1 -0
- package/dist/preview-engine/player.mjs +155 -0
- package/dist/preview-engine/renderers-2AUSIYZN.mjs +1 -0
- package/dist/preview-engine/renderers-2QN6KZJP.mjs +1 -0
- package/dist/preview-engine/renderers-32SKW7ML.mjs +1 -0
- package/dist/preview-engine/renderers-5QYK6766.mjs +1 -0
- package/dist/preview-engine/renderers-6BJA6MSU.mjs +251 -0
- package/dist/preview-engine/renderers-6QAF3LQ2.mjs +1 -0
- package/dist/preview-engine/renderers-7AO5746S.mjs +296 -0
- package/dist/preview-engine/renderers-AFYKNM6N.mjs +1 -0
- package/dist/preview-engine/renderers-AGMH5CRH.mjs +1 -0
- package/dist/preview-engine/renderers-AHSGP6LY.mjs +126 -0
- package/dist/preview-engine/renderers-ASTBICLA.mjs +1 -0
- package/dist/preview-engine/renderers-BHVPLYNN.mjs +1 -0
- package/dist/preview-engine/renderers-D7PVQFVU.mjs +1 -0
- package/dist/preview-engine/renderers-DB4ABTNA.mjs +1 -0
- package/dist/preview-engine/renderers-F2NFJI5L.mjs +1 -0
- package/dist/preview-engine/renderers-FI7YHNLY.mjs +1 -0
- package/dist/preview-engine/renderers-GBHULMPH.mjs +1 -0
- package/dist/preview-engine/renderers-GUKQUMGG.mjs +55 -0
- package/dist/preview-engine/renderers-HGT7QDY3.mjs +1 -0
- package/dist/preview-engine/renderers-HOYLA7ZK.mjs +1 -0
- package/dist/preview-engine/renderers-KKI2D3MZ.mjs +1 -0
- package/dist/preview-engine/renderers-KRAJNV4E.mjs +1 -0
- package/dist/preview-engine/renderers-KUGZKSVE.mjs +1 -0
- package/dist/preview-engine/renderers-L2EQQIOC.mjs +1 -0
- package/dist/preview-engine/renderers-LK3NRMGR.mjs +1 -0
- package/dist/preview-engine/renderers-LX654SZ3.mjs +1 -0
- package/dist/preview-engine/renderers-MCFQFYEL.mjs +1 -0
- package/dist/preview-engine/renderers-O6HOYIPS.mjs +1 -0
- package/dist/preview-engine/renderers-OEVXCGE2.mjs +1 -0
- package/dist/preview-engine/renderers-QVD6C4CS.mjs +1 -0
- package/dist/preview-engine/renderers-R3XEYD5V.mjs +248 -0
- package/dist/preview-engine/renderers-RBFWJWVM.mjs +1 -0
- package/dist/preview-engine/renderers-RX3VLVLO.mjs +1 -0
- package/dist/preview-engine/renderers-SM6JP64K.mjs +1 -0
- package/dist/preview-engine/renderers-TKMAATVS.mjs +1 -0
- package/dist/preview-engine/renderers-UGZUPONY.mjs +1 -0
- package/dist/preview-engine/renderers-UTFXZE3G.mjs +1 -0
- package/dist/preview-engine/renderers-UWPH7HBH.mjs +1 -0
- package/dist/preview-engine/renderers-UZGECFVO.mjs +1 -0
- package/dist/preview-engine/renderers-VGU3LNLT.mjs +1 -0
- package/dist/preview-engine/renderers-W3VVM5HB.mjs +1 -0
- package/dist/preview-engine/renderers-WJUTT5BB.mjs +1 -0
- package/dist/preview-engine/renderers-XA2M4YXK.mjs +1 -0
- package/dist/preview-engine/renderers-XIHRFEFQ.mjs +1 -0
- package/dist/preview-engine/renderers-XJTA5MFG.mjs +1 -0
- package/dist/preview-engine/renderers-XLTY5APF.mjs +1 -0
- package/dist/preview-engine/renderers-XZ3VXFGZ.mjs +1 -0
- package/dist/preview-engine/renderers-YKUQUCTO.mjs +124 -0
- package/dist/preview-engine/renderers-YVN3EIOP.mjs +1 -0
- package/dist/preview-engine/renderers-YWRP23SZ.mjs +125 -0
- package/dist/preview-engine/renderers-ZPWOUWZJ.mjs +120 -0
- package/dist/preview-engine/resvg-js-VMU4A77S.mjs +1 -0
- package/dist/preview-engine/server-utils-2FAIV45N.mjs +1 -0
- package/dist/preview-engine/sharp-V6ZTBNDW.mjs +1 -0
- package/dist/preview-engine/shims/fs-promises.mjs +1 -0
- package/dist/preview-engine/shims/fs.mjs +1 -0
- package/dist/preview-engine/shims/module.mjs +1 -0
- package/dist/preview-engine/shims/os.mjs +1 -0
- package/dist/preview-engine/shims/path.mjs +1 -0
- package/dist/preview-engine/shims/url.mjs +1 -0
- package/dist/preview-engine/signals.mjs +1 -0
- package/dist/preview-engine/webgpu-NSSANM4F.mjs +1 -0
- package/dist/preview-uQM210iy.mjs +2149 -0
- package/dist/preview-uQM210iy.mjs.map +1 -0
- package/dist/program-Dl510wmI.mjs +5183 -0
- package/dist/program-Dl510wmI.mjs.map +1 -0
- package/dist/renderer/index.d.mts +3 -0
- package/dist/renderer/index.mjs +6 -0
- package/dist/renderer-3BNskNuJ.mjs +3 -0
- package/dist/renderer-7DOcIxFG.mjs +288 -0
- package/dist/renderer-7DOcIxFG.mjs.map +1 -0
- package/dist/renderer-9dHlMQGX.mjs +3 -0
- package/dist/renderer-B1CvhW4p.mjs +677 -0
- package/dist/renderer-B1CvhW4p.mjs.map +1 -0
- package/dist/renderer-B2XzjK0z.mjs +3 -0
- package/dist/renderer-B80s47yo.mjs +166 -0
- package/dist/renderer-B80s47yo.mjs.map +1 -0
- package/dist/renderer-B9-QSJcG.mjs +479 -0
- package/dist/renderer-B9-QSJcG.mjs.map +1 -0
- package/dist/renderer-BAQmR0Zo.mjs +3 -0
- package/dist/renderer-BDLnExoP.mjs +127 -0
- package/dist/renderer-BDLnExoP.mjs.map +1 -0
- package/dist/renderer-BGXU6vcW.mjs +270 -0
- package/dist/renderer-BGXU6vcW.mjs.map +1 -0
- package/dist/renderer-BGvORwkQ.mjs +3 -0
- package/dist/renderer-BLikd6BK.mjs +3 -0
- package/dist/renderer-BMovYRoR.mjs +3 -0
- package/dist/renderer-BQHbp-Sp.mjs +243 -0
- package/dist/renderer-BQHbp-Sp.mjs.map +1 -0
- package/dist/renderer-BREIjsUU.mjs +252 -0
- package/dist/renderer-BREIjsUU.mjs.map +1 -0
- package/dist/renderer-BSbTJBWc.mjs +3 -0
- package/dist/renderer-BTu2EVhF.mjs +3 -0
- package/dist/renderer-BU1rwNRT.mjs +3 -0
- package/dist/renderer-BXMmISWG.mjs +499 -0
- package/dist/renderer-BXMmISWG.mjs.map +1 -0
- package/dist/renderer-BZJm3m4f.mjs +3 -0
- package/dist/renderer-B_NuVaIP.mjs +744 -0
- package/dist/renderer-B_NuVaIP.mjs.map +1 -0
- package/dist/renderer-BfJSUjPN.mjs +3 -0
- package/dist/renderer-BqyAgNt3.mjs +3 -0
- package/dist/renderer-BryTM2g7.mjs +3 -0
- package/dist/renderer-BsgIcBKH.mjs +391 -0
- package/dist/renderer-BsgIcBKH.mjs.map +1 -0
- package/dist/renderer-ByDhfrPE.mjs +422 -0
- package/dist/renderer-ByDhfrPE.mjs.map +1 -0
- package/dist/renderer-C-H680_l.mjs +3 -0
- package/dist/renderer-C17wL9QX.mjs +181 -0
- package/dist/renderer-C17wL9QX.mjs.map +1 -0
- package/dist/renderer-C2n-EHxg.mjs +1 -0
- package/dist/renderer-CB5aWAaf.mjs +343 -0
- package/dist/renderer-CB5aWAaf.mjs.map +1 -0
- package/dist/renderer-CB7lH5K8.mjs +3 -0
- package/dist/renderer-CDLrNgfo.mjs +3 -0
- package/dist/renderer-CDOUAN7X.mjs +454 -0
- package/dist/renderer-CDOUAN7X.mjs.map +1 -0
- package/dist/renderer-CH8sdfYX.mjs +387 -0
- package/dist/renderer-CH8sdfYX.mjs.map +1 -0
- package/dist/renderer-CIvaRnP_.mjs +261 -0
- package/dist/renderer-CIvaRnP_.mjs.map +1 -0
- package/dist/renderer-CMzEjdzi.mjs +369 -0
- package/dist/renderer-CMzEjdzi.mjs.map +1 -0
- package/dist/renderer-COkcU3db.mjs +3302 -0
- package/dist/renderer-COkcU3db.mjs.map +1 -0
- package/dist/renderer-CQCoggIa.mjs +3 -0
- package/dist/renderer-CQdVj2JS.mjs +3 -0
- package/dist/renderer-CQiTodg9.mjs +337 -0
- package/dist/renderer-CQiTodg9.mjs.map +1 -0
- package/dist/renderer-CV2m6k1V.mjs +3 -0
- package/dist/renderer-CYY-poLe.mjs +3 -0
- package/dist/renderer-CZgB5st8.mjs +3 -0
- package/dist/renderer-C_Ki91kc.mjs +3 -0
- package/dist/renderer-CclIvsLO.mjs +3 -0
- package/dist/renderer-Cj-whdVr.mjs +655 -0
- package/dist/renderer-Cj-whdVr.mjs.map +1 -0
- package/dist/renderer-CkykdR_D.mjs +3 -0
- package/dist/renderer-Cl1oUXMi.mjs +1143 -0
- package/dist/renderer-Cl1oUXMi.mjs.map +1 -0
- package/dist/renderer-CmApuKjS.mjs +3 -0
- package/dist/renderer-CpkiHRhh.mjs +269 -0
- package/dist/renderer-CpkiHRhh.mjs.map +1 -0
- package/dist/renderer-CszOjcRW.mjs +3 -0
- package/dist/renderer-CtVkU_GA.mjs +44 -0
- package/dist/renderer-CtVkU_GA.mjs.map +1 -0
- package/dist/renderer-Cu074POw.mjs +3 -0
- package/dist/renderer-CwQhzcUn.mjs +644 -0
- package/dist/renderer-CwQhzcUn.mjs.map +1 -0
- package/dist/renderer-CzPWB0Ss.mjs +273 -0
- package/dist/renderer-CzPWB0Ss.mjs.map +1 -0
- package/dist/renderer-D4qLmox-.mjs +3 -0
- package/dist/renderer-D6bWQtr-.mjs +3 -0
- package/dist/renderer-D6cJ6MSq.mjs +3 -0
- package/dist/renderer-D7EX8IjU.mjs +240 -0
- package/dist/renderer-D7EX8IjU.mjs.map +1 -0
- package/dist/renderer-DDp7_TUi.d.mts +10 -0
- package/dist/renderer-DDp7_TUi.d.mts.map +1 -0
- package/dist/renderer-DFKsLrUs.mjs +256 -0
- package/dist/renderer-DFKsLrUs.mjs.map +1 -0
- package/dist/renderer-DPSsf8-t.mjs +3 -0
- package/dist/renderer-DQLGnEFc.mjs +3 -0
- package/dist/renderer-DY2SVYUW.mjs +3 -0
- package/dist/renderer-DZGtBUCx.mjs +792 -0
- package/dist/renderer-DZGtBUCx.mjs.map +1 -0
- package/dist/renderer-DabG62XS.mjs +406 -0
- package/dist/renderer-DabG62XS.mjs.map +1 -0
- package/dist/renderer-DbaQLI4z.mjs +771 -0
- package/dist/renderer-DbaQLI4z.mjs.map +1 -0
- package/dist/renderer-DjI45OYC.mjs +71 -0
- package/dist/renderer-DjI45OYC.mjs.map +1 -0
- package/dist/renderer-Dm08-hAU.mjs +323 -0
- package/dist/renderer-Dm08-hAU.mjs.map +1 -0
- package/dist/renderer-DoAY5JbB.mjs +4 -0
- package/dist/renderer-Dp_FfvF-.mjs +401 -0
- package/dist/renderer-Dp_FfvF-.mjs.map +1 -0
- package/dist/renderer-Dt6fzgX5.mjs +756 -0
- package/dist/renderer-Dt6fzgX5.mjs.map +1 -0
- package/dist/renderer-DuplLRbp.mjs +3 -0
- package/dist/renderer-DvfUbZ31.mjs +3 -0
- package/dist/renderer-DxjVQV6f.mjs +311 -0
- package/dist/renderer-DxjVQV6f.mjs.map +1 -0
- package/dist/renderer-Fco4EmAu.mjs +23868 -0
- package/dist/renderer-Fco4EmAu.mjs.map +1 -0
- package/dist/renderer-HFfcJlmR.mjs +981 -0
- package/dist/renderer-HFfcJlmR.mjs.map +1 -0
- package/dist/renderer-I-Sw3JBB.mjs +145 -0
- package/dist/renderer-I-Sw3JBB.mjs.map +1 -0
- package/dist/renderer-OWQmmg4Z.mjs +697 -0
- package/dist/renderer-OWQmmg4Z.mjs.map +1 -0
- package/dist/renderer-Q_uUQipO.mjs +3 -0
- package/dist/renderer-Ryo2CEFD.mjs +586 -0
- package/dist/renderer-Ryo2CEFD.mjs.map +1 -0
- package/dist/renderer-Tp6OXWNZ.mjs +257 -0
- package/dist/renderer-Tp6OXWNZ.mjs.map +1 -0
- package/dist/renderer-UQFCgeNx.mjs +3 -0
- package/dist/renderer-WkVrkCVA.mjs +83 -0
- package/dist/renderer-WkVrkCVA.mjs.map +1 -0
- package/dist/renderer-XcmYTd6P.mjs +3818 -0
- package/dist/renderer-XcmYTd6P.mjs.map +1 -0
- package/dist/renderer-_uvdg48N.mjs +333 -0
- package/dist/renderer-_uvdg48N.mjs.map +1 -0
- package/dist/renderer-bZU_ndxf.mjs +8 -0
- package/dist/renderer-bZU_ndxf.mjs.map +1 -0
- package/dist/renderer-eMsnzJg9.mjs +3 -0
- package/dist/renderer-ho_jXJ0H.mjs +254 -0
- package/dist/renderer-ho_jXJ0H.mjs.map +1 -0
- package/dist/renderer-k2JL79kM.mjs +306 -0
- package/dist/renderer-k2JL79kM.mjs.map +1 -0
- package/dist/renderer-pHiz78e0.mjs +3 -0
- package/dist/renderer-pxXf9dvk.mjs +394 -0
- package/dist/renderer-pxXf9dvk.mjs.map +1 -0
- package/dist/renderer-vCFTm0oe.mjs +226 -0
- package/dist/renderer-vCFTm0oe.mjs.map +1 -0
- package/dist/renderer-vvpdx1vk.mjs +379 -0
- package/dist/renderer-vvpdx1vk.mjs.map +1 -0
- package/dist/renderer-x2s9LmVL.mjs +1121 -0
- package/dist/renderer-x2s9LmVL.mjs.map +1 -0
- package/dist/renderers-BWg16W-V-BXG_cjhM.mjs +49 -0
- package/dist/renderers-BWg16W-V-BXG_cjhM.mjs.map +1 -0
- package/dist/signals/index.d.mts +7 -0
- package/dist/signals/index.mjs +10 -0
- package/dist/signals-BwbdO3AN.mjs +224 -0
- package/dist/signals-BwbdO3AN.mjs.map +1 -0
- package/dist/signin-CZj4Oc5s.mjs +865 -0
- package/dist/signin-CZj4Oc5s.mjs.map +1 -0
- package/dist/sso-oidc-C0_31ThY.mjs +1051 -0
- package/dist/sso-oidc-C0_31ThY.mjs.map +1 -0
- package/dist/sts-DD4ggEXC.mjs +6 -0
- package/dist/sts-nXw8RDJI.mjs +1395 -0
- package/dist/sts-nXw8RDJI.mjs.map +1 -0
- package/package.json +173 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-C_hjvkdN.mjs","names":["TensorPipeline"],"sources":["../../tensor-webgpu/dist/index.mjs"],"sourcesContent":["//#region src/multiplexer/controlnet-multiplexer.ts\nvar ControlNetMultiplexer = class {\n\ttextures = /* @__PURE__ */ new Map();\n\tset(type, texture) {\n\t\tthis.textures.set(type, texture);\n\t}\n\tget(type) {\n\t\treturn this.textures.get(type);\n\t}\n\thas(type) {\n\t\treturn this.textures.has(type);\n\t}\n\tgetOutputs() {\n\t\treturn {\n\t\t\tcanny: this.textures.get(\"canny\"),\n\t\t\tdepth: this.textures.get(\"depth\"),\n\t\t\tnormals: this.textures.get(\"normals\"),\n\t\t\tposeSkeleton: this.textures.get(\"poseSkeleton\"),\n\t\t\tsegmentationMask: this.textures.get(\"segmentationMask\"),\n\t\t\tfaceLandmarks: this.textures.get(\"faceLandmarks\"),\n\t\t\tmotionVectors: this.textures.get(\"motionVectors\"),\n\t\t\tdeflickered: this.textures.get(\"deflickered\")\n\t\t};\n\t}\n\tcreateBindGroupEntry(type, bindingIndex) {\n\t\tconst tex = this.textures.get(type);\n\t\tif (!tex) throw new Error(`[ControlNetMultiplexer] Cannot create bind group entry: conditioning texture \"${type}\" is not registered in VRAM.`);\n\t\treturn {\n\t\t\tbinding: bindingIndex,\n\t\t\tresource: tex.createView({ label: `controlnet_${type}_view` })\n\t\t};\n\t}\n\texportTensorView(type) {\n\t\tconst tex = this.textures.get(type);\n\t\tif (!tex) throw new Error(`[ControlNetMultiplexer] Conditioning tensor \"${type}\" not found in multiplexer.`);\n\t\treturn {\n\t\t\ttexture: tex,\n\t\t\twidth: tex.width,\n\t\t\theight: tex.height,\n\t\t\tformat: tex.format\n\t\t};\n\t}\n\tasync readPixelsAsync(device, type) {\n\t\tconst tex = this.textures.get(type);\n\t\tif (!tex) throw new Error(`[ControlNetMultiplexer] Cannot read pixels: conditioning texture \"${type}\" is missing.`);\n\t\tconst width = tex.width;\n\t\tconst height = tex.height;\n\t\tconst format = tex.format;\n\t\tlet bytesPerPixel = 4;\n\t\tif (format === \"rgba16float\" || format === \"rg32float\") bytesPerPixel = 8;\n\t\telse if (format === \"r32float\") bytesPerPixel = 4;\n\t\telse if (format === \"rgba32float\") bytesPerPixel = 16;\n\t\tconst unalignedBytesPerRow = width * bytesPerPixel;\n\t\tconst bytesPerRow = Math.ceil(unalignedBytesPerRow / 256) * 256;\n\t\tconst bufferSize = bytesPerRow * height;\n\t\tconst stagingBuffer = device.createBuffer({\n\t\t\tsize: bufferSize,\n\t\t\tusage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,\n\t\t\tlabel: `controlnet_readback_staging_${type}`\n\t\t});\n\t\tconst encoder = device.createCommandEncoder({ label: `readback_encoder_${type}` });\n\t\tencoder.copyTextureToBuffer({ texture: tex }, {\n\t\t\tbuffer: stagingBuffer,\n\t\t\tbytesPerRow,\n\t\t\trowsPerImage: height\n\t\t}, [\n\t\t\twidth,\n\t\t\theight,\n\t\t\t1\n\t\t]);\n\t\tdevice.queue.submit([encoder.finish()]);\n\t\tawait stagingBuffer.mapAsync(GPUMapMode.READ);\n\t\tconst mappedRange = stagingBuffer.getMappedRange();\n\t\tconst resultData = new Uint8Array(width * height * bytesPerPixel);\n\t\tconst sourceBytes = new Uint8Array(mappedRange);\n\t\tif (bytesPerRow === unalignedBytesPerRow) resultData.set(sourceBytes.subarray(0, width * height * bytesPerPixel));\n\t\telse for (let y = 0; y < height; y++) {\n\t\t\tconst srcOffset = y * bytesPerRow;\n\t\t\tconst dstOffset = y * unalignedBytesPerRow;\n\t\t\tresultData.set(sourceBytes.subarray(srcOffset, srcOffset + unalignedBytesPerRow), dstOffset);\n\t\t}\n\t\tstagingBuffer.unmap();\n\t\tstagingBuffer.destroy();\n\t\treturn {\n\t\t\twidth,\n\t\t\theight,\n\t\t\tformat,\n\t\t\tdata: resultData\n\t\t};\n\t}\n\tdestroy() {\n\t\tfor (const tex of this.textures.values()) try {\n\t\t\ttex.destroy();\n\t\t} catch (_) {}\n\t\tthis.textures.clear();\n\t}\n};\n\n//#endregion\n//#region src/shaders/canny.wgsl.ts\n/**\n* @file canny.wgsl.ts\n* High-performance WebGPU Canny Edge Compute Shaders\n* Pass 1: Sobel gradient magnitude & quantized angle\n* Pass 2: Non-Maximum Suppression (NMS) & Dual-Threshold Hysteresis\n*/\nconst cannySobelWgsl = `\nstruct CannyParams {\n lowThreshold: f32,\n highThreshold: f32,\n width: u32,\n height: u32,\n};\n\n@group(0) @binding(0) var inputTex: texture_2d<f32>;\n@group(0) @binding(1) var magnitudeTex: texture_storage_2d<rgba16float, write>;\n@group(0) @binding(2) var<uniform> params: CannyParams;\n\nfn getLuma(coord: vec2<i32>, maxCoord: vec2<i32>) -> f32 {\n let clamped = clamp(coord, vec2<i32>(0), maxCoord);\n let c = textureLoad(inputTex, clamped, 0);\n return dot(c.rgb, vec3<f32>(0.299, 0.587, 0.114));\n}\n\n@compute @workgroup_size(16, 16)\nfn computeSobel(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) { return; }\n\n let x = i32(id.x);\n let y = i32(id.y);\n let maxCoord = vec2<i32>(i32(params.width) - 1, i32(params.height) - 1);\n\n let p00 = getLuma(vec2<i32>(x - 1, y - 1), maxCoord);\n let p10 = getLuma(vec2<i32>(x, y - 1), maxCoord);\n let p20 = getLuma(vec2<i32>(x + 1, y - 1), maxCoord);\n let p01 = getLuma(vec2<i32>(x - 1, y), maxCoord);\n let p21 = getLuma(vec2<i32>(x + 1, y), maxCoord);\n let p02 = getLuma(vec2<i32>(x - 1, y + 1), maxCoord);\n let p12 = getLuma(vec2<i32>(x, y + 1), maxCoord);\n let p22 = getLuma(vec2<i32>(x + 1, y + 1), maxCoord);\n\n let gx = (p20 + 2.0 * p21 + p22) - (p00 + 2.0 * p01 + p02);\n let gy = (p02 + 2.0 * p12 + p22) - (p00 + 2.0 * p10 + p20);\n\n let mag = sqrt(gx * gx + gy * gy);\n let angle = atan2(gy, gx);\n\n // Quantize angle into 4 sectors (0: 0 deg, 1: 45 deg, 2: 90 deg, 3: 135 deg)\n var sector: f32 = 0.0;\n let a = (angle * 180.0 / 3.14159265 + 180.0) % 180.0;\n if ((a >= 0.0 && a < 22.5) || (a >= 157.5 && a <= 180.0)) {\n sector = 0.0;\n } else if (a >= 22.5 && a < 67.5) {\n sector = 1.0;\n } else if (a >= 67.5 && a < 112.5) {\n sector = 2.0;\n } else {\n sector = 3.0;\n }\n\n textureStore(magnitudeTex, id.xy, vec4<f32>(mag, sector, 0.0, 1.0));\n}\n`;\nconst cannyNmsRgba8Wgsl = `\nstruct CannyParams {\n lowThreshold: f32,\n highThreshold: f32,\n width: u32,\n height: u32,\n};\n\n@group(0) @binding(0) var magnitudeTex: texture_2d<f32>;\n@group(0) @binding(1) var edgeTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(2) var<uniform> params: CannyParams;\n\n@compute @workgroup_size(16, 16)\nfn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) { return; }\n\n let x = i32(id.x);\n let y = i32(id.y);\n let maxCoord = vec2<i32>(i32(params.width) - 1, i32(params.height) - 1);\n\n let center = textureLoad(magnitudeTex, vec2<i32>(x, y), 0);\n let mag = center.r;\n let sector = u32(round(center.g));\n\n var n1 = 0.0;\n var n2 = 0.0;\n\n switch (sector) {\n case 0u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y), vec2<i32>(0), maxCoord), 0).r;\n }\n case 1u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n case 2u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n default: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n }\n\n var edge = 0.0;\n // Non-maximum suppression along gradient sector with directional tie-breaking\n if (mag > n1 && mag >= n2 && mag > 0.0) {\n if (mag >= params.highThreshold) {\n edge = 1.0;\n } else if (mag >= params.lowThreshold) {\n edge = 0.5;\n }\n }\n\n textureStore(edgeTex, id.xy, vec4<f32>(edge, edge, edge, 1.0));\n}\n`;\nconst cannyNmsR32fWgsl = `\nstruct CannyParams {\n lowThreshold: f32,\n highThreshold: f32,\n width: u32,\n height: u32,\n};\n\n@group(0) @binding(0) var magnitudeTex: texture_2d<f32>;\n@group(0) @binding(1) var edgeTex: texture_storage_2d<r32float, write>;\n@group(0) @binding(2) var<uniform> params: CannyParams;\n\n@compute @workgroup_size(16, 16)\nfn computeNonMaxSuppression(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) { return; }\n\n let x = i32(id.x);\n let y = i32(id.y);\n let maxCoord = vec2<i32>(i32(params.width) - 1, i32(params.height) - 1);\n\n let center = textureLoad(magnitudeTex, vec2<i32>(x, y), 0);\n let mag = center.r;\n let sector = u32(round(center.g));\n\n var n1 = 0.0;\n var n2 = 0.0;\n\n switch (sector) {\n case 0u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y), vec2<i32>(0), maxCoord), 0).r;\n }\n case 1u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n case 2u: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n default: {\n n1 = textureLoad(magnitudeTex, clamp(vec2<i32>(x - 1, y - 1), vec2<i32>(0), maxCoord), 0).r;\n n2 = textureLoad(magnitudeTex, clamp(vec2<i32>(x + 1, y + 1), vec2<i32>(0), maxCoord), 0).r;\n }\n }\n\n var edge = 0.0;\n // Non-maximum suppression along gradient sector with directional tie-breaking\n if (mag > n1 && mag >= n2 && mag > 0.0) {\n if (mag >= params.highThreshold) {\n edge = 1.0;\n } else if (mag >= params.lowThreshold) {\n edge = 0.5;\n }\n }\n\n textureStore(edgeTex, id.xy, vec4<f32>(edge, 0.0, 0.0, 1.0));\n}\n`;\n\n//#endregion\n//#region src/pipelines/canny-pipeline.ts\nvar CannyComputePipeline = class {\n\tsobelPipeline;\n\tnmsRgba8Pipeline;\n\tnmsR32fPipeline;\n\tuniformBuffer;\n\tcachedIntermediateTexture;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst sobelModule = device.createShaderModule({\n\t\t\tlabel: \"canny_sobel.wgsl\",\n\t\t\tcode: cannySobelWgsl\n\t\t});\n\t\tthis.sobelPipeline = device.createComputePipeline({\n\t\t\tlabel: \"CannySobelPipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: sobelModule,\n\t\t\t\tentryPoint: \"computeSobel\"\n\t\t\t}\n\t\t});\n\t\tconst nmsRgba8Module = device.createShaderModule({\n\t\t\tlabel: \"canny_nms_rgba8.wgsl\",\n\t\t\tcode: cannyNmsRgba8Wgsl\n\t\t});\n\t\tthis.nmsRgba8Pipeline = device.createComputePipeline({\n\t\t\tlabel: \"CannyNmsRgba8Pipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: nmsRgba8Module,\n\t\t\t\tentryPoint: \"computeNonMaxSuppression\"\n\t\t\t}\n\t\t});\n\t\tconst nmsR32fModule = device.createShaderModule({\n\t\t\tlabel: \"canny_nms_r32f.wgsl\",\n\t\t\tcode: cannyNmsR32fWgsl\n\t\t});\n\t\tthis.nmsR32fPipeline = device.createComputePipeline({\n\t\t\tlabel: \"CannyNmsR32fPipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: nmsR32fModule,\n\t\t\t\tentryPoint: \"computeNonMaxSuppression\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 16,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"canny_uniform_buffer\"\n\t\t});\n\t}\n\texecute(inputTexture, options = {}) {\n\t\tconst width = inputTexture.width;\n\t\tconst height = inputTexture.height;\n\t\tconst lowThreshold = options.low ?? .1;\n\t\tconst highThreshold = options.high ?? .3;\n\t\tconst outputFormat = options.outputFormat ?? \"rgba8unorm\";\n\t\tconst uniformData = /* @__PURE__ */ new ArrayBuffer(16);\n\t\tconst f32View = new Float32Array(uniformData);\n\t\tconst u32View = new Uint32Array(uniformData);\n\t\tf32View[0] = lowThreshold;\n\t\tf32View[1] = highThreshold;\n\t\tu32View[2] = width;\n\t\tu32View[3] = height;\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, uniformData);\n\t\tif (!this.cachedIntermediateTexture || this.cachedIntermediateTexture.width !== width || this.cachedIntermediateTexture.height !== height) {\n\t\t\tthis.cachedIntermediateTexture?.destroy();\n\t\t\tthis.cachedIntermediateTexture = this.device.createTexture({\n\t\t\t\tlabel: \"canny_magnitude_intermediate\",\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: \"rgba16float\",\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING\n\t\t\t});\n\t\t}\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height || this.cachedOutputTexture.format !== outputFormat) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: `canny_edge_output_${outputFormat}`,\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: outputFormat,\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t}\n\t\tconst commandEncoder = this.device.createCommandEncoder({ label: \"canny_command_encoder\" });\n\t\tconst sobelBindGroup = this.device.createBindGroup({\n\t\t\tlayout: this.sobelPipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: inputTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: this.cachedIntermediateTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst pass1 = commandEncoder.beginComputePass({ label: \"canny_sobel_pass\" });\n\t\tpass1.setPipeline(this.sobelPipeline);\n\t\tpass1.setBindGroup(0, sobelBindGroup);\n\t\tpass1.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\tpass1.end();\n\t\tconst nmsPipeline = outputFormat === \"r32float\" ? this.nmsR32fPipeline : this.nmsRgba8Pipeline;\n\t\tconst nmsBindGroup = this.device.createBindGroup({\n\t\t\tlayout: nmsPipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: this.cachedIntermediateTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst pass2 = commandEncoder.beginComputePass({ label: \"canny_nms_pass\" });\n\t\tpass2.setPipeline(nmsPipeline);\n\t\tpass2.setBindGroup(0, nmsBindGroup);\n\t\tpass2.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\tpass2.end();\n\t\tthis.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.cachedIntermediateTexture?.destroy();\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.uniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/depth-normals.wgsl.ts\n/**\n* @file depth-normals.wgsl.ts\n* Screen-Space Normal Map Reconstruction from Depth Tensor\n* Analytical cross-product of spatial partial derivatives:\n* dP/dx = [1, 0, dD/dx]^T, dP/dy = [0, 1, dD/dy]^T\n* N = normalize(dP/dx x dP/dy) = normalize([-dx, -dy, 1.0])\n*/\nconst depthNormalsRgba16fWgsl = `\nstruct DepthNormalParams {\n width: u32,\n height: u32,\n depthScale: f32,\n _pad: f32,\n};\n\n@group(0) @binding(0) var depthTex: texture_2d<f32>;\n@group(0) @binding(1) var normalTex: texture_storage_2d<rgba16float, write>;\n@group(0) @binding(2) var<uniform> params: DepthNormalParams;\n\n@compute @workgroup_size(16, 16)\nfn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) { return; }\n\n let c = id.xy;\n let maxX = params.width - 1u;\n let maxY = params.height - 1u;\n\n let left = textureLoad(depthTex, vec2<u32>(max(c.x - 1u, 0u), c.y), 0).r;\n let right = textureLoad(depthTex, vec2<u32>(min(c.x + 1u, maxX), c.y), 0).r;\n let up = textureLoad(depthTex, vec2<u32>(c.x, max(c.y - 1u, 0u)), 0).r;\n let down = textureLoad(depthTex, vec2<u32>(c.x, min(c.y + 1u, maxY)), 0).r;\n\n let dx = (right - left) * 0.5 * params.depthScale;\n let dy = (down - up) * 0.5 * params.depthScale;\n\n let normal = normalize(vec3<f32>(-dx, -dy, 1.0));\n // Pack [-1, 1] range to [0, 1]\n let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);\n textureStore(normalTex, id.xy, packedColor);\n}\n`;\nconst depthNormalsRgba8Wgsl = `\nstruct DepthNormalParams {\n width: u32,\n height: u32,\n depthScale: f32,\n _pad: f32,\n};\n\n@group(0) @binding(0) var depthTex: texture_2d<f32>;\n@group(0) @binding(1) var normalTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(2) var<uniform> params: DepthNormalParams;\n\n@compute @workgroup_size(16, 16)\nfn computeNormals(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) { return; }\n\n let c = id.xy;\n let maxX = params.width - 1u;\n let maxY = params.height - 1u;\n\n let left = textureLoad(depthTex, vec2<u32>(max(c.x - 1u, 0u), c.y), 0).r;\n let right = textureLoad(depthTex, vec2<u32>(min(c.x + 1u, maxX), c.y), 0).r;\n let up = textureLoad(depthTex, vec2<u32>(c.x, max(c.y - 1u, 0u)), 0).r;\n let down = textureLoad(depthTex, vec2<u32>(c.x, min(c.y + 1u, maxY)), 0).r;\n\n let dx = (right - left) * 0.5 * params.depthScale;\n let dy = (down - up) * 0.5 * params.depthScale;\n\n let normal = normalize(vec3<f32>(-dx, -dy, 1.0));\n // Pack [-1, 1] range to [0, 1]\n let packedColor = vec4<f32>(normal * 0.5 + 0.5, 1.0);\n textureStore(normalTex, id.xy, packedColor);\n}\n`;\n\n//#endregion\n//#region src/pipelines/depth-normals-pipeline.ts\nvar DepthNormalsComputePipeline = class {\n\tnormalRgba16fPipeline;\n\tnormalRgba8Pipeline;\n\tuniformBuffer;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst rgba16fModule = device.createShaderModule({\n\t\t\tlabel: \"depth_normals_rgba16f.wgsl\",\n\t\t\tcode: depthNormalsRgba16fWgsl\n\t\t});\n\t\tthis.normalRgba16fPipeline = device.createComputePipeline({\n\t\t\tlabel: \"DepthNormalsRgba16fPipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: rgba16fModule,\n\t\t\t\tentryPoint: \"computeNormals\"\n\t\t\t}\n\t\t});\n\t\tconst rgba8Module = device.createShaderModule({\n\t\t\tlabel: \"depth_normals_rgba8.wgsl\",\n\t\t\tcode: depthNormalsRgba8Wgsl\n\t\t});\n\t\tthis.normalRgba8Pipeline = device.createComputePipeline({\n\t\t\tlabel: \"DepthNormalsRgba8Pipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: rgba8Module,\n\t\t\t\tentryPoint: \"computeNormals\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 16,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"depth_normals_uniform_buffer\"\n\t\t});\n\t}\n\texecute(depthTexture, options = {}) {\n\t\tconst width = depthTexture.width;\n\t\tconst height = depthTexture.height;\n\t\tconst depthScale = options.depthScale ?? 1;\n\t\tconst outputFormat = options.outputFormat ?? \"rgba16float\";\n\t\tconst uniformData = /* @__PURE__ */ new ArrayBuffer(16);\n\t\tconst u32View = new Uint32Array(uniformData);\n\t\tconst f32View = new Float32Array(uniformData);\n\t\tu32View[0] = width;\n\t\tu32View[1] = height;\n\t\tf32View[2] = depthScale;\n\t\tf32View[3] = 0;\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, uniformData);\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height || this.cachedOutputTexture.format !== outputFormat) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: `normal_output_${outputFormat}`,\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: outputFormat,\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t}\n\t\tconst pipeline = outputFormat === \"rgba8unorm\" ? this.normalRgba8Pipeline : this.normalRgba16fPipeline;\n\t\tconst commandEncoder = this.device.createCommandEncoder({ label: \"depth_normals_command_encoder\" });\n\t\tconst bindGroup = this.device.createBindGroup({\n\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: depthTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst pass = commandEncoder.beginComputePass({ label: \"depth_normals_compute_pass\" });\n\t\tpass.setPipeline(pipeline);\n\t\tpass.setBindGroup(0, bindGroup);\n\t\tpass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\tpass.end();\n\t\tthis.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.uniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/face-landmarks.wgsl.ts\n/**\n* @file face-landmarks.wgsl.ts\n* Native WebGPU WGSL compute shader for ControlNet Face & MediaPipe facial contour rasterization.\n* Renders antialiased facial mesh contours (lips, eyes, brows, nose, oval) directly in VRAM for SDXL ControlNet.\n*/\nconst faceLandmarksWgsl = `\nstruct FaceSegment {\n start: vec2<f32>,\n end: vec2<f32>,\n color: vec4<f32>,\n radius: f32,\n enabled: f32,\n pad: vec2<f32>,\n};\n\nstruct FaceParams {\n width: u32,\n height: u32,\n numSegments: u32,\n pad: u32,\n};\n\n@group(0) @binding(0) var outputTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(1) var<uniform> params: FaceParams;\n@group(0) @binding(2) var<storage, read> segments: array<FaceSegment>;\n\n@compute @workgroup_size(16, 16)\nfn computeFaceLandmarks(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let p = vec2<f32>(f32(id.x) + 0.5, f32(id.y) + 0.5);\n var outColor = vec4<f32>(0.0, 0.0, 0.0, 1.0); // Solid black background for SDXL ControlNet\n\n let count = params.numSegments;\n for (var i = 0u; i < count; i = i + 1u) {\n let seg = segments[i];\n if (seg.enabled < 0.5) {\n continue;\n }\n\n let ab = seg.end - seg.start;\n let ap = p - seg.start;\n let l2 = dot(ab, ab);\n\n var t: f32 = 0.0;\n if (l2 > 0.0001) {\n t = clamp(dot(ap, ab) / l2, 0.0, 1.0);\n }\n\n let closest = seg.start + t * ab;\n let dist = length(p - closest);\n\n if (dist <= seg.radius) {\n let edgeAlpha = clamp(seg.radius - dist + 0.5, 0.0, 1.0);\n outColor = vec4<f32>(mix(outColor.rgb, seg.color.rgb, edgeAlpha * seg.color.a), 1.0);\n }\n }\n\n textureStore(outputTex, id.xy, outColor);\n}\n`;\n\n//#endregion\n//#region src/pipelines/face-landmarks-pipeline.ts\nfunction buildLoopSegments(indices, color) {\n\tconst segs = [];\n\tfor (let i = 0; i < indices.length - 1; i++) segs.push({\n\t\tfrom: indices[i],\n\t\tto: indices[i + 1],\n\t\tcolor\n\t});\n\treturn segs;\n}\nconst CANONICAL_FACE_CONTOURS = [\n\t...buildLoopSegments([\n\t\t70,\n\t\t63,\n\t\t105,\n\t\t66,\n\t\t107\n\t], [\n\t\t0,\n\t\t1,\n\t\t1,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t300,\n\t\t293,\n\t\t334,\n\t\t296,\n\t\t336\n\t], [\n\t\t0,\n\t\t1,\n\t\t1,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t33,\n\t\t160,\n\t\t158,\n\t\t133,\n\t\t153,\n\t\t144,\n\t\t33\n\t], [\n\t\t0,\n\t\t1,\n\t\t0,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t263,\n\t\t387,\n\t\t385,\n\t\t362,\n\t\t380,\n\t\t373,\n\t\t263\n\t], [\n\t\t0,\n\t\t1,\n\t\t0,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t168,\n\t\t6,\n\t\t197,\n\t\t195,\n\t\t4\n\t], [\n\t\t1,\n\t\t1,\n\t\t0,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t98,\n\t\t97,\n\t\t2,\n\t\t326,\n\t\t327\n\t], [\n\t\t1,\n\t\t1,\n\t\t0,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t61,\n\t\t185,\n\t\t40,\n\t\t39,\n\t\t37,\n\t\t0,\n\t\t267,\n\t\t269,\n\t\t270,\n\t\t409,\n\t\t291,\n\t\t375,\n\t\t321,\n\t\t405,\n\t\t314,\n\t\t17,\n\t\t84,\n\t\t181,\n\t\t91,\n\t\t146,\n\t\t61\n\t], [\n\t\t1,\n\t\t.2,\n\t\t.2,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t78,\n\t\t95,\n\t\t88,\n\t\t178,\n\t\t87,\n\t\t14,\n\t\t317,\n\t\t402,\n\t\t318,\n\t\t324,\n\t\t308,\n\t\t415,\n\t\t310,\n\t\t311,\n\t\t312,\n\t\t13,\n\t\t82,\n\t\t81,\n\t\t80,\n\t\t191,\n\t\t78\n\t], [\n\t\t1,\n\t\t0,\n\t\t.8,\n\t\t1\n\t]),\n\t...buildLoopSegments([\n\t\t10,\n\t\t338,\n\t\t297,\n\t\t332,\n\t\t284,\n\t\t251,\n\t\t389,\n\t\t356,\n\t\t454,\n\t\t323,\n\t\t361,\n\t\t288,\n\t\t397,\n\t\t365,\n\t\t379,\n\t\t378,\n\t\t400,\n\t\t377,\n\t\t152,\n\t\t148,\n\t\t176,\n\t\t149,\n\t\t150,\n\t\t136,\n\t\t172,\n\t\t58,\n\t\t132,\n\t\t93,\n\t\t234,\n\t\t127,\n\t\t162,\n\t\t21,\n\t\t54,\n\t\t103,\n\t\t67,\n\t\t109,\n\t\t10\n\t], [\n\t\t.9,\n\t\t.9,\n\t\t.9,\n\t\t1\n\t])\n];\nvar FaceLandmarksComputePipeline = class {\n\tcomputePipeline;\n\tuniformBuffer;\n\tstorageBuffer;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst shaderModule = device.createShaderModule({\n\t\t\tlabel: \"face_landmarks.wgsl\",\n\t\t\tcode: faceLandmarksWgsl\n\t\t});\n\t\tthis.computePipeline = device.createComputePipeline({\n\t\t\tlabel: \"FaceLandmarksComputePipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: shaderModule,\n\t\t\t\tentryPoint: \"computeFaceLandmarks\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 64,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"face_landmarks_uniform_buffer\"\n\t\t});\n\t\tconst storageSize = Math.max(256, CANONICAL_FACE_CONTOURS.length * 48);\n\t\tthis.storageBuffer = device.createBuffer({\n\t\t\tsize: storageSize,\n\t\t\tusage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"face_landmarks_storage_buffer\"\n\t\t});\n\t}\n\texecute(landmarks, options = {}) {\n\t\tconst width = options.width ?? 1024;\n\t\tconst height = options.height ?? 1024;\n\t\tconst lineWidth = options.lineWidth ?? 4;\n\t\tconst radius = Math.max(1, lineWidth / 2);\n\t\tconst u32Uniforms = new Uint32Array(4);\n\t\tu32Uniforms[0] = width;\n\t\tu32Uniforms[1] = height;\n\t\tu32Uniforms[2] = CANONICAL_FACE_CONTOURS.length;\n\t\tu32Uniforms[3] = 0;\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, u32Uniforms);\n\t\tconst f32Segments = new Float32Array(CANONICAL_FACE_CONTOURS.length * 12);\n\t\tfor (let i = 0; i < CANONICAL_FACE_CONTOURS.length; i++) {\n\t\t\tconst seg = CANONICAL_FACE_CONTOURS[i];\n\t\t\tconst ptA = landmarks[seg.from];\n\t\t\tconst ptB = landmarks[seg.to];\n\t\t\tconst offset = i * 12;\n\t\t\tif (!ptA || !ptB || (ptA.visibility ?? 1) < .2 || (ptB.visibility ?? 1) < .2) {\n\t\t\t\tf32Segments[offset + 9] = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tf32Segments[offset + 0] = ptA.x * width;\n\t\t\tf32Segments[offset + 1] = ptA.y * height;\n\t\t\tf32Segments[offset + 2] = ptB.x * width;\n\t\t\tf32Segments[offset + 3] = ptB.y * height;\n\t\t\tf32Segments[offset + 4] = seg.color[0];\n\t\t\tf32Segments[offset + 5] = seg.color[1];\n\t\t\tf32Segments[offset + 6] = seg.color[2];\n\t\t\tf32Segments[offset + 7] = seg.color[3];\n\t\t\tf32Segments[offset + 8] = radius;\n\t\t\tf32Segments[offset + 9] = 1;\n\t\t\tf32Segments[offset + 10] = 0;\n\t\t\tf32Segments[offset + 11] = 0;\n\t\t}\n\t\tthis.device.queue.writeBuffer(this.storageBuffer, 0, f32Segments);\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tsize: {\n\t\t\t\t\twidth,\n\t\t\t\t\theight\n\t\t\t\t},\n\t\t\t\tformat: \"rgba8unorm\",\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST,\n\t\t\t\tlabel: \"face_landmarks_output_texture\"\n\t\t\t});\n\t\t}\n\t\tconst bindGroup = this.device.createBindGroup({\n\t\t\tlabel: \"FaceLandmarksBindGroup\",\n\t\t\tlayout: this.computePipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: { buffer: this.storageBuffer }\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst commandEncoder = this.device.createCommandEncoder({ label: \"FaceLandmarksCommandEncoder\" });\n\t\tconst pass = commandEncoder.beginComputePass({ label: \"FaceLandmarksComputePass\" });\n\t\tpass.setPipeline(this.computePipeline);\n\t\tpass.setBindGroup(0, bindGroup);\n\t\tpass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\tpass.end();\n\t\tthis.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.uniformBuffer.destroy();\n\t\tthis.storageBuffer.destroy();\n\t\tthis.cachedOutputTexture?.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/optical-flow.wgsl.ts\n/**\n* @file optical-flow.wgsl.ts\n* High-Performance Native WebGPU Optical Flow Compute Shaders\n* Implements coarse-to-fine Lucas-Kanade motion vector estimation with\n* spatial structure tensor integration and Tikhonov aperture regularization.\n*/\nconst opticalFlowDirectWgsl = `\nstruct FlowParams {\n width: u32,\n height: u32,\n windowSize: u32, // Half-window radius W (e.g. 2 for 5x5 window)\n regularization: f32, // Tikhonov regularization lambda\n maxDisplacement: f32, // Maximum allowable flow vector length\n _pad0: f32,\n _pad1: f32,\n _pad2: f32,\n};\n\n@group(0) @binding(0) var prevTex: texture_2d<f32>;\n@group(0) @binding(1) var currTex: texture_2d<f32>;\n@group(0) @binding(2) var flowTex: texture_storage_2d<rgba16float, write>;\n@group(0) @binding(3) var<uniform> params: FlowParams;\n\nfn rgbToLuminance(rgb: vec3<f32>) -> f32 {\n return dot(rgb, vec3<f32>(0.299, 0.587, 0.114));\n}\n\nfn sampleLuma(tex: texture_2d<f32>, coord: vec2<i32>) -> f32 {\n let inDims = vec2<f32>(textureDimensions(tex));\n let scaleRatio = inDims / vec2<f32>(f32(params.width), f32(params.height));\n let actualCoord = vec2<i32>(vec2<f32>(coord) * scaleRatio);\n let clamped = clamp(actualCoord, vec2<i32>(0, 0), vec2<i32>(inDims) - vec2<i32>(1, 1));\n let color = textureLoad(tex, clamped, 0);\n return rgbToLuminance(color.rgb);\n}\n\n@compute @workgroup_size(16, 16)\nfn computeFlow(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let centerCoord = vec2<i32>(i32(id.x), i32(id.y));\n let w = i32(max(params.windowSize, 1u));\n\n var sxx: f32 = 0.0;\n var syy: f32 = 0.0;\n var sxy: f32 = 0.0;\n var sxt: f32 = 0.0;\n var syt: f32 = 0.0;\n\n for (var dy = -w; dy <= w; dy = dy + 1) {\n for (var dx = -w; dx <= w; dx = dx + 1) {\n let p = centerCoord + vec2<i32>(dx, dy);\n\n // Central difference spatial gradients on current frame\n let lx = sampleLuma(currTex, p - vec2<i32>(1, 0));\n let rx = sampleLuma(currTex, p + vec2<i32>(1, 0));\n let uy = sampleLuma(currTex, p - vec2<i32>(0, 1));\n let dyL = sampleLuma(currTex, p + vec2<i32>(0, 1));\n\n let ix = (rx - lx) * 0.5;\n let iy = (dyL - uy) * 0.5;\n\n // Temporal gradient: difference between current and previous frame\n let cCurr = sampleLuma(currTex, p);\n let cPrev = sampleLuma(prevTex, p);\n let it = cCurr - cPrev;\n\n // Gaussian spatial falloff weight\n let distSq = f32(dx * dx + dy * dy);\n let weight = exp(-distSq / (2.0 * f32(w * w) + 0.1));\n\n sxx += ix * ix * weight;\n syy += iy * iy * weight;\n sxy += ix * iy * weight;\n sxt += ix * it * weight;\n syt += iy * it * weight;\n }\n }\n\n // Tikhonov regularization prevents singularity in flat/homogeneous regions\n let trace = sxx + syy;\n let reg = max(params.regularization, 1e-4) * max(trace, 1.0);\n let A = sxx + reg;\n let B = sxy;\n let C = syy + reg;\n\n let det = A * C - B * B;\n var u: f32 = 0.0;\n var v: f32 = 0.0;\n\n if (det > 1e-6) {\n u = (-sxt * C + syt * B) / det;\n v = (-syt * A + sxt * B) / det;\n }\n\n let mag = length(vec2<f32>(u, v));\n let maxD = max(params.maxDisplacement, 1.0);\n if (mag > maxD) {\n let scale = maxD / mag;\n u *= scale;\n v *= scale;\n }\n\n textureStore(flowTex, id.xy, vec4<f32>(u, v, min(mag, maxD), 1.0));\n}\n`;\nconst opticalFlowRefineWgsl = `\nstruct FlowParams {\n width: u32,\n height: u32,\n windowSize: u32,\n regularization: f32,\n maxDisplacement: f32,\n coarseWidth: u32,\n coarseHeight: u32,\n _pad0: f32,\n};\n\n@group(0) @binding(0) var prevTex: texture_2d<f32>;\n@group(0) @binding(1) var currTex: texture_2d<f32>;\n@group(0) @binding(2) var coarseFlowTex: texture_2d<f32>;\n@group(0) @binding(3) var fineFlowTex: texture_storage_2d<rgba16float, write>;\n@group(0) @binding(4) var<uniform> params: FlowParams;\n@group(0) @binding(5) var bilinearSamp: sampler;\n\nfn rgbToLuminance(rgb: vec3<f32>) -> f32 {\n return dot(rgb, vec3<f32>(0.299, 0.587, 0.114));\n}\n\nfn sampleLuma(tex: texture_2d<f32>, coord: vec2<i32>) -> f32 {\n let clamped = clamp(coord, vec2<i32>(0, 0), vec2<i32>(i32(params.width) - 1, i32(params.height) - 1));\n let color = textureLoad(tex, clamped, 0);\n return rgbToLuminance(color.rgb);\n}\n\nfn sampleWarpedPrevLuma(uv: vec2<f32>, priorFlow: vec2<f32>) -> f32 {\n let invDims = vec2<f32>(1.0 / f32(params.width), 1.0 / f32(params.height));\n let warpedUv = clamp(uv - priorFlow * invDims, vec2<f32>(0.0), vec2<f32>(1.0));\n let sampleColor = textureSampleLevel(prevTex, bilinearSamp, warpedUv, 0.0);\n return rgbToLuminance(sampleColor.rgb);\n}\n\n@compute @workgroup_size(16, 16)\nfn refineFlow(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let centerCoord = vec2<i32>(i32(id.x), i32(id.y));\n let w = i32(max(params.windowSize, 1u));\n let invDims = vec2<f32>(1.0 / f32(params.width), 1.0 / f32(params.height));\n let centerUv = (vec2<f32>(id.xy) + 0.5) * invDims;\n\n // Read upsampled prior flow from coarse scale (scaled by 2x)\n let coarseCoord = vec2<i32>(centerCoord / 2);\n let coarseSample = textureLoad(coarseFlowTex, coarseCoord, 0);\n let priorFlow = coarseSample.xy * 2.0;\n\n var sxx: f32 = 0.0;\n var syy: f32 = 0.0;\n var sxy: f32 = 0.0;\n var sxt: f32 = 0.0;\n var syt: f32 = 0.0;\n\n for (var dy = -w; dy <= w; dy = dy + 1) {\n for (var dx = -w; dx <= w; dx = dx + 1) {\n let p = centerCoord + vec2<i32>(dx, dy);\n let pUv = (vec2<f32>(p) + 0.5) * invDims;\n\n let lx = sampleLuma(currTex, p - vec2<i32>(1, 0));\n let rx = sampleLuma(currTex, p + vec2<i32>(1, 0));\n let uy = sampleLuma(currTex, p - vec2<i32>(0, 1));\n let dyL = sampleLuma(currTex, p + vec2<i32>(0, 1));\n\n let ix = (rx - lx) * 0.5;\n let iy = (dyL - uy) * 0.5;\n\n // Temporal residual against warped previous frame\n let cCurr = sampleLuma(currTex, p);\n let cWarpedPrev = sampleWarpedPrevLuma(pUv, priorFlow);\n let it = cCurr - cWarpedPrev;\n\n let distSq = f32(dx * dx + dy * dy);\n let weight = exp(-distSq / (2.0 * f32(w * w) + 0.1));\n\n sxx += ix * ix * weight;\n syy += iy * iy * weight;\n sxy += ix * iy * weight;\n sxt += ix * it * weight;\n syt += iy * it * weight;\n }\n }\n\n let trace = sxx + syy;\n let reg = max(params.regularization, 1e-4) * max(trace, 1.0);\n let A = sxx + reg;\n let B = sxy;\n let C = syy + reg;\n\n let det = A * C - B * B;\n var du: f32 = 0.0;\n var dv: f32 = 0.0;\n\n if (det > 1e-6) {\n du = (-sxt * C + syt * B) / det;\n dv = (-syt * A + sxt * B) / det;\n }\n\n // Combine coarse prior flow with fine residual flow\n var totalFlow = priorFlow + vec2<f32>(du, dv);\n let mag = length(totalFlow);\n let maxD = max(params.maxDisplacement, 1.0);\n if (mag > maxD) {\n totalFlow *= (maxD / mag);\n }\n\n textureStore(fineFlowTex, id.xy, vec4<f32>(totalFlow.x, totalFlow.y, min(mag, maxD), 1.0));\n}\n`;\n\n//#endregion\n//#region src/pipelines/optical-flow-pipeline.ts\nvar OpticalFlowComputePipeline = class {\n\tdirectPipeline;\n\trefinePipeline;\n\tdirectUniformBuffer;\n\trefineUniformBuffer;\n\tbilinearSampler;\n\tcachedCoarseTexture;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst directModule = device.createShaderModule({\n\t\t\tlabel: \"optical_flow_direct.wgsl\",\n\t\t\tcode: opticalFlowDirectWgsl\n\t\t});\n\t\tthis.directPipeline = device.createComputePipeline({\n\t\t\tlabel: \"OpticalFlowDirectPipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: directModule,\n\t\t\t\tentryPoint: \"computeFlow\"\n\t\t\t}\n\t\t});\n\t\tconst refineModule = device.createShaderModule({\n\t\t\tlabel: \"optical_flow_refine.wgsl\",\n\t\t\tcode: opticalFlowRefineWgsl\n\t\t});\n\t\tthis.refinePipeline = device.createComputePipeline({\n\t\t\tlabel: \"OpticalFlowRefinePipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: refineModule,\n\t\t\t\tentryPoint: \"refineFlow\"\n\t\t\t}\n\t\t});\n\t\tthis.directUniformBuffer = device.createBuffer({\n\t\t\tsize: 32,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"optical_flow_direct_uniform\"\n\t\t});\n\t\tthis.refineUniformBuffer = device.createBuffer({\n\t\t\tsize: 32,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"optical_flow_refine_uniform\"\n\t\t});\n\t\tthis.bilinearSampler = device.createSampler({\n\t\t\tlabel: \"optical_flow_bilinear_sampler\",\n\t\t\tmagFilter: \"linear\",\n\t\t\tminFilter: \"linear\",\n\t\t\taddressModeU: \"clamp-to-edge\",\n\t\t\taddressModeV: \"clamp-to-edge\"\n\t\t});\n\t}\n\texecute(prevTexture, currTexture, options = {}, customEncoder) {\n\t\tconst width = currTexture.width;\n\t\tconst height = currTexture.height;\n\t\tconst windowSize = options?.windowSize ?? 3;\n\t\tconst regularization = options?.regularization ?? options?.lambda ?? .05;\n\t\tconst scale = options?.scale ?? .5;\n\t\tconst maxDisplacement = 64;\n\t\tconst outputFormat = options.outputFormat ?? \"rgba16float\";\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height || this.cachedOutputTexture.format !== outputFormat) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: `optical_flow_output_${outputFormat}`,\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: outputFormat,\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t}\n\t\tconst commandEncoder = customEncoder ?? this.device.createCommandEncoder({ label: \"optical_flow_command_encoder\" });\n\t\tif (scale > .1 && scale < .95 && width >= 64 && height >= 64) {\n\t\t\tconst coarseW = Math.max(16, Math.floor(width * scale));\n\t\t\tconst coarseH = Math.max(16, Math.floor(height * scale));\n\t\t\tif (!this.cachedCoarseTexture || this.cachedCoarseTexture.width !== coarseW || this.cachedCoarseTexture.height !== coarseH) {\n\t\t\t\tthis.cachedCoarseTexture?.destroy();\n\t\t\t\tthis.cachedCoarseTexture = this.device.createTexture({\n\t\t\t\t\tlabel: \"optical_flow_coarse\",\n\t\t\t\t\tsize: [coarseW, coarseH],\n\t\t\t\t\tformat: \"rgba16float\",\n\t\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst directData = /* @__PURE__ */ new ArrayBuffer(32);\n\t\t\tconst directU32 = new Uint32Array(directData);\n\t\t\tconst directF32 = new Float32Array(directData);\n\t\t\tdirectU32[0] = coarseW;\n\t\t\tdirectU32[1] = coarseH;\n\t\t\tdirectU32[2] = windowSize;\n\t\t\tdirectF32[3] = regularization;\n\t\t\tdirectF32[4] = maxDisplacement * scale;\n\t\t\tthis.device.queue.writeBuffer(this.directUniformBuffer, 0, directData);\n\t\t\tconst coarseBindGroup = this.device.createBindGroup({\n\t\t\t\tlayout: this.directPipeline.getBindGroupLayout(0),\n\t\t\t\tentries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 0,\n\t\t\t\t\t\tresource: prevTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 1,\n\t\t\t\t\t\tresource: currTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 2,\n\t\t\t\t\t\tresource: this.cachedCoarseTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 3,\n\t\t\t\t\t\tresource: { buffer: this.directUniformBuffer }\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\tconst coarsePass = commandEncoder.beginComputePass({ label: \"optical_flow_coarse_pass\" });\n\t\t\tcoarsePass.setPipeline(this.directPipeline);\n\t\t\tcoarsePass.setBindGroup(0, coarseBindGroup);\n\t\t\tcoarsePass.dispatchWorkgroups(Math.ceil(coarseW / 16), Math.ceil(coarseH / 16));\n\t\t\tcoarsePass.end();\n\t\t\tconst refineData = /* @__PURE__ */ new ArrayBuffer(32);\n\t\t\tconst refineU32 = new Uint32Array(refineData);\n\t\t\tconst refineF32 = new Float32Array(refineData);\n\t\t\trefineU32[0] = width;\n\t\t\trefineU32[1] = height;\n\t\t\trefineU32[2] = windowSize;\n\t\t\trefineF32[3] = regularization;\n\t\t\trefineF32[4] = maxDisplacement;\n\t\t\trefineU32[5] = coarseW;\n\t\t\trefineU32[6] = coarseH;\n\t\t\tthis.device.queue.writeBuffer(this.refineUniformBuffer, 0, refineData);\n\t\t\tconst refineBindGroup = this.device.createBindGroup({\n\t\t\t\tlayout: this.refinePipeline.getBindGroupLayout(0),\n\t\t\t\tentries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 0,\n\t\t\t\t\t\tresource: prevTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 1,\n\t\t\t\t\t\tresource: currTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 2,\n\t\t\t\t\t\tresource: this.cachedCoarseTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 3,\n\t\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 4,\n\t\t\t\t\t\tresource: { buffer: this.refineUniformBuffer }\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 5,\n\t\t\t\t\t\tresource: this.bilinearSampler\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\tconst finePass = commandEncoder.beginComputePass({ label: \"optical_flow_fine_pass\" });\n\t\t\tfinePass.setPipeline(this.refinePipeline);\n\t\t\tfinePass.setBindGroup(0, refineBindGroup);\n\t\t\tfinePass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\t\tfinePass.end();\n\t\t} else {\n\t\t\tconst directData = /* @__PURE__ */ new ArrayBuffer(32);\n\t\t\tconst directU32 = new Uint32Array(directData);\n\t\t\tconst directF32 = new Float32Array(directData);\n\t\t\tdirectU32[0] = width;\n\t\t\tdirectU32[1] = height;\n\t\t\tdirectU32[2] = windowSize;\n\t\t\tdirectF32[3] = regularization;\n\t\t\tdirectF32[4] = maxDisplacement;\n\t\t\tthis.device.queue.writeBuffer(this.directUniformBuffer, 0, directData);\n\t\t\tconst directBindGroup = this.device.createBindGroup({\n\t\t\t\tlayout: this.directPipeline.getBindGroupLayout(0),\n\t\t\t\tentries: [\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 0,\n\t\t\t\t\t\tresource: prevTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 1,\n\t\t\t\t\t\tresource: currTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 2,\n\t\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tbinding: 3,\n\t\t\t\t\t\tresource: { buffer: this.directUniformBuffer }\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\tconst directPass = commandEncoder.beginComputePass({ label: \"optical_flow_direct_pass\" });\n\t\t\tdirectPass.setPipeline(this.directPipeline);\n\t\t\tdirectPass.setBindGroup(0, directBindGroup);\n\t\t\tdirectPass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\t\tdirectPass.end();\n\t\t}\n\t\tif (!customEncoder) this.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.cachedCoarseTexture?.destroy();\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.directUniformBuffer.destroy();\n\t\tthis.refineUniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/pose-skeleton.wgsl.ts\n/**\n* @file pose-skeleton.wgsl.ts\n* Native WebGPU WGSL compute shader for ControlNet OpenPose skeleton rasterization.\n* Renders instanced bone cylinders/capsules directly in VRAM without CPU roundtrips.\n*/\nconst poseSkeletonWgsl = `\nstruct Bone {\n start: vec2<f32>,\n end: vec2<f32>,\n color: vec4<f32>,\n radius: f32,\n enabled: f32,\n pad: vec2<f32>,\n};\n\nstruct SkeletonParams {\n width: u32,\n height: u32,\n numBones: u32,\n pad: u32,\n bones: array<Bone, 24>,\n};\n\n@group(0) @binding(0) var outputTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(1) var<uniform> params: SkeletonParams;\n\n@compute @workgroup_size(16, 16)\nfn computePoseSkeleton(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let p = vec2<f32>(f32(id.x) + 0.5, f32(id.y) + 0.5);\n var outColor = vec4<f32>(0.0, 0.0, 0.0, 0.0);\n\n let count = min(params.numBones, 24u);\n for (var i = 0u; i < count; i = i + 1u) {\n let bone = params.bones[i];\n if (bone.enabled < 0.5) {\n continue;\n }\n\n let ab = bone.end - bone.start;\n let ap = p - bone.start;\n let l2 = dot(ab, ab);\n\n var t: f32 = 0.0;\n if (l2 > 0.0001) {\n t = clamp(dot(ap, ab) / l2, 0.0, 1.0);\n }\n\n let closest = bone.start + t * ab;\n let dist = length(p - closest);\n\n if (dist <= bone.radius) {\n // Sub-pixel edge antialiasing\n let edgeAlpha = clamp(bone.radius - dist + 0.5, 0.0, 1.0);\n let a = edgeAlpha * bone.color.a;\n outColor = vec4<f32>(mix(outColor.rgb, bone.color.rgb, a), max(outColor.a, a));\n }\n }\n\n textureStore(outputTex, id.xy, outColor);\n}\n`;\n\n//#endregion\n//#region src/pipelines/pose-skeleton-pipeline.ts\nconst CANONICAL_OPENPOSE_BONES = [\n\t{\n\t\tfrom: 0,\n\t\tto: 11,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 0,\n\t\tto: 12,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 11,\n\t\tto: 12,\n\t\tcolor: [\n\t\t\t1,\n\t\t\t0,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 11,\n\t\tto: 13,\n\t\tcolor: [\n\t\t\t1,\n\t\t\t.333,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 13,\n\t\tto: 15,\n\t\tcolor: [\n\t\t\t1,\n\t\t\t.667,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 12,\n\t\tto: 14,\n\t\tcolor: [\n\t\t\t1,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 14,\n\t\tto: 16,\n\t\tcolor: [\n\t\t\t.667,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 11,\n\t\tto: 23,\n\t\tcolor: [\n\t\t\t.333,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 12,\n\t\tto: 24,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t0,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 23,\n\t\tto: 24,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t.333,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 23,\n\t\tto: 25,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t.667,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 25,\n\t\tto: 27,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t1,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 24,\n\t\tto: 26,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t.667,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t},\n\t{\n\t\tfrom: 26,\n\t\tto: 28,\n\t\tcolor: [\n\t\t\t0,\n\t\t\t.333,\n\t\t\t1,\n\t\t\t1\n\t\t]\n\t}\n];\nvar PoseSkeletonComputePipeline = class {\n\tcomputePipeline;\n\tuniformBuffer;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst shaderModule = device.createShaderModule({\n\t\t\tlabel: \"pose_skeleton.wgsl\",\n\t\t\tcode: poseSkeletonWgsl\n\t\t});\n\t\tthis.computePipeline = device.createComputePipeline({\n\t\t\tlabel: \"PoseSkeletonComputePipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: shaderModule,\n\t\t\t\tentryPoint: \"computePoseSkeleton\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 1280,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"pose_skeleton_uniform_buffer\"\n\t\t});\n\t}\n\texecute(landmarks, options = {}, bones) {\n\t\tconst boneDefs = bones ?? CANONICAL_OPENPOSE_BONES;\n\t\tconst width = options.width ?? 1024;\n\t\tconst height = options.height ?? 1024;\n\t\tconst lineWidth = options.lineWidth ?? 6;\n\t\tconst radius = Math.max(1, lineWidth / 2);\n\t\tconst arrayBuf = new ArrayBuffer(1280);\n\t\tconst u32View = new Uint32Array(arrayBuf);\n\t\tconst f32View = new Float32Array(arrayBuf);\n\t\tu32View[0] = width;\n\t\tu32View[1] = height;\n\t\tu32View[2] = boneDefs.length;\n\t\tu32View[3] = 0;\n\t\tconst boneBaseFloatOffset = 4;\n\t\tfor (let i = 0; i < boneDefs.length; i++) {\n\t\t\tconst boneDef = boneDefs[i];\n\t\t\tconst ptA = landmarks[boneDef.from];\n\t\t\tconst ptB = landmarks[boneDef.to];\n\t\t\tconst offset = boneBaseFloatOffset + i * 12;\n\t\t\tif (!ptA || !ptB || (ptA.visibility ?? 1) < .2 || (ptB.visibility ?? 1) < .2) {\n\t\t\t\tf32View[offset + 9] = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tf32View[offset + 0] = ptA.x * width;\n\t\t\tf32View[offset + 1] = ptA.y * height;\n\t\t\tf32View[offset + 2] = ptB.x * width;\n\t\t\tf32View[offset + 3] = ptB.y * height;\n\t\t\tf32View[offset + 4] = boneDef.color[0];\n\t\t\tf32View[offset + 5] = boneDef.color[1];\n\t\t\tf32View[offset + 6] = boneDef.color[2];\n\t\t\tf32View[offset + 7] = boneDef.color[3];\n\t\t\tf32View[offset + 8] = radius;\n\t\t\tf32View[offset + 9] = 1;\n\t\t}\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, arrayBuf);\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: \"openpose_skeleton_texture\",\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: \"rgba8unorm\",\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t}\n\t\tconst commandEncoder = this.device.createCommandEncoder({ label: \"pose_skeleton_command_encoder\" });\n\t\tconst bindGroup = this.device.createBindGroup({\n\t\t\tlabel: \"pose_skeleton_bind_group\",\n\t\t\tlayout: this.computePipeline.getBindGroupLayout(0),\n\t\t\tentries: [{\n\t\t\t\tbinding: 0,\n\t\t\t\tresource: this.cachedOutputTexture.createView({ label: \"pose_skeleton_output_view\" })\n\t\t\t}, {\n\t\t\t\tbinding: 1,\n\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t}]\n\t\t});\n\t\tconst pass = commandEncoder.beginComputePass({ label: \"pose_skeleton_compute_pass\" });\n\t\tpass.setPipeline(this.computePipeline);\n\t\tpass.setBindGroup(0, bindGroup);\n\t\tpass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16), 1);\n\t\tpass.end();\n\t\tthis.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.cachedOutputTexture = void 0;\n\t\tthis.uniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/segmentation.wgsl.ts\n/**\n* @file segmentation.wgsl.ts\n* Native WebGPU WGSL compute shader for segmentation mask thresholding and edge feathering.\n* Outputs crisp alpha mattes directly in VRAM without CPU roundtrips.\n*/\nconst segmentationWgsl = `\nstruct SegParams {\n threshold: f32,\n feather: f32,\n width: u32,\n height: u32,\n};\n\n@group(0) @binding(0) var inputTex: texture_2d<f32>;\n@group(0) @binding(1) var outputTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(2) var<uniform> params: SegParams;\n\n@compute @workgroup_size(16, 16)\nfn computeSegmentation(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let coord = vec2<i32>(i32(id.x), i32(id.y));\n let sample = textureLoad(inputTex, coord, 0);\n\n // Luminance or alpha channel extraction\n let rawAlpha = max(sample.a, dot(sample.rgb, vec3<f32>(0.299, 0.587, 0.114)));\n\n let lower = max(0.0, params.threshold - params.feather);\n let upper = min(1.0, params.threshold + params.feather);\n let alpha = smoothstep(lower, upper, rawAlpha);\n\n textureStore(outputTex, id.xy, vec4<f32>(alpha, alpha, alpha, 1.0));\n}\n`;\n\n//#endregion\n//#region src/pipelines/segmentation-pipeline.ts\nvar SegmentationComputePipeline = class {\n\tcomputePipeline;\n\tuniformBuffer;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tconst shaderModule = device.createShaderModule({\n\t\t\tlabel: \"segmentation.wgsl\",\n\t\t\tcode: segmentationWgsl\n\t\t});\n\t\tthis.computePipeline = device.createComputePipeline({\n\t\t\tlabel: \"SegmentationComputePipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: shaderModule,\n\t\t\t\tentryPoint: \"computeSegmentation\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 16,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"segmentation_uniform_buffer\"\n\t\t});\n\t}\n\texecute(inputTexture, options = {}) {\n\t\tconst width = inputTexture.width;\n\t\tconst height = inputTexture.height;\n\t\tconst threshold = options.threshold ?? .5;\n\t\tconst feather = options.feather ?? .05;\n\t\tconst arrayBuf = /* @__PURE__ */ new ArrayBuffer(16);\n\t\tconst f32View = new Float32Array(arrayBuf);\n\t\tconst u32View = new Uint32Array(arrayBuf);\n\t\tf32View[0] = threshold;\n\t\tf32View[1] = feather;\n\t\tu32View[2] = width;\n\t\tu32View[3] = height;\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, arrayBuf);\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: \"segmentation_output_texture\",\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat: \"rgba8unorm\",\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t}\n\t\tconst commandEncoder = this.device.createCommandEncoder({ label: \"segmentation_command_encoder\" });\n\t\tconst bindGroup = this.device.createBindGroup({\n\t\t\tlabel: \"segmentation_bind_group\",\n\t\t\tlayout: this.computePipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: inputTexture.createView({ label: \"segmentation_input_view\" })\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: this.cachedOutputTexture.createView({ label: \"segmentation_output_view\" })\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst pass = commandEncoder.beginComputePass({ label: \"segmentation_compute_pass\" });\n\t\tpass.setPipeline(this.computePipeline);\n\t\tpass.setBindGroup(0, bindGroup);\n\t\tpass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16), 1);\n\t\tpass.end();\n\t\tthis.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\tdestroy() {\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.cachedOutputTexture = void 0;\n\t\tthis.uniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/shaders/temporal-warp-blend.wgsl.ts\n/**\n* @file temporal-warp-blend.wgsl.ts\n* Native WebGPU Forward Warping & Adaptive Photometric Temporal Blend Compute Shaders\n* Warps previous frame forward along motion vectors and blends adaptively with current\n* frame to eliminate generative AI video flicker with zero ghosting.\n*/\nconst temporalWarpBlendRgba8Wgsl = `\nstruct WarpBlendParams {\n width: u32,\n height: u32,\n blendWeight: f32, // Base current frame weight alpha (e.g. 0.35)\n disocclusionThreshold: f32, // Photometric error cutoff for fallback to curr frame\n maxMotionPixels: f32, // Speed cutoff for fallback to curr frame\n isFirstFrame: f32, // 1.0 = pass-through first frame, 0.0 = temporal blend\n _pad0: f32,\n _pad1: f32,\n};\n\n@group(0) @binding(0) var prevTex: texture_2d<f32>;\n@group(0) @binding(1) var currTex: texture_2d<f32>;\n@group(0) @binding(2) var flowTex: texture_2d<f32>;\n@group(0) @binding(3) var outTex: texture_storage_2d<rgba8unorm, write>;\n@group(0) @binding(4) var<uniform> params: WarpBlendParams;\n@group(0) @binding(5) var bilinearSamp: sampler;\n\n@compute @workgroup_size(16, 16)\nfn warpBlend(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let coord = vec2<i32>(i32(id.x), i32(id.y));\n let currColor = textureLoad(currTex, coord, 0);\n\n // If first frame or scene cut reset, pass through current frame directly\n if (params.isFirstFrame > 0.5) {\n textureStore(outTex, id.xy, currColor);\n return;\n }\n\n let dims = vec2<f32>(f32(params.width), f32(params.height));\n let invDims = vec2<f32>(1.0 / dims.x, 1.0 / dims.y);\n let uv = (vec2<f32>(id.xy) + 0.5) * invDims;\n\n // Read motion vector (u, v) in pixel units\n let flowSample = textureLoad(flowTex, coord, 0);\n let flow = flowSample.xy;\n let speed = length(flow);\n\n // Motion-compensated backward warp coordinate pointing to previous frame\n let warpedUv = clamp(uv - flow * invDims, vec2<f32>(0.0), vec2<f32>(1.0));\n let warpedPrev = textureSampleLevel(prevTex, bilinearSamp, warpedUv, 0.0);\n\n // Photometric consistency error normalized to [0, 1] range (1 / sqrt(3) ~= 0.57735027)\n let colorDiff = length(currColor.rgb - warpedPrev.rgb) * 0.57735027;\n\n // Adaptive blend weight:\n // - Coherent motion (low diff, low speed): alpha = blendWeight (strong deflicker smoothing)\n // - Disocclusion or extreme motion (high diff): alpha -> 1.0 (fall back to curr frame, no ghosting)\n let tLow = params.disocclusionThreshold;\n let tHigh = params.disocclusionThreshold * 1.5;\n let errFactor = smoothstep(tLow, tHigh, colorDiff);\n let speedFactor = smoothstep(params.maxMotionPixels * 0.5, params.maxMotionPixels, speed);\n\n let fallbackFactor = max(errFactor, speedFactor);\n let alpha = clamp(mix(params.blendWeight, 1.0, fallbackFactor), 0.0, 1.0);\n\n let blendedRgb = mix(warpedPrev.rgb, currColor.rgb, alpha);\n let blendedA = mix(warpedPrev.a, currColor.a, alpha);\n\n textureStore(outTex, id.xy, vec4<f32>(blendedRgb, blendedA));\n}\n`;\nconst temporalWarpBlendRgba16fWgsl = `\nstruct WarpBlendParams {\n width: u32,\n height: u32,\n blendWeight: f32,\n disocclusionThreshold: f32,\n maxMotionPixels: f32,\n isFirstFrame: f32,\n _pad0: f32,\n _pad1: f32,\n};\n\n@group(0) @binding(0) var prevTex: texture_2d<f32>;\n@group(0) @binding(1) var currTex: texture_2d<f32>;\n@group(0) @binding(2) var flowTex: texture_2d<f32>;\n@group(0) @binding(3) var outTex: texture_storage_2d<rgba16float, write>;\n@group(0) @binding(4) var<uniform> params: WarpBlendParams;\n@group(0) @binding(5) var bilinearSamp: sampler;\n\n@compute @workgroup_size(16, 16)\nfn warpBlend(@builtin(global_invocation_id) id: vec3<u32>) {\n if (id.x >= params.width || id.y >= params.height) {\n return;\n }\n\n let coord = vec2<i32>(i32(id.x), i32(id.y));\n let currColor = textureLoad(currTex, coord, 0);\n\n if (params.isFirstFrame > 0.5) {\n textureStore(outTex, id.xy, currColor);\n return;\n }\n\n let dims = vec2<f32>(f32(params.width), f32(params.height));\n let invDims = vec2<f32>(1.0 / dims.x, 1.0 / dims.y);\n let uv = (vec2<f32>(id.xy) + 0.5) * invDims;\n\n let flowSample = textureLoad(flowTex, coord, 0);\n let flow = flowSample.xy;\n let speed = length(flow);\n\n let warpedUv = clamp(uv - flow * invDims, vec2<f32>(0.0), vec2<f32>(1.0));\n let warpedPrev = textureSampleLevel(prevTex, bilinearSamp, warpedUv, 0.0);\n\n // Photometric consistency error normalized to [0, 1] range (1 / sqrt(3) ~= 0.57735027)\n let colorDiff = length(currColor.rgb - warpedPrev.rgb) * 0.57735027;\n\n let tLow = params.disocclusionThreshold;\n let tHigh = params.disocclusionThreshold * 1.5;\n let errFactor = smoothstep(tLow, tHigh, colorDiff);\n let speedFactor = smoothstep(params.maxMotionPixels * 0.5, params.maxMotionPixels, speed);\n\n let fallbackFactor = max(errFactor, speedFactor);\n let alpha = clamp(mix(params.blendWeight, 1.0, fallbackFactor), 0.0, 1.0);\n\n let blendedRgb = mix(warpedPrev.rgb, currColor.rgb, alpha);\n let blendedA = mix(warpedPrev.a, currColor.a, alpha);\n\n textureStore(outTex, id.xy, vec4<f32>(blendedRgb, blendedA));\n}\n`;\n\n//#endregion\n//#region src/pipelines/temporal-deflicker-pipeline.ts\nvar TemporalDeflickerPipeline = class {\n\tflowPipeline;\n\trgba8Pipeline;\n\trgba16fPipeline;\n\tuniformBuffer;\n\tbilinearSampler;\n\thistoryTexture;\n\tcachedOutputTexture;\n\tconstructor(device) {\n\t\tthis.device = device;\n\t\tthis.flowPipeline = new OpticalFlowComputePipeline(device);\n\t\tconst rgba8Module = device.createShaderModule({\n\t\t\tlabel: \"temporal_warp_blend_rgba8.wgsl\",\n\t\t\tcode: temporalWarpBlendRgba8Wgsl\n\t\t});\n\t\tthis.rgba8Pipeline = device.createComputePipeline({\n\t\t\tlabel: \"TemporalWarpBlendRgba8Pipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: rgba8Module,\n\t\t\t\tentryPoint: \"warpBlend\"\n\t\t\t}\n\t\t});\n\t\tconst rgba16fModule = device.createShaderModule({\n\t\t\tlabel: \"temporal_warp_blend_rgba16f.wgsl\",\n\t\t\tcode: temporalWarpBlendRgba16fWgsl\n\t\t});\n\t\tthis.rgba16fPipeline = device.createComputePipeline({\n\t\t\tlabel: \"TemporalWarpBlendRgba16fPipeline\",\n\t\t\tlayout: \"auto\",\n\t\t\tcompute: {\n\t\t\t\tmodule: rgba16fModule,\n\t\t\t\tentryPoint: \"warpBlend\"\n\t\t\t}\n\t\t});\n\t\tthis.uniformBuffer = device.createBuffer({\n\t\t\tsize: 32,\n\t\t\tusage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST,\n\t\t\tlabel: \"temporal_deflicker_uniform\"\n\t\t});\n\t\tthis.bilinearSampler = device.createSampler({\n\t\t\tlabel: \"temporal_deflicker_sampler\",\n\t\t\tmagFilter: \"linear\",\n\t\t\tminFilter: \"linear\",\n\t\t\taddressModeU: \"clamp-to-edge\",\n\t\t\taddressModeV: \"clamp-to-edge\"\n\t\t});\n\t}\n\texecute(currTexture, options = {}, customEncoder) {\n\t\tconst width = currTexture.width;\n\t\tconst height = currTexture.height;\n\t\tconst rawBlendWeight = options.blendWeight ?? .35;\n\t\tconst blendWeight = typeof rawBlendWeight === \"number\" ? rawBlendWeight : Number(rawBlendWeight);\n\t\tconst disocclusionThreshold = options.disocclusionThreshold ?? .15;\n\t\tconst maxMotionPixels = options.maxMotionPixels ?? 64;\n\t\tconst format = currTexture.format;\n\t\tconst isRgba16f = format === \"rgba16float\";\n\t\tif (!this.cachedOutputTexture || this.cachedOutputTexture.width !== width || this.cachedOutputTexture.height !== height || this.cachedOutputTexture.format !== format) {\n\t\t\tthis.cachedOutputTexture?.destroy();\n\t\t\tthis.cachedOutputTexture = this.device.createTexture({\n\t\t\t\tlabel: `deflickered_output_${format}`,\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat,\n\t\t\t\tusage: GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT\n\t\t\t});\n\t\t}\n\t\tif (!this.historyTexture || this.historyTexture.width !== width || this.historyTexture.height !== height) {\n\t\t\tthis.historyTexture?.destroy();\n\t\t\tthis.historyTexture = this.device.createTexture({\n\t\t\t\tlabel: \"deflicker_history_texture\",\n\t\t\t\tsize: [width, height],\n\t\t\t\tformat,\n\t\t\t\tusage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.COPY_SRC\n\t\t\t});\n\t\t\tconst commandEncoder$1 = customEncoder ?? this.device.createCommandEncoder({ label: \"deflicker_first_frame_encoder\" });\n\t\t\tcommandEncoder$1.copyTextureToTexture({ texture: currTexture }, { texture: this.historyTexture }, [width, height]);\n\t\t\tcommandEncoder$1.copyTextureToTexture({ texture: currTexture }, { texture: this.cachedOutputTexture }, [width, height]);\n\t\t\tif (!customEncoder) this.device.queue.submit([commandEncoder$1.finish()]);\n\t\t\treturn this.cachedOutputTexture;\n\t\t}\n\t\tconst flowTexture = this.flowPipeline.execute(this.historyTexture, currTexture, options.opticalFlow, customEncoder);\n\t\tconst uniformData = /* @__PURE__ */ new ArrayBuffer(32);\n\t\tconst u32View = new Uint32Array(uniformData);\n\t\tconst f32View = new Float32Array(uniformData);\n\t\tu32View[0] = width;\n\t\tu32View[1] = height;\n\t\tf32View[2] = blendWeight;\n\t\tf32View[3] = disocclusionThreshold;\n\t\tf32View[4] = maxMotionPixels;\n\t\tf32View[5] = 0;\n\t\tthis.device.queue.writeBuffer(this.uniformBuffer, 0, uniformData);\n\t\tconst pipeline = isRgba16f ? this.rgba16fPipeline : this.rgba8Pipeline;\n\t\tconst commandEncoder = customEncoder ?? this.device.createCommandEncoder({ label: \"deflicker_blend_encoder\" });\n\t\tconst bindGroup = this.device.createBindGroup({\n\t\t\tlayout: pipeline.getBindGroupLayout(0),\n\t\t\tentries: [\n\t\t\t\t{\n\t\t\t\t\tbinding: 0,\n\t\t\t\t\tresource: this.historyTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 1,\n\t\t\t\t\tresource: currTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 2,\n\t\t\t\t\tresource: flowTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 3,\n\t\t\t\t\tresource: this.cachedOutputTexture.createView()\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 4,\n\t\t\t\t\tresource: { buffer: this.uniformBuffer }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tbinding: 5,\n\t\t\t\t\tresource: this.bilinearSampler\n\t\t\t\t}\n\t\t\t]\n\t\t});\n\t\tconst pass = commandEncoder.beginComputePass({ label: \"deflicker_blend_pass\" });\n\t\tpass.setPipeline(pipeline);\n\t\tpass.setBindGroup(0, bindGroup);\n\t\tpass.dispatchWorkgroups(Math.ceil(width / 16), Math.ceil(height / 16));\n\t\tpass.end();\n\t\tcommandEncoder.copyTextureToTexture({ texture: this.cachedOutputTexture }, { texture: this.historyTexture }, [width, height]);\n\t\tif (!customEncoder) this.device.queue.submit([commandEncoder.finish()]);\n\t\treturn this.cachedOutputTexture;\n\t}\n\treset() {\n\t\tthis.historyTexture?.destroy();\n\t\tthis.historyTexture = void 0;\n\t}\n\tdestroy() {\n\t\tthis.flowPipeline.destroy();\n\t\tthis.historyTexture?.destroy();\n\t\tthis.cachedOutputTexture?.destroy();\n\t\tthis.uniformBuffer.destroy();\n\t}\n};\n\n//#endregion\n//#region src/pipeline/tensor-pipeline.ts\nvar TensorPipeline = class TensorPipeline {\n\tid;\n\tcannyOptions;\n\tdepthNormalsOptions;\n\tposeSkeletonOptions;\n\tfaceLandmarksOptions;\n\tsegmentationOptions;\n\topticalFlowOptions;\n\tdeflickerOptions;\n\tmultiplexer = new ControlNetMultiplexer();\n\tcannyPipeline;\n\tdepthNormalsPipeline;\n\tposePipeline;\n\tfacePipeline;\n\tsegmentationPipeline;\n\topticalFlowPipeline;\n\tdeflickerPipeline;\n\tprevInputTexture;\n\tconstructor(source) {\n\t\tthis.source = source;\n\t\tthis.id = `tensor-${Math.random().toString(36).slice(2, 9)}`;\n\t}\n\tstatic from(source) {\n\t\treturn new TensorPipeline(source);\n\t}\n\tcanny(options = {}) {\n\t\tthis.cannyOptions = options;\n\t\treturn this;\n\t}\n\tdepthNormals(options = {}) {\n\t\tthis.depthNormalsOptions = options;\n\t\treturn this;\n\t}\n\tposeSkeleton(options = {}) {\n\t\tthis.poseSkeletonOptions = options;\n\t\treturn this;\n\t}\n\tpose(landmarks, options = {}) {\n\t\tthis.poseSkeletonOptions = {\n\t\t\t...options,\n\t\t\tlandmarks\n\t\t};\n\t\treturn this;\n\t}\n\tfaceLandmarks(options = {}) {\n\t\tthis.faceLandmarksOptions = options;\n\t\treturn this;\n\t}\n\tface(landmarks, options = {}) {\n\t\tthis.faceLandmarksOptions = {\n\t\t\t...options,\n\t\t\tlandmarks\n\t\t};\n\t\treturn this;\n\t}\n\tsegmentation(options = {}) {\n\t\tthis.segmentationOptions = options;\n\t\treturn this;\n\t}\n\topticalFlow(options = {}) {\n\t\tthis.opticalFlowOptions = options;\n\t\treturn this;\n\t}\n\tdeflicker(options = {}) {\n\t\tthis.deflickerOptions = options;\n\t\treturn this;\n\t}\n\tgetMultiplexer() {\n\t\treturn this.multiplexer;\n\t}\n\tasync execute(device, overrideSourceTexture) {\n\t\tlet inputTexture = overrideSourceTexture;\n\t\tif (!inputTexture && typeof this.source?.createView === \"function\") inputTexture = this.source;\n\t\tif (!inputTexture) throw new Error(\"[TensorPipeline.execute] No GPUTexture available for tensor compute execution. Pass a valid GPUTexture to execute() or initialize with a GPUTexture source.\");\n\t\tif (this.cannyOptions) {\n\t\t\tif (!this.cannyPipeline) this.cannyPipeline = new CannyComputePipeline(device);\n\t\t\tconst cannyTex = this.cannyPipeline.execute(inputTexture, this.cannyOptions);\n\t\t\tthis.multiplexer.set(\"canny\", cannyTex);\n\t\t}\n\t\tif (this.depthNormalsOptions) {\n\t\t\tif (!this.depthNormalsPipeline) this.depthNormalsPipeline = new DepthNormalsComputePipeline(device);\n\t\t\tconst normalTex = this.depthNormalsPipeline.execute(inputTexture, this.depthNormalsOptions);\n\t\t\tthis.multiplexer.set(\"normals\", normalTex);\n\t\t}\n\t\tif (this.poseSkeletonOptions?.landmarks) {\n\t\t\tif (!this.posePipeline) this.posePipeline = new PoseSkeletonComputePipeline(device);\n\t\t\tconst skeletonTex = this.posePipeline.execute(this.poseSkeletonOptions.landmarks, {\n\t\t\t\twidth: this.poseSkeletonOptions.width ?? inputTexture.width,\n\t\t\t\theight: this.poseSkeletonOptions.height ?? inputTexture.height,\n\t\t\t\tlineWidth: this.poseSkeletonOptions.lineWidth\n\t\t\t});\n\t\t\tthis.multiplexer.set(\"poseSkeleton\", skeletonTex);\n\t\t}\n\t\tif (this.faceLandmarksOptions?.landmarks) {\n\t\t\tif (!this.facePipeline) this.facePipeline = new FaceLandmarksComputePipeline(device);\n\t\t\tconst faceTex = this.facePipeline.execute(this.faceLandmarksOptions.landmarks, {\n\t\t\t\twidth: this.faceLandmarksOptions.width ?? inputTexture.width,\n\t\t\t\theight: this.faceLandmarksOptions.height ?? inputTexture.height,\n\t\t\t\tlineWidth: this.faceLandmarksOptions.lineWidth\n\t\t\t});\n\t\t\tthis.multiplexer.set(\"faceLandmarks\", faceTex);\n\t\t}\n\t\tif (this.segmentationOptions) {\n\t\t\tif (!this.segmentationPipeline) this.segmentationPipeline = new SegmentationComputePipeline(device);\n\t\t\tconst segTex = this.segmentationPipeline.execute(inputTexture, this.segmentationOptions);\n\t\t\tthis.multiplexer.set(\"segmentationMask\", segTex);\n\t\t}\n\t\tif (this.opticalFlowOptions) {\n\t\t\tif (!this.opticalFlowPipeline) this.opticalFlowPipeline = new OpticalFlowComputePipeline(device);\n\t\t\tconst prevTex = this.prevInputTexture ?? inputTexture;\n\t\t\tconst flowTex = this.opticalFlowPipeline.execute(prevTex, inputTexture, this.opticalFlowOptions);\n\t\t\tthis.multiplexer.set(\"motionVectors\", flowTex);\n\t\t}\n\t\tif (this.deflickerOptions) {\n\t\t\tif (!this.deflickerPipeline) this.deflickerPipeline = new TemporalDeflickerPipeline(device);\n\t\t\tconst deflickeredTex = this.deflickerPipeline.execute(inputTexture, this.deflickerOptions);\n\t\t\tthis.multiplexer.set(\"deflickered\", deflickeredTex);\n\t\t}\n\t\tthis.prevInputTexture = inputTexture;\n\t\treturn this.multiplexer.getOutputs();\n\t}\n\ttoConfig() {\n\t\treturn {\n\t\t\tcanny: this.cannyOptions,\n\t\t\tdepthNormals: this.depthNormalsOptions,\n\t\t\tposeSkeleton: this.poseSkeletonOptions,\n\t\t\tfaceLandmarks: this.faceLandmarksOptions,\n\t\t\tsegmentation: this.segmentationOptions,\n\t\t\topticalFlow: this.opticalFlowOptions,\n\t\t\tdeflicker: this.deflickerOptions\n\t\t};\n\t}\n\ttoNode() {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tkind: \"tensor\",\n\t\t\tsource: this.source,\n\t\t\tconfig: this.toConfig()\n\t\t};\n\t}\n\tdestroy() {\n\t\tthis.cannyPipeline?.destroy();\n\t\tthis.depthNormalsPipeline?.destroy();\n\t\tthis.posePipeline?.destroy();\n\t\tthis.facePipeline?.destroy();\n\t\tthis.segmentationPipeline?.destroy();\n\t\tthis.opticalFlowPipeline?.destroy();\n\t\tthis.deflickerPipeline?.destroy();\n\t\tthis.multiplexer.destroy();\n\t}\n};\n\n//#endregion\nexport { CANONICAL_FACE_CONTOURS, CANONICAL_OPENPOSE_BONES, CannyComputePipeline, ControlNetMultiplexer, DepthNormalsComputePipeline, FaceLandmarksComputePipeline, OpticalFlowComputePipeline, PoseSkeletonComputePipeline, SegmentationComputePipeline, TemporalDeflickerPipeline, TensorPipeline, cannyNmsR32fWgsl, cannyNmsRgba8Wgsl, cannySobelWgsl, depthNormalsRgba16fWgsl, depthNormalsRgba8Wgsl, faceLandmarksWgsl, opticalFlowDirectWgsl, opticalFlowRefineWgsl, poseSkeletonWgsl, segmentationWgsl, temporalWarpBlendRgba16fWgsl, temporalWarpBlendRgba8Wgsl };\n//# sourceMappingURL=index.mjs.map"],"mappings":"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;EACA;EACA;EACA;EACA,CAAC;CACF,GAAG,kBAAkB;EACpB;EACA;EACA;EACA;EACA;EACA,EAAE;EACF;EACA;EACA;EACA;EACA,CAAC;CACF,GAAG,kBAAkB;EACpB;EACA;EACA;EACA;EACA;EACA,EAAE;EACF;EACA;EACA;EACA;EACA,CAAC;CACF,GAAG,kBAAkB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE;EACF;EACA;EACA;EACA;EACA,CAAC;CACF,GAAG,kBAAkB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE;EACF;EACA;EACA;EACA;EACA,CAAC;CACF,GAAG,kBAAkB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE;EACF;EACA;EACA;EACA;EACA,CAAC;CACF;AACD,IAAI,+BAA+B,MAAM;CACxC;CACA;CACA;CACA;CACA,YAAY,QAAQ;AACnB,OAAK,SAAS;EACd,MAAM,eAAe,OAAO,mBAAmB;GAC9C,OAAO;GACP,MAAM;GACN,CAAC;AACF,OAAK,kBAAkB,OAAO,sBAAsB;GACnD,OAAO;GACP,QAAQ;GACR,SAAS;IACR,QAAQ;IACR,YAAY;IACZ;GACD,CAAC;AACF,OAAK,gBAAgB,OAAO,aAAa;GACxC,MAAM;GACN,OAAO,eAAe,UAAU,eAAe;GAC/C,OAAO;GACP,CAAC;EACF,MAAM,cAAc,KAAK,IAAI,KAAK,wBAAwB,SAAS,GAAG;AACtE,OAAK,gBAAgB,OAAO,aAAa;GACxC,MAAM;GACN,OAAO,eAAe,UAAU,eAAe;GAC/C,OAAO;G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K,qBAAqB,SAAS;AACnC,OAAK,oBAAoB,SAAS;AAClC,OAAK,oBAAoB,SAAS;;;;;;;;AAWpC,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DzB,MAAM,2BAA2B;CAChC;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;EACC,MAAM;EACN,IAAI;EACJ,OAAO;GACN;GACA;GACA;GACA;GACA;EACD;CACD;AACD,IAAI,8BAA8B,MAAM;CACvC;CACA;CACA;CACA,YAAY,QAAQ;AACnB,OAAK,SAAS;EACd,MAAM,eAAe,OAAO,mBAAmB;GAC9C,OAAO;GACP,MAAM;GACN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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { G as SingleOutputGenericSchema, S as FileDataSchema, at as VirtualMediaDataSchema, dt as createOutputItemSchema } from "./dist-Bx6J0VcM.mjs";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
//#region ../node-sdk/dist/index.mjs
|
|
5
|
+
var ConfigBuilder = class ConfigBuilder$1 {
|
|
6
|
+
constructor(shape = {}, options = { strict: true }) {
|
|
7
|
+
this.shape = shape;
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
field(key, schema, options) {
|
|
11
|
+
const withMeta = options ? schema.meta({ ...options }) : schema;
|
|
12
|
+
return new ConfigBuilder$1({
|
|
13
|
+
...this.shape,
|
|
14
|
+
[key]: withMeta
|
|
15
|
+
}, this.options);
|
|
16
|
+
}
|
|
17
|
+
build() {
|
|
18
|
+
const base = z.object(this.shape);
|
|
19
|
+
return { schema: this.options.strict !== false ? base.strict() : base };
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
function configBuilder(options = { strict: true }) {
|
|
23
|
+
return new ConfigBuilder({}, options);
|
|
24
|
+
}
|
|
25
|
+
const COMPOSITE_OPERATIONS = [
|
|
26
|
+
"source-over",
|
|
27
|
+
"source-in",
|
|
28
|
+
"source-out",
|
|
29
|
+
"source-atop",
|
|
30
|
+
"destination-over",
|
|
31
|
+
"destination-in",
|
|
32
|
+
"destination-out",
|
|
33
|
+
"destination-atop",
|
|
34
|
+
"lighter",
|
|
35
|
+
"copy",
|
|
36
|
+
"xor",
|
|
37
|
+
"multiply",
|
|
38
|
+
"screen",
|
|
39
|
+
"overlay",
|
|
40
|
+
"darken",
|
|
41
|
+
"lighten",
|
|
42
|
+
"color-dodge",
|
|
43
|
+
"color-burn",
|
|
44
|
+
"hard-light",
|
|
45
|
+
"soft-light",
|
|
46
|
+
"difference",
|
|
47
|
+
"exclusion",
|
|
48
|
+
"hue",
|
|
49
|
+
"saturation",
|
|
50
|
+
"color",
|
|
51
|
+
"luminosity"
|
|
52
|
+
];
|
|
53
|
+
const GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);
|
|
54
|
+
const ColorSchema = z.string().optional();
|
|
55
|
+
const PercentageSchema = z.number().min(0).max(100);
|
|
56
|
+
const DimensionSchema = z.number().min(0).optional();
|
|
57
|
+
const AnimationSchema = z.object({ animations: z.array(z.object({
|
|
58
|
+
id: z.string(),
|
|
59
|
+
type: z.enum([
|
|
60
|
+
"fade-in",
|
|
61
|
+
"fade-out",
|
|
62
|
+
"slide-in-left",
|
|
63
|
+
"slide-in-right",
|
|
64
|
+
"slide-in-top",
|
|
65
|
+
"slide-in-bottom",
|
|
66
|
+
"zoom-in",
|
|
67
|
+
"zoom-out",
|
|
68
|
+
"rotate-cw",
|
|
69
|
+
"rotate-ccw",
|
|
70
|
+
"bounce",
|
|
71
|
+
"shake"
|
|
72
|
+
]),
|
|
73
|
+
value: z.number()
|
|
74
|
+
})).optional() });
|
|
75
|
+
const StrokeSchema = z.object({
|
|
76
|
+
stroke: ColorSchema,
|
|
77
|
+
strokeWidth: z.number().min(0).optional(),
|
|
78
|
+
strokeAlign: z.enum([
|
|
79
|
+
"inside",
|
|
80
|
+
"center",
|
|
81
|
+
"outside"
|
|
82
|
+
]).optional().default("inside"),
|
|
83
|
+
strokeRadius: z.number().min(0).optional()
|
|
84
|
+
});
|
|
85
|
+
const ImageResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Image"), FileDataSchema));
|
|
86
|
+
const VideoResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Video"), VirtualMediaDataSchema));
|
|
87
|
+
const AudioResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Audio"), VirtualMediaDataSchema));
|
|
88
|
+
const TextResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Text"), z.string()));
|
|
89
|
+
const NumberResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Number"), z.number()));
|
|
90
|
+
const SignalResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal("Signal"), z.unknown()));
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { configBuilder as a, VideoResultSchema as i, ImageResultSchema as n, SignalResultSchema as r, ColorSchema as t };
|
|
94
|
+
//# sourceMappingURL=dist-DKm2IyEJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-DKm2IyEJ.mjs","names":["ConfigBuilder"],"sources":["../../node-sdk/dist/index.mjs"],"sourcesContent":["import { WebGPURegistry, audioRegistry, defineRenderer, registerWebGPURenderer, webgpuRegistry } from \"./renderer.mjs\";\nimport { z } from \"zod\";\nimport { FileDataSchema, MultiOutputGenericSchema, SingleOutputGenericSchema, VirtualMediaDataSchema, createOutputItemSchema } from \"@framefields/core\";\n\n//#region shared/config-builder.ts\nvar ConfigBuilder = class ConfigBuilder {\n\tconstructor(shape = {}, options = { strict: true }) {\n\t\tthis.shape = shape;\n\t\tthis.options = options;\n\t}\n\tfield(key, schema, options) {\n\t\tconst withMeta = options ? schema.meta({ ...options }) : schema;\n\t\treturn new ConfigBuilder({\n\t\t\t...this.shape,\n\t\t\t[key]: withMeta\n\t\t}, this.options);\n\t}\n\tbuild() {\n\t\tconst base = z.object(this.shape);\n\t\treturn { schema: this.options.strict !== false ? base.strict() : base };\n\t}\n};\nfunction configBuilder(options = { strict: true }) {\n\treturn new ConfigBuilder({}, options);\n}\n\n//#endregion\n//#region shared/schemas.ts\nconst COMPOSITE_OPERATIONS = [\n\t\"source-over\",\n\t\"source-in\",\n\t\"source-out\",\n\t\"source-atop\",\n\t\"destination-over\",\n\t\"destination-in\",\n\t\"destination-out\",\n\t\"destination-atop\",\n\t\"lighter\",\n\t\"copy\",\n\t\"xor\",\n\t\"multiply\",\n\t\"screen\",\n\t\"overlay\",\n\t\"darken\",\n\t\"lighten\",\n\t\"color-dodge\",\n\t\"color-burn\",\n\t\"hard-light\",\n\t\"soft-light\",\n\t\"difference\",\n\t\"exclusion\",\n\t\"hue\",\n\t\"saturation\",\n\t\"color\",\n\t\"luminosity\"\n];\nconst GlobalCompositeOperation = z.enum(COMPOSITE_OPERATIONS);\nconst ColorSchema = z.string().optional();\nconst PercentageSchema = z.number().min(0).max(100);\nconst DimensionSchema = z.number().min(0).optional();\nconst AnimationSchema = z.object({ animations: z.array(z.object({\n\tid: z.string(),\n\ttype: z.enum([\n\t\t\"fade-in\",\n\t\t\"fade-out\",\n\t\t\"slide-in-left\",\n\t\t\"slide-in-right\",\n\t\t\"slide-in-top\",\n\t\t\"slide-in-bottom\",\n\t\t\"zoom-in\",\n\t\t\"zoom-out\",\n\t\t\"rotate-cw\",\n\t\t\"rotate-ccw\",\n\t\t\"bounce\",\n\t\t\"shake\"\n\t]),\n\tvalue: z.number()\n})).optional() });\nconst StrokeSchema = z.object({\n\tstroke: ColorSchema,\n\tstrokeWidth: z.number().min(0).optional(),\n\tstrokeAlign: z.enum([\n\t\t\"inside\",\n\t\t\"center\",\n\t\t\"outside\"\n\t]).optional().default(\"inside\"),\n\tstrokeRadius: z.number().min(0).optional()\n});\nconst ImageResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Image\"), FileDataSchema));\nconst VideoResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Video\"), VirtualMediaDataSchema));\nconst AudioResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Audio\"), VirtualMediaDataSchema));\nconst TextResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Text\"), z.string()));\nconst NumberResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Number\"), z.number()));\nconst SignalResultSchema = SingleOutputGenericSchema(createOutputItemSchema(z.literal(\"Signal\"), z.unknown()));\n\n//#endregion\nexport { AnimationSchema, AudioResultSchema, COMPOSITE_OPERATIONS, ColorSchema, ConfigBuilder, DimensionSchema, FileDataSchema, GlobalCompositeOperation, ImageResultSchema, MultiOutputGenericSchema, NumberResultSchema, PercentageSchema, SignalResultSchema, SingleOutputGenericSchema, StrokeSchema, TextResultSchema, VideoResultSchema, VirtualMediaDataSchema, WebGPURegistry, audioRegistry, configBuilder, createOutputItemSchema, defineRenderer, registerWebGPURenderer, webgpuRegistry };\n//# sourceMappingURL=index.mjs.map"],"mappings":";;;;AAKA,IAAI,gBAAgB,MAAMA,gBAAc;CACvC,YAAY,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,MAAM,EAAE;AACnD,OAAK,QAAQ;AACb,OAAK,UAAU;;CAEhB,MAAM,KAAK,QAAQ,SAAS;EAC3B,MAAM,WAAW,UAAU,OAAO,KAAK,EAAE,GAAG,SAAS,CAAC,GAAG;AACzD,SAAO,IAAIA,gBAAc;GACxB,GAAG,KAAK;IACP,MAAM;GACP,EAAE,KAAK,QAAQ;;CAEjB,QAAQ;EACP,MAAM,OAAO,EAAE,OAAO,KAAK,MAAM;AACjC,SAAO,EAAE,QAAQ,KAAK,QAAQ,WAAW,QAAQ,KAAK,QAAQ,GAAG,MAAM;;;AAGzE,SAAS,cAAc,UAAU,EAAE,QAAQ,MAAM,EAAE;AAClD,QAAO,IAAI,cAAc,EAAE,EAAE,QAAQ;;AAKtC,MAAM,uBAAuB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD,MAAM,2BAA2B,EAAE,KAAK,qBAAqB;AAC7D,MAAM,cAAc,EAAE,QAAQ,CAAC,UAAU;AACzC,MAAM,mBAAmB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI;AACnD,MAAM,kBAAkB,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;AACpD,MAAM,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO;CAC/D,IAAI,EAAE,QAAQ;CACd,MAAM,EAAE,KAAK;EACZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,CAAC;CACF,OAAO,EAAE,QAAQ;CACjB,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;AACjB,MAAM,eAAe,EAAE,OAAO;CAC7B,QAAQ;CACR,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CACzC,aAAa,EAAE,KAAK;EACnB;EACA;EACA;EACA,CAAC,CAAC,UAAU,CAAC,QAAQ,SAAS;CAC/B,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU;CAC1C,CAAC;AACF,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,eAAe,CAAC;AAC/G,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,uBAAuB,CAAC;AACvH,MAAM,oBAAoB,0BAA0B,uBAAuB,EAAE,QAAQ,QAAQ,EAAE,uBAAuB,CAAC;AACvH,MAAM,mBAAmB,0BAA0B,uBAAuB,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzG,MAAM,qBAAqB,0BAA0B,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7G,MAAM,qBAAqB,0BAA0B,uBAAuB,EAAE,QAAQ,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as __commonJSMin } from "./chunk-GMkBE123.mjs";
|
|
2
|
+
|
|
3
|
+
//#region ../../node_modules/.pnpm/@smithy+types@4.13.1/node_modules/@smithy/types/dist-cjs/index.js
|
|
4
|
+
var require_dist_cjs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5
|
+
exports.HttpAuthLocation = void 0;
|
|
6
|
+
(function(HttpAuthLocation) {
|
|
7
|
+
HttpAuthLocation["HEADER"] = "header";
|
|
8
|
+
HttpAuthLocation["QUERY"] = "query";
|
|
9
|
+
})(exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));
|
|
10
|
+
exports.HttpApiKeyAuthLocation = void 0;
|
|
11
|
+
(function(HttpApiKeyAuthLocation) {
|
|
12
|
+
HttpApiKeyAuthLocation["HEADER"] = "header";
|
|
13
|
+
HttpApiKeyAuthLocation["QUERY"] = "query";
|
|
14
|
+
})(exports.HttpApiKeyAuthLocation || (exports.HttpApiKeyAuthLocation = {}));
|
|
15
|
+
exports.EndpointURLScheme = void 0;
|
|
16
|
+
(function(EndpointURLScheme) {
|
|
17
|
+
EndpointURLScheme["HTTP"] = "http";
|
|
18
|
+
EndpointURLScheme["HTTPS"] = "https";
|
|
19
|
+
})(exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));
|
|
20
|
+
exports.AlgorithmId = void 0;
|
|
21
|
+
(function(AlgorithmId) {
|
|
22
|
+
AlgorithmId["MD5"] = "md5";
|
|
23
|
+
AlgorithmId["CRC32"] = "crc32";
|
|
24
|
+
AlgorithmId["CRC32C"] = "crc32c";
|
|
25
|
+
AlgorithmId["SHA1"] = "sha1";
|
|
26
|
+
AlgorithmId["SHA256"] = "sha256";
|
|
27
|
+
})(exports.AlgorithmId || (exports.AlgorithmId = {}));
|
|
28
|
+
const getChecksumConfiguration = (runtimeConfig) => {
|
|
29
|
+
const checksumAlgorithms = [];
|
|
30
|
+
if (runtimeConfig.sha256 !== void 0) checksumAlgorithms.push({
|
|
31
|
+
algorithmId: () => exports.AlgorithmId.SHA256,
|
|
32
|
+
checksumConstructor: () => runtimeConfig.sha256
|
|
33
|
+
});
|
|
34
|
+
if (runtimeConfig.md5 != void 0) checksumAlgorithms.push({
|
|
35
|
+
algorithmId: () => exports.AlgorithmId.MD5,
|
|
36
|
+
checksumConstructor: () => runtimeConfig.md5
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
addChecksumAlgorithm(algo) {
|
|
40
|
+
checksumAlgorithms.push(algo);
|
|
41
|
+
},
|
|
42
|
+
checksumAlgorithms() {
|
|
43
|
+
return checksumAlgorithms;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const resolveChecksumRuntimeConfig = (clientConfig) => {
|
|
48
|
+
const runtimeConfig = {};
|
|
49
|
+
clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {
|
|
50
|
+
runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();
|
|
51
|
+
});
|
|
52
|
+
return runtimeConfig;
|
|
53
|
+
};
|
|
54
|
+
const getDefaultClientConfiguration = (runtimeConfig) => {
|
|
55
|
+
return getChecksumConfiguration(runtimeConfig);
|
|
56
|
+
};
|
|
57
|
+
const resolveDefaultRuntimeConfig = (config) => {
|
|
58
|
+
return resolveChecksumRuntimeConfig(config);
|
|
59
|
+
};
|
|
60
|
+
exports.FieldPosition = void 0;
|
|
61
|
+
(function(FieldPosition) {
|
|
62
|
+
FieldPosition[FieldPosition["HEADER"] = 0] = "HEADER";
|
|
63
|
+
FieldPosition[FieldPosition["TRAILER"] = 1] = "TRAILER";
|
|
64
|
+
})(exports.FieldPosition || (exports.FieldPosition = {}));
|
|
65
|
+
const SMITHY_CONTEXT_KEY = "__smithy_context";
|
|
66
|
+
exports.IniSectionType = void 0;
|
|
67
|
+
(function(IniSectionType) {
|
|
68
|
+
IniSectionType["PROFILE"] = "profile";
|
|
69
|
+
IniSectionType["SSO_SESSION"] = "sso-session";
|
|
70
|
+
IniSectionType["SERVICES"] = "services";
|
|
71
|
+
})(exports.IniSectionType || (exports.IniSectionType = {}));
|
|
72
|
+
exports.RequestHandlerProtocol = void 0;
|
|
73
|
+
(function(RequestHandlerProtocol) {
|
|
74
|
+
RequestHandlerProtocol["HTTP_0_9"] = "http/0.9";
|
|
75
|
+
RequestHandlerProtocol["HTTP_1_0"] = "http/1.0";
|
|
76
|
+
RequestHandlerProtocol["TDS_8_0"] = "tds/8.0";
|
|
77
|
+
})(exports.RequestHandlerProtocol || (exports.RequestHandlerProtocol = {}));
|
|
78
|
+
exports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY;
|
|
79
|
+
exports.getDefaultClientConfiguration = getDefaultClientConfiguration;
|
|
80
|
+
exports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;
|
|
81
|
+
}));
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
export { require_dist_cjs as t };
|
|
85
|
+
//# sourceMappingURL=dist-cjs-B5EVqDFp.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-cjs-B5EVqDFp.mjs","names":[],"sources":["../../../node_modules/.pnpm/@smithy+types@4.13.1/node_modules/@smithy/types/dist-cjs/index.js"],"sourcesContent":["'use strict';\n\nexports.HttpAuthLocation = void 0;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpAuthLocation || (exports.HttpAuthLocation = {}));\n\nexports.HttpApiKeyAuthLocation = void 0;\n(function (HttpApiKeyAuthLocation) {\n HttpApiKeyAuthLocation[\"HEADER\"] = \"header\";\n HttpApiKeyAuthLocation[\"QUERY\"] = \"query\";\n})(exports.HttpApiKeyAuthLocation || (exports.HttpApiKeyAuthLocation = {}));\n\nexports.EndpointURLScheme = void 0;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(exports.EndpointURLScheme || (exports.EndpointURLScheme = {}));\n\nexports.AlgorithmId = void 0;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(exports.AlgorithmId || (exports.AlgorithmId = {}));\nconst getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => exports.AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n addChecksumAlgorithm(algo) {\n checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return checksumAlgorithms;\n },\n };\n};\nconst resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n\nconst getDefaultClientConfiguration = (runtimeConfig) => {\n return getChecksumConfiguration(runtimeConfig);\n};\nconst resolveDefaultRuntimeConfig = (config) => {\n return resolveChecksumRuntimeConfig(config);\n};\n\nexports.FieldPosition = void 0;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(exports.FieldPosition || (exports.FieldPosition = {}));\n\nconst SMITHY_CONTEXT_KEY = \"__smithy_context\";\n\nexports.IniSectionType = void 0;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(exports.IniSectionType || (exports.IniSectionType = {}));\n\nexports.RequestHandlerProtocol = void 0;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(exports.RequestHandlerProtocol || (exports.RequestHandlerProtocol = {}));\n\nexports.SMITHY_CONTEXT_KEY = SMITHY_CONTEXT_KEY;\nexports.getDefaultClientConfiguration = getDefaultClientConfiguration;\nexports.resolveDefaultRuntimeConfig = resolveDefaultRuntimeConfig;\n"],"x_google_ignoreList":[0],"mappings":";;;;AAEA,SAAQ,mBAAmB,KAAK;AAChC,EAAC,SAAU,kBAAkB;AACzB,mBAAiB,YAAY;AAC7B,mBAAiB,WAAW;IAC7B,QAAQ,qBAAqB,QAAQ,mBAAmB,EAAE,EAAE;AAE/D,SAAQ,yBAAyB,KAAK;AACtC,EAAC,SAAU,wBAAwB;AAC/B,yBAAuB,YAAY;AACnC,yBAAuB,WAAW;IACnC,QAAQ,2BAA2B,QAAQ,yBAAyB,EAAE,EAAE;AAE3E,SAAQ,oBAAoB,KAAK;AACjC,EAAC,SAAU,mBAAmB;AAC1B,oBAAkB,UAAU;AAC5B,oBAAkB,WAAW;IAC9B,QAAQ,sBAAsB,QAAQ,oBAAoB,EAAE,EAAE;AAEjE,SAAQ,cAAc,KAAK;AAC3B,EAAC,SAAU,aAAa;AACpB,cAAY,SAAS;AACrB,cAAY,WAAW;AACvB,cAAY,YAAY;AACxB,cAAY,UAAU;AACtB,cAAY,YAAY;IACzB,QAAQ,gBAAgB,QAAQ,cAAc,EAAE,EAAE;CACrD,MAAM,4BAA4B,kBAAkB;EAChD,MAAM,qBAAqB,EAAE;AAC7B,MAAI,cAAc,WAAW,OACzB,oBAAmB,KAAK;GACpB,mBAAmB,QAAQ,YAAY;GACvC,2BAA2B,cAAc;GAC5C,CAAC;AAEN,MAAI,cAAc,OAAO,OACrB,oBAAmB,KAAK;GACpB,mBAAmB,QAAQ,YAAY;GACvC,2BAA2B,cAAc;GAC5C,CAAC;AAEN,SAAO;GACH,qBAAqB,MAAM;AACvB,uBAAmB,KAAK,KAAK;;GAEjC,qBAAqB;AACjB,WAAO;;GAEd;;CAEL,MAAM,gCAAgC,iBAAiB;EACnD,MAAM,gBAAgB,EAAE;AACxB,eAAa,oBAAoB,CAAC,SAAS,sBAAsB;AAC7D,iBAAc,kBAAkB,aAAa,IAAI,kBAAkB,qBAAqB;IAC1F;AACF,SAAO;;CAGX,MAAM,iCAAiC,kBAAkB;AACrD,SAAO,yBAAyB,cAAc;;CAElD,MAAM,+BAA+B,WAAW;AAC5C,SAAO,6BAA6B,OAAO;;AAG/C,SAAQ,gBAAgB,KAAK;AAC7B,EAAC,SAAU,eAAe;AACtB,gBAAc,cAAc,YAAY,KAAK;AAC7C,gBAAc,cAAc,aAAa,KAAK;IAC/C,QAAQ,kBAAkB,QAAQ,gBAAgB,EAAE,EAAE;CAEzD,MAAM,qBAAqB;AAE3B,SAAQ,iBAAiB,KAAK;AAC9B,EAAC,SAAU,gBAAgB;AACvB,iBAAe,aAAa;AAC5B,iBAAe,iBAAiB;AAChC,iBAAe,cAAc;IAC9B,QAAQ,mBAAmB,QAAQ,iBAAiB,EAAE,EAAE;AAE3D,SAAQ,yBAAyB,KAAK;AACtC,EAAC,SAAU,wBAAwB;AAC/B,yBAAuB,cAAc;AACrC,yBAAuB,cAAc;AACrC,yBAAuB,aAAa;IACrC,QAAQ,2BAA2B,QAAQ,yBAAyB,EAAE,EAAE;AAE3E,SAAQ,qBAAqB;AAC7B,SAAQ,gCAAgC;AACxC,SAAQ,8BAA8B"}
|