{"_id":"libbitsub","_rev":"31-f05486f4fa5579cf0c31ab250c93cc99","name":"libbitsub","dist-tags":{"latest":"1.12.1"},"versions":{"1.0.0":{"name":"libbitsub","version":"1.0.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"GPL-3.0-only","_id":"libbitsub@1.0.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"ab9375f0eed889c79b7d2f2be090d7011e9df733","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.0.0.tgz","fileCount":43,"integrity":"sha512-L7iJw+OqeswHe1qo8D7PqmpBP/OoNuMtp86LXQ+JxGvckzyAg0pqQrgKYhDDw/Jax6U5M6llpCw7asSGjatSCQ==","signatures":[{"sig":"MEUCIQCmuBskDTuRnJOUMJvxxC8WrifAjH4lLI/q40fMrAGm+AIgQvoFaff5Ryg/i0vEq7CNc8LRWZEko08lJrf9q7k9ph4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":341692},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"37f1f3c1138942451504f105f7fd7355f91fe7d7","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.0.0_1765015041735_0.35123213478380744","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"libbitsub","version":"1.1.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"GPL-3.0-only","_id":"libbitsub@1.1.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"68135843f51d88d602061033e250cbb85bdf5143","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.1.0.tgz","fileCount":43,"integrity":"sha512-eLJFkIT9gzIaDpciMLswlXWqnzrvTKNuO1cIL07CnIxFAbk257ZjH177ebRHM3NqndK9L5o0Yr3sssZxpWDMcw==","signatures":[{"sig":"MEQCIAW8YGbTD2ex6xXPNydnWKuP4/6Gj9yq08ajO50UFNixAiB679lQY4gXJC8pXk4bICYqclh9PH7whhfFYTenz97Tgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348275},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"eedfce20b87b3b7b16f6aa75b30a21fc128e467c","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.1.0_1765599894046_0.8261042566016967","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"libbitsub","version":"1.1.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.1.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"1076ef14e5297ee2e5a8114253d63f1d4c888d60","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.1.1.tgz","fileCount":43,"integrity":"sha512-N3YXIjvVum3bsMEm6Nk32rwBuMfIfsCy+HhcTUQrMZIAV1aILx6J4SoAn/Kb8RqvC4Cp+gKCUHT0wFR6gfYaFg==","signatures":[{"sig":"MEYCIQC3Q2qC21ty3dK/r5dndrnxXmzZj4L9IFfpkwDAwZrvSwIhANb+xixPAnIRgnuLSLLmGQBSXOuKuK4Cw0t0wCbNeWfV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302567},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"26d91da7f9dcccaa9b656d9a12b98ed22d8ba762","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.1.1_1765786602710_0.6027292125869035","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"libbitsub","version":"1.2.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.2.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"071b0231cea5ed7d7de4ca8964a5bff969d15a14","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.2.0.tgz","fileCount":47,"integrity":"sha512-nnKlN1GTr95AdpEuSTSSGfYbjkiEtID2GGlTKRNBt6YyyRwveDbOJicTqo4kMzbztQTDkDzuXoj1z6ZGN8AJZQ==","signatures":[{"sig":"MEUCIQDWOM3hYU0BKXSCwM8j94wfHnHJ4dwDoN+12HUzoaC3DQIgXQUe/CdwJHgGsNORF1/BtgADv7MdTBzOZ0MIO2g+JSQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338838},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"840d9b4550b6e9485365f719f975750c310c8bb0","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@webgpu/types":"^0.1.68"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.2.0_1767103938422_0.436895014413605","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"libbitsub","version":"1.2.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.2.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"d889bc73ec5150bc54f54f073119092b479d7e35","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.2.1.tgz","fileCount":47,"integrity":"sha512-uGZLsUQJNBzpt2+TwGXmglbr+mbuvQ/imTwvBVg2zCYb4JQ9PXHEdH2TrDxmu2BlTPgklZplLds4uPzY+W7IRg==","signatures":[{"sig":"MEQCIDjZm6qM+lvTKGBcWUyR0w8XYtE/G5S9x520BrGQDI/WAiBvaZBmmpGTXMKAqIgHBQS5TPMP7Rnc3g9AirESO2/cGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340343},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"244f4250865f880f9ca63c96893fc118cbe15cdd","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@webgpu/types":"^0.1.68"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.2.1_1767526526137_0.4889550351506531","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"libbitsub","version":"1.3.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.3.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"d9ea5b84c6d0153b61f5fb38568c4beff3fd1a61","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.3.0.tgz","fileCount":47,"integrity":"sha512-YQ4yG0cevW9CuHGQxliBal7TeLWm7q0ktVNprcXrfdesHME86tEjw6ObfQ6PlYqNsKE1578BvSMkY6HfhFVJ/g==","signatures":[{"sig":"MEYCIQCm96IIk42nfv05yxTKGoJ0IyMnTGCVx0DWTvW931WI6QIhAP4UZJ48V9jlzOhIeDRACRPgwNlx7Y316XldOay5UZTC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346579},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"9ab82bb821e3ed5c2a5f84a674c5f9d6e4012a6e","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@webgpu/types":"^0.1.68"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.3.0_1768039564302_0.26260394517153496","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"libbitsub","version":"1.4.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.4.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"15412c91d1b4fc3a007acda948867affe1a1e2cb","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.4.0.tgz","fileCount":47,"integrity":"sha512-yzFemj0oHV8R18EekpdMdPqdDS84T39vibAOESOoBNW6yuQ1TQKvbA0LANe2IjXbAM2gml/TBSPZWc7Xf0oR4w==","signatures":[{"sig":"MEUCIQD6WiROUyK+JR7cRCifZLLaM64iovpV54Sj/pTS0L3ssgIgdNFFu6rtWEQ2pSlpo8Q3FAsYJuyxTErsFvHt8GlyrgU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362978},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"62cb3e1528e6bf7df27fed031b4d0fec59af67fe","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@webgpu/types":"^0.1.68"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.4.0_1768829996322_0.30705185676734703","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"libbitsub","version":"1.4.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.4.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"4c039e8030e0eacbc49cf3bac3ef25672b55fcde","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.4.1.tgz","fileCount":47,"integrity":"sha512-cbMjtfvrmI3i9v86miAU7blkXhSHfS7BNS8LDzJ7EuV6/WR8Onki3TI8qAULlmc+DfZ6JajvsF+SzpAihACf3A==","signatures":[{"sig":"MEUCIH8tkCZEHGlLZP0/aTP0IphlYUsw8Hf88HmsgIduG/6eAiEA3YJMzSzVLT0Zw+C9I/uLjvJQi6/Y9ZsPYKQxKp3j+zA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362681},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"40c9a548719e324883324148af3d0aafd00dec60","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.19.6","dependencies":{"@webgpu/types":"^0.1.68"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.7.4","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.4.1_1768847163459_0.5045424166779569","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"libbitsub","version":"1.5.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT OR Apache-2.0","_id":"libbitsub@1.5.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"c279640f91c1e3c5287cf64bb025c705e563628d","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.5.0.tgz","fileCount":47,"integrity":"sha512-2XZzd71BdBXojl+68dYgxepaVHqKc4HNtDGtQWw0EfMr70SqQxbHJ39v6EbVGzeN9UgZg1J1obVrGZslpv6Tog==","signatures":[{"sig":"MEQCIB/Rw93o8KFEMzcuGClNqU2oNG++nbF8SAA+M31JA7p5AiBiA35SiqCyGE71lioslRXLFdAdQsUMV1MCzbQGHt12Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367703},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"cccaa4c0cc635850d87a6ec81edf4db441e595cc","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.5.0_1770879666045_0.514153964301191","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"libbitsub","version":"1.5.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.5.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"db07c4bb54b6d169230595c22f5d858151d9938e","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.5.1.tgz","fileCount":47,"integrity":"sha512-JvLTmkjF5vNssAG/M1DF8DbPHuN3O8kcGWV0R6wspkgFpIfzNWqXeYe1A5JZlbQFnHE//0vzpvRQkvJX+f03fA==","signatures":[{"sig":"MEQCIFtAUPOHzp7zRKniCFE33U4rZX4XQ2xeLt4aYPQXl/+CAiB8BM/4GhU1QU8Gy28OVxc5JjqVjQW0NZI3X46fM/7KXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345555},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"9eb66a52d4ae115625cec4de8712588746dda5f1","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.5.1_1770880900214_0.6503783544072359","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"libbitsub","version":"1.6.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.6.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"e0fc410db8ee958c04d25c3b884c1c265bc6d9c2","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.6.0.tgz","fileCount":51,"integrity":"sha512-bbpyDHLiK6amyY80laJfUCka/qgLRUuQCu5/EAjbe74F4IrNcqIz/L7vGrmH4ETyRU8DjFlLT2RC//hZYDvYOA==","signatures":[{"sig":"MEUCIQClV40ZeP4CRhnMK/R5lcnLkPYByqrZHyGzSGcqhbHoCwIgNHB713k4mg2FcGVGqvj0D0vRfFjTDD3NBzcPIU6cy5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377205},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"1ccb2e585d64f3b816592ba0a8ebd89e920feb39","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.6.0_1771410283790_0.8765892923627954","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"libbitsub","version":"1.7.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.7.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"bae30a76b5fed6ebf97cc0bfcbeeec384f4e55fc","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.7.0.tgz","fileCount":51,"integrity":"sha512-U57lMxsd/4o2crqekAtjonRkq8345E2yqOeBwzNutbySoe1TTrPvKdYGvoyrF/jPB1pCayVpHRgOPz2Slvt8wg==","signatures":[{"sig":"MEUCID2OORcdo7CnhWckyKsUAtovaJkEQ8j0mxuSYpEFhREfAiEAvZa3ybtmECwUw2qH9/lChibTHuk826ZMPUNIYWtecww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462493},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"004291c2c9bb6c2a5347752b21337cca8f98aa66","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.7.0_1772887143969_0.933290000983666","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"libbitsub","version":"1.7.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.7.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"c91e25d3ed1e2846272004a168d6fee38ab0cadd","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.7.1.tgz","fileCount":51,"integrity":"sha512-BGhGavKhg9A8+IOdqeIa8XNRuSHJlCwj5EnwV63D6Zpu4xhuGv3qrJ6JYx6frMEG4y4NtOkW/Wuz2OGB9gPmTA==","signatures":[{"sig":"MEUCIQDX5GghRx4x0ELjuolX5Uq9JRGSH+IxPSzslkpVNfkvIQIgAShuLo/oftGiUWrL3kKq3vYClIuAGZ8pEP37l7iQSv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466906},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"a3d1d5701e4ad7c3fbc0be6487930fea3226e016","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.7.1_1772932768337_0.5646019798831379","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"libbitsub","version":"1.7.2","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.7.2","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"9528104b7731de2ac8165540adf550be793c4848","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.7.2.tgz","fileCount":51,"integrity":"sha512-fgJsHsD09/UGMvlLEpbwFueHnWoDcp3EhXG3f9zVFp/yEjC0T+Ga5nVd4kCwfCdYpdCTXhbfdZFC5mHrUVLTlw==","signatures":[{"sig":"MEYCIQDUOrZNYhAoFXvj6jp/YkBrShibXUj9DT+v9UXb1MZbHAIhAOYuR3bDRiMHDi8gb2LqhoaMC5IeEHOfY97Jck72pjjv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":471406},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"bb5862915f73a8cb6cc7e82b0090e26b4c8957c2","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.7.2_1772974791693_0.6907052544073398","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"libbitsub","version":"1.7.3","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.7.3","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"c7689fd8a02f4330fea80bbf8741a8baf1970de0","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.7.3.tgz","fileCount":51,"integrity":"sha512-LOzcDdNvDIGOGzGgOJb2NbdIg4lQnFxUuuXv/w2fGYFt/DL9PtVHUxOy9qOazC0bIxLcZqZftIT6pr6fcExlOQ==","signatures":[{"sig":"MEQCIFOpxyWGK8Aw7mrhDj4TGl7kGsQM5is7bUIKin4fDhkoAiAfMEg5a7RFdWdK84VDAJUpoDnzMPprJsig9Vp5ZmNu8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473746},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"a01a6e5eb8b5cd7d6aff2a2d37d5bc078da61040","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.7.3_1774768198852_0.5698257190865843","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"libbitsub","version":"1.7.4","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.7.4","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"f42d9f6f136bc107b2efa1b9e3cbb3713d0797a7","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.7.4.tgz","fileCount":51,"integrity":"sha512-jxrQr+EuBlKEXMhgdFuGqDZ1NolQ1QvHB0u9kJ1AGC2meaSox0GtS6UaccdRqaf8W12mrdbZADhVq83w3/lAlA==","signatures":[{"sig":"MEYCIQDxA+XgA89b7iPpjFIdVs0ApkhGmjWoWkuUzatpaiIj7gIhAL+U04bBaSFTFuYKCfquIXwnsOuKr6VH4we8zZ+Rof2J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473261},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"b7ae73f8cac2be89937df1294f9598b80230b695","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.7.4_1774770074734_0.990791415315398","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"libbitsub","version":"1.8.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.8.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"440a09fc3bd986bd8bb60b1fff411dea743c8c19","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.8.0.tgz","fileCount":51,"integrity":"sha512-jFq5/fj5ucWQ+nmdZvuwEYykWfYoX7AMixct0219GfQ+BigRTZjrhdKCh0tolmAkqvzYJz8KVoUKT5T9fofLBw==","signatures":[{"sig":"MEQCIGl27Pbl/JZYfKqjKMAAvZJkyYbMdweL7JSPA37gXtv4AiAr23UprIf8e2ag/0TtuE8bBfwkAK2dTjAwABqX9kEHPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":527783},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"84ef5fb7408a3fdb1252cd80729b58c770f78b73","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.8.0_1775152120947_0.3601879888494499","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"libbitsub","version":"1.8.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.8.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"35cffd7a985311e8053be3107789fb5ff47218d7","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.8.1.tgz","fileCount":51,"integrity":"sha512-3A8nsx7WIrP8z6vLGe0aEAdE86mwB7320bh47PvN4NDtnnaFXRJ6z9O1CA8xtusX6Our0FtBgatJNbsGEou9Dg==","signatures":[{"sig":"MEUCIQDO9ulhLZMWFFANCwKse+j0f/gButSdEqTI9HySGYjioQIgbVRN0OQAGH1ws6ptlaw+uM3gLgWN7VF4cXT8pJV7QRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":537438},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"3f8b8ebb26117016a27b80c06a75e0c2f70786e6","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.1","typescript":"^5.9.3","@typescript/native-preview":"^7.0.0-dev.20260306.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.8.1_1775777499029_0.781593775943368","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"libbitsub","version":"1.8.2","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.8.2","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"a464aea4b8f6bd897ab840e5d0fd7628d4529ec3","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.8.2.tgz","fileCount":51,"integrity":"sha512-GmxmJ9BJZaqw/A5Kv0Bs1TN1RQmCRUMxm4C+h8P65+oEReCdDDCqH5dwd0WWSOggijXvBtsfhls/hO+iGZPZ7A==","signatures":[{"sig":"MEUCIQDO18uU/ij72/ZmL6QiKyO26ls5OXhyv7W1gQ51VzgfTQIgZFlvRa1IlPLFYAfBK33ny5lLqbaMuC0KMuWWrx6BNNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":539930},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"ee5ee623dfa5828eb23e8d13abc3091390daf9e9","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.2","typescript":"^6.0.2","@typescript/native-preview":"^7.0.0-dev.20260410.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.8.2_1775877369108_0.8280351464558438","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"libbitsub","version":"1.9.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.9.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"a880aaa8950a90df99b9543fe54172a7e7a4e3ef","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.9.0.tgz","fileCount":51,"integrity":"sha512-63YiUexbvzHafiXU21+RUG5lboAvHgfUz6BFzeNvopeisNbEWQiuSP+svBrrK3Tw5qU9w4MahNImJFXRe60Rsg==","signatures":[{"sig":"MEYCIQCL6gH6v04416QtUt2QzZpSHdLO3cAs5JLsZLblK8FyUAIhAMmA1ALsek+hC1VYrJQZ/HajGYau4HGf+I/Hb+j1a+Wd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":540760},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"cfa0fb389c0676c05beca7b671fb7bbdd53e553f","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.2","typescript":"^6.0.2","@typescript/native-preview":"^7.0.0-dev.20260410.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.9.0_1775885097779_0.6581027568940285","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"libbitsub","version":"1.10.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.10.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"dist":{"shasum":"7c9bd63717e1313ebeb7f3f2b5aa0005dc756e2e","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.10.0.tgz","fileCount":59,"integrity":"sha512-Qc21jCz78CfcYQ6HmmoS9nBoL9rVqqtLG6F20xMpCJ3Pf8D1XGSgHF5tagV9aYBR/DIwzGk+1pqqWRyislKk8w==","signatures":[{"sig":"MEQCIDRVkp0nHL27sjUWEqUEmkr+bLRotdul9xKooZjUeio9AiBdjesKyPPazcZUBEhckhbCs2N7xtMAfyc/ZGdL+nMDag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":631340},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"b85996eef5cbe3c262b2a39705985f606de830f9","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"altinat","email":"poiiiii4yy@gmail.com"},"_npmVersion":"10.8.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@webgpu/types":"^0.1.69"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.2","typescript":"^6.0.2","@typescript/native-preview":"^7.0.0-dev.20260410.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.10.0_1776860956738_0.6622004026848889","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"libbitsub","version":"1.10.1","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.10.1","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"homepage":"https://github.com/altqx/libbitsub#readme","bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"dist":{"shasum":"2e3ee16b8325a954daedb8446dada7cc6dac95e9","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.10.1.tgz","fileCount":59,"integrity":"sha512-TuQVSuJO0j770t5vs33V2MQkzRaW53qvR9JJOqmUJYSSXvCe6bkRVCs0ieVlkmjvT/4o52rIaQ8oU8CdX8Fk0w==","signatures":[{"sig":"MEQCIBuMPQfg7EAlnvnQbFmV2B5tMdcrEl8wBt2EMJCMtFy+AiAulFZZkYXqr+lRMWj18If8bIcBaaHrrESodw4YucUUwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/libbitsub@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620729},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"4f0ad45e7e45833fb6968b58b3bab5ea6033579f","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsgo","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f55ba70-3d82-4fdf-9ea7-8d48beb75d6e"}},"repository":{"url":"git+https://github.com/altqx/libbitsub.git","type":"git"},"_npmVersion":"11.15.0","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@webgpu/types":"^0.1.70"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.8.3","typescript":"^6.0.3","@typescript/native-preview":"^7.0.0-dev.20260524.1"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.10.1_1779685858676_0.48251435494945394","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"libbitsub","version":"1.10.2","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.10.2","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"homepage":"https://github.com/altqx/libbitsub#readme","bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"dist":{"shasum":"e63aad159a86a104c161b1c2f15cfaf6e51d0e24","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.10.2.tgz","fileCount":59,"integrity":"sha512-cXD1ueeeXqJIaNvYRrkNZOZ0A5FMMv9+8Yp/lHJZXPvkim5h0yvF2G27lYr0vGN9HwZCaJhkz6GArRerieTtuw==","signatures":[{"sig":"MEUCIHqmKEu250zzkF0tcSU7bhr9+kj578grpBCBYS0m4qREAiEA3sumabI+YNLabqACQYHfXOjFa/uLGpdMjILo0a6ABRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/libbitsub@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":620059},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js"}},"gitHead":"17b2ac6447417c5e3592df3a469a9585f3788478","scripts":{"test":"cargo test","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","build:ts":"tsc","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f55ba70-3d82-4fdf-9ea7-8d48beb75d6e"}},"repository":{"url":"git+https://github.com/altqx/libbitsub.git","type":"git"},"_npmVersion":"12.0.1","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@webgpu/types":"^0.1.71"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"^3.9.6","typescript":"^7.0.2"},"peerDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.10.2_1785091842416_0.2872300350135262","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"libbitsub","version":"1.11.0","keywords":["libbitsub","pgs","vobsub","subtitle","wasm","rust","rendering","video","player","videojs","shaka","hls.js","react"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.11.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"homepage":"https://github.com/altqx/libbitsub#readme","bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"dist":{"shasum":"95d3287406d3434a31a93f236eec0b574f5313d7","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.11.0.tgz","fileCount":98,"integrity":"sha512-1niXMUxtvShJSv36enD6kVR2QABXtjz6vAVtqcMooU9qefZomQDXYpV0pIEQS3fXDmH4xjl+xVJdgNpk6i/oRA==","signatures":[{"sig":"MEYCIQDpkmihx7XGw4okxJwy7o/h0FFxZGtJWtU74KFJAi5BtAIhAKJhRENZugpwYuX6Qhgf8wKNn86V32sBD/jhkKCoI5bC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/libbitsub@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":800422},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js","default":"./pkg/libbitsub.js"},"./hlsjs":{"types":"./dist/integrations/hlsjs.d.ts","import":"./dist/integrations/hlsjs.js","default":"./dist/integrations/hlsjs.js"},"./react":{"types":"./dist/integrations/react.d.ts","import":"./dist/integrations/react.js","default":"./dist/integrations/react.js"},"./shaka":{"types":"./dist/integrations/shaka.d.ts","import":"./dist/integrations/shaka.js","default":"./dist/integrations/shaka.js"},"./videojs":{"types":"./dist/integrations/videojs.d.ts","import":"./dist/integrations/videojs.js","default":"./dist/integrations/videojs.js"},"./integrations":{"types":"./dist/integrations/index.d.ts","import":"./dist/integrations/index.js","default":"./dist/integrations/index.js"}},"gitHead":"b49bc7082d17287d238e7626744d1c991c5f6a2a","scripts":{"test":"cargo test --workspace","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","test:ts":"bun test src/ts","build:ts":"tsc","test:all":"bun run test && bun run test:ts && bun run test:visual","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","test:visual":"bun tests/visual/run.mjs","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f55ba70-3d82-4fdf-9ea7-8d48beb75d6e"}},"repository":{"url":"git+https://github.com/altqx/libbitsub.git","type":"git"},"_npmVersion":"12.0.2","description":"High-performance WASM renderer for graphical subtitles (PGS and VobSub)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@webgpu/types":"^0.1.71"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","prettier":"^3.9.6","typescript":"^7.0.2","@types/react":"^19.2.17"},"peerDependencies":{"react":">=18.0.0","hls.js":">=1.0.0","video.js":">=7.0.0","shaka-player":">=4.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"hls.js":{"optional":true},"video.js":{"optional":true},"shaka-player":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.11.0_1785434480787_0.8142265766472299","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"libbitsub","version":"1.12.0","keywords":["libbitsub","pgs","vobsub","dvb","subtitle","wasm","rust","rendering","video","player","videojs","shaka","hls.js","react"],"author":{"name":"altqx"},"license":"MIT","_id":"libbitsub@1.12.0","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"homepage":"https://github.com/altqx/libbitsub#readme","bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"dist":{"shasum":"82972fac8d164d471ed9e56435c7696ecd695e00","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.12.0.tgz","fileCount":106,"integrity":"sha512-WsulgzwbwEqcZaz+1flomrnEmpy5VtC3N6A+ZtGRUs2ntayAdegN5M64dgPyzYvw2BkT/ix0d3JGLtF1j3gTeQ==","signatures":[{"sig":"MEUCIAJ8/gop16tE15wNOQaj+iyI1UIhR5r2/SceuuABB5xXAiEAslw2z0B9byF7lmcU7EuwJBDStV3llgYloydHlMAYstk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/libbitsub@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1028003},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js","default":"./pkg/libbitsub.js"},"./hlsjs":{"types":"./dist/integrations/hlsjs.d.ts","import":"./dist/integrations/hlsjs.js","default":"./dist/integrations/hlsjs.js"},"./react":{"types":"./dist/integrations/react.d.ts","import":"./dist/integrations/react.js","default":"./dist/integrations/react.js"},"./shaka":{"types":"./dist/integrations/shaka.d.ts","import":"./dist/integrations/shaka.js","default":"./dist/integrations/shaka.js"},"./videojs":{"types":"./dist/integrations/videojs.d.ts","import":"./dist/integrations/videojs.js","default":"./dist/integrations/videojs.js"},"./integrations":{"types":"./dist/integrations/index.d.ts","import":"./dist/integrations/index.js","default":"./dist/integrations/index.js"}},"gitHead":"8adf3036783dae03cda84bfe221e1025b916855d","scripts":{"test":"cargo test --workspace","build":"bun run build:wasm:release && bun run build:ts","clean":"rm -rf pkg pkg-bundler dist target","format":"cargo fmt && prettier . --write","test:ts":"bun test src/ts","build:ts":"tsc","test:all":"bun run test && bun run test:ts && bun run test:visual","test:wasm":"wasm-pack test --headless --chrome","build:wasm":"wasm-pack build --target web --out-dir pkg","test:visual":"bun tests/visual/run.mjs","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f55ba70-3d82-4fdf-9ea7-8d48beb75d6e"}},"repository":{"url":"git+https://github.com/altqx/libbitsub.git","type":"git"},"_npmVersion":"12.0.2","description":"High-performance WASM renderer for graphical subtitles (PGS, VobSub, and DVB)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@webgpu/types":"^0.1.71"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.2.8","prettier":"^3.9.6","typescript":"^7.0.2","@types/react":"^19.2.17"},"peerDependencies":{"react":">=18.0.0","hls.js":">=1.0.0","video.js":">=7.0.0","shaka-player":">=4.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"hls.js":{"optional":true},"video.js":{"optional":true},"shaka-player":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/libbitsub_1.12.0_1785925842612_0.11567181341170696","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"libbitsub","version":"1.12.1","author":{"name":"altqx"},"license":"MIT","description":"High-performance WASM renderer for graphical subtitles (PGS, VobSub, and DVB)","repository":{"type":"git","url":"git+https://github.com/altqx/libbitsub.git"},"keywords":["libbitsub","pgs","vobsub","dvb","subtitle","wasm","rust","rendering","video","player","videojs","shaka","hls.js","react"],"main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js","default":"./dist/index.js"},"./pkg":{"types":"./pkg/libbitsub.d.ts","import":"./pkg/libbitsub.js","default":"./pkg/libbitsub.js"},"./videojs":{"types":"./dist/integrations/videojs.d.ts","import":"./dist/integrations/videojs.js","default":"./dist/integrations/videojs.js"},"./shaka":{"types":"./dist/integrations/shaka.d.ts","import":"./dist/integrations/shaka.js","default":"./dist/integrations/shaka.js"},"./hlsjs":{"types":"./dist/integrations/hlsjs.d.ts","import":"./dist/integrations/hlsjs.js","default":"./dist/integrations/hlsjs.js"},"./react":{"types":"./dist/integrations/react.d.ts","import":"./dist/integrations/react.js","default":"./dist/integrations/react.js"},"./integrations":{"types":"./dist/integrations/index.d.ts","import":"./dist/integrations/index.js","default":"./dist/integrations/index.js"}},"scripts":{"build:wasm":"wasm-pack build --target web --out-dir pkg","build:wasm:release":"wasm-pack build --release --target web --out-dir pkg","build:wasm:bundler":"wasm-pack build --target bundler --out-dir pkg-bundler","build:ts":"tsc","build":"bun run build:wasm:release && bun run build:ts","demo:build":"bun demo/build.ts","demo:dev":"bun run demo:build && wrangler dev --config demo/wrangler.jsonc","demo:deploy":"bun run demo:build && wrangler deploy --config demo/wrangler.jsonc","clean":"rm -rf pkg pkg-bundler dist target","test":"cargo test --workspace","test:ts":"bun test src/ts","test:visual":"bun tests/visual/run.mjs","test:all":"bun run test && bun run test:ts && bun run test:visual","test:wasm":"wasm-pack test --headless --chrome","format":"cargo fmt && prettier . --write"},"devDependencies":{"@types/react":"^19.2.17","prettier":"^3.9.6","react":"^19.2.8","libbitsub-registry":"npm:libbitsub@1.12.0","typescript":"^7.0.2"},"peerDependencies":{"hls.js":">=1.0.0","react":">=18.0.0","shaka-player":">=4.0.0","video.js":">=7.0.0"},"peerDependenciesMeta":{"hls.js":{"optional":true},"react":{"optional":true},"shaka-player":{"optional":true},"video.js":{"optional":true}},"engines":{"node":">=18"},"dependencies":{"@webgpu/types":"^0.1.71"},"gitHead":"108ea1734b79addd9f81d1b62a289e107a816ea4","_id":"libbitsub@1.12.1","bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"homepage":"https://github.com/altqx/libbitsub#readme","_nodeVersion":"24.18.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-5OzJzT5wufax1IQYGknTC3p8DkkcmZbqpNEMdyqK3BCqrFMgrvaKg3CYBFYaGjkgAuTRgBKP8T9FoTgFP+1/OA==","shasum":"c6ab194c4f9f804743200ef87e9018141142c75c","tarball":"https://registry.npmjs.org/libbitsub/-/libbitsub-1.12.1.tgz","fileCount":106,"unpackedSize":1038164,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/libbitsub@1.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDRKnAL/SWEnte4IHj5SBiLdjPWGNVqmZM3GP2VBST0YQIgSJM2fxiGiYJsl66JJWc0J0hf3CBKP5qE0nKDITtvwXQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7f55ba70-3d82-4fdf-9ea7-8d48beb75d6e"}},"directories":{},"maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/libbitsub_1.12.1_1786619564709_0.6638539316217229"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-06T09:57:21.662Z","modified":"2026-08-13T11:12:45.304Z","0.1.0":"2025-12-05T06:14:29.137Z","0.2.0":"2025-12-05T07:39:21.948Z","0.2.1":"2025-12-05T07:52:33.497Z","0.2.2":"2025-12-05T08:00:02.122Z","1.0.0":"2025-12-06T09:57:21.900Z","1.1.0":"2025-12-13T04:24:54.193Z","1.1.1":"2025-12-15T08:16:42.897Z","1.2.0":"2025-12-30T14:12:18.558Z","1.2.1":"2026-01-04T11:35:26.297Z","1.3.0":"2026-01-10T10:06:04.460Z","1.4.0":"2026-01-19T13:39:56.515Z","1.4.1":"2026-01-19T18:26:03.611Z","1.5.0":"2026-02-12T07:01:06.201Z","1.5.1":"2026-02-12T07:21:40.347Z","1.6.0":"2026-02-18T10:24:43.936Z","1.7.0":"2026-03-07T12:39:04.142Z","1.7.1":"2026-03-08T01:19:28.509Z","1.7.2":"2026-03-08T12:59:51.859Z","1.7.3":"2026-03-29T07:09:58.989Z","1.7.4":"2026-03-29T07:41:14.888Z","1.8.0":"2026-04-02T17:48:41.118Z","1.8.1":"2026-04-09T23:31:39.166Z","1.8.2":"2026-04-11T03:16:09.264Z","1.9.0":"2026-04-11T05:24:57.934Z","1.10.0":"2026-04-22T12:29:16.886Z","1.10.1":"2026-05-25T05:10:58.834Z","1.10.2":"2026-07-26T18:50:42.599Z","1.11.0":"2026-07-30T18:01:20.927Z","1.12.0":"2026-08-05T10:30:42.776Z","1.12.1":"2026-08-13T11:12:44.865Z"},"bugs":{"url":"https://github.com/altqx/libbitsub/issues"},"author":{"name":"altqx"},"license":"MIT","homepage":"https://github.com/altqx/libbitsub#readme","keywords":["libbitsub","pgs","vobsub","dvb","subtitle","wasm","rust","rendering","video","player","videojs","shaka","hls.js","react"],"repository":{"type":"git","url":"git+https://github.com/altqx/libbitsub.git"},"description":"High-performance WASM renderer for graphical subtitles (PGS, VobSub, and DVB)","maintainers":[{"name":"altinat","email":"poiiiii4yy@gmail.com"}],"readme":"# libbit(map)sub\n\nHigh-performance WASM renderer for graphical subtitles (PGS, VobSub, DVB-SUB, and MKS-embedded VobSub), written in Rust.\n\nStarted as a fork of Arcus92's [libpgs-js](https://github.com/Arcus92/libpgs-js), this project was reworked for higher performance and broader format support. It keeps the familiar high-level PGS-oriented API while adding a lower-level parser surface, VobSub support, GPU backends, and worker-backed rendering.\n\n## Features\n\n- PGS (Blu-ray) subtitle parsing and rendering\n- VobSub (DVD) subtitle parsing and rendering\n- DVB-SUB (ETSI EN 300 743) parsing and rendering via PES/ES and `\"DV\"` PTS-framed dumps\n- Matroska `.mks` extraction for embedded `S_VOBSUB` tracks\n- WebGPU, WebGL2, and Canvas2D rendering with automatic fallback\n- Worker-backed parsing/rendering for large subtitle files\n- HTTP Range / streaming loads for large `.sup`, `.sub`, `.idx`, and `.mks` assets (progressive indexing where feasible)\n- Rich layout controls: scale, aspect mode, horizontal/vertical offsets, alignment, bottom padding, safe area, opacity\n- Cue metadata and parser introspection APIs\n- Rendered-frame export helpers for ImageData, ImageBitmap, Blob, and custom canvas targets\n- Frame prefetching and cache control for high-level renderers\n- Automatic format detection and unified loading helpers\n- First-class diagnostics with structured error codes, warning hooks, and render/cache snapshots\n- TypeScript support with exported event and metadata types\n- Optional player integrations for Video.js, Shaka Player, hls.js, and React (core stays dependency-free)\n\n## Showcase\n\n### PGS\n\nhttps://gist.github.com/user-attachments/assets/55ac8e11-1964-4fb9-923e-dcac82dc7703\n\n### VobSub\n\nhttps://gist.github.com/user-attachments/assets/a89ae9fe-23e4-4bc3-8cad-16a3f0fea665\n\n### Live demo\n\nhttps://libbitsub.altqx.com\n\n## Installation\n\nFor pure Rust parser/rendering logic:\n\n```toml\n[dependencies]\nlibbitsub-core = \"1.10.1\"\n```\n\nFor WASM bindings from Rust:\n\n```toml\n[dependencies]\nlibbitsub = \"1.10.1\"\n```\n\nFor JavaScript package managers:\n\n```bash\nnpm install libbitsub\n# or\nbun add libbitsub\n```\n\nFor JSR:\n\n```bash\ndeno add jsr:@altq/libbitsub\n```\n\n## Worker setup\n\nIn most bundler-based projects, no manual worker setup is required. `libbitsub` now resolves the WASM asset relative to the package module URL, so bundlers such as Vite, webpack, and Rollup can emit the asset automatically.\n\nIf your app serves package files in a way that does not expose that emitted WASM asset to the browser, you can still provide the legacy public fallback by copying the WASM file and its JS glue to `/libbitsub/`:\n\n```bash\nmkdir -p public/libbitsub\ncp node_modules/libbitsub/pkg/libbitsub_bg.wasm node_modules/libbitsub/pkg/libbitsub.js public/libbitsub/\n```\n\nThe worker is still created inline. `workerUrl` remains in the option type only for compatibility and does not change runtime behavior.\n\n## Building from source\n\nPrerequisites:\n\n- Rust\n- wasm-pack\n- Bun\n\n```bash\ncargo install wasm-pack\nbun run build\n```\n\n## Quick start\n\nThe WASM module initializes automatically — high-level renderers call `initWasm()` internally, and importing the library triggers a non-blocking pre-init in browser environments. You can use renderers directly without any setup:\n\n```ts\nimport { PgsRenderer } from 'libbitsub'\n\nconst renderer = new PgsRenderer({ video: videoElement, subUrl: '/subtitles/movie.sup' })\n```\n\nFor low-level parsers, you can optionally `await initWasm()` to ensure WASM is ready before calling parser methods:\n\n```ts\nimport { initWasm, PgsParser } from 'libbitsub'\n\nawait initWasm()\nconst parser = new PgsParser()\n```\n\nCalling `initWasm()` multiple times is safe (it deduplicates).\n\n### Worker prewarm (TV / players)\n\nOn devices where the first subtitle track switch should not pay worker + WASM startup cost (for example TV apps), prewarm the shared parsing worker during app startup:\n\n```ts\nimport { warmup, ready, PgsRenderer } from 'libbitsub'\n\n// Fire-and-forget at app boot (safe to call multiple times).\nvoid warmup()\n\n// Before the user changes tracks, ensure the worker is ready.\nawait ready()\n\nconst renderer = new PgsRenderer({ video: videoElement, subContent: trackBytes })\n```\n\n`warmup()` and `ready()` share a single worker-init promise with renderer creation. The shared worker is only published after in-worker WASM initialization succeeds. When Web Workers are unavailable, both resolve immediately and renderers use the main thread.\n\n### Range / streaming loads (TV / slow networks)\n\nURL-based loads (`subUrl` / `idxUrl`) use progressive fetch by default:\n\n- Probe HTTP Range support and, for large assets, download with Range chunks when the origin allows it\n- Stream the response body otherwise and report `load-progress` events\n- **PGS (`.sup`)**: feed chunks into the parser as they arrive so cues can be indexed before the full file finishes\n- **VobSub (`.idx` + `.sub`)**: parse the small `.idx` first for timestamps, then stream/Range-download the `.sub` body and attach packets\n- **MKS**: stream/Range-download the container first (Matroska extraction still needs the assembled payload), then parse\n- **In-memory** `subContent` / `idxContent` remains the simple full-buffer path\n\n```ts\nimport { PgsRenderer } from 'libbitsub'\n\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  // streamingLoad: true,  // default\n  // rangeRequests: true,  // default\n  onEvent: (event) => {\n    if (event.type === 'load-progress') {\n      console.log(event.strategy, event.loadedBytes, event.totalBytes, event.indexedCues)\n    }\n    if (event.type === 'indexed') {\n      console.log('cues ready', event.metadata.cueCount, event.partial ? '(partial)' : '(final)')\n    }\n  }\n})\n```\n\nDisable progressive behavior when you want a single blocking GET:\n\n```ts\nnew PgsRenderer({ video, subUrl, streamingLoad: false, rangeRequests: false })\n```\n\nLow-level helpers are also exported: `probeRangeSupport()`, `fetchSubtitleAsset()`, and `fetchSubtitleText()`.\n\n## Player integrations\n\nOptional adapters ship as **subpath exports**. They wrap the high-level renderers for common players while keeping the core package free of player/React dependencies (peer deps are optional and only needed when you import that adapter).\n\n| Import                   | Adapter                                  | Optional peer       |\n| ------------------------ | ---------------------------------------- | ------------------- |\n| `libbitsub/videojs`      | Video.js plugin (`registerBitSubPlugin`) | `video.js` >= 7     |\n| `libbitsub/shaka`        | `attachBitSubToShaka(player, options)`   | `shaka-player` >= 4 |\n| `libbitsub/hlsjs`        | `attachBitSubToHls(hls, options)`        | `hls.js` >= 1       |\n| `libbitsub/react`        | `useBitSub` / `BitSubOverlay`            | `react` >= 18       |\n| `libbitsub/integrations` | Shared `attachBitSub` controller         | —                   |\n\nCopy-paste recipes live under [`examples/`](./examples).\n\n### Video.js\n\n```ts\nimport videojs from 'video.js'\nimport { registerBitSubPlugin } from 'libbitsub/videojs'\n\nregisterBitSubPlugin(videojs)\nconst player = videojs('my-video')\nconst bitsub = player.bitsub({ subUrl: '/subs/movie.sup' })\nbitsub.load({ subUrl: '/subs/other.sup' })\n```\n\n### Shaka Player\n\n```ts\nimport { attachBitSubToShaka } from 'libbitsub/shaka'\n\nconst bitsub = attachBitSubToShaka(player, { subUrl: '/subs/movie.sup' })\n// later\nbitsub.dispose()\n```\n\n### hls.js\n\n```ts\nimport Hls from 'hls.js'\nimport { attachBitSubToHls } from 'libbitsub/hlsjs'\n\nconst hls = new Hls()\nhls.loadSource(url)\nhls.attachMedia(video)\nconst bitsub = attachBitSubToHls(hls, { subUrl: '/subs/movie.sup' })\n```\n\n### React\n\n```tsx\nimport { useRef } from 'react'\nimport { useBitSub } from 'libbitsub/react'\n\nfunction Player({ src, subUrl }: { src: string; subUrl: string }) {\n  const videoRef = useRef<HTMLVideoElement>(null)\n  useBitSub(videoRef, { subUrl })\n  return (\n    <div style={{ position: 'relative' }}>\n      <video ref={videoRef} src={src} controls playsInline />\n    </div>\n  )\n}\n```\n\nBitmap PGS/VobSub/MKS tracks are external canvas overlays, not native HTML/TextTrack entries. Prefer deep imports so unused adapters stay out of your bundle.\n\n## High-level video renderers\n\nThe high-level API manages subtitle loading, canvas overlay creation, playback sync, resize handling, worker usage, and renderer fallback.\n\n### PGS renderer\n\n```ts\nimport { PgsRenderer } from 'libbitsub'\n\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  debug: true,\n  displaySettings: {\n    scale: 1.1,\n    aspectMode: 'stretch',\n    bottomPadding: 4,\n    safeArea: 5\n  },\n  cacheLimit: 32,\n  prefetchWindow: { before: 1, after: 2 },\n  frameAwareSync: true,\n  onWarning: (warning) => {\n    console.warn(warning.code, warning.message, warning.details)\n  },\n  onEvent: (event) => {\n    if (event.type === 'worker-state') {\n      console.log('worker', event.ready ? 'ready' : 'starting', event.sessionId)\n    }\n  }\n})\n\nrenderer.dispose()\n```\n\nMount into a fullscreen shell or Shadow DOM root, reuse a player-owned canvas,\ncap high-DPI backing-store cost, or bypass automatic backend selection:\n\n```ts\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  container: shadowRoot, // HTMLElement or ShadowRoot; defaults to video.parentElement\n  canvas: playerOverlayCanvas, // optional; remains mounted after dispose()\n  devicePixelRatioCap: 2,\n  backend: 'webgl2' // 'auto' | 'webgpu' | 'webgl2' | 'worker-offscreen' | 'canvas2d'\n})\n```\n\nAn explicitly requested GPU or worker backend falls back to Canvas2D if it cannot\ninitialize. A supplied `container` takes precedence over the canvas's current parent;\nwithout one, an already-mounted caller canvas stays in its existing host. Automatic\nselection does not transfer a caller-owned canvas to a worker; request\n`backend: 'worker-offscreen'` explicitly to allow that ownership transfer.\n\nFrame-aware synchronization is enabled by default. On browsers with\n`requestVideoFrameCallback()`, cue lookup uses the `mediaTime` of the frame sent\nto the compositor instead of polling `video.currentTime`. Older browsers fall\nback to `requestAnimationFrame()` automatically; set `frameAwareSync: false` to\nforce that compatibility path. The active path is available as\n`renderer.getSynchronizationMode()` and as `getStats().syncMode`.\n\n### VobSub renderer\n\n```ts\nimport { VobSubRenderer } from 'libbitsub'\n\nconst renderer = new VobSubRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sub',\n  idxUrl: '/subtitles/movie.idx'\n})\n\nconst mksRenderer = new VobSubRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.mks',\n  fileName: 'movie.mks'\n})\n\nrenderer.setDebandThreshold(64)\nrenderer.setDebandRange(15)\n```\n\n### DVB renderer\n\n```ts\nimport { DvbRenderer } from 'libbitsub'\n\nconst renderer = new DvbRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/track.dvb'\n})\n```\n\nDVB dumps use libbitsub framing:\n\n```\n\"DV\" | pts_90k_be_u32 | payload_len_be_u32 | payload…\n```\n\n`payload` is a PES data field (`0x20 0x00 …`) or raw segments (`sync_byte 0x0F`). Concatenated MPEG PES packets (`00 00 01 BD`) with PTS are also accepted.\n\nThe DVB decoder renders bitmap object coding method 0. Character-string and reserved object coding methods are ignored.\n\n### Live / push streams\n\nPGS and DVB renderers can start without a URL or in-memory subtitle file. Push transport or demuxer chunks as they arrive; calls are processed in order even when they are made before renderer initialization completes.\n\n```ts\nimport { DvbRenderer } from 'libbitsub'\n\nconst renderer = new DvbRenderer({ video: videoElement })\n\nconst added = await renderer.append(dvbPesChunk) // newly indexed cues\nconst total = await renderer.flush() // finalize trailing input; total indexed cues\n\nawait renderer.reset() // clear cues/caches/display, then reuse the same renderer\nawait renderer.append(nextChannelChunk)\n```\n\n`append()` accepts `Uint8Array` or `ArrayBuffer` without detaching the caller's buffer. `flush()` discards incomplete trailing bytes; later appends are still accepted. `reset()` keeps the canvas, worker session, render loop, and configuration alive while clearing the stream state. VobSub does not expose the push API because it depends on its `.idx`/container index.\n\n### Automatic format detection\n\n```ts\nimport { createAutoSubtitleRenderer } from 'libbitsub'\n\nconst renderer = createAutoSubtitleRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/track.sup',\n  fileName: 'track.sup'\n})\n```\n\nAutomatic detection uses file hints when available and otherwise inspects the binary payload. `.idx` / `idxContent` still means VobSub. Bare `.sub` is content-probed for DVB before VobSub. `.mks` sources are treated as VobSub only when they contain an embedded `S_VOBSUB` track. If the format cannot be identified confidently, it throws instead of silently forcing a parser.\n\n## Layout controls\n\nBoth `PgsRenderer` and `VobSubRenderer` support runtime layout changes:\n\n```ts\nrenderer.setDisplaySettings({\n  scale: 1.2,\n  aspectMode: 'stretch',\n  verticalOffset: -8,\n  horizontalOffset: 2,\n  horizontalAlign: 'center',\n  bottomPadding: 6,\n  safeArea: 5,\n  opacity: 0.92\n})\n\nconst settings = renderer.getDisplaySettings()\nrenderer.resetDisplaySettings()\n```\n\n`aspectMode` controls how the subtitle track's own presentation size is mapped into the video content box:\n\n- `stretch` default behavior, scales X/Y independently.\n- `contain` preserves subtitle bitmap shape and fits the track inside the visible video box.\n- `cover` preserves subtitle bitmap shape while filling the video box.\n\n`SubtitleDisplaySettings`:\n\n| Field              | Type                                | Range / values | Meaning                                                        |\n| ------------------ | ----------------------------------- | -------------- | -------------------------------------------------------------- |\n| `scale`            | number                              | `0.1` to `3.0` | Overall subtitle scale                                         |\n| `aspectMode`       | `'stretch' \\| 'contain' \\| 'cover'` | fixed set      | How subtitle screen coordinates map into the visible video box |\n| `verticalOffset`   | number                              | `-50` to `50`  | Vertical movement as percent of video height                   |\n| `horizontalOffset` | number                              | `-50` to `50`  | Horizontal movement as percent of video width                  |\n| `horizontalAlign`  | `'left' \\| 'center' \\| 'right'`     | fixed set      | Anchor used when scaling subtitle groups                       |\n| `bottomPadding`    | number                              | `0` to `50`    | Extra padding from the bottom edge                             |\n| `safeArea`         | number                              | `0` to `25`    | Clamp subtitles inside a video-safe area                       |\n| `opacity`          | number                              | `0.0` to `1.0` | Global subtitle opacity                                        |\n\n## Metadata and introspection\n\nHigh-level renderers expose parser and cue metadata:\n\n```ts\nconst metadata = renderer.getMetadata()\nconst currentCue = renderer.getCurrentCueMetadata()\nconst cue42 = renderer.getCueMetadata(42)\nconst stats = renderer.getStats()\nconst cache = renderer.getCacheStats()\nconst lastRender = renderer.getLastRenderInfo()\n```\n\nLow-level parsers expose the same model:\n\n```ts\nimport { PgsParser, UnifiedSubtitleParser, VobSubParserLowLevel, openSubtitles } from 'libbitsub'\n\nconst vob = new VobSubParserLowLevel()\nvob.loadFromMks(new Uint8Array(mksBuffer))\n\nconst parser = new UnifiedSubtitleParser()\nconst detected = parser.loadAuto({ data: subtitleBytes, fileName: 'track.mks' })\n\nconst opened = await openSubtitles({ data: subtitleBytes, fileName: 'track.mks' })\n\nconsole.log(detected)\nconsole.log(parser.getMetadata())\nconsole.log(parser.getCueMetadata(0))\nconsole.log(opened.format)\nopened.dispose()\n```\n\nMetadata includes:\n\n- Track format, cue count, and presentation size\n- Cue start/end time and duration\n- Rendered cue bounds when available\n- PGS composition count, palette ID, composition state\n- VobSub language, track ID, IDX metadata presence, file position where available\n\n## One-shot auto API\n\nIf you do not care whether the input is PGS or VobSub and only want one stable low-level surface, use `openSubtitles()`.\n\n```ts\nimport { openSubtitles } from 'libbitsub'\n\nconst subtitles = await openSubtitles({\n  data: subtitleBytes,\n  fileName: 'track.sup'\n})\n\nconsole.log(subtitles.format)\nconsole.log(subtitles.metadata)\nconsole.log(subtitles.timestamps)\n\nconst frame = subtitles.renderAtTimestamp(120.5)\nconst rendered = subtitles.renderFrameDataAtTimestamp(120.5)\nconst cue = subtitles.getCueMetadata(0)\n\nsubtitles.dispose()\n```\n\n`openSubtitles()` initializes WASM for you, auto-detects the format, loads the subtitle source, and returns a normalized handle with snapshot properties plus shared low-level helpers such as `renderAtIndex()`, `renderAtTimestamp()`, `renderFrameDataAtIndex()`, `renderFrameDataAtTimestamp()`, `getCueMetadata()`, `getLastRenderIssue()`, `clearCache()`, and `dispose()`.\n\nLike `UnifiedSubtitleParser.loadAuto()`, this is a low-level in-memory API: pass binary subtitle content via `data` or `subData`, and optionally include `fileName`, `idxContent`, `idxUrl`, or `subUrl` as format hints or companion metadata.\n\n## Frame export helpers\n\nLow-level parser output can be flattened into a single exportable frame for previews, editors, snapshots, fixture generation, or visual diffing.\n\n```ts\nimport { PgsParser, initWasm, renderFrameData, toBlob, toCanvas, toImageBitmap } from 'libbitsub'\n\nawait initWasm()\n\nconst parser = new PgsParser()\nparser.load(new Uint8Array(arrayBuffer))\n\nconst subtitleFrame = parser.renderAtTimestamp(120.5)\nconst rendered = subtitleFrame ? renderFrameData(subtitleFrame, { crop: 'bounds' }) : null\n\nif (rendered) {\n  const canvas = toCanvas(rendered)\n  const bitmap = await toImageBitmap(rendered)\n  const pngBlob = await toBlob(rendered)\n\n  console.log({\n    width: rendered.imageData.width,\n    height: rendered.imageData.height,\n    offsetX: rendered.offsetX,\n    offsetY: rendered.offsetY,\n    bounds: rendered.bounds,\n    canvas,\n    bitmap,\n    pngBlob\n  })\n}\n```\n\nParser convenience methods avoid the extra `renderAtTimestamp()` step:\n\n```ts\nconst rendered = parser.renderFrameDataAtTimestamp(120.5)\nconst fullScreenFrame = parser.renderFrameDataAtIndex(42, { crop: 'screen' })\n```\n\nCropping modes:\n\n- `bounds` is the default. It returns a tightly cropped composed image and records where that image belongs in the original subtitle presentation area via `offsetX` and `offsetY`.\n- `screen` preserves the full subtitle presentation dimensions, which is useful when you need stable frame sizes for test fixtures or when drawing into a presentation-sized surface.\n\nDrawing behavior:\n\n- `toCanvas(frame)` creates a new canvas sized to the rendered export.\n- Passing an existing canvas target resizes it by default before drawing.\n- Passing an existing 2D context draws in place by default, which is useful when you want subtitles composited into your own pre-sized surface.\n\n## Diagnostics mode\n\nEnable `debug: true` on high-level renderers when you need richer field diagnostics for malformed subtitle files. In debug mode, libbitsub records the most recent render attempt and emits structured warnings in addition to the existing lifecycle events.\n\n```ts\nimport { PgsRenderer, SubtitleDiagnosticError } from 'libbitsub'\n\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  debug: true,\n  onWarning: (warning) => {\n    console.warn('[warning]', warning.code, warning.message, warning.details)\n  },\n  onError: (error) => {\n    if (error instanceof SubtitleDiagnosticError) {\n      console.error('[error]', error.code, error.message, error.details)\n      return\n    }\n\n    console.error(error)\n  }\n})\n\nconsole.log(renderer.getStats())\nconsole.log(renderer.getCacheStats())\nconsole.log(renderer.getLastRenderInfo())\n```\n\nStructured diagnostic error codes currently include:\n\n- `UNSUPPORTED_FORMAT`\n- `BAD_IDX`\n- `MISSING_PALETTE`\n- `TRACK_NOT_FOUND`\n- `MISSING_INPUT`\n- `FETCH_FAILED`\n- `INVALID_SUBTITLE_DATA`\n- `WORKER_FALLBACK`\n- `UNKNOWN`\n\nWarnings use a smaller code set focused on non-fatal conditions such as malformed bitmap buffers, worker fallback, progressive/Range fallback (`RANGE_FALLBACK`), and missing PGS palettes during render.\n\n## MKS security and corruption checks\n\nThe `.mks` path validates Matroska structure before handing payloads to the VobSub decoder. Embedded subtitle blocks are size-checked, compressed blocks use bounded zlib inflation, and extracted SPU packets are rejected if their declared payload lengths or control offsets are inconsistent. Malformed or oversized `.mks` payloads fail fast instead of being partially decoded.\n\n## Cache control and prefetching\n\nHigh-level renderers expose cache helpers:\n\n```ts\nrenderer.setCacheLimit(48)\nawait renderer.prefetchRange(10, 20)\nawait renderer.prefetchAroundTime(videoElement.currentTime)\nrenderer.clearFrameCache()\n```\n\n`clearFrameCache()` clears both the renderer-side frame map and the underlying parser cache for the active session.\n\n## Observability events\n\nUse `onEvent` to observe renderer lifecycle and runtime behavior:\n\n```ts\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  onEvent: (event) => {\n    switch (event.type) {\n      case 'loading':\n      case 'load-progress':\n      case 'indexed':\n      case 'loaded':\n      case 'error':\n      case 'warning':\n      case 'renderer-change':\n      case 'worker-state':\n      case 'cache-change':\n      case 'cue-change':\n      case 'stats':\n        console.log(event)\n        break\n    }\n  }\n})\n```\n\n### Example: event-driven prefetch and cue inspection\n\n```ts\nimport { PgsRenderer } from 'libbitsub'\n\nconst renderer = new PgsRenderer({\n  video: videoElement,\n  subUrl: '/subtitles/movie.sup',\n  prefetchWindow: { before: 1, after: 2 },\n  onEvent: async (event) => {\n    switch (event.type) {\n      case 'loaded': {\n        console.log('track metadata', event.metadata)\n        await renderer.prefetchAroundTime(videoElement.currentTime)\n        break\n      }\n\n      case 'cue-change': {\n        if (!event.cue) {\n          console.log('no active subtitle cue')\n          break\n        }\n\n        const cue = renderer.getCueMetadata(event.cue.index)\n        console.log('active cue', {\n          index: cue?.index,\n          startTime: cue?.startTime,\n          endTime: cue?.endTime,\n          bounds: cue?.bounds,\n          compositionCount: cue?.compositionCount\n        })\n        break\n      }\n\n      case 'cache-change': {\n        console.log('cache', `${event.cachedFrames}/${event.cacheLimit}`, 'pending', event.pendingRenders)\n        break\n      }\n    }\n  }\n})\n\nvideoElement.addEventListener('seeked', () => {\n  renderer.prefetchAroundTime(videoElement.currentTime).catch(console.error)\n})\n\n// later\nrenderer.dispose()\n```\n\nEmitted events:\n\n| Event             | Payload                                                                           |\n| ----------------- | --------------------------------------------------------------------------------- |\n| `loading`         | subtitle format                                                                   |\n| `loaded`          | subtitle format and parser metadata                                               |\n| `error`           | subtitle format and `SubtitleDiagnosticErrorLike`                                 |\n| `warning`         | `SubtitleDiagnosticWarning`                                                       |\n| `renderer-change` | active backend: `webgpu`, `webgl2`, `worker-offscreen`, or `canvas2d`             |\n| `worker-state`    | whether worker mode is enabled, ready, fallback status, and the active session ID |\n| `cache-change`    | cached frame count, pending renders, and configured cache limit                   |\n| `cue-change`      | current cue metadata or `null` when nothing is displayed                          |\n| `stats`           | periodic renderer stats snapshot                                                  |\n\n## Performance stats\n\n```ts\nconst stats = renderer.getStats()\n```\n\n`SubtitleRendererStats` includes:\n\n- `framesRendered`\n- `framesDropped`\n- `avgRenderTime`\n- `maxRenderTime`\n- `minRenderTime`\n- `lastRenderTime`\n- `renderFps`\n- `usingWorker`\n- `cachedFrames`\n- `pendingRenders`\n- `totalEntries`\n- `currentIndex`\n- `syncMode`\n\n`getCacheStats()` adds worker/session state for the current renderer cache, while `getLastRenderInfo()` exposes the most recent render outcome with a status of `rendered`, `cleared`, `pending`, `empty`, or `failed`.\n\n## Low-level APIs\n\n### PGS parser\n\n```ts\nimport { PgsParser } from 'libbitsub'\n\nconst parser = new PgsParser()\nparser.load(new Uint8Array(arrayBuffer))\n\nconst timestamps = parser.getTimestamps()\nconst frame = parser.renderAtIndex(0)\nconst rendered = parser.renderFrameDataAtTimestamp(120.5)\nconst metadata = parser.getMetadata()\nconst lastIssue = parser.getLastRenderIssue()\n```\n\n### VobSub parser\n\n```ts\nimport { VobSubParserLowLevel } from 'libbitsub'\n\nconst parser = new VobSubParserLowLevel()\nparser.loadFromData(idxContent, new Uint8Array(subArrayBuffer))\nparser.setDebandEnabled(true)\n\nconst frame = parser.renderAtTimestamp(120.5)\nconst rendered = parser.renderFrameDataAtIndex(0, { crop: 'screen' })\nconst cue = parser.getCueMetadata(0)\nconst lastIssue = parser.getLastRenderIssue()\n```\n\n### Unified parser\n\n```ts\nimport { UnifiedSubtitleParser, detectSubtitleFormat } from 'libbitsub'\n\nconst format = detectSubtitleFormat({ data: subtitleBytes, fileName: 'track.sup' })\n\nconst parser = new UnifiedSubtitleParser({\n  debug: true,\n  onWarning: (warning) => console.warn(warning.code, warning.message)\n})\nparser.loadAuto({ data: subtitleBytes, fileName: 'track.sup' })\n```\n\n## GPU / present backends\n\nlibbitsub prefers:\n\n1. WebGPU (main-thread present)\n2. WebGL2 (main-thread present)\n3. Worker OffscreenCanvas (decode + Canvas2D present off the UI thread)\n4. Canvas2D (main-thread fallback for older TVs)\n\n```ts\nimport { getRuntimeCapabilities, isWebGPUSupported } from 'libbitsub'\n\nconsole.log({\n  webgpu: isWebGPUSupported(),\n  capabilities: getRuntimeCapabilities()\n})\n```\n\nWhen Worker OffscreenCanvas is selected, composition/present moves into the shared worker —\nnot only parsing — which reduces UI stalls during subtitle track switches on constrained devices.\nThe existing transferable RGBA path remains for main-thread GPU/Canvas2D present.\n\nUse `onWebGPUFallback`, `onWebGL2Fallback`, `onEvent`, `onWarning`, or `getRuntimeCapabilities()`\nto observe or explain the active backend path. Set `offscreenRender: false` to force main-thread\nCanvas2D on the software tier.\n\n## Compatibility & visual regression\n\nA formal suite locks decoder edge cases and backend pixel parity:\n\n- Malformed PGS / VobSub / MKS fixtures\n- Palette edge cases and zero-length RLE runs\n- Alternate display sizes (SD → 4K)\n- Slow worker startup / shared init\n- Pixel-level goldens across software, Canvas2D, WebGL2, and WebGPU\n\n```bash\nbun run test        # Rust core (includes compatibility fixtures)\nbun run test:ts     # TypeScript fixtures, goldens, worker startup\nbun run test:visual # Headless Chromium backend parity\nbun run test:all    # All of the above\n```\n\nBrowser/device support matrix (including webOS TV): [docs/COMPATIBILITY.md](./docs/COMPATIBILITY.md).\n\n## Notes\n\n- Worker mode is shared, but subtitle parser state is isolated per renderer session.\n- Multiple subtitle renderers can coexist without reusing the same parser instance.\n- If worker startup fails, the high-level API falls back to main-thread parsing and emits a `WORKER_FALLBACK` warning/event when diagnostics are being observed.\n- The library only handles bitmap subtitle formats. It does not parse text subtitle formats such as SRT or ASS.\n\n## API Reference\n\n### Top-level exports\n\n- `initWasm(): Promise<void>` initializes the WASM module. Called automatically by high-level renderers and on first import in browser environments. Safe to call multiple times. Only needed explicitly for low-level parser usage.\n- `isWasmInitialized(): boolean` reports whether initialization has completed.\n- `warmup(): Promise<void>` / `ready(): Promise<void>` pre-initialize the shared subtitle worker (including in-worker WASM). Safe to call multiple times; concurrent callers share one init promise. Prefer these in TV/player apps before the first track switch.\n- `isWorkerAvailable(): boolean` / `isWorkerReady(): boolean` report worker support and whether the shared worker has finished initializing.\n- `isWebGPUSupported(): boolean` checks WebGPU support.\n- `detectSubtitleFormat(source: AutoSubtitleSource): 'pgs' | 'vobsub' | 'dvb' | null` detects the bitmap subtitle format from file hints or binary data.\n- `createAutoSubtitleRenderer(options: AutoVideoSubtitleOptions): PgsRenderer | VobSubRenderer | DvbRenderer` creates a high-level renderer after format detection.\n- `openSubtitles(source, options?): Promise<OpenedSubtitles>` initializes WASM, auto-detects the low-level format, and returns a normalized parser handle.\n- `probeRangeSupport(url, options?)` / `fetchSubtitleAsset(url, options?, onChunk?)` / `fetchSubtitleText(url, options?)` perform Range-aware progressive asset downloads for custom loaders.\n- `renderFrameData(frame, options?): SubtitleRenderedFrameData | null` composes a `SubtitleData` frame into exportable pixels.\n- `toCanvas(frame, target?, options?): HTMLCanvasElement | OffscreenCanvas` draws a rendered frame to a new or existing canvas/context.\n- `toImageBitmap(frame, options?): Promise<ImageBitmap>` creates an `ImageBitmap` from a subtitle frame export.\n- `toBlob(frame, type?, quality?, options?): Promise<Blob>` encodes a subtitle frame export, defaulting to PNG.\n- `SubtitleDiagnosticError` is the structured error class libbitsub uses for coded diagnostics.\n- `createSubtitleDiagnosticError(...)` and `normalizeSubtitleError(...)` are exported for integrations that want to preserve libbitsub-style error codes.\n- Legacy aliases remain exported: `PGSRenderer`, `VobsubRenderer`, `UnifiedSubtitleRenderer`.\n- Optional integration entry points: `libbitsub/videojs`, `libbitsub/shaka`, `libbitsub/hlsjs`, `libbitsub/react`, `libbitsub/integrations` (see [examples/](./examples) and [references/api.md](./references/api.md)).\n\n### High-level renderers\n\n#### `PgsRenderer`\n\n- `constructor(options: VideoSubtitleOptions)` creates a video-synced PGS renderer.\n- `getDisplaySettings(): SubtitleDisplaySettings` returns the current layout settings.\n- `setDisplaySettings(settings: Partial<SubtitleDisplaySettings>): void` updates layout settings.\n- `resetDisplaySettings(): void` resets layout settings to defaults.\n- `getStats(): SubtitleRendererStats` returns render statistics.\n- `getCacheStats(): SubtitleCacheStats` returns cache occupancy, worker readiness, and session ID details.\n- `getLastRenderInfo(): SubtitleLastRenderInfo | null` returns the last render attempt recorded in debug mode.\n- `getMetadata(): SubtitleParserMetadata | null` returns track-level metadata.\n- `getCurrentCueMetadata(): SubtitleCueMetadata | null` returns the currently displayed cue metadata.\n- `getCueMetadata(index: number): SubtitleCueMetadata | null` returns metadata for a specific cue.\n- `getCacheLimit(): number` returns the active frame-cache limit.\n- `setCacheLimit(limit: number): void` updates the frame-cache limit.\n- `clearFrameCache(): void` clears the renderer-side and parser-side frame cache.\n- `prefetchRange(startIndex: number, endIndex: number): Promise<void>` prefetches decoded frames for a cue range.\n- `prefetchAroundTime(time: number, before?: number, after?: number): Promise<void>` prefetches around a playback time in seconds.\n- `append(data: Uint8Array | ArrayBuffer): Promise<number>` pushes live bytes and returns newly indexed cues.\n- `flush(): Promise<number>` finalizes trailing input and returns the total cue count.\n- `reset(): Promise<void>` clears live parser, cue, cache, and presentation state for reuse.\n- `dispose(): void` releases DOM, parser, and worker resources.\n\n#### `VobSubRenderer`\n\n- Supports the common `PgsRenderer` methods above, except `append()`, `flush()`, and `reset()`.\n- `setDebandEnabled(enabled: boolean): void` enables or disables debanding.\n- `setDebandThreshold(threshold: number): void` updates the deband threshold.\n- `setDebandRange(range: number): void` updates the deband sample range.\n- `debandEnabled: boolean` reports whether debanding is enabled.\n\n#### `DvbRenderer`\n\n- Supports all `PgsRenderer` methods above, including the live push API (no debanding).\n\n### Low-level parsers\n\n#### `PgsParser`\n\n- `load(data: Uint8Array): number` loads PGS data and returns the cue count (simple in-memory path).\n- `reset(): void` / `feed(data: Uint8Array): number` / `finishFeed(): number` progressive indexing APIs for streamed chunks.\n- `pendingLen: number` incomplete trailing bytes retained between `feed()` calls.\n- `getTimestamps(): Float64Array` returns cue timestamps in milliseconds.\n- `count: number` returns the number of cues.\n- `findIndexAtTimestamp(timeSeconds: number): number` finds the cue index for a playback time in seconds.\n- `renderAtIndex(index: number): SubtitleData | undefined` renders a cue by index.\n- `renderAtTimestamp(timeSeconds: number): SubtitleData | undefined` renders a cue at a playback time.\n- `getMetadata(): SubtitleParserMetadata` returns parser metadata.\n- `getCueMetadata(index: number): SubtitleCueMetadata | null` returns cue metadata.\n- `clearCache(): void` clears parser-side caches.\n- `dispose(): void` frees parser resources.\n\n#### `DvbParser`\n\n- Same progressive surface as `PgsParser` for `\"DV\"`-framed dumps and MPEG PES streams.\n- `load(data: Uint8Array): number` / `feed` / `finishFeed` / `renderAtIndex` / `renderAtTimestamp` / `getMetadata` / `getCueMetadata` / `dispose`.\n- `getEndTimestamps(): Float64Array` returns the page-timeout-aware cue end timestamps in milliseconds.\n\n#### `VobSubParserLowLevel`\n\n- `loadFromData(idxContent: string, subData: Uint8Array): void` loads IDX and SUB data (simple in-memory path).\n- `loadFromIdx(idxContent: string): void` indexes timestamps from IDX before packet bytes arrive.\n- `attachSubData(subData: Uint8Array): void` attaches `.sub` packets after an IDX-first load.\n- `hasSubData: boolean` whether packet bytes are currently attached.\n- `loadFromSubOnly(subData: Uint8Array): void` loads SUB-only VobSub data.\n- `getTimestamps(): Float64Array`, `count`, `findIndexAtTimestamp()`, `renderAtIndex()`, `renderAtTimestamp()`, `getMetadata()`, `getCueMetadata()`, `clearCache()`, and `dispose()` behave like `PgsParser`.\n- `setDebandEnabled(enabled: boolean): void`, `setDebandThreshold(threshold: number): void`, `setDebandRange(range: number): void`, and `debandEnabled` control debanding.\n\n#### `UnifiedSubtitleParser`\n\n- `loadPgs(data: Uint8Array): number` loads PGS data.\n- `loadVobSub(idxContent: string, subData: Uint8Array): void` loads VobSub from IDX and SUB.\n- `loadVobSubOnly(subData: Uint8Array): void` loads SUB-only VobSub data.\n- `loadDvb(data: Uint8Array): number` loads DVB data.\n- `loadAuto(source: AutoSubtitleSource): SubtitleFormatName` detects and loads a supported bitmap subtitle format.\n- `format: 'pgs' | 'vobsub' | 'dvb' | null` returns the active format.\n- `getTimestamps()`, `count`, `findIndexAtTimestamp()`, `renderAtIndex()`, `renderAtTimestamp()`, `getMetadata()`, `getCueMetadata()`, `clearCache()`, and `dispose()` are available as on the format-specific parsers.\n\n### Core option and data types\n\n#### `VideoSubtitleOptions`\n\n```ts\ninterface VideoSubtitleOptions {\n  video: HTMLVideoElement\n  container?: HTMLElement | ShadowRoot\n  canvas?: HTMLCanvasElement\n  devicePixelRatioCap?: number\n  backend?: 'auto' | 'webgpu' | 'webgl2' | 'worker-offscreen' | 'canvas2d'\n  subUrl?: string\n  subContent?: ArrayBuffer\n  workerUrl?: string\n  onLoading?: () => void\n  onLoaded?: () => void\n  onError?: (error: Error) => void\n  onWebGPUFallback?: () => void\n  onWebGL2Fallback?: () => void\n  offscreenRender?: boolean // default true — Worker OffscreenCanvas on Canvas2D tier\n  frameAwareSync?: boolean // default true — sync to presented-frame mediaTime when available\n  displaySettings?: Partial<SubtitleDisplaySettings>\n  cacheLimit?: number\n  prefetchWindow?: {\n    before?: number\n    after?: number\n  }\n  streamingLoad?: boolean // default true — progressive URL loads\n  rangeRequests?: boolean // default true — use HTTP Range when supported\n  onEvent?: (event: SubtitleRendererEvent) => void\n}\n```\n\n#### `VideoVobSubOptions`\n\n```ts\ninterface VideoVobSubOptions extends VideoSubtitleOptions {\n  idxUrl?: string\n  idxContent?: string\n}\n```\n\n#### `AutoVideoSubtitleOptions`\n\n```ts\ninterface AutoVideoSubtitleOptions extends Omit<VideoVobSubOptions, 'subUrl' | 'idxUrl'> {\n  subUrl?: string\n  idxUrl?: string\n  fileName?: string\n}\n```\n\n#### `SubtitleDisplaySettings`\n\n```ts\ninterface SubtitleDisplaySettings {\n  scale: number\n  aspectMode: 'stretch' | 'contain' | 'cover'\n  verticalOffset: number\n  horizontalOffset: number\n  horizontalAlign: 'left' | 'center' | 'right'\n  bottomPadding: number\n  safeArea: number\n  opacity: number\n}\n```\n\n#### `SubtitleRendererEvent`\n\n```ts\ntype SubtitleRendererEvent =\n  | { type: 'loading'; format: SubtitleFormatName }\n  | { type: 'loaded'; format: SubtitleFormatName; metadata: SubtitleParserMetadata }\n  | { type: 'error'; format: SubtitleFormatName; error: SubtitleDiagnosticErrorLike }\n  | { type: 'warning'; warning: SubtitleDiagnosticWarning }\n  | { type: 'renderer-change'; renderer: 'webgpu' | 'webgl2' | 'worker-offscreen' | 'canvas2d' }\n  | { type: 'worker-state'; enabled: boolean; ready: boolean; sessionId: string | null; fallback?: boolean }\n  | { type: 'cache-change'; cachedFrames: number; pendingRenders: number; cacheLimit: number }\n  | { type: 'cue-change'; cue: SubtitleCueMetadata | null }\n  | { type: 'stats'; stats: SubtitleRendererStatsSnapshot }\n```\n\n#### `SubtitleRendererStats` and `SubtitleRendererStatsSnapshot`\n\nBoth shapes expose:\n\n- `framesRendered`\n- `framesDropped`\n- `avgRenderTime`\n- `maxRenderTime`\n- `minRenderTime`\n- `lastRenderTime`\n- `renderFps`\n- `usingWorker`\n- `cachedFrames`\n- `pendingRenders`\n- `totalEntries`\n- `currentIndex`\n\nRelated diagnostics shapes:\n\n- `SubtitleCacheStats` from `getCacheStats()`.\n- `SubtitleLastRenderInfo` from `getLastRenderInfo()` when `debug` is enabled.\n\n#### `SubtitleParserMetadata`\n\n```ts\ninterface SubtitleParserMetadata {\n  format: 'pgs' | 'vobsub' | 'dvb'\n  cueCount: number\n  screenWidth: number\n  screenHeight: number\n  language?: string | null\n  trackId?: string | null\n  hasIdxMetadata?: boolean\n}\n```\n\n#### `SubtitleCueMetadata`\n\n```ts\ninterface SubtitleCueMetadata {\n  index: number\n  format: 'pgs' | 'vobsub'\n  startTime: number\n  endTime: number\n  duration: number\n  screenWidth: number\n  screenHeight: number\n  bounds: SubtitleCueBounds | null\n  compositionCount: number\n  paletteId?: number\n  compositionState?: number\n  language?: string | null\n  trackId?: string | null\n  filePosition?: number\n}\n```\n\n#### `AutoSubtitleSource`\n\n```ts\ninterface AutoSubtitleSource {\n  data?: ArrayBuffer | Uint8Array\n  subData?: ArrayBuffer | Uint8Array\n  idxContent?: string\n  fileName?: string\n  subUrl?: string\n  idxUrl?: string\n}\n```\n\n#### `SubtitleData`\n\n```ts\ninterface SubtitleData {\n  width: number\n  height: number\n  compositionData: SubtitleCompositionData[]\n}\n\ninterface SubtitleCompositionData {\n  pixelData: ImageData\n  x: number\n  y: number\n}\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}