{"_id":"@edmingle/web-video-sdk","_rev":"8-78bd5dde9742f76820c80ead18c1d64d","name":"@edmingle/web-video-sdk","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.3":{"name":"@edmingle/web-video-sdk","version":"0.1.3","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.3","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"3404ccbecf0113c3d3cfd12de9ca7afd9927456c","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.3.tgz","fileCount":11,"integrity":"sha512-zDKAWucUZVZ3JlDuJ12T1XbYHv6sShLyiU0DEhPq7T5HMCrsyjjWetc/O4i1eE/ciB6RdSwppl2rsqMlttscaw==","signatures":[{"sig":"MEYCIQC857Q0h8/Dk0aqtCgp2TvTFpHln2Va4WJCzASaPyO36QIhAOn/wjgYWysYLIOOAubSHmbUPagS7dNVlQNZSkIwig7H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":143367},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"fcef1df90ec536b49ab0a8418d7f5acbf139b403","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.3_1785775962593_0.15340553707819304","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@edmingle/web-video-sdk","version":"0.1.4","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.4","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"25af0fc4b94043d3853711053df7d8d20acaf5cb","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.4.tgz","fileCount":11,"integrity":"sha512-gSKCgvqeG9MTXdw7MqGIjWxO9+0qdfIrknpsuBlooEPdGbzd3CRQ/PdXLgx1t+Qw4h4ie4tiw+VYTyl+0LpD4A==","signatures":[{"sig":"MEUCIDiY0vkbI0HQaOjKWW+Wlho9puWdrKeXdDRj4iEB5EahAiEAsUhJMyG0aim97J/TMhXN29ls/ZaRRzvuiFzVrTqNCNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142515},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"2d03bff9114ae45bab823c4d0e3168caa39b0768","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.4_1785776321061_0.3901254696498777","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@edmingle/web-video-sdk","version":"0.1.5","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.5","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"54b465bc497dc69f7372b735cad8c01f95217b71","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.5.tgz","fileCount":11,"integrity":"sha512-6OWvjC/EG2XUOEibehWUKT33X+WPMbnlqAlPw7ENHZUjI0RkgibJmOXUovFBbmFXWFMuYKlukt/AzUn8pVQTCg==","signatures":[{"sig":"MEQCIGpcztP/aovMmrIehi+gjhjSG/KF4EREDzT+JoTuxfnaAiBK8pmQF0+y2G3ZrnpAzMeq6bKvttpmUreXVq2o1id1Ww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142157},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"f98c231c6d1317f02cf1d31ad8d018cc2b42a5fe","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.5_1785855014359_0.6990991314859125","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@edmingle/web-video-sdk","version":"0.1.6","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.6","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"08b95d57f4bb3394bcf2be5d9fe3108842c76bfb","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.6.tgz","fileCount":11,"integrity":"sha512-1uOZ57vkJ2lTv+nygWkaU9yySuJJspSeUCIQV9qxxjMYObkX4AMvndbgtkspKFgDN3zN+bB0l6MAGUwVF1WzIg==","signatures":[{"sig":"MEQCIAvT8SDIaGXsfPviyqANwPpXnaCljhxdPvH1OVU5eclNAiBKX+Mdd9u3ZPC/qA9eiqm/LSyV/qy5Y2wPvRlTQ7YURg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159163},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"bf780705e2048084f525a74e01e1d322edbadcf4","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts selfcheck/device.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js && node .selfcheck/selfcheck/device.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"10.8.2","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.6_1785859776079_0.5420297926190478","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@edmingle/web-video-sdk","version":"0.1.7","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.7","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"e2f1c74e81855ba958d020e8e084e8882b227601","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.7.tgz","fileCount":11,"integrity":"sha512-Lv/uFVZFLFVgZf/e1L7fYxWnJF2cf3kEwnoe0Cq60zBCM5CYyUDL3l5V7EGYcffPKFQgwcTlHVkYrEwW9BZiCA==","signatures":[{"sig":"MEYCIQDuMexlvR5LLCm9y30I++Z9g4fPobE7QdjdoFu1WFfOZAIhAL61opXouWq6NBhpRiP1QBpRtySK96D+ujZaqZ01povG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":159256},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"b7a5adaaa7964664a277f42c6e4d26b30377ee87","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts selfcheck/device.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js && node .selfcheck/selfcheck/device.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"11.15.0","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"26.2.0","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.7_1785933270931_0.9501590800741935","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@edmingle/web-video-sdk","version":"0.1.8","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.8","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"694a56cae5fa9fdf706a48aed5f72caddea80a89","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.8.tgz","fileCount":11,"integrity":"sha512-l9qXkQsvMMMs0yfjd+2i41sVmMAnnilsg3IyAPBAQwmKsVpShqVJbL4imUJeJATFdJ2/06XOgCqW4tTQI08L6w==","signatures":[{"sig":"MEUCIQC6dzdDYc/HUQfGlWi0AHS3KyoMrzCanbgdUInhThLC5gIgIkrsBfiQaX2LQ6H9bZ1yiF7Yzy72nWMZZBHMaTg7tbw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158960},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"bd36b79d9a19bc5ddf7eb311dc0d921149e78c4f","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts selfcheck/device.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js && node .selfcheck/selfcheck/device.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"11.15.0","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"26.2.0","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.8_1785946511154_0.8505605105582208","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@edmingle/web-video-sdk","version":"0.1.9","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","_id":"@edmingle/web-video-sdk@0.1.9","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"homepage":"https://edmingle.com","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"dist":{"shasum":"a55993420d1e15ff58f21c20c9454929db2db461","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.9.tgz","fileCount":11,"integrity":"sha512-U/YjxnL+dYaNJRdymIEE+8y7AaGILpFS7HKLnz1+iRJDkMV7IxBltqTtju/PEPupp7LMkUU8K6xI49TgXdd4HA==","signatures":[{"sig":"MEYCIQDK052XgfKL0r4LTiSodVqdOVBEVJKmBqqx9BvERBt4tAIhAJpl01v2OpdSCJy9LAamOo81/Uhuz0GVAWmVCDvNlxbC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180216},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"gitHead":"79471460f3aa1f590a406eae03e8fd58af524ac5","scripts":{"build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts selfcheck/device.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js && node .selfcheck/selfcheck/device.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"repository":{"url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git","type":"git"},"_npmVersion":"11.15.0","description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","directories":{},"sideEffects":false,"_nodeVersion":"26.2.0","dependencies":{"@vimeo/player":"^2.30.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","react":"^18.2.0","terser":"^5.49.0","react-dom":"^18.2.0","typescript":"^5.4.0","@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/web-video-sdk_0.1.9_1785953340468_0.3640535225952597","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@edmingle/web-video-sdk","version":"0.1.10","publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git"},"description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","sideEffects":false,"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"},"./package.json":"./package.json"},"typesVersions":{"*":{"react":["./dist/react/index.d.ts"]}},"scripts":{"typecheck":"tsc --noEmit","selfcheck":"tsc selfcheck/progress.ts selfcheck/apibase.ts selfcheck/embed.ts selfcheck/sdkauth.ts selfcheck/device.ts --outDir .selfcheck --module commonjs --target es2019 --lib es2019,dom --moduleResolution node --esModuleInterop --strict --skipLibCheck && node .selfcheck/selfcheck/progress.js && node .selfcheck/selfcheck/apibase.js && node .selfcheck/selfcheck/embed.js && node .selfcheck/selfcheck/sdkauth.js && node .selfcheck/selfcheck/device.js","build":"tsup && node scripts/minify-dist.mjs && node scripts/ensure-use-client.mjs","prepare":"npm run build"},"keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"license":"SEE LICENSE IN LICENSE","homepage":"https://edmingle.com","dependencies":{"@vimeo/player":"^2.30.1"},"peerDependencies":{"react":">=17.0.0","react-dom":">=17.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"devDependencies":{"@types/node":"^20.11.0","@types/react":"^18.2.0","@types/vimeo__player":"^2.18.3","react":"^18.2.0","react-dom":"^18.2.0","terser":"^5.49.0","tsup":"^8.3.0","typescript":"^5.4.0"},"engines":{"node":">=18"},"_id":"@edmingle/web-video-sdk@0.1.10","gitHead":"348d1f431c0aa2e18318462d6cb25f157d153556","bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-sTbmkXTPB2OFdEmnv0tuvisBftRAv3KYYP9+PjhHEmjfRQeotnOqldwkaLGhlT7fK+PxBP9ZEMy49q9IMEOI0Q==","shasum":"def7b4f6b78e11163051e63037ab93c6fc88d179","tarball":"https://registry.npmjs.org/@edmingle/web-video-sdk/-/web-video-sdk-0.1.10.tgz","fileCount":11,"unpackedSize":184187,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDFJ8Gza7fDU7im0EWTuDESDzzS+XQOgtxU7gxk0IDZuAIgURhzznEKFIXCQIGiYtNyy2R7lHz1YYIRmo6NOWE5pSk="}]},"_npmUser":{"name":"arnab15c","email":"arnab@edmingle.com"},"directories":{},"maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web-video-sdk_0.1.10_1786068504781_0.4947302646249401"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T16:52:42.406Z","modified":"2026-08-07T02:08:25.155Z","0.1.3":"2026-08-03T16:52:42.736Z","0.1.4":"2026-08-03T16:58:41.214Z","0.1.5":"2026-08-04T14:50:14.497Z","0.1.6":"2026-08-04T16:09:36.219Z","0.1.7":"2026-08-05T12:34:31.086Z","0.1.8":"2026-08-05T16:15:11.355Z","0.1.9":"2026-08-05T18:09:00.640Z","0.1.10":"2026-08-07T02:08:24.949Z"},"bugs":{"url":"https://github.com/Edmingle/edmingle-web-player-sdk/issues"},"license":"SEE LICENSE IN LICENSE","homepage":"https://edmingle.com","keywords":["edmingle","video","sdk","nextjs","react","vimeo","drm","player"],"repository":{"type":"git","url":"git+https://github.com/Edmingle/edmingle-web-player-sdk.git"},"description":"Web SDK to fetch Edmingle teaching materials and play their videos in an embedded player, with resume, dynamic watermarking, DRM support and progress reporting. Framework-agnostic core plus a React/Next.js adapter.","maintainers":[{"name":"arnab15c","email":"arnab@edmingle.com"},{"name":"harshitsharaff","email":"harshit@edmingle.com"}],"readme":"# @edmingle/web-video-sdk\n\nWeb SDK that plays an Edmingle teaching material's video in an embedded player. Give it a material and a student; it handles resume, the organization's dynamic watermark, DRM, watch-time tracking and completion reporting, and surfaces all of it to your app through callbacks.\n\nOne package, two entry points:\n\n| Import | For |\n| --- | --- |\n| `@edmingle/web-video-sdk/react` | Next.js (App Router **and** Pages Router), Create React App, Vite, Remix — anything React |\n| `@edmingle/web-video-sdk` | Angular, Vue, Svelte, plain JavaScript — the framework-agnostic core |\n\nThe React entry point re-exports the entire core, so a React app only ever needs the one import path.\n\n## Install\n\n```sh\nnpm install @edmingle/web-video-sdk\n# or\nyarn add @edmingle/web-video-sdk\n```\n\nPublished on the public npm registry — no `.npmrc` and no token required.\n\n`react` and `react-dom` are **optional** peer dependencies — only needed if you import the `/react` entry point. `@vimeo/player` is a regular dependency and installs automatically.\n\nUse of this SDK is governed by the [LICENSE](LICENSE) and requires a current Edmingle service agreement. Package download access is open; the data is gated by your `authKey` and the student's `userApiKey`.\n\n## Quick start — Next.js / React\n\n```tsx\n'use client';\n\nimport { EdmingleVideoPlayer } from '@edmingle/web-video-sdk/react';\n\nexport default function LessonPlayer() {\n  return (\n    <EdmingleVideoPlayer\n      authKey=\"YOUR_SDK_AUTH_KEY\"\n      userApiKey={studentApiKey}\n      materialId={materialId}\n      classId={classId}\n      orgId={orgId}\n      style={{ maxWidth: 960 }}\n      onProgress={(p, material) => {\n        // p.seconds, p.percent, p.duration\n        console.log('watched', p.seconds, 'of', material.material_name);\n      }}\n      onViewed={(m) => console.log('completed', m.material_id)}\n      onEnded={(m) => console.log('finished', m.material_id)}\n      onError={(e) => console.warn(e.message)}\n    />\n  );\n}\n```\n\nThe component ships with `'use client'` baked in, so you can render it directly from a Server Component without adding the directive yourself. It defaults to a responsive 16/9 box at `width: 100%` — pass `style` or `className` to change that.\n\n### Imperative control\n\n```tsx\nconst ref = useRef<EdmingleVideoPlayerHandle>(null);\n\n<EdmingleVideoPlayer ref={ref} {...props} />\n<button onClick={() => ref.current?.seek(120)}>Jump to 2:00</button>\n```\n\n`play()`, `pause()`, `seek(seconds)`, `setMuted(bool)`, `flushProgress()`, `getMaterial()`, `getLearner()`.\n\n## Quick start — Angular, Vue, Svelte, vanilla JS\n\nThe core mounts into any element and returns a handle. Nothing React-specific is loaded.\n\n```ts\nimport { createEdminglePlayer } from '@edmingle/web-video-sdk';\n\nconst player = createEdminglePlayer(document.getElementById('player')!, {\n  authKey: 'YOUR_SDK_AUTH_KEY',\n  userApiKey: studentApiKey,\n  materialId,\n  classId,\n  orgId,\n});\n\nplayer.on('progress', ({ progress, material }) => {\n  console.log('watched', progress.seconds, 'of', material.material_name);\n});\nplayer.on('viewed', (m) => console.log('completed', m.material_id));\nplayer.on('error', (e) => console.warn(e.message));\n\n// On teardown — this flushes any unreported watch time.\nplayer.destroy();\n```\n\nThe host element must have a size; the player fills 100% of it.\n\n<details>\n<summary>Angular component example</summary>\n\n```ts\nimport {\n  Component, ElementRef, Input, OnDestroy, OnInit, ViewChild,\n} from '@angular/core';\nimport { createEdminglePlayer, type EdminglePlayer } from '@edmingle/web-video-sdk';\n\n@Component({\n  selector: 'edmingle-player',\n  template: '<div #host style=\"position:relative;width:100%;aspect-ratio:16/9\"></div>',\n})\nexport class EdminglePlayerComponent implements OnInit, OnDestroy {\n  @ViewChild('host', { static: true }) host!: ElementRef<HTMLDivElement>;\n  @Input() authKey!: string;\n  @Input() userApiKey!: string;\n  @Input() materialId!: number;\n  @Input() classId!: number;\n  @Input() orgId!: number;\n\n  private player?: EdminglePlayer;\n\n  ngOnInit() {\n    this.player = createEdminglePlayer(this.host.nativeElement, {\n      authKey: this.authKey,\n      userApiKey: this.userApiKey,\n      materialId: this.materialId,\n      classId: this.classId,\n      orgId: this.orgId,\n    });\n  }\n\n  ngOnDestroy() {\n    this.player?.destroy();\n  }\n}\n```\n\n</details>\n\n<details>\n<summary>Vue 3 component example</summary>\n\n```vue\n<script setup lang=\"ts\">\nimport { onBeforeUnmount, onMounted, ref } from 'vue';\nimport { createEdminglePlayer, type EdminglePlayer } from '@edmingle/web-video-sdk';\n\nconst props = defineProps<{\n  authKey: string; userApiKey: string;\n  materialId: number; classId: number; orgId: number;\n}>();\nconst host = ref<HTMLDivElement | null>(null);\nlet player: EdminglePlayer | undefined;\n\nonMounted(() => {\n  if (host.value) player = createEdminglePlayer(host.value, { ...props });\n});\nonBeforeUnmount(() => player?.destroy());\n</script>\n\n<template>\n  <div ref=\"host\" style=\"position:relative;width:100%;aspect-ratio:16/9\" />\n</template>\n```\n\n</details>\n\n## What the player does\n\nOn mount, from the ids you pass:\n\n1. Resolves the student and the requested material.\n2. Loads the video into an embedded player and resumes from where the student last stopped.\n3. Applies the organization's dynamic watermark.\n4. Tracks watch time and reports progress and completion back to Edmingle.\n5. Emits `progress` to your app at most every `progressIntervalMs` (default 5s).\n\nStep 1 has no fallback. If the student or the material can't be resolved, the error surfaces through `onError` and nothing plays — the player will not fall back to playing unwatermarked and unreported.\n\n## Progress, \"mark as viewed\", and resume\n\nProgress and completion reporting are automatic and best-effort: failures are swallowed and never surface through `onError` or interrupt playback.\n\n- **Resume** — playback picks up where the student last stopped. If that position falls within the last 10 seconds of the video, playback restarts from 0 instead. On DRM streams the seek is deferred until playback has actually begun, because the licence is only bound after the user gesture.\n- **Watch time** — only seconds *actually watched* count, so scrubbing to the end does not bank watch time or complete the material. Progress is reported every 20 counted seconds and on every pause.\n- **Completion** — the material is marked viewed once the student has watched the completion percentage configured on it, counting earlier sessions too. `onViewed` fires at the same point. A completion percentage of `0` means viewed as soon as playback starts. Pass `autoMarkViewed={false}` to keep the `onViewed` callback but skip marking it for you — call `postMaterialViewed` when you're ready.\n\nWatch sessions are attributed with the student id from the learner summary resolved on mount.\n\n## DRM\n\nDRM-protected material behaves differently from regular material, matching the Edmingle web app (student-v2):\n\n- **Hardware acceleration gate.** Before the iframe mounts, non-Safari browsers without GPU acceleration see a custom “Graphics Acceleration Required!” message (same copy as the web app). Pass `requireHardwareAcceleration={false}` to skip. Safari is always exempt.\n- **Vimeo DRM L1 browser gate.** When the material is DRM and L1 is enabled, only desktop **Safari on macOS** and **Edge on Windows/macOS** proceed. Everywhere else the SDK shows the web app’s “DRM not supported in this browser” UI and does **not** mount the iframe. L1 on/off comes from `learner_summary.vimeo_drm_l1_enabled` (`\"1\"` / `1` = on). Pass `isVimeoDrmL1Enabled` to override that API flag.\n- **Native error UI after mount.** Privacy / embed-domain failures that occur once the iframe is mounted are left to Vimeo’s own UI — the SDK does not cover them.\n- **Native controls.** DRM videos use the provider's own control bar; non-DRM videos hide it.\n- **Watermarking.** Only DRM material is watermarked by default.\n- **Tamper guard.** If anything rewrites the embedded player's source after mount, the player tears itself down and emits an error rather than letting a substituted stream play unwatermarked and unreported.\n\n## Watermark\n\nThe player applies the dynamic watermark on its own — your app supplies nothing. It uses the student's own identity as the watermark text, and takes the on/off switch, display duration and interval from the organization's settings.\n\nThe overlay fades in at a random position, holds, fades out, and repeats. Positions are corrected against the video's real aspect ratio, so the text always lands on the picture rather than the letterbox bars, and it repositions itself on fullscreen and layout changes.\n\nPass `enableWatermark={false}` to turn it off, or `watermarkDurationSeconds` / `watermarkIntervalSeconds` to override the timing. Supplying both overrides skips the settings lookup entirely.\n\n> **On screenshots.** No web API can prevent a screenshot, and client-side tricks that claim to are trivially bypassed. This SDK therefore does not pretend to block capture; the dynamic watermark is the leak-attribution mechanism, and DRM is the content-protection mechanism.\n\n## Props\n\nAll props below are also accepted as options by `createEdminglePlayer`, with `on*` callbacks replaced by `player.on('event')`.\n\n| Prop | Type | Default | Notes |\n| --- | --- | --- | --- |\n| `authKey` | `string` | — | SDK license key issued for your integration (required). Separate from `userApiKey`; without a valid key nothing runs |\n| `userApiKey` | `string` | — | Student API key/token (required) |\n| `materialId` | `number \\| string` | — | Material id (required) |\n| `classId` | `number \\| string` | — | Class id (required) |\n| `orgId` | `number \\| string` | — | Organization id (required) |\n| `autoplay` / `muted` | `boolean` | `true` / `false` | Playback options |\n| `progressIntervalMs` | `number` | `5000` | Max rate for the `onProgress` callback |\n| `enableWatermark` | `boolean` | `true` | Kill switch for the dynamic watermark |\n| `watermarkDurationSeconds` / `watermarkIntervalSeconds` | `number` | org settings | Timing overrides |\n| `autoMarkViewed` | `boolean` | `true` | `false` still fires `onViewed` — mark it yourself |\n| `requireHardwareAcceleration` | `boolean` | `true` | Non-Safari without GPU accel → custom UI, no iframe. Pass `false` to skip |\n| `isVimeoDrmL1Enabled` | `boolean` | from API | Optional override. Default: `learner_summary.vimeo_drm_l1_enabled`. When on, DRM on unsupported browsers → custom UI, no iframe |\n| `className` / `style` | — | 16/9 box | Container layout (`className` is web-only) |\n| `onLearnerLoaded` / `onMaterialLoaded` / `onProgress` / `onViewed` / `onEnded` / `onError` | callbacks | — | |\n\nChanging `authKey`, `userApiKey`, `materialId`, `classId`, or `orgId` remounts the player and refetches. Presentational props are read at mount — change the element's `key` to force a full remount.\n\nThe org API origin and the student id are resolved internally — they are not host props. Material fetch sends `device_id` (CDM capability: `1` Widevine / `2` FairPlay / `3` PlayReady / `0` unknown), plus `device_name` and `device_os` from the browser UA — same shape as the student web app.\n\n## Auth\n\n`authKey` is the SDK license key issued for your integration, separate from the student's `userApiKey`. An invalid or missing key fails the player through `onError` with \"Invalid or missing SDK auth key\" and blocks every API helper before it sends a request.\n\nThe auth headers on every call are fixed and not overridable:\n\n```\napikey: <userApiKey>\norgid:  <orgId>\nX-PLATFORM-TYPE: 1\n```\n\n`X-PLATFORM-TYPE` is `1` for web. `authKey` is validated client-side only and is not sent as a request header.\n\n## Also exported\n\nFrom both entry points:\n\n- `createEdminglePlayer(host, options)` — the player, mounted into a DOM element.\n- `fetchLearnerSummary` / `fetchMaterial` / `postSecondsPlayed` / `postMaterialViewed` — headless API helpers.\n- `createProgressTracker` — consecutive-second watch-time accounting.\n- `EdmingleApiError` — carries `status` and `body`. Thrown on a failed request, and passed to `onError`.\n- Types for every prop, option, callback payload and event.\n","readmeFilename":"README.md"}