@quadnix/octo 0.0.17 → 0.0.19

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,4 +1,4 @@
1
- import { Diff, DiffAction } from './diff.model.js';
1
+ import { Diff, DiffAction } from './diff.js';
2
2
  export class DiffUtility {
3
3
  static generateDeleteDiff(model, field) {
4
4
  const diff = [];
@@ -45,7 +45,7 @@ export class DiffUtility {
45
45
  diff.push(new Diff(b, DiffAction.UPDATE, field, aObject));
46
46
  }
47
47
  else {
48
- diff.push(...DiffUtility.generateDeleteDiff(a, field));
48
+ diff.push(new Diff(a, DiffAction.DELETE, field, aObject));
49
49
  }
50
50
  }
51
51
  for (const bObject of b[field]) {
@@ -77,7 +77,7 @@ export class DiffUtility {
77
77
  static async diffModels(a, b, field) {
78
78
  const diff = [];
79
79
  for (const x of a) {
80
- const y = b.find((i) => i[field] === x[field]);
80
+ const y = b.find((i) => i.getContext() === x.getContext());
81
81
  if (y) {
82
82
  const pDiff = await y.diff(x);
83
83
  diff.push(...pDiff);
@@ -87,13 +87,38 @@ export class DiffUtility {
87
87
  }
88
88
  }
89
89
  for (const y of b) {
90
- if (!a.find((i) => i[field] === y[field])) {
91
- diff.push(new Diff(y, DiffAction.ADD, field, y[field]));
90
+ if (!a.find((i) => i.getContext() === y.getContext())) {
92
91
  const pDiff = await y.diff();
93
92
  diff.push(...pDiff);
94
93
  }
95
94
  }
96
95
  return diff;
97
96
  }
97
+ static diffObject(a, b, field) {
98
+ const diff = [];
99
+ for (const [key, value] of Object.entries(a[field])) {
100
+ if (b[field].hasOwnProperty(key)) {
101
+ if (typeof b[field][key] === 'object') {
102
+ if (!DiffUtility.isObjectDeepEquals(b[field][key], value)) {
103
+ diff.push(new Diff(b, DiffAction.UPDATE, field, { key, value: b[field][key] }));
104
+ }
105
+ }
106
+ else {
107
+ if (b[field][key] !== value) {
108
+ diff.push(new Diff(b, DiffAction.UPDATE, field, { key, value: b[field][key] }));
109
+ }
110
+ }
111
+ }
112
+ else {
113
+ diff.push(new Diff(a, DiffAction.DELETE, field, { key, value }));
114
+ }
115
+ }
116
+ for (const [key, value] of Object.entries(b[field])) {
117
+ if (!a[field].hasOwnProperty(key)) {
118
+ diff.push(new Diff(b, DiffAction.ADD, field, { key, value }));
119
+ }
120
+ }
121
+ return diff;
122
+ }
98
123
  }
99
124
  //# sourceMappingURL=diff.utility.js.map
@@ -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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"}
@@ -0,0 +1,11 @@
1
+ import type { ModuleContainer } from '../../modules/module.container.js';
2
+ import type { IHook } from './hook.interface.js';
3
+ export declare class CommitHook implements IHook {
4
+ private static instance;
5
+ private readonly postCommitHooks;
6
+ private readonly preCommitHooks;
7
+ collectHooks(registeredModules: ModuleContainer['modules']): void;
8
+ static getInstance(): CommitHook;
9
+ registrar(descriptor: PropertyDescriptor): void;
10
+ reset(): void;
11
+ }
@@ -0,0 +1,39 @@
1
+ export class CommitHook {
2
+ static instance;
3
+ postCommitHooks = [];
4
+ preCommitHooks = [];
5
+ collectHooks(registeredModules) {
6
+ for (const m of registeredModules) {
7
+ for (const { callback } of m.properties.postCommitHooks || []) {
8
+ this.postCommitHooks.push(callback);
9
+ }
10
+ for (const { callback } of m.properties.preCommitHooks || []) {
11
+ this.preCommitHooks.push(callback);
12
+ }
13
+ }
14
+ }
15
+ static getInstance() {
16
+ if (!this.instance) {
17
+ this.instance = new CommitHook();
18
+ }
19
+ return this.instance;
20
+ }
21
+ registrar(descriptor) {
22
+ const self = this;
23
+ const originalMethod = descriptor.value;
24
+ descriptor.value = async function (...args) {
25
+ for (const callback of self.preCommitHooks) {
26
+ await callback.apply(this, args);
27
+ }
28
+ await originalMethod.apply(this, args);
29
+ for (const callback of self.postCommitHooks) {
30
+ await callback.apply(this, args);
31
+ }
32
+ };
33
+ }
34
+ reset() {
35
+ this.postCommitHooks.splice(0, this.postCommitHooks.length);
36
+ this.preCommitHooks.splice(0, this.preCommitHooks.length);
37
+ }
38
+ }
39
+ //# sourceMappingURL=commit.hook.js.map
@@ -0,0 +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"}
@@ -0,0 +1,8 @@
1
+ import type { IModelAction } from '../../models/model-action.interface.js';
2
+ import type { ModuleContainer } from '../../modules/module.container.js';
3
+ import type { IResourceAction } from '../../resources/resource-action.interface.js';
4
+ export interface IHook {
5
+ collectHooks(registeredModules: ModuleContainer['modules']): void;
6
+ registrar(arg: IModelAction | IResourceAction | PropertyDescriptor): void;
7
+ reset(): void;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hook.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.interface.js","sourceRoot":"","sources":["../../../src/functions/hook/hook.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { IModelAction } from '../../models/model-action.interface.js';
2
+ import type { ModuleContainer } from '../../modules/module.container.js';
3
+ import type { IHook } from './hook.interface.js';
4
+ export declare class ModelActionHook implements IHook {
5
+ private static instance;
6
+ private readonly postModelActionHooks;
7
+ private readonly preModelActionHooks;
8
+ collectHooks(registeredModules: ModuleContainer['modules']): void;
9
+ static getInstance(): ModelActionHook;
10
+ registrar(modelAction: IModelAction): void;
11
+ reset(): void;
12
+ }
@@ -0,0 +1,70 @@
1
+ import { Container } from '../../decorators/container.js';
2
+ import { InputService } from '../../services/input/input.service.js';
3
+ export class ModelActionHook {
4
+ static instance;
5
+ postModelActionHooks = {};
6
+ preModelActionHooks = {};
7
+ collectHooks(registeredModules) {
8
+ for (const m of registeredModules) {
9
+ for (const { ACTION_NAME, collectInput, handle } of m.properties.postModelActionHooks || []) {
10
+ if (!this.postModelActionHooks[ACTION_NAME]) {
11
+ this.postModelActionHooks[ACTION_NAME] = [];
12
+ }
13
+ this.postModelActionHooks[ACTION_NAME].push({ collectInput, handle });
14
+ }
15
+ for (const { ACTION_NAME, collectInput, handle } of m.properties.preModelActionHooks || []) {
16
+ if (!this.preModelActionHooks[ACTION_NAME]) {
17
+ this.preModelActionHooks[ACTION_NAME] = [];
18
+ }
19
+ this.preModelActionHooks[ACTION_NAME].push({ collectInput, handle });
20
+ }
21
+ }
22
+ }
23
+ static getInstance() {
24
+ if (!this.instance) {
25
+ this.instance = new ModelActionHook();
26
+ }
27
+ return this.instance;
28
+ }
29
+ registrar(modelAction) {
30
+ const self = this;
31
+ const originalHandleMethod = modelAction.handle;
32
+ modelAction.handle = async function (...args) {
33
+ const inputService = await Container.get(InputService);
34
+ let output = args[2] || {};
35
+ for (const { collectInput, handle } of self.preModelActionHooks[modelAction.ACTION_NAME] || []) {
36
+ const inputs = collectInput ? collectInput(args[0]) : [];
37
+ const resolvedInputs = inputs.reduce((accumulator, currentValue) => {
38
+ accumulator[currentValue] = inputService.getInput(currentValue);
39
+ if (!accumulator[currentValue]) {
40
+ throw new Error('No matching input found to process module!');
41
+ }
42
+ return accumulator;
43
+ }, {});
44
+ output = await handle.apply(this, [args[0], resolvedInputs, output]);
45
+ }
46
+ output = await originalHandleMethod.apply(this, [args[0], args[1], output]);
47
+ for (const { collectInput, handle } of self.postModelActionHooks[modelAction.ACTION_NAME] || []) {
48
+ const inputs = collectInput ? collectInput(args[0]) : [];
49
+ const resolvedInputs = inputs.reduce((accumulator, currentValue) => {
50
+ accumulator[currentValue] = inputService.getInput(currentValue);
51
+ if (!accumulator[currentValue]) {
52
+ throw new Error('No matching input found to process module!');
53
+ }
54
+ return accumulator;
55
+ }, {});
56
+ output = await handle.apply(this, [args[0], resolvedInputs, output]);
57
+ }
58
+ return output;
59
+ };
60
+ }
61
+ reset() {
62
+ for (const name in this.postModelActionHooks) {
63
+ delete this.postModelActionHooks[name];
64
+ }
65
+ for (const name in this.preModelActionHooks) {
66
+ delete this.preModelActionHooks[name];
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=model-action.hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-action.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/model-action.hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ModuleContainer } from '../../modules/module.container.js';
2
+ import type { IResourceAction } from '../../resources/resource-action.interface.js';
3
+ import type { IHook } from './hook.interface.js';
4
+ export declare class ResourceActionHook implements IHook {
5
+ private static instance;
6
+ private readonly postResourceActionHooks;
7
+ private readonly preResourceActionHooks;
8
+ collectHooks(registeredModules: ModuleContainer['modules']): void;
9
+ static getInstance(): ResourceActionHook;
10
+ registrar(resourceAction: IResourceAction): void;
11
+ reset(): void;
12
+ }
@@ -0,0 +1,49 @@
1
+ export class ResourceActionHook {
2
+ static instance;
3
+ postResourceActionHooks = {};
4
+ preResourceActionHooks = {};
5
+ collectHooks(registeredModules) {
6
+ for (const m of registeredModules) {
7
+ for (const { ACTION_NAME, handle } of m.properties.postResourceActionHooks || []) {
8
+ if (!this.postResourceActionHooks[ACTION_NAME]) {
9
+ this.postResourceActionHooks[ACTION_NAME] = [];
10
+ }
11
+ this.postResourceActionHooks[ACTION_NAME].push({ handle });
12
+ }
13
+ for (const { ACTION_NAME, handle } of m.properties.preResourceActionHooks || []) {
14
+ if (!this.preResourceActionHooks[ACTION_NAME]) {
15
+ this.preResourceActionHooks[ACTION_NAME] = [];
16
+ }
17
+ this.preResourceActionHooks[ACTION_NAME].push({ handle });
18
+ }
19
+ }
20
+ }
21
+ static getInstance() {
22
+ if (!this.instance) {
23
+ this.instance = new ResourceActionHook();
24
+ }
25
+ return this.instance;
26
+ }
27
+ registrar(resourceAction) {
28
+ const self = this;
29
+ const originalHandleMethod = resourceAction.handle;
30
+ resourceAction.handle = async function (...args) {
31
+ for (const { handle } of self.preResourceActionHooks[resourceAction.ACTION_NAME] || []) {
32
+ await handle.apply(this, args);
33
+ }
34
+ await originalHandleMethod.apply(this, args);
35
+ for (const { handle } of self.postResourceActionHooks[resourceAction.ACTION_NAME] || []) {
36
+ await handle.apply(this, args);
37
+ }
38
+ };
39
+ }
40
+ reset() {
41
+ for (const name in this.postResourceActionHooks) {
42
+ delete this.postResourceActionHooks[name];
43
+ }
44
+ for (const name in this.preResourceActionHooks) {
45
+ delete this.preResourceActionHooks[name];
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=resource-action.hook.js.map
@@ -0,0 +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"}
package/dist/index.d.ts CHANGED
@@ -1,53 +1,54 @@
1
- export { Anchor } from './decorators/anchor.decorator.js';
2
1
  export { Action } from './decorators/action.decorator.js';
2
+ export { Anchor } from './decorators/anchor.decorator.js';
3
3
  export { Container } from './decorators/container.js';
4
+ export { EnableHook } from './decorators/enable-hook.decorator.js';
4
5
  export { Factory } from './decorators/factory.decorator.js';
5
6
  export { Model } from './decorators/model.decorator.js';
6
7
  export { Module } from './decorators/module.decorator.js';
7
8
  export { Overlay } from './decorators/overlay.decorator.js';
8
9
  export { Resource } from './decorators/resource.decorator.js';
9
- export { TestContainer } from './decorators/test-container.js';
10
- export { Diff, DiffAction } from './functions/diff/diff.model.js';
10
+ export { IPackageMock, TestContainer } from './decorators/test-container.js';
11
+ export { DependencyRelationship } from './functions/dependency/dependency.js';
12
+ export { Diff, DiffAction } from './functions/diff/diff.js';
11
13
  export { DiffUtility } from './functions/diff/diff.utility.js';
12
- export { DiffMetadata } from './functions/diff/diff-metadata.model.js';
13
- export { AModule } from './functions/module/module.abstract.js';
14
- export { IModule } from './functions/module/module.interface.js';
14
+ export { DiffMetadata } from './functions/diff/diff-metadata.js';
15
+ export { type IApp } from './models/app/app.interface.js';
15
16
  export { App } from './models/app/app.model.js';
16
- export { IApp } from './models/app/app.interface.js';
17
+ export { type IDeployment } from './models/deployment/deployment.interface.js';
17
18
  export { Deployment } from './models/deployment/deployment.model.js';
18
- export { IDeployment } from './models/deployment/deployment.interface.js';
19
+ export { type IEnvironment } from './models/environment/environment.interface.js';
19
20
  export { Environment } from './models/environment/environment.model.js';
20
- export { IEnvironment } from './models/environment/environment.interface.js';
21
+ export { type IExecution } from './models/execution/execution.interface.js';
21
22
  export { Execution } from './models/execution/execution.model.js';
22
- export { IExecution } from './models/execution/execution.interface.js';
23
- export { IImageDockerOptions, Image } from './models/image/image.model.js';
24
- export { IImage } from './models/image/image.interface.js';
23
+ export { type IImage } from './models/image/image.interface.js';
24
+ export { type IImageDockerOptions, Image } from './models/image/image.model.js';
25
+ export { type IPipeline } from './models/pipeline/pipeline.interface.js';
25
26
  export { Pipeline } from './models/pipeline/pipeline.model.js';
26
- export { IPipeline } from './models/pipeline/pipeline.interface.js';
27
+ export { type IRegion } from './models/region/region.interface.js';
27
28
  export { Region } from './models/region/region.model.js';
28
- export { IRegion } from './models/region/region.interface.js';
29
+ export { type IServer } from './models/server/server.interface.js';
29
30
  export { Server } from './models/server/server.model.js';
30
- export { IServer } from './models/server/server.interface.js';
31
+ export { type IService } from './models/service/service.interface.js';
31
32
  export { Service } from './models/service/service.model.js';
32
- export { IService } from './models/service/service.interface.js';
33
- export { Support } from './models/support/support.model.js';
34
- export { ISupport } from './models/support/support.interface.js';
35
- export { IAction } from './models/action.interface.js';
33
+ export { type ISubnet } from './models/subnet/subnet.interface.js';
34
+ export { Subnet, SubnetType } from './models/subnet/subnet.model.js';
36
35
  export { AModel } from './models/model.abstract.js';
37
- export { IModel, IModelReference } from './models/model.interface.js';
36
+ export { type IModel, type IModelReference } from './models/model.interface.js';
37
+ export { type IModelAction } from './models/model-action.interface.js';
38
+ export { type IModule } from './modules/module.interface.js';
39
+ export { TestModuleContainer } from './modules/test-module.container.js';
38
40
  export { AAnchor } from './overlays/anchor.abstract.js';
39
- export { IAnchor } from './overlays/anchor.interface.js';
41
+ export { type IAnchor } from './overlays/anchor.interface.js';
40
42
  export { AOverlay } from './overlays/overlay.abstract.js';
41
- export { IOverlay } from './overlays/overlay.interface.js';
43
+ export { type IOverlay } from './overlays/overlay.interface.js';
42
44
  export { OverlayService } from './overlays/overlay.service.js';
43
45
  export { AResource } from './resources/resource.abstract.js';
44
- export { IResource } from './resources/resource.interface.js';
45
- export { IResourceAction } from './resources/resource-action.interface.js';
46
+ export { type IResource } from './resources/resource.interface.js';
47
+ export { type IResourceAction } from './resources/resource-action.interface.js';
46
48
  export { ASharedResource } from './resources/shared-resource.abstract.js';
47
- export { ModelSerializationService } from './services/serialization/model/model-serialization.service.js';
48
- export { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
49
49
  export { LocalStateProvider } from './services/state-management/local.state-provider.js';
50
50
  export { StateManagementService } from './services/state-management/state-management.service.js';
51
- export { IStateProvider } from './services/state-management/state-provider.interface.js';
52
- export { TransactionService } from './services/transaction/transaction.service.js';
51
+ export { type IStateProvider } from './services/state-management/state-provider.interface.js';
52
+ export { TestStateProvider } from './services/state-management/test.state-provider.js';
53
53
  export * from './app.type.js';
54
+ export { Octo } from './main.js';
package/dist/index.js CHANGED
@@ -1,16 +1,17 @@
1
- export { Anchor } from './decorators/anchor.decorator.js';
2
1
  export { Action } from './decorators/action.decorator.js';
2
+ export { Anchor } from './decorators/anchor.decorator.js';
3
3
  export { Container } from './decorators/container.js';
4
+ export { EnableHook } from './decorators/enable-hook.decorator.js';
4
5
  export { Factory } from './decorators/factory.decorator.js';
5
6
  export { Model } from './decorators/model.decorator.js';
6
7
  export { Module } from './decorators/module.decorator.js';
7
8
  export { Overlay } from './decorators/overlay.decorator.js';
8
9
  export { Resource } from './decorators/resource.decorator.js';
9
10
  export { TestContainer } from './decorators/test-container.js';
10
- export { Diff, DiffAction } from './functions/diff/diff.model.js';
11
+ export { DependencyRelationship } from './functions/dependency/dependency.js';
12
+ export { Diff, DiffAction } from './functions/diff/diff.js';
11
13
  export { DiffUtility } from './functions/diff/diff.utility.js';
12
- export { DiffMetadata } from './functions/diff/diff-metadata.model.js';
13
- export { AModule } from './functions/module/module.abstract.js';
14
+ export { DiffMetadata } from './functions/diff/diff-metadata.js';
14
15
  export { App } from './models/app/app.model.js';
15
16
  export { Deployment } from './models/deployment/deployment.model.js';
16
17
  export { Environment } from './models/environment/environment.model.js';
@@ -20,17 +21,17 @@ export { Pipeline } from './models/pipeline/pipeline.model.js';
20
21
  export { Region } from './models/region/region.model.js';
21
22
  export { Server } from './models/server/server.model.js';
22
23
  export { Service } from './models/service/service.model.js';
23
- export { Support } from './models/support/support.model.js';
24
+ export { Subnet, SubnetType } from './models/subnet/subnet.model.js';
24
25
  export { AModel } from './models/model.abstract.js';
26
+ export { TestModuleContainer } from './modules/test-module.container.js';
25
27
  export { AAnchor } from './overlays/anchor.abstract.js';
26
28
  export { AOverlay } from './overlays/overlay.abstract.js';
27
29
  export { OverlayService } from './overlays/overlay.service.js';
28
30
  export { AResource } from './resources/resource.abstract.js';
29
31
  export { ASharedResource } from './resources/shared-resource.abstract.js';
30
- export { ModelSerializationService } from './services/serialization/model/model-serialization.service.js';
31
- export { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
32
32
  export { LocalStateProvider } from './services/state-management/local.state-provider.js';
33
33
  export { StateManagementService } from './services/state-management/state-management.service.js';
34
- export { TransactionService } from './services/transaction/transaction.service.js';
34
+ export { TestStateProvider } from './services/state-management/test.state-provider.js';
35
35
  export * from './app.type.js';
36
+ export { Octo } from './main.js';
36
37
  //# sourceMappingURL=index.js.map
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,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,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAGhE,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,EAAuB,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3E,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,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAI5D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,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,yBAAyB,EAAE,MAAM,+DAA+D,CAAC;AAC1G,OAAO,EAAE,4BAA4B,EAAE,MAAM,qEAAqE,CAAC;AAEnH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,yDAAyD,CAAC;AAGjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAEnF,cAAc,eAAe,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,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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { ActionInputs, Constructable, TransactionOptions, UnknownResource } from './app.type.js';
2
+ import { DiffMetadata } from './functions/diff/diff-metadata.js';
3
+ import { App } from './models/app/app.model.js';
4
+ import { IModule } from './modules/module.interface.js';
5
+ import { AResource } from './resources/resource.abstract.js';
6
+ import { IStateProvider } from './services/state-management/state-provider.interface.js';
7
+ import { TransactionService } from './services/transaction/transaction.service.js';
8
+ export declare class Octo {
9
+ private readonly modelStateFileName;
10
+ private readonly resourceStateFileName;
11
+ private previousApp;
12
+ private captureService;
13
+ private inputService;
14
+ private modelSerializationService;
15
+ private resourceDataRepository;
16
+ private resourceSerializationService;
17
+ private stateManagementService;
18
+ private transactionService;
19
+ beginTransaction(app: App, options?: TransactionOptions): Promise<ReturnType<TransactionService['beginTransaction']>>;
20
+ commitTransaction(app: App, modelTransaction: DiffMetadata[][]): Promise<void>;
21
+ compose(): Promise<void>;
22
+ getAllResources(): UnknownResource[];
23
+ getModuleOutput<T>(module: Constructable<IModule<T>> | string): Promise<T | undefined>;
24
+ initialize(stateProvider: IStateProvider): Promise<void>;
25
+ registerCapture<T extends AResource<T>>(resourceId: T['resourceId'], properties: Partial<T['properties']>, response: Partial<T['response']>): void;
26
+ registerInputs(inputs: ActionInputs): void;
27
+ private retrieveModelState;
28
+ private retrieveResourceState;
29
+ private saveModelState;
30
+ private saveResourceState;
31
+ }
package/dist/main.js ADDED
@@ -0,0 +1,111 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { strict as assert } from 'assert';
11
+ import { Container } from './decorators/container.js';
12
+ import { EnableHook } from './decorators/enable-hook.decorator.js';
13
+ import { App } from './models/app/app.model.js';
14
+ import { ModuleContainer } from './modules/module.container.js';
15
+ import { ResourceDataRepository } from './resources/resource-data.repository.js';
16
+ import { CaptureService } from './services/capture/capture.service.js';
17
+ import { InputService } from './services/input/input.service.js';
18
+ import { ModelSerializationService } from './services/serialization/model/model-serialization.service.js';
19
+ import { ResourceSerializationService } from './services/serialization/resource/resource-serialization.service.js';
20
+ import { StateManagementService } from './services/state-management/state-management.service.js';
21
+ import { TransactionService } from './services/transaction/transaction.service.js';
22
+ 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;
33
+ async beginTransaction(app, options) {
34
+ const diffs = await app.diff(this.previousApp);
35
+ return this.transactionService.beginTransaction(diffs, options || {});
36
+ }
37
+ async commitTransaction(app, modelTransaction) {
38
+ assert(!!modelTransaction);
39
+ await this.saveModelState(app);
40
+ await this.saveResourceState();
41
+ await this.retrieveResourceState();
42
+ this.previousApp = await this.retrieveModelState();
43
+ }
44
+ async compose() {
45
+ const moduleContainer = await Container.get(ModuleContainer);
46
+ await moduleContainer.apply();
47
+ }
48
+ getAllResources() {
49
+ return this.resourceDataRepository.getByProperties();
50
+ }
51
+ async getModuleOutput(module) {
52
+ const moduleContainer = await Container.get(ModuleContainer);
53
+ return moduleContainer.getOutput(module);
54
+ }
55
+ async initialize(stateProvider) {
56
+ [
57
+ this.captureService,
58
+ this.inputService,
59
+ this.modelSerializationService,
60
+ this.resourceDataRepository,
61
+ this.resourceSerializationService,
62
+ this.stateManagementService,
63
+ this.transactionService,
64
+ ] = await Promise.all([
65
+ Container.get(CaptureService),
66
+ Container.get(InputService),
67
+ Container.get(ModelSerializationService),
68
+ Container.get(ResourceDataRepository),
69
+ Container.get(ResourceSerializationService),
70
+ Container.get(StateManagementService, { args: [stateProvider] }),
71
+ Container.get(TransactionService),
72
+ ]);
73
+ await this.retrieveResourceState();
74
+ this.previousApp = await this.retrieveModelState();
75
+ }
76
+ registerCapture(resourceId, properties, response) {
77
+ this.captureService.registerCapture(resourceId, properties, response);
78
+ }
79
+ registerInputs(inputs) {
80
+ this.inputService.registerInputs(inputs);
81
+ }
82
+ async retrieveModelState() {
83
+ const { data: modelSerializedOutput } = await this.stateManagementService.getModelState(this.modelStateFileName);
84
+ return Object.keys(modelSerializedOutput.models).length > 0
85
+ ? (await this.modelSerializationService.deserialize(modelSerializedOutput))
86
+ : undefined;
87
+ }
88
+ async retrieveResourceState() {
89
+ const { data: resourceSerializedOutput } = await this.stateManagementService.getResourceState(this.resourceStateFileName);
90
+ await this.resourceSerializationService.deserialize(resourceSerializedOutput);
91
+ }
92
+ async saveModelState(app) {
93
+ const modelSerializedOutput = await this.modelSerializationService.serialize(app);
94
+ await this.stateManagementService.saveModelState(this.modelStateFileName, modelSerializedOutput, {
95
+ version: 1,
96
+ });
97
+ }
98
+ async saveResourceState() {
99
+ const resourceSerializedOutput = await this.resourceSerializationService.serialize();
100
+ await this.stateManagementService.saveResourceState(this.resourceStateFileName, resourceSerializedOutput, {
101
+ version: 1,
102
+ });
103
+ }
104
+ }
105
+ __decorate([
106
+ EnableHook('CommitHook'),
107
+ __metadata("design:type", Function),
108
+ __metadata("design:paramtypes", [App, Array]),
109
+ __metadata("design:returntype", Promise)
110
+ ], Octo.prototype, "commitTransaction", null);
111
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}