pmcf 4.26.0 → 4.27.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pmcf",
3
- "version": "4.26.0",
3
+ "version": "4.27.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -54,7 +54,7 @@
54
54
  "content-entry-transform": "^1.6.9",
55
55
  "ip-utilties": "^3.0.4",
56
56
  "npm-pkgbuild": "^20.7.3",
57
- "pacc": "^9.3.0",
57
+ "pacc": "^9.3.1",
58
58
  "package-directory": "^8.2.0"
59
59
  },
60
60
  "devDependencies": {
package/src/base.mjs CHANGED
@@ -44,7 +44,7 @@ export class Base {
44
44
  packaging: string_attribute_writable,
45
45
  disabled: boolean_attribute_writable,
46
46
  tags: string_set_attribute_writable,
47
- owner: { ...default_attribute, type: "base" },
47
+ owner: { ...default_attribute, type: "base", owner: false },
48
48
  type: string_attribute
49
49
  };
50
50
 
@@ -149,6 +149,23 @@ export class Base {
149
149
  return collected;
150
150
  }
151
151
 
152
+ get children() {
153
+ const all = [];
154
+
155
+ for (const [path, attribute] of extendingAttributeIterator(
156
+ this.constructor,
157
+ (name, attribute) => attribute.owner && !attribute.type.primitive
158
+ )) {
159
+ if (attribute.collection) {
160
+ all.push(...this[path].values());
161
+ } else {
162
+ all.push(this[path]);
163
+ }
164
+ }
165
+
166
+ return all;
167
+ }
168
+
152
169
  /**
153
170
  * Walk the object graph in some directions and deliver seen nodes.
154
171
  * @param {string[]} directions
@@ -229,7 +246,10 @@ export class Base {
229
246
  * @return {Iterable<[string,any]>} values
230
247
  */
231
248
  *attributeIterator(filter) {
232
- for (const [path, def] of extendingAttributeIterator(this.constructor, filter)) {
249
+ for (const [path, def] of extendingAttributeIterator(
250
+ this.constructor,
251
+ filter
252
+ )) {
233
253
  const name = path.join(".");
234
254
  const value = this.attribute(name);
235
255
 
package/src/host.mjs CHANGED
@@ -82,7 +82,7 @@ export class Host extends ServiceOwner {
82
82
  replaces: string_set_attribute_writable,
83
83
  depends: string_set_attribute_writable,
84
84
  provides: string_set_attribute_writable,
85
- extends: { ...default_attribute_writable, type: "host", collection: true },
85
+ extends: { ...default_attribute_writable, type: "host", collection: true, owner: false },
86
86
  model: string_attribute,
87
87
  isModel: boolean_attribute_false
88
88
  };
package/src/location.mjs CHANGED
@@ -6,12 +6,11 @@ import { loadHooks } from "./hooks.mjs";
6
6
  export class Location extends Owner {
7
7
  static name = "location";
8
8
  static priority = 2;
9
- static owners = [Owner, "location", "root"];
9
+ static owners = [Owner, Location, "root"];
10
10
  static extends = Owner;
11
11
  static key = "name";
12
12
  static attributes = {};
13
13
 
14
-
15
14
  static {
16
15
  addType(this);
17
16
  }
package/src/network.mjs CHANGED
@@ -14,9 +14,10 @@ export class Network extends Owner {
14
14
  bridge: {
15
15
  ...default_attribute_writable,
16
16
  type: "network",
17
- collection: true
17
+ collection: true,
18
+ owner: false
18
19
  },
19
- gateway: { ...default_attribute_writable, type: "host" }
20
+ gateway: { ...default_attribute_writable, type: "host", owner: false }
20
21
  };
21
22
 
22
23
 
package/src/service.mjs CHANGED
@@ -61,7 +61,7 @@ export class Service extends Base {
61
61
  static attributes = {
62
62
  ...networkAddressAttributes,
63
63
  ...endpointAttributes,
64
- extends: { ...default_attribute_writable, type: Service, collection: true },
64
+ extends: { ...default_attribute_writable, type: Service, collection: true, owner: false },
65
65
  alias: string_attribute_writable,
66
66
  weight: { ...number_attribute_writable /*default: 1*/ },
67
67
  systemdService: string_attribute_writable