@quadnix/octo 0.0.20 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/app.type.d.ts +8 -1
  2. package/dist/app.type.js +13 -7
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/action.decorator.d.ts +19 -2
  5. package/dist/decorators/action.decorator.js +28 -5
  6. package/dist/decorators/action.decorator.js.map +1 -1
  7. package/dist/decorators/anchor.decorator.d.ts +13 -0
  8. package/dist/decorators/anchor.decorator.js +14 -1
  9. package/dist/decorators/anchor.decorator.js.map +1 -1
  10. package/dist/decorators/enable-hook.decorator.d.ts +14 -0
  11. package/dist/decorators/enable-hook.decorator.js +14 -0
  12. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  13. package/dist/decorators/event-source.decorator.d.ts +15 -0
  14. package/dist/decorators/event-source.decorator.js +15 -0
  15. package/dist/decorators/event-source.decorator.js.map +1 -1
  16. package/dist/decorators/factory.decorator.d.ts +54 -5
  17. package/dist/decorators/factory.decorator.js +56 -3
  18. package/dist/decorators/factory.decorator.js.map +1 -1
  19. package/dist/decorators/model.decorator.d.ts +13 -0
  20. package/dist/decorators/model.decorator.js +14 -1
  21. package/dist/decorators/model.decorator.js.map +1 -1
  22. package/dist/decorators/module.decorator.d.ts +61 -5
  23. package/dist/decorators/module.decorator.js +62 -3
  24. package/dist/decorators/module.decorator.js.map +1 -1
  25. package/dist/decorators/on-event.decorator.d.ts +17 -0
  26. package/dist/decorators/on-event.decorator.js +17 -0
  27. package/dist/decorators/on-event.decorator.js.map +1 -1
  28. package/dist/decorators/overlay.decorator.d.ts +13 -0
  29. package/dist/decorators/overlay.decorator.js +14 -1
  30. package/dist/decorators/overlay.decorator.js.map +1 -1
  31. package/dist/decorators/resource.decorator.d.ts +13 -0
  32. package/dist/decorators/resource.decorator.js +14 -1
  33. package/dist/decorators/resource.decorator.js.map +1 -1
  34. package/dist/decorators/validate.decorator.d.ts +9 -0
  35. package/dist/decorators/validate.decorator.js +23 -0
  36. package/dist/decorators/validate.decorator.js.map +1 -0
  37. package/dist/events/error.event.d.ts +30 -0
  38. package/dist/events/error.event.js +30 -0
  39. package/dist/events/error.event.js.map +1 -1
  40. package/dist/events/event.model.d.ts +27 -0
  41. package/dist/events/event.model.js +27 -3
  42. package/dist/events/event.model.js.map +1 -1
  43. package/dist/events/hook.event.d.ts +167 -0
  44. package/dist/events/hook.event.js +167 -0
  45. package/dist/events/hook.event.js.map +1 -1
  46. package/dist/events/module.event.d.ts +12 -0
  47. package/dist/events/module.event.js +12 -0
  48. package/dist/events/module.event.js.map +1 -1
  49. package/dist/events/registration.event.d.ts +90 -0
  50. package/dist/events/registration.event.js +90 -0
  51. package/dist/events/registration.event.js.map +1 -1
  52. package/dist/events/serialization.event.d.ts +61 -0
  53. package/dist/events/serialization.event.js +61 -0
  54. package/dist/events/serialization.event.js.map +1 -1
  55. package/dist/events/transaction.event.d.ts +41 -0
  56. package/dist/events/transaction.event.js +41 -0
  57. package/dist/events/transaction.event.js.map +1 -1
  58. package/dist/functions/container/container.d.ts +53 -0
  59. package/dist/functions/container/container.js +102 -0
  60. package/dist/functions/container/container.js.map +1 -0
  61. package/dist/functions/container/test-container.d.ts +75 -0
  62. package/dist/functions/container/test-container.js +97 -0
  63. package/dist/functions/container/test-container.js.map +1 -0
  64. package/dist/functions/dependency/dependency.d.ts +6 -6
  65. package/dist/functions/dependency/dependency.js +1 -8
  66. package/dist/functions/dependency/dependency.js.map +1 -1
  67. package/dist/functions/diff/diff-metadata.d.ts +5 -2
  68. package/dist/functions/diff/diff-metadata.js +6 -11
  69. package/dist/functions/diff/diff-metadata.js.map +1 -1
  70. package/dist/functions/diff/diff.d.ts +6 -3
  71. package/dist/functions/diff/diff.js +8 -13
  72. package/dist/functions/diff/diff.js.map +1 -1
  73. package/dist/functions/diff/diff.utility.d.ts +38 -6
  74. package/dist/functions/diff/diff.utility.js +55 -6
  75. package/dist/functions/diff/diff.utility.js.map +1 -1
  76. package/dist/functions/hook/commit.hook.js +6 -3
  77. package/dist/functions/hook/commit.hook.js.map +1 -1
  78. package/dist/functions/hook/model-action.hook.js +7 -4
  79. package/dist/functions/hook/model-action.hook.js.map +1 -1
  80. package/dist/functions/hook/resource-action.hook.js +6 -3
  81. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  82. package/dist/functions/node/node.abstract.d.ts +84 -0
  83. package/dist/functions/node/node.abstract.js +275 -0
  84. package/dist/functions/node/node.abstract.js.map +1 -0
  85. package/dist/functions/node/node.interface.d.ts +176 -0
  86. package/dist/functions/node/node.interface.js +2 -0
  87. package/dist/functions/node/node.interface.js.map +1 -0
  88. package/dist/index.d.ts +12 -12
  89. package/dist/index.js +11 -11
  90. package/dist/index.js.map +1 -1
  91. package/dist/main.d.ts +11 -10
  92. package/dist/main.js +76 -37
  93. package/dist/main.js.map +1 -1
  94. package/dist/models/app/app.interface.d.ts +5 -0
  95. package/dist/models/app/app.model.d.ts +30 -3
  96. package/dist/models/app/app.model.js +40 -6
  97. package/dist/models/app/app.model.js.map +1 -1
  98. package/dist/models/deployment/deployment.interface.d.ts +5 -0
  99. package/dist/models/deployment/deployment.model.d.ts +16 -3
  100. package/dist/models/deployment/deployment.model.js +20 -6
  101. package/dist/models/deployment/deployment.model.js.map +1 -1
  102. package/dist/models/environment/environment.interface.d.ts +5 -0
  103. package/dist/models/environment/environment.model.d.ts +19 -3
  104. package/dist/models/environment/environment.model.js +33 -8
  105. package/dist/models/environment/environment.model.js.map +1 -1
  106. package/dist/models/execution/execution.interface.d.ts +5 -0
  107. package/dist/models/execution/execution.model.d.ts +24 -3
  108. package/dist/models/execution/execution.model.js +40 -7
  109. package/dist/models/execution/execution.model.js.map +1 -1
  110. package/dist/models/image/image.interface.d.ts +5 -0
  111. package/dist/models/image/image.model.d.ts +36 -3
  112. package/dist/models/image/image.model.js +25 -9
  113. package/dist/models/image/image.model.js.map +1 -1
  114. package/dist/models/model-action.interface.d.ts +18 -1
  115. package/dist/models/model.abstract.d.ts +7 -42
  116. package/dist/models/model.abstract.js +24 -295
  117. package/dist/models/model.abstract.js.map +1 -1
  118. package/dist/models/model.interface.d.ts +51 -11
  119. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  120. package/dist/models/pipeline/pipeline.model.d.ts +16 -3
  121. package/dist/models/pipeline/pipeline.model.js +25 -8
  122. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  123. package/dist/models/region/region.interface.d.ts +5 -0
  124. package/dist/models/region/region.model.d.ts +19 -3
  125. package/dist/models/region/region.model.js +29 -6
  126. package/dist/models/region/region.model.js.map +1 -1
  127. package/dist/models/server/server.interface.d.ts +5 -0
  128. package/dist/models/server/server.model.d.ts +18 -3
  129. package/dist/models/server/server.model.js +24 -6
  130. package/dist/models/server/server.model.js.map +1 -1
  131. package/dist/models/service/service.interface.d.ts +5 -0
  132. package/dist/models/service/service.model.d.ts +16 -3
  133. package/dist/models/service/service.model.js +19 -6
  134. package/dist/models/service/service.model.js.map +1 -1
  135. package/dist/models/subnet/subnet.interface.d.ts +5 -0
  136. package/dist/models/subnet/subnet.model.d.ts +50 -3
  137. package/dist/models/subnet/subnet.model.js +58 -22
  138. package/dist/models/subnet/subnet.model.js.map +1 -1
  139. package/dist/modules/module.container.d.ts +4 -2
  140. package/dist/modules/module.container.js +17 -8
  141. package/dist/modules/module.container.js.map +1 -1
  142. package/dist/modules/test-module.container.d.ts +4 -4
  143. package/dist/modules/test-module.container.js +18 -17
  144. package/dist/modules/test-module.container.js.map +1 -1
  145. package/dist/overlays/anchor.abstract.js +0 -3
  146. package/dist/overlays/anchor.abstract.js.map +1 -1
  147. package/dist/overlays/overlay-data.repository.d.ts +2 -4
  148. package/dist/overlays/overlay-data.repository.js +8 -36
  149. package/dist/overlays/overlay-data.repository.js.map +1 -1
  150. package/dist/overlays/overlay.abstract.d.ts +6 -7
  151. package/dist/overlays/overlay.abstract.js +20 -42
  152. package/dist/overlays/overlay.abstract.js.map +1 -1
  153. package/dist/overlays/overlay.service.d.ts +0 -1
  154. package/dist/overlays/overlay.service.js +1 -7
  155. package/dist/overlays/overlay.service.js.map +1 -1
  156. package/dist/resources/resource-data.repository.d.ts +16 -6
  157. package/dist/resources/resource-data.repository.js +121 -18
  158. package/dist/resources/resource-data.repository.js.map +1 -1
  159. package/dist/resources/resource.abstract.d.ts +23 -6
  160. package/dist/resources/resource.abstract.js +147 -13
  161. package/dist/resources/resource.abstract.js.map +1 -1
  162. package/dist/resources/shared-resource.abstract.d.ts +2 -2
  163. package/dist/resources/shared-resource.abstract.js +5 -2
  164. package/dist/resources/shared-resource.abstract.js.map +1 -1
  165. package/dist/services/capture/capture.service.d.ts +1 -2
  166. package/dist/services/capture/capture.service.js +5 -4
  167. package/dist/services/capture/capture.service.js.map +1 -1
  168. package/dist/services/event/event.service.js +9 -6
  169. package/dist/services/event/event.service.js.map +1 -1
  170. package/dist/services/input/input.service.js +3 -5
  171. package/dist/services/input/input.service.js.map +1 -1
  172. package/dist/services/serialization/model/model-serialization.service.js +13 -14
  173. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  174. package/dist/services/serialization/resource/resource-serialization.service.d.ts +4 -4
  175. package/dist/services/serialization/resource/resource-serialization.service.js +23 -13
  176. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  177. package/dist/services/state-management/local.state-provider.js +0 -1
  178. package/dist/services/state-management/local.state-provider.js.map +1 -1
  179. package/dist/services/state-management/state-management.service.d.ts +1 -1
  180. package/dist/services/state-management/state-management.service.js +6 -9
  181. package/dist/services/state-management/state-management.service.js.map +1 -1
  182. package/dist/services/state-management/test.state-provider.js +3 -1
  183. package/dist/services/state-management/test.state-provider.js.map +1 -1
  184. package/dist/services/transaction/transaction.service.d.ts +5 -2
  185. package/dist/services/transaction/transaction.service.js +117 -87
  186. package/dist/services/transaction/transaction.service.js.map +1 -1
  187. package/dist/services/validation/validation.service.d.ts +19 -0
  188. package/dist/services/validation/validation.service.js +66 -0
  189. package/dist/services/validation/validation.service.js.map +1 -0
  190. package/dist/utilities/object/object.utility.js +1 -0
  191. package/dist/utilities/object/object.utility.js.map +1 -1
  192. package/dist/utilities/validation/validation.utility.d.ts +5 -0
  193. package/dist/utilities/validation/validation.utility.js +12 -0
  194. package/dist/utilities/validation/validation.utility.js.map +1 -0
  195. package/package.json +1 -1
  196. package/dist/decorators/container.d.ts +0 -24
  197. package/dist/decorators/container.js +0 -96
  198. package/dist/decorators/container.js.map +0 -1
  199. package/dist/decorators/test-container.d.ts +0 -27
  200. package/dist/decorators/test-container.js +0 -52
  201. package/dist/decorators/test-container.js.map +0 -1
