@homeflare/alchemy 0.37.5 → 0.37.6
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/dist/openbao/auth-role-form.d.ts +0 -6
- package/dist/openbao/auth-role-form.d.ts.map +1 -1
- package/dist/openbao/auth-role-identity.d.ts +11 -0
- package/dist/openbao/auth-role-identity.d.ts.map +1 -0
- package/dist/openbao/auth-role-wire.d.ts +23 -0
- package/dist/openbao/auth-role-wire.d.ts.map +1 -0
- package/dist/openbao/auth-role.d.ts.map +1 -1
- package/dist/openbao/bao-http.d.ts +34 -13
- package/dist/openbao/bao-http.d.ts.map +1 -1
- package/dist/openbao/distilled.d.ts +25 -0
- package/dist/openbao/distilled.d.ts.map +1 -0
- package/dist/openbao/fake-engines-roles.d.ts +5 -1
- package/dist/openbao/fake-engines-roles.d.ts.map +1 -1
- package/dist/openbao/index.js +358 -305
- package/dist/openbao/index.js.map +13 -9
- package/dist/openbao/policy-identity.d.ts +12 -0
- package/dist/openbao/policy-identity.d.ts.map +1 -0
- package/dist/openbao/policy-wire.d.ts +9 -8
- package/dist/openbao/policy-wire.d.ts.map +1 -1
- package/dist/openbao/policy.d.ts.map +1 -1
- package/dist/openbao/rename.d.ts +5 -0
- package/dist/openbao/rename.d.ts.map +1 -1
- package/dist/proxmox/index.js +2 -2
- package/dist/proxmox/index.js.map +3 -3
- package/dist/proxmox/node-network-wire.d.ts +14 -10
- package/dist/proxmox/node-network-wire.d.ts.map +1 -1
- package/docs/upstream-conformance.md +5 -3
- package/package.json +3 -2
- package/src/openbao/auth-role-form.test.ts +11 -9
- package/src/openbao/auth-role-form.ts +0 -19
- package/src/openbao/auth-role-identity.ts +24 -0
- package/src/openbao/auth-role-sdk.test.ts +155 -0
- package/src/openbao/auth-role-wire.test.ts +128 -0
- package/src/openbao/auth-role-wire.ts +89 -0
- package/src/openbao/auth-role.ts +9 -9
- package/src/openbao/bao-http.ts +9 -7
- package/src/openbao/distilled-retry.test.ts +164 -0
- package/src/openbao/distilled.test.ts +146 -0
- package/src/openbao/distilled.ts +88 -0
- package/src/openbao/fake-engines-roles.ts +9 -2
- package/src/openbao/policy-distilled.test.ts +98 -0
- package/src/openbao/policy-identity.ts +24 -0
- package/src/openbao/policy-rename.test.ts +2 -2
- package/src/openbao/policy-wire.test.ts +5 -5
- package/src/openbao/policy-wire.ts +31 -11
- package/src/openbao/policy.ts +10 -13
- package/src/openbao/rename.ts +17 -1
- package/src/proxmox/node-network-read-failure.test.ts +24 -0
- package/src/proxmox/node-network-wire.ts +15 -17
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** A policy is its name, keyed as OpenBao keys it (`policyKey`). */
|
|
2
|
+
export declare const policyIdentity: import("./rename-identity.ts").Identity<{
|
|
3
|
+
readonly name: string;
|
|
4
|
+
}>;
|
|
5
|
+
/** The occupied-name guard must use the same SDK and refusal semantics as every other read. */
|
|
6
|
+
export declare const judgePolicyRename: (olds: unknown, news: unknown, output: {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
} | undefined) => import("effect/Effect").Effect<{
|
|
9
|
+
from: string;
|
|
10
|
+
to: string;
|
|
11
|
+
} | undefined, import("./bao-status.ts").BaoError | import("effect/Cause").TimeoutError | import("@distilled.cloud/openbao/Protocol").OpenBaoOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
12
|
+
//# sourceMappingURL=policy-identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-identity.d.ts","sourceRoot":"","sources":["../../src/openbao/policy-identity.ts"],"names":[],"mappings":"AAIA,oEAAoE;AACpE,eAAO,MAAM,cAAc;mBAAiC,MAAM;EAIjE,CAAC;AAEF,+FAA+F;AAC/F,eAAO,MAAM,iBAAiB,SACtB,OAAO,QACP,OAAO,UACL;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS;;;2MAQ5C,CAAC"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The three OpenBao calls Bao.Policy makes — read, write and delete of `sys/policies/acl/<name>`.
|
|
3
|
-
* Split from policy.ts so the trailing-newline round trip can be tested against a fake server.
|
|
4
|
-
*/
|
|
5
1
|
import * as Effect from 'effect/Effect';
|
|
6
2
|
import { BaoError } from './bao-status.ts';
|
|
7
3
|
/** The endpoint the CLI's policy commands used — openbao v2.6.2 api/sys_policy.go:60, :100, :122. */
|
|
8
4
|
export declare const policyPath: (name: string) => string;
|
|
9
5
|
/**
|
|
10
|
-
* The live policy text, or
|
|
6
|
+
* The live policy text, or undefined only when the SDK reports PolicyNotFound. Other errors FAIL.
|
|
11
7
|
*
|
|
12
8
|
* 🔴 THE ABSENCE WORDING WAS THE POLICY COMMAND'S OWN, AND ASSUMING OTHERWISE MADE A NEW POLICY
|
|
13
9
|
* UNCREATABLE. `No value found at` was measured for `bao read`; `bao policy read` never printed
|
|
@@ -29,13 +25,18 @@ export declare const policyPath: (name: string) => string;
|
|
|
29
25
|
* ⚠️ `data.policy` IS THE TEXT, and a 200 without it is a failure, as it was in the CLI's client
|
|
30
26
|
* ("no policy found in response", api/sys_policy.go:81-85).
|
|
31
27
|
*/
|
|
32
|
-
export declare const readPolicy: (name: string) => Effect.Effect<string, BaoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
28
|
+
export declare const readPolicy: (name: string) => Effect.Effect<string | undefined, BaoError | import("effect/Cause").TimeoutError | import("@distilled.cloud/openbao/Protocol").OpenBaoOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
29
|
+
/** Even a live empty policy occupies its name; rename guards must not overwrite it. */
|
|
30
|
+
export declare const policyExists: (name: string) => Effect.Effect<boolean, BaoError | import("effect/Cause").TimeoutError | import("@distilled.cloud/openbao/Protocol").OpenBaoOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
33
31
|
/**
|
|
34
32
|
* ★ THE HCL TRAVELS IN THE REQUEST BODY (`{"policy": …}`, api/sys_policy.go:96-101). The CLI path
|
|
35
33
|
* needed a scoped temp file because passing HCL on argv would have put every grant in the process
|
|
36
34
|
* list; a JSON body never reaches argv, so the temp file is gone with it.
|
|
35
|
+
* ★ A FULL-REPLACE WRITE: the whole policy text is sent every time, so it is safe to retry a
|
|
36
|
+
* transport failure through `runBaoWrite` — a replayed attempt converges on the same policy
|
|
37
|
+
* rather than compounding a partial one.
|
|
37
38
|
*/
|
|
38
|
-
export declare const writePolicy: (name: string, hcl: string) => Effect.Effect<void, BaoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
39
|
+
export declare const writePolicy: (name: string, hcl: string) => Effect.Effect<void, BaoError | import("effect/Cause").TimeoutError | import("@distilled.cloud/openbao/Protocol").OpenBaoOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
39
40
|
/** Deleting a policy that is already gone answers success (handlePoliciesDelete returns nothing). */
|
|
40
|
-
export declare const deletePolicy: (name: string) => Effect.Effect<void, BaoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
41
|
+
export declare const deletePolicy: (name: string) => Effect.Effect<void, import("@distilled.cloud/caddy").BadGateway | import("@distilled.cloud/caddy").BadRequest | BaoError | import("@distilled.cloud/caddy").ConfigError | import("@distilled.cloud/caddy").Conflict | import("@distilled.cloud/caddy").Forbidden | import("@distilled.cloud/caddy").GatewayTimeout | import("effect/unstable/http/HttpClientError").HttpClientError | import("@distilled.cloud/caddy").InternalServerError | import("@distilled.cloud/caddy").Locked | import("@distilled.cloud/caddy").ServiceUnavailable | import("effect/Cause").TimeoutError | import("@distilled.cloud/caddy").TooManyRequests | import("@distilled.cloud/caddy").Unauthorized | import("@distilled.cloud/caddy").UnprocessableEntity | import("@distilled.cloud/openbao/Errors").ClientErrors, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
41
42
|
//# sourceMappingURL=policy-wire.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-wire.d.ts","sourceRoot":"","sources":["../../src/openbao/policy-wire.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-wire.d.ts","sourceRoot":"","sources":["../../src/openbao/policy-wire.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,qGAAqG;AACrG,eAAO,MAAM,UAAU,SAAU,MAAM,WAA+B,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,UAAU,SAAU,MAAM,yMAWpC,CAAC;AAEJ,uFAAuF;AACvF,eAAO,MAAM,YAAY,SAAU,MAAM,8LACuB,CAAC;AAEjE;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,OAAO,MAAM,2LAC2B,CAAC;AAEjF,qGAAqG;AACrG,eAAO,MAAM,YAAY,SAAU,MAAM,+zBAItC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/openbao/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAUnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ,CACzC,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1D;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,SAAS,4CAEpB,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/openbao/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAUnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAU,SAAQ,QAAQ,CACzC,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,KAAK,EACL,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1D;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,SAAS,4CAEpB,CAAC;AAYH,eAAO,MAAM,iBAAiB,oIAiI3B,CAAC"}
|
package/dist/openbao/rename.d.ts
CHANGED
|
@@ -91,6 +91,11 @@ export declare const judgeMove: (family: string, tried: string | undefined, decl
|
|
|
91
91
|
from: string;
|
|
92
92
|
to: string;
|
|
93
93
|
} | undefined, import("./bao-status.ts").BaoError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
94
|
+
/** SDK families supply their own typed read so a rename cannot fall back to raw HTTP. */
|
|
95
|
+
export declare const judgeMoveWith: <E, R>(family: string, tried: string | undefined, declared: string | undefined, occupied: (identity: string) => Effect.Effect<boolean, E, R>, key?: (identity: string) => string) => Effect.Effect<{
|
|
96
|
+
from: string;
|
|
97
|
+
to: string;
|
|
98
|
+
} | undefined, E, R>;
|
|
94
99
|
/**
|
|
95
100
|
* Reconcile's guard: an `update` whose prior attributes name another object.
|
|
96
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/openbao/rename.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,SAAU,OAAO,OAAO,MAAM,KAAG,MAAM,GAAG,SAIpE,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,aAAa,SAAU,OAAO,OAAO,MAAM,KAAG,OAI1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,SAAU,OAAO,OAAO,MAAM,YAAY,MAAM,KAAG,MAAM,GAAG,SACH,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SACrB,OAAO,YACH,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,iBAClC,MAAM,KACpB,MAAM,GAAG,SAOX,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAAmC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,YACJ,MAAM,GAAG,SAAS,QACvB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,KAChC,OAAO,GAAG,SAAiF,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,SACP,MAAM,GAAG,SAAS,YACf,MAAM,GAAG,SAAS,UACpB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,QAC/B,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;;;
|
|
1
|
+
{"version":3,"file":"rename.d.ts","sourceRoot":"","sources":["../../src/openbao/rename.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,SAAU,OAAO,OAAO,MAAM,KAAG,MAAM,GAAG,SAIpE,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,aAAa,SAAU,OAAO,OAAO,MAAM,KAAG,OAI1D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,SAAU,OAAO,OAAO,MAAM,YAAY,MAAM,KAAG,MAAM,GAAG,SACH,CAAC;AAEjF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SACrB,OAAO,YACH,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,iBAClC,MAAM,KACpB,MAAM,GAAG,SAOX,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAAmC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,YACJ,MAAM,GAAG,SAAS,QACvB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,KAChC,OAAO,GAAG,SAAiF,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,SACP,MAAM,GAAG,SAAS,YACf,MAAM,GAAG,SAAS,UACpB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,QAC/B,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;;;wGAQhC,CAAC;AAEJ,yFAAyF;AACzF,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,CAAC,UACxB,MAAM,SACP,MAAM,GAAG,SAAS,YACf,MAAM,GAAG,SAAS,YAClB,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,QACvD,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM;;;oBAgB/B,CAAC;AAEL;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,WAAY,MAAM,QAAQ,MAAM,MAAM,MAAM,uCAOvE,CAAC"}
|
package/dist/proxmox/index.js
CHANGED
|
@@ -3725,7 +3725,7 @@ var attributesOf6 = (live, props) => {
|
|
|
3725
3725
|
"vlan-raw-device": text(data["vlan-raw-device"])
|
|
3726
3726
|
};
|
|
3727
3727
|
};
|
|
3728
|
-
var readInterfaceOrFail = (props) => readOrUnreadable(runPve(props.target, "read", false, nodes8.getNodeNetwork({ iface: props.iface, node: props.node })).pipe(Effect43.catchTag("
|
|
3728
|
+
var readInterfaceOrFail = (props) => readOrUnreadable(runPve(props.target, "read", false, nodes8.getNodeNetwork({ iface: props.iface, node: props.node })).pipe(Effect43.catchTag("NetworkInterfaceNotFound", () => Effect43.succeed(undefined)))).pipe(Effect43.map((live) => {
|
|
3729
3729
|
if (live === UNREADABLE)
|
|
3730
3730
|
return UNREADABLE;
|
|
3731
3731
|
return live === undefined ? undefined : attributesOf6(live, props);
|
|
@@ -6483,5 +6483,5 @@ export {
|
|
|
6483
6483
|
violations
|
|
6484
6484
|
};
|
|
6485
6485
|
|
|
6486
|
-
//# debugId=
|
|
6486
|
+
//# debugId=14E701EEC70A7BD764756E2164756E21
|
|
6487
6487
|
//# sourceMappingURL=index.js.map
|