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

chore: adjust paths

+452 -454
+1 -16
deno.jsonc
··· 55 55 "@testing/": "./src/testing/", 56 56 "@tests/": "./tests/", 57 57 58 - "@common/": "./src/common/", 59 - "@components/": "./src/components/", 60 - "@definitions/": "./src/definitions/", 61 - "@styles/": "./src/styles/", 62 - "@themes/": "./src/themes/", 63 - "@vendor/": "./src/vendor/", 64 - 65 - // Diffuse prefix paths 66 - "@diffuse/foundation": "./src/common/facets/foundation.js", 67 - 68 - "@diffuse/common/": "./src/common/", 69 - "@diffuse/components/": "./src/components/", 70 - "@diffuse/definitions/": "./src/definitions/", 71 - "@diffuse/styles/": "./src/styles/", 72 - "@diffuse/themes/": "./src/themes/", 73 - "@diffuse/vendor/": "./src/vendor/", 58 + "~/": "./src/", 74 59 75 60 // Build 76 61 "@atcute/lex-cli": "npm:@atcute/lex-cli@^2.5.3",
+1 -1
docs/plans/https-directory-listing.md
··· 210 210 Add the import and the element to the rendered template: 211 211 212 212 ```js 213 - import "@components/input/https-json/element.js"; 213 + import "~/components/input/https-json/element.js"; 214 214 // ... 215 215 render({ html }) { 216 216 return html`
+2 -2
src/common/element.js
··· 1 1 import QS from "query-string"; 2 2 import { html, render } from "lit-html"; 3 3 4 - import { effect, signal } from "@common/signal.js"; 4 + import { effect, signal } from "~/common/signal.js"; 5 5 import { rpc, workerLink, workerProxy, workerTunnel } from "./worker.js"; 6 6 import { RpcChannel } from "./worker/rpc-channel.js"; 7 7 ··· 489 489 * with the correct type based on the element module given. 490 490 * 491 491 * ``` 492 - * import * as QueryEngine from "@components/engine/query/element.js" 492 + * import * as QueryEngine from "~/components/engine/query/element.js" 493 493 * 494 494 * const instance = component(QueryEngine) 495 495 * ```
+16 -16
src/common/facets/foundation.js
··· 1 - import ArtworkProcessor from "@components/processor/artwork/element.js"; 2 - import AudioEngine from "@components/engine/audio/element.js"; 3 - import AutoQueueOrchestrator from "@components/orchestrator/auto-queue/element.js"; 4 - import Queue from "@components/engine/queue/element.js"; 5 - import InputOrchestrator from "@components/orchestrator/input/element.js"; 6 - import OutputOrchestrator from "@components/orchestrator/output/element.js"; 7 - import MetadataProcessor from "@components/processor/metadata/element.js"; 8 - import ProcessTracksOrchestrator from "@components/orchestrator/process-tracks/element.js"; 9 - import QueueAudioOrchestrator from "@components/orchestrator/queue-audio/element.js"; 10 - import RepeatShuffleEngine from "@components/engine/repeat-shuffle/element.js"; 11 - import SearchProcessor from "@components/processor/search/element.js"; 12 - import ScopeEngine from "@components/engine/scope/element.js"; 13 - import ScopedTracksOrchestrator from "@components/orchestrator/scoped-tracks/element.js"; 14 - import FavouritesOrchestrator from "@components/orchestrator/favourites/element.js"; 15 - import MediaSessionOrchestrator from "@components/orchestrator/media-session/element.js"; 16 - import SourcesOrchestrator from "@components/orchestrator/sources/element.js"; 1 + import ArtworkProcessor from "~/components/processor/artwork/element.js"; 2 + import AudioEngine from "~/components/engine/audio/element.js"; 3 + import AutoQueueOrchestrator from "~/components/orchestrator/auto-queue/element.js"; 4 + import Queue from "~/components/engine/queue/element.js"; 5 + import InputOrchestrator from "~/components/orchestrator/input/element.js"; 6 + import OutputOrchestrator from "~/components/orchestrator/output/element.js"; 7 + import MetadataProcessor from "~/components/processor/metadata/element.js"; 8 + import ProcessTracksOrchestrator from "~/components/orchestrator/process-tracks/element.js"; 9 + import QueueAudioOrchestrator from "~/components/orchestrator/queue-audio/element.js"; 10 + import RepeatShuffleEngine from "~/components/engine/repeat-shuffle/element.js"; 11 + import SearchProcessor from "~/components/processor/search/element.js"; 12 + import ScopeEngine from "~/components/engine/scope/element.js"; 13 + import ScopedTracksOrchestrator from "~/components/orchestrator/scoped-tracks/element.js"; 14 + import FavouritesOrchestrator from "~/components/orchestrator/favourites/element.js"; 15 + import MediaSessionOrchestrator from "~/components/orchestrator/media-session/element.js"; 16 + import SourcesOrchestrator from "~/components/orchestrator/sources/element.js"; 17 17 18 18 /** 19 19 * @import { DiffuseElement } from "@toko/diffuse/common/element.js";
+1 -1
src/common/facets/utils.js
··· 6 6 import * as CID from "../cid.js"; 7 7 8 8 /** 9 - * @import {Facet} from "@definitions/types.d.ts" 9 + * @import {Facet} from "~/definitions/types.d.ts" 10 10 */ 11 11 12 12 /**
+3 -3
src/common/loader.js
··· 9 9 XrpcHandleResolver, 10 10 } from "@atcute/identity-resolver"; 11 11 12 - import * as CID from "@common/cid.js"; 13 - import { effect } from "@common/signal.js"; 12 + import * as CID from "~/common/cid.js"; 13 + import { effect } from "~/common/signal.js"; 14 14 15 15 /** 16 - * @import {SignalReader} from "@common/signal.d.ts" 16 + * @import {SignalReader} from "~/common/signal.d.ts" 17 17 */ 18 18 19 19 /**
+2 -2
src/common/playlist.js
··· 1 1 /** 2 - * @import {PlaylistItem, Track} from "@definitions/types.d.ts" 2 + * @import {PlaylistItem, Track} from "~/definitions/types.d.ts" 3 3 */ 4 4 5 - import { compareTimestamps } from "@common/utils.js"; 5 + import { compareTimestamps } from "~/common/utils.js"; 6 6 7 7 /** 8 8 * Filter tracks by playlist membership using an indexed lookup.
+1 -1
src/common/themes/utils.js
··· 4 4 import * as CID from "../cid.js"; 5 5 6 6 /** 7 - * @import {Theme} from "@definitions/types.d.ts" 7 + * @import {Theme} from "~/definitions/types.d.ts" 8 8 */ 9 9 10 10 /**
+1 -1
src/common/track.js
··· 1 1 import * as URI from "fast-uri"; 2 2 3 3 /** 4 - * @import {Track} from "@definitions/types.d.ts" 4 + * @import {Track} from "~/definitions/types.d.ts" 5 5 */ 6 6 7 7 /**
+1 -1
src/common/utils.js
··· 3 3 import { xxh32r } from "xxh32/dist/raw.js"; 4 4 5 5 /** 6 - * @import {Track} from "@definitions/types.d.ts" 6 + * @import {Track} from "~/definitions/types.d.ts" 7 7 */ 8 8 9 9 /**
+3 -3
src/components/configurator/input/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 3 3 /** 4 - * @import {ProxiedActions, Tunnel} from "@common/worker.d.ts" 5 - * @import {InputActions, InputElement} from "@components/input/types.d.ts" 4 + * @import {ProxiedActions, Tunnel} from "~/common/worker.d.ts" 5 + * @import {InputActions, InputElement} from "~/components/input/types.d.ts" 6 6 */ 7 7 8 8 /**
+5 -5
src/components/configurator/input/worker.js
··· 1 1 import * as URI from "fast-uri"; 2 2 3 - import { groupTracksPerScheme, groupUrisPerScheme } from "@common/utils.js"; 4 - import { ostiary, rpc, workerProxy } from "@common/worker.js"; 3 + import { groupTracksPerScheme, groupUrisPerScheme } from "~/common/utils.js"; 4 + import { ostiary, rpc, workerProxy } from "~/common/worker.js"; 5 5 6 6 /** 7 - * @import {Track} from "@definitions/types.d.ts"; 8 - * @import {GroupConsult, InputActions} from "@components/input/types.d.ts" 9 - * @import {ActionsWithTunnel, ProxiedActions} from "@common/worker.d.ts" 7 + * @import {Track} from "~/definitions/types.d.ts"; 8 + * @import {GroupConsult, InputActions} from "~/components/input/types.d.ts" 9 + * @import {ActionsWithTunnel, ProxiedActions} from "~/common/worker.d.ts" 10 10 */ 11 11 12 12 ////////////////////////////////////////////
+5 -5
src/components/configurator/output/element.js
··· 1 - import { BroadcastableDiffuseElement } from "@common/element.js"; 2 - import { batch, computed, signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement } from "~/common/element.js"; 2 + import { batch, computed, signal } from "~/common/signal.js"; 3 3 4 4 /** 5 - * @import {DiffuseElement} from "@common/element.js" 6 - * @import {Facet, PlaylistItem, Theme, Track} from "@definitions/types.d.ts" 7 - * @import {OutputManagerDeputy, OutputElement} from "@components/output/types.d.ts" 5 + * @import {DiffuseElement} from "~/common/element.js" 6 + * @import {Facet, PlaylistItem, Theme, Track} from "~/definitions/types.d.ts" 7 + * @import {OutputManagerDeputy, OutputElement} from "~/components/output/types.d.ts" 8 8 * 9 9 * @import {OutputConfiguratorElement} from "./types.d.ts" 10 10 */
+2 -2
src/components/configurator/output/types.d.ts
··· 1 - import type { OutputElement } from "@components/output/types.d.ts"; 2 - import type { SignalReader } from "@common/signal.d.ts"; 1 + import type { OutputElement } from "~/components/output/types.d.ts"; 2 + import type { SignalReader } from "~/common/signal.d.ts"; 3 3 4 4 export type OutputConfiguratorElement<ElementType = OutputElement> = 5 5 & OutputElement
+4 -4
src/components/engine/audio/element.js
··· 1 1 import { keyed } from "lit-html/directives/keyed.js"; 2 2 3 - import { BroadcastableDiffuseElement, nothing } from "@common/element.js"; 4 - import { computed, signal, untracked } from "@common/signal.js"; 3 + import { BroadcastableDiffuseElement, nothing } from "~/common/element.js"; 4 + import { computed, signal, untracked } from "~/common/signal.js"; 5 5 6 6 /** 7 7 * @import {Actions, Audio, AudioState, AudioStateReadOnly, LoadingState} from "./types.d.ts" 8 - * @import {RenderArg} from "@common/element.d.ts" 9 - * @import {SignalReader} from "@common/signal.d.ts" 8 + * @import {RenderArg} from "~/common/element.d.ts" 9 + * @import {SignalReader} from "~/common/signal.d.ts" 10 10 */ 11 11 12 12 ////////////////////////////////////////////
+1 -1
src/components/engine/audio/types.d.ts
··· 1 - import type { Signal, SignalReader } from "@common/signal.d.ts"; 1 + import type { Signal, SignalReader } from "~/common/signal.d.ts"; 2 2 3 3 export type Actions = { 4 4 adjustVolume: (_: { audioId?: string; volume: number }) => void;
+4 -4
src/components/engine/queue/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 3 - import { listen } from "@common/worker.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 + import { listen } from "~/common/worker.js"; 4 4 5 5 /** 6 - * @import {ProxiedActions} from "@common/worker.d.ts"; 6 + * @import {ProxiedActions} from "~/common/worker.d.ts"; 7 7 * @import {Actions, Item, State} from "./types.d.ts" 8 8 */ 9 9
+1 -1
src/components/engine/queue/types.d.ts
··· 1 - import type { SignalReader } from "@common/signal.d.ts"; 1 + import type { SignalReader } from "~/common/signal.d.ts"; 2 2 3 3 export type Actions = { 4 4 add: (args: { inFront?: boolean; trackIds: string[] }) => void;
+3 -3
src/components/engine/queue/worker.js
··· 1 - import { announce, ostiary, rpc } from "@common/worker.js"; 2 - import { effect, signal } from "@common/signal.js"; 3 - import { arrayShuffle } from "@common/utils.js"; 1 + import { announce, ostiary, rpc } from "~/common/worker.js"; 2 + import { effect, signal } from "~/common/signal.js"; 3 + import { arrayShuffle } from "~/common/utils.js"; 4 4 import { xxh32 } from "xxh32"; 5 5 6 6 /**
+2 -2
src/components/engine/repeat-shuffle/element.js
··· 1 - import { BroadcastableDiffuseElement } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 3 4 4 //////////////////////////////////////////// 5 5 // ELEMENT
+2 -2
src/components/engine/scope/element.js
··· 1 - import { BroadcastableDiffuseElement } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 3 4 4 //////////////////////////////////////////// 5 5 // ELEMENT
+1 -1
src/components/input/common.js
··· 1 1 /** 2 - * @import {Track} from "@definitions/types.d.ts" 2 + * @import {Track} from "~/definitions/types.d.ts" 3 3 */ 4 4 5 5 /**
+5 -5
src/components/input/https/common.js
··· 1 - import { cachedConsult } from "@components/input/common.js"; 1 + import { cachedConsult } from "~/components/input/common.js"; 2 2 3 3 /** 4 - * @import {Track} from "@definitions/types.d.ts" 4 + * @import {Track} from "~/definitions/types.d.ts" 5 5 */ 6 6 7 7 /** ··· 14 14 * ```ts 15 15 * import { expect } from "@std/expect"; 16 16 * import { groupTracksByHost } from "./common.js"; 17 - * import type { Track } from "@definitions/types.d.ts"; 17 + * import type { Track } from "~/definitions/types.d.ts"; 18 18 * 19 19 * const tracks: Track[] = [ 20 20 * { ··· 44 44 * ```ts 45 45 * import { expect } from "@std/expect"; 46 46 * import { groupTracksByHost } from "./common.js"; 47 - * import type { Track } from "@definitions/types.d.ts"; 47 + * import type { Track } from "~/definitions/types.d.ts"; 48 48 * 49 49 * const tracks: Track[] = [ 50 50 * { ··· 121 121 * ```ts 122 122 * import { expect } from "@std/expect"; 123 123 * import { hostsFromTracks } from "./common.js"; 124 - * import type { Track } from "@definitions/types.d.ts"; 124 + * import type { Track } from "~/definitions/types.d.ts"; 125 125 * 126 126 * const tracks: Track[] = [ 127 127 * {
+4 -4
src/components/input/https/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 import { SCHEME } from "./constants.js"; 3 3 import { hostsFromTracks } from "./common.js"; 4 4 5 5 /** 6 - * @import {InputActions, InputSchemeProvider} from "@components/input/types.d.ts" 7 - * @import {ProxiedActions} from "@common/worker.d.ts" 8 - * @import {Track} from "@definitions/types.d.ts" 6 + * @import {InputActions, InputSchemeProvider} from "~/components/input/types.d.ts" 7 + * @import {ProxiedActions} from "~/common/worker.d.ts" 8 + * @import {Track} from "~/definitions/types.d.ts" 9 9 */ 10 10 11 11 ////////////////////////////////////////////
+3 -3
src/components/input/https/worker.js
··· 1 - import { ostiary, rpc } from "@common/worker.js"; 2 - import { detach as detachUtil, groupKey } from "@components/input/common.js"; 1 + import { ostiary, rpc } from "~/common/worker.js"; 2 + import { detach as detachUtil, groupKey } from "~/components/input/common.js"; 3 3 4 4 import { 5 5 consultHostCached, ··· 10 10 import { SCHEME } from "./constants.js"; 11 11 12 12 /** 13 - * @import { InputActions as Actions, ConsultGrouping } from "@components/input/types.d.ts"; 13 + * @import { InputActions as Actions, ConsultGrouping } from "~/components/input/types.d.ts"; 14 14 */ 15 15 16 16 ////////////////////////////////////////////
+3 -3
src/components/input/local/common.js
··· 1 1 import * as IDB from "idb-keyval"; 2 2 import * as URI from "fast-uri"; 3 3 4 - import { isAudioFile } from "@components/input/common.js"; 5 - import { safeDecodeURIComponent } from "@common/utils.js"; 4 + import { isAudioFile } from "~/components/input/common.js"; 5 + import { safeDecodeURIComponent } from "~/common/utils.js"; 6 6 import { IDB_HANDLES, SCHEME } from "./constants.js"; 7 7 8 8 /** 9 - * @import { Track } from "@definitions/types.d.ts" 9 + * @import { Track } from "~/definitions/types.d.ts" 10 10 */ 11 11 12 12 ////////////////////////////////////////////
+4 -4
src/components/input/local/element.js
··· 1 1 import * as TID from "@atcute/tid"; 2 - import { DiffuseElement } from "@common/element.js"; 2 + import { DiffuseElement } from "~/common/element.js"; 3 3 import { SCHEME } from "./constants.js"; 4 4 import { 5 5 buildURI, ··· 9 9 } from "./common.js"; 10 10 11 11 /** 12 - * @import {InputActions, InputSchemeProvider} from "@components/input/types.d.ts" 13 - * @import {ProxiedActions} from "@common/worker.d.ts" 14 - * @import {Track} from "@definitions/types.d.ts" 12 + * @import {InputActions, InputSchemeProvider} from "~/components/input/types.d.ts" 13 + * @import {ProxiedActions} from "~/common/worker.d.ts" 14 + * @import {Track} from "~/definitions/types.d.ts" 15 15 */ 16 16 17 17 ////////////////////////////////////////////
+4 -4
src/components/input/local/worker.js
··· 1 1 import * as TID from "@atcute/tid"; 2 - import { ostiary, rpc } from "@common/worker.js"; 3 - import { groupKey } from "@components/input/common.js"; 2 + import { ostiary, rpc } from "~/common/worker.js"; 3 + import { groupKey } from "~/components/input/common.js"; 4 4 import { 5 5 buildURI, 6 6 enumerateAudioFiles, ··· 14 14 import { SCHEME } from "./constants.js"; 15 15 16 16 /** 17 - * @import { InputActions as Actions, ConsultGrouping } from "@components/input/types.d.ts"; 18 - * @import { Track } from "@definitions/types.d.ts" 17 + * @import { InputActions as Actions, ConsultGrouping } from "~/components/input/types.d.ts"; 18 + * @import { Track } from "~/definitions/types.d.ts" 19 19 */ 20 20 21 21 ////////////////////////////////////////////
+3 -3
src/components/input/opensubsonic/common.js
··· 2 2 import QS from "query-string"; 3 3 4 4 import { SCHEME } from "./constants.js"; 5 - import { cachedConsult } from "@components/input/common.js"; 6 - import { safeDecodeURIComponent } from "@common/utils.js"; 5 + import { cachedConsult } from "~/components/input/common.js"; 6 + import { safeDecodeURIComponent } from "~/common/utils.js"; 7 7 import { SubsonicAPIWithoutFetch } from "./class.js"; 8 8 9 9 /** 10 10 * @import {Child} from "subsonic-api" 11 - * @import {Track} from "@definitions/types.d.ts"; 11 + * @import {Track} from "~/definitions/types.d.ts"; 12 12 * @import {Server} from "./types.d.ts"; 13 13 */ 14 14
+4 -4
src/components/input/opensubsonic/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 import { SCHEME } from "./constants.js"; 3 3 import { buildURI, serversFromTracks } from "./common.js"; 4 4 5 5 /** 6 - * @import {InputActions, InputSchemeProvider} from "@components/input/types.d.ts" 7 - * @import {ProxiedActions} from "@common/worker.d.ts" 8 - * @import {Track} from "@definitions/types.d.ts" 6 + * @import {InputActions, InputSchemeProvider} from "~/components/input/types.d.ts" 7 + * @import {ProxiedActions} from "~/common/worker.d.ts" 8 + * @import {Track} from "~/definitions/types.d.ts" 9 9 */ 10 10 11 11 ////////////////////////////////////////////
+4 -4
src/components/input/opensubsonic/worker.js
··· 1 1 import * as TID from "@atcute/tid"; 2 - import { ostiary, rpc } from "@common/worker.js"; 2 + import { ostiary, rpc } from "~/common/worker.js"; 3 3 4 4 import { SCHEME } from "./constants.js"; 5 5 import { 6 6 removeUndefinedValuesFromRecord, 7 7 safeDecodeURIComponent, 8 - } from "@common/utils.js"; 8 + } from "~/common/utils.js"; 9 9 import { detach as detachUtil, groupKey } from "../common.js"; 10 10 import { 11 11 autoTypeToTrackKind, ··· 20 20 21 21 /** 22 22 * @import {Child, SubsonicAPI} from "subsonic-api" 23 - * @import {Track} from "@definitions/types.d.ts"; 24 - * @import {ConsultGrouping, InputActions as Actions} from "@components/input/types.d.ts"; 23 + * @import {Track} from "~/definitions/types.d.ts"; 24 + * @import {ConsultGrouping, InputActions as Actions} from "~/components/input/types.d.ts"; 25 25 * @import {Server} from "./types.d.ts" 26 26 */ 27 27
+3 -3
src/components/input/s3/common.js
··· 3 3 import * as URI from "fast-uri"; 4 4 import QS from "query-string"; 5 5 6 - import { cachedConsult } from "@components/input/common.js"; 7 - import { safeDecodeURIComponent } from "@common/utils.js"; 6 + import { cachedConsult } from "~/components/input/common.js"; 7 + import { safeDecodeURIComponent } from "~/common/utils.js"; 8 8 import { ENCODINGS, IDB_BUCKETS, SCHEME } from "./constants.js"; 9 9 10 10 /** 11 - * @import { Track } from "@definitions/types.d.ts"; 11 + * @import { Track } from "~/definitions/types.d.ts"; 12 12 * @import { Bucket } from "./types.d.ts"; 13 13 */ 14 14
+1 -1
src/components/input/s3/constants.js
··· 1 - export const IDB_PREFIX = "@components/input/s3"; 1 + export const IDB_PREFIX = "~/components/input/s3"; 2 2 export const IDB_BUCKETS = `${IDB_PREFIX}/buckets`; 3 3 export const SCHEME = "s3"; 4 4
+4 -4
src/components/input/s3/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 import { SCHEME } from "./constants.js"; 3 3 import { bucketsFromTracks, buildURI } from "./common.js"; 4 4 5 5 /** 6 - * @import {InputActions, InputSchemeProvider} from "@components/input/types.d.ts" 7 - * @import {ProxiedActions} from "@common/worker.d.ts" 8 - * @import {Track} from "@definitions/types.d.ts" 6 + * @import {InputActions, InputSchemeProvider} from "~/components/input/types.d.ts" 7 + * @import {ProxiedActions} from "~/common/worker.d.ts" 8 + * @import {Track} from "~/definitions/types.d.ts" 9 9 * @import {Demo} from "./types.d.ts" 10 10 */ 11 11
+1 -1
src/components/input/s3/types.d.ts
··· 1 - import type { Track } from "@definitions/types.d.ts"; 1 + import type { Track } from "~/definitions/types.d.ts"; 2 2 3 3 export type Bucket = { 4 4 accessKey: string;
+4 -4
src/components/input/s3/worker.js
··· 1 1 import * as TID from "@atcute/tid"; 2 - import { ostiary, rpc } from "@common/worker.js"; 2 + import { ostiary, rpc } from "~/common/worker.js"; 3 3 import { 4 4 detach as detachUtil, 5 5 groupKey, 6 6 isAudioFile, 7 - } from "@components/input/common.js"; 7 + } from "~/components/input/common.js"; 8 8 import { 9 9 bucketId, 10 10 buildURI, ··· 17 17 import { SCHEME } from "./constants.js"; 18 18 19 19 /** 20 - * @import { InputActions as Actions, ConsultGrouping } from "@components/input/types.d.ts"; 21 - * @import { Track } from "@definitions/types.d.ts" 20 + * @import { InputActions as Actions, ConsultGrouping } from "~/components/input/types.d.ts"; 21 + * @import { Track } from "~/definitions/types.d.ts" 22 22 * @import { Bucket, Demo } from "./types.d.ts" 23 23 */ 24 24
+3 -3
src/components/input/types.d.ts
··· 1 - import type { ProxiedActions } from "@common/worker.d.ts"; 1 + import type { ProxiedActions } from "~/common/worker.d.ts"; 2 2 3 - import type { Track } from "@definitions/types.d.ts"; 4 - import type { DiffuseElement } from "@common/element.js"; 3 + import type { Track } from "~/definitions/types.d.ts"; 4 + import type { DiffuseElement } from "~/common/element.js"; 5 5 6 6 /** 7 7 * Consultation.
+6 -6
src/components/orchestrator/auto-queue/element.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 2 3 3 /** 4 - * @import {DiffuseElement} from "@common/element.js"; 5 - * @import {SignalReader} from "@common/signal.d.ts"; 6 - * @import {Track} from "@definitions/types.d.ts" 7 - * @import RepeatShuffleEngine from "@components/engine/repeat-shuffle/element.js" 4 + * @import {DiffuseElement} from "~/common/element.js"; 5 + * @import {SignalReader} from "~/common/signal.d.ts"; 6 + * @import {Track} from "~/definitions/types.d.ts" 7 + * @import RepeatShuffleEngine from "~/components/engine/repeat-shuffle/element.js" 8 8 */ 9 9 10 10 //////////////////////////////////////////// ··· 32 32 // Super 33 33 super.connectedCallback(); 34 34 35 - /** @type {import("@components/engine/queue/element.js").CLASS} */ 35 + /** @type {import("~/components/engine/queue/element.js").CLASS} */ 36 36 const queue = query(this, "queue-engine-selector"); 37 37 38 38 /** @type {RepeatShuffleEngine} */
+3 -3
src/components/orchestrator/favourites/common.js
··· 1 1 import * as TID from "@atcute/tid"; 2 2 3 3 /** 4 - * @import {PlaylistItem, Track} from "@definitions/types.d.ts" 4 + * @import {PlaylistItem, Track} from "~/definitions/types.d.ts" 5 5 */ 6 6 7 7 /** ··· 37 37 /** 38 38 * Filter playlist items that belong to the favourites playlist. 39 39 * 40 - * @param {import("@definitions/types.d.ts").PlaylistItem[]} playlistItems 41 - * @returns {import("@definitions/types.d.ts").PlaylistItem[]} 40 + * @param {import("~/definitions/types.d.ts").PlaylistItem[]} playlistItems 41 + * @returns {import("~/definitions/types.d.ts").PlaylistItem[]} 42 42 */ 43 43 export function filterFavourites(playlistItems) { 44 44 return playlistItems.filter((item) => item.playlist === "Favourites");
+6 -6
src/components/orchestrator/favourites/element.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 2 - import { match as matchPlaylistItem } from "@common/playlist.js"; 3 - import { computed, signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 + import { match as matchPlaylistItem } from "~/common/playlist.js"; 3 + import { computed, signal } from "~/common/signal.js"; 4 4 import { filterFavourites } from "./common.js"; 5 5 6 6 /** 7 - * @import {Track} from "@definitions/types.d.ts" 8 - * @import {ProxiedActions} from "@common/worker.d.ts" 9 - * @import {OutputElement} from "@components/output/types.d.ts" 7 + * @import {Track} from "~/definitions/types.d.ts" 8 + * @import {ProxiedActions} from "~/common/worker.d.ts" 9 + * @import {OutputElement} from "~/components/output/types.d.ts" 10 10 * @import {Actions} from "./types.d.ts" 11 11 */ 12 12
+1 -1
src/components/orchestrator/favourites/types.d.ts
··· 1 - import type { PlaylistItem, Track } from "@definitions/types.d.ts"; 1 + import type { PlaylistItem, Track } from "~/definitions/types.d.ts"; 2 2 3 3 export type Actions = { 4 4 include(args: { playlistItems: PlaylistItem[]; tracks: Track[] }): Promise<
+2 -2
src/components/orchestrator/favourites/worker.js
··· 1 - import { ostiary, rpc } from "@common/worker.js"; 1 + import { ostiary, rpc } from "~/common/worker.js"; 2 2 import { createFavouriteItem, filterFavourites } from "./common.js"; 3 3 4 4 /** 5 - * @import {PlaylistItem, Track} from "@definitions/types.d.ts" 5 + * @import {PlaylistItem, Track} from "~/definitions/types.d.ts" 6 6 * @import {Actions} from "./types.d.ts" 7 7 */ 8 8
+8 -8
src/components/orchestrator/input/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 3 - import "@components/configurator/input/element.js"; 4 - import "@components/input/https/element.js"; 5 - import "@components/input/local/element.js"; 6 - import "@components/input/opensubsonic/element.js"; 7 - import "@components/input/s3/element.js"; 3 + import "~/components/configurator/input/element.js"; 4 + import "~/components/input/https/element.js"; 5 + import "~/components/input/local/element.js"; 6 + import "~/components/input/opensubsonic/element.js"; 7 + import "~/components/input/s3/element.js"; 8 8 9 9 /** 10 - * @import {RenderArg} from "@common/element.d.ts" 11 - * @import {InputActions, InputElement} from "@components/input/types.d.ts" 10 + * @import {RenderArg} from "~/common/element.d.ts" 11 + * @import {InputActions, InputElement} from "~/components/input/types.d.ts" 12 12 */ 13 13 14 14 ////////////////////////////////////////////
+6 -6
src/components/orchestrator/media-session/element.js
··· 2 2 BroadcastableDiffuseElement, 3 3 query, 4 4 queryOptional, 5 - } from "@common/element.js"; 5 + } from "~/common/element.js"; 6 6 7 7 /** 8 - * @import {OutputElement} from "@components/output/types.d.ts" 9 - * @import {Artwork} from "@components/processor/artwork/types.d.ts" 10 - * @import ArtworkProcessor from "@components/processor/artwork/element.js" 8 + * @import {OutputElement} from "~/components/output/types.d.ts" 9 + * @import {Artwork} from "~/components/processor/artwork/types.d.ts" 10 + * @import ArtworkProcessor from "~/components/processor/artwork/element.js" 11 11 */ 12 12 13 13 //////////////////////////////////////////// ··· 38 38 39 39 if (!("mediaSession" in navigator)) return; 40 40 41 - /** @type {import("@components/engine/audio/element.js").CLASS} */ 41 + /** @type {import("~/components/engine/audio/element.js").CLASS} */ 42 42 this.audio = query(this, "audio-engine-selector"); 43 43 44 - /** @type {import("@components/engine/queue/element.js").CLASS} */ 44 + /** @type {import("~/components/engine/queue/element.js").CLASS} */ 45 45 this.queue = query(this, "queue-engine-selector"); 46 46 47 47 /** @type {OutputElement | null} */
+15 -13
src/components/orchestrator/output/element.js
··· 1 1 import { ifDefined } from "lit-html/directives/if-defined.js"; 2 - import { DEFAULT_GROUP, DiffuseElement } from "@common/element.js"; 2 + import { DEFAULT_GROUP, DiffuseElement } from "~/common/element.js"; 3 3 4 - import "@components/configurator/output/element.js"; 5 - import "@components/transformer/output/refiner/default/element.js"; 4 + import "~/components/configurator/output/element.js"; 5 + import "~/components/transformer/output/refiner/default/element.js"; 6 6 7 7 /** 8 - * @import {RenderArg} from "@common/element.d.ts" 9 - * @import {OutputElement} from "@components/output/types.d.ts" 10 - * @import {OutputConfiguratorElement} from "@components/configurator/output/types.d.ts" 8 + * @import {RenderArg} from "~/common/element.d.ts" 9 + * @import {OutputElement} from "~/components/output/types.d.ts" 10 + * @import {OutputConfiguratorElement} from "~/components/configurator/output/types.d.ts" 11 11 */ 12 12 13 13 //////////////////////////////////////////// ··· 42 42 newlyActicated.forEach((id) => { 43 43 switch (id) { 44 44 case "do-output__dc-output__local": { 45 - import("@components/output/polymorphic/indexed-db/element.js"); 46 - import("@components/transformer/output/string/json/element.js"); 45 + import("~/components/output/polymorphic/indexed-db/element.js"); 46 + import("~/components/transformer/output/string/json/element.js"); 47 47 break; 48 48 } 49 49 case "do-output__dc-output__atproto": { 50 - import("@components/output/raw/atproto/element.js"); 50 + import("~/components/output/raw/atproto/element.js"); 51 51 import( 52 - "@components/transformer/output/raw/atproto-sync/element.js" 52 + "~/components/transformer/output/raw/atproto-sync/element.js" 53 53 ); 54 54 import( 55 - "@components/transformer/output/refiner/track-uri-passkey/element.js" 55 + "~/components/transformer/output/refiner/track-uri-passkey/element.js" 56 56 ); 57 57 break; 58 58 } 59 59 case "do-output__dc-output__s3": { 60 - import("@components/output/bytes/s3/element.js"); 61 - import("@components/transformer/output/bytes/dasl-sync/element.js"); 60 + import("~/components/output/bytes/s3/element.js"); 61 + import( 62 + "~/components/transformer/output/bytes/dasl-sync/element.js" 63 + ); 62 64 break; 63 65 } 64 66 }
+7 -7
src/components/orchestrator/process-tracks/element.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 2 - import { signal, untracked } from "@common/signal.js"; 3 - import { listen } from "@common/worker.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 + import { signal, untracked } from "~/common/signal.js"; 3 + import { listen } from "~/common/worker.js"; 4 4 5 5 /** 6 - * @import {ProxiedActions} from "@common/worker.d.ts" 7 - * @import {InputElement} from "@components/input/types.d.ts" 8 - * @import {OutputElement} from "@components/output/types.d.ts" 6 + * @import {ProxiedActions} from "~/common/worker.d.ts" 7 + * @import {InputElement} from "~/components/input/types.d.ts" 8 + * @import {OutputElement} from "~/components/output/types.d.ts" 9 9 * 10 10 * @import {Actions, Progress} from "./types.d.ts" 11 11 */ ··· 86 86 /** @type {OutputElement} */ 87 87 const output = query(this, "output-selector"); 88 88 89 - /** @type {import("@components/processor/metadata/element.js").CLASS} */ 89 + /** @type {import("~/components/processor/metadata/element.js").CLASS} */ 90 90 const metadataProcessor = query(this, "metadata-processor-selector"); 91 91 92 92 // Assign to self
+1 -1
src/components/orchestrator/process-tracks/types.d.ts
··· 1 - import type { Track } from "@definitions/types.d.ts"; 1 + import type { Track } from "~/definitions/types.d.ts"; 2 2 3 3 export type Progress = { 4 4 processed: number;
+7 -7
src/components/orchestrator/process-tracks/worker.js
··· 1 1 import deepDiff from "@fry69/deep-diff"; 2 2 3 - import { effect, signal } from "@common/signal.js"; 4 - import { announce, ostiary, rpc, workerProxy } from "@common/worker.js"; 3 + import { effect, signal } from "~/common/signal.js"; 4 + import { announce, ostiary, rpc, workerProxy } from "~/common/worker.js"; 5 5 6 6 /** 7 - * @import {Track} from "@definitions/types.d.ts" 8 - * @import {ActionsWithTunnel, ProxiedActions} from "@common/worker.d.ts" 9 - * @import {InputActions} from "@components/input/types.d.ts" 10 - * @import {Actions as MetadataProcessorActions} from "@components/processor/metadata/types.d.ts" 7 + * @import {Track} from "~/definitions/types.d.ts" 8 + * @import {ActionsWithTunnel, ProxiedActions} from "~/common/worker.d.ts" 9 + * @import {InputActions} from "~/components/input/types.d.ts" 10 + * @import {Actions as MetadataProcessorActions} from "~/components/processor/metadata/types.d.ts" 11 11 * 12 12 * @import {Actions} from "./types.d.ts" 13 13 */ ··· 16 16 // STATE 17 17 //////////////////////////////////////////// 18 18 19 - /** @type {import("@common/signal.d.ts").Signal<{processed: number, total: number}>} */ 19 + /** @type {import("~/common/signal.d.ts").Signal<{processed: number, total: number}>} */ 20 20 const $progress = signal({ processed: 0, total: 0 }, { 21 21 compare: (a, b) => !deepDiff(a, b), 22 22 });
+7 -7
src/components/orchestrator/queue-audio/element.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 2 - import { untracked } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 + import { untracked } from "~/common/signal.js"; 3 3 4 4 /** 5 - * @import {InputElement} from "@components/input/types.d.ts" 6 - * @import {OutputElement} from "@components/output/types.d.ts" 7 - * @import RepeatShuffleEngine from "@components/engine/repeat-shuffle/element.js" 5 + * @import {InputElement} from "~/components/input/types.d.ts" 6 + * @import {OutputElement} from "~/components/output/types.d.ts" 7 + * @import RepeatShuffleEngine from "~/components/engine/repeat-shuffle/element.js" 8 8 */ 9 9 10 10 //////////////////////////////////////////// ··· 35 35 // Super 36 36 super.connectedCallback(); 37 37 38 - /** @type {import("@components/engine/audio/element.js").CLASS} */ 38 + /** @type {import("~/components/engine/audio/element.js").CLASS} */ 39 39 this.audio = query(this, "audio-engine-selector"); 40 40 41 41 /** @type {InputElement} */ ··· 44 44 /** @type {OutputElement} */ 45 45 this.output = query(this, "output-selector"); 46 46 47 - /** @type {import("@components/engine/queue/element.js").CLASS} */ 47 + /** @type {import("~/components/engine/queue/element.js").CLASS} */ 48 48 this.queue = query(this, "queue-engine-selector"); 49 49 50 50 /** @type {RepeatShuffleEngine} */
+10 -10
src/components/orchestrator/scoped-tracks/element.js
··· 2 2 BroadcastableDiffuseElement, 3 3 query, 4 4 queryOptional, 5 - } from "@common/element.js"; 6 - import { batch, computed, signal } from "@common/signal.js"; 7 - import { filterByPlaylist } from "@common/playlist.js"; 5 + } from "~/common/element.js"; 6 + import { batch, computed, signal } from "~/common/signal.js"; 7 + import { filterByPlaylist } from "~/common/playlist.js"; 8 8 9 9 /** 10 - * @import {Track} from "@definitions/types.d.ts" 11 - * @import {InputElement} from "@components/input/types.d.ts" 12 - * @import {OutputElement} from "@components/output/types.d.ts" 10 + * @import {Track} from "~/definitions/types.d.ts" 11 + * @import {InputElement} from "~/components/input/types.d.ts" 12 + * @import {OutputElement} from "~/components/output/types.d.ts" 13 13 */ 14 14 15 15 //////////////////////////////////////////// ··· 25 25 #output = signal(/** @type {OutputElement | null} */ (null)); 26 26 27 27 #scope = signal( 28 - /** @type {import("@components/engine/scope/element.js").CLASS | null} */ (null), 28 + /** @type {import("~/components/engine/scope/element.js").CLASS | null} */ (null), 29 29 ); 30 30 31 31 #search = signal( 32 - /** @type {import("@components/processor/search/element.js").CLASS | null} */ (null), 32 + /** @type {import("~/components/processor/search/element.js").CLASS | null} */ (null), 33 33 ); 34 34 35 35 #selectedPlaylistItems = computed(() => { ··· 113 113 /** @type {OutputElement} */ 114 114 const output = query(this, "output-selector"); 115 115 116 - /** @type {import("@components/processor/search/element.js").CLASS} */ 116 + /** @type {import("~/components/processor/search/element.js").CLASS} */ 117 117 const search = query(this, "search-processor-selector"); 118 118 119 - /** @type {import("@components/engine/scope/element.js").CLASS | null} */ 119 + /** @type {import("~/components/engine/scope/element.js").CLASS | null} */ 120 120 const scope = queryOptional(this, "scope-engine-selector"); 121 121 122 122 // Assign to self
+5 -5
src/components/orchestrator/sources/element.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 2 - import { groupTracksPerScheme } from "@common/utils.js"; 3 - import { signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 + import { groupTracksPerScheme } from "~/common/utils.js"; 3 + import { signal } from "~/common/signal.js"; 4 4 5 5 /** 6 - * @import {InputElement, Source} from "@components/input/types.d.ts" 7 - * @import {OutputElement} from "@components/output/types.d.ts" 6 + * @import {InputElement, Source} from "~/components/input/types.d.ts" 7 + * @import {OutputElement} from "~/components/output/types.d.ts" 8 8 */ 9 9 10 10 ////////////////////////////////////////////
+3 -3
src/components/output/bytes/s3/element.js
··· 1 1 import * as IDB from "idb-keyval"; 2 2 3 - import { computed, signal } from "@common/signal.js"; 3 + import { computed, signal } from "~/common/signal.js"; 4 4 import { BroadcastedOutputElement, outputManager } from "../../common.js"; 5 5 6 6 const STORAGE_PREFIX = "diffuse/output/bytes/s3"; 7 7 8 8 /** 9 - * @import {ProxiedActions} from "@common/worker.d.ts" 9 + * @import {ProxiedActions} from "~/common/worker.d.ts" 10 10 * @import {OutputElement, OutputManager} from "../../types.d.ts" 11 - * @import {Bucket} from "@components/input/s3/types.d.ts" 11 + * @import {Bucket} from "~/components/input/s3/types.d.ts" 12 12 * @import {S3OutputElement, S3OutputWorkerActions} from "./types.d.ts" 13 13 */ 14 14
+2 -2
src/components/output/bytes/s3/types.d.ts
··· 1 - import type { SignalReader } from "@common/signal.d.ts"; 1 + import type { SignalReader } from "~/common/signal.d.ts"; 2 2 import type { OutputElement } from "../../types.d.ts"; 3 - import type { Bucket } from "@components/input/s3/types.d.ts"; 3 + import type { Bucket } from "~/components/input/s3/types.d.ts"; 4 4 5 5 export type S3OutputElement = 6 6 & OutputElement<Uint8Array | undefined>
+8 -4
src/components/output/bytes/s3/worker.js
··· 1 - import { createClient } from "@components/input/s3/common.js"; 2 - import { ostiary, rpc } from "@common/worker.js"; 1 + import { createClient } from "~/components/input/s3/common.js"; 2 + import { ostiary, rpc } from "~/common/worker.js"; 3 3 4 4 import { OBJECT_PREFIX } from "./constants.js"; 5 5 ··· 17 17 export async function get({ bucket, name }) { 18 18 const client = createClient(bucket); 19 19 const path = bucket.path.replace(/(^\/+|\/+$)/g, ""); 20 - const key = path ? `${path}/${OBJECT_PREFIX}${name}` : `${OBJECT_PREFIX}${name}`; 20 + const key = path 21 + ? `${path}/${OBJECT_PREFIX}${name}` 22 + : `${OBJECT_PREFIX}${name}`; 21 23 22 24 try { 23 25 const response = await client.getObject(key); ··· 34 36 export async function put({ bucket, data, name }) { 35 37 const client = createClient(bucket); 36 38 const path = bucket.path.replace(/(^\/+|\/+$)/g, ""); 37 - const key = path ? `${path}/${OBJECT_PREFIX}${name}` : `${OBJECT_PREFIX}${name}`; 39 + const key = path 40 + ? `${path}/${OBJECT_PREFIX}${name}` 41 + : `${OBJECT_PREFIX}${name}`; 38 42 39 43 await client.putObject(key, data); 40 44 }
+5 -5
src/components/output/common.js
··· 1 - import { BroadcastableDiffuseElement } from "@common/element.js"; 2 - import { batch, computed, effect, signal, untracked } from "@common/signal.js"; 3 - import { strictEquality } from "@common/compare.js"; 1 + import { BroadcastableDiffuseElement } from "~/common/element.js"; 2 + import { batch, computed, effect, signal, untracked } from "~/common/signal.js"; 3 + import { strictEquality } from "~/common/compare.js"; 4 4 5 5 /** 6 - * @import {Facet, PlaylistItem, Theme, Track} from "@definitions/types.d.ts" 7 - * @import {SignalReader, SignalWriter} from "@common/signal.d.ts"; 6 + * @import {Facet, PlaylistItem, Theme, Track} from "~/definitions/types.d.ts" 7 + * @import {SignalReader, SignalWriter} from "~/common/signal.d.ts"; 8 8 * @import {OutputManager, OutputManagerProperties} from "./types.d.ts" 9 9 */ 10 10
+7 -3
src/components/output/raw/atproto/element.js
··· 1 1 import { Client, ClientResponseError, ok } from "@atcute/client"; 2 2 import * as TID from "@atcute/tid"; 3 3 4 - import { computed, signal } from "@common/signal.js"; 4 + import { computed, signal } from "~/common/signal.js"; 5 5 import { BroadcastedOutputElement, outputManager } from "../../common.js"; 6 6 7 7 import { ··· 14 14 } from "./oauth.js"; 15 15 16 16 /** 17 - * @import {PlaylistItemBundle, TrackBundle} from "@definitions/types.d.ts" 17 + * @import {PlaylistItemBundle, TrackBundle} from "~/definitions/types.d.ts" 18 18 * @import {OutputManager} from "../../types.d.ts" 19 19 * @import {ATProtoOutputElement} from "./types.d.ts" 20 20 */ ··· 331 331 * @param {Array<{ id: string }>} data 332 332 * @param {{ deleteBatchSize?: number, upsertBatchSize?: number }} [options] 333 333 */ 334 - async #putRecords(collection, data, { deleteBatchSize = 100, upsertBatchSize = deleteBatchSize } = {}) { 334 + async #putRecords( 335 + collection, 336 + data, 337 + { deleteBatchSize = 100, upsertBatchSize = deleteBatchSize } = {}, 338 + ) { 335 339 const rpc = this.#rpc; 336 340 if (!rpc || !this.#did.value) return; 337 341
+1 -1
src/components/output/raw/atproto/types.d.ts
··· 1 - import type { SignalReader } from "@common/signal.d.ts"; 1 + import type { SignalReader } from "~/common/signal.d.ts"; 2 2 import type { OutputElement } from "../../types.d.ts"; 3 3 4 4 export type ATProtoOutputElement =
+3 -3
src/components/output/types.d.ts
··· 1 - import type { Signal, SignalReader } from "@common/signal.d.ts"; 2 - import type { DiffuseElement } from "@common/element.js"; 1 + import type { Signal, SignalReader } from "~/common/signal.d.ts"; 2 + import type { DiffuseElement } from "~/common/element.js"; 3 3 import type { 4 4 Facet, 5 5 PlaylistItem, 6 6 Theme, 7 7 Track, 8 - } from "@definitions/types.d.ts"; 8 + } from "~/definitions/types.d.ts"; 9 9 10 10 export type OutputElement<Encoding = null> = 11 11 & DiffuseElement
+1 -1
src/components/processor/artwork/constants.js
··· 1 - export const IDB_PREFIX = "@components/processor/artwork"; 1 + export const IDB_PREFIX = "~/components/processor/artwork"; 2 2 export const IDB_ARTWORK_PREFIX = `${IDB_PREFIX}/cache`;
+2 -2
src/components/processor/artwork/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 3 3 /** 4 - * @import {ProxiedActions} from "@common/worker.d.ts" 4 + * @import {ProxiedActions} from "~/common/worker.d.ts" 5 5 * @import {Actions} from "./types.d.ts" 6 6 */ 7 7
+1 -1
src/components/processor/artwork/types.d.ts
··· 1 - import type { TrackTags } from "@definitions/types.d.ts"; 1 + import type { TrackTags } from "~/definitions/types.d.ts"; 2 2 3 3 export type Actions = { 4 4 artwork(request: ArtworkRequest): Promise<Artwork[]>;
+1 -1
src/components/processor/artwork/worker.js
··· 2 2 3 3 import { IDB_ARTWORK_PREFIX } from "./constants.js"; 4 4 import { musicMetadataTags } from "../metadata/common.js"; 5 - import { ostiary, rpc } from "@common/worker.js"; 5 + import { ostiary, rpc } from "~/common/worker.js"; 6 6 7 7 /** 8 8 * @import {IPicture} from "music-metadata"
+2 -2
src/components/processor/metadata/common.js
··· 3 3 import { HttpClient } from "@tokenizer/http"; 4 4 import { tokenizer as rangeTokenizer } from "@tokenizer/range"; 5 5 6 - import { removeUndefinedValuesFromRecord } from "@common/utils.js"; 6 + import { removeUndefinedValuesFromRecord } from "~/common/utils.js"; 7 7 8 8 /** 9 - * @import { TrackStats, TrackTags } from "@definitions/types.d.ts"; 9 + * @import { TrackStats, TrackTags } from "~/definitions/types.d.ts"; 10 10 * @import { Extraction, Urls } from "./types.d.ts"; 11 11 */ 12 12
+2 -2
src/components/processor/metadata/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 3 3 /** 4 - * @import {ProxiedActions} from "@common/worker.d.ts" 4 + * @import {ProxiedActions} from "~/common/worker.d.ts" 5 5 * @import {Actions} from "./types.d.ts" 6 6 */ 7 7
+1 -1
src/components/processor/metadata/types.d.ts
··· 1 1 import type { IPicture } from "music-metadata"; 2 - import type { TrackStats, TrackTags } from "@definitions/types.d.ts"; 2 + import type { TrackStats, TrackTags } from "~/definitions/types.d.ts"; 3 3 4 4 export type Actions = { 5 5 supply: (
+1 -1
src/components/processor/metadata/worker.js
··· 1 - import { ostiary, rpc } from "@common/worker.js"; 1 + import { ostiary, rpc } from "~/common/worker.js"; 2 2 import { musicMetadataTags } from "./common.js"; 3 3 4 4 /**
+4 -4
src/components/processor/search/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 3 - import { listen } from "@common/worker.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 + import { listen } from "~/common/worker.js"; 4 4 5 5 /** 6 - * @import {ProxiedActions} from "@common/worker.d.ts"; 6 + * @import {ProxiedActions} from "~/common/worker.d.ts"; 7 7 * @import {Actions, State} from "./types.d.ts" 8 8 */ 9 9
+2 -2
src/components/processor/search/types.d.ts
··· 1 1 import type { Orama, SearchParams } from "@orama/orama"; 2 2 3 - import type { SignalReader } from "@common/signal.d.ts"; 4 - import type { Track } from "@definitions/types.d.ts"; 3 + import type { SignalReader } from "~/common/signal.d.ts"; 4 + import type { Track } from "~/definitions/types.d.ts"; 5 5 import type { SCHEMA } from "./constants.js"; 6 6 7 7 export type Actions = {
+3 -3
src/components/processor/search/worker.js
··· 3 3 // import { pluginQPS } from "@orama/plugin-qps"; 4 4 5 5 import { SCHEMA } from "./constants.js"; 6 - import { announce, ostiary, rpc } from "@common/worker.js"; 7 - import { effect, signal } from "@common/signal.js"; 6 + import { announce, ostiary, rpc } from "~/common/worker.js"; 7 + import { effect, signal } from "~/common/signal.js"; 8 8 9 9 /** 10 10 * @import {SearchParams} from "@orama/orama"; 11 11 * 12 - * @import {Track} from "@definitions/types.d.ts" 12 + * @import {Track} from "~/definitions/types.d.ts" 13 13 * @import {Actions, Schema} from "./types.d.ts" 14 14 */ 15 15
+4 -3
src/components/transformer/output/base.js
··· 1 - import { BroadcastableDiffuseElement, query } from "@common/element.js"; 2 - import { computed, signal } from "@common/signal.js"; 1 + import { BroadcastableDiffuseElement, query } from "~/common/element.js"; 2 + import { computed, signal } from "~/common/signal.js"; 3 3 4 4 /** 5 5 * @import { OutputElement, OutputManagerDeputy } from "../../output/types.d.ts" ··· 67 67 return this.output.signal()?.playlistItems?.collection(); 68 68 }), 69 69 loaded: () => { 70 - return this.output.signal()?.playlistItems?.loaded() ?? Promise.resolve(); 70 + return this.output.signal()?.playlistItems?.loaded() ?? 71 + Promise.resolve(); 71 72 }, 72 73 reload: () => { 73 74 return this.output.signal()?.playlistItems?.reload() ??
+6 -6
src/components/transformer/output/bytes/automerge/element.js
··· 2 2 import { ifDefined } from "lit-html/directives/if-defined.js"; 3 3 import { isUint8Array } from "iso-base/utils"; 4 4 5 - import "@components/output/polymorphic/indexed-db/element.js"; 5 + import "~/components/output/polymorphic/indexed-db/element.js"; 6 6 7 - import { computed, signal } from "@common/signal.js"; 7 + import { computed, signal } from "~/common/signal.js"; 8 8 import { 9 9 recursivelyCloneRecords, 10 10 removeUndefinedValuesFromRecord, 11 - } from "@common/utils.js"; 11 + } from "~/common/utils.js"; 12 12 import { OutputTransformer } from "../../base.js"; 13 13 import { 14 14 INITIAL_FACETS_DOCUMENT, ··· 18 18 } from "./constants.js"; 19 19 20 20 /** 21 - * @import { RenderArg } from "@common/element.d.ts" 22 - * @import { SignalReader } from "@common/signal.d.ts"; 23 - * @import { OutputElement } from "@components/output/types.d.ts"; 21 + * @import { RenderArg } from "~/common/element.d.ts" 22 + * @import { SignalReader } from "~/common/signal.d.ts"; 23 + * @import { OutputElement } from "~/components/output/types.d.ts"; 24 24 */ 25 25 26 26 /**
+1 -1
src/components/transformer/output/bytes/automerge/types.d.ts
··· 3 3 PlaylistItem, 4 4 Theme, 5 5 Track, 6 - } from "@definitions/types.d.ts"; 6 + } from "~/definitions/types.d.ts"; 7 7 8 8 export type FacetsDocument = { collection: Facet[] }; 9 9 export type PlaylistItemsDocument = { collection: PlaylistItem[] };
+9 -9
src/components/transformer/output/bytes/dasl-sync/element.js
··· 2 2 import { ifDefined } from "lit-html/directives/if-defined.js"; 3 3 import deepDiff from "@fry69/deep-diff"; 4 4 5 - import "@components/output/polymorphic/indexed-db/element.js"; 5 + import "~/components/output/polymorphic/indexed-db/element.js"; 6 6 7 - import * as CID from "@common/cid.js"; 8 - import { diff, strictEquality } from "@common/compare.js"; 9 - import { computed, signal } from "@common/signal.js"; 10 - import { compareTimestamps } from "@common/utils.js"; 7 + import * as CID from "~/common/cid.js"; 8 + import { diff, strictEquality } from "~/common/compare.js"; 9 + import { computed, signal } from "~/common/signal.js"; 10 + import { compareTimestamps } from "~/common/utils.js"; 11 11 import { OutputTransformer } from "../../base.js"; 12 - import { promiseLoadedState } from "@components/output/common.js"; 12 + import { promiseLoadedState } from "~/components/output/common.js"; 13 13 14 14 /** 15 - * @import { SignalReader } from "@common/signal.d.ts"; 16 - * @import { RenderArg } from "@common/element.d.ts" 17 - * @import { OutputElement } from "@components/output/types.d.ts" 15 + * @import { SignalReader } from "~/common/signal.d.ts"; 16 + * @import { RenderArg } from "~/common/element.d.ts" 17 + * @import { OutputElement } from "~/components/output/types.d.ts" 18 18 * 19 19 * @import { Container } from "./types.d.ts" 20 20 */
+3 -3
src/components/transformer/output/bytes/json/element.js
··· 1 - import { computed } from "@common/signal.js"; 1 + import { computed } from "~/common/signal.js"; 2 2 import { OutputTransformer } from "../../base.js"; 3 3 4 4 /** 5 - * @import { OutputManagerDeputy } from "@components/output/types.d.ts" 6 - * @import { Facet, PlaylistItem, Theme, Track } from "@definitions/types.d.ts" 5 + * @import { OutputManagerDeputy } from "~/components/output/types.d.ts" 6 + * @import { Facet, PlaylistItem, Theme, Track } from "~/definitions/types.d.ts" 7 7 */ 8 8 9 9 /**
+5 -5
src/components/transformer/output/raw/atproto-sync/element.js
··· 1 1 import { ifDefined } from "lit-html/directives/if-defined.js"; 2 2 3 - import "@components/output/polymorphic/indexed-db/element.js"; 3 + import "~/components/output/polymorphic/indexed-db/element.js"; 4 4 5 - import { computed, signal } from "@common/signal.js"; 5 + import { computed, signal } from "~/common/signal.js"; 6 6 import { OutputTransformer } from "../../base.js"; 7 7 import { promiseLoadedState } from "@toko/diffuse/components/output/common.js"; 8 8 9 9 /** 10 - * @import { RenderArg } from "@common/element.d.ts" 11 - * @import { OutputElement } from "@components/output/types.d.ts" 12 - * @import { ATProtoOutputElement } from "@components/output/raw/atproto/types.d.ts" 10 + * @import { RenderArg } from "~/common/element.d.ts" 11 + * @import { OutputElement } from "~/components/output/types.d.ts" 12 + * @import { ATProtoOutputElement } from "~/components/output/raw/atproto/types.d.ts" 13 13 */ 14 14 15 15 const COLLECTIONS = /** @type {const} */ ([
+1 -1
src/components/transformer/output/refiner/default/element.js
··· 1 - import { computed } from "@common/signal.js"; 1 + import { computed } from "~/common/signal.js"; 2 2 import { OutputTransformer } from "../../base.js"; 3 3 4 4 /**
+2 -2
src/components/transformer/output/refiner/track-uri-passkey/element.js
··· 1 - import { computed, signal } from "@common/signal.js"; 1 + import { computed, signal } from "~/common/signal.js"; 2 2 import { OutputTransformer } from "../../base.js"; 3 3 4 4 import { ··· 14 14 } from "./passkey.js"; 15 15 16 16 /** 17 - * @import { Track } from "@definitions/types.d.ts" 17 + * @import { Track } from "~/definitions/types.d.ts" 18 18 */ 19 19 20 20 /**
+2 -2
src/components/transformer/output/string/json/element.js
··· 1 - import { computed } from "@common/signal.js"; 1 + import { computed } from "~/common/signal.js"; 2 2 import { OutputTransformer } from "../../base.js"; 3 3 4 4 /** 5 - * @import { OutputManagerDeputy } from "@components/output/types.d.ts" 5 + * @import { OutputManagerDeputy } from "~/components/output/types.d.ts" 6 6 */ 7 7 8 8 /**
+1 -1
src/facets/examples/generate-playlist.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 1 + import foundation from "~/common/facets/foundation.js"; 2 2 3 3 const queue = foundation.engine.queue(); 4 4 const output = foundation.orchestrator.output();
+2 -2
src/facets/examples/now-playing.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import { computed, effect } from "@diffuse/common/signal.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import { computed, effect } from "~/common/signal.js"; 3 3 4 4 foundation.features.processInputs(); 5 5 foundation.features.fillQueueAutomatically();
+7 -7
src/facets/index.js
··· 11 11 12 12 import * as TID from "@atcute/tid"; 13 13 14 - import * as CID from "@common/cid.js"; 15 - import foundation from "@common/facets/foundation.js"; 16 - import { effect, signal } from "@common/signal.js"; 17 - import { facetFromURI } from "@common/facets/utils.js"; 18 - import { nothing } from "@common/element.js"; 19 - import { loadURI } from "@common/loader.js"; 14 + import * as CID from "~/common/cid.js"; 15 + import foundation from "~/common/facets/foundation.js"; 16 + import { effect, signal } from "~/common/signal.js"; 17 + import { facetFromURI } from "~/common/facets/utils.js"; 18 + import { nothing } from "~/common/element.js"; 19 + import { loadURI } from "~/common/loader.js"; 20 20 21 21 /** 22 - * @import {Facet} from "@definitions/types.d.ts" 22 + * @import {Facet} from "~/definitions/types.d.ts" 23 23 */ 24 24 25 25 ////////////////////////////////////////////
+2 -2
src/facets/l/index.js
··· 1 - import foundation from "@common/facets/foundation.js"; 2 - import { createLoader } from "@common/loader.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import { createLoader } from "~/common/loader.js"; 3 3 4 4 createLoader({ 5 5 $type: "sh.diffuse.output.facet",
+1 -8
src/facets/l/index.vto
··· 22 22 <script type="importmap"> 23 23 { 24 24 "imports": { 25 - "@diffuse/foundation": "./common/facets/foundation.js", 26 - 27 - "@diffuse/common/": "./common/", 28 - "@diffuse/components/": "./components/", 29 - "@diffuse/definitions/": "./definitions/", 30 - "@diffuse/styles/": "./styles/", 31 - "@diffuse/themes/": "./themes/", 32 - "@diffuse/vendor/": "./vendor/", 25 + "~/": "./", 33 26 34 27 "@atcute/tid": "./vendor/@atcute/tid/index.js", 35 28 "@awesome.me/webawesome/dist/": "./vendor/@awesome.me/webawesome/",
+3 -3
src/facets/tools/auto-queue.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import { effect } from "@diffuse/common/signal.js"; 3 - import * as Playlist from "@diffuse/common/playlist.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import { effect } from "~/common/signal.js"; 3 + import * as Playlist from "~/common/playlist.js"; 4 4 5 5 const ACTIVE_CLASS = "button--active"; 6 6
+4 -2
src/facets/tools/v3-import.inline.js
··· 1 1 import * as TID from "@atcute/tid"; 2 - import foundation from "@diffuse/foundation"; 2 + import foundation from "~/common/facets/foundation.js"; 3 3 4 4 /** 5 - * @import {PlaylistItem, Track} from "@diffuse/definitions/types.d.ts" 5 + * @import {PlaylistItem, Track} from "~/definitions/types.d.ts" 6 6 */ 7 7 8 8 // Setup ··· 103 103 104 104 try { 105 105 const now = new Date().toISOString(); 106 + 107 + /** @type {any[]} */ 106 108 const existing = output.playlistItems.collection() ?? []; 107 109 const existingPlaylistNames = new Set(existing.map((p) => p.playlist)); 108 110
+7 -7
src/index.js
··· 1 - import { GROUP } from "@common/facets/foundation.js"; 1 + import { GROUP } from "~/common/facets/foundation.js"; 2 2 3 - import { effect } from "@common/signal.js"; 3 + import { effect } from "~/common/signal.js"; 4 4 5 - import InputConfigurator from "@components/configurator/input/element.js"; 6 - import MetadataProcessor from "@components/processor/metadata/element.js"; 7 - import OutputOrchestrator from "@components/orchestrator/output/element.js"; 8 - import ProcessTracksOrchestrator from "@components/orchestrator/process-tracks/element.js"; 9 - import S3Input from "@components/input/s3/element.js"; 5 + import InputConfigurator from "~/components/configurator/input/element.js"; 6 + import MetadataProcessor from "~/components/processor/metadata/element.js"; 7 + import OutputOrchestrator from "~/components/orchestrator/output/element.js"; 8 + import ProcessTracksOrchestrator from "~/components/orchestrator/process-tracks/element.js"; 9 + import S3Input from "~/components/input/s3/element.js"; 10 10 11 11 // Add components to DOM 12 12 const s3 = new S3Input();
+1 -1
src/testing/index.vto
··· 10 10 <script type="importmap"> 11 11 { 12 12 "imports": { 13 - "@components/": "./components/", 13 + "~/components/": "./components/", 14 14 "@testing/": "./testing/" 15 15 } 16 16 }
+2 -2
src/testing/output.js
··· 1 - import Output from "@components/configurator/output/element.js"; 2 - import { effect } from "@common/signal.js"; 1 + import Output from "~/components/configurator/output/element.js"; 2 + import { effect } from "~/common/signal.js"; 3 3 4 4 const output = new Output(); 5 5
+1 -1
src/testing/sample/tracks.js
··· 1 1 /** 2 - * @import { Track } from "@definitions/types.d.ts"; 2 + * @import { Track } from "~/definitions/types.d.ts"; 3 3 */ 4 4 5 5 /**
+11 -11
src/themes/blur/artwork-controller/element.js
··· 9 9 DiffuseElement, 10 10 query, 11 11 whenElementsDefined, 12 - } from "@common/element.js"; 12 + } from "~/common/element.js"; 13 13 14 - import { trackArtworkCacheId } from "@common/utils.js"; 15 - import { computed, signal, untracked } from "@common/signal.js"; 14 + import { trackArtworkCacheId } from "~/common/utils.js"; 15 + import { computed, signal, untracked } from "~/common/signal.js"; 16 16 17 17 /** 18 - * @import {RenderArg} from "@common/element.d.ts" 18 + * @import {RenderArg} from "~/common/element.d.ts" 19 19 * 20 - * @import {InputElement} from "@components/input/types.d.ts" 21 - * @import {OutputElement} from "@components/output/types.d.ts" 22 - * @import {Artwork} from "@components/processor/artwork/types.d.ts" 23 - * @import AudioEngine from "@components/engine/audio/element.js" 24 - * @import QueueEngine from "@components/engine/queue/element.js" 25 - * @import ArtworkProcessor from "@components/processor/artwork/element.js" 26 - * @import FavouritesOrchestrator from "@components/orchestrator/favourites/element.js" 20 + * @import {InputElement} from "~/components/input/types.d.ts" 21 + * @import {OutputElement} from "~/components/output/types.d.ts" 22 + * @import {Artwork} from "~/components/processor/artwork/types.d.ts" 23 + * @import AudioEngine from "~/components/engine/audio/element.js" 24 + * @import QueueEngine from "~/components/engine/queue/element.js" 25 + * @import ArtworkProcessor from "~/components/processor/artwork/element.js" 26 + * @import FavouritesOrchestrator from "~/components/orchestrator/favourites/element.js" 27 27 */ 28 28 29 29 class ArtworkController extends DiffuseElement {
+2 -2
src/themes/blur/artwork-controller/facet.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import ArtworkController from "@diffuse/themes/blur/artwork-controller/element.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import ArtworkController from "~/themes/blur/artwork-controller/element.js"; 3 3 4 4 // Setup the prerequisite elements 5 5 foundation.features.playAudioFromQueue();
+6 -6
src/themes/index.js
··· 9 9 10 10 import * as TID from "@atcute/tid"; 11 11 12 - import * as CID from "@common/cid.js"; 13 - import foundation from "@common/facets/foundation.js"; 14 - import { effect, signal } from "@common/signal.js"; 15 - import { themeFromURI } from "@common/themes/utils.js"; 16 - import { loadURI } from "@common/loader.js"; 12 + import * as CID from "~/common/cid.js"; 13 + import foundation from "~/common/facets/foundation.js"; 14 + import { effect, signal } from "~/common/signal.js"; 15 + import { themeFromURI } from "~/common/themes/utils.js"; 16 + import { loadURI } from "~/common/loader.js"; 17 17 18 18 /** 19 - * @import {Theme} from "@definitions/types.d.ts" 19 + * @import {Theme} from "~/definitions/types.d.ts" 20 20 */ 21 21 22 22 ////////////////////////////////////////////
+2 -2
src/themes/l/index.js
··· 1 - import foundation from "@common/facets/foundation.js"; 2 - import { createLoader } from "@common/loader.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import { createLoader } from "~/common/loader.js"; 3 3 4 4 createLoader({ 5 5 $type: "sh.diffuse.output.theme",
+4 -4
src/themes/l/index.vto
··· 23 23 <script type="importmap"> 24 24 { 25 25 "imports": { 26 - "@diffuse/common/": "./common/", 27 - "@diffuse/components/": "./components/", 28 - "@diffuse/foundation": "./common/facets/foundation.js", 26 + "~/": "./", 29 27 30 - "@atcute/tid": "./vendor/@atcute/tid/index.js" 28 + "@atcute/tid": "./vendor/@atcute/tid/index.js", 29 + "@awesome.me/webawesome/dist/": "./vendor/@awesome.me/webawesome/", 30 + "@awesome.me/webawesome/dist-cdn/": "./vendor/@awesome.me/webawesome/" 31 31 } 32 32 } 33 33 </script>
+15 -11
src/themes/webamp/browser/element.js
··· 1 - import { DiffuseElement, query, whenElementsDefined } from "@common/element.js"; 2 - import { computed, signal, untracked } from "@common/signal.js"; 3 - import * as Playlist from "@common/playlist.js"; 1 + import { 2 + DiffuseElement, 3 + query, 4 + whenElementsDefined, 5 + } from "~/common/element.js"; 6 + import { computed, signal, untracked } from "~/common/signal.js"; 7 + import * as Playlist from "~/common/playlist.js"; 4 8 5 9 /** 6 - * @import {RenderArg} from "@common/element.d.ts" 7 - * @import {SignalReader} from "@common/signal.d.ts"; 8 - * @import {Track} from "@definitions/types.d.ts" 9 - * @import {OutputElement} from "@components/output/types.d.ts" 10 + * @import {RenderArg} from "~/common/element.d.ts" 11 + * @import {SignalReader} from "~/common/signal.d.ts"; 12 + * @import {Track} from "~/definitions/types.d.ts" 13 + * @import {OutputElement} from "~/components/output/types.d.ts" 10 14 */ 11 15 12 16 const ROW_HEIGHT = 14; ··· 29 33 ); 30 34 31 35 $queue = signal( 32 - /** @type {import("@components/engine/queue/element.js").CLASS | undefined} */ (undefined), 36 + /** @type {import("~/components/engine/queue/element.js").CLASS | undefined} */ (undefined), 33 37 ); 34 38 35 39 $scope = signal( 36 - /** @type {import("@components/engine/scope/element.js").CLASS | undefined} */ (undefined), 40 + /** @type {import("~/components/engine/scope/element.js").CLASS | undefined} */ (undefined), 37 41 ); 38 42 39 43 $highlightedTrack = signal(/** @type {string | null} */ (null)); ··· 83 87 /** @type {DiffuseElement & { tracks: SignalReader<Track[]> }} */ 84 88 const provider = query(this, "tracks-selector"); 85 89 86 - /** @type {import("@components/engine/queue/element.js").CLASS} */ 90 + /** @type {import("~/components/engine/queue/element.js").CLASS} */ 87 91 const queue = query(this, "queue-engine-selector"); 88 92 89 - /** @type {import("@components/engine/scope/element.js").CLASS} */ 93 + /** @type {import("~/components/engine/scope/element.js").CLASS} */ 90 94 const scope = query(this, "scope-engine-selector"); 91 95 92 96 // Wait for the above dependencies to be defined, then render again.
+2 -2
src/themes/webamp/browser/facet.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import BrowserElement from "@diffuse/themes/webamp/browser/element.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import BrowserElement from "~/themes/webamp/browser/element.js"; 3 3 4 4 foundation.features.processInputs(); 5 5 foundation.features.searchThroughCollection();
+18 -18
src/themes/webamp/configurators/input/element.js
··· 5 5 nothing, 6 6 query, 7 7 queryOptional, 8 - } from "@common/element.js"; 9 - import { signal } from "@common/signal.js"; 8 + } from "~/common/element.js"; 9 + import { signal } from "~/common/signal.js"; 10 10 11 - import { buildURI as buildOpenSubsonicURI } from "@components/input/opensubsonic/common.js"; 12 - import { buildURI as buildS3URI } from "@components/input/s3/common.js"; 11 + import { buildURI as buildOpenSubsonicURI } from "~/components/input/opensubsonic/common.js"; 12 + import { buildURI as buildS3URI } from "~/components/input/s3/common.js"; 13 13 14 - import { SCHEME as HTTPS_SCHEME } from "@components/input/https/constants.js"; 15 - import { SCHEME as LOCAL_SCHEME } from "@components/input/local/constants.js"; 16 - import { SCHEME as OPENSUBSONIC_SCHEME } from "@components/input/opensubsonic/constants.js"; 17 - import { SCHEME as S3_SCHEME } from "@components/input/s3/constants.js"; 14 + import { SCHEME as HTTPS_SCHEME } from "~/components/input/https/constants.js"; 15 + import { SCHEME as LOCAL_SCHEME } from "~/components/input/local/constants.js"; 16 + import { SCHEME as OPENSUBSONIC_SCHEME } from "~/components/input/opensubsonic/constants.js"; 17 + import { SCHEME as S3_SCHEME } from "~/components/input/s3/constants.js"; 18 18 19 19 import { highlightTableEntry } from "../../common/ui.js"; 20 20 21 21 /** 22 - * @import {RenderArg} from "@common/element.d.ts" 23 - * @import {Track} from "@definitions/types.d.ts" 24 - * @import {InputElement} from "@components/input/types.d.ts" 25 - * @import {OutputElement} from "@components/output/types.d.ts" 22 + * @import {RenderArg} from "~/common/element.d.ts" 23 + * @import {Track} from "~/definitions/types.d.ts" 24 + * @import {InputElement} from "~/components/input/types.d.ts" 25 + * @import {OutputElement} from "~/components/output/types.d.ts" 26 26 * 27 - * @import {Server as OpenSubsonicServer} from "@components/input/opensubsonic/types.d.ts" 28 - * @import {Bucket as S3Bucket} from "@components/input/s3/types.d.ts" 27 + * @import {Server as OpenSubsonicServer} from "~/components/input/opensubsonic/types.d.ts" 28 + * @import {Bucket as S3Bucket} from "~/components/input/s3/types.d.ts" 29 29 */ 30 30 31 31 class InputConfig extends DiffuseElement { ··· 45 45 ); 46 46 47 47 $sourcesOrchestrator = signal( 48 - /** @type {import("@components/orchestrator/sources/element.js").CLASS | undefined} */ (undefined), 48 + /** @type {import("~/components/orchestrator/sources/element.js").CLASS | undefined} */ (undefined), 49 49 ); 50 50 51 51 $processTracksOrchestrator = signal( 52 - /** @type {import("@components/orchestrator/process-tracks/element.js").CLASS | undefined} */ (undefined), 52 + /** @type {import("~/components/orchestrator/process-tracks/element.js").CLASS | undefined} */ (undefined), 53 53 ); 54 54 55 55 $tab = signal("overview"); ··· 68 68 /** @type {OutputElement} */ 69 69 const output = query(this, "output-selector"); 70 70 71 - /** @type {import("@components/orchestrator/sources/element.js").CLASS} */ 71 + /** @type {import("~/components/orchestrator/sources/element.js").CLASS} */ 72 72 const sourcesOrchestrator = query(this, "sources-orchestrator-selector"); 73 73 74 - /** @type {import("@components/orchestrator/process-tracks/element.js").CLASS | null} */ 74 + /** @type {import("~/components/orchestrator/process-tracks/element.js").CLASS | null} */ 75 75 const processTracksOrchestrator = queryOptional( 76 76 this, 77 77 "process-tracks-orchestrator-selector",
+2 -2
src/themes/webamp/configurators/input/facet.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import InputConfigElement from "@diffuse/themes/webamp/configurators/input/element.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import InputConfigElement from "~/themes/webamp/configurators/input/element.js"; 3 3 4 4 const inp = foundation.orchestrator.input(); 5 5 const out = foundation.orchestrator.output();
+12 -12
src/themes/webamp/configurators/output/element.js
··· 1 - import { DiffuseElement, nothing, query } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 1 + import { DiffuseElement, nothing, query } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 3 4 - import { NAME as ATPROTO_NAME } from "@components/output/raw/atproto/element.js"; 5 - import { NAME as S3_NAME } from "@components/output/bytes/s3/element.js"; 4 + import { NAME as ATPROTO_NAME } from "~/components/output/raw/atproto/element.js"; 5 + import { NAME as S3_NAME } from "~/components/output/bytes/s3/element.js"; 6 6 7 - import { NAME as PASSKEY_NAME } from "@components/transformer/output/refiner/track-uri-passkey/element.js"; 7 + import { NAME as PASSKEY_NAME } from "~/components/transformer/output/refiner/track-uri-passkey/element.js"; 8 8 9 9 /** 10 - * @import {ATProtoOutputElement} from "@components/output/raw/atproto/types.d.ts" 10 + * @import {ATProtoOutputElement} from "~/components/output/raw/atproto/types.d.ts" 11 11 * 12 - * @import {Bucket as S3Bucket} from "@components/input/s3/types.d.ts" 13 - * @import {S3OutputElement} from "@components/output/bytes/s3/types.d.ts" 12 + * @import {Bucket as S3Bucket} from "~/components/input/s3/types.d.ts" 13 + * @import {S3OutputElement} from "~/components/output/bytes/s3/types.d.ts" 14 14 * 15 - * @import {OutputElement} from "@components/output/types.d.ts" 16 - * @import {OutputConfiguratorElement} from "@components/configurator/output/types.d.ts" 17 - * @import TrackUriPasskeyTransformer from "@components/transformer/output/refiner/track-uri-passkey/element.js"; 15 + * @import {OutputElement} from "~/components/output/types.d.ts" 16 + * @import {OutputConfiguratorElement} from "~/components/configurator/output/types.d.ts" 17 + * @import TrackUriPasskeyTransformer from "~/components/transformer/output/refiner/track-uri-passkey/element.js"; 18 18 * 19 - * @import {RenderArg} from "@common/element.d.ts" 19 + * @import {RenderArg} from "~/common/element.d.ts" 20 20 */ 21 21 22 22 /**
+2 -2
src/themes/webamp/configurators/output/facet.inline.js
··· 1 - import foundation from "@diffuse/foundation"; 2 - import OutputConfigElement from "@diffuse/themes/webamp/configurators/output/element.js"; 1 + import foundation from "~/common/facets/foundation.js"; 2 + import OutputConfigElement from "~/themes/webamp/configurators/output/element.js"; 3 3 4 4 const out = foundation.orchestrator.output(); 5 5
+16 -16
src/themes/webamp/index.js
··· 1 - import "@components/engine/scope/element.js"; 2 - import "@components/input/opensubsonic/element.js"; 3 - import "@components/input/s3/element.js"; 4 - import "@components/orchestrator/input/element.js"; 5 - import "@components/orchestrator/output/element.js"; 6 - import "@components/orchestrator/process-tracks/element.js"; 7 - import "@components/orchestrator/sources/element.js"; 8 - import "@components/processor/metadata/element.js"; 1 + import "~/components/engine/scope/element.js"; 2 + import "~/components/input/opensubsonic/element.js"; 3 + import "~/components/input/s3/element.js"; 4 + import "~/components/orchestrator/input/element.js"; 5 + import "~/components/orchestrator/output/element.js"; 6 + import "~/components/orchestrator/process-tracks/element.js"; 7 + import "~/components/orchestrator/sources/element.js"; 8 + import "~/components/processor/metadata/element.js"; 9 9 10 - import * as Input from "@components/configurator/input/element.js"; 11 - import * as Queue from "@components/engine/queue/element.js"; 12 - import * as Search from "@components/processor/search/element.js"; 13 - import * as ScopedTracks from "@components/orchestrator/scoped-tracks/element.js"; 10 + import * as Input from "~/components/configurator/input/element.js"; 11 + import * as Queue from "~/components/engine/queue/element.js"; 12 + import * as Search from "~/components/processor/search/element.js"; 13 + import * as ScopedTracks from "~/components/orchestrator/scoped-tracks/element.js"; 14 14 15 - import { component } from "@common/element.js"; 16 - import { effect, untracked } from "@common/signal.js"; 15 + import { component } from "~/common/element.js"; 16 + import { effect, untracked } from "~/common/signal.js"; 17 17 18 18 import "./browser/element.js"; 19 19 import "./configurators/input/element.js"; ··· 24 24 import WebampElement from "./webamp/element.js"; 25 25 26 26 /** 27 - * @import {OutputElement} from "@components/output/types.d.ts" 28 - * @import {Track} from "@definitions/types.d.ts" 27 + * @import {OutputElement} from "~/components/output/types.d.ts" 28 + * @import {Track} from "~/definitions/types.d.ts" 29 29 */ 30 30 31 31 const input = component(Input);
+1 -1
src/themes/webamp/webamp/element.js
··· 1 1 import Webamp from "webamp/lazy"; 2 2 3 3 /** 4 - * @import {Track} from "@definitions/types.d.ts" 4 + * @import {Track} from "~/definitions/types.d.ts" 5 5 */ 6 6 class WebampElement extends HTMLElement { 7 7 constructor() {
+18 -15
src/themes/webamp/window-manager/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 2 - import { signal } from "@common/signal.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 + import { signal } from "~/common/signal.js"; 3 3 import { debounceMicrotask } from "@vicary/debounce-microtask"; 4 4 5 - import WindowElement from "../window/element.js" 5 + import WindowElement from "../window/element.js"; 6 6 7 7 /** 8 - * @import {RenderArg} from "@common/element.d.ts" 8 + * @import {RenderArg} from "~/common/element.d.ts" 9 9 */ 10 10 11 11 //////////////////////////////////////////// ··· 17 17 super(); 18 18 this.attachShadow({ mode: "open" }); 19 19 20 - this.focusOnWindow = this.focusOnWindow.bind(this) 21 - this.windowMoveStart = this.windowMoveStart.bind(this) 20 + this.focusOnWindow = this.focusOnWindow.bind(this); 21 + this.windowMoveStart = this.windowMoveStart.bind(this); 22 22 } 23 23 24 24 // SIGNALS ··· 58 58 super.disconnectedCallback(); 59 59 60 60 this.root().removeEventListener("mousedown", this.focusOnWindow); 61 - this.root().removeEventListener("dtw-window-start-move", this.windowMoveStart); 61 + this.root().removeEventListener( 62 + "dtw-window-start-move", 63 + this.windowMoveStart, 64 + ); 62 65 63 66 document.body.removeEventListener( 64 67 "mousedown", ··· 98 101 */ 99 102 async setWindowStatuses(activeId) { 100 103 await customElements.whenDefined("dtw-window"); 101 - this.activateWindow(activeId) 104 + this.activateWindow(activeId); 102 105 } 103 106 104 107 /** ··· 140 143 * @param {string | null} activeId 141 144 */ 142 145 activateWindow(activeId) { 143 - this.querySelectorAll("dtw-window").forEach(w => { 144 - if (w instanceof WindowElement === false) return 146 + this.querySelectorAll("dtw-window").forEach((w) => { 147 + if (w instanceof WindowElement === false) return; 145 148 146 149 if (activeId && w.id === activeId) { 147 150 w.activate(); 148 151 } else { 149 152 w.deactivate(); 150 153 } 151 - }) 154 + }); 152 155 } 153 156 154 157 /** 155 158 * @param {string} id 156 159 */ 157 160 toggleWindow(id) { 158 - const w = this.querySelector(`dtw-window#${id}`) 159 - if (w instanceof WindowElement === false) return 161 + const w = this.querySelector(`dtw-window#${id}`); 162 + if (w instanceof WindowElement === false) return; 160 163 161 - w.toggleAttribute("open") 164 + w.toggleAttribute("open"); 162 165 163 166 if (w.hasAttribute("open")) { 164 - this.activateWindow(id) 167 + this.activateWindow(id); 165 168 this.#lastZindex++; 166 169 w.style.zIndex = this.#lastZindex.toString(); 167 170 }
+2 -2
src/themes/webamp/window/element.js
··· 1 - import { DiffuseElement } from "@common/element.js"; 1 + import { DiffuseElement } from "~/common/element.js"; 2 2 3 3 /** 4 - * @import {RenderArg} from "@common/element.d.ts" 4 + * @import {RenderArg} from "~/common/element.d.ts" 5 5 */ 6 6 7 7 ////////////////////////////////////////////
+4 -4
tests/components/engine/queue/test.ts
··· 7 7 describe("components/engine/queue", () => { 8 8 it("adds tracks", async () => { 9 9 const items = await testWeb(async () => { 10 - const QueueEngine = await import("@components/engine/queue/element.js"); 10 + const QueueEngine = await import("~/components/engine/queue/element.js"); 11 11 const engine = new QueueEngine.CLASS(); 12 12 13 13 document.body.append(engine); ··· 26 26 27 27 it("pools + fills tracks and shifts the queue", async () => { 28 28 const item = await testWeb(async () => { 29 - const QueueEngine = await import("@components/engine/queue/element.js"); 29 + const QueueEngine = await import("~/components/engine/queue/element.js"); 30 30 const engine = new QueueEngine.CLASS(); 31 31 32 32 document.body.append(engine); ··· 45 45 46 46 it("[shared worker] adds tracks and shifts + unshifts the queue", async () => { 47 47 const item = await testWeb(async () => { 48 - const QueueEngine = await import("@components/engine/queue/element.js"); 48 + const QueueEngine = await import("~/components/engine/queue/element.js"); 49 49 const engine = new QueueEngine.CLASS(); 50 50 engine.setAttribute("group", "tests"); 51 51 ··· 66 66 67 67 it("[shared worker] has the correct past", async () => { 68 68 const item = await testWeb(async () => { 69 - const QueueEngine = await import("@components/engine/queue/element.js"); 69 + const QueueEngine = await import("~/components/engine/queue/element.js"); 70 70 const engine = new QueueEngine.CLASS(); 71 71 engine.setAttribute("group", "tests"); 72 72
+7 -7
tests/components/input/https/test.ts
··· 2 2 import { expect } from "@std/expect"; 3 3 4 4 import { testWeb } from "@tests/common/index.ts"; 5 - import type { Track } from "@definitions/types.d.ts"; 5 + import type { Track } from "~/definitions/types.d.ts"; 6 6 7 7 describe("components/input/https", () => { 8 8 it("resolves HTTPS URI to same URL", async () => { 9 9 const resolved = await testWeb(async () => { 10 - const HttpsInput = await import("@components/input/https/element.js"); 10 + const HttpsInput = await import("~/components/input/https/element.js"); 11 11 const input = new HttpsInput.CLASS(); 12 12 document.body.append(input); 13 13 ··· 24 24 25 25 it("provides sources list from tracks", async () => { 26 26 const sources = await testWeb(async () => { 27 - const HttpsInput = await import("@components/input/https/element.js"); 27 + const HttpsInput = await import("~/components/input/https/element.js"); 28 28 const input = new HttpsInput.CLASS(); 29 29 document.body.append(input); 30 30 ··· 53 53 54 54 it("consult returns undetermined for scheme only", async () => { 55 55 const result = await testWeb(async () => { 56 - const HttpsInput = await import("@components/input/https/element.js"); 56 + const HttpsInput = await import("~/components/input/https/element.js"); 57 57 const input = new HttpsInput.CLASS(); 58 58 document.body.append(input); 59 59 ··· 68 68 69 69 it("detaches all HTTPS tracks when given scheme", async () => { 70 70 const remaining = await testWeb(async () => { 71 - const HttpsInput = await import("@components/input/https/element.js"); 71 + const HttpsInput = await import("~/components/input/https/element.js"); 72 72 const input = new HttpsInput.CLASS(); 73 73 document.body.append(input); 74 74 ··· 96 96 97 97 it("detaches tracks from specific domain", async () => { 98 98 const remaining = await testWeb(async () => { 99 - const HttpsInput = await import("@components/input/https/element.js"); 99 + const HttpsInput = await import("~/components/input/https/element.js"); 100 100 const input = new HttpsInput.CLASS(); 101 101 document.body.append(input); 102 102 ··· 136 136 137 137 it("has correct SCHEME property", async () => { 138 138 const scheme = await testWeb(async () => { 139 - const HttpsInput = await import("@components/input/https/element.js"); 139 + const HttpsInput = await import("~/components/input/https/element.js"); 140 140 const input = new HttpsInput.CLASS(); 141 141 document.body.append(input); 142 142
+16 -16
tests/components/orchestrator/favourites/test.ts
··· 8 8 it("includes tracks", async () => { 9 9 const favourites = await testWeb(async () => { 10 10 const Output = await import( 11 - "@components/configurator/output/element.js" 11 + "~/components/configurator/output/element.js" 12 12 ); 13 13 const Favourites = await import( 14 - "@components/orchestrator/favourites/element.js" 14 + "~/components/orchestrator/favourites/element.js" 15 15 ); 16 16 const { tracks } = await import("@testing/sample/tracks.js"); 17 17 ··· 39 39 it("includes multiple tracks", async () => { 40 40 const favourites = await testWeb(async () => { 41 41 const Output = await import( 42 - "@components/configurator/output/element.js" 42 + "~/components/configurator/output/element.js" 43 43 ); 44 44 const Favourites = await import( 45 - "@components/orchestrator/favourites/element.js" 45 + "~/components/orchestrator/favourites/element.js" 46 46 ); 47 47 const { tracks } = await import("@testing/sample/tracks.js"); 48 48 ··· 72 72 it("does not include duplicate tracks", async () => { 73 73 const favourites = await testWeb(async () => { 74 74 const Output = await import( 75 - "@components/configurator/output/element.js" 75 + "~/components/configurator/output/element.js" 76 76 ); 77 77 const Favourites = await import( 78 - "@components/orchestrator/favourites/element.js" 78 + "~/components/orchestrator/favourites/element.js" 79 79 ); 80 80 const { tracks } = await import("@testing/sample/tracks.js"); 81 81 ··· 102 102 it("does not include duplicate tracks with different casing", async () => { 103 103 const favourites = await testWeb(async () => { 104 104 const Output = await import( 105 - "@components/configurator/output/element.js" 105 + "~/components/configurator/output/element.js" 106 106 ); 107 107 const Favourites = await import( 108 - "@components/orchestrator/favourites/element.js" 108 + "~/components/orchestrator/favourites/element.js" 109 109 ); 110 110 const { tracks } = await import("@testing/sample/tracks.js"); 111 111 ··· 139 139 it("expels tracks", async () => { 140 140 const favourites = await testWeb(async () => { 141 141 const Output = await import( 142 - "@components/configurator/output/element.js" 142 + "~/components/configurator/output/element.js" 143 143 ); 144 144 const Favourites = await import( 145 - "@components/orchestrator/favourites/element.js" 145 + "~/components/orchestrator/favourites/element.js" 146 146 ); 147 147 const { tracks } = await import("@testing/sample/tracks.js"); 148 148 ··· 171 171 it("expels tracks with different casing", async () => { 172 172 const favourites = await testWeb(async () => { 173 173 const Output = await import( 174 - "@components/configurator/output/element.js" 174 + "~/components/configurator/output/element.js" 175 175 ); 176 176 const Favourites = await import( 177 - "@components/orchestrator/favourites/element.js" 177 + "~/components/orchestrator/favourites/element.js" 178 178 ); 179 179 const { tracks } = await import("@testing/sample/tracks.js"); 180 180 ··· 208 208 it("toggles tracks", async () => { 209 209 const result = await testWeb(async () => { 210 210 const Output = await import( 211 - "@components/configurator/output/element.js" 211 + "~/components/configurator/output/element.js" 212 212 ); 213 213 const Favourites = await import( 214 - "@components/orchestrator/favourites/element.js" 214 + "~/components/orchestrator/favourites/element.js" 215 215 ); 216 216 const { tracks } = await import("@testing/sample/tracks.js"); 217 217 ··· 247 247 it("toggles mixed tracks (some already favourited)", async () => { 248 248 const favourites = await testWeb(async () => { 249 249 const Output = await import( 250 - "@components/configurator/output/element.js" 250 + "~/components/configurator/output/element.js" 251 251 ); 252 252 const Favourites = await import( 253 - "@components/orchestrator/favourites/element.js" 253 + "~/components/orchestrator/favourites/element.js" 254 254 ); 255 255 const { tracks } = await import("@testing/sample/tracks.js"); 256 256
+3 -3
tests/components/processor/search/test.ts
··· 8 8 it("finds tracks by album", async () => { 9 9 const results = await testWeb(async () => { 10 10 const SearchProcessor = await import( 11 - "@components/processor/search/element.js" 11 + "~/components/processor/search/element.js" 12 12 ); 13 13 const processor = new SearchProcessor.CLASS(); 14 14 ··· 28 28 it("finds tracks by artist", async () => { 29 29 const results = await testWeb(async () => { 30 30 const SearchProcessor = await import( 31 - "@components/processor/search/element.js" 31 + "~/components/processor/search/element.js" 32 32 ); 33 33 const processor = new SearchProcessor.CLASS(); 34 34 ··· 48 48 it("finds tracks by title", async () => { 49 49 const results = await testWeb(async () => { 50 50 const SearchProcessor = await import( 51 - "@components/processor/search/element.js" 51 + "~/components/processor/search/element.js" 52 52 ); 53 53 const processor = new SearchProcessor.CLASS(); 54 54