···11-import * as URI from "uri-js";
11+import * as URI from "fast-uri";
2233import { groupTracksPerScheme, groupUrisPerScheme } from "@common/utils.js";
44import { ostiary, rpc, workerProxy } from "@common/worker.js";
···11-import * as URI from "uri-js";
11+import * as URI from "fast-uri";
22import { ostiary, rpc } from "@common/worker.js";
3344import { SCHEME } from "./constants.js";
···110110 servers[sid] = parsed.server;
111111112112 cache[sid] ??= {};
113113- cache[sid][URI.unescapeComponent(parsed.path)] = t;
113113+ cache[sid][decodeURIComponent(parsed.path)] = t;
114114 });
115115116116 /**
+2-2
src/components/input/s3/common.js
···11import { S3Client } from "@bradenmacdonald/s3-lite-client";
22import * as IDB from "idb-keyval";
33-import * as URI from "uri-js";
33+import * as URI from "fast-uri";
44import QS from "query-string";
5566import { cachedConsult } from "@components/input/common.js";
···174174 };
175175176176 const path =
177177- (bucket.path.replace(/\/$/, "") + URI.unescapeComponent(uri.path || ""))
177177+ (bucket.path.replace(/\/$/, "") + decodeURIComponent(uri.path || ""))
178178 .replace(
179179 /^\//,
180180 "",
+1-1
src/components/processor/metadata/common.js
···11import { parseBlob, parseFromTokenizer, parseWebStream } from "music-metadata";
22-import * as URI from "uri-js";
22+import * as URI from "fast-uri";
33import { HttpClient } from "@tokenizer/http";
44import { tokenizer as rangeTokenizer } from "@tokenizer/range";
55