@quadnix/octo 0.0.1 → 0.0.2

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 (258) hide show
  1. package/.eslintrc.cjs +26 -0
  2. package/dist/app.type.d.ts +70 -0
  3. package/dist/app.type.js +8 -0
  4. package/dist/app.type.js.map +1 -0
  5. package/dist/decorators/action.decorator.d.ts +2 -0
  6. package/dist/decorators/action.decorator.js +25 -0
  7. package/dist/decorators/action.decorator.js.map +1 -0
  8. package/dist/decorators/anchor.decorator.d.ts +1 -0
  9. package/dist/decorators/anchor.decorator.js +10 -0
  10. package/dist/decorators/anchor.decorator.js.map +1 -0
  11. package/dist/decorators/container.d.ts +23 -0
  12. package/dist/decorators/container.js +93 -0
  13. package/dist/decorators/container.js.map +1 -0
  14. package/dist/decorators/factory.decorator.d.ts +8 -0
  15. package/dist/decorators/factory.decorator.js +7 -0
  16. package/dist/decorators/factory.decorator.js.map +1 -0
  17. package/dist/decorators/model.decorator.d.ts +1 -0
  18. package/dist/decorators/model.decorator.js +10 -0
  19. package/dist/decorators/model.decorator.js.map +1 -0
  20. package/dist/decorators/module.decorator.d.ts +1 -0
  21. package/dist/decorators/module.decorator.js +12 -0
  22. package/dist/decorators/module.decorator.js.map +1 -0
  23. package/dist/decorators/overlay.decorator.d.ts +1 -0
  24. package/dist/decorators/overlay.decorator.js +10 -0
  25. package/dist/decorators/overlay.decorator.js.map +1 -0
  26. package/dist/decorators/resource.decorator.d.ts +1 -0
  27. package/dist/decorators/resource.decorator.js +10 -0
  28. package/dist/decorators/resource.decorator.js.map +1 -0
  29. package/dist/decorators/test-container.d.ts +16 -0
  30. package/dist/decorators/test-container.js +37 -0
  31. package/dist/decorators/test-container.js.map +1 -0
  32. package/dist/functions/dependency/dependency.model.d.ts +53 -0
  33. package/dist/functions/dependency/dependency.model.js +125 -0
  34. package/dist/functions/dependency/dependency.model.js.map +1 -0
  35. package/dist/functions/diff/diff-metadata.model.d.ts +20 -0
  36. package/dist/functions/diff/diff-metadata.model.js +39 -0
  37. package/dist/functions/diff/diff-metadata.model.js.map +1 -0
  38. package/dist/functions/diff/diff.model.d.ts +15 -0
  39. package/dist/functions/diff/diff.model.js +27 -0
  40. package/dist/functions/diff/diff.model.js.map +1 -0
  41. package/dist/functions/diff/diff.utility.d.ts +10 -0
  42. package/dist/functions/diff/diff.utility.js +99 -0
  43. package/dist/functions/diff/diff.utility.js.map +1 -0
  44. package/dist/functions/module/module.abstract.d.ts +12 -0
  45. package/dist/functions/module/module.abstract.js +39 -0
  46. package/dist/functions/module/module.abstract.js.map +1 -0
  47. package/dist/functions/module/module.interface.d.ts +4 -0
  48. package/dist/functions/module/module.interface.js +2 -0
  49. package/dist/functions/module/module.interface.js.map +1 -0
  50. package/dist/index.d.ts +53 -0
  51. package/dist/index.js +36 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/models/action.interface.d.ts +9 -0
  54. package/dist/models/action.interface.js +2 -0
  55. package/dist/models/action.interface.js.map +1 -0
  56. package/dist/models/app/app.interface.d.ts +4 -0
  57. package/dist/models/app/app.interface.js +2 -0
  58. package/dist/models/app/app.interface.js.map +1 -0
  59. package/dist/models/app/app.model.d.ts +23 -0
  60. package/dist/models/app/app.model.js +97 -0
  61. package/dist/models/app/app.model.js.map +1 -0
  62. package/dist/models/deployment/deployment.interface.d.ts +4 -0
  63. package/dist/models/deployment/deployment.interface.js +2 -0
  64. package/dist/models/deployment/deployment.interface.js.map +1 -0
  65. package/dist/models/deployment/deployment.model.d.ts +11 -0
  66. package/dist/models/deployment/deployment.model.js +39 -0
  67. package/dist/models/deployment/deployment.model.js.map +1 -0
  68. package/dist/models/environment/environment.interface.d.ts +7 -0
  69. package/dist/models/environment/environment.interface.js +2 -0
  70. package/dist/models/environment/environment.interface.js.map +1 -0
  71. package/dist/models/environment/environment.model.d.ts +14 -0
  72. package/dist/models/environment/environment.model.js +49 -0
  73. package/dist/models/environment/environment.model.js.map +1 -0
  74. package/dist/models/execution/execution.interface.d.ts +9 -0
  75. package/dist/models/execution/execution.interface.js +2 -0
  76. package/dist/models/execution/execution.interface.js.map +1 -0
  77. package/dist/models/execution/execution.model.d.ts +18 -0
  78. package/dist/models/execution/execution.model.js +70 -0
  79. package/dist/models/execution/execution.model.js.map +1 -0
  80. package/dist/models/image/image.interface.d.ts +7 -0
  81. package/dist/models/image/image.interface.js +2 -0
  82. package/dist/models/image/image.interface.js.map +1 -0
  83. package/dist/models/image/image.model.d.ts +21 -0
  84. package/dist/models/image/image.model.js +56 -0
  85. package/dist/models/image/image.model.js.map +1 -0
  86. package/dist/models/model.abstract.d.ts +34 -0
  87. package/dist/models/model.abstract.js +245 -0
  88. package/dist/models/model.abstract.js.map +1 -0
  89. package/dist/models/model.interface.d.ts +12 -0
  90. package/dist/models/model.interface.js +2 -0
  91. package/dist/models/model.interface.js.map +1 -0
  92. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  93. package/dist/models/pipeline/pipeline.interface.js +2 -0
  94. package/dist/models/pipeline/pipeline.interface.js.map +1 -0
  95. package/dist/models/pipeline/pipeline.model.d.ts +14 -0
  96. package/dist/models/pipeline/pipeline.model.js +47 -0
  97. package/dist/models/pipeline/pipeline.model.js.map +1 -0
  98. package/dist/models/region/region.interface.d.ts +4 -0
  99. package/dist/models/region/region.interface.js +2 -0
  100. package/dist/models/region/region.interface.js.map +1 -0
  101. package/dist/models/region/region.model.d.ts +13 -0
  102. package/dist/models/region/region.model.js +49 -0
  103. package/dist/models/region/region.model.js.map +1 -0
  104. package/dist/models/server/server.interface.d.ts +6 -0
  105. package/dist/models/server/server.interface.js +2 -0
  106. package/dist/models/server/server.interface.js.map +1 -0
  107. package/dist/models/server/server.model.d.ts +15 -0
  108. package/dist/models/server/server.model.js +55 -0
  109. package/dist/models/server/server.model.js.map +1 -0
  110. package/dist/models/service/service.interface.d.ts +4 -0
  111. package/dist/models/service/service.interface.js +2 -0
  112. package/dist/models/service/service.interface.js.map +1 -0
  113. package/dist/models/service/service.model.d.ts +9 -0
  114. package/dist/models/service/service.model.js +33 -0
  115. package/dist/models/service/service.model.js.map +1 -0
  116. package/dist/models/support/support.interface.d.ts +5 -0
  117. package/dist/models/support/support.interface.js +2 -0
  118. package/dist/models/support/support.interface.js.map +1 -0
  119. package/dist/models/support/support.model.d.ts +14 -0
  120. package/dist/models/support/support.model.js +52 -0
  121. package/dist/models/support/support.model.js.map +1 -0
  122. package/dist/overlays/anchor.abstract.d.ts +11 -0
  123. package/dist/overlays/anchor.abstract.js +35 -0
  124. package/dist/overlays/anchor.abstract.js.map +1 -0
  125. package/dist/overlays/anchor.interface.d.ts +6 -0
  126. package/dist/overlays/anchor.interface.js +2 -0
  127. package/dist/overlays/anchor.interface.js.map +1 -0
  128. package/dist/overlays/overlay-data.repository.d.ts +20 -0
  129. package/dist/overlays/overlay-data.repository.js +69 -0
  130. package/dist/overlays/overlay-data.repository.js.map +1 -0
  131. package/dist/overlays/overlay.abstract.d.ts +16 -0
  132. package/dist/overlays/overlay.abstract.js +43 -0
  133. package/dist/overlays/overlay.abstract.js.map +1 -0
  134. package/dist/overlays/overlay.interface.d.ts +8 -0
  135. package/dist/overlays/overlay.interface.js +2 -0
  136. package/dist/overlays/overlay.interface.js.map +1 -0
  137. package/dist/overlays/overlay.service.d.ts +14 -0
  138. package/dist/overlays/overlay.service.js +41 -0
  139. package/dist/overlays/overlay.service.js.map +1 -0
  140. package/dist/resources/resource-action.interface.d.ts +6 -0
  141. package/dist/resources/resource-action.interface.js +2 -0
  142. package/dist/resources/resource-action.interface.js.map +1 -0
  143. package/dist/resources/resource-data.repository.d.ts +20 -0
  144. package/dist/resources/resource-data.repository.js +80 -0
  145. package/dist/resources/resource-data.repository.js.map +1 -0
  146. package/dist/resources/resource.abstract.d.ts +22 -0
  147. package/dist/resources/resource.abstract.js +71 -0
  148. package/dist/resources/resource.abstract.js.map +1 -0
  149. package/dist/resources/resource.interface.d.ts +9 -0
  150. package/dist/resources/resource.interface.js +2 -0
  151. package/dist/resources/resource.interface.js.map +1 -0
  152. package/dist/resources/shared-resource.abstract.d.ts +13 -0
  153. package/dist/resources/shared-resource.abstract.js +44 -0
  154. package/dist/resources/shared-resource.abstract.js.map +1 -0
  155. package/dist/services/serialization/model/model-serialization.service.d.ts +15 -0
  156. package/dist/services/serialization/model/model-serialization.service.js +138 -0
  157. package/dist/services/serialization/model/model-serialization.service.js.map +1 -0
  158. package/dist/services/serialization/resource/resource-serialization.service.d.ts +14 -0
  159. package/dist/services/serialization/resource/resource-serialization.service.js +132 -0
  160. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -0
  161. package/dist/services/state-management/local.state-provider.d.ts +8 -0
  162. package/dist/services/state-management/local.state-provider.js +18 -0
  163. package/dist/services/state-management/local.state-provider.js.map +1 -0
  164. package/dist/services/state-management/state-management.service.d.ts +12 -0
  165. package/dist/services/state-management/state-management.service.js +47 -0
  166. package/dist/services/state-management/state-management.service.js.map +1 -0
  167. package/dist/services/state-management/state-provider.interface.d.ts +5 -0
  168. package/dist/services/state-management/state-provider.interface.js +2 -0
  169. package/dist/services/state-management/state-provider.interface.js.map +1 -0
  170. package/dist/services/transaction/transaction.service.d.ts +26 -0
  171. package/dist/services/transaction/transaction.service.js +254 -0
  172. package/dist/services/transaction/transaction.service.js.map +1 -0
  173. package/dist/tsconfig.build.tsbuildinfo +1 -0
  174. package/package.json +52 -16
  175. package/src/app.type.ts +56 -0
  176. package/src/decorators/action.decorator.spec.ts +43 -0
  177. package/src/decorators/action.decorator.ts +24 -0
  178. package/src/decorators/anchor.decorator.ts +10 -0
  179. package/src/decorators/container.spec.ts +104 -0
  180. package/src/decorators/container.ts +133 -0
  181. package/src/decorators/factory.decorator.ts +13 -0
  182. package/src/decorators/model.decorator.ts +10 -0
  183. package/src/decorators/module.decorator.ts +13 -0
  184. package/src/decorators/overlay.decorator.ts +10 -0
  185. package/src/decorators/resource.decorator.ts +10 -0
  186. package/src/decorators/test-container.spec.ts +50 -0
  187. package/src/decorators/test-container.ts +56 -0
  188. package/src/functions/dependency/dependency.model.spec.ts +43 -0
  189. package/src/functions/dependency/dependency.model.ts +178 -0
  190. package/src/functions/diff/diff-metadata.model.ts +51 -0
  191. package/src/functions/diff/diff.model.ts +33 -0
  192. package/src/functions/diff/diff.utility.ts +163 -0
  193. package/src/functions/module/module.abstract.ts +59 -0
  194. package/src/functions/module/module.interface.ts +5 -0
  195. package/src/index.ts +62 -0
  196. package/src/models/action.interface.ts +35 -0
  197. package/src/models/app/app.interface.ts +5 -0
  198. package/src/models/app/app.model.ts +111 -0
  199. package/src/models/deployment/deployment.interface.ts +5 -0
  200. package/src/models/deployment/deployment.model.ts +35 -0
  201. package/src/models/environment/environment.interface.ts +6 -0
  202. package/src/models/environment/environment.model.spec.ts +125 -0
  203. package/src/models/environment/environment.model.ts +55 -0
  204. package/src/models/execution/execution.interface.ts +8 -0
  205. package/src/models/execution/execution.model.spec.ts +62 -0
  206. package/src/models/execution/execution.model.ts +89 -0
  207. package/src/models/image/image.interface.ts +8 -0
  208. package/src/models/image/image.model.ts +62 -0
  209. package/src/models/model.abstract.ts +324 -0
  210. package/src/models/model.interface.ts +42 -0
  211. package/src/models/pipeline/pipeline.interface.ts +6 -0
  212. package/src/models/pipeline/pipeline.model.ts +47 -0
  213. package/src/models/region/region.interface.ts +5 -0
  214. package/src/models/region/region.model.spec.ts +162 -0
  215. package/src/models/region/region.model.ts +48 -0
  216. package/src/models/server/server.interface.ts +7 -0
  217. package/src/models/server/server.model.ts +56 -0
  218. package/src/models/service/service.interface.ts +5 -0
  219. package/src/models/service/service.model.ts +25 -0
  220. package/src/models/support/support.interface.ts +6 -0
  221. package/src/models/support/support.model.spec.ts +78 -0
  222. package/src/models/support/support.model.ts +52 -0
  223. package/src/overlays/anchor.abstract.ts +41 -0
  224. package/src/overlays/anchor.interface.ts +7 -0
  225. package/src/overlays/anchor.spec.ts +41 -0
  226. package/src/overlays/overlay-data.repository.ts +76 -0
  227. package/src/overlays/overlay.abstract.ts +64 -0
  228. package/src/overlays/overlay.interface.ts +9 -0
  229. package/src/overlays/overlay.service.ts +38 -0
  230. package/src/overlays/overlay.spec.ts +86 -0
  231. package/src/resources/resource-action.interface.ts +9 -0
  232. package/src/resources/resource-data.repository.spec.ts +133 -0
  233. package/src/resources/resource-data.repository.ts +92 -0
  234. package/src/resources/resource.abstract.ts +108 -0
  235. package/src/resources/resource.interface.ts +7 -0
  236. package/src/resources/resource.spec.ts +60 -0
  237. package/src/resources/shared-resource.abstract.ts +53 -0
  238. package/src/resources/shared-resource.spec.ts +133 -0
  239. package/src/services/serialization/model/__snapshots__/model-serialization.service.spec.ts.snap +656 -0
  240. package/src/services/serialization/model/model-serialization.service.spec.ts +195 -0
  241. package/src/services/serialization/model/model-serialization.service.ts +172 -0
  242. package/src/services/serialization/resource/__snapshots__/resource-serialization.service.spec.ts.snap +284 -0
  243. package/src/services/serialization/resource/resource-serialization.service.spec.ts +311 -0
  244. package/src/services/serialization/resource/resource-serialization.service.ts +166 -0
  245. package/src/services/state-management/local.state-provider.spec.ts +42 -0
  246. package/src/services/state-management/local.state-provider.ts +23 -0
  247. package/src/services/state-management/state-management.service.ts +43 -0
  248. package/src/services/state-management/state-provider.interface.ts +5 -0
  249. package/src/services/transaction/__snapshots__/transaction.service.spec.ts.snap +284 -0
  250. package/src/services/transaction/transaction.service.spec.ts +823 -0
  251. package/src/services/transaction/transaction.service.ts +386 -0
  252. package/test/app.e2e-spec.ts +104 -0
  253. package/test/helpers/test-classes.ts +31 -0
  254. package/test/models/__snapshots__/model.e2e-spec.ts.snap +451 -0
  255. package/test/models/model.e2e-spec.ts +366 -0
  256. package/tsconfig.build.json +4 -0
  257. package/tsconfig.json +9 -0
  258. package/index.js +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.interface.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { UnknownModel } from '../../app.type.js';
