From 30fcea600de3191ed9230c8cb772f0090906d393 Mon Sep 17 00:00:00 2001 From: fullstackjam Date: Sat, 24 Oct 2026 22:46:55 +0800 Subject: [PATCH 1/4] fix(packages): separate taps and normalize package exports --- src/docs/config-options.md | 8 + src/lib/components/ConfigDetail.svelte | 130 +++++++++---- src/lib/components/ConfigEditor.svelte | 134 +++++++++----- src/lib/components/PackageManager.svelte | 172 +++++++++++++++++- src/lib/packages.test.ts | 88 +++++++++ src/lib/packages.ts | 88 +++++++++ .../[username]/[slug]/config/+server.ts | 102 ++++------- .../[username]/[slug]/config/server.test.ts | 58 +++++- src/routes/api/configs/+server.ts | 41 ++++- src/routes/api/configs/[slug]/+server.ts | 69 ++++--- src/routes/api/configs/[slug]/server.test.ts | 52 ++++++ .../api/configs/alias/[alias]/+server.ts | 95 ++++------ .../api/configs/from-snapshot/+server.ts | 54 +++--- src/routes/api/configs/server.test.ts | 31 ++++ src/routes/dashboard/+page.svelte | 120 +++++++----- 15 files changed, 924 insertions(+), 318 deletions(-) create mode 100644 src/lib/packages.test.ts create mode 100644 src/lib/packages.ts diff --git a/src/docs/config-options.md b/src/docs/config-options.md index 68b08c7..c76851c 100644 --- a/src/docs/config-options.md +++ b/src/docs/config-options.md @@ -71,6 +71,14 @@ The tools and apps to install. Stored as an array of package objects, each with Each entry is an object: `{ "name": "package-name", "type": "formula" | "cask" | "npm" | "tap" }`. Names must match Homebrew or npm package names exactly. Taps are added before formulae and casks are installed. +Use `formula` or `cask` for fully qualified software names such as +`oven-sh/bun/bun`; their `owner/repository` tap is derived automatically. +Use `tap` only for a repository name such as `oven-sh/bun` when you want to +retain that source independently of its packages. The editor lists sources in +a separate Homebrew taps section, with the packages that require each source. +Automatically derived sources disappear when their last package is removed; +manually retained sources remain. Taps do not count toward the editor's software total. + **Limits:** max 500 packages per config; name max 200 characters (alphanumeric, `.`, `_`, `-`, `@`, `/`). ### `custom_script` diff --git a/src/lib/components/ConfigDetail.svelte b/src/lib/components/ConfigDetail.svelte index cf0d826..fea5e9d 100644 --- a/src/lib/components/ConfigDetail.svelte +++ b/src/lib/components/ConfigDetail.svelte @@ -1,5 +1,6 @@