@namzu/cli 35.0.0 → 36.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +764 -0
- package/README.md +160 -394
- package/assets/pal-blender-mcp.py +123 -0
- package/assets/pal-godot-mcp-pin.json +135 -0
- package/assets/pal-godot-mcp.cjs +418 -0
- package/dist/bin-main.d.ts +3 -0
- package/dist/bin-main.d.ts.map +1 -0
- package/dist/bin.d.ts +2 -1
- package/dist/bin.d.ts.map +1 -1
- package/dist/bin.js +85 -23
- package/dist/bin.js.map +6 -1
- package/dist/boot-narrative.d.ts +16 -0
- package/dist/boot-narrative.d.ts.map +1 -0
- package/dist/checkpoints/manifest.d.ts +107 -0
- package/dist/checkpoints/manifest.d.ts.map +1 -0
- package/dist/checkpoints/store.d.ts +280 -40
- package/dist/checkpoints/store.d.ts.map +1 -1
- package/dist/checkpoints/undo-plan.d.ts +83 -0
- package/dist/checkpoints/undo-plan.d.ts.map +1 -0
- package/dist/checkpoints/wrap.d.ts +4 -0
- package/dist/checkpoints/wrap.d.ts.map +1 -1
- package/dist/chunks/acp-5CWS2GLJ.js +13448 -0
- package/dist/chunks/acp-5CWS2GLJ.js.map +6 -0
- package/dist/chunks/activity-command-HK7YJTXV.js +262 -0
- package/dist/chunks/activity-command-HK7YJTXV.js.map +6 -0
- package/dist/chunks/add-ULH5DUNX.js +712 -0
- package/dist/chunks/add-ULH5DUNX.js.map +6 -0
- package/dist/chunks/agent-UEK2U3RE.js +87 -0
- package/dist/chunks/agent-UEK2U3RE.js.map +6 -0
- package/dist/chunks/agent-session-V7JRTODS.js +46 -0
- package/dist/chunks/agent-session-V7JRTODS.js.map +6 -0
- package/dist/chunks/archive-C4A3HPLF.js +84 -0
- package/dist/chunks/archive-C4A3HPLF.js.map +6 -0
- package/dist/chunks/bin-main-EEJHRDIC.js +126 -0
- package/dist/chunks/bin-main-EEJHRDIC.js.map +6 -0
- package/dist/chunks/browser-CRX4HM4C.js +31 -0
- package/dist/chunks/browser-CRX4HM4C.js.map +6 -0
- package/dist/chunks/chat-FVBATC4E.js +101 -0
- package/dist/chunks/chat-FVBATC4E.js.map +6 -0
- package/dist/chunks/chunk-2A37JQKY.js +1355 -0
- package/dist/chunks/chunk-2A37JQKY.js.map +6 -0
- package/dist/chunks/chunk-2NJ2XUXJ.js +283 -0
- package/dist/chunks/chunk-2NJ2XUXJ.js.map +6 -0
- package/dist/chunks/chunk-4HAE7PYX.js +74 -0
- package/dist/chunks/chunk-4HAE7PYX.js.map +6 -0
- package/dist/chunks/chunk-5GRV6P5C.js +69 -0
- package/dist/chunks/chunk-5GRV6P5C.js.map +6 -0
- package/dist/chunks/chunk-5PQVJBIO.js +168 -0
- package/dist/chunks/chunk-5PQVJBIO.js.map +6 -0
- package/dist/chunks/chunk-62I7HLAP.js +1142 -0
- package/dist/chunks/chunk-62I7HLAP.js.map +6 -0
- package/dist/chunks/chunk-63CGV3XY.js +161 -0
- package/dist/chunks/chunk-63CGV3XY.js.map +6 -0
- package/dist/chunks/chunk-6LLJQ3KY.js +225 -0
- package/dist/chunks/chunk-6LLJQ3KY.js.map +6 -0
- package/dist/chunks/chunk-6YG7D7U4.js +159 -0
- package/dist/chunks/chunk-6YG7D7U4.js.map +6 -0
- package/dist/chunks/chunk-76FLAFCG.js +51 -0
- package/dist/chunks/chunk-76FLAFCG.js.map +6 -0
- package/dist/chunks/chunk-7WJOQ6EA.js +106 -0
- package/dist/chunks/chunk-7WJOQ6EA.js.map +6 -0
- package/dist/chunks/chunk-A22MBIYU.js +42 -0
- package/dist/chunks/chunk-A22MBIYU.js.map +6 -0
- package/dist/chunks/chunk-A5DWGNGR.js +73 -0
- package/dist/chunks/chunk-A5DWGNGR.js.map +6 -0
- package/dist/chunks/chunk-A5UXODFL.js +76 -0
- package/dist/chunks/chunk-A5UXODFL.js.map +6 -0
- package/dist/chunks/chunk-AHIDYIRB.js +329 -0
- package/dist/chunks/chunk-AHIDYIRB.js.map +6 -0
- package/dist/chunks/chunk-AIY4PCDR.js +164 -0
- package/dist/chunks/chunk-AIY4PCDR.js.map +6 -0
- package/dist/chunks/chunk-AK2U3N2A.js +31 -0
- package/dist/chunks/chunk-AK2U3N2A.js.map +6 -0
- package/dist/chunks/chunk-AN7FO7NS.js +247 -0
- package/dist/chunks/chunk-AN7FO7NS.js.map +6 -0
- package/dist/chunks/chunk-AXIGFKJF.js +34 -0
- package/dist/chunks/chunk-AXIGFKJF.js.map +6 -0
- package/dist/chunks/chunk-C5WBEO3X.js +46 -0
- package/dist/chunks/chunk-C5WBEO3X.js.map +6 -0
- package/dist/chunks/chunk-C5XYHYMX.js +675 -0
- package/dist/chunks/chunk-C5XYHYMX.js.map +6 -0
- package/dist/chunks/chunk-CG65NUSJ.js +115 -0
- package/dist/chunks/chunk-CG65NUSJ.js.map +6 -0
- package/dist/chunks/chunk-CHIEVVQ2.js +32 -0
- package/dist/chunks/chunk-CHIEVVQ2.js.map +6 -0
- package/dist/chunks/chunk-E5VLANCO.js +101 -0
- package/dist/chunks/chunk-E5VLANCO.js.map +6 -0
- package/dist/chunks/chunk-EBOHVFOB.js +648 -0
- package/dist/chunks/chunk-EBOHVFOB.js.map +6 -0
- package/dist/chunks/chunk-EEDZOGV4.js +47 -0
- package/dist/chunks/chunk-EEDZOGV4.js.map +6 -0
- package/dist/chunks/chunk-EIYM6TY7.js +1479 -0
- package/dist/chunks/chunk-EIYM6TY7.js.map +6 -0
- package/dist/chunks/chunk-EWKJGHRO.js +82559 -0
- package/dist/chunks/chunk-EWKJGHRO.js.map +6 -0
- package/dist/chunks/chunk-EY7UNVER.js +311 -0
- package/dist/chunks/chunk-EY7UNVER.js.map +6 -0
- package/dist/chunks/chunk-FTMTO72X.js +95 -0
- package/dist/chunks/chunk-FTMTO72X.js.map +6 -0
- package/dist/chunks/chunk-FXS3AG6B.js +25326 -0
- package/dist/chunks/chunk-FXS3AG6B.js.map +6 -0
- package/dist/chunks/chunk-GIXSS6KW.js +2228 -0
- package/dist/chunks/chunk-GIXSS6KW.js.map +6 -0
- package/dist/chunks/chunk-GMCOZ3CU.js +245 -0
- package/dist/chunks/chunk-GMCOZ3CU.js.map +6 -0
- package/dist/chunks/chunk-GNBMKISG.js +19 -0
- package/dist/chunks/chunk-GNBMKISG.js.map +6 -0
- package/dist/chunks/chunk-GWQEMJFS.js +28 -0
- package/dist/chunks/chunk-GWQEMJFS.js.map +6 -0
- package/dist/chunks/chunk-H6B6AROX.js +151 -0
- package/dist/chunks/chunk-H6B6AROX.js.map +6 -0
- package/dist/chunks/chunk-HBBB2CAC.js +75 -0
- package/dist/chunks/chunk-HBBB2CAC.js.map +6 -0
- package/dist/chunks/chunk-HE7WUOX2.js +26 -0
- package/dist/chunks/chunk-HE7WUOX2.js.map +6 -0
- package/dist/chunks/chunk-HFJHHCTY.js +303 -0
- package/dist/chunks/chunk-HFJHHCTY.js.map +6 -0
- package/dist/chunks/chunk-HPMWYIBY.js +773 -0
- package/dist/chunks/chunk-HPMWYIBY.js.map +6 -0
- package/dist/chunks/chunk-HQM2WSQT.js +106 -0
- package/dist/chunks/chunk-HQM2WSQT.js.map +6 -0
- package/dist/chunks/chunk-ITZK4B66.js +787 -0
- package/dist/chunks/chunk-ITZK4B66.js.map +6 -0
- package/dist/chunks/chunk-J72CRUNX.js +154 -0
- package/dist/chunks/chunk-J72CRUNX.js.map +6 -0
- package/dist/chunks/chunk-JORONMD3.js +18 -0
- package/dist/chunks/chunk-JORONMD3.js.map +6 -0
- package/dist/chunks/chunk-JPPC4LJF.js +271 -0
- package/dist/chunks/chunk-JPPC4LJF.js.map +6 -0
- package/dist/chunks/chunk-JV3LONAU.js +76 -0
- package/dist/chunks/chunk-JV3LONAU.js.map +6 -0
- package/dist/chunks/chunk-K76WV7TN.js +71 -0
- package/dist/chunks/chunk-K76WV7TN.js.map +6 -0
- package/dist/chunks/chunk-KCWUQRZV.js +828 -0
- package/dist/chunks/chunk-KCWUQRZV.js.map +6 -0
- package/dist/chunks/chunk-KONYGNG6.js +7661 -0
- package/dist/chunks/chunk-KONYGNG6.js.map +6 -0
- package/dist/chunks/chunk-KU3W6IHV.js +109 -0
- package/dist/chunks/chunk-KU3W6IHV.js.map +6 -0
- package/dist/chunks/chunk-LQMHASKR.js +171 -0
- package/dist/chunks/chunk-LQMHASKR.js.map +6 -0
- package/dist/chunks/chunk-LXB3S4IC.js +19 -0
- package/dist/chunks/chunk-LXB3S4IC.js.map +6 -0
- package/dist/chunks/chunk-MZP6SH3M.js +3497 -0
- package/dist/chunks/chunk-MZP6SH3M.js.map +6 -0
- package/dist/chunks/chunk-N5IF64K3.js +1858 -0
- package/dist/chunks/chunk-N5IF64K3.js.map +6 -0
- package/dist/chunks/chunk-NADQQMMG.js +46 -0
- package/dist/chunks/chunk-NADQQMMG.js.map +6 -0
- package/dist/chunks/chunk-NQY5P2EB.js +20 -0
- package/dist/chunks/chunk-NQY5P2EB.js.map +6 -0
- package/dist/chunks/chunk-NUGPLXVK.js +228 -0
- package/dist/chunks/chunk-NUGPLXVK.js.map +6 -0
- package/dist/chunks/chunk-O7DBCVNY.js +110 -0
- package/dist/chunks/chunk-O7DBCVNY.js.map +6 -0
- package/dist/chunks/chunk-OEW7CJKK.js +140 -0
- package/dist/chunks/chunk-OEW7CJKK.js.map +6 -0
- package/dist/chunks/chunk-OH6TB27S.js +111 -0
- package/dist/chunks/chunk-OH6TB27S.js.map +6 -0
- package/dist/chunks/chunk-OLPOM3DR.js +127 -0
- package/dist/chunks/chunk-OLPOM3DR.js.map +6 -0
- package/dist/chunks/chunk-PYG7DZ2D.js +380 -0
- package/dist/chunks/chunk-PYG7DZ2D.js.map +6 -0
- package/dist/chunks/chunk-Q24K7536.js +661 -0
- package/dist/chunks/chunk-Q24K7536.js.map +6 -0
- package/dist/chunks/chunk-Q5YM2GCX.js +283 -0
- package/dist/chunks/chunk-Q5YM2GCX.js.map +6 -0
- package/dist/chunks/chunk-R7DCDBRN.js +106 -0
- package/dist/chunks/chunk-R7DCDBRN.js.map +6 -0
- package/dist/chunks/chunk-RC6X3ZY6.js +1439 -0
- package/dist/chunks/chunk-RC6X3ZY6.js.map +6 -0
- package/dist/chunks/chunk-SGS435PR.js +11111 -0
- package/dist/chunks/chunk-SGS435PR.js.map +6 -0
- package/dist/chunks/chunk-SKKWMMFP.js +474 -0
- package/dist/chunks/chunk-SKKWMMFP.js.map +6 -0
- package/dist/chunks/chunk-SRU3MDHZ.js +75 -0
- package/dist/chunks/chunk-SRU3MDHZ.js.map +6 -0
- package/dist/chunks/chunk-TBIX6JRE.js +24 -0
- package/dist/chunks/chunk-TBIX6JRE.js.map +6 -0
- package/dist/chunks/chunk-THNCQJ33.js +11265 -0
- package/dist/chunks/chunk-THNCQJ33.js.map +6 -0
- package/dist/chunks/chunk-THZXXVHM.js +2953 -0
- package/dist/chunks/chunk-THZXXVHM.js.map +6 -0
- package/dist/chunks/chunk-TIGWWAJI.js +765 -0
- package/dist/chunks/chunk-TIGWWAJI.js.map +6 -0
- package/dist/chunks/chunk-UDBEU2FR.js +97 -0
- package/dist/chunks/chunk-UDBEU2FR.js.map +6 -0
- package/dist/chunks/chunk-UOOQPODR.js +257 -0
- package/dist/chunks/chunk-UOOQPODR.js.map +6 -0
- package/dist/chunks/chunk-US5ZFPAU.js +400 -0
- package/dist/chunks/chunk-US5ZFPAU.js.map +6 -0
- package/dist/chunks/chunk-UWWGSDZ5.js +134 -0
- package/dist/chunks/chunk-UWWGSDZ5.js.map +6 -0
- package/dist/chunks/chunk-UXVYJWN5.js +1373 -0
- package/dist/chunks/chunk-UXVYJWN5.js.map +6 -0
- package/dist/chunks/chunk-V7TQR6AR.js +818 -0
- package/dist/chunks/chunk-V7TQR6AR.js.map +6 -0
- package/dist/chunks/chunk-VRL2WNQN.js +7534 -0
- package/dist/chunks/chunk-VRL2WNQN.js.map +6 -0
- package/dist/chunks/chunk-WATMFOHB.js +319 -0
- package/dist/chunks/chunk-WATMFOHB.js.map +6 -0
- package/dist/chunks/chunk-WHODOMXA.js +132 -0
- package/dist/chunks/chunk-WHODOMXA.js.map +6 -0
- package/dist/chunks/chunk-WM2JEUGV.js +207 -0
- package/dist/chunks/chunk-WM2JEUGV.js.map +6 -0
- package/dist/chunks/chunk-XEUQN4JC.js +54 -0
- package/dist/chunks/chunk-XEUQN4JC.js.map +6 -0
- package/dist/chunks/chunk-XHOD3RDN.js +517 -0
- package/dist/chunks/chunk-XHOD3RDN.js.map +6 -0
- package/dist/chunks/chunk-Y7B67G22.js +26 -0
- package/dist/chunks/chunk-Y7B67G22.js.map +6 -0
- package/dist/chunks/chunk-ZKEWE6K4.js +399 -0
- package/dist/chunks/chunk-ZKEWE6K4.js.map +6 -0
- package/dist/chunks/chunk-ZPR4IMRT.js +36 -0
- package/dist/chunks/chunk-ZPR4IMRT.js.map +6 -0
- package/dist/chunks/chunk-ZWA2JRJV.js +45 -0
- package/dist/chunks/chunk-ZWA2JRJV.js.map +6 -0
- package/dist/chunks/cli-runtime-7YAOEJGS.js +129 -0
- package/dist/chunks/cli-runtime-7YAOEJGS.js.map +6 -0
- package/dist/chunks/commands-QPVRB3RK.js +21 -0
- package/dist/chunks/commands-QPVRB3RK.js.map +6 -0
- package/dist/chunks/computer-GXDY4H35.js +493 -0
- package/dist/chunks/computer-GXDY4H35.js.map +6 -0
- package/dist/chunks/crash-report-S3BTEPYR.js +21 -0
- package/dist/chunks/crash-report-S3BTEPYR.js.map +6 -0
- package/dist/chunks/devtools-LBE4PAQN.js +3851 -0
- package/dist/chunks/devtools-LBE4PAQN.js.map +6 -0
- package/dist/chunks/dist-3GJFRS2X.js +520 -0
- package/dist/chunks/dist-3GJFRS2X.js.map +6 -0
- package/dist/chunks/dist-BFC7XUCT.js +555 -0
- package/dist/chunks/dist-BFC7XUCT.js.map +6 -0
- package/dist/chunks/dist-ERN5DRKK.js +1415 -0
- package/dist/chunks/dist-ERN5DRKK.js.map +6 -0
- package/dist/chunks/dist-EY3OJBQH.js +1339 -0
- package/dist/chunks/dist-EY3OJBQH.js.map +6 -0
- package/dist/chunks/dist-G42HPNIE.js +514 -0
- package/dist/chunks/dist-G42HPNIE.js.map +6 -0
- package/dist/chunks/dist-SKRHHPUR.js +1018 -0
- package/dist/chunks/dist-SKRHHPUR.js.map +6 -0
- package/dist/chunks/dist-Z47L7ZAJ.js +40654 -0
- package/dist/chunks/dist-Z47L7ZAJ.js.map +6 -0
- package/dist/chunks/doctor-IE3PLXZK.js +28 -0
- package/dist/chunks/doctor-IE3PLXZK.js.map +6 -0
- package/dist/chunks/drain-ESXUKOE6.js +471 -0
- package/dist/chunks/drain-ESXUKOE6.js.map +6 -0
- package/dist/chunks/endpoint-M2DDENPP.js +15 -0
- package/dist/chunks/endpoint-M2DDENPP.js.map +6 -0
- package/dist/chunks/eval-53UONRWR.js +187 -0
- package/dist/chunks/eval-53UONRWR.js.map +6 -0
- package/dist/chunks/exec-COV235L5.js +1284 -0
- package/dist/chunks/exec-COV235L5.js.map +6 -0
- package/dist/chunks/home-QS7RBP34.js +16 -0
- package/dist/chunks/home-QS7RBP34.js.map +6 -0
- package/dist/chunks/host-queries-LDEBHKBX.js +152 -0
- package/dist/chunks/host-queries-LDEBHKBX.js.map +6 -0
- package/dist/chunks/lib-KXZZJJG2.js +2657 -0
- package/dist/chunks/lib-KXZZJJG2.js.map +6 -0
- package/dist/chunks/lifecycle-6NF6NJNV.js +63 -0
- package/dist/chunks/lifecycle-6NF6NJNV.js.map +6 -0
- package/dist/chunks/list-DQZU7NEF.js +293 -0
- package/dist/chunks/list-DQZU7NEF.js.map +6 -0
- package/dist/chunks/login-IQGNP5XY.js +29 -0
- package/dist/chunks/login-IQGNP5XY.js.map +6 -0
- package/dist/chunks/logs-KSG7SFAB.js +116 -0
- package/dist/chunks/logs-KSG7SFAB.js.map +6 -0
- package/dist/chunks/mcp-WFXKXGNM.js +763 -0
- package/dist/chunks/mcp-WFXKXGNM.js.map +6 -0
- package/dist/chunks/message-command-O7ZH4I4C.js +170 -0
- package/dist/chunks/message-command-O7ZH4I4C.js.map +6 -0
- package/dist/chunks/node-QB2FA2ZB.js +916 -0
- package/dist/chunks/node-QB2FA2ZB.js.map +6 -0
- package/dist/chunks/operator-tools-LTPV3CH5.js +115 -0
- package/dist/chunks/operator-tools-LTPV3CH5.js.map +6 -0
- package/dist/chunks/output-schema-UM3P5AOR.js +11 -0
- package/dist/chunks/output-schema-UM3P5AOR.js.map +6 -0
- package/dist/chunks/pal-GBYJHBP3.js +200 -0
- package/dist/chunks/pal-GBYJHBP3.js.map +6 -0
- package/dist/chunks/paths-DXYFKIJU.js +10 -0
- package/dist/chunks/paths-DXYFKIJU.js.map +6 -0
- package/dist/chunks/pica-WNHDDIFX.js +1736 -0
- package/dist/chunks/pica-WNHDDIFX.js.map +6 -0
- package/dist/chunks/providers-J42J2PDA.js +160 -0
- package/dist/chunks/providers-J42J2PDA.js.map +6 -0
- package/dist/chunks/resident-7D6IM5LP.js +1314 -0
- package/dist/chunks/resident-7D6IM5LP.js.map +6 -0
- package/dist/chunks/resume-command-XZWGUXRK.js +22 -0
- package/dist/chunks/resume-command-XZWGUXRK.js.map +6 -0
- package/dist/chunks/schedule-JLIOF3MS.js +143 -0
- package/dist/chunks/schedule-JLIOF3MS.js.map +6 -0
- package/dist/chunks/serve-S7UWNIR3.js +21 -0
- package/dist/chunks/serve-S7UWNIR3.js.map +6 -0
- package/dist/chunks/service-YBU5VTKQ.js +1633 -0
- package/dist/chunks/service-YBU5VTKQ.js.map +6 -0
- package/dist/chunks/session-step-2HJSIJNN.js +26 -0
- package/dist/chunks/session-step-2HJSIJNN.js.map +6 -0
- package/dist/chunks/skills-HV2MOBEW.js +282 -0
- package/dist/chunks/skills-HV2MOBEW.js.map +6 -0
- package/dist/chunks/state-6HV3D3O4.js +717 -0
- package/dist/chunks/state-6HV3D3O4.js.map +6 -0
- package/dist/chunks/store-6J2MUGON.js +82 -0
- package/dist/chunks/store-6J2MUGON.js.map +6 -0
- package/dist/chunks/store-GDP2EW27.js +34 -0
- package/dist/chunks/store-GDP2EW27.js.map +6 -0
- package/dist/chunks/store-VXNKMMNW.js +42 -0
- package/dist/chunks/store-VXNKMMNW.js.map +6 -0
- package/dist/chunks/tui-DDWX2WYH.js +56903 -0
- package/dist/chunks/tui-DDWX2WYH.js.map +6 -0
- package/dist/chunks/upgrade-MC5JB7DK.js +315 -0
- package/dist/chunks/upgrade-MC5JB7DK.js.map +6 -0
- package/dist/chunks/webapi-6HUHZUAH.js +2715 -0
- package/dist/chunks/webapi-6HUHZUAH.js.map +6 -0
- package/dist/chunks/worktree-6YPRX6SU.js +116 -0
- package/dist/chunks/worktree-6YPRX6SU.js.map +6 -0
- package/dist/cli-runtime.d.ts +19 -0
- package/dist/cli-runtime.d.ts.map +1 -0
- package/dist/cli.d.ts +0 -15
- package/dist/cli.d.ts.map +1 -1
- package/dist/commands/acp-harness.d.ts +64 -0
- package/dist/commands/acp-harness.d.ts.map +1 -0
- package/dist/commands/acp-provider-retry.d.ts +27 -0
- package/dist/commands/acp-provider-retry.d.ts.map +1 -0
- package/dist/commands/acp.d.ts +134 -3
- package/dist/commands/acp.d.ts.map +1 -1
- package/dist/commands/computer.d.ts +3 -0
- package/dist/commands/computer.d.ts.map +1 -0
- package/dist/commands/desktop-host-changes.d.ts +65 -0
- package/dist/commands/desktop-host-changes.d.ts.map +1 -0
- package/dist/commands/desktop-host-header.d.ts +30 -0
- package/dist/commands/desktop-host-header.d.ts.map +1 -0
- package/dist/commands/desktop-host.d.ts +354 -0
- package/dist/commands/desktop-host.d.ts.map +1 -0
- package/dist/commands/desktop-model-catalogue.d.ts +25 -0
- package/dist/commands/desktop-model-catalogue.d.ts.map +1 -0
- package/dist/commands/effort-levels.d.ts +3 -0
- package/dist/commands/effort-levels.d.ts.map +1 -0
- package/dist/commands/exec-flags.d.ts +4 -0
- package/dist/commands/exec-flags.d.ts.map +1 -1
- package/dist/commands/exec.d.ts.map +1 -1
- package/dist/commands/lazy.d.ts +20 -0
- package/dist/commands/lazy.d.ts.map +1 -0
- package/dist/commands/manifest.d.ts +33 -0
- package/dist/commands/manifest.d.ts.map +1 -0
- package/dist/commands/pal.d.ts +5 -0
- package/dist/commands/pal.d.ts.map +1 -0
- package/dist/commands/permission-preview.d.ts +38 -0
- package/dist/commands/permission-preview.d.ts.map +1 -0
- package/dist/commands/registry.d.ts +10 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/serve.d.ts +1 -12
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/stdin.d.ts.map +1 -1
- package/dist/commands/upgrade.d.ts +14 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/compile-cache-enable.d.ts +2 -0
- package/dist/compile-cache-enable.d.ts.map +1 -0
- package/dist/compile-cache.d.ts +53 -0
- package/dist/compile-cache.d.ts.map +1 -0
- package/dist/computer/bundle.d.ts +18 -0
- package/dist/computer/bundle.d.ts.map +1 -0
- package/dist/computer/run.d.ts +26 -0
- package/dist/computer/run.d.ts.map +1 -0
- package/dist/computer/sentences.d.ts +30 -0
- package/dist/computer/sentences.d.ts.map +1 -0
- package/dist/config/load.d.ts +10 -1
- package/dist/config/load.d.ts.map +1 -1
- package/dist/context/capabilities.d.ts +25 -2
- package/dist/context/capabilities.d.ts.map +1 -1
- package/dist/context/runtime-message.d.ts.map +1 -1
- package/dist/crash-report.d.ts +22 -0
- package/dist/crash-report.d.ts.map +1 -0
- package/dist/debug-requested.d.ts +7 -0
- package/dist/debug-requested.d.ts.map +1 -0
- package/dist/doctor/checks/credentials.d.ts.map +1 -1
- package/dist/exit-codes.d.ts +9 -1
- package/dist/exit-codes.d.ts.map +1 -1
- package/dist/index.js +105 -17
- package/dist/index.js.map +6 -1
- package/dist/integrations/harness/claude-adapter.d.ts +20 -0
- package/dist/integrations/harness/claude-adapter.d.ts.map +1 -0
- package/dist/integrations/harness/claude-protocol.d.ts +67 -0
- package/dist/integrations/harness/claude-protocol.d.ts.map +1 -0
- package/dist/integrations/harness/codex-adapter.d.ts +80 -0
- package/dist/integrations/harness/codex-adapter.d.ts.map +1 -0
- package/dist/integrations/harness/codex-protocol.d.ts +22 -0
- package/dist/integrations/harness/codex-protocol.d.ts.map +1 -0
- package/dist/integrations/harness/model-cache.d.ts +16 -0
- package/dist/integrations/harness/model-cache.d.ts.map +1 -0
- package/dist/integrations/harness/native-executable.d.ts +8 -0
- package/dist/integrations/harness/native-executable.d.ts.map +1 -0
- package/dist/integrations/harness/process.d.ts +25 -0
- package/dist/integrations/harness/process.d.ts.map +1 -0
- package/dist/integrations/peers/runtime.d.ts +64 -0
- package/dist/integrations/peers/runtime.d.ts.map +1 -0
- package/dist/integrations/plugins/inventory.d.ts +27 -0
- package/dist/integrations/plugins/inventory.d.ts.map +1 -0
- package/dist/integrations/providers/composer-settings.d.ts +33 -0
- package/dist/integrations/providers/composer-settings.d.ts.map +1 -0
- package/dist/integrations/providers/connections.d.ts +37 -0
- package/dist/integrations/providers/connections.d.ts.map +1 -0
- package/dist/integrations/providers/credential-store.d.ts +35 -0
- package/dist/integrations/providers/credential-store.d.ts.map +1 -1
- package/dist/integrations/providers/discover.d.ts +27 -1
- package/dist/integrations/providers/discover.d.ts.map +1 -1
- package/dist/integrations/providers/index.d.ts +2 -2
- package/dist/integrations/providers/index.d.ts.map +1 -1
- package/dist/integrations/providers/picker-operation.d.ts +6 -0
- package/dist/integrations/providers/picker-operation.d.ts.map +1 -0
- package/dist/integrations/providers/setup.d.ts +16 -1
- package/dist/integrations/providers/setup.d.ts.map +1 -1
- package/dist/integrations/resident/runner-worker.js +190 -161
- package/dist/integrations/resident/runner-worker.js.map +6 -1
- package/dist/integrations/sessions/display-title.d.ts +8 -0
- package/dist/integrations/sessions/display-title.d.ts.map +1 -1
- package/dist/integrations/sessions/store.d.ts +23 -9
- package/dist/integrations/sessions/store.d.ts.map +1 -1
- package/dist/integrations/sessions/task-context.d.ts +1 -1
- package/dist/integrations/sessions/task-context.d.ts.map +1 -1
- package/dist/integrations/sessions/transcript-export.d.ts.map +1 -1
- package/dist/integrations/subagents/activity.d.ts +9 -6
- package/dist/integrations/subagents/activity.d.ts.map +1 -1
- package/dist/integrations/subagents/operator-journal.d.ts +20 -0
- package/dist/integrations/subagents/operator-journal.d.ts.map +1 -0
- package/dist/integrations/subagents/runtime.d.ts +11 -0
- package/dist/integrations/subagents/runtime.d.ts.map +1 -1
- package/dist/integrations/trust/store.d.ts +14 -0
- package/dist/integrations/trust/store.d.ts.map +1 -1
- package/dist/integrations/web/search.d.ts +1 -1
- package/dist/pals/actions.d.ts +57 -0
- package/dist/pals/actions.d.ts.map +1 -0
- package/dist/pals/activity-command.d.ts +3 -0
- package/dist/pals/activity-command.d.ts.map +1 -0
- package/dist/pals/activity.d.ts +18 -0
- package/dist/pals/activity.d.ts.map +1 -0
- package/dist/pals/agent-session.d.ts +19 -0
- package/dist/pals/agent-session.d.ts.map +1 -0
- package/dist/pals/channel-actions.d.ts +5 -0
- package/dist/pals/channel-actions.d.ts.map +1 -0
- package/dist/pals/channel-local.d.ts +7 -0
- package/dist/pals/channel-local.d.ts.map +1 -0
- package/dist/pals/channel.d.ts +20 -0
- package/dist/pals/channel.d.ts.map +1 -0
- package/dist/pals/chat.d.ts +6 -0
- package/dist/pals/chat.d.ts.map +1 -0
- package/dist/pals/communication.d.ts +47 -0
- package/dist/pals/communication.d.ts.map +1 -0
- package/dist/pals/conversations.d.ts +26 -0
- package/dist/pals/conversations.d.ts.map +1 -0
- package/dist/pals/desktop-communication.d.ts +111 -0
- package/dist/pals/desktop-communication.d.ts.map +1 -0
- package/dist/pals/dispatch.d.ts +13 -0
- package/dist/pals/dispatch.d.ts.map +1 -0
- package/dist/pals/environment.d.ts +103 -0
- package/dist/pals/environment.d.ts.map +1 -0
- package/dist/pals/guest-mcp-transport.d.ts +28 -0
- package/dist/pals/guest-mcp-transport.d.ts.map +1 -0
- package/dist/pals/guest-mcp.d.ts +22 -0
- package/dist/pals/guest-mcp.d.ts.map +1 -0
- package/dist/pals/inbox-start.d.ts +35 -0
- package/dist/pals/inbox-start.d.ts.map +1 -0
- package/dist/pals/message-command.d.ts +3 -0
- package/dist/pals/message-command.d.ts.map +1 -0
- package/dist/pals/operator-tools.d.ts +23 -0
- package/dist/pals/operator-tools.d.ts.map +1 -0
- package/dist/pals/public-transcript.d.ts +4 -0
- package/dist/pals/public-transcript.d.ts.map +1 -0
- package/dist/pals/review.d.ts +16 -0
- package/dist/pals/review.d.ts.map +1 -0
- package/dist/pals/store.d.ts +16 -0
- package/dist/pals/store.d.ts.map +1 -0
- package/dist/pals/tui-session.d.ts +11 -0
- package/dist/pals/tui-session.d.ts.map +1 -0
- package/dist/permissions/mode-names.d.ts +2 -0
- package/dist/permissions/mode-names.d.ts.map +1 -0
- package/dist/resume-invocation.d.ts +1 -1
- package/dist/resume-invocation.d.ts.map +1 -1
- package/dist/resume-shell.d.ts +8 -0
- package/dist/resume-shell.d.ts.map +1 -0
- package/dist/schedule/build.d.ts +12 -3
- package/dist/schedule/build.d.ts.map +1 -1
- package/dist/schedule/commands/add.d.ts +1 -1
- package/dist/schedule/commands/add.d.ts.map +1 -1
- package/dist/schedule/commands/lifecycle.d.ts.map +1 -1
- package/dist/schedule/commands/list.d.ts +3 -1
- package/dist/schedule/commands/list.d.ts.map +1 -1
- package/dist/schedule/daemon/daemon.d.ts +2 -0
- package/dist/schedule/daemon/daemon.d.ts.map +1 -1
- package/dist/schedule/delivery.d.ts +66 -0
- package/dist/schedule/delivery.d.ts.map +1 -0
- package/dist/schedule/fire/fire.d.ts +1 -1
- package/dist/schedule/fire/fire.d.ts.map +1 -1
- package/dist/schedule/fire/run-script.d.ts +2 -2
- package/dist/schedule/fire/run-script.d.ts.map +1 -1
- package/dist/schedule/fire/script-report.d.ts +31 -0
- package/dist/schedule/fire/script-report.d.ts.map +1 -0
- package/dist/schedule/floor.d.ts +1 -1
- package/dist/schedule/floor.d.ts.map +1 -1
- package/dist/schedule/folder.d.ts +6 -0
- package/dist/schedule/folder.d.ts.map +1 -1
- package/dist/schedule/resume-command.d.ts +3 -3
- package/dist/schedule/resume-command.d.ts.map +1 -1
- package/dist/schedule/store/history.d.ts.map +1 -1
- package/dist/schedule/store/jobs.d.ts +6 -6
- package/dist/schedule/store/jobs.d.ts.map +1 -1
- package/dist/schedule/store/script-state.d.ts +31 -0
- package/dist/schedule/store/script-state.d.ts.map +1 -0
- package/dist/schedule/store/state.d.ts +4 -2
- package/dist/schedule/store/state.d.ts.map +1 -1
- package/dist/schedule/types.d.ts +61 -16
- package/dist/schedule/types.d.ts.map +1 -1
- package/dist/skills/store.d.ts.map +1 -1
- package/dist/terminal/host.d.ts +22 -0
- package/dist/terminal/host.d.ts.map +1 -0
- package/dist/terminal/manager.d.ts +124 -0
- package/dist/terminal/manager.d.ts.map +1 -0
- package/dist/terminal/protocol.d.ts +162 -0
- package/dist/terminal/protocol.d.ts.map +1 -0
- package/dist/terminal/pty.d.ts +85 -0
- package/dist/terminal/pty.d.ts.map +1 -0
- package/dist/terminal/ring.d.ts +23 -0
- package/dist/terminal/ring.d.ts.map +1 -0
- package/dist/terminal/screen.d.ts +31 -0
- package/dist/terminal/screen.d.ts.map +1 -0
- package/dist/termination-state.d.ts +19 -0
- package/dist/termination-state.d.ts.map +1 -0
- package/dist/termination.d.ts +2 -9
- package/dist/termination.d.ts.map +1 -1
- package/dist/tui/AgentExplorer.d.ts +4 -1
- package/dist/tui/AgentExplorer.d.ts.map +1 -1
- package/dist/tui/App.d.ts.map +1 -1
- package/dist/tui/BackgroundJobsPanel.d.ts.map +1 -1
- package/dist/tui/BrandHeader.d.ts.map +1 -1
- package/dist/tui/ChildComposer.d.ts +22 -0
- package/dist/tui/ChildComposer.d.ts.map +1 -0
- package/dist/tui/ChoicePicker.d.ts.map +1 -1
- package/dist/tui/Composer.d.ts +21 -3
- package/dist/tui/Composer.d.ts.map +1 -1
- package/dist/tui/ComposerFrame.d.ts.map +1 -1
- package/dist/tui/CopyPicker.d.ts.map +1 -1
- package/dist/tui/EditPromptPicker.d.ts.map +1 -1
- package/dist/tui/EffortSlider.d.ts.map +1 -1
- package/dist/tui/LiveActivity.d.ts +7 -1
- package/dist/tui/LiveActivity.d.ts.map +1 -1
- package/dist/tui/Markdown.d.ts.map +1 -1
- package/dist/tui/PendingInputPanel.d.ts.map +1 -1
- package/dist/tui/PermissionOverlay.d.ts.map +1 -1
- package/dist/tui/Picker.d.ts.map +1 -1
- package/dist/tui/ProviderSetup.d.ts.map +1 -1
- package/dist/tui/ResumePicker.d.ts.map +1 -1
- package/dist/tui/SaveSkillOverlay.d.ts.map +1 -1
- package/dist/tui/ScheduleReviewOverlay.d.ts +1 -1
- package/dist/tui/ScheduleReviewOverlay.d.ts.map +1 -1
- package/dist/tui/StatusBar.d.ts +7 -1
- package/dist/tui/StatusBar.d.ts.map +1 -1
- package/dist/tui/StatusPanel.d.ts.map +1 -1
- package/dist/tui/TextPrompt.d.ts.map +1 -1
- package/dist/tui/ToolOutputViewer.d.ts.map +1 -1
- package/dist/tui/Transcript.d.ts +3 -0
- package/dist/tui/Transcript.d.ts.map +1 -1
- package/dist/tui/TranscriptScrollView.d.ts +23 -0
- package/dist/tui/TranscriptScrollView.d.ts.map +1 -0
- package/dist/tui/TrustPrompt.d.ts +8 -0
- package/dist/tui/TrustPrompt.d.ts.map +1 -1
- package/dist/tui/agent.d.ts +125 -3
- package/dist/tui/agent.d.ts.map +1 -1
- package/dist/tui/browser-notices.d.ts.map +1 -1
- package/dist/tui/capability-notice.d.ts +38 -0
- package/dist/tui/capability-notice.d.ts.map +1 -0
- package/dist/tui/console-input.d.ts +31 -0
- package/dist/tui/console-input.d.ts.map +1 -0
- package/dist/tui/conversation-evidence-view.d.ts.map +1 -1
- package/dist/tui/credential-entry.d.ts.map +1 -1
- package/dist/tui/exit-summary.d.ts +9 -1
- package/dist/tui/exit-summary.d.ts.map +1 -1
- package/dist/tui/external-editor.d.ts.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/key-hints.d.ts +51 -0
- package/dist/tui/key-hints.d.ts.map +1 -0
- package/dist/tui/launch-settings.d.ts +34 -0
- package/dist/tui/launch-settings.d.ts.map +1 -0
- package/dist/tui/log-pane.d.ts.map +1 -1
- package/dist/tui/model-choices.d.ts +39 -1
- package/dist/tui/model-choices.d.ts.map +1 -1
- package/dist/tui/model-search.d.ts +4 -1
- package/dist/tui/model-search.d.ts.map +1 -1
- package/dist/tui/output-size-watch.d.ts +32 -0
- package/dist/tui/output-size-watch.d.ts.map +1 -0
- package/dist/tui/permission-review.d.ts.map +1 -1
- package/dist/tui/person-terms.d.ts +58 -0
- package/dist/tui/person-terms.d.ts.map +1 -0
- package/dist/tui/plain-failure.d.ts +27 -0
- package/dist/tui/plain-failure.d.ts.map +1 -0
- package/dist/tui/plain-interruption.d.ts +46 -0
- package/dist/tui/plain-interruption.d.ts.map +1 -0
- package/dist/tui/provider-list.d.ts.map +1 -1
- package/dist/tui/render-mode.d.ts +19 -0
- package/dist/tui/render-mode.d.ts.map +1 -0
- package/dist/tui/schedule/host-commands.d.ts +2 -9
- package/dist/tui/schedule/host-commands.d.ts.map +1 -1
- package/dist/tui/schedule/integration.d.ts +8 -0
- package/dist/tui/schedule/integration.d.ts.map +1 -1
- package/dist/tui/schedule/source-deliveries.d.ts +37 -0
- package/dist/tui/schedule/source-deliveries.d.ts.map +1 -0
- package/dist/tui/schedule/startup.d.ts.map +1 -1
- package/dist/tui/schedule/tool-host.d.ts +3 -1
- package/dist/tui/schedule/tool-host.d.ts.map +1 -1
- package/dist/tui/setup-text.d.ts +14 -0
- package/dist/tui/setup-text.d.ts.map +1 -0
- package/dist/tui/shell-escape.d.ts.map +1 -1
- package/dist/tui/skills/suggest-setting.d.ts.map +1 -1
- package/dist/tui/slashCommands.d.ts +4 -1
- package/dist/tui/slashCommands.d.ts.map +1 -1
- package/dist/tui/terminal-choice-text.d.ts +7 -0
- package/dist/tui/terminal-choice-text.d.ts.map +1 -1
- package/dist/tui/tidy-tool-output.d.ts +83 -0
- package/dist/tui/tidy-tool-output.d.ts.map +1 -0
- package/dist/tui/tool-presentation.d.ts +6 -0
- package/dist/tui/tool-presentation.d.ts.map +1 -0
- package/dist/tui/transcript-scroll.d.ts +73 -0
- package/dist/tui/transcript-scroll.d.ts.map +1 -0
- package/dist/tui/triggers/copy.d.ts.map +1 -1
- package/dist/tui/triggers/setting.d.ts.map +1 -1
- package/dist/tui/turn-interruption.d.ts +1 -1
- package/dist/tui/turn-interruption.d.ts.map +1 -1
- package/dist/tui/turn-limits-settings.d.ts +4 -4
- package/dist/tui/turn-limits-settings.d.ts.map +1 -1
- package/dist/tui/types.d.ts +10 -0
- package/dist/tui/types.d.ts.map +1 -1
- package/dist/tui/web-activity.d.ts +3 -2
- package/dist/tui/web-activity.d.ts.map +1 -1
- package/dist/tui/zen-free-refusal.d.ts +17 -0
- package/dist/tui/zen-free-refusal.d.ts.map +1 -0
- package/dist/usage-error.d.ts +15 -0
- package/dist/usage-error.d.ts.map +1 -0
- package/dist/warning-filter.d.ts +30 -0
- package/dist/warning-filter.d.ts.map +1 -0
- package/package.json +21 -10
- package/skills/schedule-task/SKILL.md +74 -20
- package/dist/browser/commands.js +0 -365
- package/dist/browser/commands.js.map +0 -1
- package/dist/browser/control.js +0 -140
- package/dist/browser/control.js.map +0 -1
- package/dist/browser/describe.js +0 -27
- package/dist/browser/describe.js.map +0 -1
- package/dist/checkpoints/store.js +0 -192
- package/dist/checkpoints/store.js.map +0 -1
- package/dist/checkpoints/wrap.js +0 -37
- package/dist/checkpoints/wrap.js.map +0 -1
- package/dist/cli.js +0 -602
- package/dist/cli.js.map +0 -1
- package/dist/commands/acp.js +0 -388
- package/dist/commands/acp.js.map +0 -1
- package/dist/commands/archive.js +0 -65
- package/dist/commands/archive.js.map +0 -1
- package/dist/commands/browser.js +0 -16
- package/dist/commands/browser.js.map +0 -1
- package/dist/commands/doctor.js +0 -267
- package/dist/commands/doctor.js.map +0 -1
- package/dist/commands/drain.js +0 -498
- package/dist/commands/drain.js.map +0 -1
- package/dist/commands/eval.js +0 -237
- package/dist/commands/eval.js.map +0 -1
- package/dist/commands/exec-flags.js +0 -334
- package/dist/commands/exec-flags.js.map +0 -1
- package/dist/commands/exec-json.js +0 -497
- package/dist/commands/exec-json.js.map +0 -1
- package/dist/commands/exec.js +0 -688
- package/dist/commands/exec.js.map +0 -1
- package/dist/commands/host-queries.js +0 -156
- package/dist/commands/host-queries.js.map +0 -1
- package/dist/commands/login.js +0 -315
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/mcp-oauth-login.js +0 -213
- package/dist/commands/mcp-oauth-login.js.map +0 -1
- package/dist/commands/mcp.js +0 -461
- package/dist/commands/mcp.js.map +0 -1
- package/dist/commands/prior-messages.js +0 -329
- package/dist/commands/prior-messages.js.map +0 -1
- package/dist/commands/provider-wait.js +0 -65
- package/dist/commands/provider-wait.js.map +0 -1
- package/dist/commands/registry.js +0 -40
- package/dist/commands/registry.js.map +0 -1
- package/dist/commands/resident-flags.js +0 -193
- package/dist/commands/resident-flags.js.map +0 -1
- package/dist/commands/resident-learning.js +0 -293
- package/dist/commands/resident-learning.js.map +0 -1
- package/dist/commands/resident.js +0 -419
- package/dist/commands/resident.js.map +0 -1
- package/dist/commands/resume.js +0 -109
- package/dist/commands/resume.js.map +0 -1
- package/dist/commands/schedule.js +0 -131
- package/dist/commands/schedule.js.map +0 -1
- package/dist/commands/serve.js +0 -21
- package/dist/commands/serve.js.map +0 -1
- package/dist/commands/skills.js +0 -178
- package/dist/commands/skills.js.map +0 -1
- package/dist/commands/state.js +0 -110
- package/dist/commands/state.js.map +0 -1
- package/dist/commands/stdin.js +0 -69
- package/dist/commands/stdin.js.map +0 -1
- package/dist/commands/types.js +0 -2
- package/dist/commands/types.js.map +0 -1
- package/dist/commands/upgrade-progress.js +0 -54
- package/dist/commands/upgrade-progress.js.map +0 -1
- package/dist/commands/upgrade.js +0 -232
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/commands/worktree.js +0 -86
- package/dist/commands/worktree.js.map +0 -1
- package/dist/config/composer-triggers.js +0 -80
- package/dist/config/composer-triggers.js.map +0 -1
- package/dist/config/debug.js +0 -126
- package/dist/config/debug.js.map +0 -1
- package/dist/config/load.js +0 -1208
- package/dist/config/load.js.map +0 -1
- package/dist/config/schema.js +0 -13
- package/dist/config/schema.js.map +0 -1
- package/dist/config/tool-result-screens.js +0 -104
- package/dist/config/tool-result-screens.js.map +0 -1
- package/dist/config/trusted-project-context.js +0 -28
- package/dist/config/trusted-project-context.js.map +0 -1
- package/dist/config/turn-guards.js +0 -46
- package/dist/config/turn-guards.js.map +0 -1
- package/dist/config/user-config.js +0 -118
- package/dist/config/user-config.js.map +0 -1
- package/dist/context/capabilities.js +0 -164
- package/dist/context/capabilities.js.map +0 -1
- package/dist/context/directories.js +0 -69
- package/dist/context/directories.js.map +0 -1
- package/dist/context/doctrine.js +0 -24
- package/dist/context/doctrine.js.map +0 -1
- package/dist/context/environment.js +0 -255
- package/dist/context/environment.js.map +0 -1
- package/dist/context/project-path.js +0 -16
- package/dist/context/project-path.js.map +0 -1
- package/dist/context/project-tracker.js +0 -217
- package/dist/context/project-tracker.js.map +0 -1
- package/dist/context/project.js +0 -256
- package/dist/context/project.js.map +0 -1
- package/dist/context/runtime-message.js +0 -30
- package/dist/context/runtime-message.js.map +0 -1
- package/dist/context/sandbox.js +0 -114
- package/dist/context/sandbox.js.map +0 -1
- package/dist/context/turn-snapshot.js +0 -122
- package/dist/context/turn-snapshot.js.map +0 -1
- package/dist/doctor/checks/browser.js +0 -63
- package/dist/doctor/checks/browser.js.map +0 -1
- package/dist/doctor/checks/chain.js +0 -211
- package/dist/doctor/checks/chain.js.map +0 -1
- package/dist/doctor/checks/credentials.js +0 -98
- package/dist/doctor/checks/credentials.js.map +0 -1
- package/dist/doctor/checks/index.js +0 -72
- package/dist/doctor/checks/index.js.map +0 -1
- package/dist/doctor/checks/invariants.js +0 -79
- package/dist/doctor/checks/invariants.js.map +0 -1
- package/dist/doctor/checks/logging.js +0 -69
- package/dist/doctor/checks/logging.js.map +0 -1
- package/dist/doctor/checks/providers.js +0 -30
- package/dist/doctor/checks/providers.js.map +0 -1
- package/dist/doctor/checks/runtime.js +0 -40
- package/dist/doctor/checks/runtime.js.map +0 -1
- package/dist/doctor/checks/sandbox.js +0 -76
- package/dist/doctor/checks/sandbox.js.map +0 -1
- package/dist/doctor/checks/scheduler.js +0 -74
- package/dist/doctor/checks/scheduler.js.map +0 -1
- package/dist/doctor/checks/session-export.js +0 -62
- package/dist/doctor/checks/session-export.js.map +0 -1
- package/dist/doctor/checks/telemetry.js +0 -58
- package/dist/doctor/checks/telemetry.js.map +0 -1
- package/dist/doctor/checks/vault.js +0 -67
- package/dist/doctor/checks/vault.js.map +0 -1
- package/dist/doctor/index.js +0 -3
- package/dist/doctor/index.js.map +0 -1
- package/dist/doctor/registry.js +0 -230
- package/dist/doctor/registry.js.map +0 -1
- package/dist/exit-codes.js +0 -62
- package/dist/exit-codes.js.map +0 -1
- package/dist/installation.js +0 -48
- package/dist/installation.js.map +0 -1
- package/dist/integrations/clipboard/image.js +0 -119
- package/dist/integrations/clipboard/image.js.map +0 -1
- package/dist/integrations/clipboard/text.js +0 -43
- package/dist/integrations/clipboard/text.js.map +0 -1
- package/dist/integrations/files/attachment-store.js +0 -86
- package/dist/integrations/files/attachment-store.js.map +0 -1
- package/dist/integrations/mcp/oauth-store.js +0 -549
- package/dist/integrations/mcp/oauth-store.js.map +0 -1
- package/dist/integrations/mcp/servers.js +0 -611
- package/dist/integrations/mcp/servers.js.map +0 -1
- package/dist/integrations/mcp/user-config.js +0 -92
- package/dist/integrations/mcp/user-config.js.map +0 -1
- package/dist/integrations/notifications/desktop/freedesktop.js +0 -33
- package/dist/integrations/notifications/desktop/freedesktop.js.map +0 -1
- package/dist/integrations/notifications/desktop/macos.js +0 -17
- package/dist/integrations/notifications/desktop/macos.js.map +0 -1
- package/dist/integrations/notifications/desktop/sanitize.js +0 -49
- package/dist/integrations/notifications/desktop/sanitize.js.map +0 -1
- package/dist/integrations/notifications/desktop/throttle.js +0 -39
- package/dist/integrations/notifications/desktop/throttle.js.map +0 -1
- package/dist/integrations/notifications/desktop/windows-toast.js +0 -56
- package/dist/integrations/notifications/desktop/windows-toast.js.map +0 -1
- package/dist/integrations/notifications/desktop.js +0 -199
- package/dist/integrations/notifications/desktop.js.map +0 -1
- package/dist/integrations/notifications/terminal.js +0 -46
- package/dist/integrations/notifications/terminal.js.map +0 -1
- package/dist/integrations/npm-invocation.js +0 -23
- package/dist/integrations/npm-invocation.js.map +0 -1
- package/dist/integrations/plugins/runtime.js +0 -189
- package/dist/integrations/plugins/runtime.js.map +0 -1
- package/dist/integrations/plugins/settings.js +0 -106
- package/dist/integrations/plugins/settings.js.map +0 -1
- package/dist/integrations/providers/access.js +0 -23
- package/dist/integrations/providers/access.js.map +0 -1
- package/dist/integrations/providers/chain-capabilities.js +0 -211
- package/dist/integrations/providers/chain-capabilities.js.map +0 -1
- package/dist/integrations/providers/codex-device-login.js +0 -195
- package/dist/integrations/providers/codex-device-login.js.map +0 -1
- package/dist/integrations/providers/codex-oauth.js +0 -95
- package/dist/integrations/providers/codex-oauth.js.map +0 -1
- package/dist/integrations/providers/credential-provider.js +0 -74
- package/dist/integrations/providers/credential-provider.js.map +0 -1
- package/dist/integrations/providers/credential-store.js +0 -657
- package/dist/integrations/providers/credential-store.js.map +0 -1
- package/dist/integrations/providers/current-credential.js +0 -45
- package/dist/integrations/providers/current-credential.js.map +0 -1
- package/dist/integrations/providers/discover.js +0 -313
- package/dist/integrations/providers/discover.js.map +0 -1
- package/dist/integrations/providers/gemini-credentials.js +0 -148
- package/dist/integrations/providers/gemini-credentials.js.map +0 -1
- package/dist/integrations/providers/harness-credentials.js +0 -344
- package/dist/integrations/providers/harness-credentials.js.map +0 -1
- package/dist/integrations/providers/identity.js +0 -64
- package/dist/integrations/providers/identity.js.map +0 -1
- package/dist/integrations/providers/index.js +0 -14
- package/dist/integrations/providers/index.js.map +0 -1
- package/dist/integrations/providers/keychain.js +0 -78
- package/dist/integrations/providers/keychain.js.map +0 -1
- package/dist/integrations/providers/model-reasoning.js +0 -51
- package/dist/integrations/providers/model-reasoning.js.map +0 -1
- package/dist/integrations/providers/oauth.js +0 -302
- package/dist/integrations/providers/oauth.js.map +0 -1
- package/dist/integrations/providers/preferences.js +0 -287
- package/dist/integrations/providers/preferences.js.map +0 -1
- package/dist/integrations/providers/register.js +0 -154
- package/dist/integrations/providers/register.js.map +0 -1
- package/dist/integrations/providers/registry.js +0 -289
- package/dist/integrations/providers/registry.js.map +0 -1
- package/dist/integrations/providers/setup.js +0 -158
- package/dist/integrations/providers/setup.js.map +0 -1
- package/dist/integrations/providers/subscription-login.js +0 -328
- package/dist/integrations/providers/subscription-login.js.map +0 -1
- package/dist/integrations/providers/zen-catalogue.js +0 -196
- package/dist/integrations/providers/zen-catalogue.js.map +0 -1
- package/dist/integrations/resident/foreground.js +0 -95
- package/dist/integrations/resident/foreground.js.map +0 -1
- package/dist/integrations/resident/inspection.js +0 -282
- package/dist/integrations/resident/inspection.js.map +0 -1
- package/dist/integrations/resident/learning-sources.js +0 -79
- package/dist/integrations/resident/learning-sources.js.map +0 -1
- package/dist/integrations/resident/learning-storage.js +0 -55
- package/dist/integrations/resident/learning-storage.js.map +0 -1
- package/dist/integrations/resident/lifecycle-errors.js +0 -15
- package/dist/integrations/resident/lifecycle-errors.js.map +0 -1
- package/dist/integrations/resident/owned-runner.js +0 -91
- package/dist/integrations/resident/owned-runner.js.map +0 -1
- package/dist/integrations/resident/runner-control.js +0 -238
- package/dist/integrations/resident/runner-control.js.map +0 -1
- package/dist/integrations/resident/runner-launch.js +0 -142
- package/dist/integrations/resident/runner-launch.js.map +0 -1
- package/dist/integrations/resident/runner-store.js +0 -284
- package/dist/integrations/resident/runner-store.js.map +0 -1
- package/dist/integrations/resident/session-log-reads.js +0 -125
- package/dist/integrations/resident/session-log-reads.js.map +0 -1
- package/dist/integrations/resident/session-step.js +0 -476
- package/dist/integrations/resident/session-step.js.map +0 -1
- package/dist/integrations/resident/storage.js +0 -183
- package/dist/integrations/resident/storage.js.map +0 -1
- package/dist/integrations/resident/tool-evidence.js +0 -123
- package/dist/integrations/resident/tool-evidence.js.map +0 -1
- package/dist/integrations/resident/verification.js +0 -109
- package/dist/integrations/resident/verification.js.map +0 -1
- package/dist/integrations/sessions/checkpoint-view.js +0 -48
- package/dist/integrations/sessions/checkpoint-view.js.map +0 -1
- package/dist/integrations/sessions/context-inventory.js +0 -44
- package/dist/integrations/sessions/context-inventory.js.map +0 -1
- package/dist/integrations/sessions/conversation-search.js +0 -572
- package/dist/integrations/sessions/conversation-search.js.map +0 -1
- package/dist/integrations/sessions/display-title.js +0 -5
- package/dist/integrations/sessions/display-title.js.map +0 -1
- package/dist/integrations/sessions/evidence-page-validation.js +0 -74
- package/dist/integrations/sessions/evidence-page-validation.js.map +0 -1
- package/dist/integrations/sessions/evidence-recall.js +0 -117
- package/dist/integrations/sessions/evidence-recall.js.map +0 -1
- package/dist/integrations/sessions/store.js +0 -780
- package/dist/integrations/sessions/store.js.map +0 -1
- package/dist/integrations/sessions/task-context.js +0 -96
- package/dist/integrations/sessions/task-context.js.map +0 -1
- package/dist/integrations/sessions/transcript-export.js +0 -342
- package/dist/integrations/sessions/transcript-export.js.map +0 -1
- package/dist/integrations/state/home.js +0 -17
- package/dist/integrations/state/home.js.map +0 -1
- package/dist/integrations/state/identity.js +0 -49
- package/dist/integrations/state/identity.js.map +0 -1
- package/dist/integrations/state/immutable-json.js +0 -38
- package/dist/integrations/state/immutable-json.js.map +0 -1
- package/dist/integrations/state/private-directory.js +0 -43
- package/dist/integrations/state/private-directory.js.map +0 -1
- package/dist/integrations/state/project.js +0 -13
- package/dist/integrations/state/project.js.map +0 -1
- package/dist/integrations/state/report.js +0 -626
- package/dist/integrations/state/report.js.map +0 -1
- package/dist/integrations/state/retention.js +0 -18
- package/dist/integrations/state/retention.js.map +0 -1
- package/dist/integrations/subagents/NamzuCliAgent.js +0 -9
- package/dist/integrations/subagents/NamzuCliAgent.js.map +0 -1
- package/dist/integrations/subagents/activity.js +0 -759
- package/dist/integrations/subagents/activity.js.map +0 -1
- package/dist/integrations/subagents/batches.js +0 -172
- package/dist/integrations/subagents/batches.js.map +0 -1
- package/dist/integrations/subagents/definitions.js +0 -26
- package/dist/integrations/subagents/definitions.js.map +0 -1
- package/dist/integrations/subagents/model-effort.js +0 -12
- package/dist/integrations/subagents/model-effort.js.map +0 -1
- package/dist/integrations/subagents/parent.js +0 -47
- package/dist/integrations/subagents/parent.js.map +0 -1
- package/dist/integrations/subagents/policy.js +0 -3
- package/dist/integrations/subagents/policy.js.map +0 -1
- package/dist/integrations/subagents/replay.js +0 -295
- package/dist/integrations/subagents/replay.js.map +0 -1
- package/dist/integrations/subagents/runtime.js +0 -1317
- package/dist/integrations/subagents/runtime.js.map +0 -1
- package/dist/integrations/subagents/saved-agents.js +0 -102
- package/dist/integrations/subagents/saved-agents.js.map +0 -1
- package/dist/integrations/subagents/slash.js +0 -45
- package/dist/integrations/subagents/slash.js.map +0 -1
- package/dist/integrations/subagents/worktree-driver.js +0 -72
- package/dist/integrations/subagents/worktree-driver.js.map +0 -1
- package/dist/integrations/telemetry/session-export.js +0 -119
- package/dist/integrations/telemetry/session-export.js.map +0 -1
- package/dist/integrations/trust/store.js +0 -73
- package/dist/integrations/trust/store.js.map +0 -1
- package/dist/integrations/updates.js +0 -115
- package/dist/integrations/updates.js.map +0 -1
- package/dist/integrations/web/exa-search.js +0 -154
- package/dist/integrations/web/exa-search.js.map +0 -1
- package/dist/integrations/web/open-url.js +0 -73
- package/dist/integrations/web/open-url.js.map +0 -1
- package/dist/integrations/web/search.js +0 -68
- package/dist/integrations/web/search.js.map +0 -1
- package/dist/integrations/worktrees/managed.js +0 -231
- package/dist/integrations/worktrees/managed.js.map +0 -1
- package/dist/logging.js +0 -115
- package/dist/logging.js.map +0 -1
- package/dist/memory/io.js +0 -177
- package/dist/memory/io.js.map +0 -1
- package/dist/memory/presentation.js +0 -76
- package/dist/memory/presentation.js.map +0 -1
- package/dist/memory/store.js +0 -180
- package/dist/memory/store.js.map +0 -1
- package/dist/memory/typed.js +0 -336
- package/dist/memory/typed.js.map +0 -1
- package/dist/output/formatter.js +0 -16
- package/dist/output/formatter.js.map +0 -1
- package/dist/output/index.js +0 -22
- package/dist/output/index.js.map +0 -1
- package/dist/output/json.js +0 -51
- package/dist/output/json.js.map +0 -1
- package/dist/output/text.js +0 -50
- package/dist/output/text.js.map +0 -1
- package/dist/output/yaml.js +0 -26
- package/dist/output/yaml.js.map +0 -1
- package/dist/output-schema.js +0 -18
- package/dist/output-schema.js.map +0 -1
- package/dist/permissions/browser-sites.js +0 -270
- package/dist/permissions/browser-sites.js.map +0 -1
- package/dist/permissions/canonical-project.js +0 -13
- package/dist/permissions/canonical-project.js.map +0 -1
- package/dist/permissions/checks.js +0 -128
- package/dist/permissions/checks.js.map +0 -1
- package/dist/permissions/headless-trust.js +0 -86
- package/dist/permissions/headless-trust.js.map +0 -1
- package/dist/permissions/live-mode.js +0 -62
- package/dist/permissions/live-mode.js.map +0 -1
- package/dist/permissions/mode.js +0 -65
- package/dist/permissions/mode.js.map +0 -1
- package/dist/permissions/rules.js +0 -358
- package/dist/permissions/rules.js.map +0 -1
- package/dist/release-notes.js +0 -64
- package/dist/release-notes.js.map +0 -1
- package/dist/resume-invocation.js +0 -24
- package/dist/resume-invocation.js.map +0 -1
- package/dist/schedule/build.js +0 -374
- package/dist/schedule/build.js.map +0 -1
- package/dist/schedule/changes.js +0 -78
- package/dist/schedule/changes.js.map +0 -1
- package/dist/schedule/commands/add.js +0 -603
- package/dist/schedule/commands/add.js.map +0 -1
- package/dist/schedule/commands/args.js +0 -80
- package/dist/schedule/commands/args.js.map +0 -1
- package/dist/schedule/commands/confirm-prompt.js +0 -21
- package/dist/schedule/commands/confirm-prompt.js.map +0 -1
- package/dist/schedule/commands/lifecycle.js +0 -586
- package/dist/schedule/commands/lifecycle.js.map +0 -1
- package/dist/schedule/commands/list.js +0 -260
- package/dist/schedule/commands/list.js.map +0 -1
- package/dist/schedule/commands/logs.js +0 -106
- package/dist/schedule/commands/logs.js.map +0 -1
- package/dist/schedule/commands/service.js +0 -458
- package/dist/schedule/commands/service.js.map +0 -1
- package/dist/schedule/daemon/daemon.js +0 -1265
- package/dist/schedule/daemon/daemon.js.map +0 -1
- package/dist/schedule/daemon/endpoint.js +0 -158
- package/dist/schedule/daemon/endpoint.js.map +0 -1
- package/dist/schedule/daemon/exit.js +0 -8
- package/dist/schedule/daemon/exit.js.map +0 -1
- package/dist/schedule/daemon/log.js +0 -53
- package/dist/schedule/daemon/log.js.map +0 -1
- package/dist/schedule/daemon/notify.js +0 -158
- package/dist/schedule/daemon/notify.js.map +0 -1
- package/dist/schedule/daemon/retention.js +0 -46
- package/dist/schedule/daemon/retention.js.map +0 -1
- package/dist/schedule/daemon/sessions.js +0 -52
- package/dist/schedule/daemon/sessions.js.map +0 -1
- package/dist/schedule/env.js +0 -106
- package/dist/schedule/env.js.map +0 -1
- package/dist/schedule/fire/browser-preflight.js +0 -73
- package/dist/schedule/fire/browser-preflight.js.map +0 -1
- package/dist/schedule/fire/calls.js +0 -114
- package/dist/schedule/fire/calls.js.map +0 -1
- package/dist/schedule/fire/fire.js +0 -681
- package/dist/schedule/fire/fire.js.map +0 -1
- package/dist/schedule/fire/result.js +0 -19
- package/dist/schedule/fire/result.js.map +0 -1
- package/dist/schedule/fire/run-script.js +0 -81
- package/dist/schedule/fire/run-script.js.map +0 -1
- package/dist/schedule/fire/unattended-note.js +0 -51
- package/dist/schedule/fire/unattended-note.js.map +0 -1
- package/dist/schedule/fire/wake-gate.js +0 -90
- package/dist/schedule/fire/wake-gate.js.map +0 -1
- package/dist/schedule/floor.js +0 -1561
- package/dist/schedule/floor.js.map +0 -1
- package/dist/schedule/folder.js +0 -84
- package/dist/schedule/folder.js.map +0 -1
- package/dist/schedule/paths.js +0 -53
- package/dist/schedule/paths.js.map +0 -1
- package/dist/schedule/policy.js +0 -414
- package/dist/schedule/policy.js.map +0 -1
- package/dist/schedule/resume-command.js +0 -72
- package/dist/schedule/resume-command.js.map +0 -1
- package/dist/schedule/script-check.js +0 -146
- package/dist/schedule/script-check.js.map +0 -1
- package/dist/schedule/script-shell.js +0 -5
- package/dist/schedule/script-shell.js.map +0 -1
- package/dist/schedule/service/detect.js +0 -29
- package/dist/schedule/service/detect.js.map +0 -1
- package/dist/schedule/service/index.js +0 -361
- package/dist/schedule/service/index.js.map +0 -1
- package/dist/schedule/service/launchd.js +0 -84
- package/dist/schedule/service/launchd.js.map +0 -1
- package/dist/schedule/service/manifest.js +0 -16
- package/dist/schedule/service/manifest.js.map +0 -1
- package/dist/schedule/service/names.js +0 -22
- package/dist/schedule/service/names.js.map +0 -1
- package/dist/schedule/service/quote.js +0 -64
- package/dist/schedule/service/quote.js.map +0 -1
- package/dist/schedule/service/runner.js +0 -31
- package/dist/schedule/service/runner.js.map +0 -1
- package/dist/schedule/service/systemd.js +0 -96
- package/dist/schedule/service/systemd.js.map +0 -1
- package/dist/schedule/service/windows-task.js +0 -199
- package/dist/schedule/service/windows-task.js.map +0 -1
- package/dist/schedule/service/wsl.js +0 -121
- package/dist/schedule/service/wsl.js.map +0 -1
- package/dist/schedule/store/atomic.js +0 -138
- package/dist/schedule/store/atomic.js.map +0 -1
- package/dist/schedule/store/claims.js +0 -57
- package/dist/schedule/store/claims.js.map +0 -1
- package/dist/schedule/store/digest.js +0 -139
- package/dist/schedule/store/digest.js.map +0 -1
- package/dist/schedule/store/history.js +0 -117
- package/dist/schedule/store/history.js.map +0 -1
- package/dist/schedule/store/jobs.js +0 -277
- package/dist/schedule/store/jobs.js.map +0 -1
- package/dist/schedule/store/state.js +0 -38
- package/dist/schedule/store/state.js.map +0 -1
- package/dist/schedule/types.js +0 -33
- package/dist/schedule/types.js.map +0 -1
- package/dist/schedule/visible-source.js +0 -59
- package/dist/schedule/visible-source.js.map +0 -1
- package/dist/skills/audit.js +0 -75
- package/dist/skills/audit.js.map +0 -1
- package/dist/skills/catalog.js +0 -226
- package/dist/skills/catalog.js.map +0 -1
- package/dist/skills/directory.js +0 -51
- package/dist/skills/directory.js.map +0 -1
- package/dist/skills/save.js +0 -344
- package/dist/skills/save.js.map +0 -1
- package/dist/skills/store.js +0 -351
- package/dist/skills/store.js.map +0 -1
- package/dist/termination.js +0 -143
- package/dist/termination.js.map +0 -1
- package/dist/test-support/toolset.js +0 -27
- package/dist/test-support/toolset.js.map +0 -1
- package/dist/tui/AgentExplorer.js +0 -789
- package/dist/tui/AgentExplorer.js.map +0 -1
- package/dist/tui/App.js +0 -8499
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/BackgroundJobsPanel.js +0 -129
- package/dist/tui/BackgroundJobsPanel.js.map +0 -1
- package/dist/tui/BrandHeader.js +0 -14
- package/dist/tui/BrandHeader.js.map +0 -1
- package/dist/tui/Checklist.js +0 -90
- package/dist/tui/Checklist.js.map +0 -1
- package/dist/tui/ChoicePicker.js +0 -64
- package/dist/tui/ChoicePicker.js.map +0 -1
- package/dist/tui/Composer.js +0 -939
- package/dist/tui/Composer.js.map +0 -1
- package/dist/tui/ComposerFrame.js +0 -79
- package/dist/tui/ComposerFrame.js.map +0 -1
- package/dist/tui/CopyPicker.js +0 -19
- package/dist/tui/CopyPicker.js.map +0 -1
- package/dist/tui/EditPromptPicker.js +0 -17
- package/dist/tui/EditPromptPicker.js.map +0 -1
- package/dist/tui/EffortSlider.js +0 -134
- package/dist/tui/EffortSlider.js.map +0 -1
- package/dist/tui/LiveActivity.js +0 -89
- package/dist/tui/LiveActivity.js.map +0 -1
- package/dist/tui/Markdown.js +0 -137
- package/dist/tui/Markdown.js.map +0 -1
- package/dist/tui/PendingInputPanel.js +0 -108
- package/dist/tui/PendingInputPanel.js.map +0 -1
- package/dist/tui/PermissionOverlay.js +0 -278
- package/dist/tui/PermissionOverlay.js.map +0 -1
- package/dist/tui/Picker.js +0 -1310
- package/dist/tui/Picker.js.map +0 -1
- package/dist/tui/ProviderSetup.js +0 -125
- package/dist/tui/ProviderSetup.js.map +0 -1
- package/dist/tui/ResumePicker.js +0 -34
- package/dist/tui/ResumePicker.js.map +0 -1
- package/dist/tui/SaveSkillOverlay.js +0 -118
- package/dist/tui/SaveSkillOverlay.js.map +0 -1
- package/dist/tui/ScheduleReviewOverlay.js +0 -166
- package/dist/tui/ScheduleReviewOverlay.js.map +0 -1
- package/dist/tui/StatusBar.js +0 -182
- package/dist/tui/StatusBar.js.map +0 -1
- package/dist/tui/StatusPanel.js +0 -11
- package/dist/tui/StatusPanel.js.map +0 -1
- package/dist/tui/TaskList.js +0 -43
- package/dist/tui/TaskList.js.map +0 -1
- package/dist/tui/TextPrompt.js +0 -185
- package/dist/tui/TextPrompt.js.map +0 -1
- package/dist/tui/ToolOutputViewer.js +0 -39
- package/dist/tui/ToolOutputViewer.js.map +0 -1
- package/dist/tui/Transcript.js +0 -235
- package/dist/tui/Transcript.js.map +0 -1
- package/dist/tui/TrustPrompt.js +0 -13
- package/dist/tui/TrustPrompt.js.map +0 -1
- package/dist/tui/ViewportBound.js +0 -55
- package/dist/tui/ViewportBound.js.map +0 -1
- package/dist/tui/agent-transcript-rows.js +0 -115
- package/dist/tui/agent-transcript-rows.js.map +0 -1
- package/dist/tui/agent.js +0 -4301
- package/dist/tui/agent.js.map +0 -1
- package/dist/tui/browser-notices.js +0 -107
- package/dist/tui/browser-notices.js.map +0 -1
- package/dist/tui/choice-selection.js +0 -38
- package/dist/tui/choice-selection.js.map +0 -1
- package/dist/tui/compact-transcript.js +0 -46
- package/dist/tui/compact-transcript.js.map +0 -1
- package/dist/tui/consent-timing.js +0 -48
- package/dist/tui/consent-timing.js.map +0 -1
- package/dist/tui/conversation-evidence-view.js +0 -96
- package/dist/tui/conversation-evidence-view.js.map +0 -1
- package/dist/tui/conversation-history.js +0 -33
- package/dist/tui/conversation-history.js.map +0 -1
- package/dist/tui/copy-targets.js +0 -189
- package/dist/tui/copy-targets.js.map +0 -1
- package/dist/tui/credential-entry.js +0 -134
- package/dist/tui/credential-entry.js.map +0 -1
- package/dist/tui/edit-prompts.js +0 -35
- package/dist/tui/edit-prompts.js.map +0 -1
- package/dist/tui/exit-summary.js +0 -30
- package/dist/tui/exit-summary.js.map +0 -1
- package/dist/tui/external-editor.js +0 -169
- package/dist/tui/external-editor.js.map +0 -1
- package/dist/tui/hypermode.js +0 -58
- package/dist/tui/hypermode.js.map +0 -1
- package/dist/tui/index.js +0 -81
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/live-window.js +0 -281
- package/dist/tui/live-window.js.map +0 -1
- package/dist/tui/log-pane.js +0 -100
- package/dist/tui/log-pane.js.map +0 -1
- package/dist/tui/login-prompt.js +0 -105
- package/dist/tui/login-prompt.js.map +0 -1
- package/dist/tui/logo.js +0 -9
- package/dist/tui/logo.js.map +0 -1
- package/dist/tui/markdown-block-cache.js +0 -76
- package/dist/tui/markdown-block-cache.js.map +0 -1
- package/dist/tui/markdown-table.js +0 -175
- package/dist/tui/markdown-table.js.map +0 -1
- package/dist/tui/markdown-wrap.js +0 -189
- package/dist/tui/markdown-wrap.js.map +0 -1
- package/dist/tui/markdownParser.js +0 -237
- package/dist/tui/markdownParser.js.map +0 -1
- package/dist/tui/mentions.js +0 -150
- package/dist/tui/mentions.js.map +0 -1
- package/dist/tui/model-catalogue-view.js +0 -75
- package/dist/tui/model-catalogue-view.js.map +0 -1
- package/dist/tui/model-choices.js +0 -157
- package/dist/tui/model-choices.js.map +0 -1
- package/dist/tui/model-search.js +0 -28
- package/dist/tui/model-search.js.map +0 -1
- package/dist/tui/model-selection-intent.js +0 -96
- package/dist/tui/model-selection-intent.js.map +0 -1
- package/dist/tui/model-switch-tool.js +0 -74
- package/dist/tui/model-switch-tool.js.map +0 -1
- package/dist/tui/model-switch.js +0 -106
- package/dist/tui/model-switch.js.map +0 -1
- package/dist/tui/notices.js +0 -27
- package/dist/tui/notices.js.map +0 -1
- package/dist/tui/open-browser.js +0 -147
- package/dist/tui/open-browser.js.map +0 -1
- package/dist/tui/permission-review.js +0 -858
- package/dist/tui/permission-review.js.map +0 -1
- package/dist/tui/plugin-view.js +0 -59
- package/dist/tui/plugin-view.js.map +0 -1
- package/dist/tui/provider-list.js +0 -327
- package/dist/tui/provider-list.js.map +0 -1
- package/dist/tui/provider-selection.js +0 -16
- package/dist/tui/provider-selection.js.map +0 -1
- package/dist/tui/schedule/host-commands.js +0 -428
- package/dist/tui/schedule/host-commands.js.map +0 -1
- package/dist/tui/schedule/integration.js +0 -150
- package/dist/tui/schedule/integration.js.map +0 -1
- package/dist/tui/schedule/loop-host.js +0 -153
- package/dist/tui/schedule/loop-host.js.map +0 -1
- package/dist/tui/schedule/resume.js +0 -333
- package/dist/tui/schedule/resume.js.map +0 -1
- package/dist/tui/schedule/startup.js +0 -121
- package/dist/tui/schedule/startup.js.map +0 -1
- package/dist/tui/schedule/tool-host.js +0 -619
- package/dist/tui/schedule/tool-host.js.map +0 -1
- package/dist/tui/selection-window.js +0 -37
- package/dist/tui/selection-window.js.map +0 -1
- package/dist/tui/shell-escape.js +0 -110
- package/dist/tui/shell-escape.js.map +0 -1
- package/dist/tui/skills/learning.js +0 -131
- package/dist/tui/skills/learning.js.map +0 -1
- package/dist/tui/skills/suggest-setting.js +0 -55
- package/dist/tui/skills/suggest-setting.js.map +0 -1
- package/dist/tui/skills/suggestion-ledger.js +0 -52
- package/dist/tui/skills/suggestion-ledger.js.map +0 -1
- package/dist/tui/slashCommands.js +0 -1588
- package/dist/tui/slashCommands.js.map +0 -1
- package/dist/tui/status-card.js +0 -30
- package/dist/tui/status-card.js.map +0 -1
- package/dist/tui/status-panel-layout.js +0 -42
- package/dist/tui/status-panel-layout.js.map +0 -1
- package/dist/tui/stream-blocks.js +0 -187
- package/dist/tui/stream-blocks.js.map +0 -1
- package/dist/tui/task-activity.js +0 -157
- package/dist/tui/task-activity.js.map +0 -1
- package/dist/tui/terminal-choice-text.js +0 -118
- package/dist/tui/terminal-choice-text.js.map +0 -1
- package/dist/tui/terminal-display.js +0 -65
- package/dist/tui/terminal-display.js.map +0 -1
- package/dist/tui/terminal-hyperlinks.js +0 -70
- package/dist/tui/terminal-hyperlinks.js.map +0 -1
- package/dist/tui/theme.js +0 -34
- package/dist/tui/theme.js.map +0 -1
- package/dist/tui/triggers/analyze.js +0 -221
- package/dist/tui/triggers/analyze.js.map +0 -1
- package/dist/tui/triggers/context-text.js +0 -44
- package/dist/tui/triggers/context-text.js.map +0 -1
- package/dist/tui/triggers/copy.js +0 -163
- package/dist/tui/triggers/copy.js.map +0 -1
- package/dist/tui/triggers/detect.js +0 -295
- package/dist/tui/triggers/detect.js.map +0 -1
- package/dist/tui/triggers/fold.js +0 -44
- package/dist/tui/triggers/fold.js.map +0 -1
- package/dist/tui/triggers/pattern.js +0 -243
- package/dist/tui/triggers/pattern.js.map +0 -1
- package/dist/tui/triggers/provenance.js +0 -98
- package/dist/tui/triggers/provenance.js.map +0 -1
- package/dist/tui/triggers/registry.js +0 -164
- package/dist/tui/triggers/registry.js.map +0 -1
- package/dist/tui/triggers/setting.js +0 -61
- package/dist/tui/triggers/setting.js.map +0 -1
- package/dist/tui/triggers/verbs.js +0 -140
- package/dist/tui/triggers/verbs.js.map +0 -1
- package/dist/tui/turn-interruption.js +0 -160
- package/dist/tui/turn-interruption.js.map +0 -1
- package/dist/tui/turn-limits-settings.js +0 -88
- package/dist/tui/turn-limits-settings.js.map +0 -1
- package/dist/tui/types.js +0 -7
- package/dist/tui/types.js.map +0 -1
- package/dist/tui/units.js +0 -20
- package/dist/tui/units.js.map +0 -1
- package/dist/tui/use-selection-index.js +0 -13
- package/dist/tui/use-selection-index.js.map +0 -1
- package/dist/tui/web-activity.js +0 -105
- package/dist/tui/web-activity.js.map +0 -1
- package/dist/tui/workspace-diff.js +0 -101
- package/dist/tui/workspace-diff.js.map +0 -1
- package/dist/tui/workspace-review.js +0 -67
- package/dist/tui/workspace-review.js.map +0 -1
- package/dist/user-commands/store.js +0 -235
- package/dist/user-commands/store.js.map +0 -1
- package/dist/version.js +0 -23
- package/dist/version.js.map +0 -1
|
@@ -0,0 +1,1736 @@
|
|
|
1
|
+
import { createRequire as __namzuCreateRequire } from 'node:module';
|
|
2
|
+
const require = __namzuCreateRequire(import.meta.url);
|
|
3
|
+
import {
|
|
4
|
+
__name
|
|
5
|
+
} from "./chunk-76FLAFCG.js";
|
|
6
|
+
|
|
7
|
+
// ../../node_modules/.pnpm/pica@10.0.3/node_modules/pica/dist/pica.mjs
|
|
8
|
+
var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
9
|
+
function base64decode(str) {
|
|
10
|
+
const input = str.replace(/[\r\n=]/g, ""), max = input.length;
|
|
11
|
+
const out = new Uint8Array(max * 3 >> 2);
|
|
12
|
+
let bits = 0;
|
|
13
|
+
let ptr = 0;
|
|
14
|
+
for (let idx = 0; idx < max; idx++) {
|
|
15
|
+
if (idx % 4 === 0 && idx) {
|
|
16
|
+
out[ptr++] = bits >> 16 & 255;
|
|
17
|
+
out[ptr++] = bits >> 8 & 255;
|
|
18
|
+
out[ptr++] = bits & 255;
|
|
19
|
+
}
|
|
20
|
+
bits = bits << 6 | BASE64_MAP.indexOf(input.charAt(idx));
|
|
21
|
+
}
|
|
22
|
+
const tailbits = max % 4 * 6;
|
|
23
|
+
if (tailbits === 0) {
|
|
24
|
+
out[ptr++] = bits >> 16 & 255;
|
|
25
|
+
out[ptr++] = bits >> 8 & 255;
|
|
26
|
+
out[ptr++] = bits & 255;
|
|
27
|
+
} else if (tailbits === 18) {
|
|
28
|
+
out[ptr++] = bits >> 10 & 255;
|
|
29
|
+
out[ptr++] = bits >> 2 & 255;
|
|
30
|
+
} else if (tailbits === 12) out[ptr++] = bits >> 4 & 255;
|
|
31
|
+
return out;
|
|
32
|
+
}
|
|
33
|
+
__name(base64decode, "base64decode");
|
|
34
|
+
var wa;
|
|
35
|
+
function hasWebAssembly() {
|
|
36
|
+
if (typeof wa !== "undefined") return wa;
|
|
37
|
+
wa = false;
|
|
38
|
+
if (typeof WebAssembly === "undefined") return wa;
|
|
39
|
+
try {
|
|
40
|
+
const bin = new Uint8Array([
|
|
41
|
+
0,
|
|
42
|
+
97,
|
|
43
|
+
115,
|
|
44
|
+
109,
|
|
45
|
+
1,
|
|
46
|
+
0,
|
|
47
|
+
0,
|
|
48
|
+
0,
|
|
49
|
+
1,
|
|
50
|
+
6,
|
|
51
|
+
1,
|
|
52
|
+
96,
|
|
53
|
+
1,
|
|
54
|
+
127,
|
|
55
|
+
1,
|
|
56
|
+
127,
|
|
57
|
+
3,
|
|
58
|
+
2,
|
|
59
|
+
1,
|
|
60
|
+
0,
|
|
61
|
+
5,
|
|
62
|
+
3,
|
|
63
|
+
1,
|
|
64
|
+
0,
|
|
65
|
+
1,
|
|
66
|
+
7,
|
|
67
|
+
8,
|
|
68
|
+
1,
|
|
69
|
+
4,
|
|
70
|
+
116,
|
|
71
|
+
101,
|
|
72
|
+
115,
|
|
73
|
+
116,
|
|
74
|
+
0,
|
|
75
|
+
0,
|
|
76
|
+
10,
|
|
77
|
+
16,
|
|
78
|
+
1,
|
|
79
|
+
14,
|
|
80
|
+
0,
|
|
81
|
+
32,
|
|
82
|
+
0,
|
|
83
|
+
65,
|
|
84
|
+
1,
|
|
85
|
+
54,
|
|
86
|
+
2,
|
|
87
|
+
0,
|
|
88
|
+
32,
|
|
89
|
+
0,
|
|
90
|
+
40,
|
|
91
|
+
2,
|
|
92
|
+
0,
|
|
93
|
+
11
|
|
94
|
+
]);
|
|
95
|
+
const module = new WebAssembly.Module(bin);
|
|
96
|
+
if (new WebAssembly.Instance(module, {}).exports.test(4) !== 0) wa = true;
|
|
97
|
+
return wa;
|
|
98
|
+
} catch (__) {
|
|
99
|
+
}
|
|
100
|
+
return wa;
|
|
101
|
+
}
|
|
102
|
+
__name(hasWebAssembly, "hasWebAssembly");
|
|
103
|
+
var DEFAULT_OPTIONS = {
|
|
104
|
+
js: true,
|
|
105
|
+
wasm: true
|
|
106
|
+
};
|
|
107
|
+
var MultiMath = class {
|
|
108
|
+
static {
|
|
109
|
+
__name(this, "MultiMath");
|
|
110
|
+
}
|
|
111
|
+
constructor(options) {
|
|
112
|
+
const opts = Object.assign({}, DEFAULT_OPTIONS, options || {});
|
|
113
|
+
this.options = opts;
|
|
114
|
+
this.__cache = {};
|
|
115
|
+
this.__init_promise = null;
|
|
116
|
+
this.__modules = opts.modules || {};
|
|
117
|
+
this.__memory = null;
|
|
118
|
+
this.__wasm = {};
|
|
119
|
+
this.__isLE = new Uint32Array(new Uint8Array([
|
|
120
|
+
1,
|
|
121
|
+
0,
|
|
122
|
+
0,
|
|
123
|
+
0
|
|
124
|
+
]).buffer)[0] === 1;
|
|
125
|
+
if (!this.options.js && !this.options.wasm) throw new Error('mathlib: at least "js" or "wasm" should be enabled');
|
|
126
|
+
}
|
|
127
|
+
has_wasm() {
|
|
128
|
+
return hasWebAssembly();
|
|
129
|
+
}
|
|
130
|
+
use(module) {
|
|
131
|
+
this.__modules[module.name] = module;
|
|
132
|
+
if (this.options.wasm && this.has_wasm() && module.wasm_fn) this[module.name] = module.wasm_fn;
|
|
133
|
+
else this[module.name] = module.fn;
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
init() {
|
|
137
|
+
if (this.__init_promise) return this.__init_promise;
|
|
138
|
+
if (!this.options.js && this.options.wasm && !this.has_wasm()) return Promise.reject(/* @__PURE__ */ new Error(`mathlib: only "wasm" was enabled, but it's not supported`));
|
|
139
|
+
this.__init_promise = Promise.all(Object.keys(this.__modules).map((name) => {
|
|
140
|
+
const module = this.__modules[name];
|
|
141
|
+
if (!this.options.wasm || !this.has_wasm() || !module.wasm_fn) return null;
|
|
142
|
+
if (this.__wasm[name]) return null;
|
|
143
|
+
return WebAssembly.compile(base64decode(module.wasm_src)).then((m) => {
|
|
144
|
+
this.__wasm[name] = m;
|
|
145
|
+
});
|
|
146
|
+
})).then(() => this);
|
|
147
|
+
return this.__init_promise;
|
|
148
|
+
}
|
|
149
|
+
__reallocate(bytes) {
|
|
150
|
+
if (!this.__memory) {
|
|
151
|
+
this.__memory = new WebAssembly.Memory({ initial: Math.ceil(bytes / 65536) });
|
|
152
|
+
return this.__memory;
|
|
153
|
+
}
|
|
154
|
+
const mem_size = this.__memory.buffer.byteLength;
|
|
155
|
+
if (mem_size < bytes) this.__memory.grow(Math.ceil((bytes - mem_size) / 65536));
|
|
156
|
+
return this.__memory;
|
|
157
|
+
}
|
|
158
|
+
__instance(name, memsize, env_extra) {
|
|
159
|
+
if (memsize) this.__reallocate(memsize);
|
|
160
|
+
if (!this.__wasm[name]) {
|
|
161
|
+
const module = this.__modules[name];
|
|
162
|
+
this.__wasm[name] = new WebAssembly.Module(base64decode(module.wasm_src));
|
|
163
|
+
}
|
|
164
|
+
if (!this.__cache[name]) {
|
|
165
|
+
const env_base = {
|
|
166
|
+
memoryBase: 0,
|
|
167
|
+
memory: this.__memory,
|
|
168
|
+
tableBase: 0,
|
|
169
|
+
table: new WebAssembly.Table({
|
|
170
|
+
initial: 0,
|
|
171
|
+
element: "anyfunc"
|
|
172
|
+
})
|
|
173
|
+
};
|
|
174
|
+
this.__cache[name] = new WebAssembly.Instance(this.__wasm[name], { env: Object.assign(env_base, env_extra || {}) });
|
|
175
|
+
}
|
|
176
|
+
return this.__cache[name];
|
|
177
|
+
}
|
|
178
|
+
__align(number, base) {
|
|
179
|
+
base = base || 8;
|
|
180
|
+
const reminder = number % base;
|
|
181
|
+
return number + (reminder ? base - reminder : 0);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
function gaussCoef(sigma) {
|
|
185
|
+
if (sigma < 0.5) sigma = 0.5;
|
|
186
|
+
const a = Math.exp(0.527076) / sigma, g1 = Math.exp(-a), g2 = Math.exp(-2 * a), k = (1 - g1) * (1 - g1) / (1 + 2 * a * g1 - g2);
|
|
187
|
+
const a0 = k;
|
|
188
|
+
const a1 = k * (a - 1) * g1;
|
|
189
|
+
const a2 = k * (a + 1) * g1;
|
|
190
|
+
const a3 = -k * g2;
|
|
191
|
+
const b1 = 2 * g1;
|
|
192
|
+
const b2 = -g2;
|
|
193
|
+
const left_corner = (a0 + a1) / (1 - b1 - b2);
|
|
194
|
+
const right_corner = (a2 + a3) / (1 - b1 - b2);
|
|
195
|
+
return new Float32Array([
|
|
196
|
+
a0,
|
|
197
|
+
a1,
|
|
198
|
+
a2,
|
|
199
|
+
a3,
|
|
200
|
+
b1,
|
|
201
|
+
b2,
|
|
202
|
+
left_corner,
|
|
203
|
+
right_corner
|
|
204
|
+
]);
|
|
205
|
+
}
|
|
206
|
+
__name(gaussCoef, "gaussCoef");
|
|
207
|
+
function convolveMono16(src, out, line, coeff, width, height) {
|
|
208
|
+
let prev_src, curr_src, curr_out, prev_out, prev_prev_out;
|
|
209
|
+
let src_index, out_index, line_index;
|
|
210
|
+
let i, j;
|
|
211
|
+
let coeff_a0, coeff_a1, coeff_b1, coeff_b2;
|
|
212
|
+
for (i = 0; i < height; i++) {
|
|
213
|
+
src_index = i * width;
|
|
214
|
+
out_index = i;
|
|
215
|
+
line_index = 0;
|
|
216
|
+
prev_src = src[src_index];
|
|
217
|
+
prev_prev_out = prev_src * coeff[6];
|
|
218
|
+
prev_out = prev_prev_out;
|
|
219
|
+
coeff_a0 = coeff[0];
|
|
220
|
+
coeff_a1 = coeff[1];
|
|
221
|
+
coeff_b1 = coeff[4];
|
|
222
|
+
coeff_b2 = coeff[5];
|
|
223
|
+
for (j = 0; j < width; j++) {
|
|
224
|
+
curr_src = src[src_index];
|
|
225
|
+
curr_out = curr_src * coeff_a0 + prev_src * coeff_a1 + prev_out * coeff_b1 + prev_prev_out * coeff_b2;
|
|
226
|
+
prev_prev_out = prev_out;
|
|
227
|
+
prev_out = curr_out;
|
|
228
|
+
prev_src = curr_src;
|
|
229
|
+
line[line_index] = prev_out;
|
|
230
|
+
line_index++;
|
|
231
|
+
src_index++;
|
|
232
|
+
}
|
|
233
|
+
src_index--;
|
|
234
|
+
line_index--;
|
|
235
|
+
out_index += height * (width - 1);
|
|
236
|
+
prev_src = src[src_index];
|
|
237
|
+
prev_prev_out = prev_src * coeff[7];
|
|
238
|
+
prev_out = prev_prev_out;
|
|
239
|
+
curr_src = prev_src;
|
|
240
|
+
coeff_a0 = coeff[2];
|
|
241
|
+
coeff_a1 = coeff[3];
|
|
242
|
+
for (j = width - 1; j >= 0; j--) {
|
|
243
|
+
curr_out = curr_src * coeff_a0 + prev_src * coeff_a1 + prev_out * coeff_b1 + prev_prev_out * coeff_b2;
|
|
244
|
+
prev_prev_out = prev_out;
|
|
245
|
+
prev_out = curr_out;
|
|
246
|
+
prev_src = curr_src;
|
|
247
|
+
curr_src = src[src_index];
|
|
248
|
+
out[out_index] = line[line_index] + prev_out;
|
|
249
|
+
src_index--;
|
|
250
|
+
line_index--;
|
|
251
|
+
out_index -= height;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
__name(convolveMono16, "convolveMono16");
|
|
256
|
+
function blurMono16(src, width, height, radius) {
|
|
257
|
+
if (!radius) return;
|
|
258
|
+
const out = new Uint16Array(src.length), tmp_line = new Float32Array(Math.max(width, height));
|
|
259
|
+
const coeff = gaussCoef(radius);
|
|
260
|
+
convolveMono16(src, out, tmp_line, coeff, width, height, radius);
|
|
261
|
+
convolveMono16(out, src, tmp_line, coeff, height, width, radius);
|
|
262
|
+
}
|
|
263
|
+
__name(blurMono16, "blurMono16");
|
|
264
|
+
function hsv_v16(img, width, height) {
|
|
265
|
+
const size = width * height;
|
|
266
|
+
const out = new Uint16Array(size);
|
|
267
|
+
let r, g, b, max;
|
|
268
|
+
for (let i = 0; i < size; i++) {
|
|
269
|
+
r = img[4 * i];
|
|
270
|
+
g = img[4 * i + 1];
|
|
271
|
+
b = img[4 * i + 2];
|
|
272
|
+
max = r >= g && r >= b ? r : g >= b && g >= r ? g : b;
|
|
273
|
+
out[i] = max << 8;
|
|
274
|
+
}
|
|
275
|
+
return out;
|
|
276
|
+
}
|
|
277
|
+
__name(hsv_v16, "hsv_v16");
|
|
278
|
+
function unsharp$1(img, width, height, amount, radius, threshold) {
|
|
279
|
+
let v1, v2, vmul;
|
|
280
|
+
let diff, iTimes4;
|
|
281
|
+
if (amount === 0 || radius < 0.5) return;
|
|
282
|
+
if (radius > 2) radius = 2;
|
|
283
|
+
const brightness = hsv_v16(img, width, height);
|
|
284
|
+
const blured = new Uint16Array(brightness);
|
|
285
|
+
blurMono16(blured, width, height, radius);
|
|
286
|
+
const amountFp = amount / 100 * 4096 + 0.5 | 0;
|
|
287
|
+
const thresholdFp = threshold << 8;
|
|
288
|
+
const size = width * height;
|
|
289
|
+
for (let i = 0; i < size; i++) {
|
|
290
|
+
v1 = brightness[i];
|
|
291
|
+
diff = v1 - blured[i];
|
|
292
|
+
if (Math.abs(diff) >= thresholdFp) {
|
|
293
|
+
v2 = v1 + (amountFp * diff + 2048 >> 12);
|
|
294
|
+
v2 = v2 > 65280 ? 65280 : v2;
|
|
295
|
+
v2 = v2 < 0 ? 0 : v2;
|
|
296
|
+
v1 = v1 !== 0 ? v1 : 1;
|
|
297
|
+
vmul = (v2 << 12) / v1 | 0;
|
|
298
|
+
iTimes4 = i * 4;
|
|
299
|
+
img[iTimes4] = img[iTimes4] * vmul + 2048 >> 12;
|
|
300
|
+
img[iTimes4 + 1] = img[iTimes4 + 1] * vmul + 2048 >> 12;
|
|
301
|
+
img[iTimes4 + 2] = img[iTimes4 + 2] * vmul + 2048 >> 12;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
__name(unsharp$1, "unsharp$1");
|
|
306
|
+
function unsharp(img, width, height, amount, radius, threshold) {
|
|
307
|
+
if (amount === 0 || radius < 0.5) return;
|
|
308
|
+
if (radius > 2) radius = 2;
|
|
309
|
+
const pixels = width * height;
|
|
310
|
+
const img_bytes_cnt = pixels * 4;
|
|
311
|
+
const hsv_bytes_cnt = pixels * 2;
|
|
312
|
+
const blur_bytes_cnt = pixels * 2;
|
|
313
|
+
const blur_line_byte_cnt = Math.max(width, height) * 4;
|
|
314
|
+
const blur_coeffs_byte_cnt = 32;
|
|
315
|
+
const img_offset = 0;
|
|
316
|
+
const hsv_offset = img_bytes_cnt;
|
|
317
|
+
const blur_offset = hsv_offset + hsv_bytes_cnt;
|
|
318
|
+
const blur_tmp_offset = blur_offset + blur_bytes_cnt;
|
|
319
|
+
const blur_line_offset = blur_tmp_offset + blur_bytes_cnt;
|
|
320
|
+
const blur_coeffs_offset = blur_line_offset + blur_line_byte_cnt;
|
|
321
|
+
const instance = this.__instance("unsharp_mask", img_bytes_cnt + hsv_bytes_cnt + blur_bytes_cnt * 2 + blur_line_byte_cnt + blur_coeffs_byte_cnt, { exp: Math.exp });
|
|
322
|
+
const img32 = new Uint32Array(img.buffer);
|
|
323
|
+
new Uint32Array(this.__memory.buffer).set(img32);
|
|
324
|
+
let fn = instance.exports.hsv_v16 || instance.exports._hsv_v16;
|
|
325
|
+
if (!fn) throw new Error("WASM hsv_v16 function is not available");
|
|
326
|
+
fn(img_offset, hsv_offset, width, height);
|
|
327
|
+
fn = instance.exports.blurMono16 || instance.exports._blurMono16;
|
|
328
|
+
if (!fn) throw new Error("WASM blurMono16 function is not available");
|
|
329
|
+
fn(hsv_offset, blur_offset, blur_tmp_offset, blur_line_offset, blur_coeffs_offset, width, height, radius);
|
|
330
|
+
fn = instance.exports.unsharp || instance.exports._unsharp;
|
|
331
|
+
if (!fn) throw new Error("WASM unsharp function is not available");
|
|
332
|
+
fn(img_offset, img_offset, hsv_offset, blur_offset, width, height, amount, threshold);
|
|
333
|
+
img32.set(new Uint32Array(this.__memory.buffer, 0, pixels));
|
|
334
|
+
}
|
|
335
|
+
__name(unsharp, "unsharp");
|
|
336
|
+
var mm_unsharp_mask_default = {
|
|
337
|
+
name: "unsharp_mask",
|
|
338
|
+
fn: unsharp$1,
|
|
339
|
+
wasm_fn: unsharp,
|
|
340
|
+
wasm_src: "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"
|
|
341
|
+
};
|
|
342
|
+
var resize_filter_info_default = { filter: {
|
|
343
|
+
box: {
|
|
344
|
+
win: 0.5,
|
|
345
|
+
fn(x) {
|
|
346
|
+
if (x < 0) x = -x;
|
|
347
|
+
return x < 0.5 ? 1 : 0;
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
hamming: {
|
|
351
|
+
win: 1,
|
|
352
|
+
fn(x) {
|
|
353
|
+
if (x < 0) x = -x;
|
|
354
|
+
if (x >= 1) return 0;
|
|
355
|
+
if (x < 11920929e-14) return 1;
|
|
356
|
+
const xpi = x * Math.PI;
|
|
357
|
+
return Math.sin(xpi) / xpi * (0.54 + 0.46 * Math.cos(xpi / 1));
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
lanczos2: {
|
|
361
|
+
win: 2,
|
|
362
|
+
fn(x) {
|
|
363
|
+
if (x < 0) x = -x;
|
|
364
|
+
if (x >= 2) return 0;
|
|
365
|
+
if (x < 11920929e-14) return 1;
|
|
366
|
+
const xpi = x * Math.PI;
|
|
367
|
+
return Math.sin(xpi) / xpi * Math.sin(xpi / 2) / (xpi / 2);
|
|
368
|
+
}
|
|
369
|
+
},
|
|
370
|
+
lanczos3: {
|
|
371
|
+
win: 3,
|
|
372
|
+
fn(x) {
|
|
373
|
+
if (x < 0) x = -x;
|
|
374
|
+
if (x >= 3) return 0;
|
|
375
|
+
if (x < 11920929e-14) return 1;
|
|
376
|
+
const xpi = x * Math.PI;
|
|
377
|
+
return Math.sin(xpi) / xpi * Math.sin(xpi / 3) / (xpi / 3);
|
|
378
|
+
}
|
|
379
|
+
},
|
|
380
|
+
mks2013: {
|
|
381
|
+
win: 2.5,
|
|
382
|
+
fn(x) {
|
|
383
|
+
if (x < 0) x = -x;
|
|
384
|
+
if (x >= 2.5) return 0;
|
|
385
|
+
if (x >= 1.5) return -0.125 * (x - 2.5) * (x - 2.5);
|
|
386
|
+
if (x >= 0.5) return 0.25 * (4 * x * x - 11 * x + 7);
|
|
387
|
+
return 1.0625 - 1.75 * x * x;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
} };
|
|
391
|
+
function toFixedPoint(num) {
|
|
392
|
+
return Math.round(num * 16383);
|
|
393
|
+
}
|
|
394
|
+
__name(toFixedPoint, "toFixedPoint");
|
|
395
|
+
function resizeFilterGen(filter, srcSize, destSize, scale, offset) {
|
|
396
|
+
const filterFunction = resize_filter_info_default.filter[filter].fn;
|
|
397
|
+
const scaleInverted = 1 / scale;
|
|
398
|
+
const scaleClamped = Math.min(1, scale);
|
|
399
|
+
const srcWindow = resize_filter_info_default.filter[filter].win / scaleClamped;
|
|
400
|
+
let destPixel, srcPixel, srcFirst, srcLast, filterElementSize, floatFilter, fxpFilter, total, pxl, idx, floatVal, filterTotal, filterVal;
|
|
401
|
+
let leftNotEmpty, rightNotEmpty, filterShift, filterSize;
|
|
402
|
+
const maxFilterElementSize = Math.floor((srcWindow + 1) * 2);
|
|
403
|
+
const packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);
|
|
404
|
+
let packedFilterPtr = 0;
|
|
405
|
+
const slowCopy = !packedFilter.subarray || !packedFilter.set;
|
|
406
|
+
for (destPixel = 0; destPixel < destSize; destPixel++) {
|
|
407
|
+
srcPixel = (destPixel + 0.5) * scaleInverted + offset;
|
|
408
|
+
srcFirst = Math.max(0, Math.floor(srcPixel - srcWindow));
|
|
409
|
+
srcLast = Math.min(srcSize - 1, Math.ceil(srcPixel + srcWindow));
|
|
410
|
+
filterElementSize = srcLast - srcFirst + 1;
|
|
411
|
+
floatFilter = new Float32Array(filterElementSize);
|
|
412
|
+
fxpFilter = new Int16Array(filterElementSize);
|
|
413
|
+
total = 0;
|
|
414
|
+
for (pxl = srcFirst, idx = 0; pxl <= srcLast; pxl++, idx++) {
|
|
415
|
+
floatVal = filterFunction((pxl + 0.5 - srcPixel) * scaleClamped);
|
|
416
|
+
total += floatVal;
|
|
417
|
+
floatFilter[idx] = floatVal;
|
|
418
|
+
}
|
|
419
|
+
filterTotal = 0;
|
|
420
|
+
for (idx = 0; idx < floatFilter.length; idx++) {
|
|
421
|
+
filterVal = floatFilter[idx] / total;
|
|
422
|
+
filterTotal += filterVal;
|
|
423
|
+
fxpFilter[idx] = toFixedPoint(filterVal);
|
|
424
|
+
}
|
|
425
|
+
fxpFilter[destSize >> 1] += toFixedPoint(1 - filterTotal);
|
|
426
|
+
leftNotEmpty = 0;
|
|
427
|
+
while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) leftNotEmpty++;
|
|
428
|
+
if (leftNotEmpty < fxpFilter.length) {
|
|
429
|
+
rightNotEmpty = fxpFilter.length - 1;
|
|
430
|
+
while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) rightNotEmpty--;
|
|
431
|
+
filterShift = srcFirst + leftNotEmpty;
|
|
432
|
+
filterSize = rightNotEmpty - leftNotEmpty + 1;
|
|
433
|
+
packedFilter[packedFilterPtr++] = filterShift;
|
|
434
|
+
packedFilter[packedFilterPtr++] = filterSize;
|
|
435
|
+
if (!slowCopy) {
|
|
436
|
+
packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);
|
|
437
|
+
packedFilterPtr += filterSize;
|
|
438
|
+
} else for (idx = leftNotEmpty; idx <= rightNotEmpty; idx++) packedFilter[packedFilterPtr++] = fxpFilter[idx];
|
|
439
|
+
} else {
|
|
440
|
+
packedFilter[packedFilterPtr++] = 0;
|
|
441
|
+
packedFilter[packedFilterPtr++] = 0;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return packedFilter;
|
|
445
|
+
}
|
|
446
|
+
__name(resizeFilterGen, "resizeFilterGen");
|
|
447
|
+
function clampTo8(i) {
|
|
448
|
+
return i < 0 ? 0 : i > 255 ? 255 : i;
|
|
449
|
+
}
|
|
450
|
+
__name(clampTo8, "clampTo8");
|
|
451
|
+
function clampNegative(i) {
|
|
452
|
+
return i >= 0 ? i : 0;
|
|
453
|
+
}
|
|
454
|
+
__name(clampNegative, "clampNegative");
|
|
455
|
+
function convolveHor(src, dest, srcW, srcH, destW, filters) {
|
|
456
|
+
let r, g, b, a;
|
|
457
|
+
let filterPtr, filterShift, filterSize;
|
|
458
|
+
let srcPtr, srcY, destX, filterVal;
|
|
459
|
+
let srcOffset = 0, destOffset = 0;
|
|
460
|
+
for (srcY = 0; srcY < srcH; srcY++) {
|
|
461
|
+
filterPtr = 0;
|
|
462
|
+
for (destX = 0; destX < destW; destX++) {
|
|
463
|
+
filterShift = filters[filterPtr++];
|
|
464
|
+
filterSize = filters[filterPtr++];
|
|
465
|
+
srcPtr = srcOffset + filterShift * 4 | 0;
|
|
466
|
+
r = g = b = a = 0;
|
|
467
|
+
for (; filterSize > 0; filterSize--) {
|
|
468
|
+
filterVal = filters[filterPtr++];
|
|
469
|
+
a = a + filterVal * src[srcPtr + 3] | 0;
|
|
470
|
+
b = b + filterVal * src[srcPtr + 2] | 0;
|
|
471
|
+
g = g + filterVal * src[srcPtr + 1] | 0;
|
|
472
|
+
r = r + filterVal * src[srcPtr] | 0;
|
|
473
|
+
srcPtr = srcPtr + 4 | 0;
|
|
474
|
+
}
|
|
475
|
+
dest[destOffset + 3] = clampNegative(a >> 7);
|
|
476
|
+
dest[destOffset + 2] = clampNegative(b >> 7);
|
|
477
|
+
dest[destOffset + 1] = clampNegative(g >> 7);
|
|
478
|
+
dest[destOffset] = clampNegative(r >> 7);
|
|
479
|
+
destOffset = destOffset + srcH * 4 | 0;
|
|
480
|
+
}
|
|
481
|
+
destOffset = (srcY + 1) * 4 | 0;
|
|
482
|
+
srcOffset = (srcY + 1) * srcW * 4 | 0;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
__name(convolveHor, "convolveHor");
|
|
486
|
+
function convolveVert(src, dest, srcW, srcH, destW, filters) {
|
|
487
|
+
let r, g, b, a;
|
|
488
|
+
let filterPtr, filterShift, filterSize;
|
|
489
|
+
let srcPtr, srcY, destX, filterVal;
|
|
490
|
+
let srcOffset = 0, destOffset = 0;
|
|
491
|
+
for (srcY = 0; srcY < srcH; srcY++) {
|
|
492
|
+
filterPtr = 0;
|
|
493
|
+
for (destX = 0; destX < destW; destX++) {
|
|
494
|
+
filterShift = filters[filterPtr++];
|
|
495
|
+
filterSize = filters[filterPtr++];
|
|
496
|
+
srcPtr = srcOffset + filterShift * 4 | 0;
|
|
497
|
+
r = g = b = a = 0;
|
|
498
|
+
for (; filterSize > 0; filterSize--) {
|
|
499
|
+
filterVal = filters[filterPtr++];
|
|
500
|
+
a = a + filterVal * src[srcPtr + 3] | 0;
|
|
501
|
+
b = b + filterVal * src[srcPtr + 2] | 0;
|
|
502
|
+
g = g + filterVal * src[srcPtr + 1] | 0;
|
|
503
|
+
r = r + filterVal * src[srcPtr] | 0;
|
|
504
|
+
srcPtr = srcPtr + 4 | 0;
|
|
505
|
+
}
|
|
506
|
+
r >>= 7;
|
|
507
|
+
g >>= 7;
|
|
508
|
+
b >>= 7;
|
|
509
|
+
a >>= 7;
|
|
510
|
+
dest[destOffset + 3] = clampTo8(a + 8192 >> 14);
|
|
511
|
+
dest[destOffset + 2] = clampTo8(b + 8192 >> 14);
|
|
512
|
+
dest[destOffset + 1] = clampTo8(g + 8192 >> 14);
|
|
513
|
+
dest[destOffset] = clampTo8(r + 8192 >> 14);
|
|
514
|
+
destOffset = destOffset + srcH * 4 | 0;
|
|
515
|
+
}
|
|
516
|
+
destOffset = (srcY + 1) * 4 | 0;
|
|
517
|
+
srcOffset = (srcY + 1) * srcW * 4 | 0;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
__name(convolveVert, "convolveVert");
|
|
521
|
+
function convolveHorWithPre(src, dest, srcW, srcH, destW, filters) {
|
|
522
|
+
let r, g, b, a, alpha;
|
|
523
|
+
let filterPtr, filterShift, filterSize;
|
|
524
|
+
let srcPtr, srcY, destX, filterVal;
|
|
525
|
+
let srcOffset = 0, destOffset = 0;
|
|
526
|
+
for (srcY = 0; srcY < srcH; srcY++) {
|
|
527
|
+
filterPtr = 0;
|
|
528
|
+
for (destX = 0; destX < destW; destX++) {
|
|
529
|
+
filterShift = filters[filterPtr++];
|
|
530
|
+
filterSize = filters[filterPtr++];
|
|
531
|
+
srcPtr = srcOffset + filterShift * 4 | 0;
|
|
532
|
+
r = g = b = a = 0;
|
|
533
|
+
for (; filterSize > 0; filterSize--) {
|
|
534
|
+
filterVal = filters[filterPtr++];
|
|
535
|
+
alpha = src[srcPtr + 3];
|
|
536
|
+
a = a + filterVal * alpha | 0;
|
|
537
|
+
b = b + filterVal * src[srcPtr + 2] * alpha | 0;
|
|
538
|
+
g = g + filterVal * src[srcPtr + 1] * alpha | 0;
|
|
539
|
+
r = r + filterVal * src[srcPtr] * alpha | 0;
|
|
540
|
+
srcPtr = srcPtr + 4 | 0;
|
|
541
|
+
}
|
|
542
|
+
b = b / 255 | 0;
|
|
543
|
+
g = g / 255 | 0;
|
|
544
|
+
r = r / 255 | 0;
|
|
545
|
+
dest[destOffset + 3] = clampNegative(a >> 7);
|
|
546
|
+
dest[destOffset + 2] = clampNegative(b >> 7);
|
|
547
|
+
dest[destOffset + 1] = clampNegative(g >> 7);
|
|
548
|
+
dest[destOffset] = clampNegative(r >> 7);
|
|
549
|
+
destOffset = destOffset + srcH * 4 | 0;
|
|
550
|
+
}
|
|
551
|
+
destOffset = (srcY + 1) * 4 | 0;
|
|
552
|
+
srcOffset = (srcY + 1) * srcW * 4 | 0;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
__name(convolveHorWithPre, "convolveHorWithPre");
|
|
556
|
+
function convolveVertWithPre(src, dest, srcW, srcH, destW, filters) {
|
|
557
|
+
let r, g, b, a;
|
|
558
|
+
let filterPtr, filterShift, filterSize;
|
|
559
|
+
let srcPtr, srcY, destX, filterVal;
|
|
560
|
+
let srcOffset = 0, destOffset = 0;
|
|
561
|
+
for (srcY = 0; srcY < srcH; srcY++) {
|
|
562
|
+
filterPtr = 0;
|
|
563
|
+
for (destX = 0; destX < destW; destX++) {
|
|
564
|
+
filterShift = filters[filterPtr++];
|
|
565
|
+
filterSize = filters[filterPtr++];
|
|
566
|
+
srcPtr = srcOffset + filterShift * 4 | 0;
|
|
567
|
+
r = g = b = a = 0;
|
|
568
|
+
for (; filterSize > 0; filterSize--) {
|
|
569
|
+
filterVal = filters[filterPtr++];
|
|
570
|
+
a = a + filterVal * src[srcPtr + 3] | 0;
|
|
571
|
+
b = b + filterVal * src[srcPtr + 2] | 0;
|
|
572
|
+
g = g + filterVal * src[srcPtr + 1] | 0;
|
|
573
|
+
r = r + filterVal * src[srcPtr] | 0;
|
|
574
|
+
srcPtr = srcPtr + 4 | 0;
|
|
575
|
+
}
|
|
576
|
+
r >>= 7;
|
|
577
|
+
g >>= 7;
|
|
578
|
+
b >>= 7;
|
|
579
|
+
a >>= 7;
|
|
580
|
+
a = clampTo8(a + 8192 >> 14);
|
|
581
|
+
if (a > 0) {
|
|
582
|
+
r = r * 255 / a | 0;
|
|
583
|
+
g = g * 255 / a | 0;
|
|
584
|
+
b = b * 255 / a | 0;
|
|
585
|
+
}
|
|
586
|
+
dest[destOffset + 3] = a;
|
|
587
|
+
dest[destOffset + 2] = clampTo8(b + 8192 >> 14);
|
|
588
|
+
dest[destOffset + 1] = clampTo8(g + 8192 >> 14);
|
|
589
|
+
dest[destOffset] = clampTo8(r + 8192 >> 14);
|
|
590
|
+
destOffset = destOffset + srcH * 4 | 0;
|
|
591
|
+
}
|
|
592
|
+
destOffset = (srcY + 1) * 4 | 0;
|
|
593
|
+
srcOffset = (srcY + 1) * srcW * 4 | 0;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
__name(convolveVertWithPre, "convolveVertWithPre");
|
|
597
|
+
function hasAlpha$1(src, width, height) {
|
|
598
|
+
let ptr = 3;
|
|
599
|
+
const len = width * height * 4 | 0;
|
|
600
|
+
while (ptr < len) {
|
|
601
|
+
if (src[ptr] !== 255) return true;
|
|
602
|
+
ptr = ptr + 4 | 0;
|
|
603
|
+
}
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
__name(hasAlpha$1, "hasAlpha$1");
|
|
607
|
+
function resetAlpha$1(dst, width, height) {
|
|
608
|
+
let ptr = 3;
|
|
609
|
+
const len = width * height * 4 | 0;
|
|
610
|
+
while (ptr < len) {
|
|
611
|
+
dst[ptr] = 255;
|
|
612
|
+
ptr = ptr + 4 | 0;
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
__name(resetAlpha$1, "resetAlpha$1");
|
|
616
|
+
function resize(options) {
|
|
617
|
+
const src = options.src;
|
|
618
|
+
const srcW = options.width;
|
|
619
|
+
const srcH = options.height;
|
|
620
|
+
const destW = options.toWidth;
|
|
621
|
+
const destH = options.toHeight;
|
|
622
|
+
const scaleX = options.scaleX || options.toWidth / options.width;
|
|
623
|
+
const scaleY = options.scaleY || options.toHeight / options.height;
|
|
624
|
+
const offsetX = options.offsetX || 0;
|
|
625
|
+
const offsetY = options.offsetY || 0;
|
|
626
|
+
const dest = options.dest || new Uint8Array(destW * destH * 4);
|
|
627
|
+
const filter = typeof options.filter === "undefined" ? "mks2013" : options.filter;
|
|
628
|
+
const filtersX = resizeFilterGen(filter, srcW, destW, scaleX, offsetX), filtersY = resizeFilterGen(filter, srcH, destH, scaleY, offsetY);
|
|
629
|
+
const tmp = new Uint16Array(destW * srcH * 4);
|
|
630
|
+
if (hasAlpha$1(src, srcW, srcH)) {
|
|
631
|
+
convolveHorWithPre(src, tmp, srcW, srcH, destW, filtersX);
|
|
632
|
+
convolveVertWithPre(tmp, dest, srcH, destW, destH, filtersY);
|
|
633
|
+
} else {
|
|
634
|
+
convolveHor(src, tmp, srcW, srcH, destW, filtersX);
|
|
635
|
+
convolveVert(tmp, dest, srcH, destW, destH, filtersY);
|
|
636
|
+
resetAlpha$1(dest, destW, destH);
|
|
637
|
+
}
|
|
638
|
+
return dest;
|
|
639
|
+
}
|
|
640
|
+
__name(resize, "resize");
|
|
641
|
+
function hasAlpha(src, width, height) {
|
|
642
|
+
let ptr = 3;
|
|
643
|
+
const len = width * height * 4 | 0;
|
|
644
|
+
while (ptr < len) {
|
|
645
|
+
if (src[ptr] !== 255) return true;
|
|
646
|
+
ptr = ptr + 4 | 0;
|
|
647
|
+
}
|
|
648
|
+
return false;
|
|
649
|
+
}
|
|
650
|
+
__name(hasAlpha, "hasAlpha");
|
|
651
|
+
function resetAlpha(dst, width, height) {
|
|
652
|
+
let ptr = 3;
|
|
653
|
+
const len = width * height * 4 | 0;
|
|
654
|
+
while (ptr < len) {
|
|
655
|
+
dst[ptr] = 255;
|
|
656
|
+
ptr = ptr + 4 | 0;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
__name(resetAlpha, "resetAlpha");
|
|
660
|
+
function asUint8Array(src) {
|
|
661
|
+
return new Uint8Array(src.buffer, 0, src.byteLength);
|
|
662
|
+
}
|
|
663
|
+
__name(asUint8Array, "asUint8Array");
|
|
664
|
+
var IS_LE = true;
|
|
665
|
+
try {
|
|
666
|
+
IS_LE = new Uint32Array(new Uint8Array([
|
|
667
|
+
1,
|
|
668
|
+
0,
|
|
669
|
+
0,
|
|
670
|
+
0
|
|
671
|
+
]).buffer)[0] === 1;
|
|
672
|
+
} catch (__) {
|
|
673
|
+
}
|
|
674
|
+
function copyInt16asLE(src, target, target_offset) {
|
|
675
|
+
if (IS_LE) {
|
|
676
|
+
target.set(asUint8Array(src), target_offset);
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
for (let ptr = target_offset, i = 0; i < src.length; i++) {
|
|
680
|
+
const data = src[i];
|
|
681
|
+
target[ptr++] = data & 255;
|
|
682
|
+
target[ptr++] = data >> 8 & 255;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
__name(copyInt16asLE, "copyInt16asLE");
|
|
686
|
+
function resize_wasm(options) {
|
|
687
|
+
const src = options.src;
|
|
688
|
+
const srcW = options.width;
|
|
689
|
+
const srcH = options.height;
|
|
690
|
+
const destW = options.toWidth;
|
|
691
|
+
const destH = options.toHeight;
|
|
692
|
+
const scaleX = options.scaleX || options.toWidth / options.width;
|
|
693
|
+
const scaleY = options.scaleY || options.toHeight / options.height;
|
|
694
|
+
const offsetX = options.offsetX || 0;
|
|
695
|
+
const offsetY = options.offsetY || 0;
|
|
696
|
+
const dest = options.dest || new Uint8Array(destW * destH * 4);
|
|
697
|
+
const filter = typeof options.filter === "undefined" ? "mks2013" : options.filter;
|
|
698
|
+
const filtersX = resizeFilterGen(filter, srcW, destW, scaleX, offsetX), filtersY = resizeFilterGen(filter, srcH, destH, scaleY, offsetY);
|
|
699
|
+
const src_offset = 0;
|
|
700
|
+
const src_size = Math.max(src.byteLength, dest.byteLength);
|
|
701
|
+
const tmp_offset = this.__align(src_offset + src_size);
|
|
702
|
+
const tmp_size = srcH * destW * 4 * 2;
|
|
703
|
+
const filtersX_offset = this.__align(tmp_offset + tmp_size);
|
|
704
|
+
const filtersY_offset = this.__align(filtersX_offset + filtersX.byteLength);
|
|
705
|
+
const alloc_bytes = filtersY_offset + filtersY.byteLength;
|
|
706
|
+
const instance = this.__instance("resize", alloc_bytes);
|
|
707
|
+
const mem = new Uint8Array(this.__memory.buffer);
|
|
708
|
+
const mem32 = new Uint32Array(this.__memory.buffer);
|
|
709
|
+
const src32 = new Uint32Array(src.buffer);
|
|
710
|
+
mem32.set(src32);
|
|
711
|
+
copyInt16asLE(filtersX, mem, filtersX_offset);
|
|
712
|
+
copyInt16asLE(filtersY, mem, filtersY_offset);
|
|
713
|
+
const fn = instance.exports.convolveHV || instance.exports._convolveHV;
|
|
714
|
+
if (!fn) throw new Error("WASM resize function is not available");
|
|
715
|
+
if (hasAlpha(src, srcW, srcH)) fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 1);
|
|
716
|
+
else {
|
|
717
|
+
fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 0);
|
|
718
|
+
resetAlpha(dest, destW, destH);
|
|
719
|
+
}
|
|
720
|
+
new Uint32Array(dest.buffer).set(new Uint32Array(this.__memory.buffer, 0, destH * destW));
|
|
721
|
+
return dest;
|
|
722
|
+
}
|
|
723
|
+
__name(resize_wasm, "resize_wasm");
|
|
724
|
+
var mm_resize_default = {
|
|
725
|
+
name: "resize",
|
|
726
|
+
fn: resize,
|
|
727
|
+
wasm_fn: resize_wasm,
|
|
728
|
+
wasm_src: "AGFzbQEAAAAADAZkeWxpbmsAAAAAAAEYA2AGf39/f39/AGAAAGAIf39/f39/f38AAg8BA2VudgZtZW1vcnkCAAADBwYBAAAAAAIGBgF/AEEACweUAQgRX193YXNtX2NhbGxfY3RvcnMAAAtjb252b2x2ZUhvcgABDGNvbnZvbHZlVmVydAACEmNvbnZvbHZlSG9yV2l0aFByZQADE2NvbnZvbHZlVmVydFdpdGhQcmUABApjb252b2x2ZUhWAAUMX19kc29faGFuZGxlAwAYX193YXNtX2FwcGx5X2RhdGFfcmVsb2NzAAAKyA4GAwABC4wDARB/AkAgA0UNACAERQ0AIANBAnQhFQNAQQAhE0EAIQsDQCALQQJqIQcCfyALQQF0IAVqIgYuAQIiC0UEQEEAIQhBACEGQQAhCUEAIQogBwwBCyASIAYuAQBqIQhBACEJQQAhCiALIRRBACEOIAchBkEAIQ8DQCAFIAZBAXRqLgEAIhAgACAIQQJ0aigCACIRQRh2bCAPaiEPIBFB/wFxIBBsIAlqIQkgEUEQdkH/AXEgEGwgDmohDiARQQh2Qf8BcSAQbCAKaiEKIAhBAWohCCAGQQFqIQYgFEEBayIUDQALIAlBB3UhCCAKQQd1IQYgDkEHdSEJIA9BB3UhCiAHIAtqCyELIAEgDEEBdCIHaiAIQQAgCEEAShs7AQAgASAHQQJyaiAGQQAgBkEAShs7AQAgASAHQQRyaiAJQQAgCUEAShs7AQAgASAHQQZyaiAKQQAgCkEAShs7AQAgDCAVaiEMIBNBAWoiEyAERw0ACyANQQFqIg0gAmwhEiANQQJ0IQwgAyANRw0ACwsL2gMBD38CQCADRQ0AIARFDQAgAkECdCEUA0AgCyEMQQAhE0EAIQIDQCACQQJqIQYCfyACQQF0IAVqIgcuAQIiAkUEQEEAIQhBACEHQQAhCkEAIQkgBgwBCyAHLgEAQQJ0IBJqIQhBACEJIAIhCkEAIQ0gBiEHQQAhDkEAIQ8DQCAFIAdBAXRqLgEAIhAgACAIQQF0IhFqLwEAbCAJaiEJIAAgEUEGcmovAQAgEGwgDmohDiAAIBFBBHJqLwEAIBBsIA9qIQ8gACARQQJyai8BACAQbCANaiENIAhBBGohCCAHQQFqIQcgCkEBayIKDQALIAlBB3UhCCANQQd1IQcgDkEHdSEKIA9BB3UhCSACIAZqCyECIAEgDEECdGogB0GAQGtBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobQQh0QYD+A3EgCUGAQGtBDnUiBkH/ASAGQf8BSBsiBkEAIAZBAEobQRB0QYCA/AdxIApBgEBrQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG0EYdHJyIAhBgEBrQQ51IgZB/wEgBkH/AUgbIgZBACAGQQBKG3I2AgAgAyAMaiEMIBNBAWoiEyAERw0ACyAUIAtBAWoiC2whEiADIAtHDQALCwuSAwEQfwJAIANFDQAgBEUNACADQQJ0IRUDQEEAIRNBACEGA0AgBkECaiEIAn8gBkEBdCAFaiIGLgECIgdFBEBBACEJQQAhDEEAIQ1BACEOIAgMAQsgEiAGLgEAaiEJQQAhDkEAIQ1BACEMIAchFEEAIQ8gCCEGA0AgBSAGQQF0ai4BACAAIAlBAnRqKAIAIhBBGHZsIhEgD2ohDyARIBBBEHZB/wFxbCAMaiEMIBEgEEEIdkH/AXFsIA1qIQ0gESAQQf8BcWwgDmohDiAJQQFqIQkgBkEBaiEGIBRBAWsiFA0ACyAPQQd1IQkgByAIagshBiABIApBAXQiCGogDkH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEECcmogDUH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEEEcmogDEH/AW1BB3UiB0EAIAdBAEobOwEAIAEgCEEGcmogCUEAIAlBAEobOwEAIAogFWohCiATQQFqIhMgBEcNAAsgC0EBaiILIAJsIRIgC0ECdCEKIAMgC0cNAAsLC4IEAQ9/AkAgA0UNACAERQ0AIAJBAnQhFANAIAshDEEAIRJBACEHA0AgB0ECaiEKAn8gB0EBdCAFaiICLgECIhNFBEBBACEIQQAhCUEAIQYgCiEHQQAMAQsgAi4BAEECdCARaiEJQQAhByATIQJBACENIAohBkEAIQ5BACEPA0AgBSAGQQF0ai4BACIIIAAgCUEBdCIQai8BAGwgB2ohByAAIBBBBnJqLwEAIAhsIA5qIQ4gACAQQQRyai8BACAIbCAPaiEPIAAgEEECcmovAQAgCGwgDWohDSAJQQRqIQkgBkEBaiEGIAJBAWsiAg0ACyAHQQd1IQggDUEHdSEJIA9BB3UhBiAKIBNqIQcgDkEHdQtBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKGyIKQf8BcQRAIAlB/wFsIAJtIQkgCEH/AWwgAm0hCCAGQf8BbCACbSEGCyABIAxBAnRqIAlBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKG0EIdEGA/gNxIAZBgEBrQQ51IgJB/wEgAkH/AUgbIgJBACACQQBKG0EQdEGAgPwHcSAKQRh0ciAIQYBAa0EOdSICQf8BIAJB/wFIGyICQQAgAkEAShtycjYCACADIAxqIQwgEkEBaiISIARHDQALIBQgC0EBaiILbCERIAMgC0cNAAsLC0AAIAcEQEEAIAIgAyAEIAUgABADIAJBACAEIAUgBiABEAQPC0EAIAIgAyAEIAUgABABIAJBACAEIAUgBiABEAIL"
|
|
729
|
+
};
|
|
730
|
+
var MathLib = class extends MultiMath {
|
|
731
|
+
static {
|
|
732
|
+
__name(this, "MathLib");
|
|
733
|
+
}
|
|
734
|
+
constructor(requested_features) {
|
|
735
|
+
const __requested_features = requested_features || [];
|
|
736
|
+
const features2 = {
|
|
737
|
+
js: __requested_features.indexOf("js") >= 0,
|
|
738
|
+
wasm: __requested_features.indexOf("wasm") >= 0
|
|
739
|
+
};
|
|
740
|
+
super(features2);
|
|
741
|
+
this.features = {
|
|
742
|
+
js: features2.js,
|
|
743
|
+
wasm: features2.wasm && this.has_wasm()
|
|
744
|
+
};
|
|
745
|
+
this.use(mm_unsharp_mask_default);
|
|
746
|
+
this.use(mm_resize_default);
|
|
747
|
+
}
|
|
748
|
+
resizeAndUnsharp(options) {
|
|
749
|
+
const result = this.resize(options);
|
|
750
|
+
if (options.unsharpAmount) this.unsharp_mask(result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold);
|
|
751
|
+
return result;
|
|
752
|
+
}
|
|
753
|
+
};
|
|
754
|
+
function _typeof(o) {
|
|
755
|
+
"@babel/helpers - typeof";
|
|
756
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o2) {
|
|
757
|
+
return typeof o2;
|
|
758
|
+
} : function(o2) {
|
|
759
|
+
return o2 && "function" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? "symbol" : typeof o2;
|
|
760
|
+
}, _typeof(o);
|
|
761
|
+
}
|
|
762
|
+
__name(_typeof, "_typeof");
|
|
763
|
+
function toPrimitive(t, r) {
|
|
764
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
765
|
+
var e = t[Symbol.toPrimitive];
|
|
766
|
+
if (void 0 !== e) {
|
|
767
|
+
var i = e.call(t, r || "default");
|
|
768
|
+
if ("object" != _typeof(i)) return i;
|
|
769
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
770
|
+
}
|
|
771
|
+
return ("string" === r ? String : Number)(t);
|
|
772
|
+
}
|
|
773
|
+
__name(toPrimitive, "toPrimitive");
|
|
774
|
+
function toPropertyKey(t) {
|
|
775
|
+
var i = toPrimitive(t, "string");
|
|
776
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
777
|
+
}
|
|
778
|
+
__name(toPropertyKey, "toPropertyKey");
|
|
779
|
+
function _defineProperty(e, r, t) {
|
|
780
|
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
781
|
+
value: t,
|
|
782
|
+
enumerable: true,
|
|
783
|
+
configurable: true,
|
|
784
|
+
writable: true
|
|
785
|
+
}) : e[r] = t, e;
|
|
786
|
+
}
|
|
787
|
+
__name(_defineProperty, "_defineProperty");
|
|
788
|
+
function ownKeys(e, r) {
|
|
789
|
+
var t = Object.keys(e);
|
|
790
|
+
if (Object.getOwnPropertySymbols) {
|
|
791
|
+
var o = Object.getOwnPropertySymbols(e);
|
|
792
|
+
r && (o = o.filter(function(r2) {
|
|
793
|
+
return Object.getOwnPropertyDescriptor(e, r2).enumerable;
|
|
794
|
+
})), t.push.apply(t, o);
|
|
795
|
+
}
|
|
796
|
+
return t;
|
|
797
|
+
}
|
|
798
|
+
__name(ownKeys, "ownKeys");
|
|
799
|
+
function _objectSpread2(e) {
|
|
800
|
+
for (var r = 1; r < arguments.length; r++) {
|
|
801
|
+
var t = null != arguments[r] ? arguments[r] : {};
|
|
802
|
+
r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {
|
|
803
|
+
_defineProperty(e, r2, t[r2]);
|
|
804
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {
|
|
805
|
+
Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));
|
|
806
|
+
});
|
|
807
|
+
}
|
|
808
|
+
return e;
|
|
809
|
+
}
|
|
810
|
+
__name(_objectSpread2, "_objectSpread2");
|
|
811
|
+
var GC_INTERVAL = 100;
|
|
812
|
+
var Pool = class {
|
|
813
|
+
static {
|
|
814
|
+
__name(this, "Pool");
|
|
815
|
+
}
|
|
816
|
+
constructor(create, idle) {
|
|
817
|
+
_defineProperty(this, "create", void 0);
|
|
818
|
+
_defineProperty(this, "available", void 0);
|
|
819
|
+
_defineProperty(this, "acquired", void 0);
|
|
820
|
+
_defineProperty(this, "lastId", void 0);
|
|
821
|
+
_defineProperty(this, "timeoutId", void 0);
|
|
822
|
+
_defineProperty(this, "idle", void 0);
|
|
823
|
+
this.create = create;
|
|
824
|
+
this.available = [];
|
|
825
|
+
this.acquired = {};
|
|
826
|
+
this.lastId = 1;
|
|
827
|
+
this.timeoutId = 0;
|
|
828
|
+
this.idle = idle || 2e3;
|
|
829
|
+
}
|
|
830
|
+
acquire() {
|
|
831
|
+
let descriptor;
|
|
832
|
+
if (this.available.length !== 0) descriptor = this.available.pop();
|
|
833
|
+
else descriptor = _objectSpread2(_objectSpread2({}, this.create()), {}, {
|
|
834
|
+
id: this.lastId++,
|
|
835
|
+
lastUsed: 0
|
|
836
|
+
});
|
|
837
|
+
this.acquired[descriptor.id] = descriptor;
|
|
838
|
+
return {
|
|
839
|
+
value: descriptor.value,
|
|
840
|
+
release: /* @__PURE__ */ __name(() => this.release(descriptor), "release")
|
|
841
|
+
};
|
|
842
|
+
}
|
|
843
|
+
release(descriptor) {
|
|
844
|
+
delete this.acquired[descriptor.id];
|
|
845
|
+
descriptor.lastUsed = Date.now();
|
|
846
|
+
this.available.push(descriptor);
|
|
847
|
+
if (this.timeoutId === 0) this.timeoutId = setTimeout(() => this.gc(), GC_INTERVAL);
|
|
848
|
+
}
|
|
849
|
+
gc() {
|
|
850
|
+
const now = Date.now();
|
|
851
|
+
this.available = this.available.filter((descriptor) => {
|
|
852
|
+
if (now - descriptor.lastUsed > this.idle) {
|
|
853
|
+
descriptor.destroy();
|
|
854
|
+
return false;
|
|
855
|
+
}
|
|
856
|
+
return true;
|
|
857
|
+
});
|
|
858
|
+
if (this.available.length !== 0) this.timeoutId = setTimeout(() => this.gc(), GC_INTERVAL);
|
|
859
|
+
else this.timeoutId = 0;
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
function objClass(obj) {
|
|
863
|
+
var _obj$constructor$name, _obj$constructor;
|
|
864
|
+
return (_obj$constructor$name = obj === null || obj === void 0 || (_obj$constructor = obj.constructor) === null || _obj$constructor === void 0 ? void 0 : _obj$constructor.name) !== null && _obj$constructor$name !== void 0 ? _obj$constructor$name : "";
|
|
865
|
+
}
|
|
866
|
+
__name(objClass, "objClass");
|
|
867
|
+
function isCanvas(element) {
|
|
868
|
+
const cname = objClass(element);
|
|
869
|
+
return cname === "HTMLCanvasElement" || cname === "OffscreenCanvas" || cname === "Canvas" || cname === "CanvasElement";
|
|
870
|
+
}
|
|
871
|
+
__name(isCanvas, "isCanvas");
|
|
872
|
+
function isImage(element) {
|
|
873
|
+
return objClass(element) === "HTMLImageElement";
|
|
874
|
+
}
|
|
875
|
+
__name(isImage, "isImage");
|
|
876
|
+
function isImageBitmap(element) {
|
|
877
|
+
return objClass(element) === "ImageBitmap";
|
|
878
|
+
}
|
|
879
|
+
__name(isImageBitmap, "isImageBitmap");
|
|
880
|
+
function limiter(concurrency2) {
|
|
881
|
+
let active = 0;
|
|
882
|
+
const queue = [];
|
|
883
|
+
function roll() {
|
|
884
|
+
if (active < concurrency2 && queue.length) {
|
|
885
|
+
var _queue$shift;
|
|
886
|
+
active++;
|
|
887
|
+
(_queue$shift = queue.shift()) === null || _queue$shift === void 0 || _queue$shift();
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
__name(roll, "roll");
|
|
891
|
+
return /* @__PURE__ */ __name(function limit(fn) {
|
|
892
|
+
return new Promise((resolve, reject) => {
|
|
893
|
+
queue.push(() => {
|
|
894
|
+
fn().then((result) => {
|
|
895
|
+
resolve(result);
|
|
896
|
+
active--;
|
|
897
|
+
roll();
|
|
898
|
+
}, (err) => {
|
|
899
|
+
reject(err);
|
|
900
|
+
active--;
|
|
901
|
+
roll();
|
|
902
|
+
});
|
|
903
|
+
});
|
|
904
|
+
roll();
|
|
905
|
+
});
|
|
906
|
+
}, "limit");
|
|
907
|
+
}
|
|
908
|
+
__name(limiter, "limiter");
|
|
909
|
+
function cib_quality_name(num) {
|
|
910
|
+
switch (num) {
|
|
911
|
+
case 0:
|
|
912
|
+
return "pixelated";
|
|
913
|
+
case 1:
|
|
914
|
+
return "low";
|
|
915
|
+
case 2:
|
|
916
|
+
return "medium";
|
|
917
|
+
}
|
|
918
|
+
return "high";
|
|
919
|
+
}
|
|
920
|
+
__name(cib_quality_name, "cib_quality_name");
|
|
921
|
+
var CIB_QUALITY_FILTERS = [
|
|
922
|
+
"box",
|
|
923
|
+
"hamming",
|
|
924
|
+
"lanczos2",
|
|
925
|
+
"lanczos3"
|
|
926
|
+
];
|
|
927
|
+
function cib_quality_filter(num) {
|
|
928
|
+
return CIB_QUALITY_FILTERS[num];
|
|
929
|
+
}
|
|
930
|
+
__name(cib_quality_filter, "cib_quality_filter");
|
|
931
|
+
function is_cib_filter(filter) {
|
|
932
|
+
return CIB_QUALITY_FILTERS.indexOf(filter) >= 0;
|
|
933
|
+
}
|
|
934
|
+
__name(is_cib_filter, "is_cib_filter");
|
|
935
|
+
function filter_to_cib_quality(filter) {
|
|
936
|
+
const index = CIB_QUALITY_FILTERS.indexOf(filter);
|
|
937
|
+
return index >= 0 ? index : void 0;
|
|
938
|
+
}
|
|
939
|
+
__name(filter_to_cib_quality, "filter_to_cib_quality");
|
|
940
|
+
function createStages(fromWidth, fromHeight, toWidth, toHeight, srcTileSize) {
|
|
941
|
+
const scaleX = toWidth / fromWidth;
|
|
942
|
+
const scaleY = toHeight / fromHeight;
|
|
943
|
+
const minScale = 9 / srcTileSize;
|
|
944
|
+
if (minScale > 0.5) return [[toWidth, toHeight]];
|
|
945
|
+
const stageCount = Math.ceil(Math.log(Math.min(scaleX, scaleY)) / Math.log(minScale));
|
|
946
|
+
if (stageCount <= 1) return [[toWidth, toHeight]];
|
|
947
|
+
const result = [];
|
|
948
|
+
for (let i = 0; i < stageCount; i++) {
|
|
949
|
+
const width = Math.round(Math.pow(Math.pow(fromWidth, stageCount - i - 1) * Math.pow(toWidth, i + 1), 1 / stageCount));
|
|
950
|
+
const height = Math.round(Math.pow(Math.pow(fromHeight, stageCount - i - 1) * Math.pow(toHeight, i + 1), 1 / stageCount));
|
|
951
|
+
result.push([width, height]);
|
|
952
|
+
}
|
|
953
|
+
return result;
|
|
954
|
+
}
|
|
955
|
+
__name(createStages, "createStages");
|
|
956
|
+
var PIXEL_EPSILON = 1e-5;
|
|
957
|
+
function pixelFloor(x) {
|
|
958
|
+
const nearest = Math.round(x);
|
|
959
|
+
if (Math.abs(x - nearest) < PIXEL_EPSILON) return nearest;
|
|
960
|
+
return Math.floor(x);
|
|
961
|
+
}
|
|
962
|
+
__name(pixelFloor, "pixelFloor");
|
|
963
|
+
function pixelCeil(x) {
|
|
964
|
+
const nearest = Math.round(x);
|
|
965
|
+
if (Math.abs(x - nearest) < PIXEL_EPSILON) return nearest;
|
|
966
|
+
return Math.ceil(x);
|
|
967
|
+
}
|
|
968
|
+
__name(pixelCeil, "pixelCeil");
|
|
969
|
+
function createRegions(options) {
|
|
970
|
+
const scaleX = options.toWidth / options.width;
|
|
971
|
+
const scaleY = options.toHeight / options.height;
|
|
972
|
+
const innerTileWidth = pixelFloor(options.srcTileSize * scaleX) - 2 * options.destTileBorder;
|
|
973
|
+
const innerTileHeight = pixelFloor(options.srcTileSize * scaleY) - 2 * options.destTileBorder;
|
|
974
|
+
if (innerTileWidth < 1 || innerTileHeight < 1) throw new Error("Internal error in pica: target tile width/height is too small.");
|
|
975
|
+
let x, y;
|
|
976
|
+
let innerX, innerY, toTileWidth, toTileHeight;
|
|
977
|
+
const tiles = [];
|
|
978
|
+
let tile;
|
|
979
|
+
for (innerY = 0; innerY < options.toHeight; innerY += innerTileHeight) for (innerX = 0; innerX < options.toWidth; innerX += innerTileWidth) {
|
|
980
|
+
x = innerX - options.destTileBorder;
|
|
981
|
+
if (x < 0) x = 0;
|
|
982
|
+
toTileWidth = innerX + innerTileWidth + options.destTileBorder - x;
|
|
983
|
+
if (x + toTileWidth >= options.toWidth) toTileWidth = options.toWidth - x;
|
|
984
|
+
y = innerY - options.destTileBorder;
|
|
985
|
+
if (y < 0) y = 0;
|
|
986
|
+
toTileHeight = innerY + innerTileHeight + options.destTileBorder - y;
|
|
987
|
+
if (y + toTileHeight >= options.toHeight) toTileHeight = options.toHeight - y;
|
|
988
|
+
tile = {
|
|
989
|
+
toX: x,
|
|
990
|
+
toY: y,
|
|
991
|
+
toWidth: toTileWidth,
|
|
992
|
+
toHeight: toTileHeight,
|
|
993
|
+
toInnerX: innerX,
|
|
994
|
+
toInnerY: innerY,
|
|
995
|
+
toInnerWidth: innerTileWidth,
|
|
996
|
+
toInnerHeight: innerTileHeight,
|
|
997
|
+
offsetX: x / scaleX - pixelFloor(x / scaleX),
|
|
998
|
+
offsetY: y / scaleY - pixelFloor(y / scaleY),
|
|
999
|
+
scaleX,
|
|
1000
|
+
scaleY,
|
|
1001
|
+
x: pixelFloor(x / scaleX),
|
|
1002
|
+
y: pixelFloor(y / scaleY),
|
|
1003
|
+
width: pixelCeil(toTileWidth / scaleX),
|
|
1004
|
+
height: pixelCeil(toTileHeight / scaleY)
|
|
1005
|
+
};
|
|
1006
|
+
tiles.push(tile);
|
|
1007
|
+
}
|
|
1008
|
+
return tiles;
|
|
1009
|
+
}
|
|
1010
|
+
__name(createRegions, "createRegions");
|
|
1011
|
+
var ORIENTED_JPEG_BASE64 = "/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/4AAQskZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/wAALCAACAAMBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAACf/EABsQAAMBAQADAAAAAAAAAAAAAAECAwQFABEx/9oACAEBAAA/AC06fW6va0ps7PT179E88MiV02arrCEkjGQZiSEnKc5ovxURVHoADz//2Q==";
|
|
1012
|
+
var features = {
|
|
1013
|
+
canvas: false,
|
|
1014
|
+
offscreen_canvas: false,
|
|
1015
|
+
may_be_worker: false,
|
|
1016
|
+
create_image_bitmap: false,
|
|
1017
|
+
safari_put_image_data_fix: false,
|
|
1018
|
+
bug_canvas_orientation_region: true,
|
|
1019
|
+
bug_image_bitmap_orientation_region: true,
|
|
1020
|
+
cib_resize: false
|
|
1021
|
+
};
|
|
1022
|
+
var checked = false;
|
|
1023
|
+
var checking = null;
|
|
1024
|
+
var ctxOpts$1 = { willReadFrequently: true };
|
|
1025
|
+
function check_canvas() {
|
|
1026
|
+
if (typeof document === "undefined" || !document.createElement) return false;
|
|
1027
|
+
try {
|
|
1028
|
+
const canvas = document.createElement("canvas");
|
|
1029
|
+
canvas.width = 2;
|
|
1030
|
+
canvas.height = 1;
|
|
1031
|
+
const ctx = canvas.getContext("2d", ctxOpts$1);
|
|
1032
|
+
let d = ctx.createImageData(2, 1);
|
|
1033
|
+
d.data[0] = 12;
|
|
1034
|
+
d.data[1] = 23;
|
|
1035
|
+
d.data[2] = 34;
|
|
1036
|
+
d.data[3] = 255;
|
|
1037
|
+
d.data[4] = 45;
|
|
1038
|
+
d.data[5] = 56;
|
|
1039
|
+
d.data[6] = 67;
|
|
1040
|
+
d.data[7] = 255;
|
|
1041
|
+
ctx.putImageData(d, 0, 0);
|
|
1042
|
+
d = ctx.getImageData(0, 0, 2, 1);
|
|
1043
|
+
return d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255;
|
|
1044
|
+
} catch (__) {
|
|
1045
|
+
return false;
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
__name(check_canvas, "check_canvas");
|
|
1049
|
+
function check_offscreen_canvas() {
|
|
1050
|
+
if (typeof OffscreenCanvas === "undefined") return false;
|
|
1051
|
+
try {
|
|
1052
|
+
const ctx = new OffscreenCanvas(2, 1).getContext("2d", ctxOpts$1);
|
|
1053
|
+
let d = ctx.createImageData(2, 1);
|
|
1054
|
+
d.data[0] = 12;
|
|
1055
|
+
d.data[1] = 23;
|
|
1056
|
+
d.data[2] = 34;
|
|
1057
|
+
d.data[3] = 255;
|
|
1058
|
+
d.data[4] = 45;
|
|
1059
|
+
d.data[5] = 56;
|
|
1060
|
+
d.data[6] = 67;
|
|
1061
|
+
d.data[7] = 255;
|
|
1062
|
+
ctx.putImageData(d, 0, 0);
|
|
1063
|
+
d = ctx.getImageData(0, 0, 2, 1);
|
|
1064
|
+
return d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255;
|
|
1065
|
+
} catch (__) {
|
|
1066
|
+
return false;
|
|
1067
|
+
}
|
|
1068
|
+
}
|
|
1069
|
+
__name(check_offscreen_canvas, "check_offscreen_canvas");
|
|
1070
|
+
function check_create_image_bitmap() {
|
|
1071
|
+
return typeof createImageBitmap !== "undefined";
|
|
1072
|
+
}
|
|
1073
|
+
__name(check_create_image_bitmap, "check_create_image_bitmap");
|
|
1074
|
+
function check_may_be_worker() {
|
|
1075
|
+
return typeof Worker !== "undefined" && typeof URL !== "undefined" && !!URL.createObjectURL;
|
|
1076
|
+
}
|
|
1077
|
+
__name(check_may_be_worker, "check_may_be_worker");
|
|
1078
|
+
function check_safari_put_image_data_fix() {
|
|
1079
|
+
try {
|
|
1080
|
+
return !!(typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.indexOf("Safari") >= 0 && navigator.userAgent.indexOf("Chrome") < 0);
|
|
1081
|
+
} catch (__) {
|
|
1082
|
+
return false;
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
__name(check_safari_put_image_data_fix, "check_safari_put_image_data_fix");
|
|
1086
|
+
function check_bug_canvas_orientation_region_async() {
|
|
1087
|
+
return Promise.resolve().then(() => {
|
|
1088
|
+
if (check_offscreen_canvas() && check_create_image_bitmap() && typeof Blob !== "undefined" && typeof atob !== "undefined") {
|
|
1089
|
+
const binary = atob(ORIENTED_JPEG_BASE64);
|
|
1090
|
+
const bytes = new Uint8Array(binary.length);
|
|
1091
|
+
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
1092
|
+
return createImageBitmap(new Blob([bytes], { type: "image/jpeg" })).then((bitmap) => {
|
|
1093
|
+
const canvas = new OffscreenCanvas(1, 1);
|
|
1094
|
+
try {
|
|
1095
|
+
const ctx = canvas.getContext("2d", ctxOpts$1);
|
|
1096
|
+
ctx.drawImage(bitmap, 1, 1, 1, 1, 0, 0, 1, 1);
|
|
1097
|
+
return ctx.getImageData(0, 0, 1, 1).data[0] < 240;
|
|
1098
|
+
} finally {
|
|
1099
|
+
bitmap.close();
|
|
1100
|
+
}
|
|
1101
|
+
});
|
|
1102
|
+
}
|
|
1103
|
+
if (check_canvas() && typeof Image !== "undefined") return new Promise((resolve) => {
|
|
1104
|
+
const image = new Image();
|
|
1105
|
+
image.onload = () => {
|
|
1106
|
+
try {
|
|
1107
|
+
const canvas = document.createElement("canvas");
|
|
1108
|
+
canvas.width = 1;
|
|
1109
|
+
canvas.height = 1;
|
|
1110
|
+
const ctx = canvas.getContext("2d", ctxOpts$1);
|
|
1111
|
+
ctx.drawImage(image, 1, 1, 1, 1, 0, 0, 1, 1);
|
|
1112
|
+
resolve(ctx.getImageData(0, 0, 1, 1).data[0] < 240);
|
|
1113
|
+
} catch (__) {
|
|
1114
|
+
resolve(true);
|
|
1115
|
+
}
|
|
1116
|
+
};
|
|
1117
|
+
image.onerror = () => resolve(true);
|
|
1118
|
+
image.src = `data:image/jpeg;base64,${ORIENTED_JPEG_BASE64}`;
|
|
1119
|
+
});
|
|
1120
|
+
return true;
|
|
1121
|
+
}).catch(() => true);
|
|
1122
|
+
}
|
|
1123
|
+
__name(check_bug_canvas_orientation_region_async, "check_bug_canvas_orientation_region_async");
|
|
1124
|
+
function check_bug_image_bitmap_orientation_region_async() {
|
|
1125
|
+
return Promise.resolve().then(() => {
|
|
1126
|
+
if (!features.create_image_bitmap && !check_create_image_bitmap()) return true;
|
|
1127
|
+
if (typeof Blob === "undefined" || typeof atob === "undefined") return true;
|
|
1128
|
+
const canOffscreenCanvas = check_offscreen_canvas();
|
|
1129
|
+
const canCanvas = check_canvas();
|
|
1130
|
+
if (!canOffscreenCanvas && !canCanvas) return true;
|
|
1131
|
+
const binary = atob(ORIENTED_JPEG_BASE64);
|
|
1132
|
+
const bytes = new Uint8Array(binary.length);
|
|
1133
|
+
for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i);
|
|
1134
|
+
return createImageBitmap(new Blob([bytes], { type: "image/jpeg" })).then((imageBitmap) => createImageBitmap(imageBitmap, 1, 1, 1, 1).then((bitmap) => {
|
|
1135
|
+
let canvas;
|
|
1136
|
+
if (canOffscreenCanvas) canvas = new OffscreenCanvas(1, 1);
|
|
1137
|
+
else {
|
|
1138
|
+
canvas = document.createElement("canvas");
|
|
1139
|
+
canvas.width = 1;
|
|
1140
|
+
canvas.height = 1;
|
|
1141
|
+
}
|
|
1142
|
+
try {
|
|
1143
|
+
const ctx = canvas.getContext("2d", ctxOpts$1);
|
|
1144
|
+
ctx.drawImage(bitmap, 0, 0);
|
|
1145
|
+
return bitmap.width !== 1 || bitmap.height !== 1 || ctx.getImageData(0, 0, 1, 1).data[0] < 240;
|
|
1146
|
+
} finally {
|
|
1147
|
+
imageBitmap.close();
|
|
1148
|
+
bitmap.close();
|
|
1149
|
+
}
|
|
1150
|
+
}, () => {
|
|
1151
|
+
imageBitmap.close();
|
|
1152
|
+
return true;
|
|
1153
|
+
}));
|
|
1154
|
+
}).catch(() => true);
|
|
1155
|
+
}
|
|
1156
|
+
__name(check_bug_image_bitmap_orientation_region_async, "check_bug_image_bitmap_orientation_region_async");
|
|
1157
|
+
function check_cib_resize_async() {
|
|
1158
|
+
return Promise.resolve().then(() => {
|
|
1159
|
+
if (!check_create_image_bitmap()) return false;
|
|
1160
|
+
const SRC_SIZE = 20;
|
|
1161
|
+
const DST_SIZE = 5;
|
|
1162
|
+
let canvas;
|
|
1163
|
+
if (features.canvas || check_canvas()) {
|
|
1164
|
+
canvas = document.createElement("canvas");
|
|
1165
|
+
canvas.width = SRC_SIZE;
|
|
1166
|
+
canvas.height = SRC_SIZE;
|
|
1167
|
+
} else if (features.offscreen_canvas || check_offscreen_canvas()) {
|
|
1168
|
+
canvas = new OffscreenCanvas(SRC_SIZE, SRC_SIZE);
|
|
1169
|
+
canvas.getContext("2d", ctxOpts$1).clearRect(0, 0, SRC_SIZE, SRC_SIZE);
|
|
1170
|
+
} else return false;
|
|
1171
|
+
return createImageBitmap(canvas, 0, 0, SRC_SIZE, SRC_SIZE, {
|
|
1172
|
+
resizeWidth: DST_SIZE,
|
|
1173
|
+
resizeHeight: DST_SIZE,
|
|
1174
|
+
resizeQuality: "high"
|
|
1175
|
+
}).then((bitmap) => {
|
|
1176
|
+
const status = bitmap.width === DST_SIZE && !!bitmap.close;
|
|
1177
|
+
if (bitmap.close) bitmap.close();
|
|
1178
|
+
canvas = null;
|
|
1179
|
+
return status;
|
|
1180
|
+
});
|
|
1181
|
+
}).catch(() => false);
|
|
1182
|
+
}
|
|
1183
|
+
__name(check_cib_resize_async, "check_cib_resize_async");
|
|
1184
|
+
function get_supported_features() {
|
|
1185
|
+
if (checked) return Promise.resolve(Object.assign({}, features));
|
|
1186
|
+
if (checking) return checking.then(() => Object.assign({}, features));
|
|
1187
|
+
features.canvas = check_canvas();
|
|
1188
|
+
features.offscreen_canvas = check_offscreen_canvas();
|
|
1189
|
+
features.may_be_worker = check_may_be_worker();
|
|
1190
|
+
features.create_image_bitmap = check_create_image_bitmap();
|
|
1191
|
+
features.safari_put_image_data_fix = check_safari_put_image_data_fix();
|
|
1192
|
+
const bugCanvasOrientationRegion = check_bug_canvas_orientation_region_async().then((result) => {
|
|
1193
|
+
features.bug_canvas_orientation_region = result;
|
|
1194
|
+
}).catch(() => {
|
|
1195
|
+
});
|
|
1196
|
+
const bugImageBitmapOrientationRegion = check_bug_image_bitmap_orientation_region_async().then((result) => {
|
|
1197
|
+
features.bug_image_bitmap_orientation_region = result;
|
|
1198
|
+
}).catch(() => {
|
|
1199
|
+
});
|
|
1200
|
+
const cibResize = check_cib_resize_async().then((result) => {
|
|
1201
|
+
features.cib_resize = result;
|
|
1202
|
+
}).catch(() => {
|
|
1203
|
+
});
|
|
1204
|
+
checking = Promise.all([
|
|
1205
|
+
bugCanvasOrientationRegion,
|
|
1206
|
+
bugImageBitmapOrientationRegion,
|
|
1207
|
+
cibResize
|
|
1208
|
+
]).then(() => {
|
|
1209
|
+
checked = true;
|
|
1210
|
+
checking = null;
|
|
1211
|
+
return Object.assign({}, features);
|
|
1212
|
+
}, (err) => {
|
|
1213
|
+
checking = null;
|
|
1214
|
+
throw err;
|
|
1215
|
+
});
|
|
1216
|
+
return checking;
|
|
1217
|
+
}
|
|
1218
|
+
__name(get_supported_features, "get_supported_features");
|
|
1219
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) {
|
|
1220
|
+
try {
|
|
1221
|
+
var i = n[a](c), u = i.value;
|
|
1222
|
+
} catch (n2) {
|
|
1223
|
+
e(n2);
|
|
1224
|
+
return;
|
|
1225
|
+
}
|
|
1226
|
+
i.done ? t(u) : Promise.resolve(u).then(r, o);
|
|
1227
|
+
}
|
|
1228
|
+
__name(asyncGeneratorStep, "asyncGeneratorStep");
|
|
1229
|
+
function _asyncToGenerator(n) {
|
|
1230
|
+
return function() {
|
|
1231
|
+
var t = this, e = arguments;
|
|
1232
|
+
return new Promise(function(r, o) {
|
|
1233
|
+
var a = n.apply(t, e);
|
|
1234
|
+
function _next(n2) {
|
|
1235
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "next", n2);
|
|
1236
|
+
}
|
|
1237
|
+
__name(_next, "_next");
|
|
1238
|
+
function _throw(n2) {
|
|
1239
|
+
asyncGeneratorStep(a, r, o, _next, _throw, "throw", n2);
|
|
1240
|
+
}
|
|
1241
|
+
__name(_throw, "_throw");
|
|
1242
|
+
_next(void 0);
|
|
1243
|
+
});
|
|
1244
|
+
};
|
|
1245
|
+
}
|
|
1246
|
+
__name(_asyncToGenerator, "_asyncToGenerator");
|
|
1247
|
+
var WORKER_SRC = '/*!\n\npica\nhttps://github.com/nodeca/pica\n\n*/\n!function(){var A;function t(A){const t=A.replace(/[\\r\\n=]/g,""),e=t.length,n=new Uint8Array(3*e>>2);let a=0,i=0;for(let s=0;s<e;s++)s%4==0&&s&&(n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a),a=a<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s));const r=e%4*6;return 0===r?(n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=255&a):18===r?(n[i++]=a>>10&255,n[i++]=a>>2&255):12===r&&(n[i++]=a>>4&255),n}var e={js:!0,wasm:!0},n=class{constructor(A){const t=Object.assign({},e,A||{});if(this.options=t,this.__cache={},this.__init_promise=null,this.__modules=t.modules||{},this.__memory=null,this.__wasm={},this.__isLE=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0],!this.options.js&&!this.options.wasm)throw new Error(\'mathlib: at least "js" or "wasm" should be enabled\')}has_wasm(){return function(){if(void 0!==A)return A;if(A=!1,"undefined"==typeof WebAssembly)return A;try{const t=new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11]),e=new WebAssembly.Module(t);return 0!==new WebAssembly.Instance(e,{}).exports.test(4)&&(A=!0),A}catch(t){}return A}()}use(A){return this.__modules[A.name]=A,this.options.wasm&&this.has_wasm()&&A.wasm_fn?this[A.name]=A.wasm_fn:this[A.name]=A.fn,this}init(){return this.__init_promise?this.__init_promise:this.options.js||!this.options.wasm||this.has_wasm()?(this.__init_promise=Promise.all(Object.keys(this.__modules).map(A=>{const e=this.__modules[A];return this.options.wasm&&this.has_wasm()&&e.wasm_fn?this.__wasm[A]?null:WebAssembly.compile(t(e.wasm_src)).then(t=>{this.__wasm[A]=t}):null})).then(()=>this),this.__init_promise):Promise.reject(new Error(\'mathlib: only "wasm" was enabled, but it\\\'s not supported\'))}__reallocate(A){if(!this.__memory)return this.__memory=new WebAssembly.Memory({initial:Math.ceil(A/65536)}),this.__memory;const t=this.__memory.buffer.byteLength;return t<A&&this.__memory.grow(Math.ceil((A-t)/65536)),this.__memory}__instance(A,e,n){if(e&&this.__reallocate(e),!this.__wasm[A]){const e=this.__modules[A];this.__wasm[A]=new WebAssembly.Module(t(e.wasm_src))}if(!this.__cache[A]){const t={memoryBase:0,memory:this.__memory,tableBase:0,table:new WebAssembly.Table({initial:0,element:"anyfunc"})};this.__cache[A]=new WebAssembly.Instance(this.__wasm[A],{env:Object.assign(t,n||{})})}return this.__cache[A]}__align(A,t){const e=A%(t=t||8);return A+(e?t-e:0)}};function a(A,t,e,n,a,i){let r,s,o,g,I,h,B,Q,E,C,f,c,u,d;for(E=0;E<i;E++){for(h=E*a,B=E,Q=0,r=A[h],I=r*n[6],g=I,f=n[0],c=n[1],u=n[4],d=n[5],C=0;C<a;C++)s=A[h],o=s*f+r*c+g*u+I*d,I=g,g=o,r=s,e[Q]=g,Q++,h++;for(h--,Q--,B+=i*(a-1),r=A[h],I=r*n[7],g=I,s=r,f=n[2],c=n[3],C=a-1;C>=0;C--)o=s*f+r*c+g*u+I*d,I=g,g=o,r=s,s=A[h],t[B]=e[Q]+g,h--,Q--,B-=i}}function i(A,t,e,n){if(!n)return;const i=new Uint16Array(A.length),r=new Float32Array(Math.max(t,e)),s=function(A){A<.5&&(A=.5);const t=Math.exp(.527076)/A,e=Math.exp(-t),n=Math.exp(-2*t),a=(1-e)*(1-e)/(1+2*t*e-n),i=a*(t-1)*e,r=a*(t+1)*e,s=-a*n,o=2*e,g=-n;return new Float32Array([a,i,r,s,o,g,(a+i)/(1-o-g),(r+s)/(1-o-g)])}(n);a(A,i,r,s,t,e),a(i,A,r,s,e,t)}var r={name:"unsharp_mask",fn:function(A,t,e,n,a,r){let s,o,g,I,h;if(0===n||a<.5)return;a>2&&(a=2);const B=function(A,t,e){const n=t*e,a=new Uint16Array(n);let i,r,s,o;for(let g=0;g<n;g++)i=A[4*g],r=A[4*g+1],s=A[4*g+2],o=i>=r&&i>=s?i:r>=s&&r>=i?r:s,a[g]=o<<8;return a}(A,t,e),Q=new Uint16Array(B);i(Q,t,e,a);const E=n/100*4096+.5|0,C=r<<8,f=t*e;for(let i=0;i<f;i++)s=B[i],I=s-Q[i],Math.abs(I)>=C&&(o=s+(E*I+2048>>12),o=o>65280?65280:o,o=o<0?0:o,s=0!==s?s:1,g=(o<<12)/s|0,h=4*i,A[h]=A[h]*g+2048>>12,A[h+1]=A[h+1]*g+2048>>12,A[h+2]=A[h+2]*g+2048>>12)},wasm_fn:function(A,t,e,n,a,i){if(0===n||a<.5)return;a>2&&(a=2);const r=t*e,s=4*r,o=2*r,g=2*r,I=4*Math.max(t,e),h=s,B=h+o,Q=B+g,E=Q+g,C=E+I,f=this.__instance("unsharp_mask",s+o+2*g+I+32,{exp:Math.exp}),c=new Uint32Array(A.buffer);new Uint32Array(this.__memory.buffer).set(c);let u=f.exports.hsv_v16||f.exports._hsv_v16;if(!u)throw new Error("WASM hsv_v16 function is not available");if(u(0,h,t,e),u=f.exports.blurMono16||f.exports._blurMono16,!u)throw new Error("WASM blurMono16 function is not available");if(u(h,B,Q,E,C,t,e,a),u=f.exports.unsharp||f.exports._unsharp,!u)throw new Error("WASM unsharp function is not available");u(0,0,h,B,t,e,n,i),c.set(new Uint32Array(this.__memory.buffer,0,r))},wasm_src:"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"},s={filter:{box:{win:.5,fn:A=>(A<0&&(A=-A),A<.5?1:0)},hamming:{win:1,fn(A){if(A<0&&(A=-A),A>=1)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*(.54+.46*Math.cos(t/1))}},lanczos2:{win:2,fn(A){if(A<0&&(A=-A),A>=2)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*Math.sin(t/2)/(t/2)}},lanczos3:{win:3,fn(A){if(A<0&&(A=-A),A>=3)return 0;if(A<1.1920929e-7)return 1;const t=A*Math.PI;return Math.sin(t)/t*Math.sin(t/3)/(t/3)}},mks2013:{win:2.5,fn:A=>(A<0&&(A=-A),A>=2.5?0:A>=1.5?-.125*(A-2.5)*(A-2.5):A>=.5?.25*(4*A*A-11*A+7):1.0625-1.75*A*A)}}};function o(A){return Math.round(16383*A)}function g(A,t,e,n,a){const i=s.filter[A].fn,r=1/n,g=Math.min(1,n),I=s.filter[A].win/g;let h,B,Q,E,C,f,c,u,d,l,w,m,y,_,b,D,M;const p=Math.floor(2*(I+1)),G=new Int16Array((p+2)*e);let U=0;const F=!G.subarray||!G.set;for(h=0;h<e;h++){for(B=(h+.5)*r+a,Q=Math.max(0,Math.floor(B-I)),E=Math.min(t-1,Math.ceil(B+I)),C=E-Q+1,f=new Float32Array(C),c=new Int16Array(C),u=0,d=Q,l=0;d<=E;d++,l++)w=i((d+.5-B)*g),u+=w,f[l]=w;for(m=0,l=0;l<f.length;l++)y=f[l]/u,m+=y,c[l]=o(y);for(c[e>>1]+=o(1-m),_=0;_<c.length&&0===c[_];)_++;if(_<c.length){for(b=c.length-1;b>0&&0===c[b];)b--;if(D=Q+_,M=b-_+1,G[U++]=D,G[U++]=M,F)for(l=_;l<=b;l++)G[U++]=c[l];else G.set(c.subarray(_,b+1),U),U+=M}else G[U++]=0,G[U++]=0}return G}function I(A){return A<0?0:A>255?255:A}function h(A){return A>=0?A:0}var B=!0;try{B=1===new Uint32Array(new Uint8Array([1,0,0,0]).buffer)[0]}catch(G){}function Q(A,t,e){if(B)t.set(function(A){return new Uint8Array(A.buffer,0,A.byteLength)}(A),e);else for(let n=e,a=0;a<A.length;a++){const e=A[a];t[n++]=255&e,t[n++]=e>>8&255}}var E={name:"resize",fn:function(A){const t=A.src,e=A.width,n=A.height,a=A.toWidth,i=A.toHeight,r=A.scaleX||A.toWidth/A.width,s=A.scaleY||A.toHeight/A.height,o=A.offsetX||0,B=A.offsetY||0,Q=A.dest||new Uint8Array(a*i*4),E=void 0===A.filter?"mks2013":A.filter,C=g(E,e,a,r,o),f=g(E,n,i,s,B),c=new Uint16Array(a*n*4);return!function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;){if(255!==A[n])return!0;n=n+4|0}return!1}(t,e,n)?(function(A,t,e,n,a,i){let r,s,o,g,I,B,Q,E,C,f,c,u=0,d=0;for(C=0;C<n;C++){for(I=0,f=0;f<a;f++){for(B=i[I++],Q=i[I++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)c=i[I++],g=g+c*A[E+3]|0,o=o+c*A[E+2]|0,s=s+c*A[E+1]|0,r=r+c*A[E]|0,E=E+4|0;t[d+3]=h(g>>7),t[d+2]=h(o>>7),t[d+1]=h(s>>7),t[d]=h(r>>7),d=d+4*n|0}d=4*(C+1)|0,u=(C+1)*e*4|0}}(t,c,e,n,a,C),function(A,t,e,n,a,i){let r,s,o,g,h,B,Q,E,C,f,c,u=0,d=0;for(C=0;C<n;C++){for(h=0,f=0;f<a;f++){for(B=i[h++],Q=i[h++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)c=i[h++],g=g+c*A[E+3]|0,o=o+c*A[E+2]|0,s=s+c*A[E+1]|0,r=r+c*A[E]|0,E=E+4|0;r>>=7,s>>=7,o>>=7,g>>=7,t[d+3]=I(g+8192>>14),t[d+2]=I(o+8192>>14),t[d+1]=I(s+8192>>14),t[d]=I(r+8192>>14),d=d+4*n|0}d=4*(C+1)|0,u=(C+1)*e*4|0}}(c,Q,n,a,i,f),function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;)A[n]=255,n=n+4|0}(Q,a,i)):(function(A,t,e,n,a,i){let r,s,o,g,I,B,Q,E,C,f,c,u,d=0,l=0;for(f=0;f<n;f++){for(B=0,c=0;c<a;c++){for(Q=i[B++],E=i[B++],C=d+4*Q|0,r=s=o=g=0;E>0;E--)u=i[B++],I=A[C+3],g=g+u*I|0,o=o+u*A[C+2]*I|0,s=s+u*A[C+1]*I|0,r=r+u*A[C]*I|0,C=C+4|0;o=o/255|0,s=s/255|0,r=r/255|0,t[l+3]=h(g>>7),t[l+2]=h(o>>7),t[l+1]=h(s>>7),t[l]=h(r>>7),l=l+4*n|0}l=4*(f+1)|0,d=(f+1)*e*4|0}}(t,c,e,n,a,C),function(A,t,e,n,a,i){let r,s,o,g,h,B,Q,E,C,f,c,u=0,d=0;for(C=0;C<n;C++){for(h=0,f=0;f<a;f++){for(B=i[h++],Q=i[h++],E=u+4*B|0,r=s=o=g=0;Q>0;Q--)c=i[h++],g=g+c*A[E+3]|0,o=o+c*A[E+2]|0,s=s+c*A[E+1]|0,r=r+c*A[E]|0,E=E+4|0;r>>=7,s>>=7,o>>=7,g>>=7,g=I(g+8192>>14),g>0&&(r=255*r/g|0,s=255*s/g|0,o=255*o/g|0),t[d+3]=g,t[d+2]=I(o+8192>>14),t[d+1]=I(s+8192>>14),t[d]=I(r+8192>>14),d=d+4*n|0}d=4*(C+1)|0,u=(C+1)*e*4|0}}(c,Q,n,a,i,f)),Q},wasm_fn:function(A){const t=A.src,e=A.width,n=A.height,a=A.toWidth,i=A.toHeight,r=A.scaleX||A.toWidth/A.width,s=A.scaleY||A.toHeight/A.height,o=A.offsetX||0,I=A.offsetY||0,h=A.dest||new Uint8Array(a*i*4),B=void 0===A.filter?"mks2013":A.filter,E=g(B,e,a,r,o),C=g(B,n,i,s,I),f=Math.max(t.byteLength,h.byteLength),c=this.__align(0+f),u=n*a*4*2,d=this.__align(c+u),l=this.__align(d+E.byteLength),w=l+C.byteLength,m=this.__instance("resize",w),y=new Uint8Array(this.__memory.buffer),_=new Uint32Array(this.__memory.buffer),b=new Uint32Array(t.buffer);_.set(b),Q(E,y,d),Q(C,y,l);const D=m.exports.convolveHV||m.exports._convolveHV;if(!D)throw new Error("WASM resize function is not available");return!function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;){if(255!==A[n])return!0;n=n+4|0}return!1}(t,e,n)?(D(d,l,c,e,n,a,i,0),function(A,t,e){let n=3;const a=t*e*4|0;for(;n<a;)A[n]=255,n=n+4|0}(h,a,i)):D(d,l,c,e,n,a,i,1),new Uint32Array(h.buffer).set(new Uint32Array(this.__memory.buffer,0,i*a)),h},wasm_src:"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"},C=class extends n{constructor(A){const t=A||[],e={js:t.indexOf("js")>=0,wasm:t.indexOf("wasm")>=0};super(e),this.features={js:e.js,wasm:e.wasm&&this.has_wasm()},this.use(r),this.use(E)}resizeAndUnsharp(A){const t=this.resize(A);return A.unsharpAmount&&this.unsharp_mask(t,A.toWidth,A.toHeight,A.unsharpAmount,A.unsharpRadius,A.unsharpThreshold),t}},f="/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/4AAQskZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/wAALCAACAAMBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAACf/EABsQAAMBAQADAAAAAAAAAAAAAAECAwQFABEx/9oACAEBAAA/AC06fW6va0ps7PT179E88MiV02arrCEkjGQZiSEnKc5ovxURVHoADz//2Q==",c={canvas:!1,offscreen_canvas:!1,may_be_worker:!1,create_image_bitmap:!1,safari_put_image_data_fix:!1,bug_canvas_orientation_region:!0,bug_image_bitmap_orientation_region:!0,cib_resize:!1},u=!1,d=null,l={willReadFrequently:!0};function w(){if("undefined"==typeof document||!document.createElement)return!1;try{const A=document.createElement("canvas");A.width=2,A.height=1;const t=A.getContext("2d",l);let e=t.createImageData(2,1);return e.data[0]=12,e.data[1]=23,e.data[2]=34,e.data[3]=255,e.data[4]=45,e.data[5]=56,e.data[6]=67,e.data[7]=255,t.putImageData(e,0,0),e=t.getImageData(0,0,2,1),12===e.data[0]&&23===e.data[1]&&34===e.data[2]&&255===e.data[3]&&45===e.data[4]&&56===e.data[5]&&67===e.data[6]&&255===e.data[7]}catch(G){return!1}}function m(){if("undefined"==typeof OffscreenCanvas)return!1;try{const A=new OffscreenCanvas(2,1).getContext("2d",l);let t=A.createImageData(2,1);return t.data[0]=12,t.data[1]=23,t.data[2]=34,t.data[3]=255,t.data[4]=45,t.data[5]=56,t.data[6]=67,t.data[7]=255,A.putImageData(t,0,0),t=A.getImageData(0,0,2,1),12===t.data[0]&&23===t.data[1]&&34===t.data[2]&&255===t.data[3]&&45===t.data[4]&&56===t.data[5]&&67===t.data[6]&&255===t.data[7]}catch(G){return!1}}function y(){return"undefined"!=typeof createImageBitmap}function _(){if(u)return Promise.resolve(Object.assign({},c));if(d)return d.then(()=>Object.assign({},c));c.canvas=w(),c.offscreen_canvas=m(),c.may_be_worker="undefined"!=typeof Worker&&"undefined"!=typeof URL&&!!URL.createObjectURL,c.create_image_bitmap=y(),c.safari_put_image_data_fix=function(){try{return!!("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.indexOf("Safari")>=0&&navigator.userAgent.indexOf("Chrome")<0)}catch(G){return!1}}();const A=Promise.resolve().then(()=>{if(m()&&y()&&"undefined"!=typeof Blob&&"undefined"!=typeof atob){const A=atob(f),t=new Uint8Array(A.length);for(let e=0;e<A.length;e++)t[e]=A.charCodeAt(e);return createImageBitmap(new Blob([t],{type:"image/jpeg"})).then(A=>{const t=new OffscreenCanvas(1,1);try{const e=t.getContext("2d",l);return e.drawImage(A,1,1,1,1,0,0,1,1),e.getImageData(0,0,1,1).data[0]<240}finally{A.close()}})}return!w()||"undefined"==typeof Image||new Promise(A=>{const t=new Image;t.onload=()=>{try{const e=document.createElement("canvas");e.width=1,e.height=1;const n=e.getContext("2d",l);n.drawImage(t,1,1,1,1,0,0,1,1),A(n.getImageData(0,0,1,1).data[0]<240)}catch(G){A(!0)}},t.onerror=()=>A(!0),t.src=`data:image/jpeg;base64,${f}`})}).catch(()=>!0).then(A=>{c.bug_canvas_orientation_region=A}).catch(()=>{}),t=Promise.resolve().then(()=>{if(!c.create_image_bitmap&&!y())return!0;if("undefined"==typeof Blob||"undefined"==typeof atob)return!0;const A=m(),t=w();if(!A&&!t)return!0;const e=atob(f),n=new Uint8Array(e.length);for(let a=0;a<e.length;a++)n[a]=e.charCodeAt(a);return createImageBitmap(new Blob([n],{type:"image/jpeg"})).then(t=>createImageBitmap(t,1,1,1,1).then(e=>{let n;A?n=new OffscreenCanvas(1,1):(n=document.createElement("canvas"),n.width=1,n.height=1);try{const A=n.getContext("2d",l);return A.drawImage(e,0,0),1!==e.width||1!==e.height||A.getImageData(0,0,1,1).data[0]<240}finally{t.close(),e.close()}},()=>(t.close(),!0)))}).catch(()=>!0).then(A=>{c.bug_image_bitmap_orientation_region=A}).catch(()=>{}),e=Promise.resolve().then(()=>{if(!y())return!1;const A=20;let t;if(c.canvas||w())t=document.createElement("canvas"),t.width=A,t.height=A;else{if(!c.offscreen_canvas&&!m())return!1;t=new OffscreenCanvas(A,A),t.getContext("2d",l).clearRect(0,0,A,A)}return createImageBitmap(t,0,0,A,A,{resizeWidth:5,resizeHeight:5,resizeQuality:"high"}).then(A=>{const e=5===A.width&&!!A.close;return A.close&&A.close(),t=null,e})}).catch(()=>!1).then(A=>{c.cib_resize=A}).catch(()=>{});return d=Promise.all([A,t,e]).then(()=>(u=!0,d=null,Object.assign({},c)),A=>{throw d=null,A})}var b=self,D=null;function M(A,t){return D||(D=new C(A.features)),D.resizeAndUnsharp(t)}function p(A){if("bitmap"===A.job.kind)return void function(A,t){let e=new OffscreenCanvas(t.width,t.height);const n=e.getContext("2d",{willReadFrequently:!0});n.drawImage(t.src,0,0);const a=n.getImageData(0,0,t.width,t.height).data;e.width=e.height=0,e=null,t.src.close();const i=M(A,{src:a,width:t.width,height:t.height,toWidth:t.toWidth,toHeight:t.toHeight,scaleX:t.scaleX,scaleY:t.scaleY,offsetX:t.offsetX,offsetY:t.offsetY,filter:t.filter,unsharpAmount:t.unsharpAmount,unsharpRadius:t.unsharpRadius,unsharpThreshold:t.unsharpThreshold});b.postMessage({kind:"array",data:i},[i.buffer])}(A,A.job);const t=M(A,A.job);b.postMessage({kind:"array",data:t},[t.buffer])}b.onmessage=function(A){Promise.resolve().then(()=>function(A){switch(A.method){case"get_supported_features":return _().then(A=>{b.postMessage({data:A})});case"resize":return p(A),Promise.resolve();default:return Promise.reject(new Error(`Unknown worker method: ${A.method}`))}}(A.data)).catch(A=>{b.postMessage({err:A})})}}();\n//# sourceURL=pica-inline-worker.js';
|
|
1248
|
+
var concurrency = 1;
|
|
1249
|
+
if (typeof navigator !== "undefined") concurrency = Math.min(navigator.hardwareConcurrency || 1, 4);
|
|
1250
|
+
var DEFAULT_PICA_OPTS = {
|
|
1251
|
+
tile: 1024,
|
|
1252
|
+
concurrency,
|
|
1253
|
+
features: [
|
|
1254
|
+
"js",
|
|
1255
|
+
"wasm",
|
|
1256
|
+
"ww"
|
|
1257
|
+
],
|
|
1258
|
+
idle: 2e3
|
|
1259
|
+
};
|
|
1260
|
+
var DEFAULT_RESIZE_OPTS = {
|
|
1261
|
+
filter: "mks2013",
|
|
1262
|
+
unsharpAmount: 0,
|
|
1263
|
+
unsharpRadius: 0,
|
|
1264
|
+
unsharpThreshold: 0
|
|
1265
|
+
};
|
|
1266
|
+
var ctxOpts = { willReadFrequently: true };
|
|
1267
|
+
var Pica = class {
|
|
1268
|
+
static {
|
|
1269
|
+
__name(this, "Pica");
|
|
1270
|
+
}
|
|
1271
|
+
constructor(options) {
|
|
1272
|
+
_defineProperty(this, "options", void 0);
|
|
1273
|
+
_defineProperty(this, "__limit", void 0);
|
|
1274
|
+
_defineProperty(this, "resize_features", void 0);
|
|
1275
|
+
_defineProperty(this, "__workersPool", void 0);
|
|
1276
|
+
_defineProperty(this, "capabilities", void 0);
|
|
1277
|
+
_defineProperty(this, "__requested_features", void 0);
|
|
1278
|
+
_defineProperty(this, "__mathlib", void 0);
|
|
1279
|
+
_defineProperty(this, "__initPromise", void 0);
|
|
1280
|
+
this.options = Object.assign({}, DEFAULT_PICA_OPTS, options || {});
|
|
1281
|
+
if ((this.options.features.indexOf("ww") >= 0 || this.options.features.indexOf("all") >= 0) && !this.options.workerURL && false) ;
|
|
1282
|
+
this.__limit = limiter(this.options.concurrency);
|
|
1283
|
+
this.resize_features = {
|
|
1284
|
+
js: false,
|
|
1285
|
+
wasm: false,
|
|
1286
|
+
cib: false,
|
|
1287
|
+
ww: false
|
|
1288
|
+
};
|
|
1289
|
+
this.__workersPool = null;
|
|
1290
|
+
this.capabilities = {
|
|
1291
|
+
worker: false,
|
|
1292
|
+
ww_offscreen_canvas: false,
|
|
1293
|
+
canvas: false,
|
|
1294
|
+
offscreen_canvas: false,
|
|
1295
|
+
may_be_worker: false,
|
|
1296
|
+
create_image_bitmap: false,
|
|
1297
|
+
safari_put_image_data_fix: false,
|
|
1298
|
+
bug_canvas_orientation_region: true,
|
|
1299
|
+
bug_image_bitmap_orientation_region: true,
|
|
1300
|
+
cib_resize: false
|
|
1301
|
+
};
|
|
1302
|
+
this.__requested_features = [];
|
|
1303
|
+
this.__mathlib = null;
|
|
1304
|
+
}
|
|
1305
|
+
init() {
|
|
1306
|
+
if (this.__initPromise) return this.__initPromise;
|
|
1307
|
+
this.__initPromise = this.__init();
|
|
1308
|
+
return this.__initPromise;
|
|
1309
|
+
}
|
|
1310
|
+
__init() {
|
|
1311
|
+
var _this = this;
|
|
1312
|
+
return _asyncToGenerator(function* () {
|
|
1313
|
+
let features2 = _this.options.features.slice();
|
|
1314
|
+
if (features2.indexOf("all") >= 0) features2 = [
|
|
1315
|
+
"cib",
|
|
1316
|
+
"wasm",
|
|
1317
|
+
"js",
|
|
1318
|
+
"ww"
|
|
1319
|
+
];
|
|
1320
|
+
_this.__requested_features = features2;
|
|
1321
|
+
_this.__mathlib = new MathLib(features2);
|
|
1322
|
+
const result = yield get_supported_features();
|
|
1323
|
+
Object.assign(_this.capabilities, result);
|
|
1324
|
+
if (_this.capabilities.cib_resize && features2.indexOf("cib") >= 0) _this.resize_features.cib = true;
|
|
1325
|
+
if (_this.capabilities.may_be_worker && features2.indexOf("ww") >= 0 && WORKER_SRC) _this.__workersPool = new Pool(() => _this.__createWorkerSlot(), _this.options.idle);
|
|
1326
|
+
if (_this.__workersPool) try {
|
|
1327
|
+
const result2 = yield _this.__invokeWorker("get_supported_features");
|
|
1328
|
+
const resultData = result2 && result2.data;
|
|
1329
|
+
if (resultData) {
|
|
1330
|
+
_this.capabilities.worker = true;
|
|
1331
|
+
_this.resize_features.ww = true;
|
|
1332
|
+
_this.capabilities.ww_offscreen_canvas = !!resultData.offscreen_canvas;
|
|
1333
|
+
}
|
|
1334
|
+
} catch (__) {
|
|
1335
|
+
}
|
|
1336
|
+
const mathlib = yield _this.__mathlib.init();
|
|
1337
|
+
Object.assign(_this.resize_features, mathlib.features);
|
|
1338
|
+
return _this;
|
|
1339
|
+
})();
|
|
1340
|
+
}
|
|
1341
|
+
createCanvas(width, height, preferOffscreen) {
|
|
1342
|
+
if (preferOffscreen && this.capabilities.offscreen_canvas) return new OffscreenCanvas(width, height);
|
|
1343
|
+
if (this.capabilities.canvas) {
|
|
1344
|
+
const canvas = document.createElement("canvas");
|
|
1345
|
+
canvas.width = width;
|
|
1346
|
+
canvas.height = height;
|
|
1347
|
+
return canvas;
|
|
1348
|
+
}
|
|
1349
|
+
if (this.capabilities.ww_offscreen_canvas) return new OffscreenCanvas(width, height);
|
|
1350
|
+
throw new Error("Pica: cannot create canvas");
|
|
1351
|
+
}
|
|
1352
|
+
__createWorkerSlot() {
|
|
1353
|
+
if (this.options.workerURL) {
|
|
1354
|
+
const worker = new Worker(String(this.options.workerURL));
|
|
1355
|
+
return {
|
|
1356
|
+
value: worker,
|
|
1357
|
+
destroy() {
|
|
1358
|
+
worker.terminate();
|
|
1359
|
+
}
|
|
1360
|
+
};
|
|
1361
|
+
}
|
|
1362
|
+
{
|
|
1363
|
+
const objectURL = window.URL.createObjectURL(new Blob([WORKER_SRC], { type: "text/javascript" }));
|
|
1364
|
+
const worker = new Worker(objectURL);
|
|
1365
|
+
return {
|
|
1366
|
+
value: worker,
|
|
1367
|
+
destroy() {
|
|
1368
|
+
worker.terminate();
|
|
1369
|
+
if (typeof window !== "undefined") {
|
|
1370
|
+
var _window$URL, _window$URL$revokeObj;
|
|
1371
|
+
(_window$URL = window.URL) === null || _window$URL === void 0 || (_window$URL$revokeObj = _window$URL.revokeObjectURL) === null || _window$URL$revokeObj === void 0 || _window$URL$revokeObj.call(_window$URL, objectURL);
|
|
1372
|
+
}
|
|
1373
|
+
}
|
|
1374
|
+
};
|
|
1375
|
+
}
|
|
1376
|
+
}
|
|
1377
|
+
__invokeWorker(method, payload, transfer, opts) {
|
|
1378
|
+
return new Promise((resolve, reject) => {
|
|
1379
|
+
const w = this.__workersPool.acquire();
|
|
1380
|
+
if (opts && opts.cancelToken) opts.cancelToken.catch((err) => reject(err));
|
|
1381
|
+
w.value.onmessage = (ev) => {
|
|
1382
|
+
w.release();
|
|
1383
|
+
if (ev.data.err) reject(ev.data.err);
|
|
1384
|
+
else resolve(ev.data);
|
|
1385
|
+
};
|
|
1386
|
+
w.value.postMessage(Object.assign({ method }, payload || {}), transfer || []);
|
|
1387
|
+
});
|
|
1388
|
+
}
|
|
1389
|
+
__invokeResize(tileJob, ctx) {
|
|
1390
|
+
var _this2 = this;
|
|
1391
|
+
return _asyncToGenerator(function* () {
|
|
1392
|
+
yield Promise.resolve();
|
|
1393
|
+
if (!_this2.resize_features.ww) {
|
|
1394
|
+
if (tileJob.kind !== "array") throw new Error("Pica: resize tile data is missing");
|
|
1395
|
+
const mathOpts = {
|
|
1396
|
+
src: tileJob.src,
|
|
1397
|
+
width: tileJob.width,
|
|
1398
|
+
height: tileJob.height,
|
|
1399
|
+
toWidth: tileJob.toWidth,
|
|
1400
|
+
toHeight: tileJob.toHeight,
|
|
1401
|
+
scaleX: tileJob.scaleX,
|
|
1402
|
+
scaleY: tileJob.scaleY,
|
|
1403
|
+
offsetX: tileJob.offsetX,
|
|
1404
|
+
offsetY: tileJob.offsetY,
|
|
1405
|
+
filter: tileJob.filter,
|
|
1406
|
+
unsharpAmount: tileJob.unsharpAmount,
|
|
1407
|
+
unsharpRadius: tileJob.unsharpRadius,
|
|
1408
|
+
unsharpThreshold: tileJob.unsharpThreshold
|
|
1409
|
+
};
|
|
1410
|
+
return {
|
|
1411
|
+
kind: "array",
|
|
1412
|
+
data: _this2.__mathlib.resizeAndUnsharp(mathOpts)
|
|
1413
|
+
};
|
|
1414
|
+
}
|
|
1415
|
+
const transfer = [];
|
|
1416
|
+
if (tileJob.kind === "array") transfer.push(tileJob.src.buffer);
|
|
1417
|
+
else transfer.push(tileJob.src);
|
|
1418
|
+
return _this2.__invokeWorker("resize", {
|
|
1419
|
+
job: tileJob,
|
|
1420
|
+
features: _this2.__requested_features
|
|
1421
|
+
}, transfer, ctx);
|
|
1422
|
+
})();
|
|
1423
|
+
}
|
|
1424
|
+
__extractTileData(tile, from, stageEnv, extractTo) {
|
|
1425
|
+
if (this.resize_features.ww && this.capabilities.ww_offscreen_canvas) {
|
|
1426
|
+
this.debug("Create tile imageBitmap");
|
|
1427
|
+
const tileCanvas = this.createCanvas(tile.width, tile.height, { preferOffscreen: true });
|
|
1428
|
+
tileCanvas.getContext("2d", ctxOpts).drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);
|
|
1429
|
+
if (!("transferToImageBitmap" in tileCanvas)) throw new Error("Pica: offscreen canvas is not available for worker transfer");
|
|
1430
|
+
return Object.assign({}, extractTo, {
|
|
1431
|
+
kind: "bitmap",
|
|
1432
|
+
src: tileCanvas.transferToImageBitmap()
|
|
1433
|
+
});
|
|
1434
|
+
}
|
|
1435
|
+
if (isCanvas(from)) {
|
|
1436
|
+
if (!stageEnv.srcCtx) stageEnv.srcCtx = from.getContext("2d", ctxOpts);
|
|
1437
|
+
this.debug("Get tile pixel data");
|
|
1438
|
+
return Object.assign({}, extractTo, {
|
|
1439
|
+
kind: "array",
|
|
1440
|
+
src: stageEnv.srcCtx.getImageData(tile.x, tile.y, tile.width, tile.height).data
|
|
1441
|
+
});
|
|
1442
|
+
}
|
|
1443
|
+
this.debug("Draw tile imageBitmap/image to temporary canvas");
|
|
1444
|
+
const tmpCanvas = this.createCanvas(tile.width, tile.height, { preferOffscreen: true });
|
|
1445
|
+
const tmpCtx = tmpCanvas.getContext("2d", ctxOpts);
|
|
1446
|
+
tmpCtx.globalCompositeOperation = "copy";
|
|
1447
|
+
tmpCtx.drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);
|
|
1448
|
+
this.debug("Get tile pixel data");
|
|
1449
|
+
const src = tmpCtx.getImageData(0, 0, tile.width, tile.height).data;
|
|
1450
|
+
tmpCanvas.width = tmpCanvas.height = 0;
|
|
1451
|
+
return Object.assign({}, extractTo, {
|
|
1452
|
+
kind: "array",
|
|
1453
|
+
src
|
|
1454
|
+
});
|
|
1455
|
+
}
|
|
1456
|
+
__landTileData(tile, result, stageEnv) {
|
|
1457
|
+
if (result.kind === "bitmap") {
|
|
1458
|
+
stageEnv.toCtx.drawImage(result.data, tile.toX, tile.toY);
|
|
1459
|
+
result.data.close();
|
|
1460
|
+
return null;
|
|
1461
|
+
}
|
|
1462
|
+
this.debug("Draw tile");
|
|
1463
|
+
const toImageData = stageEnv.toCtx.createImageData(tile.toWidth, tile.toHeight);
|
|
1464
|
+
toImageData.data.set(result.data);
|
|
1465
|
+
if (this.capabilities.safari_put_image_data_fix) stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth + 1e-5, tile.toInnerHeight + 1e-5);
|
|
1466
|
+
else stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth, tile.toInnerHeight);
|
|
1467
|
+
return null;
|
|
1468
|
+
}
|
|
1469
|
+
__tileAndResize(from, to, resizeParams, ctx) {
|
|
1470
|
+
var _this3 = this;
|
|
1471
|
+
return _asyncToGenerator(function* () {
|
|
1472
|
+
const stageEnv = {
|
|
1473
|
+
srcCtx: null,
|
|
1474
|
+
srcImageBitmap: null,
|
|
1475
|
+
isImageBitmapReused: false,
|
|
1476
|
+
toCtx: null
|
|
1477
|
+
};
|
|
1478
|
+
const processTile = /* @__PURE__ */ __name((tile) => _this3.__limit(_asyncToGenerator(function* () {
|
|
1479
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1480
|
+
const tileJob = {
|
|
1481
|
+
width: tile.width,
|
|
1482
|
+
height: tile.height,
|
|
1483
|
+
toWidth: tile.toWidth,
|
|
1484
|
+
toHeight: tile.toHeight,
|
|
1485
|
+
scaleX: tile.scaleX,
|
|
1486
|
+
scaleY: tile.scaleY,
|
|
1487
|
+
offsetX: tile.offsetX,
|
|
1488
|
+
offsetY: tile.offsetY,
|
|
1489
|
+
filter: resizeParams.filter,
|
|
1490
|
+
unsharpAmount: resizeParams.unsharpAmount,
|
|
1491
|
+
unsharpRadius: resizeParams.unsharpRadius,
|
|
1492
|
+
unsharpThreshold: resizeParams.unsharpThreshold
|
|
1493
|
+
};
|
|
1494
|
+
_this3.debug("Invoke resize math");
|
|
1495
|
+
const extractedTileJob = yield _this3.__extractTileData(tile, from, stageEnv, tileJob);
|
|
1496
|
+
_this3.debug("Invoke resize math");
|
|
1497
|
+
const result = yield _this3.__invokeResize(extractedTileJob, ctx);
|
|
1498
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1499
|
+
return _this3.__landTileData(tile, result, stageEnv);
|
|
1500
|
+
})), "processTile");
|
|
1501
|
+
yield Promise.resolve();
|
|
1502
|
+
stageEnv.toCtx = to.getContext("2d", ctxOpts);
|
|
1503
|
+
if (isCanvas(from)) {
|
|
1504
|
+
} else if (isImageBitmap(from)) {
|
|
1505
|
+
stageEnv.srcImageBitmap = from;
|
|
1506
|
+
stageEnv.isImageBitmapReused = true;
|
|
1507
|
+
} else if (isImage(from)) {
|
|
1508
|
+
if (_this3.capabilities.create_image_bitmap) {
|
|
1509
|
+
_this3.debug("Decode image via createImageBitmap");
|
|
1510
|
+
try {
|
|
1511
|
+
stageEnv.srcImageBitmap = yield createImageBitmap(from);
|
|
1512
|
+
} catch (__) {
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
} else throw new Error('Pica: ".from" should be Image, Canvas or ImageBitmap');
|
|
1516
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1517
|
+
_this3.debug("Calculate tiles");
|
|
1518
|
+
const jobs = createRegions({
|
|
1519
|
+
width: resizeParams.width,
|
|
1520
|
+
height: resizeParams.height,
|
|
1521
|
+
srcTileSize: _this3.options.tile,
|
|
1522
|
+
toWidth: resizeParams.toWidth,
|
|
1523
|
+
toHeight: resizeParams.toHeight,
|
|
1524
|
+
destTileBorder: Math.ceil(Math.max(3, 2.5 * resizeParams.unsharpRadius | 0))
|
|
1525
|
+
}).map((tile) => processTile(tile));
|
|
1526
|
+
function cleanup(stageEnv2) {
|
|
1527
|
+
if (stageEnv2.srcImageBitmap) {
|
|
1528
|
+
if (!stageEnv2.isImageBitmapReused) stageEnv2.srcImageBitmap.close();
|
|
1529
|
+
stageEnv2.srcImageBitmap = null;
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
__name(cleanup, "cleanup");
|
|
1533
|
+
_this3.debug("Process tiles");
|
|
1534
|
+
try {
|
|
1535
|
+
yield Promise.all(jobs);
|
|
1536
|
+
_this3.debug("Finished!");
|
|
1537
|
+
cleanup(stageEnv);
|
|
1538
|
+
return to;
|
|
1539
|
+
} catch (err) {
|
|
1540
|
+
cleanup(stageEnv);
|
|
1541
|
+
throw err;
|
|
1542
|
+
}
|
|
1543
|
+
})();
|
|
1544
|
+
}
|
|
1545
|
+
__planStagesAndResize(from, to, resizeParams, ctx) {
|
|
1546
|
+
var _this4 = this;
|
|
1547
|
+
return _asyncToGenerator(function* () {
|
|
1548
|
+
let src = from;
|
|
1549
|
+
let srcWidth = resizeParams.width;
|
|
1550
|
+
let srcHeight = resizeParams.height;
|
|
1551
|
+
const stages = createStages(resizeParams.width, resizeParams.height, resizeParams.toWidth, resizeParams.toHeight, _this4.options.tile);
|
|
1552
|
+
while (stages.length > 0) {
|
|
1553
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1554
|
+
const [toWidth, toHeight] = stages.shift();
|
|
1555
|
+
const isLastStage = stages.length === 0;
|
|
1556
|
+
let filter;
|
|
1557
|
+
if (isLastStage || !is_cib_filter(resizeParams.filter)) filter = resizeParams.filter;
|
|
1558
|
+
else if (resizeParams.filter === "box") filter = "box";
|
|
1559
|
+
else filter = "hamming";
|
|
1560
|
+
const stageParams = _objectSpread2(_objectSpread2({}, resizeParams), {}, {
|
|
1561
|
+
filter,
|
|
1562
|
+
width: srcWidth,
|
|
1563
|
+
height: srcHeight,
|
|
1564
|
+
toWidth,
|
|
1565
|
+
toHeight
|
|
1566
|
+
});
|
|
1567
|
+
const dest = isLastStage ? to : _this4.createCanvas(toWidth, toHeight, { preferOffscreen: true });
|
|
1568
|
+
const prevTmp = src !== from ? src : void 0;
|
|
1569
|
+
try {
|
|
1570
|
+
yield _this4.__tileAndResize(src, dest, stageParams, ctx);
|
|
1571
|
+
} finally {
|
|
1572
|
+
if (prevTmp) prevTmp.width = prevTmp.height = 0;
|
|
1573
|
+
}
|
|
1574
|
+
src = dest;
|
|
1575
|
+
srcWidth = toWidth;
|
|
1576
|
+
srcHeight = toHeight;
|
|
1577
|
+
}
|
|
1578
|
+
return to;
|
|
1579
|
+
})();
|
|
1580
|
+
}
|
|
1581
|
+
__resizeViaCreateImageBitmap(from, to, resizeParams, ctx) {
|
|
1582
|
+
var _this5 = this;
|
|
1583
|
+
return _asyncToGenerator(function* () {
|
|
1584
|
+
var _utils$filter_to_cib_;
|
|
1585
|
+
let toCtx = to.getContext("2d", ctxOpts);
|
|
1586
|
+
_this5.debug("Resize via createImageBitmap()");
|
|
1587
|
+
const imageBitmap = yield createImageBitmap(from, {
|
|
1588
|
+
resizeWidth: resizeParams.toWidth,
|
|
1589
|
+
resizeHeight: resizeParams.toHeight,
|
|
1590
|
+
resizeQuality: cib_quality_name((_utils$filter_to_cib_ = filter_to_cib_quality(resizeParams.filter)) !== null && _utils$filter_to_cib_ !== void 0 ? _utils$filter_to_cib_ : 3)
|
|
1591
|
+
});
|
|
1592
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1593
|
+
if (!resizeParams.unsharpAmount) {
|
|
1594
|
+
toCtx.drawImage(imageBitmap, 0, 0);
|
|
1595
|
+
imageBitmap.close();
|
|
1596
|
+
toCtx = null;
|
|
1597
|
+
_this5.debug("Finished!");
|
|
1598
|
+
return to;
|
|
1599
|
+
}
|
|
1600
|
+
_this5.debug("Unsharp result");
|
|
1601
|
+
let tmpCanvas = _this5.createCanvas(resizeParams.toWidth, resizeParams.toHeight);
|
|
1602
|
+
let tmpCtx = tmpCanvas.getContext("2d", ctxOpts);
|
|
1603
|
+
tmpCtx.drawImage(imageBitmap, 0, 0);
|
|
1604
|
+
imageBitmap.close();
|
|
1605
|
+
let iData = tmpCtx.getImageData(0, 0, resizeParams.toWidth, resizeParams.toHeight);
|
|
1606
|
+
_this5.__mathlib.unsharp_mask(iData.data, resizeParams.toWidth, resizeParams.toHeight, resizeParams.unsharpAmount, resizeParams.unsharpRadius, resizeParams.unsharpThreshold);
|
|
1607
|
+
toCtx.putImageData(iData, 0, 0);
|
|
1608
|
+
tmpCanvas.width = tmpCanvas.height = 0;
|
|
1609
|
+
iData = tmpCtx = tmpCanvas = toCtx = null;
|
|
1610
|
+
_this5.debug("Finished!");
|
|
1611
|
+
return to;
|
|
1612
|
+
})();
|
|
1613
|
+
}
|
|
1614
|
+
resize(from, to, options) {
|
|
1615
|
+
var _this6 = this;
|
|
1616
|
+
return _asyncToGenerator(function* () {
|
|
1617
|
+
_this6.debug("Start resize...");
|
|
1618
|
+
const requested = {};
|
|
1619
|
+
if (options) Object.assign(requested, options);
|
|
1620
|
+
let filter = requested.filter || DEFAULT_RESIZE_OPTS.filter;
|
|
1621
|
+
if (Object.prototype.hasOwnProperty.call(requested, "quality")) {
|
|
1622
|
+
const quality = requested.quality;
|
|
1623
|
+
if (typeof quality !== "number" || quality < 0 || quality > 3) throw new Error(`Pica: .quality should be [0..3], got ${quality}`);
|
|
1624
|
+
filter = cib_quality_filter(quality);
|
|
1625
|
+
}
|
|
1626
|
+
const resizeParams = {
|
|
1627
|
+
filter,
|
|
1628
|
+
unsharpAmount: requested.unsharpAmount || DEFAULT_RESIZE_OPTS.unsharpAmount,
|
|
1629
|
+
unsharpRadius: requested.unsharpRadius || DEFAULT_RESIZE_OPTS.unsharpRadius,
|
|
1630
|
+
unsharpThreshold: requested.unsharpThreshold || DEFAULT_RESIZE_OPTS.unsharpThreshold,
|
|
1631
|
+
width: isImage(from) ? from.naturalWidth : from.width,
|
|
1632
|
+
height: isImage(from) ? from.naturalHeight : from.height,
|
|
1633
|
+
toWidth: to.width,
|
|
1634
|
+
toHeight: to.height
|
|
1635
|
+
};
|
|
1636
|
+
if (resizeParams.unsharpRadius > 2) resizeParams.unsharpRadius = 2;
|
|
1637
|
+
if (to.width === 0 || to.height === 0) return Promise.reject(/* @__PURE__ */ new Error(`Invalid output size: ${to.width}x${to.height}`));
|
|
1638
|
+
const ctx = {
|
|
1639
|
+
cancelToken: requested.cancelToken,
|
|
1640
|
+
canceled: false
|
|
1641
|
+
};
|
|
1642
|
+
if (ctx.cancelToken) ctx.cancelToken = ctx.cancelToken.then((data) => {
|
|
1643
|
+
ctx.canceled = true;
|
|
1644
|
+
throw data;
|
|
1645
|
+
}, (err) => {
|
|
1646
|
+
ctx.canceled = true;
|
|
1647
|
+
throw err;
|
|
1648
|
+
});
|
|
1649
|
+
yield _this6.init();
|
|
1650
|
+
if (ctx.canceled) return ctx.cancelToken;
|
|
1651
|
+
if (_this6.capabilities.bug_image_bitmap_orientation_region && (isImage(from) || isImageBitmap(from))) {
|
|
1652
|
+
const tmpCanvas = _this6.createCanvas(resizeParams.width, resizeParams.height);
|
|
1653
|
+
tmpCanvas.getContext("2d", ctxOpts).drawImage(from, 0, 0);
|
|
1654
|
+
from = tmpCanvas;
|
|
1655
|
+
}
|
|
1656
|
+
if (_this6.resize_features.cib) {
|
|
1657
|
+
if (is_cib_filter(resizeParams.filter)) return _this6.__resizeViaCreateImageBitmap(from, to, resizeParams, ctx);
|
|
1658
|
+
_this6.debug("cib is enabled, but not supports provided filter, fallback to manual math");
|
|
1659
|
+
}
|
|
1660
|
+
if (!_this6.capabilities.canvas && !_this6.capabilities.offscreen_canvas) {
|
|
1661
|
+
const err = /* @__PURE__ */ new Error("Pica: cannot use getImageData on canvas, make sure fingerprinting protection isn't enabled");
|
|
1662
|
+
err.code = "ERR_GET_IMAGE_DATA";
|
|
1663
|
+
throw err;
|
|
1664
|
+
}
|
|
1665
|
+
return _this6.__planStagesAndResize(from, to, resizeParams, ctx);
|
|
1666
|
+
})();
|
|
1667
|
+
}
|
|
1668
|
+
resizeBuffer(options) {
|
|
1669
|
+
var _this7 = this;
|
|
1670
|
+
return _asyncToGenerator(function* () {
|
|
1671
|
+
const opts = Object.assign({}, DEFAULT_RESIZE_OPTS, options);
|
|
1672
|
+
if (Object.prototype.hasOwnProperty.call(opts, "quality")) {
|
|
1673
|
+
const quality = opts.quality;
|
|
1674
|
+
if (typeof quality !== "number" || quality < 0 || quality > 3) throw new Error(`Pica: .quality should be [0..3], got ${quality}`);
|
|
1675
|
+
opts.filter = cib_quality_filter(quality);
|
|
1676
|
+
}
|
|
1677
|
+
yield _this7.init();
|
|
1678
|
+
if (!_this7.__mathlib) throw new Error("Pica: math library is not initialized");
|
|
1679
|
+
const mathOpts = {
|
|
1680
|
+
src: opts.src,
|
|
1681
|
+
width: opts.width,
|
|
1682
|
+
height: opts.height,
|
|
1683
|
+
toWidth: opts.toWidth,
|
|
1684
|
+
toHeight: opts.toHeight,
|
|
1685
|
+
dest: opts.dest,
|
|
1686
|
+
scaleX: opts.toWidth / opts.width,
|
|
1687
|
+
scaleY: opts.toHeight / opts.height,
|
|
1688
|
+
offsetX: 0,
|
|
1689
|
+
offsetY: 0,
|
|
1690
|
+
filter: opts.filter,
|
|
1691
|
+
unsharpAmount: opts.unsharpAmount,
|
|
1692
|
+
unsharpRadius: opts.unsharpRadius,
|
|
1693
|
+
unsharpThreshold: opts.unsharpThreshold
|
|
1694
|
+
};
|
|
1695
|
+
return _this7.__mathlib.resizeAndUnsharp(mathOpts);
|
|
1696
|
+
})();
|
|
1697
|
+
}
|
|
1698
|
+
toBlob(canvas, mimeType, quality) {
|
|
1699
|
+
return _asyncToGenerator(function* () {
|
|
1700
|
+
mimeType = mimeType || "image/png";
|
|
1701
|
+
if ("toBlob" in canvas && canvas.toBlob) return new Promise((resolve) => {
|
|
1702
|
+
canvas.toBlob((blob) => resolve(blob), mimeType, quality);
|
|
1703
|
+
});
|
|
1704
|
+
if ("convertToBlob" in canvas && canvas.convertToBlob) return canvas.convertToBlob({
|
|
1705
|
+
type: mimeType,
|
|
1706
|
+
quality
|
|
1707
|
+
});
|
|
1708
|
+
const asString = atob(canvas.toDataURL(mimeType, quality).split(",")[1]);
|
|
1709
|
+
const len = asString.length;
|
|
1710
|
+
const asBuffer = new Uint8Array(len);
|
|
1711
|
+
for (let i = 0; i < len; i++) asBuffer[i] = asString.charCodeAt(i);
|
|
1712
|
+
return new Blob([asBuffer], { type: mimeType });
|
|
1713
|
+
})();
|
|
1714
|
+
}
|
|
1715
|
+
debug(..._args) {
|
|
1716
|
+
}
|
|
1717
|
+
};
|
|
1718
|
+
function pica(options) {
|
|
1719
|
+
return new Pica(options);
|
|
1720
|
+
}
|
|
1721
|
+
__name(pica, "pica");
|
|
1722
|
+
export {
|
|
1723
|
+
Pica,
|
|
1724
|
+
pica as default
|
|
1725
|
+
};
|
|
1726
|
+
/*! Bundled license information:
|
|
1727
|
+
|
|
1728
|
+
pica/dist/pica.mjs:
|
|
1729
|
+
(*!
|
|
1730
|
+
|
|
1731
|
+
pica
|
|
1732
|
+
https://github.com/nodeca/pica
|
|
1733
|
+
|
|
1734
|
+
*)
|
|
1735
|
+
*/
|
|
1736
|
+
//# sourceMappingURL=pica-WNHDDIFX.js.map
|