pmcf 3.0.0 → 3.1.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 (45) hide show
  1. package/package.json +3 -3
  2. package/src/base.mjs +9 -9
  3. package/src/cluster.mjs +5 -5
  4. package/src/extra-source-service.mjs +1 -1
  5. package/src/host.mjs +19 -19
  6. package/src/location.mjs +1 -1
  7. package/src/network-interfaces/ethernet.mjs +1 -1
  8. package/src/network-interfaces/network-interface.mjs +6 -6
  9. package/src/network-support.mjs +14 -14
  10. package/src/network.mjs +2 -2
  11. package/src/owner.mjs +11 -11
  12. package/src/service.mjs +7 -7
  13. package/src/services/bind.mjs +18 -18
  14. package/src/services/chrony.mjs +0 -1
  15. package/src/services/kea.mjs +46 -6
  16. package/src/services/openldap.mjs +3 -3
  17. package/src/services/systemd-journal-upload.mjs +1 -1
  18. package/src/subnet.mjs +2 -2
  19. package/types/base.d.mts +8 -14
  20. package/types/cluster.d.mts +58 -95
  21. package/types/extra-source-service.d.mts +22 -37
  22. package/types/host.d.mts +32 -56
  23. package/types/location.d.mts +43 -70
  24. package/types/network-interfaces/ethernet.d.mts +56 -96
  25. package/types/network-interfaces/loopback.d.mts +54 -94
  26. package/types/network-interfaces/network-interface.d.mts +54 -94
  27. package/types/network-interfaces/wireguard.d.mts +54 -94
  28. package/types/network-interfaces/wlan.d.mts +82 -142
  29. package/types/network-support.d.mts +16 -27
  30. package/types/network.d.mts +31 -50
  31. package/types/owner.d.mts +21 -34
  32. package/types/root.d.mts +43 -70
  33. package/types/service.d.mts +44 -77
  34. package/types/services/bind.d.mts +59 -101
  35. package/types/services/chrony.d.mts +41 -71
  36. package/types/services/influxdb.d.mts +40 -70
  37. package/types/services/kea.d.mts +122 -71
  38. package/types/services/mosquitto.d.mts +40 -70
  39. package/types/services/openldap.d.mts +43 -76
  40. package/types/services/systemd-journal-remote.d.mts +40 -70
  41. package/types/services/systemd-journal-upload.d.mts +41 -72
  42. package/types/services/systemd-journal.d.mts +40 -70
  43. package/types/services/systemd-resolved.d.mts +40 -70
  44. package/types/services/systemd-timesyncd.d.mts +40 -70
  45. package/types/subnet.d.mts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -51,8 +51,8 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "ip-utilties": "^1.4.7",
54
- "npm-pkgbuild": "^18.2.12",
55
- "pacc": "^3.13.2",
54
+ "npm-pkgbuild": "^18.2.16",
55
+ "pacc": "^4.0.0",
56
56
  "package-directory": "^8.1.0"
57
57
  },
