@quadnix/octo 0.0.19 → 0.0.21

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 (181) hide show
  1. package/dist/app.type.d.ts +5 -0
  2. package/dist/app.type.js +6 -0
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.d.ts +17 -0
  5. package/dist/decorators/action.decorator.js +26 -1
  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 +16 -1
  9. package/dist/decorators/anchor.decorator.js.map +1 -1
  10. package/dist/decorators/container.d.ts +61 -0
  11. package/dist/decorators/container.js +68 -3
  12. package/dist/decorators/container.js.map +1 -1
  13. package/dist/decorators/enable-hook.decorator.d.ts +14 -0
  14. package/dist/decorators/enable-hook.decorator.js +14 -0
  15. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  16. package/dist/decorators/event-source.decorator.d.ts +18 -0
  17. package/dist/decorators/event-source.decorator.js +22 -0
  18. package/dist/decorators/event-source.decorator.js.map +1 -0
  19. package/dist/decorators/factory.decorator.d.ts +30 -0
  20. package/dist/decorators/factory.decorator.js +30 -0
  21. package/dist/decorators/factory.decorator.js.map +1 -1
  22. package/dist/decorators/model.decorator.d.ts +13 -0
  23. package/dist/decorators/model.decorator.js +16 -1
  24. package/dist/decorators/model.decorator.js.map +1 -1
  25. package/dist/decorators/module.decorator.d.ts +52 -0
  26. package/dist/decorators/module.decorator.js +60 -1
  27. package/dist/decorators/module.decorator.js.map +1 -1
  28. package/dist/decorators/on-event.decorator.d.ts +20 -0
  29. package/dist/decorators/on-event.decorator.js +24 -0
  30. package/dist/decorators/on-event.decorator.js.map +1 -0
  31. package/dist/decorators/overlay.decorator.d.ts +13 -0
  32. package/dist/decorators/overlay.decorator.js +16 -1
  33. package/dist/decorators/overlay.decorator.js.map +1 -1
  34. package/dist/decorators/resource.decorator.d.ts +13 -0
  35. package/dist/decorators/resource.decorator.js +16 -1
  36. package/dist/decorators/resource.decorator.js.map +1 -1
  37. package/dist/decorators/test-container.d.ts +52 -0
  38. package/dist/decorators/test-container.js +54 -2
  39. package/dist/decorators/test-container.js.map +1 -1
  40. package/dist/decorators/validate.decorator.d.ts +9 -0
  41. package/dist/decorators/validate.decorator.js +23 -0
  42. package/dist/decorators/validate.decorator.js.map +1 -0
  43. package/dist/events/error.event.d.ts +35 -0
  44. package/dist/events/error.event.js +36 -0
  45. package/dist/events/error.event.js.map +1 -0
  46. package/dist/events/event.model.d.ts +37 -0
  47. package/dist/events/event.model.js +43 -0
  48. package/dist/events/event.model.js.map +1 -0
  49. package/dist/events/hook.event.d.ts +194 -0
  50. package/dist/events/hook.event.js +195 -0
  51. package/dist/events/hook.event.js.map +1 -0
  52. package/dist/events/module.event.d.ts +15 -0
  53. package/dist/events/module.event.js +16 -0
  54. package/dist/events/module.event.js.map +1 -0
  55. package/dist/events/registration.event.d.ts +112 -0
  56. package/dist/events/registration.event.js +170 -0
  57. package/dist/events/registration.event.js.map +1 -0
  58. package/dist/events/serialization.event.d.ts +72 -0
  59. package/dist/events/serialization.event.js +73 -0
  60. package/dist/events/serialization.event.js.map +1 -0
  61. package/dist/events/transaction.event.d.ts +48 -0
  62. package/dist/events/transaction.event.js +49 -0
  63. package/dist/events/transaction.event.js.map +1 -0
  64. package/dist/functions/dependency/dependency.js +1 -8
  65. package/dist/functions/dependency/dependency.js.map +1 -1
  66. package/dist/functions/diff/diff-metadata.d.ts +3 -0
  67. package/dist/functions/diff/diff-metadata.js +5 -10
  68. package/dist/functions/diff/diff-metadata.js.map +1 -1
  69. package/dist/functions/diff/diff.d.ts +3 -0
  70. package/dist/functions/diff/diff.js +3 -4
  71. package/dist/functions/diff/diff.js.map +1 -1
  72. package/dist/functions/diff/diff.utility.d.ts +32 -0
  73. package/dist/functions/diff/diff.utility.js +49 -0
  74. package/dist/functions/diff/diff.utility.js.map +1 -1
  75. package/dist/functions/hook/commit.hook.js +11 -3
  76. package/dist/functions/hook/commit.hook.js.map +1 -1
  77. package/dist/functions/hook/model-action.hook.js +11 -3
  78. package/dist/functions/hook/model-action.hook.js.map +1 -1
  79. package/dist/functions/hook/resource-action.hook.js +11 -3
  80. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.js +9 -0
  83. package/dist/index.js.map +1 -1
  84. package/dist/main.d.ts +11 -2
  85. package/dist/main.js +34 -16
  86. package/dist/main.js.map +1 -1
  87. package/dist/models/app/app.interface.d.ts +5 -0
  88. package/dist/models/app/app.model.d.ts +29 -0
  89. package/dist/models/app/app.model.js +40 -3
  90. package/dist/models/app/app.model.js.map +1 -1
  91. package/dist/models/deployment/deployment.interface.d.ts +5 -0
  92. package/dist/models/deployment/deployment.model.d.ts +15 -0
  93. package/dist/models/deployment/deployment.model.js +20 -3
  94. package/dist/models/deployment/deployment.model.js.map +1 -1
  95. package/dist/models/environment/environment.interface.d.ts +5 -0
  96. package/dist/models/environment/environment.model.d.ts +18 -0
  97. package/dist/models/environment/environment.model.js +33 -4
  98. package/dist/models/environment/environment.model.js.map +1 -1
  99. package/dist/models/execution/execution.interface.d.ts +5 -0
  100. package/dist/models/execution/execution.model.d.ts +23 -0
  101. package/dist/models/execution/execution.model.js +39 -2
  102. package/dist/models/execution/execution.model.js.map +1 -1
  103. package/dist/models/image/image.interface.d.ts +5 -0
  104. package/dist/models/image/image.model.d.ts +35 -0
  105. package/dist/models/image/image.model.js +25 -6
  106. package/dist/models/image/image.model.js.map +1 -1
  107. package/dist/models/model-action.interface.d.ts +21 -0
  108. package/dist/models/model.abstract.d.ts +265 -0
  109. package/dist/models/model.abstract.js +274 -5
  110. package/dist/models/model.abstract.js.map +1 -1
  111. package/dist/models/model.interface.d.ts +25 -0
  112. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  113. package/dist/models/pipeline/pipeline.model.d.ts +15 -0
  114. package/dist/models/pipeline/pipeline.model.js +25 -4
  115. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  116. package/dist/models/region/region.interface.d.ts +5 -0
  117. package/dist/models/region/region.model.d.ts +18 -0
  118. package/dist/models/region/region.model.js +29 -3
  119. package/dist/models/region/region.model.js.map +1 -1
  120. package/dist/models/server/server.interface.d.ts +5 -0
  121. package/dist/models/server/server.model.d.ts +17 -0
  122. package/dist/models/server/server.model.js +24 -3
  123. package/dist/models/server/server.model.js.map +1 -1
  124. package/dist/models/service/service.interface.d.ts +5 -0
  125. package/dist/models/service/service.model.d.ts +15 -0
  126. package/dist/models/service/service.model.js +19 -2
  127. package/dist/models/service/service.model.js.map +1 -1
  128. package/dist/models/subnet/subnet.interface.d.ts +5 -0
  129. package/dist/models/subnet/subnet.model.d.ts +48 -0
  130. package/dist/models/subnet/subnet.model.js +52 -7
  131. package/dist/models/subnet/subnet.model.js.map +1 -1
  132. package/dist/modules/module.container.d.ts +2 -0
  133. package/dist/modules/module.container.js +22 -10
  134. package/dist/modules/module.container.js.map +1 -1
  135. package/dist/modules/test-module.container.d.ts +4 -3
  136. package/dist/modules/test-module.container.js +13 -10
  137. package/dist/modules/test-module.container.js.map +1 -1
  138. package/dist/overlays/anchor.abstract.js +0 -3
  139. package/dist/overlays/anchor.abstract.js.map +1 -1
  140. package/dist/overlays/overlay-data.repository.js +0 -3
  141. package/dist/overlays/overlay-data.repository.js.map +1 -1
  142. package/dist/overlays/overlay.abstract.js +3 -3
  143. package/dist/overlays/overlay.abstract.js.map +1 -1
  144. package/dist/overlays/overlay.service.js +0 -2
  145. package/dist/overlays/overlay.service.js.map +1 -1
  146. package/dist/resources/resource-data.repository.js +6 -3
  147. package/dist/resources/resource-data.repository.js.map +1 -1
  148. package/dist/resources/resource.abstract.js +4 -4
  149. package/dist/resources/resource.abstract.js.map +1 -1
  150. package/dist/resources/shared-resource.abstract.js +4 -1
  151. package/dist/resources/shared-resource.abstract.js.map +1 -1
  152. package/dist/services/capture/capture.service.js +3 -2
  153. package/dist/services/capture/capture.service.js.map +1 -1
  154. package/dist/services/event/event.service.d.ts +17 -0
  155. package/dist/services/event/event.service.js +92 -0
  156. package/dist/services/event/event.service.js.map +1 -0
  157. package/dist/services/input/input.service.js +1 -3
  158. package/dist/services/input/input.service.js.map +1 -1
  159. package/dist/services/serialization/model/model-serialization.service.d.ts +1 -1
  160. package/dist/services/serialization/model/model-serialization.service.js +28 -5
  161. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  162. package/dist/services/serialization/resource/resource-serialization.service.js +32 -4
  163. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  164. package/dist/services/state-management/local.state-provider.js +0 -1
  165. package/dist/services/state-management/local.state-provider.js.map +1 -1
  166. package/dist/services/state-management/state-management.service.js +0 -2
  167. package/dist/services/state-management/state-management.service.js.map +1 -1
  168. package/dist/services/state-management/test.state-provider.js +3 -1
  169. package/dist/services/state-management/test.state-provider.js.map +1 -1
  170. package/dist/services/transaction/transaction.service.d.ts +4 -0
  171. package/dist/services/transaction/transaction.service.js +69 -9
  172. package/dist/services/transaction/transaction.service.js.map +1 -1
  173. package/dist/services/validation/validation.service.d.ts +19 -0
  174. package/dist/services/validation/validation.service.js +66 -0
  175. package/dist/services/validation/validation.service.js.map +1 -0
  176. package/dist/utilities/object/object.utility.js +1 -0
  177. package/dist/utilities/object/object.utility.js.map +1 -1
  178. package/dist/utilities/validation/validation.utility.d.ts +5 -0
  179. package/dist/utilities/validation/validation.utility.js +12 -0
  180. package/dist/utilities/validation/validation.utility.js.map +1 -0
  181. package/package.json +1 -1
