{"_id":"@anorak-games/react-native-video-texture","_rev":"9-95ba1e61ff195c5b823396dcaaf97086","name":"@anorak-games/react-native-video-texture","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"@anorak-games/react-native-video-texture","version":"0.2.0","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.2.0","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"0454a9279458caed2694a3936e2c17b76b05358f","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.2.0.tgz","fileCount":59,"integrity":"sha512-8eYLqwB6lfJbQoI1Ao1j0jGe9jot+SfA6hufPdWUTURupeamhiSklzsa+z4AJV8usOTwTajfpHekDoizS0+9UQ==","signatures":[{"sig":"MEQCICK8UcUeZpp459vNIX7to25Zl8rzvexkxHfzMcRWJa8pAiA58hOmtw+v+JOsJXMlaYJI0S3TA6h8MKwLfgBuaR71vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193150},"main":"build/index.js","types":"build/index.d.ts","gitHead":"c6b9e6e78c0b1b054be06f5c5557040a2bf63127","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","release:minor":"npm version minor && npm publish --access public","prepublishOnly":"npm test"},"_npmUser":{"name":"anorakbot","email":"farms+npmbot@anorak.games"},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.16.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.2.0_1785826786062_0.5807649273499573","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anorak-games/react-native-video-texture","version":"0.2.1","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.2.1","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"5168ae5d5eaf6770a83c727d04967327ae4e0bb9","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.2.1.tgz","fileCount":59,"integrity":"sha512-mPkZMs90ltWaRCBfuu0n0YPR7D42BN3uqlXH4Fl9DGdBHHZkVDgeDWGx8YpiFH+q4z7nBXPdN7BfU1LRjJMC9g==","signatures":[{"sig":"MEUCIBswM1Hb5qT5xKFJN3zWwYTCGVzMm3kmXH8xzB0NL/QMAiEAos5BdlUOpQBI4kHwiqmHW6KGcVi56Ko2Oo3hrABeAfw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193269},"main":"build/index.js","types":"build/index.d.ts","gitHead":"4841e9a2afeb41c8bb4437c0927ee16f5e0674ff","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.2.1_1785858959561_0.9779265067333895","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@anorak-games/react-native-video-texture","version":"0.3.0","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.3.0","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"ecab2f0eb162134827ae4a51cb4fa92995fc014d","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.3.0.tgz","fileCount":60,"integrity":"sha512-A/yE7Sr6tAbtlS+NCNeG1+x7nmNRUjl/lhlunsNN/1VXWD0pgRxcFsBY4KropsCk+VwzVgsMtBooiD0PPWuEhA==","signatures":[{"sig":"MEUCIHgeuxKzWlWs41lQt0t4n3SfC8UPtMM8YQF7N4CwKcIGAiEAsMppPhoT/pOcd60/MdGFwJTwUWeLt+7ZG/E222ouGWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":221397},"main":"build/index.js","types":"build/index.d.ts","gitHead":"1d6b2dd04f152e3f32d32ae3cd65a2d93f470791","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.3.0_1785921167098_0.8129982024326634","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@anorak-games/react-native-video-texture","version":"0.4.0","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.4.0","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"75c803cd23c7a41060996faa0baa4a179ff267fc","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.4.0.tgz","fileCount":54,"integrity":"sha512-Q8Va4moJP8p6NYW0pB+8yixRADN++fBA+cS90n3dhnU6lAeb5C3tvzLOoQasrjT8CRrvAu8VCzPIB2EB2O7fgQ==","signatures":[{"sig":"MEYCIQCUuCRY17mA+jUEM6bAKaFWhJC4EQ5T+UlTbHsFiIp+QQIhAKFoKawfXkH8McBNin9f6ZN45aVTXpJ6Kzv6wa72vhJv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197280},"main":"build/index.js","types":"build/index.d.ts","gitHead":"7f83ceef487e311c0e2356311cc785c1f518d6ea","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.4.0_1785966452401_0.10392734384058633","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@anorak-games/react-native-video-texture","version":"0.4.1","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.4.1","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"fe06f4fac880bf496fc45b10a914b7d4f558feae","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.4.1.tgz","fileCount":54,"integrity":"sha512-xk0yHIuobCK9LMa2FLGuPJwB8voT0upKPVUNCnUhFbPjk/WnijF1DDsYLshou545o00wVfPmL9FscG+JaLq/vQ==","signatures":[{"sig":"MEQCICn8oHQHAuPnKoBbOFD2H5NrlJiDXNx2zlzGYwOFzlHBAiAdee3ZSHy+DMNl1Jbj/NMQOKfvKrSLk+ULYVFElCQQZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197287},"main":"build/index.js","types":"build/index.d.ts","gitHead":"52f24f34267a2a5c25cd4c8d5c26b42f1dd0a22a","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.4.1_1786025137544_0.8204289289389086","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@anorak-games/react-native-video-texture","version":"0.4.2","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.4.2","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"f0b39e495244b1dfbd643fef72015967004a86cb","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.4.2.tgz","fileCount":54,"integrity":"sha512-jdokHk8jE2qoHgEPswSLAY/cwJExKjn1GTcoX2gH4UkAVevwkeqgpefQq3YDCdw6DyV7wwSijSeDjatjEuAxWg==","signatures":[{"sig":"MEQCIAiQGtXANIBiJWnpY66z9phJTgtaUXitKfYOIoPZTbmzAiAxgjxduUu2BExZuV88nliRUjh5mxMkOjYepMo0/NU+gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197410},"main":"build/index.js","types":"build/index.d.ts","gitHead":"f8a51cff54fc89da7acbc07254e8fb4e96816699","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.4.2_1786026596540_0.8189113716580827","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@anorak-games/react-native-video-texture","version":"0.4.3","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.4.3","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"5c3fd6f8d8e5d8c050117d42af45e252dda59b70","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.4.3.tgz","fileCount":54,"integrity":"sha512-KOBy5yA5gTec9q2BgiK2HR0WHLz3c21X/qrKkZQhEU5OoUUpP43E7H0hGBVvjo47tuNGMv5Zxj7fnDjSPdZBlQ==","signatures":[{"sig":"MEUCIQCPYGXfWmf02Af0jj2kKrgt4+89PmqHNtC7psPrwcsDrAIgQwVeQ5xWiOA9wmTKwvHZ9A/Be/ydOX9YfIskS8VYRtc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197988},"main":"build/index.js","types":"build/index.d.ts","gitHead":"b611f6b5a643bf0972a65d2f4d6c18ff20157af0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.4.3_1786029907159_0.37068084127755263","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@anorak-games/react-native-video-texture","version":"0.4.4","keywords":["expo","react-native","video","webgpu","texture"],"author":{"name":"Anorak Games"},"license":"MIT","_id":"@anorak-games/react-native-video-texture@0.4.4","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"dist":{"shasum":"292d48f8dd1ea698c24eaffea25eb3ff3b49d006","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.4.4.tgz","fileCount":54,"integrity":"sha512-eMbtsK5TKu5RFrYJAY3f5fQxeKQVBXwCYo5c+83ttlDSYufj1/APl00El7xDfumcqt0PvubT4XJIueciP4F2Bg==","signatures":[{"sig":"MEUCIFFZzN/6nn6Wf2qDAh1prf6VXIGRhaan5Z65LgFytCXsAiEAyJfo95nxSHVin+b4HIwFU/LpOwHTImtKFkgymLmhngk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":198931},"main":"build/index.js","types":"build/index.d.ts","gitHead":"ccba5350e0bd83c6b7eb15560de6b0881a804377","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rimraf build coverage","prepare":"npm run clean && npm run build","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'","prepublishOnly":"npm test"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"repository":{"url":"git+https://github.com/anorak-games/react-native-video-texture.git","type":"git"},"_npmVersion":"11.19.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"expo":"~56.0.18","react":"19.2.3","rimraf":"^6.1.2","vitest":"^4.1.8","typescript":"^6.0.3","@types/react":"~19.2.0","react-native":"0.85.3","patch-package":"8.0.1","react-native-webgpu":"0.8.1"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/react-native-video-texture_0.4.4_1786884100090_0.6402263977958915","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@anorak-games/react-native-video-texture","version":"0.5.0","description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","main":"build/index.js","types":"build/index.d.ts","scripts":{"build":"tsc -p tsconfig.json","clean":"rimraf build coverage","test":"vitest run","prepare":"npm run clean && npm run build","prepublishOnly":"npm test","patch:webgpu":"patch-package react-native-webgpu --exclude '(^|/)\\.cxx(/|$)|^android/build(/|$)|^package\\.json$'"},"keywords":["expo","react-native","video","webgpu","texture"],"repository":{"type":"git","url":"git+https://github.com/anorak-games/react-native-video-texture.git"},"bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"homepage":"https://github.com/anorak-games/react-native-video-texture#readme","author":{"name":"Anorak Games"},"license":"MIT","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"expo":">=56.0.0","react":"*","react-native":"*","react-native-webgpu":"0.8.1"},"devDependencies":{"@types/react":"~19.2.0","expo":"~56.0.18","patch-package":"8.0.1","react":"19.2.3","react-native":"0.85.3","react-native-webgpu":"0.8.1","rimraf":"^6.1.2","typescript":"^6.0.3","vitest":"^4.1.8"},"gitHead":"1ecca6ec776deff493bdf6d6da0da92b93bb6b6a","_id":"@anorak-games/react-native-video-texture@0.5.0","_nodeVersion":"22.23.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-FLCoQH518VuJ13BVYcz9gu0W4xsVv5Vr+dG7kgyRnNq7PN/4VU9lXbB8vmlY0jIepYVC801A2SbET4jB8AhIMA==","shasum":"5105859f0cb63f312e1b970199838a70c00f5c9a","tarball":"https://registry.npmjs.org/@anorak-games/react-native-video-texture/-/react-native-video-texture-0.5.0.tgz","fileCount":60,"unpackedSize":223142,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anorak-games%2freact-native-video-texture@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICI0jfKAAkzWvipOtZGGkTzzm+15bnPBtzpoq4AJA/B3AiEA0QWmibVMzLEqSWJdgfs/GegAccZVBcrINCkObTuJUPo="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:132a4dfb-fea0-4779-be8c-d125c00b1955"}},"directories":{},"maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-video-texture_0.5.0_1787827183767_0.09286850056728735"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T06:59:45.895Z","modified":"2026-08-27T10:39:44.256Z","0.2.0":"2026-08-04T06:59:46.200Z","0.2.1":"2026-08-04T15:55:59.705Z","0.3.0":"2026-08-05T09:12:47.269Z","0.4.0":"2026-08-05T21:47:32.552Z","0.4.1":"2026-08-06T14:05:37.692Z","0.4.2":"2026-08-06T14:29:56.701Z","0.4.3":"2026-08-06T15:25:07.326Z","0.4.4":"2026-08-16T12:41:40.261Z","0.5.0":"2026-08-27T10:39:43.894Z"},"bugs":{"url":"https://github.com/anorak-games/react-native-video-texture/issues"},"author":{"name":"Anorak Games"},"license":"MIT","homepage":"https://github.com/anorak-games/react-native-video-texture#readme","keywords":["expo","react-native","video","webgpu","texture"],"repository":{"type":"git","url":"git+https://github.com/anorak-games/react-native-video-texture.git"},"description":"Headless Expo video player that exposes decoded frames as WebGPU-compatible native textures.","maintainers":[{"name":"anorakbot","email":"farms+npmbot@anorak.games"}],"readme":"# @anorak-games/react-native-video-texture\n\n**NOTE:** This is a very experimental package that is unlikely to be useful after 2026. It has known issues like leaking on disk cache, and it requires a very specific webgpu version + patch It exists mostly as a temporary bridge between react-native-webgpu's external texture feature and the fact that expo-video/skia did not support usage at time of creation. There is probably a better way to do this by now.\n\nHeadless Expo video playback that exposes decoded frames as native buffers for\n`react-native-webgpu` external textures.\n\n## Requirements\n\n- Expo 56 or newer and a development build; this module is not available in Expo Go.\n- `react-native-webgpu@0.8.1` with the bundled patch described below.\n- iOS 16.4 or newer.\n- A physical Android device running API 29 or newer. Android emulators are not supported.\n\nAfter installing or upgrading this package, regenerate and rebuild the native app with\n`npx expo prebuild --clean` followed by `npx expo run:ios` or `npx expo run:android`.\n\n## Install\n\n```sh\nnpm install @anorak-games/react-native-video-texture react-native-webgpu@0.8.1\nnpm install --save-dev patch-package\n```\n\nSet the consuming app's `postinstall` script to:\n\n```json\n{\n  \"scripts\": {\n    \"postinstall\": \"patch-package --error-on-fail --patch-dir node_modules/@anorak-games/react-native-video-texture/patches\"\n  }\n}\n```\n\nThe patch is tied to `react-native-webgpu@0.8.1`. It releases the native external texture\nand source frame when `GPUExternalTexture.destroy()` is called (so the frame buffer returns\nto its producer immediately), surfaces native error messages to JS instead of\n`Exception in HostFunction: <unknown>`, acquires shared textures with a content-preserving\nimage layout, and logs the driver-reported import properties once per process\n(`[huntVideoColor]` tag) for colour debugging. `patches/dawn/` is reference material for\nupstream Dawn reports and is not applied to anything.\n\nApps using Expo prebuild should set the native minimum versions explicitly:\n\n```ts\nexport default {\n  ios: {\n    deploymentTarget: '16.4',\n  },\n  plugins: [\n    'react-native-webgpu',\n    [\n      'expo-build-properties',\n      {\n        android: {\n          minSdkVersion: 29,\n        },\n      },\n    ],\n  ],\n};\n```\n\n## Usage\n\nRequest the native Dawn features alongside the application's other WebGPU features:\n\n```ts\nimport {\n  VIDEO_TEXTURE_DEVICE_FEATURES,\n  isVideoTextureSupported,\n  useVideoTexture,\n} from '@anorak-games/react-native-video-texture';\n\nconst device = await adapter.requestDevice({\n  requiredFeatures: [...VIDEO_TEXTURE_DEVICE_FEATURES],\n});\n```\n\n`useVideoTexture()` returns a player and a worklet-capturable frame source. Load transport\ncommands through the player, poll decoded frames from the frame source inside the render\nworklet, wrap each native handle with `RNWebGPU.createVideoFrameFromNativeBuffer()`, then\nimport it with `device.importExternalTexture()`.\n\nCheck `isVideoTextureSupported()` before entering a native video path. Importing the package\nis safe on web, but creating a player is not supported there.\n\nQuery an ordered set of AVC or HEVC candidates before downloading a video:\n\n```ts\nimport { queryVideoFormatSupport } from '@anorak-games/react-native-video-texture';\n\nconst support = await queryVideoFormatSupport([\n  { codec: 'hvc1.1.6.L153', width: 3840, height: 2160, fps: 24 },\n  { codec: 'avc1.64002A', width: 1920, height: 1080, fps: 24 },\n]);\n```\n\nResults preserve input order. `supported: false` with no error is an ordinary device rejection.\nMalformed candidates and platform query failures carry an error on only that result, so callers can\ncontinue scanning later candidates. `hardwareAccelerated` identifies the selected native decoder;\n`sustainedRate` reports whether the platform says it can maintain the requested size and frame rate.\nWeb reports every valid candidate as unsupported without an error.\n\nOn iOS this query runs before an asset is downloaded, when only the codec string, dimensions, and\nframe rate are available. iOS exposes codec-family hardware availability at that point, but not a\nper-rendition performance query. Consequently `supported`, `hardwareAccelerated`, and\n`sustainedRate` all reflect codec-family hardware support there; `sustainedRate` assumes the\ncandidate catalogue is constrained to the supported limits of the targeted iOS devices.\n\n## Platform notes\n\n- Samples arrive as RGB on both platforms — Android converts decoder frames to RGBA8 on the\n  GPU (`GlVideoBridge`, one blit per frame), iOS converts in Dawn's Metal sampler — so shaders\n  need **no** colour conversion and no platform branches. `GPUExternalTexture.yuvToRgbMatrix`\n  is the identity for every frame this module produces.\n- Android reports `pixelFormat: 'bgra8'` (`'nv12'` is accepted at construction as a legacy\n  alias) and rejects rotated video.\n- Keep the external video texture and its sampler in bind group 0; place other resources in\n  later bind groups.\n## Development\n\n```sh\nnpm install\nnpm run build\nnpm test\nnpm pack --dry-run\n```\n\nAfter editing `node_modules/react-native-webgpu`, regenerate the bundled patch with:\n\n```sh\nnpm run patch:webgpu\n```\n\n## Releasing\n\nMerge to main, then create a Github Release with appropriate version tag (ie v0.4.0), Github Action will publish from that.\n\nManual release via `npm release:minor` if you have credentials, but you should prefer the github flow.\n","readmeFilename":"README.md"}