pmcf 3.13.4 → 3.13.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.
Files changed (38) hide show
  1. package/package.json +4 -4
  2. package/src/extra-source-service.mjs +2 -1
  3. package/src/network-interfaces/ethernet.mjs +1 -1
  4. package/src/network-interfaces/loopback.mjs +1 -1
  5. package/src/network-interfaces/tun.mjs +1 -1
  6. package/src/network-interfaces/wireguard.mjs +1 -1
  7. package/src/network-interfaces/wlan.mjs +1 -1
  8. package/src/services/bind.mjs +22 -3
  9. package/src/services/chrony.mjs +2 -6
  10. package/src/services/headscale.mjs +1 -1
  11. package/src/services/influxdb.mjs +1 -1
  12. package/src/services/kea.mjs +2 -2
  13. package/src/services/mosquitto.mjs +1 -1
  14. package/src/services/openldap.mjs +1 -1
  15. package/src/services/systemd-journal-remote.mjs +1 -1
  16. package/src/services/systemd-journal-upload.mjs +1 -1
  17. package/src/services/systemd-journal.mjs +1 -1
  18. package/src/services/systemd-resolved.mjs +1 -1
  19. package/src/types.mjs +2 -4
  20. package/types/extra-source-service.d.mts +507 -201
  21. package/types/network-interfaces/ethernet.d.mts +4 -4
  22. package/types/network-interfaces/loopback.d.mts +3 -3
  23. package/types/network-interfaces/tun.d.mts +3 -3
  24. package/types/network-interfaces/wireguard.d.mts +3 -3
  25. package/types/network-interfaces/wlan.d.mts +846 -846
  26. package/types/services/bind.d.mts +958 -653
  27. package/types/services/chrony.d.mts +958 -653
  28. package/types/services/headscale.d.mts +958 -653
  29. package/types/services/influxdb.d.mts +202 -202
  30. package/types/services/kea.d.mts +202 -202
  31. package/types/services/mosquitto.d.mts +202 -202
  32. package/types/services/openldap.d.mts +202 -202
  33. package/types/services/systemd-journal-remote.d.mts +202 -202
  34. package/types/services/systemd-journal-upload.d.mts +202 -202
  35. package/types/services/systemd-journal.d.mts +202 -202
  36. package/types/services/systemd-resolved.d.mts +958 -653
  37. package/types/services/systemd-timesyncd.d.mts +426 -121
  38. package/types/types.d.mts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "3.13.4",
3
+ "version": "3.13.6",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -53,16 +53,16 @@
53
53
  "dependencies": {
54
54
  "ip-utilties": "^1.4.9",
55
55
  "npm-pkgbuild": "^18.3.9",
56
- "pacc": "^4.39.2",
56
+ "pacc": "^4.39.3",
57
57
  "package-directory": "^8.1.0"
58
58
  },
59
59
  "devDependencies": {
60
- "@types/node": "^24.6.0",
60
+ "@types/node": "^24.6.2",
61
61
  "ava": "^6.4.1",
62
62
  "c8": "^10.1.3",
63
63
  "documentation": "^14.0.3",
64
64
  "semantic-release": "^24.2.9",
65
- "typescript": "^5.9.2"
65
+ "typescript": "^5.9.3"
66
66
  },
