@homeflare/alchemy 0.1.0 → 0.1.2
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.
- package/README.md +46 -3
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
Custom [Alchemy](https://alchemy.run) providers for gaps the vendor SDK leaves.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
bun add @homeflare/alchemy alchemy
|
|
6
|
+
bun add @homeflare/alchemy alchemy@2.0.0-beta.77 effect@4.0.0-rc.112 \
|
|
7
|
+
@effect/platform-node@4.0.0-rc.112 cloudflare@4.5.0
|
|
7
8
|
```
|
|
8
9
|
|
|
10
|
+
⛔ **Every one of those is required, and you also need an `overrides` block** — see
|
|
11
|
+
[Peers](#peers--and-one-override-you-need) below. The install succeeds without them and
|
|
12
|
+
the import throws.
|
|
13
|
+
|
|
9
14
|
★ **Why a custom provider at all.** When Alchemy has no property for something, the
|
|
10
15
|
alternative is a runbook step a human runs once — and a plan can never show a missing
|
|
11
16
|
runbook step. Covering the gap with a resource means the drift is visible in `plan` like
|
|
@@ -50,13 +55,51 @@ API Key. An empty value fails closed with a message saying so, because an empty
|
|
|
50
55
|
a denied grant rather than a missing file, and `Bearer ` + nothing 401s in a way that reads
|
|
51
56
|
like a bad credential.
|
|
52
57
|
|
|
53
|
-
## Peers
|
|
58
|
+
## Peers — and one override you need
|
|
54
59
|
|
|
55
|
-
|
|
60
|
+
```sh
|
|
61
|
+
bun add @homeflare/alchemy alchemy@2.0.0-beta.77 effect@4.0.0-rc.112 \
|
|
62
|
+
@effect/platform-node@4.0.0-rc.112 cloudflare@4.5.0
|
|
63
|
+
```
|
|
56
64
|
|
|
57
65
|
⚠️ Peers, not dependencies: Alchemy's resource registry and Effect's context both break if
|
|
58
66
|
two copies load in one process.
|
|
59
67
|
|
|
68
|
+
⛔ **Add this to your `package.json`, or the install works and the import throws:**
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"overrides": {
|
|
73
|
+
"effect": "4.0.0-rc.112",
|
|
74
|
+
"@effect/platform-node": "4.0.0-rc.112",
|
|
75
|
+
"@effect/platform-node-shared": "4.0.0-rc.112",
|
|
76
|
+
"@effect/platform-bun": "4.0.0-rc.112"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
🔴 **Why, measured 2026-09-16 against a clean consumer install of 0.1.0.** Effect's `rc`
|
|
82
|
+
line is not semver-compatible with itself, and two separate skews bite:
|
|
83
|
+
|
|
84
|
+
| what resolves | what happens |
|
|
85
|
+
| ---------------------------------------------------------------- | ------------------------------------------------------ |
|
|
86
|
+
| `effect` → rc.115 | `TypeError: Config.string is not a function` at import |
|
|
87
|
+
| `@effect/platform-node-shared` → rc.115 while `effect` is rc.112 | `Cannot find module 'effect/ByteSize'` |
|
|
88
|
+
|
|
89
|
+
The second is the nastier one: `@effect/platform-bun@rc.112` depends on
|
|
90
|
+
`platform-node-shared` at `^4.0.0-rc.112`, which resolves _up_ to rc.115 — whose own peer
|
|
91
|
+
is `effect@^4.0.0-rc.115`. Nothing fails at install time. An override is the only thing
|
|
92
|
+
that holds the set together.
|
|
93
|
+
|
|
94
|
+
⚠️ `@effect/platform-node` is **required, not optional**: Alchemy's module graph reaches
|
|
95
|
+
`Cloudflare/Workers/WorkerBridge → @effect/platform-node/NodeServices` even when you only
|
|
96
|
+
import the Proxmox subpath.
|
|
97
|
+
|
|
98
|
+
⚠️ So is `cloudflare`. It was marked optional in 0.1.1, which claimed the `/cloudflare`
|
|
99
|
+
subpath would degrade without it — measured 2026-09-16, the subpath does not load at all:
|
|
100
|
+
`Cannot find package 'cloudflare'`. An optional peer should mean a feature is absent, not
|
|
101
|
+
that an import fails.
|
|
102
|
+
|
|
60
103
|
## License
|
|
61
104
|
|
|
62
105
|
MIT © Timothy Schneider
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@homeflare/alchemy",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Custom Alchemy providers for Cloudflare, Proxmox, OpenBao, Forgejo and Talos.",
|
|
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",
|
|
@@ -50,8 +50,9 @@
|
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
|
-
"
|
|
53
|
+
"@effect/platform-node": "4.0.0-rc.112",
|
|
54
|
+
"alchemy": "2.0.0-beta.77",
|
|
54
55
|
"cloudflare": ">=4.5.0",
|
|
55
|
-
"effect": "
|
|
56
|
+
"effect": "4.0.0-rc.112"
|
|
56
57
|
}
|
|
57
58
|
}
|