A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

chore: build system improvements

+58 -104
+1
.gitignore
··· 4 4 /_site 5 5 /_vendor 6 6 /dist 7 + /vendor
+5 -5
_config.ts
··· 19 19 extensions: [".js"], 20 20 options: { 21 21 bundle: true, 22 - minify: false, 22 + // minify: true, 23 + // outExtension: { ".js": ".min.js" }, 23 24 splitting: true, 24 25 }, 25 26 })); ··· 49 50 const dest = "_site/" + f.path.replace(/^src\//, ""); 50 51 const dir = path.dirname(dest); 51 52 ensureDirSync(dir); 52 - console.log(dest); 53 53 Deno.copyFileSync(f.path, dest); 54 54 } 55 55 }); 56 56 57 - site.addEventListener("afterBuild", () => { 58 - site.run("copy-type-defs"); 59 - }); 57 + // site.addEventListener("afterBuild", () => { 58 + // site.run("copy-type-defs"); 59 + // });
-55
_package.backup.json
··· 1 - { 2 - "dependencies": { 3 - "@automerge/automerge": "^3.1.2", 4 - "@bradenmacdonald/s3-lite-client": "npm:@jsr/bradenmacdonald__s3-lite-client@^0.9.0", 5 - "@enhance/base-element": "^1.3.2", 6 - "@enhance/element": "^1.4.6", 7 - "@enhance/event-handler-mixin": "^1.0.4", 8 - "@enhance/morphdom-mixin": "^1.1.3", 9 - "@enhance/shadow-element-mixin": "^1.0.2", 10 - "@js-temporal/polyfill": "^0.5.1", 11 - "@lift-html/alien": "^0.0.1", 12 - "@okikio/sharedworker": "^1.1.0", 13 - "@okikio/transferables": "npm:@jsr/okikio__transferables@^1.0.2", 14 - "@orama/orama": "^3.1.7", 15 - "@orama/plugin-qps": "^3.1.7", 16 - "@phosphor-icons/web": "^2.1.2", 17 - "@picocss/pico": "^2.1.1", 18 - "@std/media-types": "npm:@jsr/std__media-types@^1.1.0", 19 - "@tokenizer/http": "^0.9.2", 20 - "@tokenizer/range": "^0.13.0", 21 - "@web-applets/sdk": "https://gitpkg.vercel.app/unternet-co/web-applets/sdk?tokono.ma/experiment&scripts.postinstall=npm%20i%20%40types%2Fnode%20%26%26%20npx%20tsc", 22 - "98.css": "^0.1.21", 23 - "alien-signals": "^3.0.0", 24 - "comlink": "^4.4.2", 25 - "fast-average-color": "^9.5.0", 26 - "iconoir": "^7.11.0", 27 - "idb-keyval": "^6.2.1", 28 - "music-metadata": "^11.9.0", 29 - "query-string": "^9.3.1", 30 - "subsonic-api": "^3.2.0", 31 - "throttle-debounce": "^5.0.2", 32 - "uint8arrays": "^5.1.0", 33 - "uri-js": "^4.4.1", 34 - "webamp": "^2.2.0", 35 - "xxh32": "^2.0.5" 36 - }, 37 - "devDependencies": { 38 - "@enhance/arc-plugin-enhance": "^11.0.4", 39 - "@enhance/arc-plugin-styles": "^5.0.5", 40 - "@enhance/cli": "^1.2.1", 41 - "@enhance/plugin-typescript": "^0.2.2", 42 - "@enhance/styles-cribsheet": "^0.0.11", 43 - "@enhance/types": "^0.7.0", 44 - "@types/throttle-debounce": "^5.0.2", 45 - "@types/wicg-file-system-access": "^2023.10.6", 46 - "astro": "^5.7.4", 47 - "astro-purgecss": "^5.2.2", 48 - "astro-scope": "^3.0.1", 49 - "netlify": "^23.9.1", 50 - "purgecss": "^7.0.2", 51 - "sass": "^1.87.0", 52 - "vite-plugin-wasm": "^3.4.1", 53 - "vite-tsconfig-paths": "^5.1.4" 54 - } 55 - }
+18 -10
deno.jsonc
··· 1 1 { 2 + "name": "@tokono.ma/diffuse", 3 + "version": "4.0.0", 4 + "vendor": true, 2 5 "imports": { 3 6 "@fry69/deep-diff": "jsr:@fry69/deep-diff@^0.1.10", 4 7 "@mys/m-rpc": "jsr:@mys/m-rpc@^0.12.2", 5 8 "@mys/worker-fn": "jsr:@mys/worker-fn@^3.2.1", 6 9 "@okikio/transferables": "jsr:@okikio/transferables@^1.0.2", 7 - "@std/fs": "jsr:@std/fs@^1.0.19", 8 - "@std/path": "jsr:@std/path@^1.1.2", 9 10 "alien-signals": "npm:alien-signals@^3.0.0", 10 - "lume/": "https://deno.land/x/lume@v3.0.11/", 11 - "lume/jsx-runtime": "https://deno.land/x/ssx@v0.1.12/jsx-runtime.ts", 12 - "morphdom": "npm:morphdom@^2.7.7", 11 + "morphdom": "npm:morphdom@^2.7.7/dist/morphdom.js", 13 12 "xxh32": "npm:xxh32@^2.0.5", 14 13 15 - // Source 14 + // Paths 16 15 "@common/": "./src/common/", 17 16 "@component/": "./src/component/", 17 + 18 + // Build 19 + "@std/fs": "jsr:@std/fs@^1.0.19", 20 + "@std/path": "jsr:@std/path@^1.1.2", 21 + "lume/": "https://deno.land/x/lume@v3.0.11/", 22 + "lume/jsx-runtime": "https://deno.land/x/ssx@v0.1.12/jsx-runtime.ts", 23 + }, 24 + "exports": { 25 + ".": "./src/mod.ts", 18 26 }, 19 27 "tasks": { 20 28 "build": "deno task lume", 21 29 "deploy:netlify": "npx netlify deploy --prod", 22 - "lume": "echo \"import 'lume/cli.ts'\" | DENO_DIR=_vendor deno run --config=./deno.jsonc --allow-read --allow-write --allow-env --allow-net --allow-run --allow-sys -", 30 + "lume": "echo \"import 'lume/cli.ts'\" | deno run --config=./deno.jsonc --allow-read --allow-write --allow-env --allow-net --allow-run --allow-sys -", 23 31 "serve": "deno task lume -s", 24 32 }, 25 33 "compilerOptions": { 26 34 "checkJs": true, 27 - "paths": { 28 - "@src/*": ["src/*"], 29 - }, 30 35 "types": ["lume/types.ts"], 31 36 }, 32 37 "unstable": ["temporal", "fmt-component"], ··· 35 40 "rules": { 36 41 "exclude": ["no-import-prefix"], 37 42 }, 43 + }, 44 + "publish": { 45 + "include": ["LICENSE", "README.md", "src/**/*.js", "src/**/*.ts"], 38 46 }, 39 47 }
+23 -22
deno.lock
··· 3 3 "specifiers": { 4 4 "jsr:@deno/loader@0.3.6": "0.3.6", 5 5 "jsr:@fry69/deep-diff@~0.1.10": "0.1.10", 6 - "jsr:@mys/m-rpc@~0.12.2": "0.12.2", 7 - "jsr:@mys/worker-fn@^3.2.1": "3.2.1", 8 - "jsr:@okikio/transferables@^1.0.2": "1.0.2", 9 6 "jsr:@std/cli@1.0.22": "1.0.22", 10 7 "jsr:@std/cli@^1.0.21": "1.0.22", 11 8 "jsr:@std/collections@^1.1.3": "1.1.3", ··· 21 18 "jsr:@std/http@1.0.20": "1.0.20", 22 19 "jsr:@std/internal@^1.0.10": "1.0.12", 23 20 "jsr:@std/internal@^1.0.9": "1.0.12", 21 + "jsr:@std/json@^1.0.2": "1.0.2", 24 22 "jsr:@std/jsonc@1.0.2": "1.0.2", 25 23 "jsr:@std/media-types@^1.1.0": "1.1.0", 26 24 "jsr:@std/net@^1.0.4": "1.0.6", ··· 33 31 "jsr:@std/toml@^1.0.3": "1.0.10", 34 32 "jsr:@std/yaml@1.0.9": "1.0.9", 35 33 "jsr:@std/yaml@^1.0.5": "1.0.9", 36 - "npm:alien-signals@3": "3.0.0", 34 + "npm:@types/node@*": "24.2.0", 35 + "npm:alien-signals@3": "3.0.1", 37 36 "npm:autoprefixer@10.4.21": "10.4.21_postcss@8.5.6", 38 37 "npm:lightningcss-wasm@1.30.1": "1.30.1", 39 38 "npm:markdown-it-attrs@4.3.1": "4.3.1_markdown-it@14.1.0", ··· 51 50 "@fry69/deep-diff@0.1.10": { 52 51 "integrity": "cdd88fefaef1ac896a038a5f3c0895038d8c725e61bac50489c455156e0275f5" 53 52 }, 54 - "@mys/m-rpc@0.12.2": { 55 - "integrity": "36599d3d4708db9f5c0f7da35a17b7e7da1fafddb69de6cfcdc6afe94cd4f084", 56 - "dependencies": [ 57 - "jsr:@okikio/transferables" 58 - ] 59 - }, 60 - "@mys/worker-fn@3.2.1": { 61 - "integrity": "330960f21041edd20fa9c5f78b136f62e3781e35797ac635534f003545be76cd", 62 - "dependencies": [ 63 - "jsr:@mys/m-rpc" 64 - ] 65 - }, 66 - "@okikio/transferables@1.0.2": { 67 - "integrity": "46a80015a1c4672b0b246e38838b3ea1e2edc6c775a235184a2f8eb49a8314f7" 68 - }, 69 53 "@std/cli@1.0.22": { 70 54 "integrity": "50d1e4f87887cb8a8afa29b88505ab5081188f5cad3985460c3b471fa49ff21a" 71 55 }, ··· 115 99 "@std/internal@1.0.12": { 116 100 "integrity": "972a634fd5bc34b242024402972cd5143eac68d8dffaca5eaa4dba30ce17b027" 117 101 }, 102 + "@std/json@1.0.2": { 103 + "integrity": "d9e5497801c15fb679f55a2c01c7794ad7a5dfda4dd1bebab5e409cb5e0d34d4" 104 + }, 118 105 "@std/jsonc@1.0.2": { 119 - "integrity": "909605dae3af22bd75b1cbda8d64a32cf1fd2cf6efa3f9e224aba6d22c0f44c7" 106 + "integrity": "909605dae3af22bd75b1cbda8d64a32cf1fd2cf6efa3f9e224aba6d22c0f44c7", 107 + "dependencies": [ 108 + "jsr:@std/json" 109 + ] 120 110 }, 121 111 "@std/media-types@1.1.0": { 122 112 "integrity": "c9d093f0c05c3512932b330e3cc1fe1d627b301db33a4c2c2185c02471d6eaa4" ··· 147 137 } 148 138 }, 149 139 "npm": { 150 - "alien-signals@3.0.0": { 151 - "integrity": "sha512-JHoRJf18Y6HN4/KZALr3iU+0vW9LKG+8FMThQlbn4+gv8utsLIkwpomjElGPccGeNwh0FI2HN6BLnyFLo6OyLQ==" 140 + "@types/node@24.2.0": { 141 + "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", 142 + "dependencies": [ 143 + "undici-types" 144 + ] 145 + }, 146 + "alien-signals@3.0.1": { 147 + "integrity": "sha512-ec02Wv5iOg7yG979PH9ykv5KN/KHznOxMlKy/Jr8lnBo3T94d4MUGo7FVdM8B2fM0e94twzEcWCyWzfIyeV19g==" 152 148 }, 153 149 "argparse@2.0.1": { 154 150 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" ··· 313 309 "uc.micro@2.1.0": { 314 310 "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" 315 311 }, 312 + "undici-types@7.10.0": { 313 + "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==" 314 + }, 316 315 "update-browserslist-db@1.1.3_browserslist@4.26.3": { 317 316 "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", 318 317 "dependencies": [ ··· 327 326 } 328 327 }, 329 328 "remote": { 329 + "https://cdn.jsdelivr.net/gh/lumeland/bar@0.1.11/types.ts": "38f3714e1432c174009495333972f85fb306eb6313112ac8830fda9f1f47e87f", 330 330 "https://deno.land/std@0.170.0/_util/asserts.ts": "d0844e9b62510f89ce1f9878b046f6a57bf88f208a10304aab50efcb48365272", 331 331 "https://deno.land/std@0.170.0/_util/os.ts": "8a33345f74990e627b9dfe2de9b040004b08ea5146c7c9e8fe9a29070d193934", 332 332 "https://deno.land/std@0.170.0/encoding/base64.ts": "8605e018e49211efc767686f6f687827d7f5fd5217163e981d8d693105640d7a", ··· 554 554 "https://deno.land/x/lume@v3.0.11/plugins/url.ts": "15f2e80b6fcbf86f8795a3676b8d533bab003ac016ff127e58165a6ac3bffc1a", 555 555 "https://deno.land/x/lume@v3.0.11/plugins/vento.ts": "fd60ee80435994bcf88b2cda9c51eaed0ba49a2363f42920675f2d5a0a4a6ab2", 556 556 "https://deno.land/x/lume@v3.0.11/plugins/yaml.ts": "d0ebf37c38648172c6b95c502753a3edf60278ab4f6a063f3ca00f31e0dd90cc", 557 + "https://deno.land/x/lume@v3.0.11/types.ts": "5f580502f366b9b25106eb72d49b30d9af7715c8a304fe6e21f382d3c2a4cc38", 557 558 "https://deno.land/x/ssx@v0.1.12/jsx-runtime.ts": "a334a1ee3a25de7f3b84b7b8d842bcae40e9116f6edb6ec76cb265712c8a2ab8", 558 559 "https://deno.land/x/vento@v2.1.1/core/environment.ts": "36f3e145adfe1af3740cfcfc6ff237d6fe48225d3627123b17022251afbe3074", 559 560 "https://deno.land/x/vento@v2.1.1/core/errors.ts": "8606b682b465d598a394feea135dd2f84033b5ef2a61a23d116ccb782a0a547a",
-6
netlify-imports.json
··· 1 - { 2 - "imports": { 3 - "@common/": "/common/", 4 - "@elements/": "/elements/" 5 - } 6 - }
+1 -1
src/common/element.js
··· 1 - import morphdom from "morphdom/dist/morphdom.js"; 1 + import morphdom from "morphdom"; 2 2 import { effect } from "@common/signal.js"; 3 3 4 4 /**
+2 -2
src/component/constituent/blur/browser-list/types.d.ts
··· 1 - import { Signal } from "@common/signal.d.ts"; 2 - import { Track } from "@elements/core/types.d.ts"; 1 + import type { Signal } from "../../../../common/signal.d.ts"; 2 + import type { Track } from "../../../core/types.d.ts"; 3 3 4 4 export type State = { tracks: Signal<Track[]> };
+1 -1
src/component/engine/audio/types.d.ts
··· 1 - import type { Signal } from "@common/signal.d.ts"; 1 + import type { Signal } from "../../../common/signal.d.ts"; 2 2 3 3 export interface Actions { 4 4 pause: (_: { audioId: string }) => void;
+6 -2
src/component/engine/queue/types.d.ts
··· 1 - import type { Track, TrackStats, TrackTags } from "@component/core/types.d.ts"; 2 - import type { Signal } from "@common/signal.d.ts"; 1 + import type { 2 + Track, 3 + TrackStats, 4 + TrackTags, 5 + } from "../../../component/core/types.d.ts"; 6 + import type { Signal } from "../../../common/signal.d.ts"; 3 7 4 8 export interface Actions { 5 9 add: (items: Item[]) => void;
+1
src/mod.ts
··· 1 + export * from "./component/engine/audio/element.js";