@homeflare/alchemy 0.37.6 → 0.37.7
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/proxmox/firewall-alias-config.d.ts +36 -0
- package/dist/proxmox/firewall-alias-config.d.ts.map +1 -0
- package/dist/proxmox/firewall-alias-form.d.ts +3 -1
- package/dist/proxmox/firewall-alias-form.d.ts.map +1 -1
- package/dist/proxmox/firewall-alias-lifecycle.d.ts +43 -0
- package/dist/proxmox/firewall-alias-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/firewall-alias.d.ts +2 -8
- package/dist/proxmox/firewall-alias.d.ts.map +1 -1
- package/dist/proxmox/index.js +795 -526
- package/dist/proxmox/index.js.map +23 -10
- package/dist/proxmox/lxc-errors.d.ts +12 -0
- package/dist/proxmox/lxc-errors.d.ts.map +1 -0
- package/dist/proxmox/lxc-lifecycle.d.ts +9 -31
- package/dist/proxmox/lxc-lifecycle.d.ts.map +1 -1
- package/dist/proxmox/lxc-read.d.ts +4 -0
- package/dist/proxmox/lxc-read.d.ts.map +1 -0
- package/dist/proxmox/lxc-task.d.ts +15 -0
- package/dist/proxmox/lxc-task.d.ts.map +1 -0
- package/dist/proxmox/network-apply-read.d.ts +7 -14
- package/dist/proxmox/network-apply-read.d.ts.map +1 -1
- package/dist/proxmox/network-apply-run.d.ts +7 -0
- package/dist/proxmox/network-apply-run.d.ts.map +1 -0
- package/dist/proxmox/network-apply.d.ts +2 -3
- package/dist/proxmox/network-apply.d.ts.map +1 -1
- package/dist/proxmox/qemu-errors.d.ts +5 -0
- package/dist/proxmox/qemu-errors.d.ts.map +1 -0
- package/dist/proxmox/qemu-form.d.ts +22 -0
- package/dist/proxmox/qemu-form.d.ts.map +1 -0
- package/dist/proxmox/qemu-lifecycle.d.ts +26 -0
- package/dist/proxmox/qemu-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/qemu-read.d.ts +5 -0
- package/dist/proxmox/qemu-read.d.ts.map +1 -0
- package/dist/proxmox/qemu-task.d.ts +9 -0
- package/dist/proxmox/qemu-task.d.ts.map +1 -0
- package/dist/proxmox/qemu.d.ts +9 -14
- package/dist/proxmox/qemu.d.ts.map +1 -1
- package/dist/proxmox/replication-firewall-fixtures.d.ts +30 -0
- package/dist/proxmox/replication-firewall-fixtures.d.ts.map +1 -0
- package/dist/proxmox/replication-job-config.d.ts +56 -0
- package/dist/proxmox/replication-job-config.d.ts.map +1 -0
- package/dist/proxmox/replication-job-lifecycle.d.ts +62 -0
- package/dist/proxmox/replication-job-lifecycle.d.ts.map +1 -0
- package/dist/proxmox/replication-job.d.ts +5 -6
- package/dist/proxmox/replication-job.d.ts.map +1 -1
- package/dist/release/archive.d.ts.map +1 -1
- package/dist/release/index.js +3 -2
- package/dist/release/index.js.map +3 -3
- package/docs/proxmox-lxc-distilled.md +56 -0
- package/docs/proxmox-replication-firewall-distilled.md +53 -0
- package/docs/proxmox-sdk-migration.md +23 -18
- package/package.json +2 -2
- package/src/proxmox/firewall-alias-config.ts +39 -0
- package/src/proxmox/firewall-alias-form.ts +1 -1
- package/src/proxmox/firewall-alias-lifecycle.ts +100 -0
- package/src/proxmox/firewall-alias.ts +4 -67
- package/src/proxmox/lxc-create.test.ts +4 -1
- package/src/proxmox/lxc-distilled.test.ts +239 -0
- package/src/proxmox/lxc-errors.ts +9 -0
- package/src/proxmox/lxc-lifecycle.ts +31 -113
- package/src/proxmox/lxc-read.test.ts +29 -6
- package/src/proxmox/lxc-read.ts +88 -0
- package/src/proxmox/lxc-task.ts +71 -0
- package/src/proxmox/network-apply-distilled.test.ts +76 -0
- package/src/proxmox/network-apply-read.ts +18 -39
- package/src/proxmox/network-apply-run.ts +97 -0
- package/src/proxmox/network-apply.ts +5 -94
- package/src/proxmox/qemu-errors.ts +7 -0
- package/src/proxmox/qemu-form.ts +15 -0
- package/src/proxmox/qemu-lifecycle.test.ts +171 -0
- package/src/proxmox/qemu-lifecycle.ts +134 -0
- package/src/proxmox/qemu-read.ts +73 -0
- package/src/proxmox/qemu-task.ts +64 -0
- package/src/proxmox/qemu.ts +11 -44
- package/src/proxmox/replication-firewall-fixtures.ts +71 -0
- package/src/proxmox/replication-firewall-lifecycle.test.ts +109 -0
- package/src/proxmox/replication-firewall-wire.test.ts +173 -0
- package/src/proxmox/replication-job-config.ts +79 -0
- package/src/proxmox/replication-job-lifecycle.ts +113 -0
- package/src/proxmox/replication-job.ts +7 -84
- package/src/release/archive.ts +4 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Existing alias normalization and forms, independent of the named SDK transport. */
|
|
2
|
+
import type { FirewallAliasAttributes, FirewallAliasProps } from './firewall-alias.ts';
|
|
3
|
+
import { body } from './firewall-alias-form.ts';
|
|
4
|
+
export declare const firewallAliasSpec: {
|
|
5
|
+
/** The SDK read refuses malformed successful payloads before applying these normalizers. */
|
|
6
|
+
attributes: (live: Record<string, unknown>, props: FirewallAliasProps) => {
|
|
7
|
+
cidr: string;
|
|
8
|
+
comment: string;
|
|
9
|
+
ipversion: number;
|
|
10
|
+
/** The read checks identity; the stored spelling is preserved for display. */
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
collection: () => string;
|
|
14
|
+
createForm: (props: FirewallAliasProps) => {
|
|
15
|
+
cidr: string;
|
|
16
|
+
name: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* ⚠️ EXACTLY THE TWO FIELDS A PUT CAN PUT BACK, both sides through the same normalisers. `name`
|
|
20
|
+
* is identity and case-only drift (see the header); `ipversion` is derived and unwritable.
|
|
21
|
+
* Comparing either would report an update that no update can settle.
|
|
22
|
+
*/
|
|
23
|
+
/** The vendor rules these forms are checked against at plan time — resource-spec.ts. */
|
|
24
|
+
endpoint: {
|
|
25
|
+
create: string;
|
|
26
|
+
update: string;
|
|
27
|
+
};
|
|
28
|
+
matches: (attributes: FirewallAliasAttributes, props: FirewallAliasProps) => boolean;
|
|
29
|
+
/**
|
|
30
|
+
* ⚠️ UNESCAPED ON PURPOSE: `pve-fw-alias` admits only `[A-Za-z][A-Za-z0-9\-\_]+`, so there is no
|
|
31
|
+
* character here that a URL would need to encode, and PVE lowercases the segment on arrival.
|
|
32
|
+
*/
|
|
33
|
+
path: (props: FirewallAliasProps) => string;
|
|
34
|
+
updateForm: typeof body;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=firewall-alias-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firewall-alias-config.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias-config.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,IAAI,EAAiB,MAAM,0BAA0B,CAAC;AAG/D,eAAO,MAAM,iBAAiB;IAC5B,4FAA4F;;;;;QAOxF,8EAA8E;;;;;;;;IAMlF;;;;OAIG;IACH,wFAAwF;;QAEtF,MAAM;QACN,MAAM;;;IAIR;;;OAGG;;;CAG2D,CAAC"}
|
|
@@ -94,5 +94,7 @@ export declare const comment: (value: unknown) => string;
|
|
|
94
94
|
* this form would be a second, invisible identity for the object, set from a field the resource
|
|
95
95
|
* does not have.
|
|
96
96
|
*/
|
|
97
|
-
export declare const body: (props: FirewallAliasProps) => Record<string, string
|
|
97
|
+
export declare const body: (props: FirewallAliasProps) => Record<string, string> & {
|
|
98
|
+
cidr: string;
|
|
99
|
+
};
|
|
98
100
|
//# sourceMappingURL=firewall-alias-form.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firewall-alias-form.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,SAAU,MAAM,WAA8B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,IAAI,UAAW,OAAO,WAIlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,OAAO,UAAW,OAAO,WAGrC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,IAAI,UAAW,kBAAkB,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"firewall-alias-form.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;;;;;GAQG;AACH,eAAO,MAAM,IAAI,SAAU,MAAM,WAA8B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,IAAI,UAAW,OAAO,WAIlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,OAAO,UAAW,OAAO,WAGrC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,IAAI,UAAW,kBAAkB,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAGvF,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Input } from 'alchemy/Input';
|
|
2
|
+
import * as cluster from '@distilled.cloud/proxmox/cluster';
|
|
3
|
+
import * as Effect from 'effect/Effect';
|
|
4
|
+
import type { FirewallAliasAttributes, FirewallAliasProps } from './firewall-alias.ts';
|
|
5
|
+
export declare const readFirewallAlias: (props: FirewallAliasProps) => Effect.Effect<{
|
|
6
|
+
cidr: string;
|
|
7
|
+
comment: string;
|
|
8
|
+
ipversion: number;
|
|
9
|
+
name: string;
|
|
10
|
+
} | undefined, Error | import("./distilled-pve.ts").PveClusterExhausted | import("./credential-errors.ts").PveCredentialDenied | import("effect/Cause").TimeoutError | cluster.ProxmoxOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
11
|
+
/** Vendor deletion silently removes a missing key. All actual SDK failures still propagate. */
|
|
12
|
+
export declare const deleteFirewallAlias: (props: FirewallAliasProps) => Effect.Effect<cluster.DeleteClusterFirewallAliasResponse, Error | import("./distilled-pve.ts").PveClusterExhausted | import("./credential-errors.ts").PveCredentialDenied | import("effect/Cause").TimeoutError | cluster.ProxmoxOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
13
|
+
export declare const firewallAliasHandlers: {
|
|
14
|
+
list: () => Effect.Effect<never[], never, never>;
|
|
15
|
+
read: ({ olds }: {
|
|
16
|
+
olds: FirewallAliasProps;
|
|
17
|
+
}) => Effect.Effect<{
|
|
18
|
+
cidr: string;
|
|
19
|
+
comment: string;
|
|
20
|
+
ipversion: number;
|
|
21
|
+
name: string;
|
|
22
|
+
} | undefined, Error | import("./distilled-pve.ts").PveClusterExhausted | import("./credential-errors.ts").PveCredentialDenied | import("effect/Cause").TimeoutError | cluster.ProxmoxOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
23
|
+
diff: (args_0: {
|
|
24
|
+
news: Input<FirewallAliasProps>;
|
|
25
|
+
output: FirewallAliasAttributes | undefined;
|
|
26
|
+
}) => Effect.Effect<{
|
|
27
|
+
readonly action: 'replace';
|
|
28
|
+
} | {
|
|
29
|
+
readonly action: "noop" | "update";
|
|
30
|
+
} | undefined, Error | import("effect/unstable/http/HttpClientError").HttpClientError | import("./credential-errors.ts").PveCredentialDenied, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
31
|
+
reconcile: (args_0: {
|
|
32
|
+
news: FirewallAliasProps;
|
|
33
|
+
}) => Effect.Effect<{
|
|
34
|
+
cidr: string;
|
|
35
|
+
comment: string;
|
|
36
|
+
ipversion: number;
|
|
37
|
+
name: string;
|
|
38
|
+
}, Error | import("effect/unstable/http/HttpClientError").HttpClientError | import("./credential-errors.ts").PveCredentialDenied, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
39
|
+
delete: ({ olds }: {
|
|
40
|
+
olds: FirewallAliasProps;
|
|
41
|
+
}) => Effect.Effect<cluster.DeleteClusterFirewallAliasResponse, Error | import("./distilled-pve.ts").PveClusterExhausted | import("./credential-errors.ts").PveCredentialDenied | import("effect/Cause").TimeoutError | cluster.ProxmoxOpError, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=firewall-alias-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firewall-alias-lifecycle.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAE5D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AASvF,eAAO,MAAM,iBAAiB,UAAW,kBAAkB;;;;;oPA0BxD,CAAC;AAEJ,+FAA+F;AAC/F,eAAO,MAAM,mBAAmB,UAAW,kBAAkB,oSACsC,CAAC;AAEpG,eAAO,MAAM,qBAAqB;IAChC,IAAI;IACJ,IAAI,aAAa;QAAE,IAAI,EAAE,kBAAkB,CAAA;KAAE;;;;;;IAC7C,IAAI;cAII,KAAK,CAAC,kBAAkB,CAAC;gBACvB,uBAAuB,GAAG,SAAS;;yBAOiB,SAAS;;;;IAQvE,SAAS;cAAyC,kBAAkB;;;;;;;IA4BpE,MAAM,aAAa;QAAE,IAAI,EAAE,kBAAkB,CAAA;KAAE;CAChD,CAAC"}
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
*/
|
|
95
95
|
import { Resource } from 'alchemy';
|
|
96
96
|
import * as Provider from 'alchemy/Provider';
|
|
97
|
-
import {
|
|
97
|
+
import type { PveRequirements, WithTarget } from './resource-spec.ts';
|
|
98
98
|
export interface FirewallAliasProps extends WithTarget {
|
|
99
99
|
/**
|
|
100
100
|
* PVE's `pve-fw-alias`: a letter, then at least one more of letter/digit/`-`/`_`, to 64 chars.
|
|
@@ -130,12 +130,6 @@ export interface FirewallAliasAttributes {
|
|
|
130
130
|
export interface ProxmoxFirewallAlias extends Resource<'Proxmox.FirewallAlias', FirewallAliasProps, FirewallAliasAttributes, never, PveRequirements> {
|
|
131
131
|
}
|
|
132
132
|
export declare const ProxmoxFirewallAlias: import("alchemy").ResourceClass<ProxmoxFirewallAlias>;
|
|
133
|
-
/**
|
|
134
|
-
* ⛔ ONE HANDLER IS OVERRIDDEN AND THE REST COME FROM THE FACTORY, for the reason `acl.ts` spells
|
|
135
|
-
* out at length: the factory answers `replace` only for an object with no update path, and this
|
|
136
|
-
* one has a PUT. Left to delegate, a changed `name` would read absent at the new path, plan as an
|
|
137
|
-
* update, and quietly leave the old alias behind. Everything else — the empty `list`, the read,
|
|
138
|
-
* the read-back-guarded reconcile, the delete — is the factory's, unchanged.
|
|
139
|
-
*/
|
|
133
|
+
/** Named distilled operations preserve create-first identity replacement and explicit adoption. */
|
|
140
134
|
export declare const ProxmoxFirewallAliasProvider: () => import("effect/Layer").Layer<Provider.Provider<ProxmoxFirewallAlias>, never, import("effect/unstable/http/HttpClient").HttpClient>;
|
|
141
135
|
//# sourceMappingURL=firewall-alias.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firewall-alias.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"firewall-alias.d.ts","sourceRoot":"","sources":["../../src/proxmox/firewall-alias.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGtE,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,QAAQ,CACpD,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,KAAK,EACL,eAAe,CAChB;CAAG;AAEJ,eAAO,MAAM,oBAAoB,uDAA0D,CAAC;AAE5F,mGAAmG;AACnG,eAAO,MAAM,4BAA4B,0IAItC,CAAC"}
|