@quadnix/octo 0.0.20 → 0.0.22

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 (201) hide show
  1. package/dist/app.type.d.ts +8 -1
  2. package/dist/app.type.js +13 -7
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.d.ts +19 -2
  5. package/dist/decorators/action.decorator.js +28 -5
  6. package/dist/decorators/action.decorator.js.map +1 -1
  7. package/dist/decorators/anchor.decorator.d.ts +13 -0
  8. package/dist/decorators/anchor.decorator.js +14 -1
  9. package/dist/decorators/anchor.decorator.js.map +1 -1
  10. package/dist/decorators/enable-hook.decorator.d.ts +14 -0
  11. package/dist/decorators/enable-hook.decorator.js +14 -0
  12. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  13. package/dist/decorators/event-source.decorator.d.ts +15 -0
  14. package/dist/decorators/event-source.decorator.js +15 -0
  15. package/dist/decorators/event-source.decorator.js.map +1 -1
  16. package/dist/decorators/factory.decorator.d.ts +54 -5
  17. package/dist/decorators/factory.decorator.js +56 -3
  18. package/dist/decorators/factory.decorator.js.map +1 -1
  19. package/dist/decorators/model.decorator.d.ts +13 -0
  20. package/dist/decorators/model.decorator.js +14 -1
  21. package/dist/decorators/model.decorator.js.map +1 -1
  22. package/dist/decorators/module.decorator.d.ts +61 -5
  23. package/dist/decorators/module.decorator.js +62 -3
  24. package/dist/decorators/module.decorator.js.map +1 -1
  25. package/dist/decorators/on-event.decorator.d.ts +17 -0
  26. package/dist/decorators/on-event.decorator.js +17 -0
  27. package/dist/decorators/on-event.decorator.js.map +1 -1
  28. package/dist/decorators/overlay.decorator.d.ts +13 -0
  29. package/dist/decorators/overlay.decorator.js +14 -1
  30. package/dist/decorators/overlay.decorator.js.map +1 -1
  31. package/dist/decorators/resource.decorator.d.ts +13 -0
  32. package/dist/decorators/resource.decorator.js +14 -1
  33. package/dist/decorators/resource.decorator.js.map +1 -1
  34. package/dist/decorators/validate.decorator.d.ts +9 -0
  35. package/dist/decorators/validate.decorator.js +23 -0
  36. package/dist/decorators/validate.decorator.js.map +1 -0
  37. package/dist/events/error.event.d.ts +30 -0
  38. package/dist/events/error.event.js +30 -0
  39. package/dist/events/error.event.js.map +1 -1
  40. package/dist/events/event.model.d.ts +27 -0
  41. package/dist/events/event.model.js +27 -3
  42. package/dist/events/event.model.js.map +1 -1
  43. package/dist/events/hook.event.d.ts +167 -0
  44. package/dist/events/hook.event.js +167 -0
  45. package/dist/events/hook.event.js.map +1 -1
  46. package/dist/events/module.event.d.ts +12 -0
  47. package/dist/events/module.event.js +12 -0
  48. package/dist/events/module.event.js.map +1 -1
  49. package/dist/events/registration.event.d.ts +90 -0
  50. package/dist/events/registration.event.js +90 -0
  51. package/dist/events/registration.event.js.map +1 -1
  52. package/dist/events/serialization.event.d.ts +61 -0
  53. package/dist/events/serialization.event.js +61 -0
  54. package/dist/events/serialization.event.js.map +1 -1
  55. package/dist/events/transaction.event.d.ts +41 -0
  56. package/dist/events/transaction.event.js +41 -0
  57. package/dist/events/transaction.event.js.map +1 -1
  58. package/dist/functions/container/container.d.ts +53 -0
  59. package/dist/functions/container/container.js +102 -0
  60. package/dist/functions/container/container.js.map +1 -0
  61. package/dist/functions/container/test-container.d.ts +75 -0
  62. package/dist/functions/container/test-container.js +97 -0
  63. package/dist/functions/container/test-container.js.map +1 -0
  64. package/dist/functions/dependency/dependency.d.ts +6 -6
  65. package/dist/functions/dependency/dependency.js +1 -8
  66. package/dist/functions/dependency/dependency.js.map +1 -1
  67. package/dist/functions/diff/diff-metadata.d.ts +5 -2
  68. package/dist/functions/diff/diff-metadata.js +6 -11
  69. package/dist/functions/diff/diff-metadata.js.map +1 -1
  70. package/dist/functions/diff/diff.d.ts +6 -3
  71. package/dist/functions/diff/diff.js +8 -13
  72. package/dist/functions/diff/diff.js.map +1 -1
  73. package/dist/functions/diff/diff.utility.d.ts +38 -6
  74. package/dist/functions/diff/diff.utility.js +55 -6
  75. package/dist/functions/diff/diff.utility.js.map +1 -1
  76. package/dist/functions/hook/commit.hook.js +6 -3
  77. package/dist/functions/hook/commit.hook.js.map +1 -1
  78. package/dist/functions/hook/model-action.hook.js +7 -4
  79. package/dist/functions/hook/model-action.hook.js.map +1 -1
  80. package/dist/functions/hook/resource-action.hook.js +6 -3
  81. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  82. package/dist/functions/node/node.abstract.d.ts +84 -0
  83. package/dist/functions/node/node.abstract.js +275 -0
  84. package/dist/functions/node/node.abstract.js.map +1 -0
  85. package/dist/functions/node/node.interface.d.ts +176 -0
  86. package/dist/functions/node/node.interface.js +2 -0
  87. package/dist/functions/node/node.interface.js.map +1 -0
  88. package/dist/index.d.ts +12 -12
  89. package/dist/index.js +11 -11
  90. package/dist/index.js.map +1 -1
  91. package/dist/main.d.ts +11 -10
  92. package/dist/main.js +76 -37
  93. package/dist/main.js.map +1 -1
  94. package/dist/models/app/app.interface.d.ts +5 -0
  95. package/dist/models/app/app.model.d.ts +30 -3
  96. package/dist/models/app/app.model.js +40 -6
  97. package/dist/models/app/app.model.js.map +1 -1
  98. package/dist/models/deployment/deployment.interface.d.ts +5 -0
  99. package/dist/models/deployment/deployment.model.d.ts +16 -3
  100. package/dist/models/deployment/deployment.model.js +20 -6
  101. package/dist/models/deployment/deployment.model.js.map +1 -1
  102. package/dist/models/environment/environment.interface.d.ts +5 -0
  103. package/dist/models/environment/environment.model.d.ts +19 -3
  104. package/dist/models/environment/environment.model.js +33 -8
  105. package/dist/models/environment/environment.model.js.map +1 -1
  106. package/dist/models/execution/execution.interface.d.ts +5 -0
  107. package/dist/models/execution/execution.model.d.ts +24 -3
  108. package/dist/models/execution/execution.model.js +40 -7
  109. package/dist/models/execution/execution.model.js.map +1 -1
  110. package/dist/models/image/image.interface.d.ts +5 -0
  111. package/dist/models/image/image.model.d.ts +36 -3
  112. package/dist/models/image/image.model.js +25 -9
  113. package/dist/models/image/image.model.js.map +1 -1
  114. package/dist/models/model-action.interface.d.ts +18 -1
  115. package/dist/models/model.abstract.d.ts +7 -42
  116. package/dist/models/model.abstract.js +24 -295
  117. package/dist/models/model.abstract.js.map +1 -1
  118. package/dist/models/model.interface.d.ts +51 -11
  119. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  120. package/dist/models/pipeline/pipeline.model.d.ts +16 -3
  121. package/dist/models/pipeline/pipeline.model.js +25 -8
  122. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  123. package/dist/models/region/region.interface.d.ts +5 -0
  124. package/dist/models/region/region.model.d.ts +19 -3
  125. package/dist/models/region/region.model.js +29 -6
  126. package/dist/models/region/region.model.js.map +1 -1
  127. package/dist/models/server/server.interface.d.ts +5 -0
  128. package/dist/models/server/server.model.d.ts +18 -3
  129. package/dist/models/server/server.model.js +24 -6
  130. package/dist/models/server/server.model.js.map +1 -1
  131. package/dist/models/service/service.interface.d.ts +5 -0
  132. package/dist/models/service/service.model.d.ts +16 -3
  133. package/dist/models/service/service.model.js +19 -6
  134. package/dist/models/service/service.model.js.map +1 -1
  135. package/dist/models/subnet/subnet.interface.d.ts +5 -0
  136. package/dist/models/subnet/subnet.model.d.ts +50 -3
  137. package/dist/models/subnet/subnet.model.js +58 -22
  138. package/dist/models/subnet/subnet.model.js.map +1 -1
  139. package/dist/modules/module.container.d.ts +4 -2
  140. package/dist/modules/module.container.js +17 -8
  141. package/dist/modules/module.container.js.map +1 -1
  142. package/dist/modules/test-module.container.d.ts +4 -4
  143. package/dist/modules/test-module.container.js +18 -17
  144. package/dist/modules/test-module.container.js.map +1 -1
  145. package/dist/overlays/anchor.abstract.js +0 -3
  146. package/dist/overlays/anchor.abstract.js.map +1 -1
  147. package/dist/overlays/overlay-data.repository.d.ts +2 -4
  148. package/dist/overlays/overlay-data.repository.js +8 -36
  149. package/dist/overlays/overlay-data.repository.js.map +1 -1
  150. package/dist/overlays/overlay.abstract.d.ts +6 -7
  151. package/dist/overlays/overlay.abstract.js +20 -42
  152. package/dist/overlays/overlay.abstract.js.map +1 -1
  153. package/dist/overlays/overlay.service.d.ts +0 -1
  154. package/dist/overlays/overlay.service.js +1 -7
  155. package/dist/overlays/overlay.service.js.map +1 -1
  156. package/dist/resources/resource-data.repository.d.ts +16 -6
  157. package/dist/resources/resource-data.repository.js +121 -18
  158. package/dist/resources/resource-data.repository.js.map +1 -1
  159. package/dist/resources/resource.abstract.d.ts +23 -6
  160. package/dist/resources/resource.abstract.js +147 -13
  161. package/dist/resources/resource.abstract.js.map +1 -1
  162. package/dist/resources/shared-resource.abstract.d.ts +2 -2
  163. package/dist/resources/shared-resource.abstract.js +5 -2
  164. package/dist/resources/shared-resource.abstract.js.map +1 -1
  165. package/dist/services/capture/capture.service.d.ts +1 -2
  166. package/dist/services/capture/capture.service.js +5 -4
  167. package/dist/services/capture/capture.service.js.map +1 -1
  168. package/dist/services/event/event.service.js +9 -6
  169. package/dist/services/event/event.service.js.map +1 -1
  170. package/dist/services/input/input.service.js +3 -5
  171. package/dist/services/input/input.service.js.map +1 -1
  172. package/dist/services/serialization/model/model-serialization.service.js +13 -14
  173. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  174. package/dist/services/serialization/resource/resource-serialization.service.d.ts +4 -4
  175. package/dist/services/serialization/resource/resource-serialization.service.js +23 -13
  176. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  177. package/dist/services/state-management/local.state-provider.js +0 -1
  178. package/dist/services/state-management/local.state-provider.js.map +1 -1
  179. package/dist/services/state-management/state-management.service.d.ts +1 -1
  180. package/dist/services/state-management/state-management.service.js +6 -9
  181. package/dist/services/state-management/state-management.service.js.map +1 -1
  182. package/dist/services/state-management/test.state-provider.js +3 -1
  183. package/dist/services/state-management/test.state-provider.js.map +1 -1
  184. package/dist/services/transaction/transaction.service.d.ts +5 -2
  185. package/dist/services/transaction/transaction.service.js +117 -87
  186. package/dist/services/transaction/transaction.service.js.map +1 -1
  187. package/dist/services/validation/validation.service.d.ts +19 -0
  188. package/dist/services/validation/validation.service.js +66 -0
  189. package/dist/services/validation/validation.service.js.map +1 -0
  190. package/dist/utilities/object/object.utility.js +1 -0
  191. package/dist/utilities/object/object.utility.js.map +1 -1
  192. package/dist/utilities/validation/validation.utility.d.ts +5 -0
  193. package/dist/utilities/validation/validation.utility.js +12 -0
  194. package/dist/utilities/validation/validation.utility.js.map +1 -0
  195. package/package.json +1 -1
  196. package/dist/decorators/container.d.ts +0 -24
  197. package/dist/decorators/container.js +0 -96
  198. package/dist/decorators/container.js.map +0 -1
  199. package/dist/decorators/test-container.d.ts +0 -27
  200. package/dist/decorators/test-container.js +0 -52
  201. package/dist/decorators/test-container.js.map +0 -1
