{"_id":"@demo-locker/player","_rev":"6-65c038c32d068551f72ceae3ca3ccf9e","name":"@demo-locker/player","dist-tags":{"latest":"0.2.4"},"versions":{"0.1.0":{"name":"@demo-locker/player","version":"0.1.0","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"license":"MIT","_id":"@demo-locker/player@0.1.0","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"f79835b1e811ef673cc226eb204fa4a95a65e138","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.1.0.tgz","fileCount":6,"integrity":"sha512-6KWzbhSNlrpVCW7trz9YSClb4gfeinYuVASEQVHnQbqnyvi7dWLmXikYaULU/W602NtugyGjiJ/OSPVSmcH7iQ==","signatures":[{"sig":"MEYCIQDv01bC3Pi+/pzih+HETjynQCUhMBX/SfZPNNKyV2l0gQIhAL0k5fmNAMwA9jPACkkHqGzqszu+GnQ0psfgPyHRsaaL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20505},"main":"./dist/player.js","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"25b2dd8730c7ce6d2adcc2922d9023b1bea7682e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"usedrobot","email":"reporting@fldl.space"},"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.1.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"sideEffects":true,"_nodeVersion":"22.13.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/player_0.1.0_1783449503017_0.5615597799705565","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@demo-locker/player","version":"0.2.0","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"license":"MIT","_id":"@demo-locker/player@0.2.0","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"895e9dee262d65eba22fc93050e7a46d805f9758","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.2.0.tgz","fileCount":6,"integrity":"sha512-s1C5sgTTX+CeINnOPB5DNN4vULaf/OvySvK+qB3ihADKsDIS7Y9ADezZ0cim3ul5zLIcDJW6BiJlF4SuEiMGxg==","signatures":[{"sig":"MEYCIQDSA4vAI5NSgCp8VKFn9FBgFO2RnKc5HzbrdEUAmiXArAIhAMgKsZv+wASD0Nvpw1+0f9hH5WQNdb7+ZzklIf24640J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@demo-locker%2fplayer@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":28886},"main":"./dist/player.js","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"f9de5fca9a931447b43d0daf7171c0f27b929db2","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f6e4bb-6f3e-4f7f-9077-343112370007"}},"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.16.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/player_0.2.0_1784811037456_0.297563175461357","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@demo-locker/player","version":"0.2.1","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"license":"MIT","_id":"@demo-locker/player@0.2.1","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"2f8c56cc6facf3bed05b62387f5760ca4e52dcc8","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.2.1.tgz","fileCount":6,"integrity":"sha512-iL+PvjkxEnVaR+pUiWCfmj7qDSUvKGMWvHVvkSmi0zXr+odRGeEaq1JJHz7gukHRR8EaDblg8JqLEIOVTp/PrA==","signatures":[{"sig":"MEUCIAdl7i/rqDGPayCIiwy1psNZ2akfNq3+myTTNvNVoJBeAiEA6aC+VDDuB/RMrzTdpT83ElJtC35Az4+3I89Y85OupNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@demo-locker%2fplayer@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31677},"main":"./dist/player.js","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"0de1e81d9de1a6bab865c19b64e34e4180779fe1","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f6e4bb-6f3e-4f7f-9077-343112370007"}},"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.16.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/player_0.2.1_1785772882196_0.6383411550093767","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@demo-locker/player","version":"0.2.2","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"license":"MIT","_id":"@demo-locker/player@0.2.2","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"62efd2e22ff59feb0b3d4b2b1b9da069191b7afd","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.2.2.tgz","fileCount":6,"integrity":"sha512-rMB1IpSsigW9iTDQRo/ZX9XYtxo11/zXZ6wQ002/Y6fEXazSKjSqNjja+gdtXnm5QczrhuJsQh31DwArSk0vQA==","signatures":[{"sig":"MEUCIEf2aS+PMAvNZ7OtNI9oz5qwaAjRP2fmdiZuiHJEy1MXAiEAipi4YpNCdzYUykJ6BIi8I8UtQ4bP3rNtlFpPxPZNQCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@demo-locker%2fplayer@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31065},"main":"./dist/player.js","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"962f8464065fba521e75be792c7fae18511e9f0e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f6e4bb-6f3e-4f7f-9077-343112370007"}},"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.16.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/player_0.2.2_1785789862308_0.1498178023997745","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@demo-locker/player","version":"0.2.3","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"license":"MIT","_id":"@demo-locker/player@0.2.3","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"7e3fc6e6f3ced37cc33dfc3243d382805fe81e40","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.2.3.tgz","fileCount":6,"integrity":"sha512-lkVQoIJBeDymzZFjrVbXPlTw5YvZWQ0mIzvcOyifljK6NpFZe3f8GgJ4Q4damstKgoKDz9rtQdPo7bJNOrCqOw==","signatures":[{"sig":"MEUCIQD2IvGivq9MqRgk/ErWMYOzqelizpemFpckNGfyM3kBxAIgORrHHq0nHSF/M18rCYZDRnkk6dVKh9JT2ZtsNrTdB5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@demo-locker%2fplayer@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31800},"main":"./dist/player.js","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"bce83694a33dfe1f8e598447613119f55252e375","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f6e4bb-6f3e-4f7f-9077-343112370007"}},"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.16.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"sideEffects":true,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"tmp":"tmp/player_0.2.3_1786392390552_0.11833263272563399","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"_id":"@demo-locker/player@0.2.4","bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"dist":{"shasum":"639a757dbde862902b8a64ed621447d56d5bf2f5","tarball":"https://registry.npmjs.org/@demo-locker/player/-/player-0.2.4.tgz","fileCount":6,"integrity":"sha512-qnQAMStEDx3gIw7X/X5siX6AHJ+ZSYEx6BXSzCNQkLsVCidkW4Jn4YZerzLMoPBjOWBTt1mnKrGUGTuls0TbBw==","signatures":[{"sig":"MEYCIQCgYEMF6EYu2KxXB1fRKLNiCDVqsPTv1w3ofKnF3mK6ggIhAKMaXUEupwpc8E1xpxCijeisBiOhaiiLbbZVYaLfnqvN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGvuQSvk8HlbOguo3O06Y4H78amwVAFmhB9FRNJnGUzOAiEAlIUpN3laD/AgZYYjNDb23rYSDINMxLCUkKTdMU9idsQ="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@demo-locker%2fplayer@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32804},"main":"./dist/player.js","name":"@demo-locker/player","type":"module","types":"./dist/player.d.ts","exports":{".":{"types":"./dist/player.d.ts","import":"./dist/player.js"}},"gitHead":"f0e57e35fe8af011a0837ca5cc2116527a66ed85","license":"MIT","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"vite build && tsc -p tsconfig.build.json","typecheck":"tsc --noEmit"},"version":"0.2.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:12f6e4bb-6f3e-4f7f-9077-343112370007"}},"homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"_npmVersion":"11.19.0","description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","directories":{},"maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"sideEffects":true,"_nodeVersion":"24.20.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","vitest":"^4.1.10","happy-dom":"^20.10.6","typescript":"^5.7.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/player_0.2.4_1789738614601_0.16616598243125935"}}},"time":{"created":"2026-07-07T18:38:22.802Z","modified":"2026-09-18T13:36:55.388Z","0.1.0":"2026-07-07T18:38:23.181Z","0.2.0":"2026-07-23T12:50:37.597Z","0.2.1":"2026-08-03T16:01:22.380Z","0.2.2":"2026-08-03T20:44:22.466Z","0.2.3":"2026-08-10T20:06:30.739Z","0.2.4":"2026-09-18T13:36:54.680Z"},"bugs":{"url":"https://github.com/usedrobot/demo-locker/issues"},"license":"MIT","homepage":"https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md","keywords":["web-component","music-player","embeddable-music-player","self-hosted","audio","playlist","demo-locker"],"repository":{"url":"git+https://github.com/usedrobot/demo-locker.git","type":"git","directory":"packages/player"},"description":"Embeddable music player web component for Demo Locker — self-hosted music streaming. Works with any instance serving /public/v1.","maintainers":[{"name":"usedrobot","email":"reporting@fldl.space"}],"readme":"# @demo-locker/player\n\nEmbeddable music player for your own website — the `<demo-locker-player>` web component from [Demo Locker](https://github.com/usedrobot/demo-locker), the self-hosted music streaming and private demo sharing app. Zero dependencies, ~2.5 KB gzipped, themeable, framework-agnostic.\n\nWorks with any Demo Locker instance serving `/public/v1`.\n\n## Install\n\n```bash\nnpm install @demo-locker/player\n```\n\n```js\nimport \"@demo-locker/player\"; // registers <demo-locker-player>\n```\n\n```html\n<demo-locker-player\n  instance=\"https://your-box\"\n  playlist=\"PLAYLIST_ID\"\n></demo-locker-player>\n```\n\n**The `instance` attribute is required when installing from npm.** When the component is loaded as a script tag from a Demo Locker instance it auto-detects that origin; an npm-bundled module has no script origin, so you must point it at the box that hosts your playlist.\n\nThe `DemoLockerPlayer` class is a named export if you want manual registration or subclassing; `HTMLElementTagNameMap` is augmented, so `document.createElement(\"demo-locker-player\")` is fully typed.\n\n## No build step?\n\nLoad it straight off your instance instead — no npm needed:\n\n```html\n<script src=\"https://your-box/embed.js\"></script>\n<demo-locker-player playlist=\"PLAYLIST_ID\"></demo-locker-player>\n```\n\n(Or from a CDN: `https://unpkg.com/@demo-locker/player/dist/embed.js` — then `instance` is required, same as npm.)\n\n## Attributes\n\n| Attribute | Required | Description |\n|---|---|---|\n| `playlist` | yes | ID of a playlist marked public on the instance. |\n| `instance` | npm/CDN: yes · instance script tag: no | Origin to fetch metadata and audio from, e.g. `https://your-box`. |\n\nAttributes are read once, when the element is connected — there are no `observedAttributes`. Set attributes before inserting the element; to switch playlists, remove and recreate it.\n\n## Theming\n\nEvery visual value is a `--dl-*` custom property (`--dl-bg`, `--dl-fg`, `--dl-accent`, `--dl-muted`, `--dl-border`, `--dl-font`, `--dl-font-size`, `--dl-radius`, `--dl-padding`):\n\n```css\ndemo-locker-player {\n  --dl-accent: hotpink;\n}\n```\n\nStructural nodes are exposed via `::part()` — `header`, `artwork`, `title`, `transport`, `button`, `seek`, `time`, `tracklist`, `track`, `status`, `footer`. Full theming docs: [docs/embed.md](https://github.com/usedrobot/demo-locker/blob/main/docs/embed.md).\n\n## Versioning\n\nIndependent semver. The compatibility contract is the instance's `/public/v1` API; a hypothetical `/public/v2` target would be a major bump here.\n\n## Releasing (maintainers)\n\nBump `version` in `packages/player/package.json`, commit to main, then:\n\n```bash\ngit tag player-vX.Y.Z && git push origin player-vX.Y.Z\n```\n\nCI publishes with provenance via npm trusted publishing — no tokens.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}