{"_id":"@doedja/scenecut-web","_rev":"11-000a18d9f0c2b5ba78e52279ef1e0748","name":"@doedja/scenecut-web","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@doedja/scenecut-web","version":"0.1.0","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.0","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"8c8bfc57f0a8c3ec50ef9961cc1028cc81b45b12","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.0.tgz","fileCount":33,"integrity":"sha512-AYy5TBv1qprL++grSjpKKJPQaAKzTc6C6ykZv9F/i///x9lw4sbNZtuW9YuiG8eUHi/tV5bSvd+2JRed2qxqYA==","signatures":[{"sig":"MEQCID0TvzBLJqGau1OXYQ9vnuCZV/15GcTuDnd00FvRxgYpAiBE2+907s3jddW1paIFaGJT+IYvOQtRCRYuhpiC1Fd8dA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100292},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"0263efceb5a40948bf75da6a98d7e660cbbb52a7","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.0_1776752027210_0.19957956081050687","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@doedja/scenecut-web","version":"0.1.1","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.1","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"90f9cb8d17c3b8b9073653a39b61a856837aa81c","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.1.tgz","fileCount":34,"integrity":"sha512-47yfLPGtMnONImPRlDLBDdda0hn5oFDBsFjg9Z3F5kffCyQIvPEiAUEKzSJT/+GQ6MhH5zbUbuG+mqwqdEOFPw==","signatures":[{"sig":"MEYCIQDfptu2/C2V2tnFy6YYUFsqwHYD6CTplybDcCiwiQ5tfAIhAPz7l7bDGRw2or5GISYne60SReaksVrulqPYF+HW+Dpc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104947},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"0263efceb5a40948bf75da6a98d7e660cbbb52a7","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"deprecated":"broken workspace:* dep, use 0.1.2+","repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"workspace:*"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.1_1776752394025_0.5323455259871375","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@doedja/scenecut-web","version":"0.1.2","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.2","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"2188b7494afbace9926ceb26423f9c0a9a7231a0","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.2.tgz","fileCount":34,"integrity":"sha512-S1O9DJMR271oCJjAyiQT6MTsfEbpCzgTsFhbITOequ/5JeG1DztDxo2qZ+U77ENnRymknd4lHFGHjIrUWk1MUw==","signatures":[{"sig":"MEUCIQC6SR71OjXinfUhJ+T58MdcKBoUI1RTQu5sMujmHOsmNQIgZGxSWRLrR9ZgOxjTcbd7VLGUvTTvLpJ56bkcYDnMZhc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104937},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"d63201b1d8748c04870105bdc8b1329b5efbe376","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.1"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.2_1776769757451_0.42522026391907897","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@doedja/scenecut-web","version":"0.1.3","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.3","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"7a2665942b1dd742cdd6a254472deda9cb7f78aa","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.3.tgz","fileCount":34,"integrity":"sha512-4oVpmBn1a4KkdiXy7ioyLQr64ZXnrrFYPUdJE1QXZVbDALnJE1DVcdnbNAh1mRnHadTZ7rPX/lGa5XubuevKTg==","signatures":[{"sig":"MEUCIGKKIF6OKpLKW324uVPIXW7yj3Ymdv/Rsq2JutWm91vRAiEAvzwwfihVf2zMXOBxzpd4XXyCZhdmDO2qVRyLEKqwKZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104943},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"93bb456fc9b025e9b43c266b70a214efd98a5c2d","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.3"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.3_1778072070384_0.22320164479549276","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@doedja/scenecut-web","version":"0.1.4","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.4","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"217842c869c65a224520d6c72091cb0f593faf76","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.4.tgz","fileCount":34,"integrity":"sha512-BrVwuEAWq5CI0WURWR4EDJ+CU/v+R8D4WG0EDq5t/xdA1Kvnvg9Qd3YokUOVymoSmreZhcSCkKysY0dR/A4pPw==","signatures":[{"sig":"MEUCIQDfXiMoojiWX8rRPjDW7SE72ZLxFImhzRnE8iYGhMeyQwIgHUHn2is9dacL2VHnUfRNROkd0oWch41mmZj0qmGPw+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104893},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"93bb456fc9b025e9b43c266b70a214efd98a5c2d","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.4"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.4_1778142681008_0.7931960867187045","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@doedja/scenecut-web","version":"0.1.5","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.5","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"7fcdab00971475c2d8b05b2369241c403a39c8e8","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.5.tgz","fileCount":34,"integrity":"sha512-+gH2raA4pfEAJLNy3H9uwbQGMciuWAgQE3G0vloPoqIdOKvz1ubFuT0rayJgtHzjLBkT9TTjebVZvJe8PD7+FQ==","signatures":[{"sig":"MEUCIEqj4rPlHKgWR8ccduI/cGXNeZA/Qr7dtFwGcu4GkNh9AiEA4BHNRVGJDX0cQj4dDXJVe+OrETaxDWC9a/rqtZXmObc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104893},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"93bb456fc9b025e9b43c266b70a214efd98a5c2d","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.5"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.5"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.5_1778153859394_0.7598675450104158","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@doedja/scenecut-web","version":"0.1.6","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.6","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"7837f513f92b8ad4f8219b1d2e08d50a7576876a","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.6.tgz","fileCount":34,"integrity":"sha512-rLUQXAW+wd/S0ePAltSMczwL8qgs9feX+anC87yNxlWKhqXFumklxvBGoF91qVAlOe5qVNpEA3sbHg7jZXX9VA==","signatures":[{"sig":"MEYCIQDHE1S2MOyTFshrTY5hDVkntonRwKI/R6b8js6iFzcLjwIhAK3c+0J7lJLfKZu4KRhvGl449ER1RZlse+CxeloHjW1x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104937},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"ef6ab7f29c2bfabd0fc04c6b9dc15c3ea4ad0fbb","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.6"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.6"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.6_1779368070848_0.8984267406530886","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@doedja/scenecut-web","version":"0.1.7","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.7","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"dbed6ca14f2da7a4e297bc75a303dcc2d2305035","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.7.tgz","fileCount":34,"integrity":"sha512-rqWJ6lIgX40A0bTdFd3MRYEfrNrzpgHMv60FBMd7m2LwTvOSjOf/jMZc3H3B8Y9Zn4fGVyY3n5OSc2dHMPbfKw==","signatures":[{"sig":"MEQCIA5f7DA0a/noaXrY00jAmf8kvUP3HSGpdW0WLLOBtCArAiArqg/OZlvFDkF5cNBScTMR6il8iXd02LnOz9ToeOfJqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104887},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"f5d540a6ea76a83b4a8a85164d795a844f630865","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.7_1779373487190_0.7957955449971146","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@doedja/scenecut-web","version":"0.1.8","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","_id":"@doedja/scenecut-web@0.1.8","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"homepage":"https://github.com/doedja/scenecut#readme","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"dist":{"shasum":"52b1de30ddba711d7a3b537ed5852c4b9e31a08d","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.1.8.tgz","fileCount":34,"integrity":"sha512-3STdI6fRHqg75GQLiM6yaHoi89R7l0qaWzVWat6Kj3z3j+OB/JVo26fp4ulET34zUhZY/m/5A3/eWFwR6iWsYQ==","signatures":[{"sig":"MEUCIHTHr8uXVwrOJI9g71Lvjan9+PAWjRvqBTJ/RsxhMurHAiEA9MNWyknyuTW/CeaDLYVE01MOkCxXPpbOwjTXip93bdo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104887},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"gitHead":"61de9a40ae26170f8002cec782b46b6c8bb758e6","scripts":{"dev":"tsc --watch","build":"tsc","clean":"rm -rf dist"},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"repository":{"url":"git+https://github.com/doedja/scenecut.git","type":"git","directory":"packages/web"},"_npmVersion":"11.12.1","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","directories":{},"sideEffects":false,"_nodeVersion":"26.0.0","dependencies":{"mp4box":"^2.3.0","@doedja/scenecut-core":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.3.0"},"peerDependencies":{"@doedja/scenecut-core":"^0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/scenecut-web_0.1.8_1779384290559_0.8487665787823051","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@doedja/scenecut-web","version":"0.2.0","description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./wasm-factory":{"types":"./dist/wasm-factory.d.ts","import":"./dist/wasm-factory.js"},"./motion-worker":{"types":"./dist/motion-worker.d.ts","import":"./dist/motion-worker.js"}},"sideEffects":false,"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist"},"keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"author":{"name":"doedja"},"license":"GPL-2.0","repository":{"type":"git","url":"git+https://github.com/doedja/scenecut.git","directory":"packages/web"},"peerDependencies":{"@doedja/scenecut-core":"^0.2.0"},"dependencies":{"@doedja/scenecut-core":"^0.2.0","mp4box":"^2.3.0"},"devDependencies":{"typescript":"^5.3.0"},"gitHead":"4736dd067edaa933335a2592521249802e17b799","_id":"@doedja/scenecut-web@0.2.0","bugs":{"url":"https://github.com/doedja/scenecut/issues"},"homepage":"https://github.com/doedja/scenecut#readme","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-CjTos0sLoujPBTUJWnEawMwoklp4wvrBa7zVbHNMayl5twgW4TeDC8vHsMkevrt21D+i0qUol17rCrg+Msz7PQ==","shasum":"bde95123d449722f4996ecdd9cca6e1373338eaf","tarball":"https://registry.npmjs.org/@doedja/scenecut-web/-/scenecut-web-0.2.0.tgz","fileCount":34,"unpackedSize":104914,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID1vgXUbBTYNa2DcVNb5fTrrIGF5MKf1W3eVyfk5BRmrAiEAz2c6hOnTPsBtVolKcYMnY44tSY7i8F7yDq81IQJvPpI="}]},"_npmUser":{"name":"doedja","email":"doedjavu@gmail.com"},"directories":{},"maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/scenecut-web_0.2.0_1783131925273_0.2947577027542365"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-21T06:13:47.086Z","modified":"2026-07-04T02:25:25.524Z","0.1.0":"2026-04-21T06:13:47.463Z","0.1.1":"2026-04-21T06:19:54.161Z","0.1.2":"2026-04-21T11:09:17.603Z","0.1.3":"2026-05-06T12:54:30.543Z","0.1.4":"2026-05-07T08:31:21.274Z","0.1.5":"2026-05-07T11:37:39.539Z","0.1.6":"2026-05-21T12:54:31.111Z","0.1.7":"2026-05-21T14:24:47.342Z","0.1.8":"2026-05-21T17:24:50.694Z","0.2.0":"2026-07-04T02:25:25.420Z"},"bugs":{"url":"https://github.com/doedja/scenecut/issues"},"author":{"name":"doedja"},"license":"GPL-2.0","homepage":"https://github.com/doedja/scenecut#readme","keywords":["scene-detection","video","keyframe","webcodecs","browser","wasm"],"repository":{"type":"git","url":"git+https://github.com/doedja/scenecut.git","directory":"packages/web"},"description":"Browser scene change detection. Uses WebCodecs-adjacent video decode + @doedja/scenecut-core WASM motion estimation.","maintainers":[{"name":"doedja","email":"doedjavu@gmail.com"}],"readme":"# @doedja/scenecut-web\n\nBrowser scene change detection. Xvid motion estimation in WebAssembly, decoded via WebCodecs for MP4/MOV, a custom EBML demuxer for MKV/WebM, or `<video>` + `requestVideoFrameCallback` as a universal fallback. No uploads — everything runs in the tab.\n\n```bash\nnpm install @doedja/scenecut-web\n```\n\nPairs with [`@doedja/scenecut-core`](https://www.npmjs.com/package/@doedja/scenecut-core), which ships the WASM binary and the detector. Your bundler (Vite, Rollup, esbuild) needs to serve the WASM files as static assets.\n\n## Quick start (Vite)\n\n```ts\nimport {\n  detectSceneChanges,\n  createWebWasmFactory,\n  createWebMotionPool\n} from '@doedja/scenecut-web';\n\n// Serve these from your public folder (copy from node_modules/@doedja/scenecut-core/dist/)\nconst wasmBase = new URL('/wasm/', location.href).href;\nconst glueUrl  = `${wasmBase}detection.wasm.js`;\nconst wasmUrl  = `${wasmBase}detection.wasm`;\n\nconst wasmFactory = createWebWasmFactory({ glueUrl, wasmUrl });\n\nconst pool = createWebMotionPool({\n  glueUrl, wasmUrl,\n  createWorker: () => new Worker(\n    new URL('./my-motion-worker.ts', import.meta.url),\n    { type: 'module' }\n  )\n});\n\nasync function detect(file: File) {\n  const result = await detectSceneChanges(file, {\n    wasmFactory,\n    pool,\n    sensitivity: 'medium',\n    onProgress: (p) => console.log(`${p.percent}%`),\n    onScene: (s) => console.log(`cut @ ${s.timecode}`)\n  });\n  return result.scenes;\n}\n```\n\n### The motion worker\n\nCreate `my-motion-worker.ts` in your app:\n\n```ts\nimport { installMotionHandler } from '@doedja/scenecut-core';\nimport type { WorkerMessagePort } from '@doedja/scenecut-core';\nimport { createWebWasmFactory } from '@doedja/scenecut-web/wasm-factory';\n\ninstallMotionHandler(self as unknown as WorkerMessagePort, (glueUrl, wasmUrl) =>\n  createWebWasmFactory({ glueUrl, wasmUrl })\n);\n```\n\nThis is the script Vite (or any module-worker-capable bundler) instantiates per worker.\n\n## Decoder auto-selection\n\n`detectSceneChanges` picks the fastest decode path based on the input:\n\n| Input | Path | Speed |\n|-------|------|-------|\n| MP4 / MOV / M4V | mp4box.js → `VideoDecoder` → I420 Y-plane | near-CPU-bound |\n| MKV / WebM / MKA | custom EBML demuxer → `VideoDecoder` → I420 Y-plane | near-CPU-bound |\n| Anything else | `<video>` + `requestVideoFrameCallback` | ~2–4× real-time |\n\nForce a backend with `decoder: 'auto' \\| 'webcodecs' \\| 'video'`. Default is `'auto'`.\n\nSupported codecs via WebCodecs: H.264, H.265/HEVC, AV1, VP9, VP8. Grayscale is read straight from the I420 Y-plane — no RGB → luma conversion.\n\n## Options\n\n```ts\ninterface BrowserDetectionOptions {\n  wasmFactory: WasmFactory;          // required\n  pool?: MotionWorkerPool;           // recommended for speed\n\n  sensitivity?: 'low' | 'medium' | 'high';        // default: 'medium'\n  searchRange?: 'auto' | 'small' | 'medium' | 'large';  // default: 'small'\n  maxDimension?: number;             // downscale longest side; e.g. 1080\n  decoder?: 'auto' | 'webcodecs' | 'video';       // default: 'auto'\n  decodeQueueTarget?: number;        // backpressure knob for WebCodecs\n\n  onProgress?: (p: Progress) => void;\n  onScene?: (s: SceneInfo) => void;\n  signal?: AbortSignal;\n}\n```\n\n## Result\n\n```ts\ninterface DetectionResult {\n  scenes: Array<{\n    frameNumber: number;\n    timestamp: number;   // seconds\n    timecode: string;    // HH:MM:SS.mmm\n    confidence: number;  // 0–1\n    duration: number;\n    frameCount: number;\n  }>;\n  metadata: { totalFrames, duration, fps, resolution, codec? };\n  stats:    { processingTime, framesPerSecond };\n}\n```\n\n## Cancellation\n\n```ts\nconst ctrl = new AbortController();\nconst result = await detectSceneChanges(file, { wasmFactory, pool, signal: ctrl.signal });\n// later:\nctrl.abort();\n```\n\n## Low-level sources\n\nIf you want to drive the detector yourself, the source classes are exported:\n\n```ts\nimport {\n  WebCodecsSource,   // MP4 / MOV\n  MkvSource,         // MKV / WebM\n  VideoElementSource // fallback\n} from '@doedja/scenecut-web';\n```\n\nAll implement the `FrameSource` interface from `@doedja/scenecut-core`.\n\n## Exporters\n\nEDL, FCPXML, Premiere markers, Aegisub, CSV, JSON — all re-exported from core:\n\n```ts\nimport { formatEdl, formatFcpxml, formatPremiereMarkers } from '@doedja/scenecut-web';\nconst edl = formatEdl(result, 'my-clip');\n```\n\n## Example app\n\nSee [`apps/web/` in the repo](https://github.com/doedja/scenecut/tree/main/apps/web) — a full batch / queue UI built on this library, deployable as a static site.\n\n## License\n\nGPL-2.0 — derived from [vapoursynth-wwxd](https://github.com/dubhater/vapoursynth-wwxd) (dubhater) and the Xvid motion estimation algorithm.\n","readmeFilename":"README.md"}