@@ -1,133 +1,56 @@
1
- import { ModelType } from '../app.type.js';
2
- import { Dependency } from '../functions/dependency/dependency.js';
1
+ import { NodeType } from '../app.type.js';
3
2
  import { Diff, DiffAction } from '../functions/diff/diff.js';
4
3
  import { DiffUtility } from '../functions/diff/diff.utility.js';
5
- export class AModel {
6
- MODEL_TYPE = ModelType.MODEL;
7
- _deleteMarker = false;
8
- anchors = [];
9
- context;
10
- dependencies = [];
4
+ import { ANode } from '../functions/node/node.abstract.js';
5
+ export class AModel extends ANode {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.NODE_TYPE = NodeType.MODEL;
9
+ this.anchors = [];
10
+ }
11
11
  addAnchor(anchor) {
12
12
  const existingAnchor = this.getAnchor(anchor.anchorId, anchor.getParent());
13
13
  if (!existingAnchor) {
14
14
  this.anchors.push(anchor);
15
15
  }
16
16
  }
17
- addChild(onField, child, toField) {
18
- const cIndex = child.dependencies.findIndex((d) => Object.is(d.to, this));
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!');
22
- }
23
- const childToParentDependency = new Dependency(child, this);
24
- childToParentDependency.addBehavior(toField, DiffAction.ADD, onField, DiffAction.ADD);
25
- childToParentDependency.addBehavior(toField, DiffAction.ADD, onField, DiffAction.UPDATE);
26
- childToParentDependency.addChildRelationship(toField, onField);
27
- child.dependencies.push(childToParentDependency);
28
- const parentToChildDependency = new Dependency(this, child);
29
- parentToChildDependency.addBehavior(onField, DiffAction.DELETE, toField, DiffAction.DELETE);
30
- parentToChildDependency.addParentRelationship(onField, toField);
31
- this.dependencies.push(parentToChildDependency);
32
- return { childToParentDependency, parentToChildDependency };
33
- }
34
- addRelationship(to) {
35
- const thisToThatDependency = new Dependency(this, to);
36
- this.dependencies.push(thisToThatDependency);
37
- const thatToThisDependency = new Dependency(to, this);
38
- to.dependencies.push(thatToThisDependency);
39
- return { thatToThisDependency, thisToThatDependency };
40
- }
41
17
  deriveDependencyField() {
42
- return this.dependencies.find((d) => d.getRelationship() !== undefined)?.getRelationship().onField;
18
+ return this.getDependencies()
19
+ .find((d) => d.getRelationship() !== undefined)
20
+ ?.getRelationship().onField;
43
21
  }
