@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
@@ -4,21 +4,45 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { ModelType } from '../app.type.js';
7
+ import { NodeType } from '../app.type.js';
8
8
  import { Factory } from '../decorators/factory.decorator.js';
9
9
  import { Diff, DiffAction } from '../functions/diff/diff.js';
10
10
  export class ResourceDataRepository {
11
- oldResources;
12
- newResources;
13
- constructor(oldResources = [], newResources = []) {
11
+ constructor(actualResources, oldResources, newResources) {
12
+ this.actualResources = actualResources;
14
13
  this.oldResources = oldResources;
15
14
  this.newResources = newResources;
16
- Object.freeze(this.oldResources);
15
+ this.dirtyResources = [];
16
+ for (const resource of oldResources) {
17
+ const actual = actualResources.find((r) => r.resourceId === resource.resourceId);
18
+ if (!resource.isDeepEquals(actual)) {
19
+ this.dirtyResources.push(resource);
20
+ }
21
+ }
22
+ for (const resource of actualResources) {
23
+ if (!oldResources.find((r) => r.resourceId === resource.resourceId)) {
24
+ this.dirtyResources.push(resource);
25
+ }
26
+ }
27
+ }
28
+ addActualResource(resource) {
29
+ if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
30
+ throw new Error('Adding non-resource node!');
31
+ }
32
+ // Insert or replace resources.
33
+ const rIndex = this.actualResources.findIndex((r) => r.resourceId === resource.resourceId);
34
+ if (rIndex === -1) {
35
+ this.actualResources.push(resource);
36
+ }
37
+ else {
38
+ this.actualResources[rIndex] = resource;
39
+ }
17
40
  }
18
- add(resource) {
19
- if (resource.MODEL_TYPE !== ModelType.RESOURCE && resource.MODEL_TYPE !== ModelType.SHARED_RESOURCE) {
20
- throw new Error('Adding non-resource model!');
41
+ addNewResource(resource) {
42
+ if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
43
+ throw new Error('Adding non-resource node!');
21
44
  }
45
+ // Insert or replace resources.
22
46
  const rIndex = this.newResources.findIndex((r) => r.resourceId === resource.resourceId);
23
47
  if (rIndex === -1) {
24
48
  this.newResources.push(resource);
@@ -26,11 +50,28 @@ export class ResourceDataRepository {
26
50
  else {
27
51
  this.newResources[rIndex] = resource;
28
52
  }
53
+ // Clone response from old.
54
+ const oIndex = this.oldResources.findIndex((r) => r.resourceId === resource.resourceId);
55
+ if (oIndex > -1) {
56
+ for (const key of Object.keys(this.oldResources[oIndex].response)) {
57
+ resource.response[key] = JSON.parse(JSON.stringify(this.oldResources[oIndex].response[key]));
58
+ }
59
+ }
29
60
  }
30
61
  async diff() {
31
62
  const oldResources = this.oldResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
32
63
  const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
33
64
  const diffs = [];
65
+ for (const oldResource of Object.values(oldResources)) {
66
+ if (oldResource.isMarkedDeleted()) {
67
+ delete oldResources[oldResource.resourceId];
68
+ }
69
+ }
70
+ for (const newResource of Object.values(newResources)) {
71
+ if (newResource.isMarkedDeleted()) {
72
+ delete newResources[newResource.resourceId];
73
+ }
74
+ }
34
75
  for (const oldResourceId of Object.keys(oldResources)) {
35
76
  if (!newResources[oldResourceId] || newResources[oldResourceId].isMarkedDeleted()) {
36
77
  diffs.push(new Diff(oldResources[oldResourceId], DiffAction.DELETE, 'resourceId', oldResourceId));
@@ -45,29 +86,92 @@ export class ResourceDataRepository {
45
86
  continue;
46
87
  }
47
88
  const newResource = newResources[newResourceId];
48
- if (newResource.MODEL_TYPE === 'shared-resource') {
89
+ // A shared resource is being added, but shared resources don't have diffs.
90
+ if (newResource.NODE_TYPE === 'shared-resource') {
91
+ continue;
92
+ }
93
+ const sharedResource = newResource.getSharedResource();
94
+ if (sharedResource !== undefined) {
95
+ // If a new resource is being added, and it has a shared resource,
96
+ // we expect the resource to override diff() and diff against the shared resource.
97
+ // The custom diff() would decide diff actions.
98
+ const rDiff = await newResource.diff(sharedResource);
99
+ diffs.push(...rDiff);
100
+ }
101
+ else {
102
+ // The resource is a normal resource, and just needs to be added.
103
+ diffs.push(new Diff(newResource, DiffAction.ADD, 'resourceId', newResource.resourceId));
104
+ }
105
+ }
106
+ return diffs;
107
+ }
108
+ async diffDirty() {
109
+ const actualResources = this.actualResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
110
+ const newResources = this.newResources.reduce((accumulator, current) => ({ ...accumulator, [current.resourceId]: current }), {});
111
+ const diffs = [];
112
+ for (const actualResource of Object.values(actualResources)) {
113
+ if (actualResource.isMarkedDeleted()) {
114
+ delete actualResources[actualResource.resourceId];
115
+ }
116
+ }
117
+ for (const newResource of Object.values(newResources)) {
118
+ if (newResource.isMarkedDeleted()) {
119
+ delete newResources[newResource.resourceId];
120
+ }
121
+ }
122
+ for (const actualResourceId of Object.keys(actualResources)) {
123
+ if (!newResources[actualResourceId] || newResources[actualResourceId].isMarkedDeleted()) {
124
+ diffs.push(new Diff(actualResources[actualResourceId], DiffAction.DELETE, 'resourceId', actualResourceId));
125
+ }
126
+ else {
127
+ const rDiff = await newResources[actualResourceId].diff(actualResources[actualResourceId]);
128
+ diffs.push(...rDiff);
129
+ }
130
+ }
131
+ for (const newResourceId of Object.keys(newResources)) {
132
+ if (actualResources[newResourceId]) {
133
+ continue;
134
+ }
135
+ const newResource = newResources[newResourceId];
136
+ // A shared resource is being added, but shared resources don't have diffs.
137
+ if (newResource.NODE_TYPE === 'shared-resource') {
49
138
  continue;
50
139
  }
51
140
  const sharedResource = newResource.getSharedResource();
52
141
  if (sharedResource !== undefined) {
142
+ // If a new resource is being added, and it has a shared resource,
143
+ // we expect the resource to override diff() and diff against the shared resource.
144
+ // The custom diff() would decide diff actions.
53
145
  const rDiff = await newResource.diff(sharedResource);
54
146
  diffs.push(...rDiff);
55
147
  }
56
148
  else {
149
+ // The resource is a normal resource, and just needs to be added.
57
150
  diffs.push(new Diff(newResource, DiffAction.ADD, 'resourceId', newResource.resourceId));
58
151
  }
59
152
  }
60
153
  return diffs;
61
154
  }
62
- getById(resourceId) {
155
+ ensureDiffsNotOperatingOnDirtyResources(diffs) {
156
+ if (diffs.some((d) => this.dirtyResources.some((dr) => d.node.hasAncestor(dr)))) {
157
+ throw new Error('Cannot operate diff on dirty resources!');
158
+ }
159
+ }
160
+ getActualResourceById(resourceId) {
161
+ return this.actualResources.find((r) => r.resourceId === resourceId);
162
+ }
163
+ getNewResourceById(resourceId) {
63
164
  return this.newResources.find((r) => r.resourceId === resourceId);
64
165
  }
65
- getByProperties(filters = []) {
166
+ getActualResourcesByProperties(filters = []) {
167
+ return this.actualResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
168
+ }
169
+ getNewResourcesByProperties(filters = []) {
66
170
  return this.newResources.filter((r) => filters.every((c) => r.properties[c.key] === c.value));
67
171
  }
68
- remove(resource) {
69
- if (resource.MODEL_TYPE !== ModelType.RESOURCE && resource.MODEL_TYPE !== ModelType.SHARED_RESOURCE) {
70
- throw new Error('Removing non-resource model!');
172
+ removeNewResource(resource) {
173
+ if (resource.NODE_TYPE !== NodeType.RESOURCE && resource.NODE_TYPE !== NodeType.SHARED_RESOURCE) {
174
+ throw new Error('Removing non-resource node!');
71
175
  }
72
176
  if (!resource.isMarkedDeleted()) {
73
177
  resource.remove();
@@ -79,13 +183,12 @@ export class ResourceDataRepository {
79
183
  }
80
184
  }
81
185
  let ResourceDataRepositoryFactory = class ResourceDataRepositoryFactory {
82
- static instance;
83
- static async create(forceNew, oldResources, newResources) {
186
+ static async create(forceNew = false, actualResources = [], oldResources = [], newResources = []) {
84
187
  if (!this.instance) {
85
- this.instance = new ResourceDataRepository(oldResources, newResources);
188
+ this.instance = new ResourceDataRepository(actualResources, oldResources, newResources);
86
189
  }
87
190
  if (forceNew) {
88
- const newInstance = new ResourceDataRepository(oldResources, newResources);
191
+ const newInstance = new ResourceDataRepository(actualResources, oldResources, newResources);
89
192
  Object.keys(this.instance).forEach((key) => (this.instance[key] = newInstance[key]));
90
193
  }
91
194
  return this.instance;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-data.repository.js","sourceRoot":"","sources":["../../src/resources/resource-data.repository.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,41 @@
1
- import { ModelType, type UnknownResource } from '../app.type.js';
1
+ import { NodeType, type UnknownResource } from '../app.type.js';
2
2
  import { type Dependency } from '../functions/dependency/dependency.js';
3
3
  import { Diff } from '../functions/diff/diff.js';
4
- import { AModel } from '../models/model.abstract.js';
4
+ import { ANode } from '../functions/node/node.abstract.js';
5
5
  import type { IResource } from './resource.interface.js';
6
6
  import type { ASharedResource } from './shared-resource.abstract.js';
7
- export declare abstract class AResource<T> extends AModel<IResource, T> {
7
+ export declare abstract class AResource<T> extends ANode<IResource, T> {
8
8
  readonly resourceId: IResource['resourceId'];
9
9
  readonly properties: IResource['properties'];
10
- abstract readonly MODEL_NAME: string;
11
- readonly MODEL_TYPE: ModelType;
10
+ abstract readonly NODE_NAME: string;
11
+ readonly NODE_TYPE: NodeType;
12
+ private _deleteMarker;
12
13
  readonly response: IResource['response'];
13
14
  protected constructor(resourceId: IResource['resourceId'], properties: IResource['properties'], parents: UnknownResource[]);
14
- addAnchor(): void;
15
15
  addRelationship(): {
16
16
  thatToThisDependency: Dependency;
17
17
  thisToThatDependency: Dependency;
18
18
  };
19
+ static cloneResource<T extends AResource<T>>(sourceResource: T, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<T>;
20
+ cloneResourceInPlace(sourceResource: UnknownResource, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<void>;
19
21
  diff(previous: T | ASharedResource<T>): Promise<Diff[]>;
22
+ diffInverse(diff: Diff, deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<void>;
20
23
  diffProperties(previous: T | ASharedResource<T>): Promise<Diff[]>;
21
24
  getSharedResource(): ASharedResource<T> | undefined;
25
+ isDeepEquals(other?: UnknownResource): boolean;
26
+ /**
27
+ * To check if self is marked as deleted.
28
+ * A deleted node will be removed from the graph after the transaction.
29
+ */
30
+ isMarkedDeleted(): boolean;
31
+ /**
32
+ * To mark self as deleted.
33
+ * A deleted node will be removed from the graph after the transaction.
34
+ * - A node cannot be deleted if it has dependencies.
35
+ *
36
+ * @throws {@link Error} If node contains dependencies to other nodes.
37
+ */
38
+ remove(): void;
22
39
  setContext(): string;
23
40
  synth(): IResource;
24
41
  static unSynth(deserializationClass: any, resource: IResource, parentResourceIds: string[], deReferenceResource: (resourceId: string) => Promise<UnknownResource>): Promise<UnknownResource>;
@@ -1,30 +1,74 @@
1
- import { ModelType } from '../app.type.js';
1
+ import { NodeType } from '../app.type.js';
2
+ import { DependencyRelationship } from '../functions/dependency/dependency.js';
2
3
  import { Diff, DiffAction } from '../functions/diff/diff.js';
3
4
  import { DiffUtility } from '../functions/diff/diff.utility.js';
4
- import { AModel } from '../models/model.abstract.js';
5
- export class AResource extends AModel {
6
- resourceId;
7
- properties;
8
- MODEL_TYPE = ModelType.RESOURCE;
9
- response = {};
5
+ import { ANode } from '../functions/node/node.abstract.js';
6
+ export class AResource extends ANode {
10
7
  constructor(resourceId, properties, parents) {
11
8
  super();
12
9
  this.resourceId = resourceId;
13
10
  this.properties = properties;
11
+ this.NODE_TYPE = NodeType.RESOURCE;
12
+ this._deleteMarker = false;
13
+ this.response = {};
14
14
  for (const parent of parents) {
15
15
  parent.addChild('resourceId', this, 'resourceId');
16
16
  }
17
17
  }
18
- addAnchor() {
19
- throw new Error('Anchors are not supported in resources!');
20
- }
21
18
  addRelationship() {
22
19
  throw new Error('Relationships are not supported in resources!');
23
20
  }
21
+ static async cloneResource(sourceResource, deReferenceResource) {
22
+ const resource = {
23
+ properties: JSON.parse(JSON.stringify(sourceResource.properties)),
24
+ resourceId: sourceResource.resourceId,
25
+ response: JSON.parse(JSON.stringify(sourceResource.response)),
26
+ };
27
+ const parentResourceIds = await Promise.all(Object.values(sourceResource.getParents())
28
+ .flat()
29
+ .map((d) => d.to.resourceId));
30
+ const deserializationClass = sourceResource.constructor;
31
+ return deserializationClass.unSynth(deserializationClass, resource, parentResourceIds, deReferenceResource);
32
+ }
33
+ async cloneResourceInPlace(sourceResource, deReferenceResource) {
34
+ // Remove all dependencies from self.
35
+ const selfParents = Object.values(this.getParents())
36
+ .flat()
37
+ .map((d) => d.to);
38
+ for (const parent of selfParents) {
39
+ this.removeRelationship(parent);
40
+ }
41
+ // From source resource, get all dependencies from source to its parents.
42
+ const sourceChildToParentDependencies = Object.values(sourceResource.getParents()).flat();
43
+ // Clone each of those dependencies.
44
+ for (const sourceChildToParentDependency of sourceChildToParentDependencies) {
45
+ const parent = await deReferenceResource(sourceChildToParentDependency.to.resourceId);
46
+ const { childToParentDependency, parentToChildDependency } = parent.addChild('resourceId', this, 'resourceId');
47
+ // Clone behaviors from source to its parent.
48
+ for (const b of sourceChildToParentDependency.synth().behaviors) {
49
+ childToParentDependency.addBehavior(b.onField, b.onAction, b.toField, b.forAction);
50
+ }
51
+ // Clone behaviors from parent to source.
52
+ const sourceParentToChildDependency = sourceChildToParentDependency.to.getDependency(sourceChildToParentDependency.from, DependencyRelationship.PARENT);
53
+ for (const b of sourceParentToChildDependency.synth().behaviors) {
54
+ parentToChildDependency.addBehavior(b.onField, b.onAction, b.toField, b.forAction);
55
+ }
56
+ }
57
+ // Clone properties.
58
+ for (const key of Object.keys(sourceResource.properties)) {
59
+ this.properties[key] = JSON.parse(JSON.stringify(sourceResource.properties[key]));
60
+ }
61
+ // Clone responses.
62
+ for (const key of Object.keys(sourceResource.response)) {
63
+ this.response[key] = JSON.parse(JSON.stringify(sourceResource.response[key]));
64
+ }
65
+ }
66
+ // @ts-expect-error since this overridden diff() is always called with previous.
24
67
  async diff(previous) {
25
68
  const diffs = [];
26
69
  const propertyDiffs = await this.diffProperties(previous);
27
70
  diffs.push(...propertyDiffs);
71
+ // Parent diffs.
28
72
  const previousParents = Object.values(previous.getParents())
29
73
  .flat()
30
74
  .map((d) => d.to);
@@ -41,16 +85,106 @@ export class AResource extends AModel {
41
85
  }
42
86
  return diffs;
43
87
  }
88
+ async diffInverse(diff, deReferenceResource) {
89
+ switch (diff.field) {
90
+ case 'resourceId': {
91
+ if (diff.action === DiffAction.DELETE) {
92
+ this.remove();
93
+ }
94
+ else {
95
+ throw new Error('Unknown action on "resourceId" field during diff inverse!');
96
+ }
97
+ return;
98
+ }
99
+ case 'parent': {
100
+ if (diff.action === DiffAction.ADD || diff.action === DiffAction.DELETE) {
101
+ await this.cloneResourceInPlace(diff.node, deReferenceResource);
102
+ }
103
+ else {
104
+ throw new Error('Unknown action on "parent" field during diff inverse!');
105
+ }
106
+ return;
107
+ }
108
+ case 'properties': {
109
+ if (diff.action === DiffAction.ADD || diff.action === DiffAction.UPDATE) {
110
+ const change = diff.value;
111
+ this.properties[change.key] = JSON.parse(JSON.stringify(change.value));
112
+ }
113
+ else if (diff.action === DiffAction.DELETE) {
114
+ delete this.properties[diff.field];
115
+ }
116
+ else {
117
+ throw new Error('Unknown action on "properties" field during diff inverse!');
118
+ }
119
+ for (const key of Object.keys(diff.node.response)) {
120
+ this.response[key] = JSON.parse(JSON.stringify(diff.node.response[key]));
121
+ }
122
+ return;
123
+ }
124
+ default: {
125
+ throw new Error('Unknown field during diff inverse!');
126
+ }
127
+ }
128
+ }
44
129
  async diffProperties(previous) {
45
130
  return DiffUtility.diffObject(previous, this, 'properties');
46
131
  }
47
132
  getSharedResource() {
48
- const sameModelDependencies = this.getChildren(this.MODEL_NAME)[this.MODEL_NAME];
49
- const sharedResourceDependency = sameModelDependencies?.find((d) => d.to.MODEL_TYPE === ModelType.SHARED_RESOURCE);
133
+ const sameNodeDependencies = this.getChildren(this.NODE_NAME)[this.NODE_NAME];
134
+ const sharedResourceDependency = sameNodeDependencies?.find((d) => d.to.NODE_TYPE === NodeType.SHARED_RESOURCE);
50
135
  return sharedResourceDependency?.to;
51
136
  }
137
+ isDeepEquals(other) {
138
+ if (!other) {
139
+ return false;
140
+ }
141
+ if (!DiffUtility.isObjectDeepEquals(this.synth(), other.synth())) {
142
+ return false;
143
+ }
144
+ if (this.isMarkedDeleted() !== other.isMarkedDeleted()) {
145
+ return false;
146
+ }
147
+ const selfDependencies = Object.values(this.getParents()).flat();
148
+ const otherDependencies = Object.values(other.getParents()).flat();
149
+ return selfDependencies.every((sd) => {
150
+ const od = otherDependencies.find((od) => od.isEqual(sd));
151
+ if (!DiffUtility.isObjectDeepEquals(sd.synth(), od?.synth() || {})) {
152
+ return false;
153
+ }
154
+ const sdPd = sd.to.getDependency(sd.from, DependencyRelationship.PARENT);
155
+ const odPd = od.to.getDependency(od.from, DependencyRelationship.PARENT);
156
+ return DiffUtility.isObjectDeepEquals(sdPd.synth(), odPd.synth());
157
+ });
158
+ }
159
+ /**
160
+ * To check if self is marked as deleted.
161
+ * A deleted node will be removed from the graph after the transaction.
162
+ */
163
+ isMarkedDeleted() {
164
+ return this._deleteMarker;
165
+ }
166
+ /**
167
+ * To mark self as deleted.
168
+ * A deleted node will be removed from the graph after the transaction.
169
+ * - A node cannot be deleted if it has dependencies.
170
+ *
171
+ * @throws {@link Error} If node contains dependencies to other nodes.
172
+ */
173
+ remove() {
174
+ const dependencies = this.getDependencies();
175
+ // Verify resource can be removed.
176
+ if (dependencies.some((d) => d.isParentRelationship())) {
177
+ throw new Error('Cannot remove resource until dependent nodes exist!');
178
+ }
179
+ // Removing all dependencies that points to this.
180
+ for (const dependency of dependencies) {
181
+ const index = dependency.to.getDependencies().findIndex((d) => d.to.getContext() === this.getContext());
182
+ dependency.to.removeDependency(index);
183
+ }
184
+ this._deleteMarker = true;
185
+ }
52
186
  setContext() {
53
- return `${this.MODEL_NAME}=${this.resourceId}`;
187
+ return `${this.NODE_NAME}=${this.resourceId}`;
54
188
  }
55
189
  synth() {
56
190
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"resource.abstract.js","sourceRoot":"","sources":["../../src/resources/resource.abstract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource.abstract.js","sourceRoot":"","sources":["../../src/resources/resource.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAmB,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAI3D,MAAM,OAAgB,SAAa,SAAQ,KAAmB;IAQ5D,YACW,UAAmC,EACnC,UAAmC,EAC5C,OAA0B;QAE1B,KAAK,EAAE,CAAC;QAJC,eAAU,GAAV,UAAU,CAAyB;QACnC,eAAU,GAAV,UAAU,CAAyB;QAR5B,cAAS,GAAa,QAAQ,CAAC,QAAQ,CAAC;QAElD,kBAAa,GAAG,KAAK,CAAC;QAErB,aAAQ,GAA0B,EAAE,CAAC;QAS5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEQ,eAAe;QACtB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,cAAiB,EACjB,mBAAqE;QAErE,MAAM,QAAQ,GAAc;YAC1B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACjE,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAC9D,CAAC;QAEF,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CACzC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;aACvC,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAC,CAAC,EAAsB,CAAC,UAAU,CAAC,CACpD,CAAC;QAEF,MAAM,oBAAoB,GAAG,cAAc,CAAC,WAAkB,CAAC;QAC/D,OAAO,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,cAA+B,EAC/B,mBAAqE;QAErE,qCAAqC;QACrC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;aACjD,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAqB,CAAC,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,yEAAyE;QACzE,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1F,oCAAoC;QACpC,KAAK,MAAM,6BAA6B,IAAI,+BAA+B,EAAE,CAAC;YAC5E,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAE,6BAA6B,CAAC,EAAsB,CAAC,UAAU,CAAC,CAAC;YAC3G,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YAE/G,6CAA6C;YAC7C,KAAK,MAAM,CAAC,IAAI,6BAA6B,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;gBAChE,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,CAAC;YAED,yCAAyC;YACzC,MAAM,6BAA6B,GAAG,6BAA6B,CAAC,EAAE,CAAC,aAAa,CAClF,6BAA6B,CAAC,IAAI,EAClC,sBAAsB,CAAC,MAAM,CAC7B,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,6BAA6B,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,CAAC;gBAChE,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,mBAAmB;QACnB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,gFAAgF;IACvE,KAAK,CAAC,IAAI,CAAC,QAAgC;QAClD,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAE7B,gBAAgB;QAChB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAE,QAAuC,CAAC,UAAU,EAAE,CAAC;aACzF,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;aACpD,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CACjF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAClF,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAU,EAAE,mBAAqE;QACjG,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBACxE,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAuB,EAAE,mBAAmB,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO;YACT,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBACxE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAoC,CAAC;oBACzD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACzE,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;oBAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;gBAC/E,CAAC;gBAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,IAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,IAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChG,CAAC;gBACD,OAAO;YACT,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,QAAgC;QAC5D,OAAO,WAAW,CAAC,UAAU,CAAC,QAAsC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IAC5F,CAAC;IAED,iBAAiB;QACf,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,wBAAwB,GAAG,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC;QAChH,OAAO,wBAAwB,EAAE,EAAwB,CAAC;IAC5D,CAAC;IAED,YAAY,CAAC,KAAuB;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,KAAK,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACnE,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAE,CAAC;YAC1E,MAAM,IAAI,GAAG,EAAG,CAAC,EAAE,CAAC,aAAa,CAAC,EAAG,CAAC,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAE,CAAC;YAC5E,OAAO,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,MAAM;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,kCAAkC;QAClC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,iDAAiD;QACjD,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACxG,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEQ,UAAU;QACjB,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAChD,CAAC;IAEQ,KAAK;QACZ,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,oBAAyB,EACzB,QAAmB,EACnB,iBAA2B,EAC3B,mBAAqE;QAErE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChG,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjD,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
- import { ModelType } from '../app.type.js';
1
+ import { NodeType } from '../app.type.js';
2
2
  import type { Diff } from '../functions/diff/diff.js';
3
3
  import { AResource } from './resource.abstract.js';
4
4
  export declare abstract class ASharedResource<T> extends AResource<T> {
5
- readonly MODEL_TYPE: ModelType;
5
+ readonly NODE_TYPE: NodeType;
6
6
  diff(): Promise<Diff[]>;
7
7
  findParentsByProperty(filters: {
8
8
  key: keyof AResource<T>['properties'];
@@ -1,7 +1,10 @@
1
- import { ModelType } from '../app.type.js';
1
+ import { NodeType } from '../app.type.js';
2
2
  import { AResource } from './resource.abstract.js';
3
3
  export class ASharedResource extends AResource {
4
- MODEL_TYPE = ModelType.SHARED_RESOURCE;
4
+ constructor() {
5
+ super(...arguments);
6
+ this.NODE_TYPE = NodeType.SHARED_RESOURCE;
7
+ }
5
8
  async diff() {
6
9
  return [];
7
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shared-resource.abstract.js","sourceRoot":"","sources":["../../src/resources/shared-resource.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,OAAgB,eAAmB,SAAQ,SAAY;IACzC,UAAU,GAAc,SAAS,CAAC,eAAe,CAAC;IAE3D,KAAK,CAAC,IAAI;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,qBAAqB,CAAC,OAAgE;QACpF,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAkB,CAAC;YACtC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,iBAAiB;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,sBAA0C;QAC9C,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvF,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,CAAC;YACpD,IAAI,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,yCAAyC,GAAG,oBAAoB;aACnE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtB,KAAK,MAAM,MAAM,IAAI,yCAAyC,EAAE,CAAC;YAC/D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"shared-resource.abstract.js","sourceRoot":"","sources":["../../src/resources/shared-resource.abstract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,OAAgB,eAAmB,SAAQ,SAAY;IAA7D;;QACoB,cAAS,GAAa,QAAQ,CAAC,eAAe,CAAC;IA+CnE,CAAC;IA7CU,KAAK,CAAC,IAAI;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,qBAAqB,CAAC,OAAgE;QACpF,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAkB,CAAC;YACtC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,iBAAiB;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,sBAA0C;QAC9C,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvF,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,UAAU,EAAE,CAAC;YACpD,IAAI,sBAAsB,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;YAClD,IAAI,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,MAAM,yCAAyC,GAAG,oBAAoB;aACnE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;aACjE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtB,KAAK,MAAM,MAAM,IAAI,yCAAyC,EAAE,CAAC;YAC/D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -2,10 +2,9 @@ import { AResource } from '../../resources/resource.abstract.js';
2
2
  export declare class CaptureService {
3
3
  private readonly captures;
4
4
  getCapture<T extends AResource<T>>(resourceId: string): {
5
- properties: Partial<T['properties']>;
6
5
  response: Partial<T['response']>;
7
6
  } | undefined;
8
- registerCapture<T extends AResource<T>>(resourceId: T['resourceId'], properties: Partial<T['properties']>, response: Partial<T['response']>): void;
7
+ registerCapture<T extends AResource<T>>(resourceId: T['resourceId'], response: Partial<T['response']>): void;
9
8
  }
10
9
  export declare class CaptureServiceFactory {
11
10
  private static instance;
@@ -6,16 +6,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Factory } from '../../decorators/factory.decorator.js';
8
8
  export class CaptureService {
9
- captures = {};
9
+ constructor() {
10
+ this.captures = {};
11
+ }
10
12
  getCapture(resourceId) {
11
13
  return this.captures[resourceId];
12
14
  }
13
- registerCapture(resourceId, properties, response) {
14
- this.captures[resourceId] = { properties, response };
15
+ registerCapture(resourceId, response) {
16
+ this.captures[resourceId] = { response };
15
17
  }
16
18
  }
17
19
  let CaptureServiceFactory = class CaptureServiceFactory {
18
- static instance;
19
20
  static async create() {
20
21
  if (!this.instance) {
21
22
  this.instance = new CaptureService();
@@ -1 +1 @@
1
- {"version":3,"file":"capture.service.js","sourceRoot":"","sources":["../../../src/services/capture/capture.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAIhE,MAAM,OAAO,cAAc;IACR,QAAQ,GAErB,EAAE,CAAC;IAEP,UAAU,CACR,UAAkB;QAElB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,eAAe,CACb,UAA2B,EAC3B,UAAoC,EACpC,QAAgC;QAEhC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvD,CAAC;CACF;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACxB,MAAM,CAAC,QAAQ,CAAiB;IAExC,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AATY,qBAAqB;IADjC,OAAO,CAAiB,cAAc,CAAC;GAC3B,qBAAqB,CASjC"}
1
+ {"version":3,"file":"capture.service.js","sourceRoot":"","sources":["../../../src/services/capture/capture.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAIhE,MAAM,OAAO,cAAc;IAA3B;QACmB,aAAQ,GAErB,EAAE,CAAC;IAST,CAAC;IAPC,UAAU,CAAyB,UAAkB;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,eAAe,CAAyB,UAA2B,EAAE,QAAgC;QACnG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;CACF;AAGM,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAGhC,MAAM,CAAC,KAAK,CAAC,MAAM;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF,CAAA;AATY,qBAAqB;IADjC,OAAO,CAAiB,cAAc,CAAC;GAC3B,qBAAqB,CASjC"}
@@ -5,16 +5,16 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { EventEmitter } from 'events';
8
- import { Container } from '../../decorators/container.js';
8
+ import { Container } from '../../functions/container/container.js';
9
9
  import { Factory } from '../../decorators/factory.decorator.js';
10
10
  export class EventService {
11
- EVENT_BUFFER_SIZE = 50;
12
- emitter = new EventEmitter();
13
- eventBuffer = {};
14
- static instance;
15
- listeners = {};
16
11
  constructor() {
12
+ this.EVENT_BUFFER_SIZE = 50;
13
+ this.emitter = new EventEmitter();
14
+ this.eventBuffer = {};
15
+ this.listeners = {};
17
16
  this.emitter.on('*', (event) => {
17
+ // Save event to EventBuffer.
18
18
  if (!this.eventBuffer[event.constructor.name]) {
19
19
  this.eventBuffer[event.constructor.name] = { eventClass: Object.getPrototypeOf(event).constructor, events: [] };
20
20
  }
@@ -22,6 +22,7 @@ export class EventService {
22
22
  this.eventBuffer[event.constructor.name].events.shift();
23
23
  }
24
24
  this.eventBuffer[event.constructor.name].events.push(event);
25
+ // Forward event to matching listeners.
25
26
  this.forwardEvent(event);
26
27
  });
27
28
  }
@@ -58,12 +59,14 @@ export class EventService {
58
59
  if (!this.listeners[eventClass.name]) {
59
60
  this.listeners[eventClass.name] = { eventClass, eventListeners: [] };
60
61
  }
62
+ // Register this listener.
61
63
  const originalMethod = descriptor.value;
62
64
  descriptor.value = async function (...args) {
63
65
  const listener = await Container.get(target.constructor.name);
64
66
  return await originalMethod.apply(listener, args);
65
67
  };
66
68
  this.listeners[eventClass.name].eventListeners.push(descriptor.value);
69
+ // Replay all previous events that were emitted before this listener was registered.
67
70
  const currentTimestamp = Date.now();
68
71
  for (const previousEventClassName of Object.keys(this.eventBuffer)) {
69
72
  const previousEventClass = this.eventBuffer[previousEventClassName].eventClass;