{"_id":"@simba-dev/react-native-media-player","_rev":"36-3f2b01d49f14f15f80cf8d4e27dc93be","name":"@simba-dev/react-native-media-player","dist-tags":{"staging":"1.5.3","latest":"1.5.20"},"versions":{"1.0.0":{"name":"@simba-dev/react-native-media-player","version":"1.0.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"46a8b3a67500615839d41d459b2b029689fb9a65","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.0.tgz","fileCount":95,"integrity":"sha512-iWGF4fIO7t7tdr2XAVHbQ+SiVZeegg9wl9/nPN10ROzkQs8Dbl50CapC9BlE/IwfzZE7iuSOE6KaCZOuckiINA==","signatures":[{"sig":"MEYCIQCiuQIInKJdT2oQAFfc5K9XEGoLM1sMQjNnbsC36+RArAIhAL6vZmuVdUi8sPa8rNxTVOyeThwH1skptWtuJ6YFsrEj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160627852},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"8de9bc73fab3a550aebc4de0dd58ad6267f8bd97","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.11.1","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.0_1788430263748_0.4114730325490321","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@simba-dev/react-native-media-player","version":"1.0.1","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.1","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"29fefd75699b704970ea68ac15b14b270ce566f3","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.1.tgz","fileCount":95,"integrity":"sha512-ne5EkDPESPokQ0ENxEYkCEv8IeofE3/V/KWM32vCyYTBeETPPUaC1SG5DavpUtnF19Fh+AVWJe3exz8+namotA==","signatures":[{"sig":"MEQCIA3mv8bDFfrPVP1J85RGoR0QRzGEiotTBxr1qGxiTdXqAiAjZcB6p4iFTkUQY8Of9XTAuf2SECAId39x36zYSpBqSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160627908},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"3d11d96434071979f9e4263a3202f3800e6a8dfa","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.11.1","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.1_1788430636536_0.41896000630424224","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@simba-dev/react-native-media-player","version":"1.0.2","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.2","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"91a2602a9aebeaba52a44443858aaa14d6ac6698","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.2.tgz","fileCount":96,"integrity":"sha512-d2GUyaeUvGRCclINLxl/uk9LEC9W6gaYaDCS2wkz6wylteglovtUy1X9qsxHcJ08RTAX6C15sRphxqw7YCMZ+g==","signatures":[{"sig":"MEYCIQDYAXcceFzMZ5D7YBTaz/ULdixPrfBjycShbOVx461AAQIhAPdPznkw7LnVQw6VkRJv0YWu3RpfO+5q6lQz4iPYZA94","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160635998},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"99932fcd35d5c31c3cabfb560ee3ea3e4a3522c3","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.11.1","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.2_1788430995240_0.12066016062883844","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@simba-dev/react-native-media-player","version":"1.0.3","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.3","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"662723e9600da12b9fe41064cfaa5ae6544eee13","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.3.tgz","fileCount":96,"integrity":"sha512-KZgLZTztrVcPTdlN8HzwLfoKDippz7bcr5YSWY325cHFPt73j3NhCrA6QyNDdtP26tz5TO9bkS7T31bFgBZnUA==","signatures":[{"sig":"MEUCIFz6qWue1hG9ogIAtb+uSNHqGE3VtoyxnsRzHtSMr0QWAiEAiY+GmoAyCn2rxl4u+v9cftzwgRfYzYXMqxUUyVQdOwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160638111},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"d8805ccc061f406840f710a2808d1c5ff2e89ee5","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.11.1","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.3_1788438687656_0.3449372404479383","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@simba-dev/react-native-media-player","version":"1.0.4","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.4","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"a225d0958f2709e818e45f7e23a7ff5e30e5f71b","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.4.tgz","fileCount":96,"integrity":"sha512-RPNw0thM2vWvVd4CDlvDh6G0tcdEm1YgOJVd6XSkrxXwSpK9vCqmsDDDQWjZwcyV2P01rOywt11LpYKwAS9/wQ==","signatures":[{"sig":"MEUCIQC2WLrhLYqFDMRTa4hqXnxNxM5z1GlrVNdD10oRAd4qDgIgVabKdnZe5FUso/+AuscIRcTqRBBDywvXUAyNPo7Q33w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160638111},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"e48d3f7501093a8d0b21fea275d7931d80e9839f","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.11.1","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.4_1788440764195_0.7978093642663271","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@simba-dev/react-native-media-player","version":"1.0.8","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.0.8","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"3cf6d377a9a9092eedb8804fd2814307d90dd5ae","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.0.8.tgz","fileCount":52,"integrity":"sha512-cgZYVmsjnhBUROmmUl8k2vJwr2HrSVINaAGI06QH1ruEkqEXNEDnuoTmv9TRM2vAzAkQCqiNAKIZQfHtCOc/8g==","signatures":[{"sig":"MEQCIDSpYdykHQEl2kkLZ2YL16zE4w6eHwogE5cvf272hMMnAiAUx1w06bDMSLTtXenLGbzzZkzuIdAU0TLzfDOTFM/tyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":565066},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"9c22854aefc960f5fff037cc137e4885f4f80562","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.17.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.19.0","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.0.8_1788442008946_0.8100063550512402","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@simba-dev/react-native-media-player","version":"1.1.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.1.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"f970c5017143283033e917ccc3cc053e401b342a","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.1.0.tgz","fileCount":52,"integrity":"sha512-LsBl/LtlXjQsDQc3r/ZY/Krw8U+teOJTSEFP5K3dTxPvwxFKUeu9Exwcs0Kl/JgmAVTtCtQjKiBapI/299aI8g==","signatures":[{"sig":"MEUCIBJd8dulcspcmMVrSYn7A/IqQWa11sRyWhb7DipKc24kAiEAzZeNSlYp+tew8GDVmJwkaTUS4f9TemX/CdiLUt++IqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":587423},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"3ee2f851deddcecf061cf454f38161039ae7f6a6","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.17.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V12.0.0 stable release** (2026-09-03) — see [`SIMBA_PLAYER_MODULE_V12_RELEASE_RUNBOOK.md`](file:///x:/Development/SIMBA/MOBILE_APP_REACT_NATIVE/md/SIMBA_","directories":{},"_nodeVersion":"24.19.0","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.1.0_1788512623522_0.18992231625878286","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@simba-dev/react-native-media-player","version":"1.3.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.3.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"f95297ed4f9d7f30ba676e1d5419819a76430baf","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.3.0.tgz","fileCount":59,"integrity":"sha512-C9rXNmV62jltPx/3vV0m0nB0aYtcMniAaF+BD0m6Nv5z+Ht0wwDn8/6MO78JYQ4muPV8HohMe1Xja9v8YTTY2g==","signatures":[{"sig":"MEYCIQDv0l8ekbVxwEEko+yoLmYQHmVlJIYAas5tlWOBNAS9xwIhAKFEOKBQHioQewdMSXx1pf77a+CQeY+hXy4Aw8iDjg0C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":679020},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"b4d430e266ce74a3c3338850efe0eb84b93fa117","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V14.0.0 stable release** (2026-09-04) — junior-dev-level integration surface. See [`SIMBA_PLAYER_MODULE_V14_FINAL_QA_REPORT.md`](X:/Development/SIMBA/MOB","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.3.0_1788528488155_0.8977668104675831","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@simba-dev/react-native-media-player","version":"1.4.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.4.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"63b1cc5b837d6dcc6ed29f9b7f4bf5d53d258288","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.4.0.tgz","fileCount":69,"integrity":"sha512-WXAOjBZPiIxL9tALYX57Pjr5nmtZa1WShy6XTqbqDDy/dDFdO6RzocDNopMoDKCr9nHos+YTqp2KoCKp08NPpA==","signatures":[{"sig":"MEUCIG7+QjXp+O7LLIR9aO2tmEqcW4Z+Zvloo5LUdAj+FSh8AiEAmpl0pvTB9X6kyoA4V4itIhOPZVnU1FZwhRJR878KIGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":705707},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"c6b94f93050c3507f3cc55ec9f6452991b9105fa","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V15.0.0 stable release** (2026-09-04) — per-screen simplification + state consolidation. Junior-dev surface across App.tsx AND per-screen code paths. See","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.4.0_1788540261037_0.2554705264034147","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@simba-dev/react-native-media-player","version":"1.2.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.2.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"e3f4d138720a6923d90046297113009b0d8c9b80","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.2.0.tgz","fileCount":57,"integrity":"sha512-gtr8TCXV4RLdNrETZ7B26X6y48rocsw12kyFLdnvyYwSQ5xoxPX84/cuoK+FN5TA/6Fn7DngewzQ3hf1P2TcAw==","signatures":[{"sig":"MEUCIAa0GdrgM/lGt6AfUAoc2jfrkYDcQiB/3fxL8XapJ0SwAiEAz9MzBhXRWLPhQdavzspGGNNYFUXeCrF3lZLdbHinMd0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":661114},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"dc61bba02c1221be4855687ed2ea3da59145db7f","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V13.0.0 stable release** (2026-09-04) — V13 extraction complete. See [`SIMBA_PLAYER_MODULE_V13_FINAL_QA_REPORT.md`](X:/Development/SIMBA/MOBILE_APP_REACT","directories":{},"_nodeVersion":"24.20.0","react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.2.0_1788542510548_0.845619655587003","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@simba-dev/react-native-media-player","version":"1.5.0","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.0","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"bdca6fef76a5adc40bd8fa3743a75f9aa7c8148c","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.0.tgz","fileCount":63,"integrity":"sha512-MWXJllGy3EWaJ9bVpZ4Rpw76ykaPks9AA9/9ljoRbLCng3gZ60pZ+76YmN7uF3AxlCZ6zel71T1yZYlPjsoX5g==","signatures":[{"sig":"MEYCIQClRBqTQUP5HybQV9zw6zH4+18cGUxvYQW3gxQbgZg9BAIhAObeDSKXIE9cZZhOzeXL48n8id4E0dXX1jmn/2pnZxPo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":698953},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"5558bf00d4b3d7488d14b1b2cdd65e67241e93ec","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.0 stable release** (2026-09-07) — API hardening + type-safety sweep. `PlayerQueueItem` is generic; `<SimbaPlayer>` accepts a single `resumePolicy`;","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.0_1788769652839_0.4438360155558503","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@simba-dev/react-native-media-player","version":"1.5.1","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.1","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"12ce43e0c54a4cbd5e6bcde5067a3dafeb4cdbbc","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.1.tgz","fileCount":63,"integrity":"sha512-DI3z2yJp+1qzw9MBqiSXSXiXNqVmJntdPUeoUviYdGse5k/9rLd5705Zmq90S9eWBQ5xnHrqhM/zH3+Ig/8Hng==","signatures":[{"sig":"MEUCID5XsFfm8s47A9qFe1oy8QWo5FsyG26uB+EhPqYpsXD9AiEA0TS2AazOPoEClWFjHmoBTBjGYcV+1gpzHCKO0TTWNng=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":699263},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"c85c9725851c4180888a8bdb4ae35af17e3c170a","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.0 stable release** (2026-09-07) — API hardening + type-safety sweep. `PlayerQueueItem` is generic; `<SimbaPlayer>` accepts a single `resumePolicy`;","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.1_1789130714944_0.2052714843183423","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@simba-dev/react-native-media-player","version":"1.5.2","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.2","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"fdffe4f6786e366f92989491b4787759d9bebfe3","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.2.tgz","fileCount":63,"integrity":"sha512-7swMc0h0IzReouE44iCii1mrIqljhWpTp/pbCp6LXj3YiePiULAbcaUvWaRFbmrL/M70i6JyBzzH1h9sfAZ9Tg==","signatures":[{"sig":"MEQCIHPRNw0JHlGjOPje0D11eGa22JNb/OM8oGS5t1PU3BzqAiBtMFfhm8c6zLM6BH4t3hLkBnKa3g8DdiLLsNdOIDhC/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":699205},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"46d2ea2a1e4f888e5d7c1cb86274b08e3a7c0cce","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.0 stable release** (2026-09-07) — API hardening + type-safety sweep. `PlayerQueueItem` is generic; `<SimbaPlayer>` accepts a single `resumePolicy`;","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.2_1789197757146_0.6342294567335987","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@simba-dev/react-native-media-player","version":"1.5.3","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.3","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"bdae1ff60fe604c2a7c2ce4cc8860a0680bc4382","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.3.tgz","fileCount":63,"integrity":"sha512-5cg8QgCVqi4cAdJiCkM/EoRSZDmH1xmezdryx+Orq5jvPmUh9m065YRiCw0jWwBNkxBxPOA8eg8qKd0aHobWPA==","signatures":[{"sig":"MEUCIFu1qAc/gz5B72vkbFqvzi2Nq9Fkwwk7ow8MFSeuHvBDAiEA49SeMC8qePVDJmEFBG2ePOcEnD7B4VTxvoELdevzGMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@simba-dev%2freact-native-media-player@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":700416},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"85aee946df708694abd2618023ead42cfff3e843","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8ef300ca-524f-4d9d-8879-3ddfef650935"}},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.3 patch release** (2026-09-12) — fail-fast on missing libmpv.so + stale API name in dumpProperties failure marker. See CHANGELOG.md for details. Pu","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.3_1789203785824_0.2532432581707671","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@simba-dev/react-native-media-player","version":"1.5.5","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.5","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"263464bd7f63686b2df7c23d126bc0fed2b6e719","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.5.tgz","fileCount":110,"integrity":"sha512-/kK3YhlcG75ncASLmS3vS20j1kV/4xKeEjJfZlCEtUe61CJylfqN6HnKQxfSDka5IFcEWtUiSH0hrws+M34NMg==","signatures":[{"sig":"MEQCIAwRLP9ap4pr5ql9YOcZQGRBBsGpz3xPfe22CvhHjz8ZAiA7b7+LYJFgtYIuv+Y3UIQll8kqjSHUcckgneh6fSp91g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160794921},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"585e6eb8b0a937908007cb80f4e80aebaeb75f82","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.5 patch release** (2026-09-14) — D-032 / B-010 fix (republish under 1.5.5 to verify npm auth token rotation): restore `apply plugin: \"com.facebook.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.5_1789372104137_0.36361708572156637","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@simba-dev/react-native-media-player","version":"1.5.6","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.6","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"b35d435912170eafbbd4cfbedd227939055c63c4","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.6.tgz","fileCount":110,"integrity":"sha512-pqPJ6lkoga9Im4Uwrcl0Rc+ViPAdCldmmvFjbettUowgMgetl/WJLiOeKYujx00BZuhzzv1O52iABUP+a7U0mg==","signatures":[{"sig":"MEUCIDowi6Q1L4m5nOMULk0xQY239M4dqJDDAKozI7bemDkSAiEA2nmGEv5xnwlJ1br4HnKAg5D/SAEYAHTyCX+LYKEQpsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160795815},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"4f1d9a603bf4bc66b49dea1c75e7d20e794a1749","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.6 patch release** (2026-09-14) — D-032 / B-010 proper fix: MpvBridgeModule now extends NativeMpvPlayerSpec (the codegen-generated spec from 1.5.5) ","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.6_1789380453122_0.8171395838413749","host":"s3://npm-registry-packages-npm-production"}},"1.5.7":{"name":"@simba-dev/react-native-media-player","version":"1.5.7","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.7","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"615293810b180d0d0abab152945a54b3f272c8eb","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.7.tgz","fileCount":110,"integrity":"sha512-W6I+IeixhWsyPnvFoelpcV9oZGh3alxEWkxk5Ynlsb4UDp1PmHGauLzAzZmGQ3J32SEi1U8Tmip8yn2PRHpDPQ==","signatures":[{"sig":"MEYCIQCfliaygtvdNLRXql8u3DdC7Y172foBePyXg3Ra7Z3/ogIhAKQV2CwmfvMujZo6KRR8AMCvhazZtV/0SlO6nm7zOgfH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGK2uNOW6HeqC31vJse1N17ivs0ZMc+1fkq6t59R+WSKAiEAqXUdH8LelSl7TYpTsHrHFaxu6c76+bTX05WyxYMYMi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160809759},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"cf42fb2c13e494256d400cab796305221e49c664","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.7_1789469208375_0.8713752014384089","host":"s3://npm-registry-packages-npm-production"}},"1.5.8":{"name":"@simba-dev/react-native-media-player","version":"1.5.8","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.8","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"f589889a921b5eff6977f5de056c9e211803080d","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.8.tgz","fileCount":110,"integrity":"sha512-zbmWyL4LkCxK/nWTC4jYHoheZYlUh4c+LPdTyR7Zf8LZQJdosXmmATCC3603DNWNa9Tno8HwDm5iUaDxwNErxA==","signatures":[{"sig":"MEYCIQDSUl1HkFHPZrTa1V9iWtZO36Ml5x1k76VFOor13UNzRQIhAI8XObxk65/kVZxv3d/zUpAnkQlUpR9Pw6LhxiRRTmFw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDPgNyATCPYV+LWNJh2kOZDqa4t5zx6dp0SU8EaONyp2QIhAMDtzUMKkIjoc6RYWuqh9OvVqs5c7XLobeT+Iw5m3fnI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160825584},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"e2e4d6cf26fb1dd9dddcee3371747cbb816fecfa","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.8_1789671684985_0.5508344235778861","host":"s3://npm-registry-packages-npm-production"}},"1.5.9":{"name":"@simba-dev/react-native-media-player","version":"1.5.9","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.9","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"8036dd32fa12002f9056d9e24ceef794f3523955","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.9.tgz","fileCount":110,"integrity":"sha512-1u6+dD7S7G88xSzO3/dGOwguX+/ehe1UwiCeew0p7zzP7CqbNGS9tL7sXK4W6BpZAAoAbVO2mUpsQStn5zxtNg==","signatures":[{"sig":"MEUCIGTkPrI1rKFJ38+ZXWGsN2qy2dbSMFSTUkXFV9M6hAujAiEA9pn5guIO+m8jn9q2QYbst36rQyyguyFRcEYzmHteecw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC/40Alekrx6g1ymHMTL55gsSq7y1xFon7t0cEZHwujPQIhAOCBpqWYg2PCaN18zNFFltC+UunUptnrR9qpqxSNUyQe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160827688},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"b32f7ae51df0f029f329242c84164aa24ebae93d","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.6.2","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.9_1789724857358_0.4177065101373716","host":"s3://npm-registry-packages-npm-production"}},"1.5.10":{"name":"@simba-dev/react-native-media-player","version":"1.5.10","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.10","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"722af98c84d2ae9ca27736ccb8509b48a7369ec4","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.10.tgz","fileCount":66,"integrity":"sha512-dJn/YFPC0SGETVjY2+8+wQW/ru7xiYwaQPHEzjtvMgqcmiY+61Rnogqgjx535yJNBkaMelw04c3A3w+1IkfFBA==","signatures":[{"sig":"MEUCIGMNBeKU0gWaCmDqHY3xirO0FSw4e3a00J/c+VNNxpdrAiEAnS7p06o0s9KXfDZvhtv/HWFTEeosUl9hBdgvHBiVgYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDz+o46YSDJOpA0fAVWtQeuf6Y8EWiEmd7SyMOLxUXEiwIhAKp/1O7mO7ypW/zWlIT1OG7d+KCUd0HPNNZ+twnDnShO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754717},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"8a5fb8ec1916fcfaa00a437b8f40ce1cd3f1ed33","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.10_1789732980206_0.5511799817605092","host":"s3://npm-registry-packages-npm-production"}},"1.5.11":{"name":"@simba-dev/react-native-media-player","version":"1.5.11","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.11","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"a9bd4be553b2388b58e955f28478c047a7788287","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.11.tgz","fileCount":66,"integrity":"sha512-9w834a/kYDWrEGw4UNPgQmC/2KRQGNx812wCOzKgQLRRPt57G6lbfU+aIaGdsbMwYqWGZWJoJ3hoB3DFwVGUiw==","signatures":[{"sig":"MEUCIBq8uFFGbesuWmN+ONomkFRjv/cYHuYjvqFIvCPzPxJbAiEA7hpnt36+aUdbneYRLZDAF6QLkZ+c6ap2LqmAQtRYCzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHrjTlaOd59jenPEU/ZXOGnkbJGbtS7et+xUsK81X7uJAiB/PeEYGG4JSm7eRZMnHS/euu0cLQl9CGv7KSBf1Gee+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754717},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"3fadc0825c044234793d9c8545cd6324f94ffa6a","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.11_1789733582464_0.6820212068402389","host":"s3://npm-registry-packages-npm-production"}},"1.5.12":{"name":"@simba-dev/react-native-media-player","version":"1.5.12","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.12","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"a0aa5df91dfb1d2b81115ed1bcdcdb652b61f749","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.12.tgz","fileCount":66,"integrity":"sha512-vyd9wfPzE7mO8MhfnKK7HbxNXPNdU1o2xaGsT93pNl+uqAC7QlzWFYGDGGbTNO2lm3XAV+TFhMYQVbIg+Whszg==","signatures":[{"sig":"MEUCIQDRnTU+UgpqHzCkoZ8Od4yYDXFarY75ThnA1X8MKczwZAIgXQXdKhcSj3rKGw1xowCYcAw0ptnZURQjzKe72nYFaP8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD87NPxyDYIHFQvdrsYIJAjyGcPNmHp9IDD67QAmTFm5AIhANG4PUMsvJ0v9TPQGQq3acBOnGu59VJ6FkGOvzj0bkXH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754699},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"cc8ba28bc0305d96dd9c3305c6dcf53640bfa0fe","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.12_1789978897327_0.7699082953118337","host":"s3://npm-registry-packages-npm-production"}},"1.5.13":{"name":"@simba-dev/react-native-media-player","version":"1.5.13","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.13","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"31308e284122192441efc428942f29b425a45787","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.13.tgz","fileCount":66,"integrity":"sha512-SU/YKPeCAJOdqPzFNH9fGUm4m62GBBYlPKfzfoSPvOYy+agp0Dv/40k6ottmcCm51/vIJiXH9wFmPq9kwn5Tuw==","signatures":[{"sig":"MEQCIEypQkfI+NLFesp+5nmhkuJ2M0cuv87Sk1QyG1JoUx8iAiAOGq3J8MZDk7RiAPPD8ZMldLcj2Xjhu4YlAnAuZTtDFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAL6Br4SJYJfwzc9EMiOb8kK5zIflpEym+1AQINl1V2tAiBqGVUGqELjp8Qy/wz9aGBB7chitRYz6nrp6vMhpmN5+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754699},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"f9b7a7fed55f483fc42e32453df9eb3df2784a4a","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.13_1789984474836_0.32861558567246973","host":"s3://npm-registry-packages-npm-production"}},"1.5.14":{"name":"@simba-dev/react-native-media-player","version":"1.5.14","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.14","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"534cb911b13559593a99e564f14131629924de7e","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.14.tgz","fileCount":66,"integrity":"sha512-hW0//2wtEXhJMz7QSRWDKz9/qKEOJIV8XqWVn7Dm5KtfBSHlaRNhWpKSLJ7Pb9FudQJnPQvTkErXOUwfUp7qJw==","signatures":[{"sig":"MEUCICmIFHshua6InKGhiSLy8cA7HdJ6S+CFnq4EbVHt1rjQAiEAqBysM3jkuYZgZPETWhAnydNGyr7iLjr/KpHGVTPm9aE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGGGi7H3h97l8HdDkerLTifi8ZUrIVX9TBwe6e83JDaDAiEA0OxKmaSiJClt7/+Gi9p6HWdTxdyKNcsJhBIzRPyFvx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":754755},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"237c3c5518f0e93a2dd3ad73bbd4d128e215967c","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.14_1789988893500_0.9779626998908695","host":"s3://npm-registry-packages-npm-production"}},"1.5.15":{"name":"@simba-dev/react-native-media-player","version":"1.5.15","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.15","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"401cd0a5415b251834523840119984e36218a4d9","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.15.tgz","fileCount":69,"integrity":"sha512-IeXSVFzAkpqpgNpLbPzNS+LNV2lHHCOQfUNrpOV1u9sHteRpCUYfyUlWwxlAmpZPRMFVv41+EPcefflC4USjEg==","signatures":[{"sig":"MEYCIQD2iODY/tMwNSjze+vvbL+HC/u41vATfAHnb3fdOvgqrgIhAMDF6RcnqKIVQCPfBxkC6g0eDAVoiFH4GLdENbKYqU3y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDj3tAF6TZOJwmu23sZ6Y7GnHUVFBNqaQFt+QOMX1CCCAiBKdAV+AEXW2pQg83KVwdnx9OBsrubjaPDMiLdavFCkDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783909},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"c1b0e2299b823cbbe5b5bd4858c5075ec0bd0956","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.15_1789990318558_0.3764114132242067","host":"s3://npm-registry-packages-npm-production"}},"1.5.16":{"name":"@simba-dev/react-native-media-player","version":"1.5.16","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.16","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"816faf862e2a99866be4a7a147ecf40243d25711","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.16.tgz","fileCount":69,"integrity":"sha512-UJBK+Wmd4F3pbdpEG6793yPfaa+NXkKGo/pCjKwOWZ/51EHqlDBlj75bzhJtsYdw+jAPp93Se1cys7xlGTAm0w==","signatures":[{"sig":"MEUCIQDVzGlXpSJjHSxxtrZo3Bx5xDSdM8dhX+MVQ1lmsq7slgIgC7J68HrmHx14bpd9bVP49Lt2nHNPdszJIOUr3l2mCb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF0KoZ0eGoheLNpCBbmIZxL2rKdk50KXwW7iY6c44Fc5AiEA6AV8p7RJAil7iU+nWiCojZqFRTav5OHLpoRxNA0LseA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":786454},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"a09b9cc8bb4891dee7c9053a523eb86831fdb574","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.16_1789991569104_0.0743628263460252","host":"s3://npm-registry-packages-npm-production"}},"1.5.18":{"name":"@simba-dev/react-native-media-player","version":"1.5.18","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"@simba-dev","name":"SIMBA Mobile Team"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.18","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"7bd628201d1a1341beba8df30bac3e8406fb1bf7","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.18.tgz","fileCount":69,"integrity":"sha512-juCZoZwNVlwR0NGqcLNBBD7q83KJpmA4fK3V6KHjizRs/aA6VnuacFr7n2dTKLflY/g+P/ctYg+Dh0erIXGhHg==","signatures":[{"sig":"MEUCICVgZOZx8pO/4UTNawqKpWj5+apf6MviRjgrShrq0anEAiEA1GP84zpzYASsYZ/3sbcir236I7+OOecFn/MrWj+TtSU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHjedRRBy2hQdBHlEcYu2CNy3CCFbEnmd2OKDUZwp6fvAiEAgv2XccDTwk21LPVKBwRBydElLS7o3hyjchigeECHGi8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":786454},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"gitHead":"96d8a7b019c2368397942c1d983250a500afe730","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video/audio player powered by libmpv — Picture-in-Picture, MediaSession, custom RN UI. **V16.0.8 patch release** (2026-09-14) — D-033 16 KB page-size alignment: add_link_options(\"-Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384\") in C","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.18_1789993671587_0.9228493782989884","host":"s3://npm-registry-packages-npm-production"}},"1.5.19":{"name":"@simba-dev/react-native-media-player","version":"1.5.19","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"author":{"url":"https://github.com/pavalep","name":"Paval E P","email":"pavalep@varnalabs.dev"},"license":"MIT","_id":"@simba-dev/react-native-media-player@1.5.19","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"homepage":"https://github.com/pavalep/react-native-media-player#readme","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"faab784fce1fafc07f049fd725e0b0d6da1fc01b","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.19.tgz","fileCount":69,"integrity":"sha512-T/HyjwPneTig7sjBwFgGQGB3gkVs1NPDMJ5crv88avrYuPHLI8AUwHEAmC6qvt44nJ8XTgQ4boSEunpuAg4ipQ==","signatures":[{"sig":"MEQCIGbMsYS9H/lhIhvh4LN93HQQw1wyM1uBYzSazxuCjVxzAiAbd/8UciaFxSbETvizu2uIXWfPQS9qFKSPNP+KjvHrQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDe0EJnImNC76uFhh2yVsBTMelE9SV6b6QRmnDdO00LcgIgI3NkaRlyCEerSYI+R73xVZSRlbrq+CYEPqnotQIUrps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":788954},"main":"src/index.ts","types":"src/index.ts","engines":{"node":">=18"},"funding":{"url":"https://buymeacoffee.com/pavalep","type":"buymeacoffee"},"gitHead":"e91108a3c6500825b854c6fbaf965217f2baf347","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video & audio player powered by libmpv — Picture-in-Picture, MediaSession, foreground service, and a customizable TypeScript UI. Built for Android. Designed as a drop-in replacement for react-native-video / react-native-track-player / expo-av","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"tmp":"tmp/react-native-media-player_1.5.19_1790329400423_0.42305283122857884","host":"s3://npm-registry-packages-npm-production"}},"1.5.20":{"_id":"@simba-dev/react-native-media-player@1.5.20","bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"dist":{"shasum":"03fb37e0bd00fbb0d6a010476f29f5acc0d29ff9","tarball":"https://registry.npmjs.org/@simba-dev/react-native-media-player/-/react-native-media-player-1.5.20.tgz","fileCount":69,"integrity":"sha512-zbXHU4uaaOcptVcREO/svOtp3K6nORK7tzu5i9QPfnshKn1jUGhzBnQecCNNPtR6kXiellbWYZFrFo9pQVOSYg==","signatures":[{"sig":"MEUCIDqvG42jA2oIsyoChxkJp/67m1N+e3RYl935Zt/1BoliAiEAhOVlpf9Oj6t9zyKElj4413Ovc06vnDMKl4sIqxjLLNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEDkQVfqqVQz/1xKExpjcUtGNjIOalD1vHIdEVKHOwsCAiB5r+jPws5MF3PMIiZYcasHzfxxtlsbE8H2D6LLxYiOqg=="}],"unpackedSize":789334},"main":"src/index.ts","name":"@simba-dev/react-native-media-player","types":"src/index.ts","author":{"url":"https://github.com/pavalep","name":"Paval E P","email":"pavalep@varnalabs.dev"},"engines":{"node":">=18"},"funding":{"url":"https://buymeacoffee.com/pavalep","type":"buymeacoffee"},"gitHead":"09403af2d8832b0f83924f1657cfadc4281f5eed","license":"MIT","private":false,"scripts":{"lint":"echo \"lint not configured yet\"","test":"jest","build":"tsc","prepack":"npm run typecheck && npm run test","typecheck":"tsc --noEmit","test:watch":"jest --watch","postinstall":"node ./scripts/download-native.js","test:coverage":"jest --coverage"},"version":"1.5.20","_npmUser":{"name":"pavalep","email":"pavalep@gmail.com"},"homepage":"https://github.com/pavalep/react-native-media-player#readme","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"_npmVersion":"11.19.0","description":"React Native video & audio player powered by libmpv — Picture-in-Picture, MediaSession, foreground service, and a customizable TypeScript UI. Built for Android. Designed as a drop-in replacement for react-native-video / react-native-track-player / expo-av","directories":{},"maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"zustand":"^5.0.15"},"react-native":"src/index.ts","codegenConfig":{"name":"SimbaPlayerSpec","type":"modules","jsSrcsDir":"src"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","react":"19.2.3","typescript":"5.5.4","@types/jest":"^29.5.13","@types/react":"^19.2.0","react-native":"0.86.0","react-test-renderer":"19.2.3","@react-native/jest-preset":"0.86.0","@react-native/babel-preset":"0.86.0","@types/react-test-renderer":"^19.1.0","@testing-library/react-native":"^14.0.1","@react-native/typescript-config":"0.86.0"},"peerDependencies":{"react":">=18.0.0","react-native":">=0.76.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-native-media-player_1.5.20_1790331129606_0.6522444864909926"}}},"time":{"created":"2026-09-03T10:11:03.563Z","modified":"2026-09-25T10:12:09.926Z","1.0.0":"2026-09-03T10:11:04.872Z","1.0.1":"2026-09-03T10:17:17.495Z","1.0.2":"2026-09-03T10:23:16.205Z","1.0.3":"2026-09-03T12:31:28.703Z","1.0.4":"2026-09-03T13:06:05.164Z","1.0.8":"2026-09-03T13:26:49.096Z","1.1.0":"2026-09-04T09:03:43.676Z","1.3.0":"2026-09-04T13:28:08.295Z","1.4.0":"2026-09-04T16:44:21.200Z","1.2.0":"2026-09-04T17:21:50.704Z","1.5.0":"2026-09-07T08:27:32.992Z","1.5.1":"2026-09-11T12:45:15.134Z","1.5.2":"2026-09-12T07:22:37.295Z","1.5.3":"2026-09-12T09:03:06.112Z","1.5.5":"2026-09-14T07:48:25.073Z","1.5.6":"2026-09-14T10:07:34.059Z","1.5.7":"2026-09-15T10:46:49.432Z","1.5.8":"2026-09-17T19:01:25.949Z","1.5.9":"2026-09-18T09:47:38.246Z","1.5.10":"2026-09-18T12:03:00.312Z","1.5.11":"2026-09-18T12:13:02.584Z","1.5.12":"2026-09-21T08:21:37.413Z","1.5.13":"2026-09-21T09:54:34.941Z","1.5.14":"2026-09-21T11:08:13.641Z","1.5.15":"2026-09-21T11:31:58.764Z","1.5.16":"2026-09-21T11:52:49.203Z","1.5.18":"2026-09-21T12:27:51.678Z","1.5.19":"2026-09-25T09:43:20.522Z","1.5.20":"2026-09-25T10:12:09.733Z"},"bugs":{"url":"https://github.com/pavalep/react-native-media-player/issues"},"author":{"url":"https://github.com/pavalep","name":"Paval E P","email":"pavalep@varnalabs.dev"},"license":"MIT","homepage":"https://github.com/pavalep/react-native-media-player#readme","keywords":["react-native","react-native-media-player","video","audio","mpv","player","pip","picture-in-picture","media-session","foreground-service","android","simba"],"repository":{"url":"git+https://github.com/pavalep/react-native-media-player.git","type":"git"},"description":"React Native video & audio player powered by libmpv — Picture-in-Picture, MediaSession, foreground service, and a customizable TypeScript UI. Built for Android. Designed as a drop-in replacement for react-native-video / react-native-track-player / expo-av","maintainers":[{"name":"pavalep","email":"pavalep@gmail.com"}],"readme":"# @simba-dev/react-native-media-player\n\nReact Native video & audio player powered by [libmpv](https://mpv.io/), with first-class **Picture-in-Picture**, **MediaSession**, **foreground service**, and a customizable TypeScript UI. Built for Android. Designed to be a drop-in replacement for `react-native-video` / `react-native-track-player` / `expo-av`.\n\n![Simba Player hero image — Android video player UI mockup](https://raw.githubusercontent.com/pavalep/react-native-media-player/main/assets/hero.svg)\n\n<p align=\"left\">\n  <a href=\"https://www.npmjs.com/package/@simba-dev/react-native-media-player\"><img alt=\"npm version\" src=\"https://img.shields.io/npm/v/@simba-dev/react-native-media-player?color=cb3837&label=npm&logo=npm\" /></a>\n  <a href=\"https://github.com/pavalep/react-native-media-player/releases\"><img alt=\"GitHub release\" src=\"https://img.shields.io/github/v/release/pavalep/react-native-media-player?include_prereleases&sort=semver\" /></a>\n  <a href=\"./LICENSE\"><img alt=\"License: MIT\" src=\"https://img.shields.io/github/license/pavalep/react-native-media-player?color=blue\" /></a>\n  <a href=\"https://www.npmjs.com/package/@simba-dev/react-native-media-player\"><img alt=\"npm downloads\" src=\"https://img.shields.io/npm/dm/@simba-dev/react-native-media-player\" /></a>\n  <a href=\"https://github.com/pavalep/react-native-media-player/tags\"><img alt=\"GitHub tags\" src=\"https://img.shields.io/github/tag-date/pavalep/react-native-media-player?label=latest%20tag&sort=semver\" /></a>\n  <a href=\"https://github.com/sponsors/pavalep\"><img alt=\"Sponsor\" src=\"https://img.shields.io/badge/Sponsor-pavalep-ea4aaa?logo=githubsponsors&logoColor=white\" /></a>\n  <a href=\"https://buymeacoffee.com/pavalep\"><img alt=\"Buy Me a Coffee\" src=\"https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?logo=buy-me-a-coffee&logoColor=black\" /></a>\n  <a href=\"https://github.com/pavalep/react-native-media-player/actions/workflows/ci.yml\"><img alt=\"CI\" src=\"https://img.shields.io/github/actions/workflow/status/pavalep/react-native-media-player/ci.yml?branch=main&label=CI&logo=githubactions&logoColor=white\" /></a>\n  <a href=\"https://github.com/pavalep/react-native-media-player/actions/workflows/release.yml\"><img alt=\"Release\" src=\"https://img.shields.io/github/actions/workflow/status/pavalep/react-native-media-player/release.yml?label=Release&logo=githubactions&logoColor=white\" /></a>\n</p>\n\n<p align=\"left\">\n  <a href=\"https://github.com/pavalep/react-native-media-player/releases\">📦 Releases</a>\n  &nbsp;·&nbsp;\n  <a href=\"./CHANGELOG.md\">📝 CHANGELOG</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://www.npmjs.com/package/@simba-dev/react-native-media-player\">📦 npm package</a>\n  &nbsp;·&nbsp;\n  <a href=\"https://github.com/pavalep/react-native-media-player/tags\">🏷️ Tags</a>\n</p>\n\n## Table of contents\n\n1. [What is `@simba-dev/react-native-media-player`?](#what-is-simbareact-native-media-player)\n2. [Installation](#installation)\n3. [Basic usage](#basic-usage)\n4. [Custom UI](#custom-ui)\n5. [Configuration](#configuration)\n6. [Picture-in-Picture](#picture-in-picture)\n7. [Background audio](#background-audio)\n8. [Theming](#theming)\n9. [API reference](#api-reference)\n10. [Troubleshooting](#troubleshooting)\n11. [Limitations](#limitations)\n12. [Sponsor & support](#sponsor--support)\n13. [Contributing](#contributing)\n14. [License](#license)\n\n---\n\n## What is `@simba-dev/react-native-media-player`?\n\nA standalone NPM package that gives your React Native Android app a unified **video + audio** playback engine backed by **libmpv**. The same engine, the same MediaSession, the same foreground service — for both video and audio playback.\n\n**Highlights:**\n\n- **Dedicated `PlayerActivity`** — extends `ReactActivity`, mounts the mpv-powered `SurfaceView` at the content root (the proven pattern for stable PiP on Android). No more black-screen PiP bugs.\n- **Unified audio + video** — one engine, one set of controls. Audio files use the same `libmpv` instance with the surface hidden; no second player to maintain.\n- **Picture-in-Picture** — auto-enter on background (configurable), manual toggle, custom RemoteActions. Works correctly with the React Native view tree (no nested-SurfaceView surprises).\n- **MediaSession + lock-screen controls** — title / artist / album on the lock screen; play / pause / skip / seek from Bluetooth headphones, wired headsets, Android Auto, etc.\n- **Foreground service** — keeps audio alive when the activity backgrounds (Spotify-style behavior, opt-in).\n- **Customizable UI** — use `<DefaultControls>` out of the box, swap in your own via the `renderControls` prop, or build fully from scratch with `usePlayer` + `useTheme`.\n- **TypeScript-first** — every prop, hook, and config field is fully typed.\n\n## Installation\n\n```bash\nnpm install @simba-dev/react-native-media-player\n```\n\nAutolinking handles the rest — RN's `react-native config` will find the package via the shipped [`react-native.config.js`](./react-native.config.js) and register `com.simba.player.PlayerPackage` in your `MainApplication.kt` automatically on next build.\n\n### Requirements\n\n- React Native **≥ 0.76** (bridgeless mode required)\n- Android `minSdk` **24** (Android 7.0 Nougat — needed for Picture-in-Picture)\n- Kotlin **1.9+** in the consumer app\n\n### Consumer setup\n\nAdd the player to your `AndroidManifest.xml` (the package ships its own `<service>` and `<receiver>` declarations, but the **launchable activity** has to be registered in your app's manifest so the consumer can launch it):\n\n```xml\n<!-- MOBILE_APP_REACT_NATIVE/android/app/src/main/AndroidManifest.xml -->\n<activity\n    android:name=\"com.simba.player.PlayerActivity\"\n    android:configChanges=\"orientation|screenSize|screenLayout|keyboardHidden|navigation\"\n    android:launchMode=\"singleTask\"\n    android:supportsPictureInPicture=\"true\"\n    android:resizeableActivity=\"true\"\n    android:autoRemoveFromRecents=\"true\"\n    android:theme=\"@style/AppTheme\"\n    android:exported=\"false\" />\n```\n\nIf you plan to use **background audio**, declare the foreground-service permissions:\n\n```xml\n<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE\" />\n<uses-permission android:name=\"android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK\" />\n<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\" />\n```\n\nFor **API 33+** (Android 13+) the app must request `POST_NOTIFICATIONS` at runtime before the first media-style notification is shown. The bridge's `requestNotificationPermission()` helper does this:\n\n```ts\nimport { getMpvPlayerModule } from '@simba-dev/react-native-media-player';\ngetMpvPlayerModule().requestNotificationPermission?.(); // graceful no-op on older APIs\n```\n\n## Basic usage\n\n```tsx\n// App.tsx — V15+ (one wrapper, one import, zero glue code)\nimport React from 'react';\nimport {\n  SimbaPlayer,\n  SimbaPlayerRoot,\n  useOpenFromUrl,\n} from '@simba-dev/react-native-media-player';\n\nexport default function App() {\n  return (\n    <SimbaPlayer\n      getResumePosition={(uri) =>\n        store.getState().bookmarks.byFileUri[uri]?.positionMs\n      }\n    >\n      <AppContent />\n    </SimbaPlayer>\n  );\n}\n\nfunction AppContent() {\n  // Deep links: open incoming content:// + file:// URIs in the player.\n  const openFromUrl = useOpenFromUrl();\n  React.useEffect(() => {\n    Linking.getInitialURL().then(url => url && openFromUrl(url));\n    const sub = Linking.addEventListener('url', ({ url }) => openFromUrl(url));\n    return () => sub.remove();\n  }, [openFromUrl]);\n\n  // <SimbaPlayerRoot> handles the activity-launch branch\n  // (renders <PlayerRoot /> when launchParams is set, otherwise children).\n  return (\n    <SimbaPlayerRoot>\n      <YourNavigator />\n    </SimbaPlayerRoot>\n  );\n}\n```\n\nThat's it — `<SimbaPlayer>` is the one-import, one-wrapper integration point. It composes the `PlayerProvider` (config + state) and `PlayerResumeProvider` (bookmark-aware resume lookup). `<SimbaPlayerRoot>` (V14) absorbs the `useLaunchParams()` + activity-branch switch. `useOpenFromUrl()` (V14) absorbs the deep-link URI-scheme filter + title-derivation + extension-classification. `getResumePosition` (V14) is the new function-prop shape for the resume lookup (replaces V13's `lookup={...}` object shape).\n\n### Per-screen usage (V15+)\n\nEvery player-related call is a one-line module hook. No `useAppDispatch` in player files. No `useAppSelector(state => state.player.X)`. No V11-mirrored redux state.\n\n```tsx\nimport {\n  usePlayerActivity,   // single-track play\n  useOpenPlaylist,     // play all from a list\n  useQueue,            // add / remove / reorder queue items\n  useSleepTimer,       // arm a sleep timer\n  useEqualizer,        // 10-band EQ\n  useIsLiked,          // per-file \"liked\" state\n  useShuffle,          // shuffle flag\n} from '@simba-dev/react-native-media-player';\n\n// Single-track play (V14, unchanged)\nconst {openPlayer} = usePlayerActivity();\nconst handlePlay = (item) => openPlayer({uri: item.uri, title: item.title, type: 'audio'});\n\n// Play all from a list (V15 — the \"play all\" two-step absorption)\nconst {openPlaylist} = useOpenPlaylist();\nconst handlePlayAll = () => openPlaylist(sortedTracks, {type: 'audio'});\n\n// Add to queue (V15 — zustand-backed, no Redux)\nconst {addToQueue} = useQueue();\nconst handleAddToQueue = (item) => addToQueue({uri: item.uri, title: item.title, ...});\n\n// Set sleep timer (V15 — public surface; the consumer hasn't wired UI yet)\nconst {endTime, setTimer, clear} = useSleepTimer();\nconst handleSet30Min = () => setTimer(30 * 60);  // 30 minutes\n```\n\n### Launching a file from JS\n\n```tsx\nimport { usePlayerActivity } from '@simba-dev/react-native-media-player';\n\nfunction TrackRow({ track }) {\n  const { openPlayer } = usePlayerActivity();\n  return (\n    <Pressable onPress={() => openPlayer({\n      uri: track.uri,\n      title: track.title,\n      type: 'audio',        // 'video' | 'audio'\n      startPositionMs: 0,   // optional\n    })}>\n      <Text>{track.title}</Text>\n    </Pressable>\n  );\n}\n// PlayerActivity launches, plays the file, supports PiP, etc.\n```\n\n### Resume-aware openPlayer (with bookmarks)\n\nIf your app has a bookmarks/history feature, wrap your tree in `<SimbaPlayer>` with a `lookup` adapter and use `useOpenWithResume()`. The hook accepts a `resumeId` and looks up the saved position via your adapter — no manual position plumbing in every call site.\n\n```tsx\n// App.tsx\nimport { SimbaPlayer, type PlayerResumeLookup } from '@simba-dev/react-native-media-player';\n\nconst resumeLookup: PlayerResumeLookup = {\n  getResumePosition: (resumeId) => {\n    // resolve the resume position (ms) for the given item\n    // — return undefined for \"no saved position\"\n    return store.getState().bookmarks.byFileUri[resumeId]?.positionMs;\n  },\n};\n\n<SimbaPlayer lookup={resumeLookup}>\n  <AppContent />\n</SimbaPlayer>\n\n// TrackRow.tsx\nimport { useOpenWithResume } from '@simba-dev/react-native-media-player';\n\nfunction TrackRow({ track }) {\n  const openPlayer = useOpenWithResume();\n  return (\n    <Pressable onPress={() => openPlayer({\n      uri: track.uri,\n      title: track.title,\n      type: 'audio',\n      resumeId: track.uri,  // module looks up the saved position\n    })}>\n      <Text>{track.title}</Text>\n    </Pressable>\n  );\n}\n```\n\n### Mapping content kinds to V13 stream types\n\nIf your items have content kinds like `'music'`, `'movie'`, `'podcast'` (not the V13 stream types `'audio' | 'video'`), use the `resolveStreamType` helper:\n\n```tsx\nimport { usePlayerActivity, resolveStreamType } from '@simba-dev/react-native-media-player';\n\nconst { openPlayer } = usePlayerActivity();\nopenPlayer({\n  uri: item.uri,\n  title: item.title,\n  type: resolveStreamType(item.kind),  // 'music' -> 'audio', 'movie' -> 'video', etc.\n});\n```\n\n## Custom UI\n\nTwo ways to swap the controls:\n\n### 1. `renderControls` prop (recommended)\n\n```tsx\nimport React from 'react';\nimport { Pressable, Text, View } from 'react-native';\nimport {\n  PlayerProvider,\n  PlayerRoot,\n  usePlayer,\n  useTheme,\n} from '@simba-dev/react-native-media-player';\n\nfunction MyCustomControls() {\n  const { state, commands } = usePlayer();\n  const theme = useTheme();\n  return (\n    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>\n      <Text style={{ color: theme.text }}>{state.title}</Text>\n      <Pressable onPress={state.isPlaying ? commands.pause : commands.play}>\n        <Text style={{ color: theme.accent, fontSize: 24 }}>\n          {state.isPlaying ? '⏸' : '▶'}\n        </Text>\n      </Pressable>\n    </View>\n  );\n}\n\nexport default function App() {\n  return (\n    <PlayerProvider renderControls={() => <MyCustomControls />}>\n      <PlayerRoot />\n    </PlayerProvider>\n  );\n}\n```\n\nThe `renderControls` function takes no arguments — your component reads what it needs (`usePlayer`, `useTheme`, `usePlayerProgress`) from the provider context. When omitted, `<PlayerRoot>` falls back to `<DefaultControls>`.\n\n### 2. Build fully from scratch\n\nSkip `<PlayerRoot>` entirely and lay out your own tree:\n\n```tsx\nimport React from 'react';\nimport { View } from 'react-native';\nimport { PlayerProvider, PlayerSurface } from '@simba-dev/react-native-media-player';\nimport { MyControls } from './MyControls';\n\nexport default function App() {\n  return (\n    <PlayerProvider>\n      <View style={{ flex: 1 }}>\n        <PlayerSurface />\n        {/* your own controls, positioned absolutely over the surface */}\n        <View style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n          <MyControls />\n        </View>\n      </View>\n    </PlayerProvider>\n  );\n}\n```\n\n## Configuration\n\nPass a `config` prop to `<PlayerProvider>`:\n\n```tsx\n<PlayerProvider\n  config={{\n    theme: { accent: '#00FF88' },\n    pip: { enabled: true, autoEnterOnLeave: true },\n    audio: { backgroundPlayback: true, respectAudioFocus: true },\n    hardwareDecoding: 'auto', // 'auto' | 'mediacodec' | 'no'\n    notifications: { enabled: true, channelId: 'my_app_media' },\n    subtitle: { preferredLanguages: ['en'], fontSize: 18 },\n    debug: { verboseLogging: false },\n  }}\n>\n  {children}\n</PlayerProvider>\n```\n\nEvery field is optional and falls back to the defaults in [`DEFAULT_PLAYER_CONFIG`](./src/types/config.ts). See the [API reference](#api-reference) for the full type definitions.\n\n### Spread-and-override pattern\n\nFor minor overrides, spread the defaults:\n\n```tsx\nimport { DEFAULT_PLAYER_CONFIG } from '@simba-dev/react-native-media-player';\n\n<PlayerProvider\n  config={{\n    ...DEFAULT_PLAYER_CONFIG,\n    audio: { ...DEFAULT_PLAYER_CONFIG.audio, backgroundPlayback: false },\n  }}\n>\n```\n\n## Picture-in-Picture\n\nPicture-in-Picture is on by default. Two configuration knobs:\n\n```tsx\n<PlayerProvider\n  config={{\n    pip: {\n      enabled: true,         // master switch — when false, all PiP entry requests are ignored\n      autoEnterOnLeave: true, // auto-enter on home/recents/app-switcher\n    },\n  }}\n>\n```\n\n### Manual PiP control\n\n```tsx\nimport { NativeModules } from 'react-native';\nconst { MpvPlayerModule } = NativeModules;\n\nMpvPlayerModule.enterPip();             // enter PiP right now\nMpvPlayerModule.exitPip();              // expand back to fullscreen\nMpvPlayerModule.exitPipAndFinish();     // close the player session\n```\n\n### PiP RemoteActions\n\nThe module's lock-screen / PiP notification exposes Play / Pause / Skip-Back / Skip-Forward actions out of the box. Custom actions are not yet exposed via the public TS API — see the [Limitations](#limitations) section.\n\n## Background audio\n\nAudio files keep playing when the user backgrounds the app (Spotify-style). Video files always pause on background — this is intentional, see the [audio unification rationale](#limitations).\n\nTo disable background audio:\n\n```tsx\n<PlayerProvider\n  config={{ audio: { backgroundPlayback: false } }}\n>\n```\n\nWhen `backgroundPlayback` is enabled, the module starts a foreground service (`com.simba.player.MediaPlaybackService`) that hosts the MediaSession + media-style notification. The notification's transport controls work on the lock screen, in Android Auto, on Bluetooth headphones (play / pause / skip), and via Google Assistant.\n\n## Theming\n\nEvery color in `<DefaultControls>` comes from the `PlayerTheme` slice of the config:\n\n```tsx\n<PlayerProvider\n  config={{\n    theme: {\n      accent: '#FFD700',                       // play button, progress fill\n      background: '#121216',                   // surface background\n      text: '#FFFFFF',                         // primary text\n      textSecondary: 'rgba(255,255,255,0.6)',  // subtitles, time labels\n      surface: 'rgba(255,255,255,0.1)',        // floating cards, icon backgrounds\n      icon: '#FFFFFF',                         // optional — defaults to `text`\n    },\n  }}\n>\n```\n\nRead the theme from a custom component:\n\n```tsx\nimport { useTheme } from '@simba-dev/react-native-media-player';\n\nconst theme = useTheme();\n<View style={{ backgroundColor: theme.background }} />;\n```\n\nDefault theme is dark with a golden accent (`DEFAULT_THEME`).\n\n## API reference\n\nEvery public export lives in [`src/index.ts`](./src/index.ts). The **V13+ surface** is the recommended way to integrate; the V12 surface (`PlayerProvider` + `usePlayer()` directly) still works for backward compatibility but is undocumented for new consumers.\n\n### Components (V13+ recommended, V14 additions in **bold**)\n\n| Component | Purpose |\n|---|---|\n| `<SimbaPlayer>` | **One-import, one-wrapper integration.** Composes `PlayerProvider` + `PlayerResumeProvider`. V14 adds the `getResumePosition` function prop (alongside the legacy `lookup` object prop). Use this at the app root. |\n| **`<SimbaPlayerRoot>`** | **V14 — activity-branch wrapper.** Calls `useLaunchParams()` internally; renders `<PlayerRoot />` when the activity was launched with playback params, otherwise renders its `children`. Replaces the V13 `if (launchParams) return <PlayerRoot />` boilerplate. |\n| `<PlayerRoot>` | Renders `<PlayerSurface>` + the controls overlay (default `<DefaultControls>` or custom via `renderControls`). |\n| `<PlayerSurface>` | `<View flex:1>` placeholder for the native SurfaceView. a11y-hidden. |\n| `<DefaultControls>` | Pre-built controls (top bar, scrubber, transport, auto-hide). |\n| `<PlayerProvider>` | (V12 surface) Wraps the app; provides resolved config + `renderControls` slot. Use `<SimbaPlayer>` instead unless you need the raw provider. |\n\n### Hooks (V13+, V14 additions in **bold**, V15 additions in __bold-italic__)\n\n| Hook | Returns | Throws outside provider? |\n|---|---|---|\n| `usePlayerActivity()` | `{ openPlayer(opts), getLaunchParams() }` | ❌ No (no-op fallback) |\n| `useOpenWithResume()` | `(opts: OpenPlayerOptions & { resumeId? }) => Promise<boolean>` | ❌ No (no-op lookup) |\n| **`useOpenFromUrl()`** | **`(uri: string) => Promise<boolean>`** — **deep-link helper** that filters `content://` + `file://` URIs, derives a title from the basename, classifies audio/video by extension, and forwards to `useOpenWithResume().openPlayer(...)` | ❌ No |\n| **`useOpenPlaylist()`** | __V15 — `{ openPlaylist(entries, opts) }` — \"play all from a list\" two-step absorption. `opts: { type?, startIndex?, startPositionMs?, shuffle?, startExtras? }`__ | ❌ No |\n| **`useSimbaPlayerLookup(selector?)`** | **`PlayerResumeLookup`** — **factory hook** that wraps an optional `selector` in a memoized lookup object. Without a selector, returns no-op. | ❌ No |\n| __`useQueue()` / `useQueueItems()` / `useQueueLength()` / `usePlaybackHistory()`__ | __V15 — queue + playback history state (zustand-backed). `useQueue()` returns the full store (queue, history, 9 actions: addToQueue, prependToQueue, removeFromQueue, reorderQueue, clearQueue, shuffleQueue, playFromQueue, addToPlaybackHistory, clearPlaybackHistory).__ | ❌ No |\n| __`useQueueSelection()` / `useQueueSelectedIndices()`__ | __V15 — multi-select state for the queue (selected indices + 4 actions: setSelection, clearSelection, removeSelected, moveSelectedToTop).__ | ❌ No |\n| __`useSleepTimer()` / `useSleepTimerEnd()` / `useSleepTimerMode()`__ | __V15 — sleep timer state (endTime + mode) + actions (setTimer, setMode, clear).__ | ❌ No |\n| __`useEqualizer()` / `useEqualizerEnabled()`__ | __V15 — 10-band equalizer (gains + enabled) + actions (setGains, toggle).__ | ❌ No |\n| __`useIsLiked(uri)` / `useToggleLiked()`__ | __V15 — per-file \"liked\" state (Record<uri, boolean>) + toggle action.__ | ❌ No |\n| __`useShuffle()` / `useShuffleEnabled()`__ | __V15 — shuffle flag + toggle action.__ | ❌ No |\n| `usePlayItem()` | `(item, opts) => Promise<boolean>` | ❌ No (sugar on `useOpenWithResume`) |\n| `useLaunchParams()` | `LaunchParams \\| null` | ❌ No (returns null) |\n| `usePlayer()` | `{ state: PlayerState, commands: PlayerCommands, progress: PlayerProgress }` | ❌ No (returns defaults) |\n| `usePlayerProgress()` | `{ positionMs, durationMs, isBuffering, isSeeking, seekable, cacheRanges, cacheFill }` | ❌ No (returns 0/0) |\n| `usePlayerConfig()` | `ResolvedPlayerConfig` | ✅ Yes (programmer error) |\n| `useTheme()` | `PlayerTheme` | ✅ Yes (programmer error) |\n| `useRenderControls()` | `RenderControlsFn \\| null` | ❌ No (falls back to default controls) |\n\n### Types (V13+)\n\n| Type | Notes |\n|---|---|\n| `PlayerState` | 20 fields: `isPlaying`, `title`, `artist`, `album`, `positionMs`, `durationMs`, `isBuffering`, `isSeeking`, `seekable`, `volume`, `isMuted`, `speed`, `loopMode`, `playlist`, `currentIndex`, `tracks`, `chapters`, `currentChapter`, `videoParams`, `error` |\n| `PlayerProgress` | 7 fields: `positionMs`, `durationMs`, `isBuffering`, `isSeeking`, `seekable`, `cacheRanges`, `cacheFill` |\n| `PlayerCommands` | 38 methods: `play`, `pause`, `seek`, `skipBackward`, `skipForward`, `togglePlayPause`, `stop`, `seekBy`, `seekToChapter`, `next`, `previous`, `setVolume`, `setMuted`, `toggleMute`, `setSpeed`, `setLoopMode`, `loadFile`, `loadPlaylist`, `playlistRemove`, `shuffle`, `clear`, `selectTrack`, `cycleTrack`, `setTrack`, `enterPip`, `exitPip`, `exitPipAndFinish`, `setKeepScreenOn`, `setOrientation`, `setImmersive`, `setScreenBrightness`, `requestNotificationPermission`, `openPlayer`, `getLaunchParams`, `getProperty`, `setProperty`, `observeProperty`, `unobserveProperty`, `grantPersistablePermission`, `verifyContentUri` |\n| `OpenPlayerOptions` | `{ uri, title, type: 'video' \\| 'audio', startPositionMs? }` — the V13 `openPlayer` arg shape (replaces V11's positional args) |\n| `LaunchParams` | `{ uri, title, type, startPositionMs }` — read from the activity via `useLaunchParams()` |\n| `ContentKind` | `'video' \\| 'audio' \\| 'music' \\| 'movie' \\| 'podcast' \\| 'live-tv' \\| 'radio' \\| 'audiobook' \\| 'archive-audio' \\| 'episode' \\| 'video-file' \\| string` |\n| `PlayerResumeLookup` | `{ getResumePosition(itemId: string): number \\| undefined }` — adapter for the bookmark-aware resume lookup |\n| **`GetResumePosition`** | **V14 — `(itemId: string) => number \\| undefined`** — the function reference shape for `<SimbaPlayer getResumePosition={...}>` |\n| `SimbaPlayerProps` | `{ config?, lookup?, getResumePosition?, children }` — V14 adds `getResumePosition` (function prop, recommended). If both `lookup` and `getResumePosition` are passed, `getResumePosition` wins. |\n| **`SimbaPlayerRootProps`** | **V14 — `{ children: React.ReactNode }`** — the children are rendered when the activity was launched WITHOUT playback params |\n| `MpvPlayerModuleBridge` | Typed view of the native module (78 methods) |\n| `PlayerConfig`, `ResolvedPlayerConfig`, `PlayerTheme`, `PipConfig`, `AudioConfig`, `SubtitleConfig`, `NotificationConfig`, `DebugConfig`, `HardwareDecodingPolicy` | V12 surface — same as before |\n| `MpvTrack`, `MpvChapter`, `MpvFileInfo`, `MpvVideoParams`, `MpvAudioDevice`, `MpvPlaybackState`, `MpvLoopMode`, `MpvEventName`, `MpvEvents`, `MpvEventPayloads`, `PlayerEventName`, `PlayerEventPayloads` | Low-level mpv types |\n\n### Constants\n\n| Constant | Description |\n|---|---|\n| `DEFAULT_THEME` | Dark theme with golden accent |\n| `DEFAULT_PLAYER_CONFIG` | Fully-resolved default config (useful for spread-and-override) |\n\n### Functions\n\n| Function | Description |\n|---|---|\n| `resolvePlayerConfig(config)` | Merge a partial config with defaults — useful for tests / debug overlays |\n| `getMpvPlayerModule()` | Typed wrapper over `NativeModules.MpvPlayerModule`. Returns a no-op stub on non-RN platforms (jest, web). |\n| `resolveStreamType(kind: ContentKind): 'video' \\| 'audio'` | Map a content kind to the V13 stream type. Idempotent — `'video'` and `'audio'` pass through unchanged. Use this when your items have `'music'`, `'movie'`, etc. but V13 `openPlayer` expects `'video' | 'audio'`. |\n| `subscribePlayerEvent(name, handler)` → unsubscribe | Subscribe to a native mpv event (22 events). Returns an unsubscribe function. |\n| `removeAllListeners(event?)` | Remove all listeners for an event (or all events if no arg). |\n\n## Troubleshooting\n\n### \"MpvPlayerModule is undefined\" on JS side\n\nYou probably haven't rebuilt the native side after `npm install`. Run:\n\n```bash\ncd android && ./gradlew :app:assembleDebug\n```\n\nOr do a full Metro reset:\n\n```bash\nnpm start --reset-cache\n```\n\n### Player launches but video is black\n\n- **Permissions:** on API 33+ the app must request `POST_NOTIFICATIONS` before showing the media-style notification. Use `MpvPlayerModule.requestNotificationPermission()`.\n- **Codec:** if the device can't decode the format (rare - libmpv handles most), try `hardwareDecoding: 'no'` to force software decoding.\n- **HTTPS:** libmpv's curl backend rejects malformed URLs. Ensure your media URLs are valid `https://` (or `content://` for local files).\n\n### App is stuck at a white screen after splash (no JS error, just white)\n\nThis is almost always a **`dlopen failed: cannot locate symbol` on the libmpv.so** chain — visible in `adb logcat -d --pid=$(adb shell pidof <your.package>) | grep dlopen` as:\n\n```\ndlopen failed: cannot locate symbol\n  \"_ZNSt6__ndk127__from_chars_floating_pointIfE...\"\nreferenced by \".../libmpv.so\"\n```\n\nCause: the lib's bundled prebuilts (from `mpv-android` releases) are built against **LLVM 17+ libc++** (NDK r28+), which has `__from_chars_floating_point`. If your APK's `lib/<abi>/libc++_shared.so` is missing that symbol, `libsimbaplayer_mpv.so` fails to load, the `MpvBridgeModule` TurboModule never registers, and the app can't render past splash.\n\nFix: **remove any `excludes += [\"lib/*/libc++_shared.so\"]` from your `android/app/build.gradle` `packagingOptions { jniLibs { } }` block** if you have one. The lib ships its own LLVM 17+ libc++_shared.so via the postinstall hook (`scripts/download-native.js` downloads the matching `jniLibs.tar.gz` from the GitHub release) and your APK should bundle that copy. Also **delete** any pre-v1.5.14 leftover `app/src/main/jniLibs/<abi>/<abi>/libc++_shared.so` (NDK r27 LLVM 16, missing the symbol) if you kept one around from a prior workaround.\n\nAfter this, `gradle :app:assembleDebug` will bundle the lib's libc++_shared.so and `libsimbaplayer_mpv.so` will resolve symbols cleanly.\n\n### PiP doesn't auto-enter on home press\n\nMake sure:\n\n1. The activity has `android:supportsPictureInPicture=\"true\"` and `android:resizeableActivity=\"true\"` in your `AndroidManifest.xml` (the consumer must declare these — the library doesn't force them).\n2. `config.pip.autoEnterOnLeave === true` (the default).\n3. The app targets API 24+ on a device that supports PiP (most modern Android devices do).\n\n### Debug logging\n\nEnable verbose logging from JavaScript:\n\n```tsx\nimport { setDebugLogging } from '@simba-dev/react-native-media-player';\n\n// Enable verbose logging (sets mpv msg-level=all + logs every bridge call)\nsetDebugLogging(true);\n\n// ... your code ...\n\n// Disable for production\nsetDebugLogging(false);\n```\n\nOr via the PlayerProvider config:\n\n```tsx\n<PlayerProvider config={{ debug: { verboseLogging: true } }}>\n```\n\nThen watch logcat:\n\n```bash\nadb logcat -v color MpvBridgeModule:V MPVLib:V PipManager:V MediaPlaybackService:V ReactNativeJS:V *:S\n```\n\nThe `[PlaybackTrace]` prefix tags every bridge call so you can trace end-to-end.\n\n#### Property dump\n\nTo dump all currently-observed mpv properties to logcat (useful for debugging state divergence between native and JS):\n\n```tsx\nimport { dumpObservedProperties } from '@simba-dev/react-native-media-player';\n\nconst count = dumpObservedProperties();\nconsole.log(`Dumped ${count} properties to logcat`);\n```\n\nOutput looks like:\n\n```\n[PlaybackTrace][Bridge][dumpObservedProperties] 12 properties observed:\n[PlaybackTrace][Bridge][dumpProperties] property=time-pos value=\"123.456\" requested=true\n[PlaybackTrace][Bridge][dumpProperties] property=duration value=\"600\" requested=true\n...\n```\n\n#### Memory-pressure response\n\nWhen the system signals memory pressure via `ComponentCallbacks2.onTrimMemory()`, the bridge automatically reduces mpv's cache:\n\n| Level | Cache-secs |\n|---|---|\n| `TRIM_MEMORY_RUNNING_MODERATE` | 10 |\n| `TRIM_MEMORY_RUNNING_LOW` | 5 |\n| `TRIM_MEMORY_RUNNING_CRITICAL` | 2 |\n| `TRIM_MEMORY_BACKGROUND` | 10 |\n| `TRIM_MEMORY_COMPLETE` | 0 |\n\nNo configuration needed — the bridge listens via `PlayerActivity` registration and adjusts `mpv.setPropertyString('cache-secs', ...)`.\n\n#### Native module init log\n\nOn every React Native init, the bridge logs:\n\n```\n[PlaybackTrace][Bridge][initialize] MpvPlayerModule v0.1.0 init: package=com.simba.app isHeadlessJsTask=false debugLogging=false\n```\n\nThis confirms the module is wired + reports the package name + current debug-logging state. Use `adb logcat -s MpvBridgeModule` to filter.\n\n### TypeScript \"Cannot find module '@simba-dev/react-native-media-player'\"\n\nMake sure the package is in your `dependencies` (not `devDependencies`) and Metro has been restarted. The `package.json` field `\"react-native\": \"src/index.ts\"` lets Metro resolve to the source directly without a build step.\n\n## Limitations\n\n- **Android-only.** iOS is not supported (no plans — the libmpv backend is the only reason this package exists; iOS has `AVPlayer`). The `react-native.config.js` returns `ios: null` to skip iOS autolinking entirely.\n- **No DRM.** libmpv does not implement Widevine / FairPlay / PlayReady. Widevine is on the libmpv roadmap but not stable.\n- **No casting.** Chromecast and AirPlay are out of scope. The MediaSession integrates with Android Auto and Bluetooth headphones, but not Cast.\n- **GPL considerations.** libmpv is GPLv2+ by default. Bundling libmpv in your APK makes any consumer app that links against it subject to GPL terms unless you choose an LGPL-compatible build path. See the [License](#license) section below and the bundled [`MPV_NATIVE_PROVENANCE.md`](./android/src/main/jniLibs/MPV_NATIVE_PROVENANCE.md) for the exact provenance of the binary.\n- **Audio vs video background behavior.** Video files always pause on background (no PiP, no audio continuation) — this is intentional. The V11 codebase had separate engines for audio vs video; V12 unifies them on libmpv but keeps the \"video = foreground-only\" rule because the SurfaceView's GPU compositing stops when the activity backgrounds.\n- **PiP custom RemoteActions.** The lock-screen / PiP notification exposes a fixed set of actions (Play / Pause / Skip-Back / Skip-Forward). Custom actions are a W7+ feature.\n- **React Native ≥ 0.76 only.** Bridgeless mode is required (the TurboModule path uses `TurboReactPackage`, which doesn't work on the legacy bridge).\n\n## Sponsor & support\n\n`@simba-dev/react-native-media-player` is free, open source software made possible by [Paval E P](https://github.com/pavalep) and the contributors who help maintain it. If you find it useful in your own work, consider supporting its continued development.\n\n<a href=\"https://buymeacoffee.com/pavalep\"><img alt=\"Buy Me a Coffee\" src=\"https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black\" /></a>\n\nEvery contribution — large or small — helps me spend more time maintaining, experimenting, and shipping the next set of fixes and features. 🙏\n\n### About the maintainer\n\n> I'm an independent developer building software, experimenting with ideas, and working on projects through **Varna Labs**, my sole proprietorship registered under India's Udyam/MSME framework. 🇮🇳\n>\n> If you like my projects, find something I've built useful, or simply want to support independent development, consider [making a contribution](https://buymeacoffee.com/pavalep). 🙌\n>\n> It doesn't have to be much — every little bit helps me spend more time building, experimenting, maintaining projects, and bringing new ideas to life. ✨\n>\n> 💡 Have a viable project or something interesting you'd like to build together?\n> Feel free to [reach out](https://github.com/pavalep). I'm always happy to discuss potential collaborations and see where a good idea can go. 🤝\n>\n> Your support keeps independent work moving. 🦋\n> Gracias for being here! ❤️\n\n## Contributing\n\n### Local development\n\nThe module is a sibling of the consumer app at `SIMBA/react-native-media-player/`. To work on the module and test it in the consumer app:\n\n```bash\n# 1. Make changes in react-native-media-player/\n\n# 2. Typecheck\ncd react-native-media-player\nnpx tsc --noEmit -p .\n\n# 3. Build the AAR\ncd ../MOBILE_APP_REACT_NATIVE/android\n./gradlew :react-native-media-player:assembleDebug\n\n# 4. Build the consumer APK (catches consumer-side regressions)\n./gradlew :app:assembleDebug\n\n# 5. Run on device\ncd ..\nnpm run android\n```\n\n### Tests\n\nWave 7 (Phases 33-34) adds JUnit + Jest tests. Until then, manual testing via the consumer app is the gate.\n\n```bash\n# Type check only\ncd react-native-media-player\nnpx tsc --noEmit -p .\n\n# Verify the package is publishable (without actually publishing)\nnpm pack --dry-run\n```\n\n### Pull request guidelines\n\n- One phase per PR (matches the spec's phase structure).\n- Update SPEC + TRACKER docs as part of the change.\n- Verify `./gradlew :react-native-media-player:assembleDebug :app:assembleDebug` passes.\n- Verify `npx tsc --noEmit -p .` passes from the module root.\n\n## License\n\n**MIT** for the Java/Kotlin/TypeScript code in this package. See [`LICENSE`](./LICENSE).\n\n**Note on bundled native libraries** (see [`LICENSE`](./LICENSE) for full text):\n\n- [libmpv](https://mpv.io/) — **GPLv2+** by default. Bundling it makes any consumer app that links against it subject to GPL terms unless an LGPL-compatible build path is chosen.\n- Bundled FFmpeg libraries (`libavcodec`, `libavformat`, `libavutil`, `libavfilter`, `libavdevice`, `libswresample`, `libswscale`) — **LGPLv2.1+** unless configured otherwise at build time.\n- `libOpenCL` — Apache-2.0.\n- `libc++_shared` — Apache-2.0 with LLVM exceptions.\n\nConsumers are responsible for ensuring their app's license obligations are met when shipping these binaries. See [`android/src/main/jniLibs/MPV_NATIVE_PROVENANCE.md`](./android/src/main/jniLibs/MPV_NATIVE_PROVENANCE.md) for the exact provenance of each bundled binary.\n\n---\n\n**Status:** latest published version is **1.5.20** on [npmjs](https://www.npmjs.com/package/@simba-dev/react-native-media-player) and [GitHub Releases](https://github.com/pavalep/react-native-media-player/releases). See [CHANGELOG.md](./CHANGELOG.md) for the full per-version notes.\n","readmeFilename":"README.md"}