forked from
tokono.ma/diffuse
A music player that connects to your cloud/distributed storage.
1{
2 "name": "@toko/diffuse",
3 "version": "4.0.0-alpha",
4 "vendor": true,
5 "imports": {
6 "98.css": "npm:98.css@^0.1.21",
7 "@atcute/atproto": "npm:@atcute/atproto@^3.1.10",
8 "@atcute/car": "npm:@atcute/car@^5.1.1",
9 "@atcute/cbor": "npm:@atcute/cbor@^2.3.2",
10 "@atcute/cid": "npm:@atcute/cid@^2.4.1",
11 "@atcute/tid": "npm:@atcute/tid@^1.1.2",
12 "@atcute/client": "npm:@atcute/client@^4.2.1",
13 "@atcute/firehose": "npm:@atcute/firehose@^0.1.0",
14 "@atcute/repo": "npm:@atcute/repo@^0.1.3",
15 "@atcute/identity-resolver": "npm:@atcute/identity-resolver@^1.2.2",
16 "@atcute/lexicons": "npm:@atcute/lexicons@^1.2.9",
17 "@atcute/oauth-browser-client": "npm:@atcute/oauth-browser-client@^3.0.0",
18 "@atcute/uint8array": "npm:@atcute/uint8array@^1.1.1",
19 "@automerge/automerge": "npm:@automerge/automerge@^3.2.4",
20 "@awesome.me/webawesome": "npm:@awesome.me/webawesome@^3.3.1",
21 "@bradenmacdonald/s3-lite-client": "jsr:@bradenmacdonald/s3-lite-client@^0.9.5",
22 "@cloudradio/icy-parser": "jsr:@cloudradio/icy-parser@^1.0.2",
23 "@char/cbor": "jsr:@char/cbor@^0.1.4",
24 "@codemirror/autocomplete": "npm:@codemirror/autocomplete@^6.20.1",
25 "@codemirror/lang-css": "npm:@codemirror/lang-css@^6.3.1",
26 "@codemirror/lang-html": "npm:@codemirror/lang-html@^6.4.11",
27 "@codemirror/lang-javascript": "npm:@codemirror/lang-javascript@^6.2.5",
28 "@fcrozatier/htmlcrunch": "jsr:@fcrozatier/htmlcrunch@^1.5.1",
29 "@fortawesome/free-regular-svg-icons": "npm:@fortawesome/free-regular-svg-icons@^7.2.0",
30 "@fry69/deep-diff": "jsr:@fry69/deep-diff@^0.1.10",
31 "@mary/ds-queue": "jsr:@mary/ds-queue@^0.1.3",
32 "@noble/ciphers": "npm:@noble/ciphers@^2.1.1",
33 "@noble/hashes": "npm:@noble/hashes@^2.0.1",
34 "@okikio/transferables": "jsr:@okikio/transferables@^1.0.2",
35 "@orama/orama": "npm:@orama/orama@^3.1.18",
36 "@phosphor-icons/web": "npm:@phosphor-icons/web@^2.1.2",
37 "@std/html": "jsr:@std/html@^1.0.5",
38 "@std/semver": "jsr:@std/semver@^1.0.8",
39 "@vicary/debounce-microtask": "jsr:@vicary/debounce-microtask@^0.1.8",
40 "@tanstack/virtual-core": "npm:@tanstack/virtual-core@^3.13.0",
41 "alien-signals": "npm:alien-signals@^3.1.2",
42 "bs58check": "npm:bs58check@^4.0.0",
43 "codemirror": "npm:codemirror@^6.0.2",
44 "fast-average-color": "npm:fast-average-color@^9.5.0",
45 "fast-uri": "npm:fast-uri@^3.1.0",
46 "idb-keyval": "npm:idb-keyval@^6.2.2",
47 "kmenu": "npm:kmenu@^2.0.3",
48 "iso-base": "npm:iso-base@^4.3.0",
49 "lit-html": "npm:lit-html@^3.3.2",
50 "marked": "npm:marked@^17.0.4",
51 "query-string": "npm:query-string@^9.3.1",
52 "subsonic-api": "npm:subsonic-api@^3.2.0",
53 "temporal-polyfill": "npm:temporal-polyfill@^0.3.2",
54 "throttle-debounce": "npm:throttle-debounce@^5.0.2",
55 "xxh32": "npm:xxh32@^2.0.5",
56 "butterchurn": "npm:butterchurn@3.0.0-beta.5",
57 "butterchurn-presets": "npm:butterchurn-presets@3.0.0-beta.4",
58
59 // music-metadata
60 "@tokenizer/http": "npm:@tokenizer/http@^0.9.2",
61 "@tokenizer/range": "npm:@tokenizer/range@^0.13.1",
62 "music-metadata": "npm:music-metadata@^11.12.2",
63
64 // Build
65 "@atcute/lex-cli": "npm:@atcute/lex-cli@^2.5.3",
66 "@dotenv-run/esbuild": "npm:@dotenv-run/esbuild@^1.5.1",
67 "@std/fs": "jsr:@std/fs@^1.0.23",
68 "@std/path": "jsr:@std/path@^1.1.4",
69 "@types/wicg-file-system-access": "npm:@types/wicg-file-system-access@^2023.10.7",
70 "autoprefixer": "npm:autoprefixer@^10.4.27",
71 "esbuild-plugins-node-modules-polyfill": "npm:esbuild-plugins-node-modules-polyfill@^1.8.1",
72 "esbuild-plugin-wasm": "npm:esbuild-plugin-wasm@^1.1.0",
73 "cssnano": "npm:cssnano@^7.1.3",
74 "lume/": "https://cdn.jsdelivr.net/gh/lumeland/lume@3.2.2/",
75 "lume/jsx-runtime": "https://cdn.jsdelivr.net/gh/oscarotero/ssx@0.1.14/jsx-runtime.ts",
76
77 // Tests
78 "@astral/astral": "jsr:@astral/astral@0.5.5",
79 "@std/expect": "jsr:@std/expect@1.0.18",
80 "@std/testing/bdd": "jsr:@std/testing@1.0.17/bdd",
81
82 // Paths
83 "~/": "./src/",
84
85 "@tests/": "./tests/",
86 },
87 "exports": {
88 // .js
89 "./common/foundation.js": "./src/common/foundation.js",
90 "./common/facets/utils.js": "./src/common/facets/utils.js",
91 "./common/element.js": "./src/common/element.js",
92 "./common/signal.js": "./src/common/signal.js",
93 "./common/worker.js": "./src/common/worker.js",
94 "./common/worker/rpc.js": "./src/common/worker/rpc.js",
95 "./common/utils.js": "./src/common/utils.js",
96 "./components/configurator/input/element.js": "./src/components/configurator/input/element.js",
97 "./components/configurator/input/worker.js": "./src/components/configurator/input/worker.js",
98 "./components/configurator/output/element.js": "./src/components/configurator/output/element.js",
99 "./components/engine/audio/element.js": "./src/components/engine/audio/element.js",
100 "./components/engine/queue/element.js": "./src/components/engine/queue/element.js",
101 "./components/engine/queue/worker.js": "./src/components/engine/queue/worker.js",
102 "./components/engine/repeat-shuffle/element.js": "./src/components/engine/repeat-shuffle/element.js",
103 "./components/engine/scope/element.js": "./src/components/engine/scope/element.js",
104 "./components/input/common.js": "./src/components/input/common.js",
105 "./components/input/opensubsonic/common.js": "./src/components/input/opensubsonic/common.js",
106 "./components/input/opensubsonic/constants.js": "./src/components/input/opensubsonic/constants.js",
107 "./components/input/opensubsonic/element.js": "./src/components/input/opensubsonic/element.js",
108 "./components/input/opensubsonic/worker.js": "./src/components/input/opensubsonic/worker.js",
109 "./components/input/https/common.js": "./src/components/input/https/common.js",
110 "./components/input/https/constants.js": "./src/components/input/https/constants.js",
111 "./components/input/https/element.js": "./src/components/input/https/element.js",
112 "./components/input/https/worker.js": "./src/components/input/https/worker.js",
113 "./components/input/icecast/common.js": "./src/components/input/icecast/common.js",
114 "./components/input/icecast/constants.js": "./src/components/input/icecast/constants.js",
115 "./components/input/icecast/element.js": "./src/components/input/icecast/element.js",
116 "./components/input/icecast/worker.js": "./src/components/input/icecast/worker.js",
117 "./components/input/s3/common.js": "./src/components/input/s3/common.js",
118 "./components/input/s3/constants.js": "./src/components/input/s3/constants.js",
119 "./components/input/s3/element.js": "./src/components/input/s3/element.js",
120 "./components/input/s3/worker.js": "./src/components/input/s3/worker.js",
121 "./components/orchestrator/auto-queue/element.js": "./src/components/orchestrator/auto-queue/element.js",
122 "./components/orchestrator/media-session/element.js": "./src/components/orchestrator/media-session/element.js",
123 "./components/orchestrator/input/element.js": "./src/components/orchestrator/input/element.js",
124 "./components/orchestrator/output/element.js": "./src/components/orchestrator/output/element.js",
125 "./components/orchestrator/process-tracks/element.js": "./src/components/orchestrator/process-tracks/element.js",
126 "./components/orchestrator/process-tracks/worker.js": "./src/components/orchestrator/process-tracks/worker.js",
127 "./components/orchestrator/queue-audio/element.js": "./src/components/orchestrator/queue-audio/element.js",
128 "./components/orchestrator/scoped-tracks/element.js": "./src/components/orchestrator/scoped-tracks/element.js",
129 "./components/orchestrator/scoped-tracks/worker.js": "./src/components/orchestrator/scoped-tracks/worker.js",
130 "./components/orchestrator/sources/element.js": "./src/components/orchestrator/sources/element.js",
131 "./components/output/bytes/automerge-repo-server/element.js": "./src/components/output/bytes/automerge-repo-server/element.js",
132 "./components/output/common.js": "./src/components/output/common.js",
133 "./components/output/raw/atproto/element.js": "./src/components/output/raw/atproto/element.js",
134 "./components/output/polymorphic/automerge-repo/element.js": "./src/components/output/polymorphic/automerge-repo/element.js",
135 "./components/output/polymorphic/indexed-db/constants.js": "./src/components/output/polymorphic/indexed-db/constants.js",
136 "./components/output/polymorphic/indexed-db/element.js": "./src/components/output/polymorphic/indexed-db/element.js",
137 "./components/output/polymorphic/indexed-db/worker.js": "./src/components/output/polymorphic/indexed-db/worker.js",
138 "./components/processor/artwork/constants.js": "./src/components/processor/artwork/constants.js",
139 "./components/processor/artwork/element.js": "./src/components/processor/artwork/element.js",
140 "./components/processor/artwork/worker.js": "./src/components/processor/artwork/worker.js",
141 "./components/processor/metadata/common.js": "./src/components/processor/metadata/common.js",
142 "./components/processor/metadata/element.js": "./src/components/processor/metadata/element.js",
143 "./components/processor/metadata/worker.js": "./src/components/processor/metadata/worker.js",
144 "./components/processor/search/constants.js": "./src/components/processor/search/constants.js",
145 "./components/processor/search/element.js": "./src/components/processor/search/element.js",
146 "./components/processor/search/worker.js": "./src/components/processor/search/worker.js",
147 "./components/transformer/output/base.js": "./src/components/transformer/output/base.js",
148 "./components/transformer/output/bytes/automerge/constants.js": "./src/components/transformer/output/bytes/automerge/constants.js",
149 "./components/transformer/output/bytes/automerge/element.js": "./src/components/transformer/output/bytes/automerge/element.js",
150 "./components/transformer/output/bytes/automerge/utils.js": "./src/components/transformer/output/bytes/automerge/utils.js",
151 "./components/transformer/output/bytes/json/element.js": "./src/components/transformer/output/bytes/json/element.js",
152 "./components/transformer/output/refiner/default/element.js": "./src/components/transformer/output/refiner/default/element.js",
153 "./components/transformer/output/refiner/passkey-encryption/element.js": "./src/components/transformer/output/refiner/passkey-encryption/element.js",
154 "./components/transformer/output/string/json/element.js": "./src/components/transformer/output/string/json/element.js",
155
156 // .d.ts
157 "./common/element.d.ts": "./src/common/element.d.ts",
158 "./common/signal.d.ts": "./src/common/signal.d.ts",
159 "./common/worker.d.ts": "./src/common/worker.d.ts",
160 "./components/engine/audio/types.d.ts": "./src/components/engine/audio/types.d.ts",
161 "./components/engine/queue/types.d.ts": "./src/components/engine/queue/types.d.ts",
162 "./components/input/opensubsonic/types.d.ts": "./src/components/input/opensubsonic/types.d.ts",
163 "./components/input/s3/types.d.ts": "./src/components/input/s3/types.d.ts",
164 "./components/input/types.d.ts": "./src/components/input/types.d.ts",
165 "./components/orchestrator/process-tracks/types.d.ts": "./src/components/orchestrator/process-tracks/types.d.ts",
166 "./components/orchestrator/scoped-tracks/types.d.ts": "./src/components/orchestrator/scoped-tracks/types.d.ts",
167 "./components/output/raw/atproto/types.d.ts": "./src/components/output/raw/atproto/types.d.ts",
168 "./components/output/polymorphic/automerge-repo/types.d.ts": "./src/components/output/polymorphic/automerge-repo/types.d.ts",
169 "./components/output/polymorphic/indexed-db/types.d.ts": "./src/components/output/polymorphic/indexed-db/types.d.ts",
170 "./components/output/types.d.ts": "./src/components/output/types.d.ts",
171 "./components/processor/artwork/types.d.ts": "./src/components/processor/artwork/types.d.ts",
172 "./components/processor/metadata/types.d.ts": "./src/components/processor/metadata/types.d.ts",
173 "./components/processor/search/types.d.ts": "./src/components/processor/search/types.d.ts",
174 "./components/transformer/output/bytes/automerge/types.d.ts": "./src/components/transformer/output/bytes/automerge/types.d.ts",
175 "./definitions/types.d.ts": "./src/definitions/types.d.ts",
176
177 // .ts
178 "./definitions/types/sh/diffuse/output/facet.ts": "./src/definitions/types/sh/diffuse/output/facet.ts",
179 "./definitions/types/sh/diffuse/output/playlistItem.ts": "./src/definitions/types/sh/diffuse/output/playlistItem.ts",
180 "./definitions/types/sh/diffuse/output/theme.ts": "./src/definitions/types/sh/diffuse/output/theme.ts",
181 "./definitions/types/sh/diffuse/output/track.ts": "./src/definitions/types/sh/diffuse/output/track.ts",
182 },
183 "tasks": {
184 "build": {
185 "description": "Build the site for production",
186 "command": "deno task lume",
187 },
188 "gen:defs:types": {
189 "description": "Generate definition Typescript types",
190 "command": "deno run -A npm:@atcute/lex-cli generate -c ./lexicon.config.js && deno run -A ./tasks/replace-gen-import-extensions.ts",
191 },
192 "lume": {
193 "description": "Run Lume command",
194 "command": "deno run -P=lume --allow-write --allow-read lume/cli.ts",
195 },
196 "serve": {
197 "description": "Run and serve the site for development",
198 "command": "deno task lume -s",
199 },
200 "test:doc": {
201 "description": "Run documentation tests",
202 "command": "deno test src -A --doc --ignore=README.md",
203 },
204 "test:unit": {
205 "description": "Run unit tests (documentation tests)",
206 "command": "deno task test:doc",
207 },
208 "test:integration": {
209 "description": "Run integration tests",
210 "command": "deno test tests -A --ignore=README.md",
211 },
212 },
213 "compilerOptions": {
214 "checkJs": true,
215 "lib": ["deno.ns", "dom", "esnext"],
216 "types": ["lume/types.ts", "@types/wicg-file-system-access"],
217 "jsx": "react-jsx",
218 "jsxImportSource": "lume",
219 },
220 "unstable": ["temporal", "fmt-component"],
221 "lint": {
222 "plugins": ["https://cdn.jsdelivr.net/gh/lumeland/lume@3.1.4/lint.ts"],
223 "rules": {
224 "exclude": ["no-import-prefix"],
225 },
226 },
227 "publish": {
228 "exclude": ["!src/definitions/types"],
229 "include": [
230 "LICENSE",
231 "src/common/**/*.js",
232 "src/common/**/*.d.ts",
233 "src/components/**/*.js",
234 "src/components/**/*.d.ts",
235 "src/definitions/**/*.json",
236 "src/definitions/**/*.ts",
237 ],
238 },
239 "permissions": {
240 "lume": {
241 "read": true,
242 "write": ["./"],
243 "import": ["cdn.jsdelivr.net:443", "jsr.io:443", "deno.land:443", "esm.sh:443"],
244 "net": [
245 "0.0.0.0",
246 "cdn.jsdelivr.net:443",
247 "data.jsdelivr.com:443",
248 "jsr.io:443",
249 "deno.land:443",
250 "esm.sh:443",
251 "registry.npmjs.org:443",
252 ],
253 "env": true,
254 "run": true,
255 "ffi": true,
256 "sys": true,
257 },
258 },
259 "lock": false,
260}