@homeflare/alchemy 0.54.0 → 0.55.0

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 (43) hide show
  1. package/dist/ceph/ceph-argv-config.d.ts +6 -3
  2. package/dist/ceph/ceph-argv-config.d.ts.map +1 -1
  3. package/dist/ceph/ceph-argv.d.ts +8 -0
  4. package/dist/ceph/ceph-argv.d.ts.map +1 -1
  5. package/dist/ceph/ceph-config-option-form.d.ts +48 -0
  6. package/dist/ceph/ceph-config-option-form.d.ts.map +1 -0
  7. package/dist/ceph/ceph-config-option-reconcile.d.ts +22 -0
  8. package/dist/ceph/ceph-config-option-reconcile.d.ts.map +1 -0
  9. package/dist/ceph/ceph-config-options.d.ts +15 -6
  10. package/dist/ceph/ceph-config-options.d.ts.map +1 -1
  11. package/dist/ceph/config-option.d.ts +10 -0
  12. package/dist/ceph/config-option.d.ts.map +1 -0
  13. package/dist/ceph/index.d.ts +7 -3
  14. package/dist/ceph/index.d.ts.map +1 -1
  15. package/dist/ceph/index.js +363 -8
  16. package/dist/ceph/index.js.map +17 -7
  17. package/dist/linux/index.js +33 -2
  18. package/dist/linux/index.js.map +3 -3
  19. package/dist/linux/sudo-runner.d.ts +12 -0
  20. package/dist/linux/sudo-runner.d.ts.map +1 -1
  21. package/dist/proxmox/index.d.ts +1 -0
  22. package/dist/proxmox/index.d.ts.map +1 -1
  23. package/dist/proxmox/index.js +101 -1
  24. package/dist/proxmox/index.js.map +5 -4
  25. package/dist/proxmox/scoped-api.d.ts +49 -0
  26. package/dist/proxmox/scoped-api.d.ts.map +1 -0
  27. package/docs/pve-scoped-api.md +23 -0
  28. package/package.json +1 -1
  29. package/src/ceph/ceph-argv-config.ts +27 -19
  30. package/src/ceph/ceph-argv.test.ts +37 -1
  31. package/src/ceph/ceph-argv.ts +25 -0
  32. package/src/ceph/ceph-config-option-form.ts +73 -0
  33. package/src/ceph/ceph-config-option-reconcile.ts +88 -0
  34. package/src/ceph/ceph-config-option.test.ts +213 -0
  35. package/src/ceph/ceph-config-options.test.ts +28 -11
  36. package/src/ceph/ceph-config-options.ts +29 -8
  37. package/src/ceph/config-option.ts +112 -0
  38. package/src/ceph/index.ts +7 -3
  39. package/src/linux/sudo-runner-privileged-read.test.ts +92 -0
  40. package/src/linux/sudo-runner.ts +54 -1
  41. package/src/proxmox/index.ts +13 -0
  42. package/src/proxmox/scoped-api.test.ts +52 -0
  43. package/src/proxmox/scoped-api.ts +148 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proxmox/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,KAAK,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,0BAA0B,GAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAGvE,OAAO,EACL,UAAU,EACV,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,SAAS,EACT,WAAW,EACX,YAAY,GACb,MAAM,iBAAiB,CAAC"}
@@ -7383,7 +7383,104 @@ var ProxmoxZfsPoolProvider = () => Provider36.effect(ProxmoxZfsPool, Effect103.s
7383
7383
  yield* destroyPool(olds);
7384
7384
  })
7385
7385
  })));
