pmcf 1.41.0 → 1.41.1
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/package.json +1 -1
- package/src/owner.mjs +25 -21
- package/types/owner.d.mts +11 -2
package/package.json
CHANGED
package/src/owner.mjs
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { asArray, normalizeCIDR } from "./utils.mjs";
|
|
2
2
|
import { Base } from "./base.mjs";
|
|
3
3
|
import { Subnet } from "./subnet.mjs";
|
|
4
|
-
import { DNSService } from "./dns.mjs";
|
|
5
4
|
import { addType, typesByName } from "./types.mjs";
|
|
6
5
|
|
|
7
6
|
export class Owner extends Base {
|
|
8
7
|
#membersByType = new Map();
|
|
9
8
|
#bridges = new Set();
|
|
10
|
-
#dns;
|
|
11
9
|
#administratorEmail;
|
|
12
10
|
domain;
|
|
13
11
|
ntp = { servers: [] };
|
|
@@ -20,17 +18,16 @@ export class Owner extends Base {
|
|
|
20
18
|
return "owner";
|
|
21
19
|
}
|
|
22
20
|
|
|
21
|
+
static get ownedTypes() {
|
|
22
|
+
return {
|
|
23
|
+
networks: { type: "network", collection: true },
|
|
24
|
+
dns: { type: "dns", collection: false }
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
constructor(owner, data = {}) {
|
|
24
29
|
super(owner, data);
|
|
25
30
|
|
|
26
|
-
let dns;
|
|
27
|
-
if (data.dns) {
|
|
28
|
-
dns = data.dns;
|
|
29
|
-
delete data.dns;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
this.#dns = new DNSService(this, dns);
|
|
33
|
-
|
|
34
31
|
if (data.administratorEmail) {
|
|
35
32
|
this.#administratorEmail = data.administratorEmail;
|
|
36
33
|
delete data.administratorEmail;
|
|
@@ -46,13 +43,20 @@ export class Owner extends Base {
|
|
|
46
43
|
delete data.ntp;
|
|
47
44
|
}
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
data
|
|
55
|
-
|
|
46
|
+
for (const [slotName, typeDef] of Object.entries(
|
|
47
|
+
this.constructor.ownedTypes
|
|
48
|
+
)) {
|
|
49
|
+
const slot = data[slotName];
|
|
50
|
+
if (slot) {
|
|
51
|
+
delete data[slotName];
|
|
52
|
+
if (typeDef.collection) {
|
|
53
|
+
for (const [objectName, objectData] of Object.entries(slot)) {
|
|
54
|
+
objectData.name = objectName;
|
|
55
|
+
new typesByName[typeDef.type](this, objectData);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
this[typeDef.type] = new typesByName[typeDef.type](this, slot);
|
|
59
|
+
}
|
|
56
60
|
}
|
|
57
61
|
}
|
|
58
62
|
|
|
@@ -73,10 +77,6 @@ export class Owner extends Base {
|
|
|
73
77
|
return false;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
|
-
get dns() {
|
|
77
|
-
return this.#dns;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
80
|
named(name) {
|
|
81
81
|
//console.log("NAMED", this.#membersByType.keys());
|
|
82
82
|
for (const slot of this.#membersByType.values()) {
|
|
@@ -92,6 +92,10 @@ export class Owner extends Base {
|
|
|
92
92
|
return typeSlot?.get(name) || this.owner?.typeNamed(typeName, name);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
typeObject(typeName) {
|
|
96
|
+
return this.#membersByType.get(typeName);
|
|
97
|
+
}
|
|
98
|
+
|
|
95
99
|
typeList(typeName) {
|
|
96
100
|
const typeSlot = this.#membersByType.get(typeName);
|
|
97
101
|
if (typeSlot) {
|
package/types/owner.d.mts
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
export class Owner extends Base {
|
|
2
|
+
static get ownedTypes(): {
|
|
3
|
+
networks: {
|
|
4
|
+
type: string;
|
|
5
|
+
collection: boolean;
|
|
6
|
+
};
|
|
7
|
+
dns: {
|
|
8
|
+
type: string;
|
|
9
|
+
collection: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
2
12
|
constructor(owner: any, data?: {});
|
|
3
13
|
domain: any;
|
|
4
14
|
ntp: {
|
|
5
15
|
servers: any[];
|
|
6
16
|
};
|
|
7
17
|
_traverse(...args: any[]): boolean;
|
|
8
|
-
get dns(): DNSService;
|
|
9
18
|
named(name: any): any;
|
|
10
19
|
typeNamed(typeName: any, name: any): any;
|
|
20
|
+
typeObject(typeName: any): any;
|
|
11
21
|
typeList(typeName: any): any;
|
|
12
22
|
_addObject(typeName: any, fullName: any, object: any): void;
|
|
13
23
|
addObject(object: any): void;
|
|
@@ -32,4 +42,3 @@ export class Owner extends Base {
|
|
|
32
42
|
#private;
|
|
33
43
|
}
|
|
34
44
|
import { Base } from "./base.mjs";
|
|
35
|
-
import { DNSService } from "./dns.mjs";
|