67
67
  "engines": {
68
68
  "node": ">=22.20.0"
@@ -5,8 +5,9 @@ import { networkAddressType } from "pmcf";
5
5
 
6
6
  export const ExtraSourceServiceTypeDefinition = {
7
7
  name: "extra-source-service",
8
- owners: ServiceTypeDefinition.owners,
9
8
  extends: ServiceTypeDefinition,
9
+ specializationOf: ServiceTypeDefinition,
10
+ owners: ServiceTypeDefinition.owners,
10
11
  priority: 0.1,
11
12
  attributes: {
12
13
  source: {
@@ -7,9 +7,9 @@ import {
7
7
 
8
8
  export const EthernetNetworkInterfaceTypeDefinition = {
9
9
  name: "ethernet",
10
+ extends: NetworkInterfaceTypeDefinition,
10
11
  specializationOf: NetworkInterfaceTypeDefinition,
11
12
  owners: NetworkInterfaceTypeDefinition.owners,
12
- extends: NetworkInterfaceTypeDefinition,
13
13
  priority: 0.1,
14
14
  key: "name",
15
15
  attributes: {
@@ -5,9 +5,9 @@ import { addType } from "../types.mjs";
5
5
 
6
6
  const LoopbackNetworkInterfaceTypeDefinition = {
7
7
  name: "loopback",
8
+ extends: NetworkInterfaceTypeDefinition,
8
9
  specializationOf: NetworkInterfaceTypeDefinition,
9
10
  owners: NetworkInterfaceTypeDefinition.owners,
10
- extends: NetworkInterfaceTypeDefinition,
11
11
  priority: 0.1,
12
12
  key: "name"
13
13
  };
@@ -4,9 +4,9 @@ import { addType } from "../types.mjs";
4
4
 
5
5
  const TUNdNetworkInterfaceTypeDefinition = {
6
6
  name: "tun",
7
+ extends: NetworkInterfaceTypeDefinition,
7
8
  specializationOf: NetworkInterfaceTypeDefinition,
8
9
  owners: NetworkInterfaceTypeDefinition.owners,
9
- extends: NetworkInterfaceTypeDefinition,
10
10
  priority: 0.1,
11
11
  key: "name"
12
12
  };
@@ -4,9 +4,9 @@ import { addType } from "../types.mjs";
4
4
 
5
5
  const WireguardNetworkInterfaceTypeDefinition = {
6
6
  name: "wireguard",
7
+ extends: NetworkInterfaceTypeDefinition,
7
8
  specializationOf: NetworkInterfaceTypeDefinition,
8
9
  owners: NetworkInterfaceTypeDefinition.owners,
9
- extends: NetworkInterfaceTypeDefinition,
10
10
  priority: 0.1,
11
11
  key: "name"
12
12
  };
@@ -11,9 +11,9 @@ import {
11
11
 
12
12
  const WLANNetworkInterfaceTypeDefinition = {
13
13
  name: "wlan",
14
+ extends: EthernetNetworkInterfaceTypeDefinition,
14
15
  specializationOf: NetworkInterfaceTypeDefinition,
15
16
  owners: EthernetNetworkInterfaceTypeDefinition.owners,
16
- extends: EthernetNetworkInterfaceTypeDefinition,
17
17
  priority: 0.1,
18
18
  key: "name",
19
19
  attributes: {
@@ -9,7 +9,8 @@ import {
9
9
  boolean_attribute_writable_true,
10
10
  boolean_attribute_writable_false,
11
11
  number_attribute_writable,
12
- string_collection_attribute_writable
12
+ string_collection_attribute_writable,
13
+ name_attribute_writable
13
14
  } from "pacc";
14
15
  import { writeLines, asArray } from "../utils.mjs";
15
16
  import {
@@ -25,18 +26,36 @@ import {
25
26
  networkAddressType
26
27
  } from "pmcf";
27
28
  import { addType } from "../types.mjs";
28
- import { Service, ServiceTypeDefinition } from "../service.mjs";
29
+ import { ServiceTypeDefinition } from "../service.mjs";
29
30
  import { ExtraSourceServiceTypeDefinition } from "../extra-source-service.mjs";
30
31
  import { addHook } from "../hooks.mjs";
31
32
 
33
+ const BindServiceViewTypeDefinition = {
34
+ name: "bind-view",
35
+ key: "name",
36
+ attributes: {
37
+ name: { ...name_attribute_writable },
38
+ access: {
39
+ type: networkAddressType,
40
+ collection: true,
41
+ writable: true
42
+ }
43
+ }
44
+ };
45
+
32
46
  const BindServiceTypeDefinition = {
33
47
  name: "bind",
48
+ extends: ExtraSourceServiceTypeDefinition,
34
49
  specializationOf: ServiceTypeDefinition,
35
50
  owners: ServiceTypeDefinition.owners,
36
- extends: ExtraSourceServiceTypeDefinition,
37
51
  priority: 0.1,
38
52
  key: "name",
39
53
  attributes: {
54
+ /*views: {
55
+ type: "object", //BindServiceViewTypeDefinition,
56
+ collection: true,
57
+ writable: true
58
+ },*/
40
59
  zones: {
41
60
  type: oneOfType([networkAddressType, "location", "owner"]),
42
61
  collection: true,
@@ -2,11 +2,7 @@ import { join } from "node:path";
2
2
  import { FileContentProvider } from "npm-pkgbuild";
3
3
  import { isLinkLocal } from "ip-utilties";
4
4
  import { addType } from "../types.mjs";
5
- import {
6
- Service,
7
- ServiceTypeDefinition,
8
- serviceEndpoints
9
- } from "../service.mjs";
5
+ import { ServiceTypeDefinition, serviceEndpoints } from "../service.mjs";
10
6
  import {
11
7
  ExtraSourceService,
12
8
  ExtraSourceServiceTypeDefinition
@@ -15,9 +11,9 @@ import { writeLines } from "../utils.mjs";
15
11
 
16
12
  const ChronyServiceTypeDefinition = {
17
13
  name: "chrony",
14
+ extends: ExtraSourceServiceTypeDefinition,
18
15
  specializationOf: ServiceTypeDefinition,
19
16
  owners: ServiceTypeDefinition.owners,
20
- extends: ExtraSourceServiceTypeDefinition,
21
17
  priority: 0.1,
22
18
  key: "name",
23
19
  service: {
@@ -7,9 +7,9 @@ import {
7
7
 
8
8
  const HeadscaleServiceTypeDefinition = {
9
9
  name: "headscale",
10
+ extends: ExtraSourceServiceTypeDefinition,
10
11
  specializationOf: ServiceTypeDefinition,
11
12
  owners: ServiceTypeDefinition.owners,
12
- extends: ExtraSourceServiceTypeDefinition,
13
13
  priority: 0.1,
14
14
  key: "name",
15
15
  service: {
@@ -7,9 +7,9 @@ import { Service, ServiceTypeDefinition } from "../service.mjs";
7
7
 
8
8
  const InfluxdbServiceTypeDefinition = {
9
9
  name: "influxdb",
10
+ extends: ServiceTypeDefinition,
10
11
  specializationOf: ServiceTypeDefinition,
11
12
  owners: ServiceTypeDefinition.owners,
12
- extends: ServiceTypeDefinition,
13
13
  priority: 0.1,
14
14
  key: "name",
15
15
  attributes: {
@@ -19,9 +19,9 @@ import { writeLines } from "../utils.mjs";
19
19
 
20
20
  const KeaServiceTypeDefinition = {
21
21
  name: "kea",
22
+ extends: ServiceTypeDefinition,
22
23
  specializationOf: ServiceTypeDefinition,
23
24
  owners: ServiceTypeDefinition.owners,
24
- extends: ServiceTypeDefinition,
25
25
  priority: 0.1,
26
26
  key: "name",
27
27
  attributes: {
@@ -155,7 +155,7 @@ export class KeaService extends Service {
155
155
  console.log("kea", name, network.name);
156
156
 
157
157
  const dnsServerEndpoints = serviceEndpoints(network, {
158
- services: 'type="dns" && priority >= 300',
158
+ services: 'in("dns",types) && priority>=300',
159
159
  endpoints: endpoint => endpoint.networkInterface?.kind !== "loopback"
160
160
  });
161
161
 
@@ -7,9 +7,9 @@ import { Service, ServiceTypeDefinition } from "../service.mjs";
7
7
 
8
8
  const MosquittoServiceTypeDefinition = {
9
9
  name: "mosquitto",
10
+ extends: ServiceTypeDefinition,
10
11
  specializationOf: ServiceTypeDefinition,
11
12
  owners: ServiceTypeDefinition.owners,
12
- extends: ServiceTypeDefinition,
13
13
  priority: 0.1,
14
14
  key: "name",
15
15
  attributes: {
@@ -8,9 +8,9 @@ import { addHook } from "../hooks.mjs";
8
8
 
9
9
  const OpenLDAPServiceTypeDefinition = {
10
10
  name: "openldap",
11
+ extends: ServiceTypeDefinition,
11
12
  specializationOf: ServiceTypeDefinition,
12
13
  owners: ServiceTypeDefinition.owners,
13
- extends: ServiceTypeDefinition,
14
14
  priority: 0.1,
15
15
  key: "name",
16
16
  attributes: {
@@ -3,9 +3,9 @@ import { addType } from "../types.mjs";
3
3
 
4
4
  const SystemdJournalRemoteServiceTypeDefinition = {
5
5
  name: "systemd-journal-remote",
6
+ extends: ServiceTypeDefinition,
6
7
  specializationOf: ServiceTypeDefinition,
7
8
  owners: ServiceTypeDefinition.owners,
8
- extends: ServiceTypeDefinition,
9
9
  priority: 0.1,
10
10
  key: "name",
11
11
  service: {
@@ -4,9 +4,9 @@ import { addType } from "../types.mjs";
4
4
 
5
5
  const SystemdJournalUploadServiceTypeDefinition = {
6
6
  name: "systemd-journal-upload",
7
+ extends: ServiceTypeDefinition,
7
8
  specializationOf: ServiceTypeDefinition,
8
9
  owners: ServiceTypeDefinition.owners,
9
- extends: ServiceTypeDefinition,
10
10
  priority: 0.1,
11
11
  key: "name",
12
12
  attributes: {
@@ -3,9 +3,9 @@ import { addType } from "../types.mjs";
3
3
 
4
4
  const SystemdJournalServiceTypeDefinition = {
5
5
  name: "systemd-journal",
6
+ extends: ServiceTypeDefinition,
6
7
  specializationOf: ServiceTypeDefinition,
7
8
  owners: ServiceTypeDefinition.owners,
8
- extends: ServiceTypeDefinition,
9
9
  priority: 0.1,
10
10
  key: "name"
11
11
  };
@@ -8,9 +8,9 @@ import { addType } from "../types.mjs";
8
8
 
9
9
  const SystemdResolvedServiceTypeDefinition = {
10
10
  name: "systemd-resolved",
11
+ extends: ExtraSourceServiceTypeDefinition,
11
12
  specializationOf: ServiceTypeDefinition,
12
13
  owners: ServiceTypeDefinition.owners,
13
- extends: ExtraSourceServiceTypeDefinition,
14
14
  priority: 0.1,
15
15
  key: "name"
16
16
  };
package/src/types.mjs CHANGED
@@ -7,16 +7,14 @@ import {
7
7
  import { addServiceType } from "./service-types.mjs";
8
8
  export { types };
9
9
 
10
- export function addType(clazz) {
11
- const type = clazz.typeDefinition;
12
- type.clazz = clazz;
10
+ export function addType(type) {
11
+ type = paccAddType(type);
13
12
 
14
13
  if (type.specializationOf) {
15
14
  type.specializationOf.specializations[type.name] = type;
16
15
  }
17
16
 
18
17
  addServiceType(type.service, type.name);
19
- paccAddType(type);
20
18
  }
21
19
 
22
20
  export function resolveTypeLinks() {