@quadnix/octo 0.0.17 → 0.0.18

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 (187) hide show
  1. package/README.md +4 -2
  2. package/dist/app.type.d.ts +14 -16
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.js +29 -15
  5. package/dist/decorators/action.decorator.js.map +1 -1
  6. package/dist/decorators/anchor.decorator.js +5 -1
  7. package/dist/decorators/anchor.decorator.js.map +1 -1
  8. package/dist/decorators/container.d.ts +1 -1
  9. package/dist/decorators/enable-hook.decorator.d.ts +3 -0
  10. package/dist/decorators/enable-hook.decorator.js +13 -0
  11. package/dist/decorators/enable-hook.decorator.js.map +1 -0
  12. package/dist/decorators/factory.decorator.d.ts +1 -1
  13. package/dist/decorators/model.decorator.js +5 -1
  14. package/dist/decorators/model.decorator.js.map +1 -1
  15. package/dist/decorators/module.decorator.d.ts +36 -1
  16. package/dist/decorators/module.decorator.js +15 -5
  17. package/dist/decorators/module.decorator.js.map +1 -1
  18. package/dist/decorators/overlay.decorator.js +5 -1
  19. package/dist/decorators/overlay.decorator.js.map +1 -1
  20. package/dist/decorators/resource.decorator.js +5 -1
  21. package/dist/decorators/resource.decorator.js.map +1 -1
  22. package/dist/decorators/test-container.d.ts +13 -2
  23. package/dist/decorators/test-container.js +18 -3
  24. package/dist/decorators/test-container.js.map +1 -1
  25. package/dist/functions/dependency/{dependency.model.d.ts → dependency.d.ts} +2 -3
  26. package/dist/functions/dependency/{dependency.model.js → dependency.js} +1 -17
  27. package/dist/functions/dependency/dependency.js.map +1 -0
  28. package/dist/functions/diff/diff-metadata.d.ts +20 -0
  29. package/dist/functions/diff/{diff-metadata.model.js → diff-metadata.js} +2 -6
  30. package/dist/functions/diff/diff-metadata.js.map +1 -0
  31. package/dist/functions/diff/{diff.model.d.ts → diff.d.ts} +2 -2
  32. package/dist/functions/diff/{diff.model.js → diff.js} +16 -2
  33. package/dist/functions/diff/diff.js.map +1 -0
  34. package/dist/functions/diff/diff.utility.d.ts +3 -2
  35. package/dist/functions/diff/diff.utility.js +30 -5
  36. package/dist/functions/diff/diff.utility.js.map +1 -1
  37. package/dist/functions/hook/commit.hook.d.ts +11 -0
  38. package/dist/functions/hook/commit.hook.js +39 -0
  39. package/dist/functions/hook/commit.hook.js.map +1 -0
  40. package/dist/functions/hook/hook.interface.d.ts +8 -0
  41. package/dist/functions/hook/hook.interface.js +2 -0
  42. package/dist/functions/hook/hook.interface.js.map +1 -0
  43. package/dist/functions/hook/model-action.hook.d.ts +12 -0
  44. package/dist/functions/hook/model-action.hook.js +70 -0
  45. package/dist/functions/hook/model-action.hook.js.map +1 -0
  46. package/dist/functions/hook/resource-action.hook.d.ts +12 -0
  47. package/dist/functions/hook/resource-action.hook.js +49 -0
  48. package/dist/functions/hook/resource-action.hook.js.map +1 -0
  49. package/dist/index.d.ts +29 -28
  50. package/dist/index.js +9 -8
  51. package/dist/index.js.map +1 -1
  52. package/dist/main.d.ts +31 -0
  53. package/dist/main.js +111 -0
  54. package/dist/main.js.map +1 -0
  55. package/dist/models/app/app.interface.d.ts +1 -1
  56. package/dist/models/app/app.model.d.ts +5 -5
  57. package/dist/models/app/app.model.js +4 -11
  58. package/dist/models/app/app.model.js.map +1 -1
  59. package/dist/models/deployment/deployment.interface.d.ts +1 -1
  60. package/dist/models/deployment/deployment.model.d.ts +5 -3
  61. package/dist/models/deployment/deployment.model.js +5 -2
  62. package/dist/models/deployment/deployment.model.js.map +1 -1
  63. package/dist/models/environment/environment.interface.d.ts +1 -1
  64. package/dist/models/environment/environment.model.d.ts +5 -5
  65. package/dist/models/environment/environment.model.js +3 -3
  66. package/dist/models/environment/environment.model.js.map +1 -1
  67. package/dist/models/execution/execution.interface.d.ts +2 -2
  68. package/dist/models/execution/execution.model.d.ts +8 -9
  69. package/dist/models/execution/execution.model.js +53 -21
  70. package/dist/models/execution/execution.model.js.map +1 -1
  71. package/dist/models/image/image.interface.d.ts +1 -1
  72. package/dist/models/image/image.model.d.ts +5 -3
  73. package/dist/models/image/image.model.js +5 -6
  74. package/dist/models/image/image.model.js.map +1 -1
  75. package/dist/models/model-action.interface.d.ts +9 -0
  76. package/dist/models/model-action.interface.js +2 -0
  77. package/dist/models/model-action.interface.js.map +1 -0
  78. package/dist/models/model.abstract.d.ts +40 -14
  79. package/dist/models/model.abstract.js +167 -57
  80. package/dist/models/model.abstract.js.map +1 -1
  81. package/dist/models/model.interface.d.ts +4 -3
  82. package/dist/models/pipeline/pipeline.interface.d.ts +1 -1
  83. package/dist/models/pipeline/pipeline.model.d.ts +5 -5
  84. package/dist/models/pipeline/pipeline.model.js +4 -4
  85. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  86. package/dist/models/region/region.interface.d.ts +1 -1
  87. package/dist/models/region/region.model.d.ts +7 -3
  88. package/dist/models/region/region.model.js +14 -1
  89. package/dist/models/region/region.model.js.map +1 -1
  90. package/dist/models/server/server.interface.d.ts +1 -3
  91. package/dist/models/server/server.model.d.ts +6 -6
  92. package/dist/models/server/server.model.js +7 -10
  93. package/dist/models/server/server.model.js.map +1 -1
  94. package/dist/models/service/service.interface.d.ts +1 -1
  95. package/dist/models/service/service.model.d.ts +4 -2
  96. package/dist/models/service/service.model.js +4 -1
  97. package/dist/models/service/service.model.js.map +1 -1
  98. package/dist/models/subnet/subnet.interface.d.ts +8 -0
  99. package/dist/models/subnet/subnet.interface.js +2 -0
  100. package/dist/models/subnet/subnet.interface.js.map +1 -0
  101. package/dist/models/subnet/subnet.model.d.ts +25 -0
  102. package/dist/models/subnet/subnet.model.js +98 -0
  103. package/dist/models/subnet/subnet.model.js.map +1 -0
  104. package/dist/modules/module.container.d.ts +25 -0
  105. package/dist/modules/module.container.js +122 -0
  106. package/dist/modules/module.container.js.map +1 -0
  107. package/dist/modules/module.interface.d.ts +3 -0
  108. package/dist/modules/module.interface.js.map +1 -0
  109. package/dist/modules/test-module.container.d.ts +28 -0
  110. package/dist/modules/test-module.container.js +67 -0
  111. package/dist/modules/test-module.container.js.map +1 -0
  112. package/dist/overlays/anchor.abstract.d.ts +4 -4
  113. package/dist/overlays/anchor.abstract.js +8 -11
  114. package/dist/overlays/anchor.abstract.js.map +1 -1
  115. package/dist/overlays/anchor.interface.d.ts +5 -2
  116. package/dist/overlays/overlay-data.repository.d.ts +7 -7
  117. package/dist/overlays/overlay-data.repository.js +19 -7
  118. package/dist/overlays/overlay-data.repository.js.map +1 -1
  119. package/dist/overlays/overlay.abstract.d.ts +15 -8
  120. package/dist/overlays/overlay.abstract.js +78 -12
  121. package/dist/overlays/overlay.abstract.js.map +1 -1
  122. package/dist/overlays/overlay.interface.d.ts +1 -1
  123. package/dist/overlays/overlay.service.d.ts +10 -6
  124. package/dist/overlays/overlay.service.js +19 -13
  125. package/dist/overlays/overlay.service.js.map +1 -1
  126. package/dist/resources/resource-action.interface.d.ts +2 -1
  127. package/dist/resources/resource-data.repository.d.ts +8 -8
  128. package/dist/resources/resource-data.repository.js +52 -34
  129. package/dist/resources/resource-data.repository.js.map +1 -1
  130. package/dist/resources/resource.abstract.d.ts +15 -12
  131. package/dist/resources/resource.abstract.js +34 -34
  132. package/dist/resources/resource.abstract.js.map +1 -1
  133. package/dist/resources/shared-resource.abstract.d.ts +1 -1
  134. package/dist/resources/shared-resource.abstract.js.map +1 -1
  135. package/dist/services/capture/capture.service.d.ts +13 -0
  136. package/dist/services/capture/capture.service.js +30 -0
  137. package/dist/services/capture/capture.service.js.map +1 -0
  138. package/dist/services/input/input.service.d.ts +13 -0
  139. package/dist/services/input/input.service.js +45 -0
  140. package/dist/services/input/input.service.js.map +1 -0
  141. package/dist/services/serialization/model/model-serialization.service.d.ts +9 -5
  142. package/dist/services/serialization/model/model-serialization.service.js +65 -44
  143. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  144. package/dist/services/serialization/resource/resource-serialization.service.d.ts +8 -3
  145. package/dist/services/serialization/resource/resource-serialization.service.js +29 -11
  146. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  147. package/dist/services/state-management/local.state-provider.d.ts +1 -1
  148. package/dist/services/state-management/local.state-provider.js +9 -1
  149. package/dist/services/state-management/local.state-provider.js.map +1 -1
  150. package/dist/services/state-management/state-management.service.d.ts +16 -1
  151. package/dist/services/state-management/state-management.service.js +52 -1
  152. package/dist/services/state-management/state-management.service.js.map +1 -1
  153. package/dist/services/state-management/test.state-provider.d.ts +7 -0
  154. package/dist/services/state-management/test.state-provider.js +13 -0
  155. package/dist/services/state-management/test.state-provider.js.map +1 -0
  156. package/dist/services/transaction/transaction.service.d.ts +18 -11
  157. package/dist/services/transaction/transaction.service.js +57 -40
  158. package/dist/services/transaction/transaction.service.js.map +1 -1
  159. package/dist/utilities/array/array.utility.d.ts +3 -0
  160. package/dist/utilities/array/array.utility.js +24 -0
  161. package/dist/utilities/array/array.utility.js.map +1 -0
  162. package/dist/utilities/cidr/cidr.utility.d.ts +7 -0
  163. package/dist/utilities/cidr/cidr.utility.js +48 -0
  164. package/dist/utilities/cidr/cidr.utility.js.map +1 -0
  165. package/dist/utilities/object/object.utility.d.ts +3 -0
  166. package/dist/utilities/object/object.utility.js +9 -0
  167. package/dist/utilities/object/object.utility.js.map +1 -0
  168. package/package.json +2 -1
  169. package/dist/functions/dependency/dependency.model.js.map +0 -1
  170. package/dist/functions/diff/diff-metadata.model.d.ts +0 -20
  171. package/dist/functions/diff/diff-metadata.model.js.map +0 -1
  172. package/dist/functions/diff/diff.model.js.map +0 -1
  173. package/dist/functions/module/module.abstract.d.ts +0 -12
  174. package/dist/functions/module/module.abstract.js +0 -39
  175. package/dist/functions/module/module.abstract.js.map +0 -1
  176. package/dist/functions/module/module.interface.d.ts +0 -4
  177. package/dist/functions/module/module.interface.js.map +0 -1
  178. package/dist/models/action.interface.d.ts +0 -9
  179. package/dist/models/action.interface.js +0 -2
  180. package/dist/models/action.interface.js.map +0 -1
  181. package/dist/models/support/support.interface.d.ts +0 -5
  182. package/dist/models/support/support.interface.js +0 -2
  183. package/dist/models/support/support.interface.js.map +0 -1
  184. package/dist/models/support/support.model.d.ts +0 -14
  185. package/dist/models/support/support.model.js +0 -52
  186. package/dist/models/support/support.model.js.map +0 -1
  187. /package/dist/{functions/module → modules}/module.interface.js +0 -0