@@ -13,16 +13,25 @@ export class DiffUtility {
13
13
  diff.push(new Diff(model, DiffAction.DELETE, field, model[field]));
14
14
  return diff;
15
15
  }
16
+ // Source: https://stackoverflow.com/a/32922084/1834562
16
17
  static isObjectDeepEquals(x, y) {
17
18
  const ok = Object.keys, tx = typeof x, ty = typeof y;
18
19
  return x && y && tx === 'object' && tx === ty
19
20
  ? ok(x).length === ok(y).length && ok(x).every((key) => this.isObjectDeepEquals(x[key], y[key]))
20
21
  : x === y;
21
22
  }
23
+ /**
24
+ * Generate a deep diff of an array of basic types from the previous model vs the latest model.
25
+ * @param a previous model.
26
+ * @param b latest model.
27
+ * @param field string representing the field parent uses to reference the array.
28
+ */
22
29
  static diffArray(a, b, field) {
23
30
  const diff = [];
24
31
  const aSet = new Set(a[field]);
25
32
  const bSet = new Set(b[field]);
33
+ // Iterate elements of previous (a). If found in latest (b), consider it an UPDATE.
34
+ // If not found in latest (b), consider it a DELETE.
26
35
  for (const element of aSet) {
27
36
  if (bSet.has(element)) {
28
37
  diff.push(new Diff(b, DiffAction.UPDATE, field, element));
@@ -31,6 +40,7 @@ export class DiffUtility {
31
40
  diff.push(new Diff(a, DiffAction.DELETE, field, element));
32
41
  }
33
42
  }
43
+ // Iterate elements of latest (b). If not found in previous (a), consider it an ADD.
34
44
  for (const element of bSet) {
35
45
  if (!aSet.has(element)) {
36
46
  diff.push(new Diff(b, DiffAction.ADD, field, element));
@@ -38,8 +48,17 @@ export class DiffUtility {
38
48
  }
39
49
  return diff;
40
50
  }
51
+ /**
52
+ * Generate a deep diff of an array of objects from the previous model vs the latest model.
53
+ * @param a previous model.
54
+ * @param b latest model.
55
+ * @param field string representing the field parent uses to reference the array.
56
+ * @param compare function to check if two objects are equal.
57
+ */
41
58
  static diffArrayOfObjects(a, b, field, compare) {
42
59
  const diff = [];
60
+ // Iterate elements of previous (a). If found in latest (b), consider it an UPDATE.
61
+ // If not found in latest (b), consider it a DELETE.
43
62
  for (const aObject of a[field]) {
44
63
  if (b[field].some((bObject) => compare(aObject, bObject))) {
45
64
  diff.push(new Diff(b, DiffAction.UPDATE, field, aObject));
@@ -48,6 +67,7 @@ export class DiffUtility {
48
67
  diff.push(new Diff(a, DiffAction.DELETE, field, aObject));
49
68
  }
50
69
  }
70
+ // Iterate elements of latest (b). If not found in previous (a), consider it an ADD.
51
71
  for (const bObject of b[field]) {
52
72
  if (!a[field].some((aObject) => compare(aObject, bObject))) {
53
73
  diff.push(new Diff(b, DiffAction.ADD, field, bObject));
@@ -55,8 +75,16 @@ export class DiffUtility {
55
75
  }
56
76
  return diff;
57
77
  }
78
+ /**
79
+ * Generate a deep diff of a map of basic types from the previous model vs the latest model.
80
+ * @param a previous model.
81
+ * @param b latest model.
82
+ * @param field string representing the field parent uses to reference the map.
83
+ */
58
84
  static diffMap(a, b, field) {
59
85
  const diff = [];
86
+ // Iterate fields of previous (a). If found in latest (b), consider it an UPDATE.
87
+ // If not found in latest (b), consider it a DELETE.
60
88
  for (const [key, value] of a[field]) {
61
89
  if (b[field].has(key)) {
62
90
  if (b[field].get(key) !== value) {
@@ -67,6 +95,7 @@ export class DiffUtility {
67
95
  diff.push(new Diff(a, DiffAction.DELETE, field, { key, value }));
68
96
  }
69
97
  }
98
+ // Iterate fields of latest (b). If not found in previous (a), consider it an ADD.
70
99
  for (const [key, value] of b[field]) {
71
100
  if (!a[field].has(key)) {
72
101
  diff.push(new Diff(b, DiffAction.ADD, field, { key, value }));
@@ -74,8 +103,17 @@ export class DiffUtility {
74
103
  }
75
104
  return diff;
76
105
  }
106
+ /**
107
+ * Generate a deep diff of an array of previous models vs latest models.
108
+ * The diff is generated recursively, i.e. all children of the model are included in the diff.
109
+ * @param a array of previous models.
110
+ * @param b array of latest models.
111
+ * @param field string representing the unique identifier of the model.
112
+ */
77
113
  static async diffModels(a, b, field) {
78
114
  const diff = [];
115
+ // Iterate fields of previous (a). If found in latest (b), get recursive diff of children of b vs a.
116
+ // If not found in latest (b), consider it a DELETE.
79
117
  for (const x of a) {
80
118
  const y = b.find((i) => i.getContext() === x.getContext());
81
119
  if (y) {
@@ -86,6 +124,8 @@ export class DiffUtility {
86
124
  diff.push(...DiffUtility.generateDeleteDiff(x, field));
87
125
  }
88
126
  }
127
+ // Iterate fields of latest (b). If not found in previous (a), consider it an ADD.
128
+ // Recursively add all children of b.
89
129
  for (const y of b) {
90
130
  if (!a.find((i) => i.getContext() === y.getContext())) {
91
131
  const pDiff = await y.diff();
@@ -94,8 +134,16 @@ export class DiffUtility {
94
134
  }
95
135
  return diff;
96
136
  }
137
+ /**
138
+ * Generate a deep diff of an object from the previous model vs the latest model.
139
+ * @param a previous model.
140
+ * @param b latest model.
141
+ * @param field string representing the field parent uses to reference the object.
142
+ */
97
143
  static diffObject(a, b, field) {
98
144
  const diff = [];
145
+ // Iterate fields of previous (a). If found in latest (b), consider it an UPDATE.
146
+ // If not found in latest (b), consider it a DELETE.
99
147
  for (const [key, value] of Object.entries(a[field])) {
100
148
  if (b[field].hasOwnProperty(key)) {
101
149
  if (typeof b[field][key] === 'object') {
@@ -113,6 +161,7 @@ export class DiffUtility {
113
161
  diff.push(new Diff(a, DiffAction.DELETE, field, { key, value }));
114
162
  }
115
163
  }
164
+ // Iterate fields of latest (b). If not found in previous (a), consider it an ADD.
116
165
  for (const [key, value] of Object.entries(b[field])) {
117
166
  if (!a[field].hasOwnProperty(key)) {
118
167
  diff.push(new Diff(b, DiffAction.ADD, field, { key, value }));
@@ -1 +1 @@
1
- {"version":3,"file":"diff.utility.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.utility.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diff.utility.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.utility.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import { CommitHookCallbackDoneEvent, PostCommitHookCallbackDoneEvent, PreCommitHookCallbackDoneEvent, } from '../../events/hook.event.js';
2
+ import { EventService } from '../../services/event/event.service.js';
1
3
  export class CommitHook {
2
- static instance;
3
- postCommitHooks = [];
4
- preCommitHooks = [];
4
+ constructor() {
5
+ this.postCommitHooks = [];
6
+ this.preCommitHooks = [];
7
+ }
5
8
  collectHooks(registeredModules) {
6
9
  for (const m of registeredModules) {
7
10
  for (const { callback } of m.properties.postCommitHooks || []) {
@@ -19,15 +22,20 @@ export class CommitHook {
19
22
  return this.instance;
20
23
  }
21
24
  registrar(descriptor) {
25
+ // `self` here references this class, vs `this` references the original method.
26
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
22
27
  const self = this;
23
28
  const originalMethod = descriptor.value;
24
29
  descriptor.value = async function (...args) {
25
30
  for (const callback of self.preCommitHooks) {
26
31
  await callback.apply(this, args);
32
+ EventService.getInstance().emit(new PreCommitHookCallbackDoneEvent());
27
33
  }
28
34
  await originalMethod.apply(this, args);
35
+ EventService.getInstance().emit(new CommitHookCallbackDoneEvent());
29
36
  for (const callback of self.postCommitHooks) {
30
37
  await callback.apply(this, args);
38
+ EventService.getInstance().emit(new PostCommitHookCallbackDoneEvent());
31
39
  }
32
40
  };
33
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,UAAU;IACb,MAAM,CAAC,QAAQ,CAAa;IAEnB,eAAe,GAAgC,EAAE,CAAC;IAClD,cAAc,GAAgC,EAAE,CAAC;IAElE,YAAY,CAAC,iBAA6C;QACxD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;gBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,UAA8B;QAGtC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAA6B;YACjE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,MAAM,OAAO,UAAU;IAAvB;QAGmB,oBAAe,GAAgC,EAAE,CAAC;QAClD,mBAAc,GAAgC,EAAE,CAAC;IAgDpE,CAAC;IA9CC,YAAY,CAAC,iBAA6C;QACxD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YAED,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;gBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,UAA8B;QACtC,+EAA+E;QAC/E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAA6B;YACjE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAC;YAEnE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;CACF"}
@@ -1,9 +1,12 @@
1
1
  import { Container } from '../../decorators/container.js';
2
+ import { ModelActionHookCallbackDoneEvent, PostModelActionHookCallbackDoneEvent, PreModelActionHookCallbackDoneEvent, } from '../../events/hook.event.js';
3
+ import { EventService } from '../../services/event/event.service.js';
2
4
  import { InputService } from '../../services/input/input.service.js';
3
5
  export class ModelActionHook {
4
- static instance;
5
- postModelActionHooks = {};
6
- preModelActionHooks = {};
6
+ constructor() {
7
+ this.postModelActionHooks = {};
8
+ this.preModelActionHooks = {};
9
+ }
7
10
  collectHooks(registeredModules) {
8
11
  for (const m of registeredModules) {
9
12
  for (const { ACTION_NAME, collectInput, handle } of m.properties.postModelActionHooks || []) {
@@ -27,6 +30,8 @@ export class ModelActionHook {
27
30
  return this.instance;
28
31
  }
29
32
  registrar(modelAction) {
33
+ // `self` here references this class, vs `this` references the original method.
34
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
30
35
  const self = this;
31
36
  const originalHandleMethod = modelAction.handle;
32
37
  modelAction.handle = async function (...args) {
@@ -42,8 +47,10 @@ export class ModelActionHook {
42
47
  return accumulator;
43
48
  }, {});
44
49
  output = await handle.apply(this, [args[0], resolvedInputs, output]);
50
+ EventService.getInstance().emit(new PreModelActionHookCallbackDoneEvent());
45
51
  }
46
52
  output = await originalHandleMethod.apply(this, [args[0], args[1], output]);
53
+ EventService.getInstance().emit(new ModelActionHookCallbackDoneEvent());
47
54
  for (const { collectInput, handle } of self.postModelActionHooks[modelAction.ACTION_NAME] || []) {
48
55
  const inputs = collectInput ? collectInput(args[0]) : [];
49
56
  const resolvedInputs = inputs.reduce((accumulator, currentValue) => {
@@ -54,6 +61,7 @@ export class ModelActionHook {
54
61
  return accumulator;
55
62
  }, {});
56
63
  output = await handle.apply(this, [args[0], resolvedInputs, output]);
64
+ EventService.getInstance().emit(new PostModelActionHookCallbackDoneEvent());
57
65
  }
58
66
  return output;
59
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,QAAQ,CAAkB;IAExB,oBAAoB,GAEjC,EAAE,CAAC;IACU,mBAAmB,GAEhC,EAAE,CAAC;IAEP,YAAY,CAAC,iBAA6C;QACxD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;gBAC5F,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC9C,CAAC;gBACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,KAAK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,IAAI,EAAE,EAAE,CAAC;gBAC3F,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,WAAyB;QAGjC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC;QAEhD,WAAW,CAAC,MAAM,GAAG,KAAK,WAAW,GAAG,IAAyC;YAC/E,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvD,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/F,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;oBACjE,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAChE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAE5E,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChG,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;oBACjE,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAChE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EACL,gCAAgC,EAChC,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE,MAAM,OAAO,eAAe;IAA5B;QAGmB,yBAAoB,GAEjC,EAAE,CAAC;QACU,wBAAmB,GAEhC,EAAE,CAAC;IAgFT,CAAC;IA9EC,YAAY,CAAC,iBAA6C;QACxD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,oBAAoB,IAAI,EAAE,EAAE,CAAC;gBAC5F,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC9C,CAAC;gBACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACxE,CAAC;YAED,KAAK,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,mBAAmB,IAAI,EAAE,EAAE,CAAC;gBAC3F,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,WAAyB;QACjC,+EAA+E;QAC/E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,CAAC;QAEhD,WAAW,CAAC,MAAM,GAAG,KAAK,WAAW,GAAG,IAAyC;YAC/E,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvD,IAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAE3B,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/F,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;oBACjE,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAChE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;gBACrE,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,mCAAmC,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5E,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,gCAAgC,EAAE,CAAC,CAAC;YAExE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBAChG,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,EAAE;oBACjE,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;oBAChE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC/B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAE,EAAE,CAAC,CAAC;gBACP,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;gBACrE,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,oCAAoC,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
@@ -1,7 +1,10 @@
1
+ import { PostResourceActionHookCallbackDoneEvent, PreResourceActionHookCallbackDoneEvent, ResourceActionHookCallbackDoneEvent, } from '../../events/hook.event.js';
2
+ import { EventService } from '../../services/event/event.service.js';
1
3
  export class ResourceActionHook {
2
- static instance;
3
- postResourceActionHooks = {};
4
- preResourceActionHooks = {};
4
+ constructor() {
5
+ this.postResourceActionHooks = {};
6
+ this.preResourceActionHooks = {};
7
+ }
5
8
  collectHooks(registeredModules) {
6
9
  for (const m of registeredModules) {
7
10
  for (const { ACTION_NAME, handle } of m.properties.postResourceActionHooks || []) {
@@ -25,15 +28,20 @@ export class ResourceActionHook {
25
28
  return this.instance;
26
29
  }
27
30
  registrar(resourceAction) {
31
+ // `self` here references this class, vs `this` references the original method.
32
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
28
33
  const self = this;
29
34
  const originalHandleMethod = resourceAction.handle;
30
35
  resourceAction.handle = async function (...args) {
31
36
  for (const { handle } of self.preResourceActionHooks[resourceAction.ACTION_NAME] || []) {
32
37
  await handle.apply(this, args);
38
+ EventService.getInstance().emit(new PreResourceActionHookCallbackDoneEvent());
33
39
  }
34
40
  await originalHandleMethod.apply(this, args);
41
+ EventService.getInstance().emit(new ResourceActionHookCallbackDoneEvent());
35
42
  for (const { handle } of self.postResourceActionHooks[resourceAction.ACTION_NAME] || []) {
36
43
  await handle.apply(this, args);
44
+ EventService.getInstance().emit(new PostResourceActionHookCallbackDoneEvent());
37
45
  }
38
46
  };
39
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,QAAQ,CAAqB;IAE3B,uBAAuB,GAEpC,EAAE,CAAC;IACU,sBAAsB,GAEnC,EAAE,CAAC;IAEP,YAAY,CAAC,iBAA6C;QACxD,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAClC,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,uBAAuB,IAAI,EAAE,EAAE,CAAC;gBACjF,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/C,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBACjD,CAAC;gBACD,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,sBAAsB,IAAI,EAAE,EAAE,CAAC;gBAChF,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9C,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;gBAChD,CAAC;gBACD,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,cAA+B;QAGvC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC;QAEnD,cAAc,CAAC,MAAM,GAAG,KAAK,WAAW,GAAG,IAAY;YACrD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvF,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE7C,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxF,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"resource-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/resource-action.hook.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,13 +5,22 @@ export { EnableHook } from './decorators/enable-hook.decorator.js';
5
5
  export { Factory } from './decorators/factory.decorator.js';
6
6
  export { Model } from './decorators/model.decorator.js';
7
7
  export { Module } from './decorators/module.decorator.js';
8
+ export { OnEvent } from './decorators/on-event.decorator.js';
8
9
  export { Overlay } from './decorators/overlay.decorator.js';
9
10
  export { Resource } from './decorators/resource.decorator.js';
10
11
  export { IPackageMock, TestContainer } from './decorators/test-container.js';
12
+ export { Validate } from './decorators/validate.decorator.js';
11
13
  export { DependencyRelationship } from './functions/dependency/dependency.js';
12
14
  export { Diff, DiffAction } from './functions/diff/diff.js';
13
15
  export { DiffUtility } from './functions/diff/diff.utility.js';
14
16
  export { DiffMetadata } from './functions/diff/diff-metadata.js';
17
+ export { ErrorEvent, RegistrationErrorEvent } from './events/error.event.js';
18
+ export { Event } from './events/event.model.js';
19
+ export { CommitHookCallbackDoneEvent, CommitHookEvent, HookEvent, ModelActionHookCallbackDoneEvent, ModelActionHookEvent, PostCommitHookCallbackDoneEvent, PostModelActionHookCallbackDoneEvent, PostResourceActionHookCallbackDoneEvent, PreCommitHookCallbackDoneEvent, PreModelActionHookCallbackDoneEvent, PreResourceActionHookCallbackDoneEvent, ResourceActionHookCallbackDoneEvent, ResourceActionHookEvent, } from './events/hook.event.js';
20
+ export { ModuleEvent } from './events/module.event.js';
21
+ export { AnchorRegistrationEvent, ModelActionRegistrationEvent, ModelRegistrationEvent, OverlayRegistrationEvent, RegistrationEvent, ResourceActionRegistrationEvent, ResourceRegistrationEvent, } from './events/registration.event.js';
22
+ export { ModelDeserializedEvent, ModelSerializedEvent, ResourceDeserializedEvent, ResourceSerializedEvent, SerializationEvent, } from './events/serialization.event.js';
23
+ export { ModelActionTransactionEvent, ResourceActionTransactionEvent, TransactionEvent, } from './events/transaction.event.js';
15
24
  export { type IApp } from './models/app/app.interface.js';
16
25
  export { App } from './models/app/app.model.js';
17
26
  export { type IDeployment } from './models/deployment/deployment.interface.js';
package/dist/index.js CHANGED
@@ -5,13 +5,22 @@ export { EnableHook } from './decorators/enable-hook.decorator.js';
5
5
  export { Factory } from './decorators/factory.decorator.js';
6
6
  export { Model } from './decorators/model.decorator.js';
7
7
  export { Module } from './decorators/module.decorator.js';
8
+ export { OnEvent } from './decorators/on-event.decorator.js';
8
9
  export { Overlay } from './decorators/overlay.decorator.js';
9
10
  export { Resource } from './decorators/resource.decorator.js';
10
11
  export { TestContainer } from './decorators/test-container.js';
12
+ export { Validate } from './decorators/validate.decorator.js';
11
13
  export { DependencyRelationship } from './functions/dependency/dependency.js';
12
14
  export { Diff, DiffAction } from './functions/diff/diff.js';
13
15
  export { DiffUtility } from './functions/diff/diff.utility.js';
14
16
  export { DiffMetadata } from './functions/diff/diff-metadata.js';
17
+ export { ErrorEvent, RegistrationErrorEvent } from './events/error.event.js';
18
+ export { Event } from './events/event.model.js';
19
+ export { CommitHookCallbackDoneEvent, CommitHookEvent, HookEvent, ModelActionHookCallbackDoneEvent, ModelActionHookEvent, PostCommitHookCallbackDoneEvent, PostModelActionHookCallbackDoneEvent, PostResourceActionHookCallbackDoneEvent, PreCommitHookCallbackDoneEvent, PreModelActionHookCallbackDoneEvent, PreResourceActionHookCallbackDoneEvent, ResourceActionHookCallbackDoneEvent, ResourceActionHookEvent, } from './events/hook.event.js';
20
+ export { ModuleEvent } from './events/module.event.js';
21
+ export { AnchorRegistrationEvent, ModelActionRegistrationEvent, ModelRegistrationEvent, OverlayRegistrationEvent, RegistrationEvent, ResourceActionRegistrationEvent, ResourceRegistrationEvent, } from './events/registration.event.js';
22
+ export { ModelDeserializedEvent, ModelSerializedEvent, ResourceDeserializedEvent, ResourceSerializedEvent, SerializationEvent, } from './events/serialization.event.js';
23
+ export { ModelActionTransactionEvent, ResourceActionTransactionEvent, TransactionEvent, } from './events/transaction.event.js';
15
24
  export { App } from './models/app/app.model.js';
16
25
  export { Deployment } from './models/deployment/deployment.model.js';
17
26
  export { Environment } from './models/environment/environment.model.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAgB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAElE,OAAO,EAA4B,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAKpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAgB,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,SAAS,EACT,gCAAgC,EAChC,oBAAoB,EACpB,+BAA+B,EAC/B,oCAAoC,EACpC,uCAAuC,EACvC,8BAA8B,EAC9B,mCAAmC,EACnC,sCAAsC,EACtC,mCAAmC,EACnC,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,2BAA2B,EAC3B,8BAA8B,EAC9B,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAElE,OAAO,EAA4B,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAKpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,oDAAoD,CAAC;AAEvF,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
package/dist/main.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ActionInputs, Constructable, TransactionOptions, UnknownResource } from './app.type.js';
2
+ import { Container } from './decorators/container.js';
2
3
  import { DiffMetadata } from './functions/diff/diff-metadata.js';
3
4
  import { App } from './models/app/app.model.js';
4
5
  import { IModule } from './modules/module.interface.js';
@@ -12,16 +13,24 @@ export declare class Octo {
12
13
  private captureService;
13
14
  private inputService;
14
15
  private modelSerializationService;
16
+ private moduleContainer;
15
17
  private resourceDataRepository;
16
18
  private resourceSerializationService;
17
19
  private stateManagementService;
18
20
  private transactionService;
21
+ private validationService;
19
22
  beginTransaction(app: App, options?: TransactionOptions): Promise<ReturnType<TransactionService['beginTransaction']>>;
20
23
  commitTransaction(app: App, modelTransaction: DiffMetadata[][]): Promise<void>;
21
24
  compose(): Promise<void>;
22
25
  getAllResources(): UnknownResource[];
23
- getModuleOutput<T>(module: Constructable<IModule<T>> | string): Promise<T | undefined>;
24
- initialize(stateProvider: IStateProvider): Promise<void>;
26
+ getModuleOutput<T>(module: Constructable<IModule<T>> | string): T | undefined;
27
+ initialize(stateProvider: IStateProvider, initializeInContainer?: {
28
+ type: Parameters<typeof Container.get>[0];
29
+ options: Parameters<typeof Container.get>[1];
30
+ }[], excludeInContainer?: {
31
+ type: Parameters<typeof Container.unRegisterFactory>[0];
32
+ }[]): Promise<void>;
33
+ loadModules(modules: Constructable<IModule<any>>[]): void;
25
34
  registerCapture<T extends AResource<T>>(resourceId: T['resourceId'], properties: Partial<T['properties']>, response: Partial<T['response']>): void;
26
35
  registerInputs(inputs: ActionInputs): void;
27
36
  private retrieveModelState;
package/dist/main.js CHANGED
@@ -19,60 +19,76 @@ import { ModelSerializationService } from './services/serialization/model/model-
19
19
  import { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
20
20
  import { StateManagementService } from './services/state-management/state-management.service.js';
21
21
  import { TransactionService } from './services/transaction/transaction.service.js';
22
+ import { ValidationService } from './services/validation/validation.service.js';
22
23
  export class Octo {
23
- modelStateFileName = 'models.json';
24
- resourceStateFileName = 'resources.json';
25
- previousApp;
26
- captureService;
27
- inputService;
28
- modelSerializationService;
29
- resourceDataRepository;
30
- resourceSerializationService;
31
- stateManagementService;
32
- transactionService;
24
+ constructor() {
25
+ this.modelStateFileName = 'models.json';
26
+ this.resourceStateFileName = 'resources.json';
27
+ }
33
28
  async beginTransaction(app, options) {
34
29
  const diffs = await app.diff(this.previousApp);
35
30
  return this.transactionService.beginTransaction(diffs, options || {});
36
31
  }
37
32
  async commitTransaction(app, modelTransaction) {
33
+ // `modelTransaction` is used by hooks of type CommitHook.
38
34
  assert(!!modelTransaction);
35
+ // Save the state of the new app and its resources.
39
36
  await this.saveModelState(app);
40
37
  await this.saveResourceState();
38
+ // Reset the runtime environment with the latest state.
41
39
  await this.retrieveResourceState();
42
40
  this.previousApp = await this.retrieveModelState();
43
41
  }
44
42
  async compose() {
45
- const moduleContainer = await Container.get(ModuleContainer);
46
- await moduleContainer.apply();
43
+ await this.moduleContainer.apply();
44
+ const result = this.validationService.validate();
45
+ if (!result.pass) {
46
+ throw new Error('Validation error!');
47
+ }
47
48
  }
48
49
  getAllResources() {
49
50
  return this.resourceDataRepository.getByProperties();
50
51
  }
51
- async getModuleOutput(module) {
52
- const moduleContainer = await Container.get(ModuleContainer);
53
- return moduleContainer.getOutput(module);
52
+ getModuleOutput(module) {
53
+ return this.moduleContainer.getOutput(module);
54
54
  }
55
- async initialize(stateProvider) {
55
+ async initialize(stateProvider, initializeInContainer = [], excludeInContainer = []) {
56
56
  [
57
57
  this.captureService,
58
58
  this.inputService,
59
59
  this.modelSerializationService,
60
+ this.moduleContainer,
60
61
  this.resourceDataRepository,
61
62
  this.resourceSerializationService,
62
63
  this.stateManagementService,
63
64
  this.transactionService,
65
+ this.validationService,
64
66
  ] = await Promise.all([
65
67
  Container.get(CaptureService),
66
68
  Container.get(InputService),
67
69
  Container.get(ModelSerializationService),
70
+ Container.get(ModuleContainer),
68
71
  Container.get(ResourceDataRepository),
69
72
  Container.get(ResourceSerializationService),
70
73
  Container.get(StateManagementService, { args: [stateProvider] }),
71
74
  Container.get(TransactionService),
75
+ Container.get(ValidationService),
72
76
  ]);
77
+ for (const exclude of excludeInContainer) {
78
+ Container.unRegisterFactory(exclude.type);
79
+ }
80
+ for (const initialize of initializeInContainer) {
81
+ await Container.get(initialize.type, initialize.options);
82
+ }
83
+ // Reset the runtime environment with the latest state.
73
84
  await this.retrieveResourceState();
74
85
  this.previousApp = await this.retrieveModelState();
75
86
  }
87
+ loadModules(modules) {
88
+ for (const module of modules) {
89
+ this.moduleContainer.load(module);
90
+ }
91
+ }
76
92
  registerCapture(resourceId, properties, response) {
77
93
  this.captureService.registerCapture(resourceId, properties, response);
78
94
  }
@@ -81,12 +97,14 @@ export class Octo {
81
97
  }
82
98
  async retrieveModelState() {
83
99
  const { data: modelSerializedOutput } = await this.stateManagementService.getModelState(this.modelStateFileName);
100
+ // Initialize previous model state.
84
101
  return Object.keys(modelSerializedOutput.models).length > 0
85
102
  ? (await this.modelSerializationService.deserialize(modelSerializedOutput))
86
103
  : undefined;
87
104
  }
88
105
  async retrieveResourceState() {
89
106
  const { data: resourceSerializedOutput } = await this.stateManagementService.getResourceState(this.resourceStateFileName);
107
+ // Initialize previous resource state.
90
108
  await this.resourceSerializationService.deserialize(resourceSerializedOutput);
91
109
  }
92
110
  async saveModelState(app) {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { App } from './app.model.js';
2
+ /**
3
+ * {@link App} model interface.
4
+ *
5
+ * @group Model Interfaces
6
+ */
2
7
  export interface IApp {
3
8
  name: App['name'];
4
9
  }
@@ -7,15 +7,44 @@ import { Region } from '../region/region.model.js';
7
7
  import { Server } from '../server/server.model.js';
8
8
  import { Service } from '../service/service.model.js';
9
9
  import type { IApp } from './app.interface.js';
10
+ /**
11
+ * An App model is the parent of all other models.
12
+ * It represents the main app for whom the infrastructure is being created.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const app = new App('MyApp');
17
+ * ```
18
+ * @group Models
19
+ * @see Definition of [Default Models](/docs/fundamentals/models#default-models).
20
+ */
10
21
  export declare class App extends AModel<IApp, App> {
11
22
  readonly MODEL_NAME: string;
23
+ /**
24
+ * The name of the app.
25
+ */
12
26
  readonly name: string;
13
27
  constructor(name: string);
14
28
  diffProperties(): Promise<Diff[]>;
29
+ /**
30
+ * To add an {@link Image}.
31
+ */
15
32
  addImage(image: Image): void;
33
+ /**
34
+ * To add a {@link Pipeline}.
35
+ */
16
36
  addPipeline(pipeline: Pipeline): void;
37
+ /**
38
+ * To add a {@link Region}.
39
+ */
17
40
  addRegion(region: Region): void;
41
+ /**
42
+ * To add a {@link Server}.
43
+ */
18
44
  addServer(server: Server): void;
45
+ /**
46
+ * To add a {@link Service}.
47
+ */
19
48
  addService(service: Service): void;
20
49
  setContext(): string;
21
50
  synth(): IApp;