7386
+ // src/proxmox/scoped-api.ts
7387
+ var scopedTarget = (target, tier) => ({
7388
+ ...target,
7389
+ roles: { read: tier, provision: tier }
7390
+ });
7391
+ var NODE = /^[a-z0-9][a-z0-9-]{0,62}$/;
7392
+ var need = (ok, what) => {
7393
+ if (!ok)
7394
+ throw new Error(`pveScoped: invalid ${what}`);
7395
+ };
7396
+ var node = (n) => (need(NODE.test(n), "node name"), n);
7397
+ var vmid = (v) => (need(Number.isInteger(v) && v >= 100 && v <= 999999999, "vmid"), String(v));
7398
+ var osd = (o) => (need(Number.isInteger(o) && o >= 0 && o < 1e5, "osd id"), String(o));
7399
+ var CEPH_FLAGS = [
7400
+ "noout",
7401
+ "norebalance",
7402
+ "norecover",
7403
+ "nobackfill",
7404
+ "noscrub",
7405
+ "nodeep-scrub"
7406
+ ];
7407
+ var CT_CONFIG_KEYS = [
7408
+ "cores",
7409
+ "cpulimit",
7410
+ "memory",
7411
+ "swap",
7412
+ "onboot",
7413
+ "description",
7414
+ "tags"
7415
+ ];
7416
+ var scopedCalls = {
7417
+ cephStatus: () => ({
7418
+ tier: "ceph-ops",
7419
+ role: "read",
7420
+ method: "GET",
7421
+ path: "/cluster/ceph/status"
7422
+ }),
7423
+ cephFlags: () => ({
7424
+ tier: "ceph-ops",
7425
+ role: "read",
7426
+ method: "GET",
7427
+ path: "/cluster/ceph/flags"
7428
+ }),
7429
+ cephSetFlag: (flag2, on) => {
7430
+ need(CEPH_FLAGS.includes(flag2), "ceph flag");
7431
+ return {
7432
+ tier: "ceph-ops",
7433
+ role: "provision",
7434
+ method: "PUT",
7435
+ path: `/cluster/ceph/flags/${flag2}`,
7436
+ form: { value: on ? "1" : "0" }
7437
+ };
7438
+ },
7439
+ cephOsd: (n, id, to) => {
7440
+ need(to === "in" || to === "out", "osd direction");
7441
+ return {
7442
+ tier: "ceph-ops",
7443
+ role: "provision",
7444
+ method: "POST",
7445
+ path: `/nodes/${node(n)}/ceph/osd/${osd(id)}/${to}`
7446
+ };
7447
+ },
7448
+ ctConfig: (n, id) => ({
7449
+ tier: "ct-config",
7450
+ role: "read",
7451
+ method: "GET",
7452
+ path: `/nodes/${node(n)}/lxc/${vmid(id)}/config`
7453
+ }),
7454
+ ctSetConfig: (n, id, patch) => {
7455
+ const keys = Object.keys(patch);
7456
+ need(keys.length > 0, "empty config patch");
7457
+ for (const k of keys)
7458
+ need(CT_CONFIG_KEYS.includes(k), `config key ${k}`);
7459
+ const form2 = {};
7460
+ for (const [k, v] of Object.entries(patch))
7461
+ form2[k] = typeof v === "boolean" ? v ? "1" : "0" : String(v);
7462
+ return {
7463
+ tier: "ct-config",
7464
+ role: "provision",
7465
+ method: "PUT",
7466
+ path: `/nodes/${node(n)}/lxc/${vmid(id)}/config`,
7467
+ form: form2
7468
+ };
7469
+ },
7470
+ ctPower: (n, id, action) => {
7471
+ need(["start", "shutdown", "reboot"].includes(action), "power action");
7472
+ return {
7473
+ tier: "ct-config",
7474
+ role: "provision",
7475
+ method: "POST",
7476
+ path: `/nodes/${node(n)}/lxc/${vmid(id)}/status/${action}`
7477
+ };
7478
+ }
7479
+ };
7480
+ var pveScoped = (target, call) => pve(scopedTarget(target, call.tier), call.role, call.method, call.path, call.form);
7386
7481
  export {
7482
+ CEPH_FLAGS,
7483
+ CT_CONFIG_KEYS,
7387
7484
  PROVISION_DEFAULTS,
7388
7485
  PROVISION_PRIVILEGES,
7389
7486
  PbsDatastore,
@@ -7460,8 +7557,11 @@ export {
7460
7557
  formViolations,
7461
7558
  provisionBaseline,
7462
7559
  provisionBootstrap,
7560
+ pveScoped,
7561
+ scopedCalls,
7562
+ scopedTarget,
7463
7563
  violations
7464
7564
  };
7465
7565
 
7466
- //# debugId=35034B7C4FF7C46964756E2164756E21
7566
+ //# debugId=5BBCD08A51EE945964756E2164756E21
7467
7567
  //# sourceMappingURL=index.js.map