A music player that connects to your cloud/distributed storage. diffuse.sh
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364{ "name": "@toko/diffuse", "version": "4.0.0-alpha.5", "license": "FSL-1.1-MIT", "vendor": true, "nodeModulesDir": "auto", "imports": { "98.css": "npm:98.css@^0.1.21", "@atcute/atproto": "npm:@atcute/atproto@^4.0.4", "@atcute/car": "npm:@atcute/car@^6.0.2", "@atcute/cbor": "npm:@atcute/cbor@^2.3.6", "@atcute/cid": "npm:@atcute/cid@^2.4.2", "@atcute/tid": "npm:@atcute/tid@^1.1.4", "@atcute/client": "npm:@atcute/client@^5.1.1", "@atcute/firehose": "npm:@atcute/firehose@^1.1.0", "@atcute/repo": "npm:@atcute/repo@^1.0.2", "@atcute/identity-resolver": "npm:@atcute/identity-resolver@^2.0.1", "@atcute/lexicons": "npm:@atcute/lexicons@^2.1.0", "@atcute/oauth-browser-client": "npm:@atcute/oauth-browser-client@^4.0.1", "@atcute/uint8array": "npm:@atcute/uint8array@^1.1.5", "@automerge/automerge": "npm:@automerge/automerge@^3.4.1", "@awesome.me/webawesome": "npm:@awesome.me/webawesome@^3.12.0", "@bradenmacdonald/s3-lite-client": "jsr:@bradenmacdonald/s3-lite-client@^0.9.6", "@cloudradio/icy-parser": "jsr:@cloudradio/icy-parser@^1.0.3", "@char/cbor": "jsr:@char/cbor@^0.1.5", "@codemirror/autocomplete": "npm:@codemirror/autocomplete@^6.20.3", "@codemirror/lang-css": "npm:@codemirror/lang-css@^6.3.1", "@codemirror/lang-html": "npm:@codemirror/lang-html@^6.4.12", "@codemirror/lang-javascript": "npm:@codemirror/lang-javascript@^6.2.5", "@codemirror/state": "npm:@codemirror/state@^6.0.0", "@fcrozatier/htmlcrunch": "jsr:@fcrozatier/htmlcrunch@^1.5.1", "@fortawesome/free-regular-svg-icons": "npm:@fortawesome/free-regular-svg-icons@^7.3.1", "@fry69/deep-diff": "jsr:@fry69/deep-diff@^0.1.10", "@mary/ds-queue": "jsr:@mary/ds-queue@^0.1.3", "@noble/ciphers": "npm:@noble/ciphers@^2.4.0", "@noble/hashes": "npm:@noble/hashes@^2.4.0", "@okikio/transferables": "jsr:@okikio/transferables@^1.0.2", "@orama/orama": "npm:@orama/orama@^3.1.18", "@phosphor-icons/web": "npm:@phosphor-icons/web@^2.1.2", "@std/html": "jsr:@std/html@^1.0.7", "@std/semver": "jsr:@std/semver@^1.0.8", "@std/xml": "jsr:@std/xml@^0.1.3", "@vicary/debounce-microtask": "jsr:@vicary/debounce-microtask@^0.1.8", "@panproto/core": "npm:@panproto/core@^0.72.0", "@paulmillr/qr": "jsr:@paulmillr/qr@^0.6.0", "@zip-js/zip-js": "jsr:@zip-js/zip-js@^2.9.0", "alien-signals": "npm:alien-signals@^3.2.1", "bs58check": "npm:bs58check@^4.0.0", "codemirror": "npm:codemirror@^6.0.2", "fast-average-color": "npm:fast-average-color@^9.5.2", "fast-uri": "./src/common/fast-uri.js", "idb-keyval": "npm:idb-keyval@^6.3.0", "kmenu": "npm:kmenu@^2.0.3", "iso-base": "npm:iso-base@^4.4.0", "lit-html": "npm:lit-html@^3.3.3", "marked": "npm:marked@^18.0.11", "query-string": "npm:query-string@^9.5.1", "subsonic-api": "npm:subsonic-api@^3.3.1", "temporal-polyfill": "npm:temporal-polyfill@^1.0.4", "throttle-debounce": "npm:throttle-debounce@^5.0.2", "xxh32": "npm:xxh32@^2.0.5", "butterchurn": "npm:butterchurn@3.0.0-beta.5", "butterchurn-presets": "npm:butterchurn-presets@3.0.0-beta.4",
// @atproto spaces alpha "@atproto/api": "npm:@atproto/api@0.0.0-spaces-alpha-20260818163953", "@atproto/oauth-client-browser": "npm:@atproto/oauth-client-browser@0.0.0-spaces-alpha-20260818163953",
// music-metadata "@tokenizer/http": "npm:@tokenizer/http@^0.9.2", "@tokenizer/range": "npm:@tokenizer/range@^0.13.1", "music-metadata": "npm:music-metadata@^11.15.0",
// Build "@atcute/lex-cli": "npm:@atcute/lex-cli@^3.3.0", "@custom-elements-manifest/analyzer": "npm:@custom-elements-manifest/analyzer@^0.11.0", "@dotenv-run/esbuild": "npm:@dotenv-run/esbuild@^1.5.3", "@std/fs": "jsr:@std/fs@^1.0.24", "@std/path": "jsr:@std/path@^1.1.6", "@types/wicg-file-system-access": "npm:@types/wicg-file-system-access@^2023.10.7", "autoprefixer": "npm:autoprefixer@^10.5.4", "cssnano": "npm:cssnano@^8.0.10", "esbuild-plugins-node-modules-polyfill": "npm:esbuild-plugins-node-modules-polyfill@^1.8.3", "esbuild-plugin-wasm": "npm:esbuild-plugin-wasm@^1.1.0", "lume/": "https://cdn.jsdelivr.net/gh/lumeland/lume@3.2.4/", "lume/jsx-runtime": "https://cdn.jsdelivr.net/gh/oscarotero/ssx@0.1.14/jsx-runtime.ts",
// Tests "@astral/astral": "jsr:@astral/astral@0.5.6", "@std/expect": "jsr:@std/expect@1.0.19", "@std/testing/bdd": "jsr:@std/testing@1.0.19/bdd",
// Paths "~/": "./src/",
"@specs/": "./specs/", "@tests/": "./tests/", }, "exports": { // .js "./common/foundation.js": "./src/common/foundation.js", "./common/facets/utils.js": "./src/common/facets/utils.js", "./common/element.js": "./src/common/element.js", "./common/signal.js": "./src/common/signal.js", "./common/worker.js": "./src/common/worker.js", "./common/worker/rpc-channel.js": "./src/common/worker/rpc-channel.js", "./common/utils.js": "./src/common/utils.js", "./components/artwork/audio-metadata/element.js": "./src/components/artwork/audio-metadata/element.js", "./components/artwork/audio-metadata/worker.js": "./src/components/artwork/audio-metadata/worker.js", "./components/artwork/input/element.js": "./src/components/artwork/input/element.js", "./components/artwork/input/worker.js": "./src/components/artwork/input/worker.js", "./components/artwork/last.fm/element.js": "./src/components/artwork/last.fm/element.js", "./components/artwork/last.fm/worker.js": "./src/components/artwork/last.fm/worker.js", "./components/artwork/musicbrainz/element.js": "./src/components/artwork/musicbrainz/element.js", "./components/artwork/musicbrainz/worker.js": "./src/components/artwork/musicbrainz/worker.js", "./components/configurator/artwork/element.js": "./src/components/configurator/artwork/element.js", "./components/configurator/artwork/worker.js": "./src/components/configurator/artwork/worker.js", "./components/configurator/input/element.js": "./src/components/configurator/input/element.js", "./components/configurator/input/worker.js": "./src/components/configurator/input/worker.js", "./components/configurator/metadata/element.js": "./src/components/configurator/metadata/element.js", "./components/configurator/metadata/worker.js": "./src/components/configurator/metadata/worker.js", "./components/configurator/output/element.js": "./src/components/configurator/output/element.js", "./components/configurator/scrobbles/element.js": "./src/components/configurator/scrobbles/element.js", "./components/configurator/upload/element.js": "./src/components/configurator/upload/element.js", "./components/configurator/upload/worker.js": "./src/components/configurator/upload/worker.js", "./components/engine/audio/element.js": "./src/components/engine/audio/element.js", "./components/engine/queue/element.js": "./src/components/engine/queue/element.js", "./components/engine/queue/worker.js": "./src/components/engine/queue/worker.js", "./components/engine/repeat-shuffle/element.js": "./src/components/engine/repeat-shuffle/element.js", "./components/engine/scope/element.js": "./src/components/engine/scope/element.js", "./components/input/common.js": "./src/components/input/common.js", "./components/input/dropbox/common.js": "./src/components/input/dropbox/common.js", "./components/input/dropbox/constants.js": "./src/components/input/dropbox/constants.js", "./components/input/dropbox/element.js": "./src/components/input/dropbox/element.js", "./components/input/dropbox/worker.js": "./src/components/input/dropbox/worker.js", "./components/input/ephemeral-cache/constants.js": "./src/components/input/ephemeral-cache/constants.js", "./components/input/ephemeral-cache/element.js": "./src/components/input/ephemeral-cache/element.js", "./components/input/ephemeral-cache/worker.js": "./src/components/input/ephemeral-cache/worker.js", "./components/input/https/common.js": "./src/components/input/https/common.js", "./components/input/https/constants.js": "./src/components/input/https/constants.js", "./components/input/https/element.js": "./src/components/input/https/element.js", "./components/input/https/worker.js": "./src/components/input/https/worker.js", "./components/input/icecast/common.js": "./src/components/input/icecast/common.js", "./components/input/icecast/constants.js": "./src/components/input/icecast/constants.js", "./components/input/icecast/element.js": "./src/components/input/icecast/element.js", "./components/input/icecast/worker.js": "./src/components/input/icecast/worker.js", "./components/input/local/common.js": "./src/components/input/local/common.js", "./components/input/local/constants.js": "./src/components/input/local/constants.js", "./components/input/local/element.js": "./src/components/input/local/element.js", "./components/input/local/worker.js": "./src/components/input/local/worker.js", "./components/input/opensubsonic/common.js": "./src/components/input/opensubsonic/common.js", "./components/input/opensubsonic/constants.js": "./src/components/input/opensubsonic/constants.js", "./components/input/opensubsonic/element.js": "./src/components/input/opensubsonic/element.js", "./components/input/opensubsonic/worker.js": "./src/components/input/opensubsonic/worker.js", "./components/input/s3/common.js": "./src/components/input/s3/common.js", "./components/input/s3/constants.js": "./src/components/input/s3/constants.js", "./components/input/s3/element.js": "./src/components/input/s3/element.js", "./components/input/s3/worker.js": "./src/components/input/s3/worker.js", "./components/input/webdav/constants.js": "./src/components/input/webdav/constants.js", "./components/input/webdav/element.js": "./src/components/input/webdav/element.js", "./components/input/webdav/worker.js": "./src/components/input/webdav/worker.js", "./components/metadata/audio-file/element.js": "./src/components/metadata/audio-file/element.js", "./components/metadata/audio-file/worker.js": "./src/components/metadata/audio-file/worker.js", "./components/metadata/common.js": "./src/components/metadata/common.js", "./components/metadata/spectrogram/element.js": "./src/components/metadata/spectrogram/element.js", "./components/metadata/spectrogram/fft.js": "./src/components/metadata/spectrogram/fft.js", "./components/metadata/spectrogram/worker.js": "./src/components/metadata/spectrogram/worker.js", "./components/orchestrator/artwork/element.js": "./src/components/orchestrator/artwork/element.js", "./components/orchestrator/artwork/worker.js": "./src/components/orchestrator/artwork/worker.js", "./components/orchestrator/auto-queue/element.js": "./src/components/orchestrator/auto-queue/element.js", "./components/orchestrator/controller/element.js": "./src/components/orchestrator/controller/element.js", "./components/orchestrator/cover-groups/element.js": "./src/components/orchestrator/cover-groups/element.js", "./components/orchestrator/favourites/element.js": "./src/components/orchestrator/favourites/element.js", "./components/orchestrator/media-session/element.js": "./src/components/orchestrator/media-session/element.js", "./components/orchestrator/output/element.js": "./src/components/orchestrator/output/element.js", "./components/orchestrator/path-collections/element.js": "./src/components/orchestrator/path-collections/element.js", "./components/orchestrator/process-tracks/element.js": "./src/components/orchestrator/process-tracks/element.js", "./components/orchestrator/process-tracks/worker.js": "./src/components/orchestrator/process-tracks/worker.js", "./components/orchestrator/queue-audio/element.js": "./src/components/orchestrator/queue-audio/element.js", "./components/orchestrator/scoped-tracks/element.js": "./src/components/orchestrator/scoped-tracks/element.js", "./components/orchestrator/scoped-tracks/worker.js": "./src/components/orchestrator/scoped-tracks/worker.js", "./components/orchestrator/scrobble-audio/element.js": "./src/components/orchestrator/scrobble-audio/element.js", "./components/orchestrator/sources/element.js": "./src/components/orchestrator/sources/element.js", "./components/orchestrator/spectrogram-audio/element.js": "./src/components/orchestrator/spectrogram-audio/element.js", "./components/output/bytes/s3/constants.js": "./src/components/output/bytes/s3/constants.js", "./components/output/bytes/s3/element.js": "./src/components/output/bytes/s3/element.js", "./components/output/bytes/s3/worker.js": "./src/components/output/bytes/s3/worker.js", "./components/output/bytes/dropbox/common.js": "./src/components/output/bytes/dropbox/common.js", "./components/output/bytes/dropbox/constants.js": "./src/components/output/bytes/dropbox/constants.js", "./components/output/bytes/dropbox/element.js": "./src/components/output/bytes/dropbox/element.js", "./components/output/bytes/dropbox/worker.js": "./src/components/output/bytes/dropbox/worker.js", "./components/output/common.js": "./src/components/output/common.js", "./components/output/polymorphic/indexed-db/constants.js": "./src/components/output/polymorphic/indexed-db/constants.js", "./components/output/polymorphic/indexed-db/element.js": "./src/components/output/polymorphic/indexed-db/element.js",
"./components/output/raw/atproto-passkey/element.js": "./src/components/output/raw/atproto-passkey/element.js", "./components/output/raw/atproto-space/element.js": "./src/components/output/raw/atproto-space/element.js", "./components/supplement/last.fm/element.js": "./src/components/supplement/last.fm/element.js", "./components/supplement/listenbrainz/element.js": "./src/components/supplement/listenbrainz/element.js", "./components/supplement/rocksky/element.js": "./src/components/supplement/rocksky/element.js", "./components/supplement/session.js": "./src/components/supplement/session.js", "./components/transformer/output/base.js": "./src/components/transformer/output/base.js", "./components/transformer/output/bytes/automerge/constants.js": "./src/components/transformer/output/bytes/automerge/constants.js", "./components/transformer/output/bytes/automerge/element.js": "./src/components/transformer/output/bytes/automerge/element.js", "./components/transformer/output/bytes/automerge/utils.js": "./src/components/transformer/output/bytes/automerge/utils.js", "./components/transformer/output/bytes/dasl-sync/constants.js": "./src/components/transformer/output/bytes/dasl-sync/constants.js", "./components/transformer/output/bytes/dasl-sync/element.js": "./src/components/transformer/output/bytes/dasl-sync/element.js", "./components/transformer/output/bytes/json/element.js": "./src/components/transformer/output/bytes/json/element.js", "./components/transformer/output/raw/atproto-sync/element.js": "./src/components/transformer/output/raw/atproto-sync/element.js", "./components/transformer/output/raw/atproto-space-sync/element.js": "./src/components/transformer/output/raw/atproto-space-sync/element.js", "./components/transformer/output/refiner/default/element.js": "./src/components/transformer/output/refiner/default/element.js", "./components/transformer/output/refiner/initial-contents/element.js": "./src/components/transformer/output/refiner/initial-contents/element.js", "./components/transformer/output/refiner/passkey-encryption/element.js": "./src/components/transformer/output/refiner/passkey-encryption/element.js", "./components/transformer/output/string/json/element.js": "./src/components/transformer/output/string/json/element.js", "./components/upload/dropbox/common.js": "./src/components/upload/dropbox/common.js", "./components/upload/dropbox/element.js": "./src/components/upload/dropbox/element.js", "./components/upload/dropbox/worker.js": "./src/components/upload/dropbox/worker.js",
// .d.ts "./common/element.d.ts": "./src/common/element.d.ts", "./common/signal.d.ts": "./src/common/signal.d.ts", "./common/worker.d.ts": "./src/common/worker.d.ts", "./common/fast-uri.js": "./src/common/fast-uri.js", "./components/artwork/types.d.ts": "./specs/components/artwork/types.d.ts", "./components/configurator/artwork/types.d.ts": "./specs/components/configurator/artwork/types.d.ts", "./components/configurator/input/types.d.ts": "./specs/components/configurator/input/types.d.ts", "./components/configurator/metadata/types.d.ts": "./specs/components/configurator/metadata/types.d.ts", "./components/configurator/output/types.d.ts": "./specs/components/configurator/output/types.d.ts", "./components/configurator/upload/types.d.ts": "./specs/components/configurator/upload/types.d.ts", "./components/engine/audio/types.d.ts": "./specs/components/engine/audio/types.d.ts", "./components/engine/queue/types.d.ts": "./specs/components/engine/queue/types.d.ts", "./components/input/opensubsonic/types.d.ts": "./specs/components/input/opensubsonic/types.d.ts", "./components/input/s3/types.d.ts": "./specs/components/input/s3/types.d.ts", "./components/input/types.d.ts": "./specs/components/input/types.d.ts", "./components/input/webdav/types.d.ts": "./specs/components/input/webdav/types.d.ts", "./components/metadata/audio-file/types.d.ts": "./specs/components/metadata/audio-file/types.d.ts", "./components/metadata/spectrogram/types.d.ts": "./specs/components/metadata/spectrogram/types.d.ts", "./components/metadata/types.d.ts": "./specs/components/metadata/types.d.ts", "./components/orchestrator/artwork/types.d.ts": "./specs/components/orchestrator/artwork/types.d.ts", "./components/orchestrator/favourites/types.d.ts": "./specs/components/orchestrator/favourites/types.d.ts", "./components/orchestrator/process-tracks/types.d.ts": "./specs/components/orchestrator/process-tracks/types.d.ts", "./components/orchestrator/scoped-tracks/types.d.ts": "./specs/components/orchestrator/scoped-tracks/types.d.ts", "./components/output/bytes/s3/types.d.ts": "./specs/components/output/bytes/s3/types.d.ts", "./components/output/bytes/dropbox/types.d.ts": "./specs/components/output/bytes/dropbox/types.d.ts", "./components/output/polymorphic/indexed-db/types.d.ts": "./specs/components/output/polymorphic/indexed-db/types.d.ts", "./components/output/raw/atproto-passkey/types.d.ts": "./specs/components/output/raw/atproto-passkey/types.d.ts", "./components/output/raw/atproto-space/types.d.ts": "./specs/components/output/raw/atproto-space/types.d.ts", "./components/output/types.d.ts": "./specs/components/output/types.d.ts", "./components/supplement/types.d.ts": "./specs/components/supplement/types.d.ts", "./components/transformer/output/bytes/automerge/types.d.ts": "./specs/components/transformer/output/bytes/automerge/types.d.ts", "./components/transformer/output/bytes/dasl-sync/types.d.ts": "./specs/components/transformer/output/bytes/dasl-sync/types.d.ts", "./components/upload/types.d.ts": "./specs/components/upload/types.d.ts", "./definitions/types.d.ts": "./src/definitions/types.d.ts",
// .ts "./definitions/types/sh/diffuse/output/facet.ts": "./src/definitions/types/sh/diffuse/output/facet.ts", "./definitions/types/sh/diffuse/output/playlistItem.ts": "./src/definitions/types/sh/diffuse/output/playlistItem.ts", "./definitions/types/sh/diffuse/output/track.ts": "./src/definitions/types/sh/diffuse/output/track.ts", }, "tasks": { "build": { "description": "Build the site for production", "command": "deno task lume", }, "gen:defs:types": { "description": "Generate definition Typescript types", "command": "deno run -A npm:@atcute/lex-cli generate -c ./lexicon.config.js && deno run -A ./tasks/replace-gen-import-extensions.ts && deno run -A ./tasks/strip-gen-ambient.ts", }, "gen:manifest": { "description": "Generate the custom-elements.json manifest", "command": "deno run -A ./tasks/gen-manifest.js", }, "lume": { "description": "Run Lume command", "command": "deno run -P=lume --allow-write --allow-read lume/cli.ts", }, "serve": { "description": "Run and serve the site for development", "command": "static-web-server -p 3000 --root dist/", }, "test:doc": { "description": "Run documentation tests", "command": "deno test -A --doc --ignore=README.md --ignore=src/skills src", }, "test:types": { "description": "Make sure everything type checks", "command": "deno check specs && deno check src", }, "test:unit": { "description": "Run unit tests (documentation tests)", "command": "deno task test:doc", }, "test:integration": { "description": "Run integration tests", "command": "deno test tests -A --ignore=README.md", }, "test:integration:coverage": { "description": "Run integration tests with code coverage", "command": "DENO_COVERAGE_DIR=./cov deno test tests -A --coverage=./cov --ignore=README.md", }, "coverage": { "description": "Generate coverage report from collected data", "command": "deno coverage ./cov --lcov --output=./cov.lcov", }, "coverage:html": { "description": "Generate HTML coverage report", "command": "deno coverage ./cov --html", }, "vit:ship:diffuse-facet": { "description": "Build and publish the diffuse-facet skill to vit", "command": "deno task build && deno x vit ship --skill dist/skills/diffuse-facet/", }, }, "compilerOptions": { "checkJs": true, "lib": ["deno.ns", "dom", "esnext"], "types": ["lume/types.ts", "@types/wicg-file-system-access"], "jsx": "react-jsx", "jsxImportSource": "lume", }, "unstable": ["temporal", "fmt-component"], "lint": { "plugins": ["https://cdn.jsdelivr.net/gh/lumeland/lume@3.1.4/lint.ts"], "rules": { "exclude": ["no-import-prefix"], }, }, "publish": { "exclude": ["!src/definitions/types"], "include": [ "README.md", "LICENSE", "src/common/**/*.js", "src/common/**/*.d.ts", "src/components/**/*.js", "specs/components/**/*.d.ts", "src/**/*.json", "src/definitions/**/*.ts", "src/oauth/**/*.js", ], }, "permissions": { "lume": { "read": true, "write": ["./"], "import": ["cdn.jsdelivr.net:443", "jsr.io:443", "deno.land:443", "esm.sh:443"], "net": [ "0.0.0.0", "cdn.jsdelivr.net:443", "data.jsdelivr.com:443", "jsr.io:443", "deno.land:443", "esm.sh:443", "registry.npmjs.org:443", ], "env": true, "run": true, "ffi": true, "sys": true, }, }, "lock": "./deno.lock",}