2
+ import { AModel } from '../model.abstract.js';
3
+ import { Diff } from '../../functions/diff/diff.model.js';
4
+ import { IPipeline } from './pipeline.interface.js';
5
+ export declare class Pipeline extends AModel<IPipeline, Pipeline> {
6
+ readonly MODEL_NAME: string;
7
+ readonly instructionSet: string[];
8
+ readonly pipelineName: string;
9
+ constructor(pipelineName: string);
10
+ diff(previous?: Pipeline): Promise<Diff[]>;
11
+ getContext(): string;
12
+ synth(): IPipeline;
13
+ static unSynth(pipeline: IPipeline, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Pipeline>;
14
+ }
@@ -0,0 +1,47 @@
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
+ var Pipeline_1;
11
+ import { Model } from '../../decorators/model.decorator.js';
12
+ import { DiffUtility } from '../../functions/diff/diff.utility.js';
13
+ import { AModel } from '../model.abstract.js';
14
+ let Pipeline = Pipeline_1 = class Pipeline extends AModel {
15
+ MODEL_NAME = 'pipeline';
16
+ instructionSet = [];
17
+ pipelineName;
18
+ constructor(pipelineName) {
19
+ super();
20
+ this.pipelineName = pipelineName;
21
+ }
22
+ async diff(previous) {
23
+ return DiffUtility.diffArray(previous || { instructionSet: [] }, this, 'instructionSet');
24
+ }
25
+ getContext() {
26
+ const parents = this.getParents();
27
+ const app = parents['app'][0].to;
28
+ return [`${this.MODEL_NAME}=${this.pipelineName}`, app.getContext()].join(',');
29
+ }
30
+ synth() {
31
+ return {
32
+ instructionSet: [...this.instructionSet],
33
+ pipelineName: this.pipelineName,
34
+ };
35
+ }
36
+ static async unSynth(pipeline, deReferenceContext) {
37
+ const newPipeline = new Pipeline_1(pipeline.pipelineName);
38
+ newPipeline.instructionSet.push(...pipeline.instructionSet);
39
+ return newPipeline;
40
+ }
41
+ };
42
+ Pipeline = Pipeline_1 = __decorate([
43
+ Model(),
44
+ __metadata("design:paramtypes", [String])
45
+ ], Pipeline);
46
+ export { Pipeline };
47
+ //# sourceMappingURL=pipeline.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.model.js","sourceRoot":"","sources":["../../../src/models/pipeline/pipeline.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI9C,IACa,QAAQ,gBADrB,MACa,QAAS,SAAQ,MAA2B;IAC9C,UAAU,GAAW,UAAU,CAAC;IAEhC,cAAc,GAAa,EAAE,CAAC;IAE9B,YAAY,CAAS;IAE9B,YAAY,YAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,QAAmB;QAErC,OAAO,WAAW,CAAC,SAAS,CAAC,QAAQ,IAAK,EAAE,cAAc,EAAE,EAAE,EAA0B,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACpH,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,KAAK;QACH,OAAO;YACL,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,QAAmB,EACnB,kBAA8D;QAE9D,MAAM,WAAW,GAAG,IAAI,UAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACxD,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC5D,OAAO,WAAW,CAAC;IACrB,CAAC;CACF,CAAA;AAtCY,QAAQ;IADpB,KAAK,EAAE;;GACK,QAAQ,CAsCpB;SAtCY,QAAQ"}
@@ -0,0 +1,4 @@
1
+ import { Region } from './region.model.js';
2
+ export interface IRegion {
3
+ regionId: Region['regionId'];
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=region.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region.interface.js","sourceRoot":"","sources":["../../../src/models/region/region.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { UnknownModel } from '../../app.type.js';
2
+ import { Environment } from '../environment/environment.model.js';
3
+ import { AModel } from '../model.abstract.js';
4
+ import { IRegion } from './region.interface.js';
5
+ export declare class Region extends AModel<IRegion, Region> {
6
+ readonly MODEL_NAME: string;
7
+ readonly regionId: string;
8
+ constructor(regionId: string);
9
+ addEnvironment(environment: Environment): void;
10
+ getContext(): string;
11
+ synth(): IRegion;
12
+ static unSynth(region: IRegion, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Region>;
13
+ }
@@ -0,0 +1,49 @@
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
+ var Region_1;
11
+ import { Model } from '../../decorators/model.decorator.js';
12
+ import { AModel } from '../model.abstract.js';
13
+ let Region = Region_1 = class Region extends AModel {
14
+ MODEL_NAME = 'region';
15
+ regionId;
16
+ constructor(regionId) {
17
+ super();
18
+ this.regionId = regionId;
19
+ }
20
+ addEnvironment(environment) {
21
+ const childrenDependencies = this.getChildren('environment');
22
+ if (!childrenDependencies['environment'])
23
+ childrenDependencies['environment'] = [];
24
+ const environments = childrenDependencies['environment'].map((d) => d.to);
25
+ if (environments.find((e) => e.environmentName === environment.environmentName)) {
26
+ throw new Error('Environment already exists!');
27
+ }
28
+ this.addChild('regionId', environment, 'environmentName');
29
+ }
30
+ getContext() {
31
+ const parents = this.getParents();
32
+ const app = parents['app'][0].to;
33
+ return [`${this.MODEL_NAME}=${this.regionId}`, app.getContext()].join(',');
34
+ }
35
+ synth() {
36
+ return {
37
+ regionId: this.regionId,
38
+ };
39
+ }
40
+ static async unSynth(region, deReferenceContext) {
41
+ return new Region_1(region.regionId);
42
+ }
43
+ };
44
+ Region = Region_1 = __decorate([
45
+ Model(),
46
+ __metadata("design:paramtypes", [String])
47
+ ], Region);
48
+ export { Region };
49
+ //# sourceMappingURL=region.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"region.model.js","sourceRoot":"","sources":["../../../src/models/region/region.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,IACa,MAAM,cADnB,MACa,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,cAAc,CAAC,WAAwB;QACrC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;YAAE,oBAAoB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAGnF,MAAM,YAAY,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,WAAW,CAAC,eAAe,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK;QACH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EACf,kBAA8D;QAE9D,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AAxCY,MAAM;IADlB,KAAK,EAAE;;GACK,MAAM,CAwClB;SAxCY,MAAM"}
@@ -0,0 +1,6 @@
1
+ import { IModelReference } from '../model.interface.js';
2
+ import { Server } from './server.model.js';
3
+ export interface IServer {
4
+ image: IModelReference;
5
+ serverKey: Server['serverKey'];
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.interface.js","sourceRoot":"","sources":["../../../src/models/server/server.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { UnknownModel } from '../../app.type.js';
2
+ import { Deployment } from '../deployment/deployment.model.js';
3
+ import { Image } from '../image/image.model.js';
4
+ import { AModel } from '../model.abstract.js';
5
+ import { IServer } from './server.interface.js';
6
+ export declare class Server extends AModel<IServer, Server> {
7
+ readonly MODEL_NAME: string;
8
+ readonly image: Image;
9
+ readonly serverKey: string;
10
+ constructor(serverKey: string, image: Image);
11
+ addDeployment(deployment: Deployment): void;
12
+ getContext(): string;
13
+ synth(): IServer;
14
+ static unSynth(server: IServer, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Server>;
15
+ }
@@ -0,0 +1,55 @@
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
+ var Server_1;
11
+ import { Model } from '../../decorators/model.decorator.js';
12
+ import { Image } from '../image/image.model.js';
13
+ import { AModel } from '../model.abstract.js';
14
+ let Server = Server_1 = class Server extends AModel {
15
+ MODEL_NAME = 'server';
16
+ image;
17
+ serverKey;
18
+ constructor(serverKey, image) {
19
+ super();
20
+ this.serverKey = serverKey;
21
+ this.image = image;
22
+ this.addRelationship('serverKey', image, 'imageId');
23
+ }
24
+ addDeployment(deployment) {
25
+ const childrenDependencies = this.getChildren('deployment');
26
+ if (!childrenDependencies['deployment'])
27
+ childrenDependencies['deployment'] = [];
28
+ const deployments = childrenDependencies['deployment'].map((d) => d.to);
29
+ if (deployments.find((d) => d.deploymentTag === deployment.deploymentTag)) {
30
+ throw new Error('Deployment already exists!');
31
+ }
32
+ this.addChild('serverKey', deployment, 'deploymentTag');
33
+ }
34
+ getContext() {
35
+ const parents = this.getParents();
36
+ const app = parents['app'][0].to;
37
+ return [`${this.MODEL_NAME}=${this.serverKey}`, app.getContext()].join(',');
38
+ }
39
+ synth() {
40
+ return {
41
+ image: { context: this.image.getContext() },
42
+ serverKey: this.serverKey,
43
+ };
44
+ }
45
+ static async unSynth(server, deReferenceContext) {
46
+ const image = (await deReferenceContext(server.image.context));
47
+ return new Server_1(server.serverKey, image);
48
+ }
49
+ };
50
+ Server = Server_1 = __decorate([
51
+ Model(),
52
+ __metadata("design:paramtypes", [String, Image])
53
+ ], Server);
54
+ export { Server };
55
+ //# sourceMappingURL=server.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.model.js","sourceRoot":"","sources":["../../../src/models/server/server.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,IACa,MAAM,cADnB,MACa,MAAO,SAAQ,MAAuB;IACxC,UAAU,GAAW,QAAQ,CAAC;IAE9B,KAAK,CAAQ;IAEb,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,KAAY;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACtD,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAGjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK;QACH,OAAO;YACL,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,MAAe,EACf,kBAA8D;QAE9D,MAAM,KAAK,GAAG,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAU,CAAC;QACxE,OAAO,IAAI,QAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AA/CY,MAAM;IADlB,KAAK,EAAE;6CAQgC,KAAK;GAPhC,MAAM,CA+ClB;SA/CY,MAAM"}
@@ -0,0 +1,4 @@
1
+ import { Service } from './service.model.js';
2
+ export interface IService {
3
+ serviceId: Service['serviceId'];
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=service.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.interface.js","sourceRoot":"","sources":["../../../src/models/service/service.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { AModel } from '../model.abstract.js';
2
+ import { IService } from './service.interface.js';
3
+ export declare class Service extends AModel<IService, Service> {
4
+ readonly MODEL_NAME: string;
5
+ readonly serviceId: string;
6
+ constructor(serviceId: string);
7
+ getContext(): string;
8
+ synth(): IService;
9
+ }
@@ -0,0 +1,33 @@
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 { Model } from '../../decorators/model.decorator.js';
11
+ import { AModel } from '../model.abstract.js';
12
+ let Service = class Service extends AModel {
13
+ MODEL_NAME = 'service';
14
+ serviceId;
15
+ constructor(serviceId) {
16
+ super();
17
+ this.serviceId = serviceId;
18
+ }
19
+ getContext() {
20
+ const parents = this.getParents();
21
+ const app = parents['app'][0].to;
22
+ return [`${this.MODEL_NAME}=${this.serviceId}`, app.getContext()].join(',');
23
+ }
24
+ synth() {
25
+ throw new Error('Method not implemented! Use subclass');
26
+ }
27
+ };
28
+ Service = __decorate([
29
+ Model(),
30
+ __metadata("design:paramtypes", [String])
31
+ ], Service);
32
+ export { Service };
33
+ //# sourceMappingURL=service.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.model.js","sourceRoot":"","sources":["../../../src/models/service/service.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,IACa,OAAO,GADpB,MACa,OAAQ,SAAQ,MAAyB;IAC3C,UAAU,GAAW,SAAS,CAAC;IAE/B,SAAS,CAAS;IAE3B,YAAY,SAAiB;QAC3B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK;QACH,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF,CAAA;AAnBY,OAAO;IADnB,KAAK,EAAE;;GACK,OAAO,CAmBnB;SAnBY,OAAO"}
@@ -0,0 +1,5 @@
1
+ import { Support } from './support.model.js';
2
+ export interface ISupport {
3
+ applicationType: Support['applicationType'];
4
+ serverKey: Support['serverKey'];
5
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=support.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.interface.js","sourceRoot":"","sources":["../../../src/models/support/support.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { SupportApplicationType, UnknownModel } from '../../app.type.js';
2
+ import { Deployment } from '../deployment/deployment.model.js';
3
+ import { AModel } from '../model.abstract.js';
4
+ import { ISupport } from './support.interface.js';
5
+ export declare class Support extends AModel<ISupport, Support> {
6
+ readonly MODEL_NAME: string;
7
+ readonly applicationType: SupportApplicationType;
8
+ readonly serverKey: string;
9
+ constructor(serverKey: string, applicationType: SupportApplicationType);
10
+ addDeployment(deployment: Deployment): void;
11
+ getContext(): string;
12
+ synth(): ISupport;
13
+ static unSynth(support: ISupport, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<Support>;
14
+ }
@@ -0,0 +1,52 @@
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
+ var Support_1;
11
+ import { Model } from '../../decorators/model.decorator.js';
12
+ import { AModel } from '../model.abstract.js';
13
+ let Support = Support_1 = class Support extends AModel {
14
+ MODEL_NAME = 'support';
15
+ applicationType;
16
+ serverKey;
17
+ constructor(serverKey, applicationType) {
18
+ super();
19
+ this.serverKey = serverKey;
20
+ this.applicationType = applicationType;
21
+ }
22
+ addDeployment(deployment) {
23
+ const childrenDependencies = this.getChildren('deployment');
24
+ if (!childrenDependencies['deployment'])
25
+ childrenDependencies['deployment'] = [];
26
+ const deployments = childrenDependencies['deployment'].map((d) => d.to);
27
+ if (deployments.find((d) => d.deploymentTag === deployment.deploymentTag)) {
28
+ throw new Error('Deployment already exists!');
29
+ }
30
+ this.addChild('serverKey', deployment, 'deploymentTag');
31
+ }
32
+ getContext() {
33
+ const parents = this.getParents();
34
+ const app = parents['app'][0].to;
35
+ return [`${this.MODEL_NAME}=${this.serverKey}`, app.getContext()].join(',');
36
+ }
37
+ synth() {
38
+ return {
39
+ applicationType: this.applicationType,
40
+ serverKey: this.serverKey,
41
+ };
42
+ }
43
+ static async unSynth(support, deReferenceContext) {
44
+ return new Support_1(support.serverKey, support.applicationType);
45
+ }
46
+ };
47
+ Support = Support_1 = __decorate([
48
+ Model(),
49
+ __metadata("design:paramtypes", [String, String])
50
+ ], Support);
51
+ export { Support };
52
+ //# sourceMappingURL=support.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support.model.js","sourceRoot":"","sources":["../../../src/models/support/support.model.ts"],"names":[],"mappings":";;;;;;;;;;AACA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,IACa,OAAO,eADpB,MACa,OAAQ,SAAQ,MAAyB;IAC3C,UAAU,GAAW,SAAS,CAAC;IAE/B,eAAe,CAAyB;IAExC,SAAS,CAAS;IAE3B,YAAY,SAAiB,EAAE,eAAuC;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,UAAsB;QAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YAAE,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAGjF,MAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,CAAC,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK;QACH,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,OAAO,CAC3B,OAAiB,EACjB,kBAA8D;QAE9D,OAAO,IAAI,SAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AA5CY,OAAO;IADnB,KAAK,EAAE;;GACK,OAAO,CA4CnB;SA5CY,OAAO"}
@@ -0,0 +1,11 @@
1
+ import { UnknownModel } from '../app.type.js';
2
+ import { IAnchor } from './anchor.interface.js';
3
+ export declare abstract class AAnchor {
4
+ readonly anchorId: string;
5
+ private readonly parent;
6
+ protected constructor(anchorId: string, parent: UnknownModel);
7
+ getParent(): UnknownModel;
8
+ synth(): IAnchor;
9
+ toJSON(): object;
10
+ static unSynth(deserializationClass: any, anchor: IAnchor, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<AAnchor>;
11
+ }
@@ -0,0 +1,35 @@
1
+ export class AAnchor {
2
+ anchorId;
3
+ parent;
4
+ constructor(anchorId, parent) {
5
+ this.anchorId = anchorId;
6
+ this.parent = parent;
7
+ if (parent.getAnchor(this.anchorId)) {
8
+ throw new Error('Anchor already exists!');
9
+ }
10
+ }
11
+ getParent() {
12
+ return this.parent;
13
+ }
14
+ synth() {
15
+ return {
16
+ anchorId: this.anchorId,
17
+ parent: { context: this.parent.getContext() },
18
+ };
19
+ }
20
+ toJSON() {
21
+ return {
22
+ anchorId: this.anchorId,
23
+ parent: this.parent.getContext(),
24
+ };
25
+ }
26
+ static async unSynth(deserializationClass, anchor, deReferenceContext) {
27
+ const parent = await deReferenceContext(anchor.parent.context);
28
+ const newAnchor = parent.getAnchor(anchor.anchorId);
29
+ if (!newAnchor) {
30
+ return new deserializationClass(anchor.anchorId, parent);
31
+ }
32
+ return newAnchor;
33
+ }
34
+ }
35
+ //# sourceMappingURL=anchor.abstract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.abstract.js","sourceRoot":"","sources":["../../src/overlays/anchor.abstract.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,OAAO;IACI;IAAmC;IAAlE,YAA+B,QAAgB,EAAmB,MAAoB;QAAvD,aAAQ,GAAR,QAAQ,CAAQ;QAAmB,WAAM,GAAN,MAAM,CAAc;QACpF,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;IACH,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK;QACH,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,oBAAyB,EACzB,MAAe,EACf,kBAA8D;QAE9D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC1D;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { IModelReference } from '../models/model.interface.js';
2
+ import { AAnchor } from './anchor.abstract.js';
3
+ export interface IAnchor {
4
+ anchorId: AAnchor['anchorId'];
5
+ parent: IModelReference;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=anchor.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor.interface.js","sourceRoot":"","sources":["../../src/overlays/anchor.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { UnknownOverlay } from '../app.type.js';
2
+ import { Diff } from '../functions/diff/diff.model.js';
3
+ import { IOverlay } from './overlay.interface.js';
4
+ export declare class OverlayDataRepository {
5
+ private readonly oldOverlays;
6
+ private readonly newOverlays;
7
+ constructor(oldOverlays?: UnknownOverlay[], newOverlays?: UnknownOverlay[]);
8
+ add(overlay: UnknownOverlay): void;
9
+ diff(): Diff[];
10
+ getById(overlayId: IOverlay['overlayId']): UnknownOverlay | undefined;
11
+ getByProperties(filters?: {
12
+ key: string;
13
+ value: any;
14
+ }[]): UnknownOverlay[];
15
+ remove(overlay: UnknownOverlay): void;
16
+ }
17
+ export declare class OverlayDataRepositoryFactory {
18
+ private static instance;
19
+ static create(forceNew: boolean, newOverlays: UnknownOverlay[], oldOverlays: UnknownOverlay[]): Promise<OverlayDataRepository>;
20
+ }
@@ -0,0 +1,69 @@
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 { ModelType } from '../app.type.js';
8
+ import { Factory } from '../decorators/factory.decorator.js';
9
+ import { Diff, DiffAction } from '../functions/diff/diff.model.js';
10
+ export class OverlayDataRepository {
11
+ oldOverlays;
12
+ newOverlays;
13
+ constructor(oldOverlays = [], newOverlays = []) {
14
+ this.oldOverlays = oldOverlays;
15
+ this.newOverlays = newOverlays;
16
+ Object.freeze(this.oldOverlays);
17
+ }
18
+ add(overlay) {
19
+ if (overlay.MODEL_TYPE !== ModelType.OVERLAY) {
20
+ throw new Error('Adding non-overlay model!');
21
+ }
22
+ if (!this.getById(overlay.overlayId)) {
23
+ this.newOverlays.push(overlay);
24
+ }
25
+ }
26
+ diff() {
27
+ const diffs = [];
28
+ for (const overlay of this.oldOverlays) {
29
+ if (!this.newOverlays.find((o) => o.overlayId === overlay.overlayId)) {
30
+ diffs.push(new Diff(overlay, DiffAction.DELETE, 'overlayId', overlay.overlayId));
31
+ }
32
+ }
33
+ for (const overlay of this.newOverlays) {
34
+ if (!this.oldOverlays.find((o) => o.overlayId === overlay.overlayId)) {
35
+ diffs.push(new Diff(overlay, DiffAction.ADD, 'overlayId', overlay.overlayId));
36
+ }
37
+ }
38
+ return diffs;
39
+ }
40
+ getById(overlayId) {
41
+ return this.newOverlays.find((o) => o.overlayId === overlayId);
42
+ }
43
+ getByProperties(filters = []) {
44
+ return this.newOverlays.filter((o) => filters.every((c) => o.properties[c.key] === c.value));
45
+ }
46
+ remove(overlay) {
47
+ if (overlay.MODEL_TYPE !== ModelType.OVERLAY) {
48
+ throw new Error('Adding non-overlay model!');
49
+ }
50
+ const overlayIndex = this.newOverlays.findIndex((o) => o.overlayId === overlay.overlayId);
51
+ if (overlayIndex > -1) {
52
+ this.newOverlays.splice(overlayIndex, 1);
53
+ }
54
+ }
55
+ }
56
+ let OverlayDataRepositoryFactory = class OverlayDataRepositoryFactory {
57
+ static instance;
58
+ static async create(forceNew, newOverlays, oldOverlays) {
59
+ if (forceNew || !this.instance) {
60
+ this.instance = new OverlayDataRepository(newOverlays, oldOverlays);
61
+ }
62
+ return this.instance;
63
+ }
64
+ };
65
+ OverlayDataRepositoryFactory = __decorate([
66
+ Factory(OverlayDataRepository)
67
+ ], OverlayDataRepositoryFactory);
68
+ export { OverlayDataRepositoryFactory };
69
+ //# sourceMappingURL=overlay-data.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay-data.repository.js","sourceRoot":"","sources":["../../src/overlays/overlay-data.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ModelType, UnknownModel, UnknownOverlay } from '../app.type.js';
2
+ import { AModel } from '../models/model.abstract.js';
3
+ import { Diff } from '../functions/diff/diff.model.js';
4
+ import { AAnchor } from './anchor.abstract.js';
5
+ import { IOverlay } from './overlay.interface.js';
6
+ export declare abstract class AOverlay<T> extends AModel<IOverlay, T> {
7
+ abstract readonly MODEL_NAME: string;
8
+ readonly MODEL_TYPE: ModelType;
9
+ readonly overlayId: IOverlay['overlayId'];
10
+ readonly properties: IOverlay['properties'];
11
+ protected constructor(overlayId: IOverlay['overlayId'], properties: IOverlay['properties'], anchors: AAnchor[]);
12
+ diff(): Promise<Diff[]>;
13
+ getContext(): string;
14
+ synth(): IOverlay;
15
+ static unSynth(deserializationClass: any, overlay: IOverlay, deReferenceContext: (context: string) => Promise<UnknownModel>): Promise<UnknownOverlay>;
16
+ }
@@ -0,0 +1,43 @@
1
+ import { ModelType } from '../app.type.js';
2
+ import { AModel } from '../models/model.abstract.js';
3
+ export class AOverlay extends AModel {
4
+ MODEL_TYPE = ModelType.OVERLAY;
5
+ overlayId;
6
+ properties = {};
7
+ constructor(overlayId, properties, anchors) {
8
+ super();
9
+ this.overlayId = overlayId;
10
+ for (const key in properties) {
11
+ this.properties[key] = properties[key];
12
+ }
13
+ for (const anchor of anchors) {
14
+ this.addRelationship('overlayId', anchor.getParent(), 'MODEL_NAME');
15
+ this.anchors.push(anchor);
16
+ }
17
+ }
18
+ async diff() {
19
+ return [];
20
+ }
21
+ getContext() {
22
+ return `${this.MODEL_NAME}=${this.overlayId}`;
23
+ }
24
+ synth() {
25
+ return {
26
+ anchors: this.anchors.map((a) => a.synth()),
27
+ overlayId: this.overlayId,
28
+ properties: { ...this.properties },
29
+ };
30
+ }
31
+ static async unSynth(deserializationClass, overlay, deReferenceContext) {
32
+ const anchors = await Promise.all(overlay.anchors.map(async (a) => {
33
+ const parent = await deReferenceContext(a.parent.context);
34
+ const anchor = parent.getAnchor(a.anchorId);
35
+ if (!anchor) {
36
+ throw new Error('Cannot find anchor while deserializing overlay!');
37
+ }
38
+ return anchor;
39
+ }));
40
+ return new deserializationClass(overlay.overlayId, overlay.properties, anchors);
41
+ }
42
+ }
43
+ //# sourceMappingURL=overlay.abstract.js.map