pmcf 3.10.25 → 3.11.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 (64) hide show
  1. package/bin/pmcf-info +2 -1
  2. package/package.json +5 -5
  3. package/src/base.mjs +32 -29
  4. package/src/cluster.mjs +3 -2
  5. package/src/host.mjs +3 -5
  6. package/src/location.mjs +1 -0
  7. package/src/network-interfaces/ethernet.mjs +1 -0
  8. package/src/network-interfaces/loopback.mjs +4 -6
  9. package/src/network-interfaces/network-interface.mjs +11 -2
  10. package/src/network-interfaces/tun.mjs +1 -1
  11. package/src/network-interfaces/wireguard.mjs +1 -1
  12. package/src/network-interfaces/wlan.mjs +1 -0
  13. package/src/network-support.mjs +8 -3
  14. package/src/network.mjs +2 -1
  15. package/src/owner.mjs +3 -1
  16. package/src/root.mjs +1 -3
  17. package/src/service-owner.mjs +11 -3
  18. package/src/service.mjs +4 -2
  19. package/src/services/bind.mjs +6 -3
  20. package/src/services/chrony.mjs +4 -6
  21. package/src/services/headscale.mjs +1 -1
  22. package/src/services/influxdb.mjs +1 -0
  23. package/src/services/kea.mjs +14 -12
  24. package/src/services/mosquitto.mjs +1 -0
  25. package/src/services/openldap.mjs +1 -0
  26. package/src/services/systemd-journal-remote.mjs +1 -1
  27. package/src/services/systemd-journal-upload.mjs +1 -0
  28. package/src/services/systemd-journal.mjs +2 -2
  29. package/src/services/systemd-resolved.mjs +8 -6
  30. package/src/services/systemd-timesyncd.mjs +7 -7
  31. package/src/subnet.mjs +3 -1
  32. package/src/types.mjs +16 -38
  33. package/types/base.d.mts +5 -3
  34. package/types/cluster.d.mts +56 -10
  35. package/types/extra-source-service.d.mts +510 -9
  36. package/types/host.d.mts +20 -7
  37. package/types/location.d.mts +71 -6
  38. package/types/network-interfaces/ethernet.d.mts +630 -26
  39. package/types/network-interfaces/loopback.d.mts +629 -27
  40. package/types/network-interfaces/network-interface.d.mts +628 -26
  41. package/types/network-interfaces/tun.d.mts +629 -27
  42. package/types/network-interfaces/wireguard.d.mts +629 -27
  43. package/types/network-interfaces/wlan.d.mts +947 -40
  44. package/types/network-support.d.mts +54 -11
  45. package/types/network.d.mts +324 -8
  46. package/types/owner.d.mts +35 -3
  47. package/types/root.d.mts +71 -8
  48. package/types/service-owner.d.mts +1 -0
  49. package/types/service.d.mts +363 -13
  50. package/types/services/bind.d.mts +706 -23
  51. package/types/services/chrony.d.mts +689 -15
  52. package/types/services/headscale.d.mts +689 -15
  53. package/types/services/influxdb.d.mts +527 -14
  54. package/types/services/kea.d.mts +539 -18
  55. package/types/services/mosquitto.d.mts +530 -15
  56. package/types/services/openldap.d.mts +524 -13
  57. package/types/services/systemd-journal-remote.d.mts +524 -14
  58. package/types/services/systemd-journal-upload.d.mts +524 -13
  59. package/types/services/systemd-journal.d.mts +524 -14
  60. package/types/services/systemd-resolved.d.mts +689 -15
  61. package/types/services/systemd-timesyncd.d.mts +763 -90
  62. package/types/subnet.d.mts +14 -0
  63. package/src/filter.mjs +0 -91
  64. package/types/filter.d.mts +0 -1
@@ -5,12 +5,26 @@ export class Subnet extends Base {
5
5
  owners: string[];
6
6
  priority: number;
7
7
  constructWithIdentifierOnly: boolean;
8
+ key: string;
8
9
  attributes: {
9
10
  address: import("pacc").AttributeDefinition;
10
11
  networks: {
11
12
  type: string;
12
13
  collection: boolean;
14
+ isKey: boolean;
13
15
  writable: boolean;
16
+ mandatory: boolean;
17
+ private?: boolean;
18
+ depends?: string;
19
+ description?: string;
20
+ default?: any;
21
+ set?: Function;
22
+ get?: Function;
23
+ prepareValue?: Function;
24
+ values?: Set<any>;
25
+ externalName?: string;
26
+ env?: string[] | string;
27
+ additionalValues?: object;
14
28
  };
15
29
  prefixLength: import("pacc").AttributeDefinition;
16
30
  family: import("pacc").AttributeDefinition;
package/src/filter.mjs DELETED
@@ -1,91 +0,0 @@
1
- export function* objectFilter(type, objects, filter) {
2
- if (filter) {
3
- advance: for (const object of objects) {
4
- const compare = (op, key, value) => {
5
- switch (op) {
6
- case "=":
7
- return object[key] == value;
8
- case "!=":
9
- return object[key] != value;
10
- case "<":
11
- return object[key] < value;
12
- case "<=":
13
- return object[key] <= value;
14
- case ">":
15
- return object[key] > value;
16
- case ">=":
17
- return object[key] >= value;
18
- }
19
- return false;
20
- };
21
-
22
- const filterString = key => {
23
- if (filter[key] === undefined || filter[key] === object[key]) {
24
- return true;
25
- }
26
-
27
- for (const value of filter[key].split("|")) {
28
- if (object[key] === value) {
29
- return true;
30
- }
31
- }
32
-
33
- return false;
34
- };
35
-
36
- const filterNumber = key => {
37
- switch (typeof filter[key]) {
38
- case "undefined":
39
- return true;
40
- case "number":
41
- return filter[key] === object[key];
42
- case "string":
43
- let m = filter[key].match(/^([=><!]+)(\d+)/);
44
- if (m) {
45
- return compare(m[1], key, parseInt(m[2]));
46
- }
47
-
48
- m = filter[key].match(/^\[(\d+):(\d+)\]/);
49
- if (m) {
50
- const lower = parseInt(m[1]);
51
- const upper = parseInt(m[2]);
52
- return lower <= object[key] && upper >= object[key];
53
- }
54
- }
55
- return false;
56
- };
57
- for (let t = type; t; t = t.extends) {
58
- for (const [name, attribute] of Object.entries(t.attributes)) {
59
- switch (attribute.type[0]) {
60
- case "boolean":
61
- if (filter[name] !== undefined && filter[name] != object[name]) {
62
- continue advance;
63
- }
64
- break;
65
-
66
- case "number":
67
- if (!filterNumber(name)) {
68
- continue advance;
69
- }
70
- break;
71
- case "string":
72
- if (attribute.collection && filter[name] !== undefined) {
73
- const value = object[name];
74
-
75
- if (value instanceof Set && value.has(filter[name])) {
76
- break;
77
- }
78
- continue advance;
79
- } else if (!filterString(name)) {
80
- continue advance;
81
- }
82
- break;
83
- }
84
- }
85
- }
86
- yield object;
87
- }
88
- } else {
89
- yield* objects;
90
- }
91
- }
@@ -1 +0,0 @@
1
- export function objectFilter(type: any, objects: any, filter: any): Generator<any, void, any>;