44
- async diff(previous) {
22
+ async diff() {
45
23
  const diffs = [];
46
- const previousChildrenByModels = previous?.getChildren() ?? {};
47
24
  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);
53
- diffs.push(...childrenDiffs);
54
- }
55
25
  for (const modelName of Object.keys(currentChildrenByModels)) {
56
- if (previousChildrenByModels.hasOwnProperty(modelName)) {
57
- continue;
58
- }
59
26
  const previousChildren = [];
60
27
  const currentChildren = currentChildrenByModels[modelName].map((d) => d.to);
61
28
  const field = currentChildrenByModels[modelName][0].getRelationship().toField;
62
- const childrenDiffs = await DiffUtility.diffModels(previousChildren, currentChildren, field);
29
+ const childrenDiffs = await DiffUtility.diffNodes(previousChildren, currentChildren, field);
63
30
  diffs.push(...childrenDiffs);
64
31
  }
65
- const previousSiblingsByModels = previous?.getSiblings() ?? {};
66
32
  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
33
  for (const modelName of Object.keys(currentSiblingsByModels)) {
88
- if (previousSiblingsByModels.hasOwnProperty(modelName)) {
89
- continue;
90
- }
91
34
  const currentSiblings = currentSiblingsByModels[modelName];
92
35
  for (const cd of currentSiblings) {
93
- if (cd.to.MODEL_TYPE === ModelType.OVERLAY) {
36
+ // Skip OVERLAY sibling, since overlays are diffed separately.
37
+ if (cd.to.NODE_TYPE === NodeType.OVERLAY) {
94
38
  continue;
95
39
  }
96
40
  diffs.push(new Diff(this, DiffAction.ADD, 'sibling', cd.to));
97
41
  }
98
42
  }
43
+ // Add model.
99
44
  const field = this.deriveDependencyField() || '';
100
45
  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
- }
46
+ diffs.push(new Diff(this, DiffAction.ADD, field, fieldValue));
47
+ // Diff model properties.
48
+ const propertyDiffs = await this.diffProperties();
49
+ diffs.push(...propertyDiffs);
111
50
  return diffs;