58
58
  "devDependencies": {
package/src/base.mjs CHANGED
@@ -8,23 +8,23 @@ const BaseTypeDefinition = {
8
8
  name: "base",
9
9
  owners: [],
10
10
  properties: {
11
- owner: { type: "base", collection: false, writeable: false },
11
+ owner: { type: "base", collection: false, writable: false },
12
12
  type: default_attribute,
13
13
  name: {
14
14
  ...default_attribute,
15
15
  isKey: true,
16
- writeable: true
16
+ writable: true
17
17
  },
18
- description: { ...description_attribute, writeable: true },
19
- priority: { type: "number", collection: false, writeable: true },
20
- directory: { ...default_attribute, writeable: false },
21
- packaging: { ...default_attribute, writeable: true },
18
+ description: { ...description_attribute, writable: true },
19
+ priority: { type: "number", collection: false, writable: true },
20
+ directory: { ...default_attribute, writable: false },
21
+ packaging: { ...default_attribute, writable: true },
22
22
  disabled: {
23
23
  ...boolean_attribute,
24
- writeable: true,
24
+ writable: true,
25
25
  default: false
26
26
  },
27
- tags: { ...default_attribute, collection: true, writeable: true }
27
+ tags: { ...default_attribute, collection: true, writable: true }
28
28
  }
29
29
  };
30
30
 
@@ -223,7 +223,7 @@ export class Base {
223
223
  }
224
224
 
225
225
  for (const property of Object.values(type.properties)) {
226
- if (property.writeable) {
226
+ if (property.writable) {
227
227
  const value = this.expand(data[property.name]);
228
228
 
229
229
  if (property.collection) {
package/src/cluster.mjs CHANGED
@@ -12,11 +12,11 @@ const ClusterTypeDefinition = {
12
12
  priority: 0.7,
13
13
  extends: Host.typeDefinition,
14
14
  properties: {
15
- routerId: { type: "number", collection: false, writeable: true },
16
- masters: { type: "network_interface", collection: true, writeable: true },
17
- backups: { type: "network_interface", collection: true, writeable: true },
18
- members: { type: "network_interface", collection: true, writeable: false },
19
- checkInterval: { type: "number", collection: false, writeable: true }
15
+ routerId: { type: "number", collection: false, writable: true },
16
+ masters: { type: "network_interface", collection: true, writable: true },
17
+ backups: { type: "network_interface", collection: true, writable: true },
18
+ members: { type: "network_interface", collection: true, writable: false },
19
+ checkInterval: { type: "number", collection: false, writable: true }
20
20
  }
21
21
  };
22
22
 
@@ -7,7 +7,7 @@ export const ExtraSourceServiceTypeDefinition = {
7
7
  extends: ServiceTypeDefinition,
8
8
  priority: 0.1,
9
9
  properties: {
10
- source: { type: "network", collection: true, writeable: true }
10
+ source: { type: "network", collection: true, writable: true }
11
11
  }
12
12
  };
13
13
 
package/src/host.mjs CHANGED
@@ -28,29 +28,29 @@ const HostTypeDefinition = {
28
28
  networkInterfaces: {
29
29
  type: "network_interface",
30
30
  collection: true,
31
- writeable: true
31
+ writable: true
32
32
  },
33
- services: { type: "service", collection: true, writeable: true },
34
- aliases: { type: "string", collection: true, writeable: true },
33
+ services: { type: "service", collection: true, writable: true },
34
+ aliases: { type: "string", collection: true, writable: true },
35
35
  os: {
36
36
  ...default_attribute,
37
- writeable: true,
37
+ writable: true,
38
38
  values: ["osx", "windows", "linux"]
39
39
  },
40
- "machine-id": { ...default_attribute, writeable: true },
41
- distribution: { ...default_attribute, writeable: true },
40
+ "machine-id": { ...default_attribute, writable: true },
41
+ distribution: { ...default_attribute, writable: true },
42
42
  deployment: {
43
43
  ...default_attribute,
44
- writeable: true,
44
+ writable: true,
45
45
  values: ["production", "development"]
46
46
  },
47
- weight: { type: "number", collection: false, writeable: true },
48
- serial: { ...default_attribute, writeable: true },
49
- vendor: { ...default_attribute, writeable: true },
50
- keymap: { ...default_attribute, writeable: true },
47
+ weight: { type: "number", collection: false, writable: true },
48
+ serial: { ...default_attribute, writable: true },
49
+ vendor: { ...default_attribute, writable: true },
50
+ keymap: { ...default_attribute, writable: true },
51
51
  chassis: {
52
52
  ...default_attribute,
53
- writeable: true,
53
+ writable: true,
54
54
  values: [
55
55
  "phone",
56
56
  "tablet",
@@ -68,15 +68,15 @@ const HostTypeDefinition = {
68
68
  },
69
69
  architecture: {
70
70
  ...default_attribute,
71
- writeable: true,
71
+ writable: true,
72
72
  values: ["x86", "x86_64", "aarch64", "armv7"]
73
73
  },
74
- replaces: { ...default_attribute, collection: true, writeable: true },
75
- depends: { ...default_attribute, collection: true, writeable: true },
76
- provides: { ...default_attribute, collection: true, writeable: true },
77
- extends: { type: "host", collection: true, writeable: true },
78
- model: { ...default_attribute, collection: false, writeable: false },
79
- isModel: { type: "boolean", collection: false, writeable: false }
74
+ replaces: { ...default_attribute, collection: true, writable: true },
75
+ depends: { ...default_attribute, collection: true, writable: true },
76
+ provides: { ...default_attribute, collection: true, writable: true },
77
+ extends: { type: "host", collection: true, writable: true },
78
+ model: { ...default_attribute, collection: false, writable: false },
79
+ isModel: { type: "boolean", collection: false, writable: false }
80
80
  }
81
81
  };
82
82
 
package/src/location.mjs CHANGED
@@ -10,7 +10,7 @@ const LocationTypeDefinition = {
10
10
  priority: 1.0,
11
11
  extends: Owner.typeDefinition,
12
12
  properties: {
13
- locales: { ...default_attribute, collection: true, writeable: true }
13
+ locales: { ...default_attribute, collection: true, writable: true }
14
14
  }
15
15
  };
16
16
 
@@ -11,7 +11,7 @@ export const EthernetNetworkInterfaceTypeDefinition = {
11
11
  extends: NetworkInterfaceTypeDefinition,
12
12
  priority: 0.1,
13
13
  properties: {
14
- arpbridge: { type: "network_interface", collection: true, writeable: true }
14
+ arpbridge: { type: "network_interface", collection: true, writable: true }
15
15
  }
16
16
  };
17
17
 
@@ -39,13 +39,13 @@ export const NetworkInterfaceTypeDefinition = {
39
39
  ...networkProperties,
40
40
  ...networkAddressProperties,
41
41
 
42
- services: { type: "service", collection: true, writeable: true },
43
- hostName: { ...hostname_attribute, writeable: true },
44
- ipAddresses: { ...default_attribute, writeable: true },
42
+ services: { type: "service", collection: true, writable: true },
43
+ hostName: { ...hostname_attribute, writable: true },
44
+ ipAddresses: { ...default_attribute, writable: true },
45
45
 
46
- hwaddr: { ...default_attribute, writeable: true },
47
- network: { type: "network", collection: false, writeable: true },
48
- destination: { ...default_attribute, writeable: true }
46
+ hwaddr: { ...default_attribute, writable: true },
47
+ network: { type: "network", collection: false, writable: true },
48
+ destination: { ...default_attribute, writable: true }
49
49
  }
50
50
  };
51
51
 
@@ -3,35 +3,35 @@ import { default_attribute, hostname_attribute, boolean_attribute } from "pacc";
3
3
  export const networkProperties = {
4
4
  scope: {
5
5
  ...default_attribute,
6
- writeable: true,
6
+ writable: true,
7
7
  values: ["global", "site", "link", "host"],
8
8
  default: "global"
9
9
  },
10
10
  class: {
11
11
  ...default_attribute,
12
- writeable: true,
12
+ writable: true,
13
13
  values: ["10GBASE-T", "1000BASE-T", "100BASE-T", "10BASE-T"]
14
14
  },
15
15
  kind: {
16
16
  ...default_attribute,
17
- writeable: true,
17
+ writable: true,
18
18
  values: ["loopback", "ethernet", "wlan", "wireguard", "fiber", "dsl"]
19
19
  },
20
- ssid: { ...default_attribute, writeable: true },
21
- psk: { ...default_attribute, writeable: true },
22
- metric: { type: "number", collection: false, writeable: true, default: 1004 },
23
- mtu: { type: "number", collection: false, writeable: true, default: 1500 },
24
- gateway: { type: "host", collection: false, writeable: true },
20
+ ssid: { ...default_attribute, writable: true },
21
+ psk: { ...default_attribute, writable: true },
22
+ metric: { type: "number", collection: false, writable: true, default: 1004 },
23
+ mtu: { type: "number", collection: false, writable: true, default: 1500 },
24
+ gateway: { type: "host", collection: false, writable: true },
25
25
  multicastDNS: {
26
26
  ...boolean_attribute,
27
- writeable: true
27
+ writable: true
28
28
  }
29
29
  };
30
30
 
31
31
  export const networkAddressProperties = {
32
- hostName: { ...hostname_attribute, writeable: true },
33
- cidrAddresses: { ...default_attribute, collection: true, writeable: false },
34
- cidrAddress: { ...default_attribute, writeable: false },
35
- addresses: { ...default_attribute, collection: true, writeable: false },
36
- address: { ...default_attribute, writeable: false }
32
+ hostName: { ...hostname_attribute, writable: true },
33
+ cidrAddresses: { ...default_attribute, collection: true, writable: false },
34
+ cidrAddress: { ...default_attribute, writable: false },
35
+ addresses: { ...default_attribute, collection: true, writable: false },
36
+ address: { ...default_attribute, writable: false }
37
37
  };
package/src/network.mjs CHANGED
@@ -10,8 +10,8 @@ const NetworkTypeDefinition = {
10
10
  extends: Owner.typeDefinition,
11
11
  properties: {
12
12
  ...networkProperties,
13
- bridge: { type: "network", collection: true, writeable: true },
14
- gateway: { type: "host", collection: false, writeable: true }
13
+ bridge: { type: "network", collection: true, writable: true },
14
+ gateway: { type: "host", collection: false, writable: true }
15
15
  }
16
16
  };
17
17
 
package/src/owner.mjs CHANGED
@@ -11,17 +11,17 @@ const OwnerTypeDefinition = {
11
11
  priority: 0.9,
12
12
  extends: Base.typeDefinition,
13
13
  properties: {
14
- networks: { type: "network", collection: true, writeable: true },
15
- hosts: { type: "host", collection: true, writeable: true },
16
- clusters: { type: "cluster", collection: true, writeable: true },
17
- subnets: { type: Subnet.typeDefinition, collection: true, writeable: true },
18
- country: { ...default_attribute, writeable: true },
19
- domain: { ...default_attribute, writeable: true },
20
- domains: { ...default_attribute, collection: true, writeable: true },
21
- timezone: { ...default_attribute, writeable: true },
22
- architectures: { ...default_attribute, collection: true, writeable: true },
23
- locales: { ...default_attribute, collection: true, writeable: true },
24
- administratorEmail: { ...email_attribute, writeable: true }
14
+ networks: { type: "network", collection: true, writable: true },
15
+ hosts: { type: "host", collection: true, writable: true },
16
+ clusters: { type: "cluster", collection: true, writable: true },
17
+ subnets: { type: Subnet.typeDefinition, collection: true, writable: true },
18
+ country: { ...default_attribute, writable: true },
19
+ domain: { ...default_attribute, writable: true },
20
+ domains: { ...default_attribute, collection: true, writable: true },
21
+ timezone: { ...default_attribute, writable: true },
22
+ architectures: { ...default_attribute, collection: true, writable: true },
23
+ locales: { ...default_attribute, collection: true, writable: true },
24
+ administratorEmail: { ...email_attribute, writable: true }
25
25
  }
26
26
  };
27
27
 
package/src/service.mjs CHANGED
@@ -20,17 +20,17 @@ import {
20
20
  } from "./dns-utils.mjs";
21
21
 
22
22
  export const endpointProperties = {
23
- port: { type: "number", collection: false, writeable: true },
23
+ port: { type: "number", collection: false, writable: true },
24
24
  protocol: {
25
25
  ...default_attribute,
26
- writeable: true,
26
+ writable: true,
27
27
  values: ["tcp", "udp"]
28
28
  },
29
- type: { ...default_attribute, writeable: true },
29
+ type: { ...default_attribute, writable: true },
30
30
  types: { ...default_attribute, collection: true },
31
31
  tls: {
32
32
  ...boolean_attribute,
33
- writeable: false
33
+ writable: false
34
34
  }
35
35
  };
36
36
 
@@ -62,9 +62,9 @@ export const ServiceTypeDefinition = {
62
62
  properties: {
63
63
  ...networkAddressProperties,
64
64
  ...endpointProperties,
65
- alias: { ...default_attribute, writeable: true },
66
- weight: { type: "number", collection: false, writeable: true, default: 1 },
67
- systemd: { type: "string", collection: true, writeable: true }
65
+ alias: { ...default_attribute, writable: true },
66
+ weight: { type: "number", collection: false, writable: true, default: 1 },
67
+ systemd: { type: "string", collection: true, writable: true }
68
68
  }
69
69
  };
70
70
 
@@ -28,52 +28,52 @@ const BindServiceTypeDefinition = {
28
28
  addresses: {
29
29
  type: ["network", "host", "network_interface", "location", "owner"],
30
30
  collection: true,
31
- writeable: true
31
+ writable: true
32
32
  },
33
33
 
34
34
  trusted: {
35
35
  type: address_types,
36
36
  collection: true,
37
- writeable: true
37
+ writable: true
38
38
  },
39
- protected: { type: address_types, collection: true, writeable: true },
40
- internal: { type: address_types, collection: true, writeable: true },
39
+ protected: { type: address_types, collection: true, writable: true },
40
+ internal: { type: address_types, collection: true, writable: true },
41
41
  hasSVRRecords: {
42
42
  ...boolean_attribute,
43
- writeable: true
43
+ writable: true
44
44
  },
45
45
  hasCatalog: {
46
46
  ...boolean_attribute,
47
- writeable: true
47
+ writable: true
48
48
  },
49
49
  hasLinkLocalAdresses: {
50
50
  ...boolean_attribute,
51
- writeable: true
51
+ writable: true
52
52
  },
53
53
  hasLocationRecord: {
54
54
  ...boolean_attribute,
55
- writeable: true,
55
+ writable: true,
56
56
  default: true
57
57
  },
58
58
  excludeInterfaceKinds: {
59
59
  ...default_attribute,
60
60
  collection: true,
61
- writeable: true
61
+ writable: true
62
62
  },
63
63
 
64
- exclude: { type: address_types, collection: true, writeable: true },
64
+ exclude: { type: address_types, collection: true, writable: true },
65
65
  notify: {
66
66
  ...boolean_attribute,
67
- writeable: true,
67
+ writable: true,
68
68
  default: false
69
69
  },
70
- recordTTL: { ...default_attribute, writeable: true },
71
- serial: { type: "number", collection: false, writeable: true },
72
- refresh: { ...default_attribute, writeable: true },
73
- retry: { ...default_attribute, writeable: true },
74
- expire: { ...default_attribute, writeable: true },
75
- minimum: { ...default_attribute, writeable: true },
76
- allowedUpdates: { ...default_attribute, collection: true, writeable: true }
70
+ recordTTL: { ...default_attribute, writable: true },
71
+ serial: { type: "number", collection: false, writable: true },
72
+ refresh: { ...default_attribute, writable: true },
73
+ retry: { ...default_attribute, writable: true },
74
+ expire: { ...default_attribute, writable: true },
75
+ minimum: { ...default_attribute, writable: true },
76
+ allowedUpdates: { ...default_attribute, collection: true, writable: true }
77
77
  },
78
78
 
79
79
  service: {
@@ -1,7 +1,6 @@
1
1
  import { join } from "node:path";
2
2
  import { FileContentProvider } from "npm-pkgbuild";
3
3
  import { isLinkLocal } from "ip-utilties";
4
-
5
4
  import { addType } from "../types.mjs";
6
5
  import {
7
6
  Service,
@@ -1,6 +1,7 @@
1
1
  import { join } from "node:path";
2
2
  import { FileContentProvider } from "npm-pkgbuild";
3
3
  import { reverseArpa } from "ip-utilties";
4
+ import { default_attribute, boolean_attribute_writeable_true } from "pacc";
4
5
  import {
5
6
  Service,
6
7
  sortDescendingByPriority,
@@ -18,7 +19,39 @@ const KeaServiceTypeDefinition = {
18
19
  owners: ServiceTypeDefinition.owners,
19
20
  extends: ServiceTypeDefinition,
20
21
  priority: 0.1,
21
- properties: {},
22
+ properties: {
23
+ "ddns-send-updates": {
24
+ ...boolean_attribute_writeable_true,
25
+ isCommonOption: true
26
+ },
27
+ "renew-timer": {
28
+ ...default_attribute,
29
+ type: "number",
30
+ writable: true,
31
+ isCommonOption: true,
32
+ default: 900
33
+ },
34
+ "rebind-timer": {
35
+ ...default_attribute,
36
+ type: "number",
37
+ writable: true,
38
+ isCommonOption: true,
39
+ default: 1800
40
+ },
41
+ "valid-lifetime": {
42
+ ...default_attribute,
43
+ type: "number",
44
+ writable: true,
45
+ isCommonOption: true,
46
+ default: 86400
47
+ },
48
+ "ddns-conflict-resolution-mode": {
49
+ ...default_attribute,
50
+ writable: true,
51
+ isCommonOption: true
52
+ //values: ["check-exists-with-dhcid"]
53
+ }
54
+ },
22
55
  service: {
23
56
  extends: ["dhcp"],
24
57
  services: {
@@ -188,7 +221,7 @@ export class KeaService extends Service {
188
221
  ];
189
222
 
190
223
  const commonConfig = async family => {
191
- return {
224
+ const cfg = {
192
225
  "interfaces-config": {
193
226
  interfaces: listenInterfaces(`IPv${family}`)
194
227
  },
@@ -210,9 +243,6 @@ export class KeaService extends Service {
210
243
  "max-reclaim-time": 250,
211
244
  "unwarned-reclaim-cycles": 5
212
245
  },
213
- "renew-timer": 900,
214
- "rebind-timer": 1800,
215
- "valid-lifetime": 86400,
216
246
  "hooks-libraries": [
217
247
  /*{
218
248
  library: "/usr/lib/kea/hooks/libdhcp_ddns_tuning.so"
@@ -244,7 +274,6 @@ export class KeaService extends Service {
244
274
  }
245
275
  ],
246
276
  "dhcp-ddns": dhcpServerDdns,
247
- "ddns-send-updates": true,
248
277
 
249
278
  loggers,
250
279
  "option-data": [
@@ -261,6 +290,17 @@ export class KeaService extends Service {
261
290
  }
262
291
  ]
263
292
  };
293
+
294
+ for (const [key] of Object.entries(
295
+ KeaServiceTypeDefinition.properties
296
+ ).filter(
297
+ ([key, attribute]) =>
298
+ attribute.isCommonOption && this[key] !== undefined
299
+ )) {
300
+ cfg[key] = this[key];
301
+ }
302
+
303
+ return cfg;
264
304
  };
265
305
 
266
306
  const toUnix = endpoint => {
@@ -15,15 +15,15 @@ const OpenLDAPServiceTypeDefinition = {
15
15
  properties: {
16
16
  baseDN: {
17
17
  ...default_attribute,
18
- writeable: true
18
+ writable: true
19
19
  },
20
20
  rootDN: {
21
21
  ...default_attribute,
22
- writeable: true
22
+ writable: true
23
23
  },
24
24
  uri: {
25
25
  ...default_attribute,
26
- writeable: true
26
+ writable: true
27
27
  }
28
28
  },
29
29
  service: {
@@ -9,7 +9,7 @@ const SystemdJournalUploadServiceTypeDefinition = {
9
9
  extends: ServiceTypeDefinition,
10
10
  priority: 0.1,
11
11
  properties: {
12
- url: { ...default_attribute, writeable: true }
12
+ url: { ...default_attribute, writable: true }
13
13
  },
14
14
  service: {}
15
15
  };
package/src/subnet.mjs CHANGED
@@ -20,8 +20,8 @@ const SubnetTypeDefinition = {
20
20
  ...default_attribute,
21
21
  isKey: true
22
22
  },
23
- networks: { type: "network", collection: true, writeable: true },
24
- prefixLength: { type: "number", collection: false, writeable: false }
23
+ networks: { type: "network", collection: true, writable: true },
24
+ prefixLength: { type: "number", collection: false, writable: false }
25
25
  }
26
26
  };
27
27
 
package/types/base.d.mts CHANGED
@@ -11,14 +11,13 @@ export class Base {
11
11
  owner: {
12
12
  type: string;
13
13
  collection: boolean;
14
- writeable: boolean;
14
+ writable: boolean;
15
15
  };
16
16
  type: import("pacc").AttributeDefinition;
17
17
  name: {
18
18
  isKey: boolean;
19
- writeable: boolean;
20
- type: string;
21
19
  writable: boolean;
20
+ type: string;
22
21
  mandatory: boolean;
23
22
  collection: boolean;
24
23
  private?: boolean;
@@ -31,10 +30,9 @@ export class Base {
31
30
  env?: string[] | string;
32
31
  };
33
32
  description: {
34
- writeable: boolean;
33
+ writable: boolean;
35
34
  type: string;
36
35
  isKey: boolean;
37
- writable: boolean;
38
36
  mandatory: boolean;
39
37
  collection: boolean;
40
38
  private?: boolean;
@@ -49,13 +47,12 @@ export class Base {
49
47
  priority: {
50
48
  type: string;
51
49
  collection: boolean;
52
- writeable: boolean;
50
+ writable: boolean;
53
51
  };
54
52
  directory: {
55
- writeable: boolean;
53
+ writable: boolean;
56
54
  type: string;
57
55
  isKey: boolean;
58
- writable: boolean;
59
56
  mandatory: boolean;
60
57
  collection: boolean;
61
58
  private?: boolean;
@@ -68,10 +65,9 @@ export class Base {
68
65
  env?: string[] | string;
69
66
  };
70
67
  packaging: {
71
- writeable: boolean;
68
+ writable: boolean;
72
69
  type: string;
73
70
  isKey: boolean;
74
- writable: boolean;
75
71
  mandatory: boolean;
76
72
  collection: boolean;
77
73
  private?: boolean;
@@ -84,11 +80,10 @@ export class Base {
84
80
  env?: string[] | string;
85
81
  };
86
82
  disabled: {
87
- writeable: boolean;
83
+ writable: boolean;
88
84
  default: boolean;
89
85
  type: string;
90
86
  isKey: boolean;
91
- writable: boolean;
92
87
  mandatory: boolean;
93
88
  collection: boolean;
94
89
  private?: boolean;
@@ -101,10 +96,9 @@ export class Base {
101
96
  };
102
97
  tags: {
103
98
  collection: boolean;
104
- writeable: boolean;
99
+ writable: boolean;
105
100
  type: string;
106
101
  isKey: boolean;
107
- writable: boolean;
108
102
  mandatory: boolean;
109
103
  private?: boolean;
110
104
  depends?: string;