@homeflare/alchemy 0.47.0 → 0.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +6 -32
  2. package/docs/peers.md +32 -5
  3. package/package.json +111 -1
package/README.md CHANGED
@@ -2,18 +2,9 @@
2
2
 
3
3
  Custom [Alchemy](https://alchemy.run) providers for gaps the vendor SDK leaves.
4
4
 
5
- ```sh
6
- bun add @homeflare/alchemy alchemy@2.0.0-beta.81 effect@4.0.1 \
7
- @effect/platform-node@4.0.1 mime@4.1.0 \
8
- @distilled.cloud/cloudflare@1.0.0-rc.13 @distilled.cloud/forgejo@1.0.0-rc.13 \
9
- @distilled.cloud/discord@1.0.0-rc.13 @distilled.cloud/google-workspace@1.0.0-rc.13 \
10
- @distilled.cloud/argocd@1.0.0-rc.13 \
11
- @effect/sql-pg@4.0.1
12
- ```
13
-
14
- ⛔ **Every one of those is required, and you also need an `overrides` block** — see
15
- [Peers](#peers--and-one-override-you-need) below. The install succeeds without them and
16
- the import throws.
5
+ ⛔ **Every peer on the install line is required, and you also need an `overrides` block**
6
+ — see [docs/peers.md](./docs/peers.md). The install succeeds without them and the import
7
+ throws.
17
8
 
18
9
  ★ **Why a custom provider at all.** When Alchemy has no property for something, the
19
10
  alternative is a runbook step a human runs once — and a plan can never show a missing
@@ -390,26 +381,9 @@ subpath reads its credential, and why an empty one fails closed: [docs/credentia
390
381
 
391
382
  ## Peers — and one override you need
392
383
 
393
- ⚠️ Peers, not dependencies: Alchemy's resource registry and Effect's context both break if
394
- two copies load in one process.
395
-
396
- ⛔ **Add this to your `package.json`, or the install works and the import throws:**
397
-
398
- ```json
399
- {
400
- "overrides": {
401
- "effect": "4.0.1",
402
- "@effect/platform-node": "4.0.1",
403
- "@effect/platform-node-shared": "4.0.1",
404
- "@effect/platform-bun": "4.0.1",
405
- "rolldown": "1.2.8",
406
- "redis": "6.3.0"
407
- }
408
- }
409
- ```
410
-
411
- Why each peer is required and each pin exists — the measurements, and the error a missing one
412
- produces: [docs/peers.md](./docs/peers.md).
384
+ The install command, the required `overrides` block, why each pin exists, and the
385
+ `homeflare.consumer` machine-readable source of truth are all in
386
+ [docs/peers.md](./docs/peers.md).
413
387
 
414
388
  ## License
415
389
 
package/docs/peers.md CHANGED
@@ -1,16 +1,43 @@
1
- # Peers — and why each pin exists
2
-
3
- The install line for `@homeflare/alchemy`, and why every peer on it and every entry in the
4
- `overrides` block is required. The block itself, which every consumer copies, is in the
5
- [README](../README.md#peers--and-one-override-you-need).
1
+ # Peers — and one override you need
6
2
 
7
3
  ```sh
8
4
  bun add @homeflare/alchemy alchemy@2.0.0-beta.81 effect@4.0.1 \
9
5
  @effect/platform-node@4.0.1 mime@4.1.0 \
10
6
  @distilled.cloud/cloudflare@1.0.0-rc.13 @distilled.cloud/forgejo@1.0.0-rc.13 \
7
+ @distilled.cloud/discord@1.0.0-rc.13 @distilled.cloud/google-workspace@1.0.0-rc.13 \
8
+ @distilled.cloud/argocd@1.0.0-rc.13 \
11
9
  @effect/sql-pg@4.0.1
12
10
  ```
13
11
 
12
+ ⛔ **Every one of those is required, and you also need an `overrides` block** — see
13
+ below. The install succeeds without them and the import throws.
14
+
15
+ ★ **The machine-readable source of truth** lives in this package's `package.json` under the
16
+ `homeflare.consumer` field. It carries the exact pins, the overrides below, and the import
17
+ moves for `effect/unstable/*` as an ordered **array of `{"from", "to"}` pairs** — not an
18
+ object keyed by the old path. Order is load-bearing: the most specific path comes first
19
+ (`httpapi` before its parent `http`), because consumers apply the moves in published order.
20
+ The install line, the overrides block in this doc, and the smoke test install are all
21
+ asserted against that field; change the field first, then copy its `overrides` block here.
22
+
23
+ ⛔ **Add this to your `package.json`, or the install works and the import throws:**
24
+
25
+ ```json
26
+ {
27
+ "overrides": {
28
+ "effect": "4.0.1",
29
+ "@effect/platform-node": "4.0.1",
30
+ "@effect/platform-node-shared": "4.0.1",
31
+ "@effect/platform-bun": "4.0.1",
32
+ "rolldown": "1.2.8",
33
+ "redis": "6.3.0"
34
+ }
35
+ }
36
+ ```
37
+
38
+ Why each peer is required and each pin exists — the measurements, and the error a missing one
39
+ produces — is below.
40
+
14
41
  🔴 **Why, measured 2026-09-16 on 0.1.0 and re-checked 2026-09-17 against Alchemy 78.**
15
42
  Effect's `rc` line is not semver-compatible with itself. Alchemy 78's peer is
16
43
  `effect >= 4.0.0-rc.115`; an unlocked `@effect/platform-node-shared` still floats to the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homeflare/alchemy",
3
- "version": "0.47.0",
3
+ "version": "0.47.1",
4
4
  "description": "Custom Alchemy providers for Cloudflare, Proxmox, OpenBao, Forgejo, Talos, launchd and Caddy, and a verifier that proves adoptions are no-ops.",
5
5
  "homepage": "https://github.com/taslabs-net/homeflare-kit/tree/main/packages/alchemy#readme",
6
6
  "bugs": "https://github.com/taslabs-net/homeflare-kit/issues",
@@ -152,5 +152,115 @@
152
152
  "alchemy": "2.0.0-beta.81",
153
153
  "effect": "4.0.1",
154
154
  "mime": "4.1.0"
155
+ },
156
+ "homeflare": {
157
+ "consumer": {
158
+ "pins": {
159
+ "effect": "4.0.1",
160
+ "@effect/ai-openai-compat": "4.0.1",
161
+ "@effect/platform-bun": "4.0.1",
162
+ "@effect/platform-node": "4.0.1",
163
+ "@effect/platform-node-shared": "4.0.1",
164
+ "@effect/sql-pg": "4.0.1",
165
+ "alchemy": "2.0.0-beta.81",
166
+ "@alchemy.run/frontend-frameworks": "2.0.0-beta.81",
167
+ "@distilled.cloud/core": "1.0.0-rc.13",
168
+ "@distilled.cloud/argocd": "1.0.0-rc.13",
169
+ "@distilled.cloud/cloudflare": "1.0.0-rc.13",
170
+ "@distilled.cloud/discord": "1.0.0-rc.13",
171
+ "@distilled.cloud/forgejo": "1.0.0-rc.13",
172
+ "@distilled.cloud/google-workspace": "1.0.0-rc.13",
173
+ "mime": "4.1.0"
174
+ },
175
+ "overrides": {
176
+ "effect": "4.0.1",
177
+ "@effect/platform-bun": "4.0.1",
178
+ "@effect/platform-node": "4.0.1",
179
+ "@effect/platform-node-shared": "4.0.1",
180
+ "rolldown": "1.2.8",
181
+ "redis": "6.3.0"
182
+ },
183
+ "importMoves": [
184
+ {
185
+ "from": "effect/unstable/httpapi/",
186
+ "to": "effect/http-api/"
187
+ },
188
+ {
189
+ "from": "effect/unstable/ai/",
190
+ "to": "effect/ai/"
191
+ },
192
+ {
193
+ "from": "effect/unstable/cli/",
194
+ "to": "effect/cli/"
195
+ },
196
+ {
197
+ "from": "effect/unstable/cluster/",
198
+ "to": "effect/cluster/"
199
+ },
200
+ {
201
+ "from": "effect/unstable/devtools/",
202
+ "to": "effect/devtools/"
203
+ },
204
+ {
205
+ "from": "effect/unstable/encoding/",
206
+ "to": "effect/encoding/"
207
+ },
208
+ {
209
+ "from": "effect/unstable/eventlog/",
210
+ "to": "effect/eventlog/"
211
+ },
212
+ {
213
+ "from": "effect/unstable/http/",
214
+ "to": "effect/http/"
215
+ },
216
+ {
217
+ "from": "effect/unstable/net/",
218
+ "to": "effect/net/"
219
+ },
220
+ {
221
+ "from": "effect/unstable/observability/",
222
+ "to": "effect/observability/"
223
+ },
224
+ {
225
+ "from": "effect/unstable/persistence/",
226
+ "to": "effect/persistence/"
227
+ },
228
+ {
229
+ "from": "effect/unstable/process/",
230
+ "to": "effect/process/"
231
+ },
232
+ {
233
+ "from": "effect/unstable/reactivity/",
234
+ "to": "effect/reactivity/"
235
+ },
236
+ {
237
+ "from": "effect/unstable/rpc/",
238
+ "to": "effect/rpc/"
239
+ },
240
+ {
241
+ "from": "effect/unstable/schema/",
242
+ "to": "effect/schema/"
243
+ },
244
+ {
245
+ "from": "effect/unstable/socket/",
246
+ "to": "effect/socket/"
247
+ },
248
+ {
249
+ "from": "effect/unstable/sql/",
250
+ "to": "effect/sql/"
251
+ },
252
+ {
253
+ "from": "effect/unstable/workers/",
254
+ "to": "effect/workers/"
255
+ },
256
+ {
257
+ "from": "effect/unstable/workflow/",
258
+ "to": "effect/workflow/"
259
+ }
260
+ ],
261
+ "unresolved": [
262
+ "effect/unstable/arbitrary/"
263
+ ]
264
+ }
155
265
  }
156
266
  }