@@ -7,8 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { ModelType, } from '../../app.type.js';
11
- import { Container } from '../../decorators/container.js';
10
+ import { NodeType, } from '../../app.type.js';
11
+ import { Container } from '../../functions/container/container.js';
12
12
  import { EventSource } from '../../decorators/event-source.decorator.js';
13
13
  import { Factory } from '../../decorators/factory.decorator.js';
14
14
  import { ModelActionRegistrationEvent, ResourceActionRegistrationEvent } from '../../events/registration.event.js';
@@ -17,22 +17,19 @@ import { DiffMetadata } from '../../functions/diff/diff-metadata.js';
17
17
  import { DiffAction } from '../../functions/diff/diff.js';
18
18
  import { OverlayDataRepository } from '../../overlays/overlay-data.repository.js';
19
19
  import { ResourceDataRepository } from '../../resources/resource-data.repository.js';
20
+ import { AResource } from '../../resources/resource.abstract.js';
20
21
  import { CaptureService } from '../capture/capture.service.js';
21
22
  import { EventService } from '../event/event.service.js';
22
23
  import { InputService } from '../input/input.service.js';
23
24
  export class TransactionService {
24
- captureService;
25
- inputService;
26
- overlayDataRepository;
27
- resourceDataRepository;
28
- modelActions = [];
29
- overlayActions = [];
30
- resourceActions = [];
31
25
  constructor(captureService, inputService, overlayDataRepository, resourceDataRepository) {
32
26
  this.captureService = captureService;
33
27
  this.inputService = inputService;
34
28
  this.overlayDataRepository = overlayDataRepository;
35
29
  this.resourceDataRepository = resourceDataRepository;
30
+ this.modelActions = [];
31
+ this.overlayActions = [];
32
+ this.resourceActions = [];
36
33
  }
37
34
  async applyModels(diffs) {
38
35
  const transaction = [];
@@ -41,14 +38,16 @@ export class TransactionService {
41
38
  while (processed < diffs.length) {
42
39
  const diffsInSameLevel = diffs.filter((d) => d.applyOrder === currentApplyOrder);
43
40
  const diffsProcessedInSameLevel = [];
44
- const promiseToApplyActions = [];
45
41
  for (const diff of diffsInSameLevel) {
46
42
  if (diff.applied) {
47
43
  continue;
48
44
  }
45
+ // Check for duplicate diffs on the same model and same field.
49
46
  const duplicateDiffs = this.getDuplicateDiffs(diff, diffsInSameLevel);
47
+ // Only process the first diff, given all duplicate diffs are the same.
50
48
  const diffToProcess = duplicateDiffs[0].diff;
51
49
  for (const a of diff.actions) {
50
+ // Resolve input requests.
52
51
  const inputs = {};
53
52
  const inputKeys = a.collectInput(diffToProcess);
54
53
  inputKeys.forEach((k) => {
@@ -57,31 +56,31 @@ export class TransactionService {
57
56
  throw new Error('No matching input found to process action!');
58
57
  }
59
58
  });
60
- const promiseToApplyAction = a.handle(diffToProcess, inputs, {}).then((outputs) => {
61
- EventService.getInstance().emit(new ModelActionTransactionEvent(a.ACTION_NAME));
62
- duplicateDiffs.forEach((d) => {
63
- d.updateInputs(inputs);
64
- d.updateOutputs(outputs);
65
- });
66
- return outputs;
59
+ // Apply all actions on the diff, then update diff metadata with inputs and outputs.
60
+ const outputs = await a.handle(diffToProcess, inputs, {});
61
+ // Overwrite previous resources with new resources, except for shared resources,
62
+ // which can be merged if it exists.
63
+ for (const [resourceId, resource] of Object.entries(outputs)) {
64
+ const previousResource = this.resourceDataRepository.getNewResourceById(resourceId);
65
+ if (resource.NODE_TYPE === 'shared-resource' && previousResource) {
66
+ this.resourceDataRepository.addNewResource(resource.merge(previousResource));
67
+ }
68
+ else {
69
+ this.resourceDataRepository.addNewResource(resource);
70
+ }
71
+ }
72
+ duplicateDiffs.forEach((d) => {
73
+ d.updateInputs(inputs);
74
+ d.updateOutputs(outputs);
67
75
  });
68
- promiseToApplyActions.push(promiseToApplyAction);
76
+ EventService.getInstance().emit(new ModelActionTransactionEvent(a.ACTION_NAME));
69
77
  }
78
+ // Include the diff to process in the list of diffs processed in the same level.
70
79
  diffsProcessedInSameLevel.push(duplicateDiffs[0]);
80
+ // Mark metadata of each duplicate diffs as applied.
71
81
  duplicateDiffs.forEach((d) => (d.applied = true));
72
82
  }
73
- const actionsOutputs = await Promise.all(promiseToApplyActions);
74
- for (const outputs of actionsOutputs) {
75
- for (const [resourceId, resource] of Object.entries(outputs)) {
76
- const previousResource = this.resourceDataRepository.getById(resourceId);
77
- if (resource.MODEL_TYPE === 'shared-resource' && previousResource) {
78
- this.resourceDataRepository.add(resource.merge(previousResource));
79
- }
80
- else {
81
- this.resourceDataRepository.add(resource);
82
- }
83
- }
84
- }
83
+ // Add all diff in same level to transaction.
85
84
  transaction.push(diffsProcessedInSameLevel);
86
85
  processed += diffsInSameLevel.length;
87
86
  currentApplyOrder += 1;
@@ -95,29 +94,44 @@ export class TransactionService {
95
94
  while (processed < diffs.length) {
96
95
  const diffsInSameLevel = diffs.filter((d) => d.applyOrder === currentApplyOrder);
97
96
  const diffsProcessedInSameLevel = [];
98
- const promiseToApplyActions = [];
99
97
  for (const diff of diffsInSameLevel) {
100
98
  if (diff.applied) {
101
99
  continue;
102
100
  }
101
+ // Check for duplicate diffs on the same resource and same field.
103
102
  const duplicateDiffs = this.getDuplicateDiffs(diff, diffsInSameLevel);
103
+ // Only process the first diff, given all duplicate diffs are the same.
104
104
  const diffToProcess = duplicateDiffs[0].diff;
105
105
  for (const a of diff.actions) {
106
106
  if (enableResourceCapture) {
107
- const capture = this.captureService.getCapture(diff.model.resourceId);
107
+ const capture = this.captureService.getCapture(diff.node.resourceId);
108
108
  await a.mock(capture?.response, diff);
109
109
  await a.handle(diffToProcess);
110
110
  }
111
111
  else {
112
- promiseToApplyActions.push(a.handle(diffToProcess).then(() => {
113
- EventService.getInstance().emit(new ResourceActionTransactionEvent(a.ACTION_NAME));
114
- }));
112
+ await a.handle(diffToProcess);
113
+ }
114
+ // De-reference from actual resources.
115
+ const deReferenceResource = async (resourceId) => {
116
+ return this.resourceDataRepository.getActualResourceById(resourceId);
117
+ };
118
+ // Incrementally apply diff inverse to the respective actual resource.
119
+ let actualResource = this.resourceDataRepository.getActualResourceById(diffToProcess.node.resourceId);
120
+ if (!actualResource) {
121
+ actualResource = await AResource.cloneResource(diffToProcess.node, deReferenceResource);
122
+ this.resourceDataRepository.addActualResource(actualResource);
123
+ }
124
+ else {
125
+ await actualResource.diffInverse(diffToProcess, deReferenceResource);
115
126
  }
127
+ EventService.getInstance().emit(new ResourceActionTransactionEvent(a.ACTION_NAME));
116
128
  }
129
+ // Include the diff to process in the list of diffs processed in the same level.
117
130
  diffsProcessedInSameLevel.push(duplicateDiffs[0]);
131
+ // Mark metadata of each duplicate diffs as applied.
118
132
  duplicateDiffs.forEach((d) => (d.applied = true));
119
133
  }
120
- await Promise.all(promiseToApplyActions);
134
+ // Add all diff in same level to transaction.
121
135
  transaction.push(diffsProcessedInSameLevel);
122
136
  processed += diffsInSameLevel.length;
123
137
  currentApplyOrder += 1;
@@ -125,18 +139,24 @@ export class TransactionService {
125
139
  return transaction;
126
140
  }
127
141
  getDuplicateDiffs(diff, diffs) {
128
- return diffs.filter((d) => d.model.getContext() === diff.model.getContext() &&
142
+ return diffs.filter((d) => d.node.getContext() === diff.node.getContext() &&
129
143
  d.field === diff.field &&
130
144
  d.action === diff.action &&
131
145
  d.value === diff.value);
132
146
  }
133
147
  getMatchingDiffs(diff, diffs) {
134
- return diffs.filter((d) => d.model.getContext() === diff.model.getContext() && d.field === diff.field && d.value === diff.value);
148
+ return diffs.filter((d) => d.node.getContext() === diff.node.getContext() && d.field === diff.field && d.value === diff.value);
135
149
  }
150
+ /**
151
+ * Before assigning order to a diff, all its node's parent diffs must be processed.
152
+ * E.g. diff to add environment, depends on region to exist, thus add region diff gets processed first.
153
+ */
136
154
  setApplyOrder(diff, diffs, seen = []) {
155
+ // Detect circular dependencies.
137
156
  if (this.getDuplicateDiffs(diff, seen).length > 0) {
138
157
  throw new Error('Found circular dependencies!');
139
158
  }
159
+ // Detect conflicting actions in transaction.
140
160
  const matchingDiffs = this.getMatchingDiffs(diff, diffs);
141
161
  const diffActions = matchingDiffs.reduce((accumulator, currentValue) => {
142
162
  accumulator[currentValue.action] = true;
@@ -147,14 +167,18 @@ export class TransactionService {
147
167
  (diffActions[DiffAction.DELETE] && diffActions[DiffAction.UPDATE])) {
148
168
  throw new Error('Found conflicting actions in same transaction!');
149
169
  }
170
+ // Skip processing diff that already has the applyOrder set.
150
171
  if (diff.applyOrder >= 0) {
151
172
  return;
152
173
  }
153
- const dependencies = diff.model.getDependencies();
174
+ // Get all dependencies of subject node.
175
+ const dependencies = diff.node.getDependencies();
154
176
  const dependencyApplyOrders = [-1];
155
177
  for (const dependency of dependencies) {
156
- const matchingParentDiffs = diffs.filter((d) => d.model.getContext() === dependency.to.getContext() &&
178
+ // Iterate diffs looking to match dependency on same field and action.
179
+ const matchingParentDiffs = diffs.filter((d) => d.node.getContext() === dependency.to.getContext() &&
157
180
  dependency.hasMatchingBehavior(diff.field, diff.action, d.field, d.action));
181
+ // On each diff that should be processed first, apply order on it before than self.
158
182
  for (const matchingParentDiff of matchingParentDiffs) {
159
183
  this.setApplyOrder(matchingParentDiff, diffs, [...seen, diff]);
160
184
  dependencyApplyOrders.push(matchingParentDiff.applyOrder);
@@ -162,45 +186,81 @@ export class TransactionService {
162
186
  }
163
187
  diff.applyOrder = Math.max(...dependencyApplyOrders) + 1;
164
188
  }
165
- async *beginTransaction(diffs, options = {
166
- enableResourceCapture: false,
167
- yieldModelDiffs: false,
168
- yieldModelTransaction: false,
169
- yieldResourceDiffs: false,
170
- yieldResourceTransaction: false,
171
- }) {
189
+ async *beginTransaction(diffs, { enableResourceCapture = false, yieldModelDiffs = false, yieldModelTransaction = false, yieldResourceDiffs = false, yieldResourceTransaction = false, } = {}) {
190
+ // Diff overlays and add to existing diffs.
172
191
  diffs.push(...(await this.overlayDataRepository.diff()));
192
+ // Generate diff on models.
173
193
  const modelDiffs = diffs.map((d) => {
174
- if (d.model.MODEL_TYPE === ModelType.OVERLAY) {
194
+ if (d.node.NODE_TYPE === NodeType.OVERLAY) {
175
195
  return new DiffMetadata(d, this.overlayActions.filter((a) => a.filter(d)));
176
196
  }
177
197
  else {
178
198
  return new DiffMetadata(d, this.modelActions.filter((a) => a.filter(d)));
179
199
  }
180
200
  });
201
+ // Set apply order on model diffs.
181
202
  for (const diff of modelDiffs) {
182
203
  this.setApplyOrder(diff, modelDiffs);
183
204
  }
184
- if (options.yieldModelDiffs) {
205
+ if (yieldModelDiffs) {
185
206
  yield [modelDiffs];
186
207
  }
208
+ // Apply model diffs.
187
209
  const modelTransaction = await this.applyModels(modelDiffs);
188
- if (options.yieldModelTransaction) {
210
+ if (yieldModelTransaction) {
189
211
  yield modelTransaction;
190
212
  }
191
- diffs = await this.resourceDataRepository.diff();
192
- const resourceDiffs = diffs.map((d) => new DiffMetadata(d, this.resourceActions.filter((a) => a.filter(d))));
213
+ // Generate resource diffs.
214
+ const newDiffs = await this.resourceDataRepository.diff();
215
+ const dirtyDiffs = await this.resourceDataRepository.diffDirty();
216
+ // new diffs = new - old | dirty diffs = new - actual
217
+ // Any new diff that is also not part of dirty diffs should be skipped, as the actual is already in desired state.
218
+ for (let i = newDiffs.length - 1; i >= 0; i--) {
219
+ const newDiff = newDiffs[i];
220
+ if (!dirtyDiffs.some((d) => d.node.getContext() === newDiff.node.getContext() &&
221
+ d.action === newDiff.action &&
222
+ d.field === newDiff.field &&
223
+ d.value === newDiff.value)) {
224
+ newDiffs.splice(i, 1);
225
+ }
226
+ }
227
+ // Ensure any new diffs are not operating on dirty resources.
228
+ this.resourceDataRepository.ensureDiffsNotOperatingOnDirtyResources(newDiffs);
229
+ // Skip processing dirty diffs that are already accounted for in new diffs.
230
+ for (let i = dirtyDiffs.length - 1; i >= 0; i--) {
231
+ const dirtyDiff = dirtyDiffs[i];
232
+ if (newDiffs.some((d) => d.node.getContext() === dirtyDiff.node.getContext() &&
233
+ d.action === dirtyDiff.action &&
234
+ d.field === dirtyDiff.field &&
235
+ d.value === dirtyDiff.value)) {
236
+ dirtyDiffs.splice(i, 1);
237
+ }
238
+ }
239
+ // Generate diff on resources.
240
+ const resourceDiffs = newDiffs.map((d) => new DiffMetadata(d, this.resourceActions.filter((a) => a.filter(d))));
241
+ // Set apply order on resource diffs.
193
242
  for (const diff of resourceDiffs) {
194
243
  this.setApplyOrder(diff, resourceDiffs);
195
244
  }
196
- if (options.yieldResourceDiffs) {
197
- yield [resourceDiffs];
245
+ // Generate diff on dirty resources.
246
+ const dirtyResourceDiffs = dirtyDiffs.map((d) => new DiffMetadata(d, this.resourceActions.filter((a) => a.filter(d))));
247
+ // Set apply order on dirty resource diffs.
248
+ for (const diff of dirtyResourceDiffs) {
249
+ this.setApplyOrder(diff, dirtyResourceDiffs);
250
+ }
251
+ if (yieldResourceDiffs) {
252
+ yield [resourceDiffs, dirtyResourceDiffs];
198
253
  }
254
+ // Apply resource diffs.
199
255
  const resourceTransaction = await this.applyResources(resourceDiffs, {
200
- enableResourceCapture: options.enableResourceCapture,
256
+ enableResourceCapture,
201
257
  });
202
- if (options.yieldResourceTransaction) {
203
- yield resourceTransaction;
258
+ // Apply dirty resource diffs.
259
+ const dirtyResourceTransaction = await this.applyResources(dirtyResourceDiffs, {
260
+ enableResourceCapture,
261
+ });
262
+ if (yieldResourceTransaction) {
263
+ yield [...resourceTransaction, ...dirtyResourceTransaction];
204
264
  }
205
265
  return modelTransaction;
206
266
  }
@@ -225,35 +285,6 @@ export class TransactionService {
225
285
  }
226
286
  }
227
287
  }
228
- async *rollbackTransaction(modelTransaction, options = {
229
- yieldResourceDiffs: false,
230
- yieldResourceTransaction: false,
231
- }) {
232
- for (let i = modelTransaction.length - 1; i >= 0; i--) {
233
- const diffsProcessedInSameLevel = modelTransaction[i];
234
- for (const diff of diffsProcessedInSameLevel) {
235
- for (const a of diff.actions) {
236
- const outputs = a.revert(diff.diff, diff.inputs, diff.outputs);
237
- for (const outputKey in outputs) {
238
- this.resourceDataRepository.add(outputs[outputKey]);
239
- }
240
- }
241
- }
242
- }
243
- const diffs = await this.resourceDataRepository.diff();
244
- const resourceDiffs = diffs.map((d) => new DiffMetadata(d, this.resourceActions.filter((a) => a.filter(d))));
245
- for (const diff of resourceDiffs) {
246
- this.setApplyOrder(diff, resourceDiffs);
247
- }
248
- if (options.yieldResourceDiffs) {
249
- yield [resourceDiffs];
250
- }
251
- const resourceTransaction = await this.applyResources(resourceDiffs);
252
- if (options.yieldResourceTransaction) {
253
- yield resourceTransaction;
254
- }
255
- return resourceTransaction;
256
- }
257
288
  }
258
289
  __decorate([
259
290
  EventSource(ModelActionRegistrationEvent),
@@ -274,7 +305,6 @@ __decorate([
274
305
  __metadata("design:returntype", void 0)
275
306
  ], TransactionService.prototype, "registerResourceActions", null);
276
307
  let TransactionServiceFactory = class TransactionServiceFactory {
277
- static instance;
278
308
  static async create(forceNew = false) {
279
309
  const [captureService, inputService, overlayDataRepository, resourceDataRepository] = await Promise.all([
280
310
  Container.get(CaptureService),
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.service.js","sourceRoot":"","sources":["../../../src/services/transaction/transaction.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.service.js","sourceRoot":"","sources":["../../../src/services/transaction/transaction.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Constructable, ValidationType } from '../../app.type.js';
2
+ export declare class ValidationService {
3
+ private static instance;
4
+ private readonly subjects;
5
+ addSubject<T>(type: ValidationType, constraint: any, target: Constructable<T>, propertyKey: string, value: any, destruct?: (value: any) => any[]): void;
6
+ static getInstance(): ValidationService;
7
+ removeSubject<T>(target: Constructable<T>, propertyKey: string): void;
8
+ validate(): {
9
+ pass: boolean;
10
+ errors: {
11
+ constraint: any;
12
+ type: ValidationType;
13
+ value: any;
14
+ }[];
15
+ };
16
+ }
17
+ export declare class ValidationServiceFactory {
18
+ static create(): Promise<ValidationService>;
19
+ }
@@ -0,0 +1,66 @@
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
+ import { ValidationType } from '../../app.type.js';
8
+ import { Factory } from '../../decorators/factory.decorator.js';
9
+ import { ValidationUtility } from '../../utilities/validation/validation.utility.js';
10
+ export class ValidationService {
11
+ constructor() {
12
+ this.subjects = [];
13
+ }
14
+ addSubject(type, constraint, target, propertyKey, value, destruct) {
15
+ this.subjects.push({ constraint, destruct, propertyKey, target, type, value });
16
+ }
17
+ static getInstance() {
18
+ if (!this.instance) {
19
+ this.instance = new ValidationService();
20
+ }
21
+ return this.instance;
22
+ }
23
+ removeSubject(target, propertyKey) {
24
+ for (let i = this.subjects.length - 1; i >= 0; i--) {
25
+ if ((this.subjects[i].target === target || this.subjects[i].target === target.prototype) &&
26
+ this.subjects[i].propertyKey === propertyKey) {
27
+ this.subjects.splice(i, 1);
28
+ }
29
+ }
30
+ }
31
+ validate() {
32
+ const result = { errors: [], pass: true };
33
+ for (const subject of this.subjects) {
34
+ const values = subject.destruct ? subject.destruct(subject.value) : [subject.value];
35
+ for (const value of values) {
36
+ let pass = true;
37
+ switch (subject.type) {
38
+ case ValidationType.REGEX:
39
+ pass = ValidationUtility.validateRegex(value, subject.constraint);
40
+ break;
41
+ case ValidationType.MIN_LENGTH:
42
+ pass = ValidationUtility.validateMinLength(value, subject.constraint);
43
+ break;
44
+ case ValidationType.MAX_LENGTH:
45
+ pass = ValidationUtility.validateMaxLength(value, subject.constraint);
46
+ break;
47
+ }
48
+ if (!pass) {
49
+ result.errors.push({ constraint: subject.constraint, type: subject.type, value });
50
+ }
51
+ }
52
+ }
53
+ result.pass = result.errors.length === 0;
54
+ return result;
55
+ }
56
+ }
57
+ let ValidationServiceFactory = class ValidationServiceFactory {
58
+ static async create() {
59
+ return ValidationService.getInstance();
60
+ }
61
+ };
62
+ ValidationServiceFactory = __decorate([
63
+ Factory(ValidationService)
64
+ ], ValidationServiceFactory);
65
+ export { ValidationServiceFactory };
66
+ //# sourceMappingURL=validation.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.service.js","sourceRoot":"","sources":["../../../src/services/validation/validation.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export class ObjectUtility {
2
+ // Source: https://stackoverflow.com/a/58496119/1834562
2
3
  static deepFreeze(object) {
3
4
  Object.freeze(object);
4
5
  Object.values(object)
@@ -1 +1 @@
1
- {"version":3,"file":"object.utility.js","sourceRoot":"","sources":["../../../src/utilities/object/object.utility.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IAExB,MAAM,CAAC,UAAU,CAAmB,MAAS;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"object.utility.js","sourceRoot":"","sources":["../../../src/utilities/object/object.utility.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAa;IACxB,uDAAuD;IACvD,MAAM,CAAC,UAAU,CAAmB,MAAS;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export declare class ValidationUtility {
2
+ static validateMaxLength(subject: string, maxLength: number): boolean;
3
+ static validateMinLength(subject: string, minLength: number): boolean;
4
+ static validateRegex(subject: string, pattern: RegExp): boolean;
5
+ }
@@ -0,0 +1,12 @@
1
+ export class ValidationUtility {
2
+ static validateMaxLength(subject, maxLength) {
3
+ return subject.length <= maxLength;
4
+ }
5
+ static validateMinLength(subject, minLength) {
6
+ return subject.length >= minLength;
7
+ }
8
+ static validateRegex(subject, pattern) {
9
+ return pattern.test(subject);
10
+ }
11
+ }
12
+ //# sourceMappingURL=validation.utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.utility.js","sourceRoot":"","sources":["../../../src/utilities/validation/validation.utility.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,SAAiB;QACzD,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,SAAiB;QACzD,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,OAAe,EAAE,OAAe;QACnD,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;CACF"}
package/package.json CHANGED
@@ -77,5 +77,5 @@
77
77
  },
78
78
  "type": "module",
79
79
  "types": "./dist/index.d.ts",
80
- "version": "0.0.20"
80
+ "version": "0.0.22"
81
81
  }
@@ -1,24 +0,0 @@
1
- import type { Constructable } from '../app.type.js';
2
- type Factory<T> = {
3
- create: (...args: unknown[]) => Promise<T>;
4
- };
5
- export declare class Container {
6
- private static FACTORY_TIMEOUT_IN_MS;
7
- private static readonly factories;
8
- static get<T>(type: Constructable<T> | string, options?: {
9
- args?: unknown[];
10
- metadata?: {
11
- [key: string]: string;
12
- };
13
- }): Promise<T>;
14
- static registerFactory<T>(type: Constructable<T> | string, factory: Factory<T>, options?: {
15
- metadata?: {
16
- [key: string]: string;
17
- };
18
- }): void;
19
- static reset(): void;
20
- static setDefault<T>(type: Constructable<T> | string, factory: Factory<T>): void;
21
- static setFactoryTimeout(timeoutInMs: number): void;
22
- static unRegisterFactory<T>(type: Constructable<T> | string): void;
23
- }
24
- export {};