112
51
  }
113
- getAncestors() {
114
- const members = [this];
115
- const membersProcessed = [];
116
- while (members.length > 0) {
117
- const member = members.pop();
118
- if (membersProcessed.some((m) => m.getContext() === member.getContext())) {
119
- continue;
120
- }
121
- for (const d of member.dependencies) {
122
- if (!d.isParentRelationship() &&
123
- d.hasMatchingBehavior(undefined, DiffAction.ADD, undefined, DiffAction.ADD) &&
124
- !membersProcessed.some((m) => m.getContext() === d.to.getContext())) {
125
- members.push(d.to);
126
- }
127
- }
128
- membersProcessed.push(member);
129
- }
130
- return membersProcessed;
52
+ async diffProperties() {
53
+ return [];
131
54
  }
132
55
  getAnchor(anchorId, parent) {
133
56
  const index = this.getAnchorIndex(anchorId, parent);
@@ -139,185 +62,10 @@ export class AModel {
139
62
  getAnchors(filters = []) {
140
63
  return this.anchors.filter((a) => filters.every((c) => a[c.key] === c.value));
141
64
  }
142
- getBoundaryMembers() {
143
- const extenders = [this];
144
- const members = [];
145
- const parentOf = {};
146
- const pushToExtenders = (models) => {
147
- models.forEach((model) => {
148
- if (!members.some((m) => m.getContext() === model.getContext())) {
149
- extenders.push(model);
150
- }
151
- });
152
- };
153
- while (extenders.length > 0) {
154
- const model = extenders.pop();
155
- const ancestors = model.getAncestors();
156
- for (const ancestor of ancestors) {
157
- if (members.some((m) => m.getContext() === ancestor.getContext())) {
158
- continue;
159
- }
160
- members.push(ancestor);
161
- for (const d of ancestor.dependencies) {
162
- let childContext;
163
- let parentContext;
164
- if (d.isParentRelationship()) {
165
- childContext = d.to.getContext();
166
- parentContext = d.from.getContext();
167
- }
168
- else if (d.isChildRelationship()) {
169
- childContext = d.from.getContext();
170
- parentContext = d.to.getContext();
171
- }
172
- else {
173
- continue;
174
- }
175
- const seen = {};
176
- const toProcess = [parentContext];
177
- while (toProcess.length > 0) {
178
- const context = toProcess.pop();
179
- if (seen[context]) {
180
- throw new Error('Found circular dependencies!');
181
- }
182
- else {
183
- seen[context] = true;
184
- }
185
- toProcess.push(...(parentOf[context] || []));
186
- }
187
- if (!parentOf[childContext]) {
188
- parentOf[childContext] = [];
189
- parentOf[childContext].push(parentContext);
190
- }
191
- else if (!parentOf[childContext].some((p) => p === parentContext)) {
192
- parentOf[childContext].push(parentContext);
193
- }
194
- }
195
- }
196
- const children = model.getChildren();
197
- for (const modelName in children) {
198
- pushToExtenders(children[modelName].map((d) => d.to));
199
- }
200
- const dependents = model.dependencies
201
- .filter((d) => !d.isParentRelationship() && !d.isChildRelationship())
202
- .map((d) => d.to);
203
- pushToExtenders(dependents);
204
- }
205
- return members;
206
- }
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;
216
- }
217
- getChildren(modelName) {
218
- return this.dependencies
219
- .filter((d) => d.isParentRelationship() && (modelName ? d.to.MODEL_NAME === modelName : true))
220
- .reduce((accumulator, currentValue) => {
221
- if (!(currentValue.to.MODEL_NAME in accumulator)) {
222
- accumulator[currentValue.to.MODEL_NAME] = [];
223
- }
224
- accumulator[currentValue.to.MODEL_NAME].push(currentValue);
225
- return accumulator;
226
- }, {});
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
- }
260
- getParents(modelName) {
261
- return this.dependencies
262
- .filter((d) => d.isChildRelationship() && (modelName ? d.to.MODEL_NAME === modelName : true))
263
- .reduce((accumulator, currentValue) => {
264
- if (!(currentValue.to.MODEL_NAME in accumulator)) {
265
- accumulator[currentValue.to.MODEL_NAME] = [];
266
- }
267
- accumulator[currentValue.to.MODEL_NAME].push(currentValue);
268
- return accumulator;
269
- }, {});
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
- }
282
- hasAncestor(model) {
283
- const modelParts = model
284
- .getContext()
285
- .split(',')
286
- .map((p) => p.split('='));
287
- const ancestors = this.getAncestors();
288
- return ancestors.some((a) => {
289
- const ancestorParts = a
290
- .getContext()
291
- .split(',')
292
- .reduce((map, p) => {
293
- const parts = p.split('=');
294
- map[parts[0]] = parts[1];
295
- return map;
296
- }, {});
297
- return modelParts.every((p) => ancestorParts[p[0]] === p[1]);
298
- });
299
- }
300
- isMarkedDeleted() {
301
- return this._deleteMarker;
302
- }
303
- remove(ignoreDirectRelationships = false) {
304
- for (const dependency of this.dependencies) {
305
- if ((!ignoreDirectRelationships && !dependency.isChildRelationship()) ||
306
- (ignoreDirectRelationships && dependency.isParentRelationship())) {
307
- throw new Error('Cannot remove model until dependent models exist!');
308
- }
309
- }
310
- for (const dependency of this.dependencies) {
311
- const index = dependency.to.dependencies.findIndex((d) => d.to.getContext() === this.getContext());
312
- dependency.to.dependencies.splice(index, 1);
313
- }
314
- this._deleteMarker = true;
315
- }
316
65
  removeAllAnchors() {
317
- let anchors = this.getAnchors();
66
+ const anchors = this.getAnchors();
318
67
  while (anchors.length > 0) {
319
- this.removeAnchor(anchors[0]);
320
- anchors = this.getAnchors();
68
+ this.removeAnchor(anchors.shift());
321
69
  }
322
70
  }
323
71
  removeAnchor(anchor) {
@@ -326,25 +74,6 @@ export class AModel {
326
74
  this.anchors.splice(existingAnchorIndex, 1);
327
75
  }
328
76
  }
329
- removeDependency(dependencyIndex) {
330
- if (dependencyIndex > -1 && dependencyIndex < this.dependencies.length) {
331
- this.dependencies.splice(dependencyIndex, 1);
332
- }
333
- }
334
- removeRelationship(model) {
335
- for (let i = this.dependencies.length - 1; i >= 0; i--) {
336
- const dependency = this.dependencies[i];
337
- if (dependency.to.getContext() === model.getContext()) {
338
- this.dependencies.splice(i, 1);
339
- }
340
- }
341
- for (let i = model.dependencies.length - 1; i >= 0; i--) {
342
- const dependency = model.dependencies[i];
343
- if (dependency.to.getContext() === this.getContext()) {
344
- model.dependencies.splice(i, 1);
345
- }
346
- }
347
- }
348
77
  static async unSynth(...args) {
349
78
  if (args.length > 4) {
350
79
  throw new Error('Too many args in unSynth()');
@@ -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,13 +1,53 @@
1
- import type { ModelType } from '../app.type.js';
2
- import type { Diff } from '../functions/diff/diff.js';
3
- export interface IModel<I, T> {
4
- readonly MODEL_NAME: string;
5
- readonly MODEL_TYPE: ModelType;
6
- diff(previous?: T): Promise<Diff[]>;
7
- diffProperties(previous: T): Promise<Diff[]>;
8
- setContext(): string;
9
- synth(): I;
1
+ import type { UnknownModel } from '../app.type.js';
2
+ import type { INode, INodeReference } from '../functions/node/node.interface.js';
3
+ import type { AAnchor } from '../overlays/anchor.abstract.js';
4
+ /**
5
+ * {@link AModel} interface.
6
+ */
7
+ export interface IModel<I, T> extends INode<I, T> {
8
+ /**
9
+ * To add an {@link Anchor}.
10
+ *
11
+ * Each node can store multiple anchors for reference.
12
+ * These anchors don't necessarily need to be parented by self, but must be unique,
13
+ * i.e. an anchor, identified by it's parent, cannot be added twice to self's list of anchors.
14
+ */
15
+ addAnchor(anchor: AAnchor): void;
16
+ /**
17
+ * To get an anchor with a given ID and parent.
18
+ *
19
+ * @param anchorId The ID of the anchor.
20
+ * @param parent The parent of the anchor.
21
+ * - If parent is not given, then self is considered the parent of this anchor.
22
+ */
23
+ getAnchor(anchorId: string, parent?: UnknownModel): AAnchor | undefined;
24
+ /**
25
+ * To get the index of an anchor with a given ID and parent.
26
+ *
27
+ * @param anchorId The ID of the anchor.
28
+ * @param parent The parent of the anchor.
29
+ * - If parent is not given, then self is considered the parent of this anchor.
30
+ */
31
+ getAnchorIndex(anchorId: string, parent?: UnknownModel): number;
32
+ /**
33
+ * To get all anchors, filtered by anchor properties.
34
+ *
35
+ * @param filters A set of filters, where `key` is the property name and `value` is the value to filter by.
36
+ */
37
+ getAnchors(filters: {
38
+ key: string;
39
+ value: any;
40
+ }[]): AAnchor[];
41
+ /**
42
+ * To remove all anchors from self.
43
+ */
44
+ removeAllAnchors(): void;
45
+ /**
46
+ * To remove an anchor from self.
47
+ *
48
+ * @param anchor The anchor to remove.
49
+ */
50
+ removeAnchor(anchor: AAnchor): void;
10
51
  }
11
- export interface IModelReference {
12
- context: string;
52
+ export interface IModelReference extends INodeReference {
13
53
  }
@@ -1,4 +1,9 @@
1
1
  import type { Pipeline } from './pipeline.model.js';
2
+ /**
3
+ * {@link Pipeline} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IPipeline {
3
8
  instructionSet: Pipeline['instructionSet'];
4
9
  pipelineName: Pipeline['pipelineName'];
@@ -1,13 +1,26 @@
1
1
  import type { UnknownModel } from '../../app.type.js';
2
2
  import { AModel } from '../model.abstract.js';
3
- import type { Diff } from '../../functions/diff/diff.js';
4
3
  import type { IPipeline } from './pipeline.interface.js';
4
+ /**
5
+ * A Pipeline model is a CI/CD pipeline capable of various automations,
6
+ * including building and deploying code, running Octo projects, and more.
7
+ *
8
+ * :::danger Danger
9
+ * `Pipeline` is not yet supported in Octo!
10
+ * :::
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const pipeline = new Pipeline('MyPipeline');
15
+ * ```
16
+ * @group Models
17
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
18
+ */
5
19
  export declare class Pipeline extends AModel<IPipeline, Pipeline> {
6
- readonly MODEL_NAME: string;
20
+ readonly NODE_NAME: string;
7
21
  readonly instructionSet: string[];
8
22
  readonly pipelineName: string;
9
23
  constructor(pipelineName: string);
10
- diffProperties(previous: Pipeline): Promise<Diff[]>;
11
24
  setContext(): string;
12
25
  synth(): IPipeline;
13
26
  static unSynth(pipeline: IPipeline, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Pipeline>;
@@ -8,24 +8,36 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  var Pipeline_1;
11
+ import { strict as assert } from 'assert';
11
12
  import { Model } from '../../decorators/model.decorator.js';
12
- import { DiffUtility } from '../../functions/diff/diff.utility.js';
13
+ import { Validate } from '../../decorators/validate.decorator.js';
13
14
  import { AModel } from '../model.abstract.js';
15
+ /**
16
+ * A Pipeline model is a CI/CD pipeline capable of various automations,
17
+ * including building and deploying code, running Octo projects, and more.
18
+ *
19
+ * :::danger Danger
20
+ * `Pipeline` is not yet supported in Octo!
21
+ * :::
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * const pipeline = new Pipeline('MyPipeline');
26
+ * ```
27
+ * @group Models
28
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
29
+ */
14
30
  let Pipeline = Pipeline_1 = class Pipeline extends AModel {
15
- MODEL_NAME = 'pipeline';
16
- instructionSet = [];
17
- pipelineName;
18
31
  constructor(pipelineName) {
19
32
  super();
33
+ this.NODE_NAME = 'pipeline';
34
+ this.instructionSet = [];
20
35
  this.pipelineName = pipelineName;
21
36
  }
22
- async diffProperties(previous) {
23
- return DiffUtility.diffArray(previous, this, 'instructionSet');
24
- }
25
37
  setContext() {
26
38
  const parents = this.getParents();
27
39
  const app = parents['app'][0].to;
28
- return [`${this.MODEL_NAME}=${this.pipelineName}`, app.getContext()].join(',');
40
+ return [`${this.NODE_NAME}=${this.pipelineName}`, app.getContext()].join(',');
29
41
  }
30
42
  synth() {
31
43
  return {
@@ -34,11 +46,16 @@ let Pipeline = Pipeline_1 = class Pipeline extends AModel {
34
46
  };
35
47
  }
36
48
  static async unSynth(pipeline, deReferenceContext) {
49
+ assert(!!deReferenceContext);
37
50
  const newPipeline = new Pipeline_1(pipeline.pipelineName);
38
51
  newPipeline.instructionSet.push(...pipeline.instructionSet);
39
52
  return newPipeline;
40
53
  }
41
54
  };
55
+ __decorate([
56
+ Validate({ options: { maxLength: 64, minLength: 2, regex: /^[a-zA-Z][\w-]*[a-zA-Z0-9]$/ } }),
57
+ __metadata("design:type", String)
58
+ ], Pipeline.prototype, "pipelineName", void 0);
42
59
  Pipeline = Pipeline_1 = __decorate([
43
60
  Model(),
44
61
  __metadata("design:paramtypes", [String])
@@ -1 +1 @@
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
+ {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C;;;;;;;;;;;;;;GAcG;AAEI,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,MAA2B;IAQvD,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QARD,cAAS,GAAW,UAAU,CAAC;QAE/B,mBAAc,GAAa,EAAE,CAAC;QAOrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,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,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChF,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,EACnB,kBAA8D;QAE9D,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAE7B,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;AA9BU;IADR,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,EAAE,CAAC;;8CAC/D;AANnB,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAoCpB"}
@@ -1,4 +1,9 @@
1
1
  import type { Region } from './region.model.js';
2
+ /**
3
+ * {@link Region} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IRegion {
3
8
  regionId: Region['regionId'];
4
9
  }
@@ -1,16 +1,32 @@
1
1
  import type { UnknownModel } from '../../app.type.js';
2
- import type { Diff } from '../../functions/diff/diff.js';
3
2
  import { Environment } from '../environment/environment.model.js';
4
3
  import { AModel } from '../model.abstract.js';
5
4
  import { Subnet } from '../subnet/subnet.model.js';
6
5
  import type { IRegion } from './region.interface.js';
6
+ /**
7
+ * A Region model is a physical geographical area where the app can be deployed.
8
+ * Typically, for redundancy and low latency, an app is deployed in multiple regions.
9
+ * Therefore, it's common to have multiple region nodes under the app.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const region = new Region('us-east-1');
14
+ * ```
15
+ * @group Models
16
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
17
+ */
7
18
  export declare class Region extends AModel<IRegion, Region> {
8
- readonly MODEL_NAME: string;
19
+ readonly NODE_NAME: string;
9
20
  readonly regionId: string;
10
21
  constructor(regionId: string);
22
+ /**
23
+ * To add an {@link Environment}.
24
+ */
11
25
  addEnvironment(environment: Environment): void;
26
+ /**
27
+ * To add a {@link Subnet}.
28
+ */
12
29
  addSubnet(subnet: Subnet): void;
13
- diffProperties(): Promise<Diff[]>;
14
30
  setContext(): string;
15
31
  synth(): IRegion;
16
32
  static unSynth(region: IRegion, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Region>;