@@ -1,66 +1,113 @@
1
1
  import { ModelType } from '../app.type.js';
2
- import { Dependency } from '../functions/dependency/dependency.model.js';
3
- import { DiffAction } from '../functions/diff/diff.model.js';
2
+ import { Dependency } from '../functions/dependency/dependency.js';
3
+ import { Diff, DiffAction } from '../functions/diff/diff.js';
4
4
  import { DiffUtility } from '../functions/diff/diff.utility.js';
5
5
  export class AModel {
6
6
  MODEL_TYPE = ModelType.MODEL;
7
+ _deleteMarker = false;
7
8
  anchors = [];
9
+ context;
8
10
  dependencies = [];
11
+ addAnchor(anchor) {
12
+ const existingAnchor = this.getAnchor(anchor.anchorId, anchor.getParent());
13
+ if (!existingAnchor) {
14
+ this.anchors.push(anchor);
15
+ }
16
+ }
9
17
  addChild(onField, child, toField) {
10
18
  const cIndex = child.dependencies.findIndex((d) => Object.is(d.to, this));
11
- if (cIndex !== -1 && child.dependencies[cIndex].isParentRelationship()) {
12
- throw new Error('Found circular dependencies!');
19
+ const pIndex = this.dependencies.findIndex((d) => Object.is(d.to, child));
20
+ if (cIndex !== -1 || pIndex !== -1) {
21
+ throw new Error('Dependency relationship already exists!');
13
22
  }
14
- const childToParentDependency = cIndex === -1 ? new Dependency(child, this) : child.dependencies[cIndex];
23
+ const childToParentDependency = new Dependency(child, this);
15
24
  childToParentDependency.addBehavior(toField, DiffAction.ADD, onField, DiffAction.ADD);
16
25
  childToParentDependency.addBehavior(toField, DiffAction.ADD, onField, DiffAction.UPDATE);
17
- if (cIndex === -1) {
18
- childToParentDependency.addChildRelationship(toField, onField);
19
- child.dependencies.push(childToParentDependency);
20
- }
21
- const pIndex = this.dependencies.findIndex((d) => Object.is(d.to, child));
22
- if (pIndex !== -1 && this.dependencies[pIndex].isChildRelationship()) {
23
- throw new Error('Found circular dependencies!');
24
- }
25
- const parentToChildDependency = pIndex === -1 ? new Dependency(this, child) : this.dependencies[pIndex];
26
+ childToParentDependency.addChildRelationship(toField, onField);
27
+ child.dependencies.push(childToParentDependency);
28
+ const parentToChildDependency = new Dependency(this, child);
26
29
  parentToChildDependency.addBehavior(onField, DiffAction.DELETE, toField, DiffAction.DELETE);
27
- if (pIndex === -1) {
28
- parentToChildDependency.addParentRelationship(onField, toField);
29
- this.dependencies.push(parentToChildDependency);
30
- }
30
+ parentToChildDependency.addParentRelationship(onField, toField);
31
+ this.dependencies.push(parentToChildDependency);
32
+ return { childToParentDependency, parentToChildDependency };
31
33
  }
32
- addRelationship(onField, to, toField) {
34
+ addRelationship(to) {
33
35
  const thisToThatDependency = new Dependency(this, to);
34
- thisToThatDependency.addBehavior(onField, DiffAction.ADD, toField, DiffAction.ADD);
35
- thisToThatDependency.addBehavior(onField, DiffAction.ADD, toField, DiffAction.UPDATE);
36
36
  this.dependencies.push(thisToThatDependency);
37
37
  const thatToThisDependency = new Dependency(to, this);
38
- thatToThisDependency.addBehavior(toField, DiffAction.DELETE, onField, DiffAction.DELETE);
39
38
  to.dependencies.push(thatToThisDependency);
39
+ return { thatToThisDependency, thisToThatDependency };
40
+ }
41
+ deriveDependencyField() {
42
+ return this.dependencies.find((d) => d.getRelationship() !== undefined)?.getRelationship().onField;
40
43
  }
41
44
  async diff(previous) {
42
- const childrenByModel = this.getChildren();
43
- const childrenOfPreviousByModel = previous?.getChildren() ?? {};
44
45
  const diffs = [];
45
- const modelsSeen = [];
46
- for (const modelName in childrenByModel) {
47
- const children = childrenByModel[modelName].map((d) => d.to);
48
- const childrenOfPrevious = childrenOfPreviousByModel[modelName]?.map((d) => d.to) ?? [];
49
- const field = childrenByModel[modelName][0].getRelationship().toField;
50
- const childrenDiffs = await DiffUtility.diffModels(childrenOfPrevious, children, field);
46
+ const previousChildrenByModels = previous?.getChildren() ?? {};
47
+ const currentChildrenByModels = this.getChildren();
48
+ for (const modelName of Object.keys(previousChildrenByModels)) {
49
+ const previousChildren = previousChildrenByModels[modelName].map((d) => d.to);
50
+ const currentChildren = currentChildrenByModels[modelName]?.map((d) => d.to) || [];
51
+ const field = previousChildrenByModels[modelName][0].getRelationship().toField;
52
+ const childrenDiffs = await DiffUtility.diffModels(previousChildren, currentChildren, field);
51
53
  diffs.push(...childrenDiffs);
52
- modelsSeen.push(modelName);
53
54
  }
54
- for (const modelName in childrenOfPreviousByModel) {
55
- if (modelsSeen.indexOf(modelName) !== -1) {
55
+ for (const modelName of Object.keys(currentChildrenByModels)) {
56
+ if (previousChildrenByModels.hasOwnProperty(modelName)) {
56
57
  continue;
57
58
  }
58
- const children = [];
59
- const childrenOfPrevious = childrenOfPreviousByModel[modelName].map((d) => d.to);
60
- const field = childrenOfPreviousByModel[modelName][0].getRelationship().toField;
61
- const childrenDiffs = await DiffUtility.diffModels(childrenOfPrevious, children, field);
59
+ const previousChildren = [];
60
+ const currentChildren = currentChildrenByModels[modelName].map((d) => d.to);
61
+ const field = currentChildrenByModels[modelName][0].getRelationship().toField;
62
+ const childrenDiffs = await DiffUtility.diffModels(previousChildren, currentChildren, field);
62
63
  diffs.push(...childrenDiffs);
63
64
  }
65
+ const previousSiblingsByModels = previous?.getSiblings() ?? {};
66
+ const currentSiblingsByModels = this.getSiblings();
67
+ for (const modelName of Object.keys(previousSiblingsByModels)) {
68
+ const previousSiblings = previousSiblingsByModels[modelName];
69
+ const currentSiblings = currentSiblingsByModels[modelName] || [];
70
+ for (const pd of previousSiblings) {
71
+ if (pd.to.MODEL_TYPE === ModelType.OVERLAY) {
72
+ continue;
73
+ }
74
+ if (!currentSiblings.find((cd) => cd.to.getContext() === pd.to.getContext())) {
75
+ diffs.push(new Diff(this, DiffAction.DELETE, 'sibling', pd.to));
76
+ }
77
+ }
78
+ for (const cd of currentSiblings) {
79
+ if (cd.to.MODEL_TYPE === ModelType.OVERLAY) {
80
+ continue;
81
+ }
82
+ if (!previousSiblings.find((pd) => pd.to.getContext() === cd.to.getContext())) {
83
+ diffs.push(new Diff(this, DiffAction.ADD, 'sibling', cd.to));
84
+ }
85
+ }
86
+ }
87
+ for (const modelName of Object.keys(currentSiblingsByModels)) {
88
+ if (previousSiblingsByModels.hasOwnProperty(modelName)) {
89
+ continue;
90
+ }
91
+ const currentSiblings = currentSiblingsByModels[modelName];
92
+ for (const cd of currentSiblings) {
93
+ if (cd.to.MODEL_TYPE === ModelType.OVERLAY) {
94
+ continue;
95
+ }
96
+ diffs.push(new Diff(this, DiffAction.ADD, 'sibling', cd.to));
97
+ }
98
+ }
99
+ const field = this.deriveDependencyField() || '';
100
+ const fieldValue = field ? this[field] : '';
101
+ if (this.isMarkedDeleted()) {
102
+ diffs.push(new Diff(this, DiffAction.DELETE, field, fieldValue));
103
+ }
104
+ else if (!previous) {
105
+ diffs.push(new Diff(this, DiffAction.ADD, field, fieldValue));
106
+ }
107
+ else {
108
+ const pDiffs = await this.diffProperties(previous);
109
+ diffs.push(...pDiffs);
110
+ }
64
111
  return diffs;
65
112
  }
66
113
  getAncestors() {
@@ -82,24 +129,22 @@ export class AModel {
82
129
  }
83
130
  return membersProcessed;
84
131
  }
85
- getAnchor(anchorId) {
86
- return this.anchors.find((a) => a.anchorId === anchorId);
132
+ getAnchor(anchorId, parent) {
133
+ const index = this.getAnchorIndex(anchorId, parent);
134
+ return index > -1 ? this.anchors[index] : undefined;
135
+ }
136
+ getAnchorIndex(anchorId, parent) {
137
+ return this.anchors.findIndex((a) => a.anchorId === anchorId && a.getParent().getContext() === (parent || this).getContext());
87
138
  }
88
- getAnchors() {
89
- return this.anchors;
139
+ getAnchors(filters = []) {
140
+ return this.anchors.filter((a) => filters.every((c) => a[c.key] === c.value));
90
141
  }
91
142
  getBoundaryMembers() {
92
- if (this.MODEL_TYPE !== ModelType.MODEL) {
93
- return [];
94
- }
95
143
  const extenders = [this];
96
144
  const members = [];
97
145
  const parentOf = {};
98
146
  const pushToExtenders = (models) => {
99
147
  models.forEach((model) => {
100
- if (model.MODEL_TYPE !== ModelType.MODEL) {
101
- return;
102
- }
103
148
  if (!members.some((m) => m.getContext() === model.getContext())) {
104
149
  extenders.push(model);
105
150
  }
@@ -112,9 +157,6 @@ export class AModel {
112
157
  if (members.some((m) => m.getContext() === ancestor.getContext())) {
113
158
  continue;
114
159
  }
115
- if (ancestor.MODEL_TYPE !== ModelType.MODEL) {
116
- continue;
117
- }
118
160
  members.push(ancestor);
119
161
  for (const d of ancestor.dependencies) {
120
162
  let childContext;
@@ -162,9 +204,15 @@ export class AModel {
162
204
  }
163
205
  return members;
164
206
  }
165
- getChild(modelName, filters) {
166
- const dependency = this.getChildren(modelName)[modelName]?.find((d) => filters.every((c) => d.to[c.key] === c.value));
167
- return dependency ? dependency.to : undefined;
207
+ getChild(modelName, filters = []) {
208
+ const dependencies = this.getChildren(modelName)[modelName]?.filter((d) => filters.every((c) => d.to[c.key] === c.value));
209
+ if (!dependencies) {
210
+ return undefined;
211
+ }
212
+ if (dependencies.length > 1) {
213
+ throw new Error('More than one children found! Use getChildren() instead.');
214
+ }
215
+ return dependencies[0].to;
168
216
  }
169
217
  getChildren(modelName) {
170
218
  return this.dependencies
@@ -177,6 +225,38 @@ export class AModel {
177
225
  return accumulator;
178
226
  }, {});
179
227
  }
228
+ getContext() {
229
+ if (!this.context) {
230
+ this.context = this.setContext();
231
+ }
232
+ return this.context;
233
+ }
234
+ getDependencies(to) {
235
+ const filters = [];
236
+ if (to) {
237
+ filters.push({ key: 'to', value: to.getContext() });
238
+ }
239
+ return this.dependencies.filter((d) => {
240
+ return filters.every((c) => {
241
+ if (c.key === 'to') {
242
+ return d.to.getContext() === c.value;
243
+ }
244
+ else {
245
+ return true;
246
+ }
247
+ });
248
+ });
249
+ }
250
+ getDependency(to, relationship) {
251
+ const index = this.getDependencyIndex(to, relationship);
252
+ return index > -1 ? this.dependencies[index] : undefined;
253
+ }
254
+ getDependencyIndex(to, relationship) {
255
+ return this.dependencies.findIndex((d) => d.from.getContext() === this.getContext() &&
256
+ d.to.getContext() === to.getContext() &&
257
+ d.getRelationship() !== undefined &&
258
+ d.getRelationship().type === relationship);
259
+ }
180
260
  getParents(modelName) {
181
261
  return this.dependencies
182
262
  .filter((d) => d.isChildRelationship() && (modelName ? d.to.MODEL_NAME === modelName : true))
@@ -188,6 +268,17 @@ export class AModel {
188
268
  return accumulator;
189
269
  }, {});
190
270
  }
271
+ getSiblings(modelName) {
272
+ return this.dependencies
273
+ .filter((d) => !d.isChildRelationship() && !d.isParentRelationship() && (modelName ? d.to.MODEL_NAME === modelName : true))
274
+ .reduce((accumulator, currentValue) => {
275
+ if (!(currentValue.to.MODEL_NAME in accumulator)) {
276
+ accumulator[currentValue.to.MODEL_NAME] = [];
277
+ }
278
+ accumulator[currentValue.to.MODEL_NAME].push(currentValue);
279
+ return accumulator;
280
+ }, {});
281
+ }
191
282
  hasAncestor(model) {
192
283
  const modelParts = model
193
284
  .getContext()
@@ -206,20 +297,39 @@ export class AModel {
206
297
  return modelParts.every((p) => ancestorParts[p[0]] === p[1]);
207
298
  });
208
299
  }
209
- remove(ignoreDirectRelationships = false, dryRun = false) {
300
+ isMarkedDeleted() {
301
+ return this._deleteMarker;
302
+ }
303
+ remove(ignoreDirectRelationships = false) {
210
304
  for (const dependency of this.dependencies) {
211
305
  if ((!ignoreDirectRelationships && !dependency.isChildRelationship()) ||
212
306
  (ignoreDirectRelationships && dependency.isParentRelationship())) {
213
307
  throw new Error('Cannot remove model until dependent models exist!');
214
308
  }
215
309
  }
216
- if (dryRun) {
217
- return;
218
- }
219
310
  for (const dependency of this.dependencies) {
220
311
  const index = dependency.to.dependencies.findIndex((d) => d.to.getContext() === this.getContext());
221
312
  dependency.to.dependencies.splice(index, 1);
222
313
  }
314
+ this._deleteMarker = true;
315
+ }
316
+ removeAllAnchors() {
317
+ let anchors = this.getAnchors();
318
+ while (anchors.length > 0) {
319
+ this.removeAnchor(anchors[0]);
320
+ anchors = this.getAnchors();
321
+ }
322
+ }
323
+ removeAnchor(anchor) {
324
+ const existingAnchorIndex = this.getAnchorIndex(anchor.anchorId, anchor.getParent());
325
+ if (existingAnchorIndex !== -1) {
326
+ this.anchors.splice(existingAnchorIndex, 1);
327
+ }
328
+ }
329
+ removeDependency(dependencyIndex) {
330
+ if (dependencyIndex > -1 && dependencyIndex < this.dependencies.length) {
331
+ this.dependencies.splice(dependencyIndex, 1);
332
+ }
223
333
  }
224
334
  removeRelationship(model) {
225
335
  for (let i = this.dependencies.length - 1; i >= 0; i--) {
@@ -1 +1 @@
1
- {"version":3,"file":"model.abstract.js","sourceRoot":"","sources":["../../src/models/model.abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.abstract.js","sourceRoot":"","sources":["../../src/models/model.abstract.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { ModelType } from '../app.type.js';
2
- import { Diff } from '../functions/diff/diff.model.js';
1
+ import type { ModelType } from '../app.type.js';
2
+ import type { Diff } from '../functions/diff/diff.js';
3
3
  export interface IModel<I, T> {
4
4
  readonly MODEL_NAME: string;
5
5
  readonly MODEL_TYPE: ModelType;
6
6
  diff(previous?: T): Promise<Diff[]>;
7
- getContext(): string;
7
+ diffProperties(previous: T): Promise<Diff[]>;
8
+ setContext(): string;
8
9
  synth(): I;
9
10
  }
10
11
  export interface IModelReference {
@@ -1,4 +1,4 @@
1
- import { Pipeline } from './pipeline.model.js';
1
+ import type { Pipeline } from './pipeline.model.js';
2
2
  export interface IPipeline {
3
3
  instructionSet: Pipeline['instructionSet'];
4
4
  pipelineName: Pipeline['pipelineName'];
@@ -1,14 +1,14 @@
1
- import { UnknownModel } from '../../app.type.js';
1
+ import type { UnknownModel } from '../../app.type.js';
2
2
  import { AModel } from '../model.abstract.js';
3
- import { Diff } from '../../functions/diff/diff.model.js';
4
- import { IPipeline } from './pipeline.interface.js';
3
+ import type { Diff } from '../../functions/diff/diff.js';
4
+ import type { IPipeline } from './pipeline.interface.js';
5
5
  export declare class Pipeline extends AModel<IPipeline, Pipeline> {
6
6
  readonly MODEL_NAME: string;
7
7
  readonly instructionSet: string[];
8
8
  readonly pipelineName: string;
9
9
  constructor(pipelineName: string);
10
- diff(previous?: Pipeline): Promise<Diff[]>;
11
- getContext(): string;
10
+ diffProperties(previous: Pipeline): Promise<Diff[]>;
11
+ setContext(): string;
12
12
  synth(): IPipeline;
13
13
  static unSynth(pipeline: IPipeline, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Pipeline>;
14
14
  }
@@ -19,17 +19,17 @@ let Pipeline = Pipeline_1 = class Pipeline extends AModel {
19
19
  super();
20
20
  this.pipelineName = pipelineName;
21
21
  }
22
- async diff(previous) {
23
- return DiffUtility.diffArray(previous || { instructionSet: [] }, this, 'instructionSet');
22
+ async diffProperties(previous) {
23
+ return DiffUtility.diffArray(previous, this, 'instructionSet');
24
24
  }
25
- getContext() {
25
+ setContext() {
26
26
  const parents = this.getParents();
27
27
  const app = parents['app'][0].to;
28
28
  return [`${this.MODEL_NAME}=${this.pipelineName}`, app.getContext()].join(',');
29
29
  }
30
30
  synth() {
31
31
  return {
32
- instructionSet: [...this.instructionSet],
32
+ instructionSet: JSON.parse(JSON.stringify(this.instructionSet)),
33
33
  pipelineName: this.pipelineName,
34
34
  };
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKvC,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,MAA2B;IAC9C,UAAU,GAAW,UAAU,CAAC;IAEhC,cAAc,GAAa,EAAE,CAAC;IAE9B,YAAY,CAAS;IAE9B,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,QAAmB;QAErC,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,IAAK,EAAE,cAAc,EAAE,EAAE,EAA0B,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACpH,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,KAAK;QACH,OAAO;YACL,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,QAAmB,EACnB,kBAA8D;QAE9D,MAAM,WAAW,GAAG,IAAI,UAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxD,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAtCY,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAsCpB"}
1
+ {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKvC,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,MAA2B;IAC9C,UAAU,GAAW,UAAU,CAAC;IAEhC,cAAc,GAAa,EAAE,CAAC;IAE9B,YAAY,CAAS;IAE9B,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,QAAkB;QAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/D,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,QAAmB,EAEnB,kBAA8D;QAE9D,MAAM,WAAW,GAAG,IAAI,UAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxD,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAtCY,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAsCpB"}
@@ -1,4 +1,4 @@
1
- import { Region } from './region.model.js';
1
+ import type { Region } from './region.model.js';
2
2
  export interface IRegion {
3
3
  regionId: Region['regionId'];
4
4
  }
@@ -1,13 +1,17 @@
1
- import { UnknownModel } from '../../app.type.js';
1
+ import type { UnknownModel } from '../../app.type.js';
2
+ import type { Diff } from '../../functions/diff/diff.js';
2
3
  import { Environment } from '../environment/environment.model.js';
3
4
  import { AModel } from '../model.abstract.js';
4
- import { IRegion } from './region.interface.js';
5
+ import { Subnet } from '../subnet/subnet.model.js';
6
+ import type { IRegion } from './region.interface.js';
5
7
  export declare class Region extends AModel<IRegion, Region> {
6
8
  readonly MODEL_NAME: string;
7
9
  readonly regionId: string;
8
10
  constructor(regionId: string);
9
11
  addEnvironment(environment: Environment): void;
10
- getContext(): string;
12
+ addSubnet(subnet: Subnet): void;
13
+ diffProperties(): Promise<Diff[]>;
14
+ setContext(): string;
11
15
  synth(): IRegion;
12
16
  static unSynth(region: IRegion, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Region>;
13
17
  }
@@ -27,7 +27,20 @@ let Region = Region_1 = class Region extends AModel {
27
27
  }
28
28
  this.addChild('regionId', environment, 'environmentName');
29
29
  }
30
- getContext() {
30
+ addSubnet(subnet) {
31
+ const childrenDependencies = this.getChildren('subnet');
32
+ if (!childrenDependencies['subnet'])
33
+ childrenDependencies['subnet'] = [];
34
+ const subnets = childrenDependencies['subnet'].map((d) => d.to);
35
+ if (subnets.find((z) => z.subnetId === subnet.subnetId)) {
36
+ throw new Error('Subnet already exists!');
37
+ }
38
+ this.addChild('regionId', subnet, 'subnetId');
39
+ }
40
+ async diffProperties() {
41
+ return [];
42
+ }
43
+ setContext() {
31
44
  const parents = this.getParents();
32
45
  const app = parents['app'][0].to;
33
46
  return [`${this.MODEL_NAME}=${this.regionId}`, app.getContext()].join(',');
@@ -1 +1 @@
1
- {"version":3,"file":"region.model.js","sourceRoot":"","sources":["../../../src/models/region/region.model.ts"],"names":[],"mappings":";;;;;;;;;;AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,WAAwB;QACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAGnF,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK;QACH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EACf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAxCY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CAwClB"}
1
+ {"version":3,"file":"region.model.js","sourceRoot":"","sources":["../../../src/models/region/region.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,WAAwB;QACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAGnF,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;YAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAGzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EAEf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA1DY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CA0DlB"}
@@ -1,6 +1,4 @@
1
- import { IModelReference } from '../model.interface.js';
2
- import { Server } from './server.model.js';
1
+ import type { Server } from './server.model.js';
3
2
  export interface IServer {
4
- image: IModelReference;
5
3
  serverKey: Server['serverKey'];
6
4
  }
@@ -1,15 +1,15 @@
1
- import { UnknownModel } from '../../app.type.js';
1
+ import type { UnknownModel } from '../../app.type.js';
2
+ import type { Diff } from '../../functions/diff/diff.js';
2
3
  import { Deployment } from '../deployment/deployment.model.js';
3
- import { Image } from '../image/image.model.js';
4
4
  import { AModel } from '../model.abstract.js';
5
- import { IServer } from './server.interface.js';
5
+ import type { IServer } from './server.interface.js';
6
6
  export declare class Server extends AModel<IServer, Server> {
7
7
  readonly MODEL_NAME: string;
8
- readonly image: Image;
9
8
  readonly serverKey: string;
10
- constructor(serverKey: string, image: Image);
9
+ constructor(serverKey: string);
11
10
  addDeployment(deployment: Deployment): void;
12
- getContext(): string;
11
+ diffProperties(): Promise<Diff[]>;
12
+ setContext(): string;
13
13
  synth(): IServer;
14
14
  static unSynth(server: IServer, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Server>;
15
15
  }
@@ -9,17 +9,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Server_1;
11
11
  import { Model } from '../../decorators/model.decorator.js';
12
- import { Image } from '../image/image.model.js';
13
12
  import { AModel } from '../model.abstract.js';
14
13
  let Server = Server_1 = class Server extends AModel {
15
14
  MODEL_NAME = 'server';
16
- image;
17
15
  serverKey;
18
- constructor(serverKey, image) {
16
+ constructor(serverKey) {
19
17
  super();
20
18
  this.serverKey = serverKey;
21
- this.image = image;
22
- this.addRelationship('serverKey', image, 'imageId');
23
19
  }
24
20
  addDeployment(deployment) {
25
21
  const childrenDependencies = this.getChildren('deployment');
@@ -31,25 +27,26 @@ let Server = Server_1 = class Server extends AModel {
31
27
  }
32
28
  this.addChild('serverKey', deployment, 'deploymentTag');
33
29
  }
34
- getContext() {
30
+ async diffProperties() {
31
+ return [];
32
+ }
33
+ setContext() {
35
34
  const parents = this.getParents();
36
35
  const app = parents['app'][0].to;
37
36
  return [`${this.MODEL_NAME}=${this.serverKey}`, app.getContext()].join(',');
38
37
  }
39
38
  synth() {
40
39
  return {
41
- image: { context: this.image.getContext() },
42
40
  serverKey: this.serverKey,
43
41
  };
44
42
  }
45
43
  static async unSynth(server, deReferenceContext) {
46
- const image = (await deReferenceContext(server.image.context));
47
- return new Server_1(server.serverKey, image);
44
+ return new Server_1(server.serverKey);
48
45
  }
49
46
  };
50
47
  Server = Server_1 = __decorate([
51
48
  Model(),
52
- __metadata("design:paramtypes", [String, Image])
49
+ __metadata("design:paramtypes", [String])
53
50
  ], Server);
54
51
  export { Server };
55
52
  //# sourceMappingURL=server.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.model.js","sourceRoot":"","sources":["../../../src/models/server/server.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,KAAK,CAAQ;IAEb,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,KAAY;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAGjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK;QACH,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EACf,kBAA8D;QAE9D,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAU,CAAC;QACxE,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AA/CY,MAAM;IADlB,KAAK,EAAE;6CAQgC,KAAK;GAPhC,MAAM,CA+ClB"}
1
+ {"version":3,"file":"server.model.js","sourceRoot":"","sources":["../../../src/models/server/server.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIvC,IAAM,MAAM,cAAZ,MAAM,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAGjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEQ,UAAU;QACjB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EAEf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA7CY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CA6ClB"}
@@ -1,4 +1,4 @@
1
- import { Service } from './service.model.js';
1
+ import type { Service } from './service.model.js';
2
2
  export interface IService {
3
3
  serviceId: Service['serviceId'];
4
4
  }
@@ -1,9 +1,11 @@
1
+ import type { Diff } from '../../functions/diff/diff.js';
1
2
  import { AModel } from '../model.abstract.js';
2
- import { IService } from './service.interface.js';
3
+ import type { IService } from './service.interface.js';
3
4
  export declare class Service extends AModel<IService, Service> {
4
5
  readonly MODEL_NAME: string;
5
6
  readonly serviceId: string;
6
7
  constructor(serviceId: string);
7
- getContext(): string;
8
+ diffProperties(previous: Service): Promise<Diff[]>;
9
+ setContext(): string;
8
10
  synth(): IService;
9
11
  }