@adaas/a-concept 0.0.28 → 0.0.30

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 (179) hide show
  1. package/dist/examples/fe-be/channels/Test.channel.d.ts +6 -0
  2. package/dist/examples/fe-be/channels/Test.channel.js +14 -0
  3. package/dist/examples/fe-be/channels/Test.channel.js.map +1 -0
  4. package/dist/examples/fe-be/components/BE-Controller.component.d.ts +4 -0
  5. package/dist/examples/fe-be/components/BE-Controller.component.js +24 -0
  6. package/dist/examples/fe-be/components/BE-Controller.component.js.map +1 -0
  7. package/dist/examples/fe-be/components/FE.component.d.ts +4 -0
  8. package/dist/examples/fe-be/components/FE.component.js +31 -0
  9. package/dist/examples/fe-be/components/FE.component.js.map +1 -0
  10. package/dist/examples/fe-be/components/UserActions.component.d.ts +5 -0
  11. package/dist/examples/fe-be/components/UserActions.component.js +25 -0
  12. package/dist/examples/fe-be/components/UserActions.component.js.map +1 -0
  13. package/dist/examples/fe-be/concept.d.ts +0 -0
  14. package/dist/examples/fe-be/concept.js +2 -0
  15. package/dist/examples/fe-be/concept.js.map +1 -0
  16. package/dist/examples/fe-be/containers/ServerApp.container.d.ts +3 -0
  17. package/dist/examples/fe-be/containers/ServerApp.container.js +8 -0
  18. package/dist/examples/fe-be/containers/ServerApp.container.js.map +1 -0
  19. package/dist/examples/fe-be/containers/WebApp.container.d.ts +3 -0
  20. package/dist/examples/fe-be/containers/WebApp.container.js +8 -0
  21. package/dist/examples/fe-be/containers/WebApp.container.js.map +1 -0
  22. package/dist/examples/multi-container/channels/Direct.channel.d.ts +9 -0
  23. package/dist/examples/multi-container/channels/Direct.channel.js +32 -0
  24. package/dist/examples/multi-container/channels/Direct.channel.js.map +1 -0
  25. package/dist/examples/multi-container/concept.d.ts +0 -0
  26. package/dist/examples/multi-container/concept.js +2 -0
  27. package/dist/examples/multi-container/concept.js.map +1 -0
  28. package/dist/examples/multi-container/containers/Command.container.d.ts +11 -0
  29. package/dist/examples/multi-container/containers/Command.container.js +51 -0
  30. package/dist/examples/multi-container/containers/Command.container.js.map +1 -0
  31. package/dist/examples/multi-container/containers/Schedule.container.d.ts +15 -0
  32. package/dist/examples/multi-container/containers/Schedule.container.js +67 -0
  33. package/dist/examples/multi-container/containers/Schedule.container.js.map +1 -0
  34. package/dist/examples/simple/components/A.component.js.map +1 -1
  35. package/dist/examples/simple/containers/Main.container.js +7 -3
  36. package/dist/examples/simple/containers/Main.container.js.map +1 -1
  37. package/dist/examples/simple/entities/EntityA.entity.d.ts +8 -0
  38. package/dist/examples/simple/entities/EntityA.entity.js +22 -0
  39. package/dist/examples/simple/entities/EntityA.entity.js.map +1 -0
  40. package/dist/examples/simple-http-server/contexts/http-request.context.d.ts +0 -1
  41. package/dist/examples/simple-http-server/contexts/http-request.context.js +6 -8
  42. package/dist/examples/simple-http-server/contexts/http-request.context.js.map +1 -1
  43. package/dist/index.d.ts +8 -2
  44. package/dist/index.js +16 -7
  45. package/dist/index.js.map +1 -1
  46. package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +2 -1
  47. package/dist/src/base/A-Config/components/ConfigReader.component.js +12 -12
  48. package/dist/src/base/A-Config/components/ConfigReader.component.js.map +1 -1
  49. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.d.ts +14 -0
  50. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.js +53 -0
  51. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.js.map +1 -0
  52. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.d.ts +2 -0
  53. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js +3 -0
  54. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js.map +1 -0
  55. package/dist/src/decorators/A-Connect/A-Connect.decorator.d.ts +19 -0
  56. package/dist/src/decorators/A-Connect/A-Connect.decorator.js +31 -0
  57. package/dist/src/decorators/A-Connect/A-Connect.decorator.js.map +1 -0
  58. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.d.ts +1 -0
  59. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js +3 -0
  60. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js.map +1 -0
  61. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.d.ts +1 -0
  62. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js +8 -0
  63. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js.map +1 -0
  64. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.d.ts +14 -0
  65. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js +3 -0
  66. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js.map +1 -0
  67. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +9 -0
  68. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +1 -1
  69. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +28 -0
  70. package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +2 -3
  71. package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +1 -1
  72. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +44 -0
  73. package/dist/src/global/A-Channel/A-Channel.class.d.ts +8 -10
  74. package/dist/src/global/A-Channel/A-Channel.class.js +12 -26
  75. package/dist/src/global/A-Channel/A-Channel.class.js.map +1 -1
  76. package/dist/src/global/A-Channel/A-Channel.types.d.ts +32 -0
  77. package/dist/src/global/A-Component/A-Component.class.d.ts +2 -1
  78. package/dist/src/global/A-Component/A-Component.class.js +1 -0
  79. package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
  80. package/dist/src/global/A-Component/A-Component.meta.d.ts +8 -0
  81. package/dist/src/global/A-Component/A-Component.meta.js +27 -1
  82. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
  83. package/dist/src/global/A-Component/A-Component.types.d.ts +19 -34
  84. package/dist/src/global/A-Component/A-Component.types.js +1 -7
  85. package/dist/src/global/A-Component/A-Component.types.js.map +1 -1
  86. package/dist/src/global/A-Concept/A_Concept.class.d.ts +7 -7
  87. package/dist/src/global/A-Concept/A_Concept.class.js +30 -30
  88. package/dist/src/global/A-Concept/A_Concept.class.js.map +1 -1
  89. package/dist/src/global/A-Concept/A_Concept.types.d.ts +42 -2
  90. package/dist/src/global/A-Concept/A_Concept.types.js.map +1 -1
  91. package/dist/src/global/A-Container/A-Container.class.d.ts +1 -8
  92. package/dist/src/global/A-Container/A-Container.class.js +1 -31
  93. package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
  94. package/dist/src/global/A-Container/A-Container.meta.d.ts +8 -0
  95. package/dist/src/global/A-Container/A-Container.meta.js +29 -0
  96. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
  97. package/dist/src/global/A-Container/A-Container.types.d.ts +23 -7
  98. package/dist/src/global/A-Container/A-Container.types.js +2 -1
  99. package/dist/src/global/A-Container/A-Container.types.js.map +1 -1
  100. package/dist/src/global/A-Context/A-Context.class.js +6 -35
  101. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  102. package/dist/src/global/A-Entity/A-Entity.class.d.ts +1 -2
  103. package/dist/src/global/A-Entity/A-Entity.class.js +6 -7
  104. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
  105. package/dist/src/global/A-Entity/A-Entity.types.d.ts +4 -5
  106. package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -1
  107. package/dist/src/global/A-Feature/A-Feature.class.d.ts +30 -6
  108. package/dist/src/global/A-Feature/A-Feature.class.js +49 -40
  109. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
  110. package/dist/src/global/A-Feature/A-Feature.types.d.ts +2 -24
  111. package/dist/src/global/A-Feature/A-Feature.types.js +21 -0
  112. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
  113. package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +8 -0
  114. package/dist/src/global/A-Fragment/A-Fragment.class.js +10 -0
  115. package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -1
  116. package/dist/src/global/A-Scope/A-Scope.class.d.ts +7 -5
  117. package/dist/src/global/A-Scope/A-Scope.class.js +33 -10
  118. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
  119. package/dist/src/global/A-Scope/A-Scope.types.d.ts +2 -1
  120. package/dist/src/global/A-Stage/A-Stage.class.d.ts +69 -0
  121. package/dist/src/global/A-Stage/A-Stage.class.js +176 -0
  122. package/dist/src/global/A-Stage/A-Stage.class.js.map +1 -0
  123. package/dist/src/global/A-Stage/A-Stage.types.d.ts +83 -0
  124. package/dist/src/global/A-Stage/A-Stage.types.js +59 -0
  125. package/dist/src/global/A-Stage/A-Stage.types.js.map +1 -0
  126. package/dist/src/helpers/StepsManager.class.d.ts +15 -0
  127. package/dist/src/helpers/StepsManager.class.js +85 -0
  128. package/dist/src/helpers/StepsManager.class.js.map +1 -0
  129. package/examples/fe-be/channels/Test.channel.ts +24 -0
  130. package/examples/fe-be/components/BE-Controller.component.ts +20 -0
  131. package/examples/fe-be/components/FE.component.ts +13 -0
  132. package/examples/fe-be/concept.ts +0 -0
  133. package/examples/fe-be/containers/ServerApp.container.ts +8 -0
  134. package/examples/fe-be/containers/WebApp.container.ts +13 -0
  135. package/examples/multi-container/channels/Direct.channel.ts +39 -0
  136. package/examples/multi-container/concept.ts +0 -0
  137. package/examples/multi-container/containers/Command.container.ts +41 -0
  138. package/examples/multi-container/containers/Schedule.container.ts +57 -0
  139. package/examples/simple/components/A.component.ts +2 -1
  140. package/examples/simple/containers/Main.container.ts +11 -3
  141. package/examples/simple/entities/EntityA.entity.ts +16 -0
  142. package/examples/simple-http-server/contexts/http-request.context.ts +6 -6
  143. package/index.ts +12 -3
  144. package/package.json +1 -1
  145. package/src/base/A-Config/components/ConfigReader.component.ts +12 -11
  146. package/src/decorators/A-Abstraction/A-Abstraction.decorator.ts +82 -0
  147. package/src/decorators/{A-Stage/A-Stage.decorator.types.ts → A-Abstraction/A-Abstraction.decorator.types.ts} +1 -3
  148. package/src/decorators/A-Connect/A-Connect.decorator.ts +71 -0
  149. package/src/decorators/A-Connect/A-Connect.decorator.types.ts +6 -0
  150. package/src/decorators/A-Entity/A-Entity-List.decorator.ts +12 -0
  151. package/src/decorators/A-Entity/A-Entity.decorator.types.ts +18 -0
  152. package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +10 -0
  153. package/src/decorators/A-Feature/A-Feature.decorator.types.ts +36 -0
  154. package/src/decorators/A-Inject/A-Inject.decorator.ts +7 -7
  155. package/src/decorators/A-Inject/A-Inject.decorator.types.ts +47 -1
  156. package/src/global/A-Channel/A-Channel.class.ts +25 -28
  157. package/src/global/A-Channel/A-Channel.types.ts +53 -0
  158. package/src/global/A-Component/A-Component.class.ts +10 -2
  159. package/src/global/A-Component/A-Component.meta.ts +42 -1
  160. package/src/global/A-Component/A-Component.types.ts +20 -40
  161. package/src/global/A-Concept/A_Concept.class.ts +52 -31
  162. package/src/global/A-Concept/A_Concept.types.ts +48 -3
  163. package/src/global/A-Container/A-Container.class.ts +3 -39
  164. package/src/global/A-Container/A-Container.meta.ts +41 -4
  165. package/src/global/A-Container/A-Container.types.ts +28 -7
  166. package/src/global/A-Context/A-Context.class.ts +9 -49
  167. package/src/global/A-Entity/A-Entity.class.ts +8 -6
  168. package/src/global/A-Entity/A-Entity.types.ts +4 -5
  169. package/src/global/A-Feature/A-Feature.class.ts +73 -61
  170. package/src/global/A-Feature/A-Feature.types.ts +24 -23
  171. package/src/global/A-Fragment/A-Fragment.class.ts +15 -0
  172. package/src/global/A-Scope/A-Scope.class.ts +58 -25
  173. package/src/global/A-Scope/A-Scope.types.ts +2 -1
  174. package/src/global/A-Stage/A-Stage.class.ts +225 -0
  175. package/src/global/A-Stage/A-Stage.types.ts +106 -0
  176. package/src/helpers/StepsManager.class.ts +104 -0
  177. package/tests/channel.ts +213 -0
  178. package/tests/log.ts +88 -40
  179. package/src/decorators/A-Stage/A-Stage.decorator.ts +0 -84
@@ -47,6 +47,9 @@ class A_Scope {
47
47
  // this._components.set(component, new component());
48
48
  // })
49
49
  }
50
+ initEntities(_entities) {
51
+ _entities.forEach(this.register.bind(this));
52
+ }
50
53
  initFragments(_fragments) {
51
54
  _fragments.forEach(this.register.bind(this));
52
55
  }
@@ -113,6 +116,9 @@ class A_Scope {
113
116
  }
114
117
  }
115
118
  resolveEntity(entity, instructions) {
119
+ var _a;
120
+ const query = (instructions === null || instructions === void 0 ? void 0 : instructions.query) || {};
121
+ const count = ((_a = instructions === null || instructions === void 0 ? void 0 : instructions.pagination) === null || _a === void 0 ? void 0 : _a.count) || 1;
116
122
  switch (true) {
117
123
  case !instructions: {
118
124
  const entities = Array.from(this._entities.values());
@@ -121,20 +127,31 @@ class A_Scope {
121
127
  case !!found:
122
128
  return found;
123
129
  case !found && !!this.parent:
124
- return this.parent.resolveFragment(entity);
130
+ return this.parent.resolveEntity(entity, instructions);
125
131
  default:
126
132
  throw new Error(`Fragment ${entity.name} not found in the scope ${this.name}`);
127
133
  }
128
134
  }
129
- case !!instructions && !!instructions.aseid && this._entities.has(instructions.aseid): {
130
- return this._entities.get(instructions.aseid);
131
- }
132
- case !!instructions && !!instructions.id && this._entities.has(instructions.id): {
133
- // in this case we have to find the entity by the id
134
- const entities = Array.from(this._entities.values());
135
- const found = entities.find(e => e.id === instructions.id);
136
- return found;
137
- }
135
+ case !!query.aseid
136
+ && typeof query.aseid === 'string'
137
+ && this._entities.has(query.aseid):
138
+ {
139
+ return this._entities.get(query.aseid);
140
+ }
141
+ case !!query.aseid
142
+ && query.aseid instanceof a_utils_1.ASEID
143
+ && this._entities.has(query.aseid.toString()):
144
+ {
145
+ return this._entities.get(query.aseid.toString());
146
+ }
147
+ case !!query.id
148
+ && this._entities.has(query.id):
149
+ {
150
+ // in this case we have to find the entity by the id
151
+ const entities = Array.from(this._entities.values());
152
+ const found = entities.find(e => e.id === query.id);
153
+ return found;
154
+ }
138
155
  default:
139
156
  throw new Error(`Entity ${entity.constructor.name} not found in the scope ${this.name}`);
140
157
  }
@@ -222,6 +239,12 @@ class A_Scope {
222
239
  throw new Error('Invalid arguments provided');
223
240
  }
224
241
  }
242
+ toJSON() {
243
+ return this.fragments.reduce((acc, fragment) => {
244
+ const serialized = fragment.toJSON();
245
+ return Object.assign(Object.assign({}, acc), { [serialized.name]: serialized });
246
+ }, {});
247
+ }
225
248
  }
226
249
  exports.A_Scope = A_Scope;
227
250
  //# sourceMappingURL=A-Scope.class.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A-Scope.class.js","sourceRoot":"","sources":["../../../../src/global/A-Scope/A-Scope.class.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { A_Component } from "../A-Component/A-Component.class";
1
2
  import { A_Fragment } from "../A-Fragment/A-Fragment.class";
2
3
  import { A_Scope } from "./A-Scope.class";
3
4
  export type A_TYPES__ScopeConstructor = {
@@ -13,7 +14,7 @@ export type A_TYPES__ScopeConstructor = {
13
14
  * A set of Components available in the Scope
14
15
  */
15
16
  components: Array<{
16
- new (...args: any[]): any;
17
+ new (...args: any[]): A_Component;
17
18
  }>;
18
19
  /**
19
20
  * A list of Features/Lifecycle Hooks available in the Scope
@@ -0,0 +1,69 @@
1
+ import { A_Error } from "@adaas/a-utils";
2
+ import { A_Feature } from "../A-Feature/A-Feature.class";
3
+ import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep } from "./A-Stage.types";
4
+ import { A_Container } from "../A-Container/A-Container.class";
5
+ /**
6
+ * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
7
+ * Each stage may contain one or more functions.
8
+ * [!] That always run in parallel (in NodeJS asynchronously), independently of each other.
9
+ *
10
+ * A-Stage is a common object that uses to simplify logic and re-use of A-Feature internals for better composition.
11
+ */
12
+ export declare class A_Stage {
13
+ private feature;
14
+ private steps;
15
+ constructor(feature: A_Feature, steps?: A_TYPES__A_StageStep[]);
16
+ status: A_TYPES__A_Stage_Status;
17
+ /**
18
+ * Promise that will be resolved when the stage is Processed
19
+ */
20
+ processed: Promise<void> | undefined;
21
+ get before(): string[];
22
+ get after(): string[];
23
+ /**
24
+ * Resolves the arguments of the step
25
+ *
26
+ * @param step
27
+ * @returns
28
+ */
29
+ protected getStepArgs(step: A_TYPES__A_StageStep): Promise<Promise<import("../A-Fragment/A-Fragment.class").A_Fragment | import("../A-Entity/A-Entity.class").A_Entity<any, any, any> | import("../A-Component/A-Component.class").A_Component<any> | import("../A-Scope/A-Scope.class").A_Scope | A_Container<any> | A_Feature | this>[]>;
30
+ /**
31
+ * Adds a step to the stage
32
+ *
33
+ * @param step
34
+ * @returns
35
+ */
36
+ add(step: A_TYPES__A_StageStep): this;
37
+ /**
38
+ * Resolves the component of the step
39
+ *
40
+ * @param step
41
+ * @returns
42
+ */
43
+ protected getStepInstance(step: A_TYPES__A_StageStep): A_Container<any> | import("../A-Component/A-Component.class").A_Component<string[]>;
44
+ /**
45
+ * Calls the handler of the step
46
+ *
47
+ * @param step
48
+ * @returns
49
+ */
50
+ protected getStepHandler(step: A_TYPES__A_StageStep): Promise<any>;
51
+ /**
52
+ * Runs async all the steps of the stage
53
+ *
54
+ * @returns
55
+ */
56
+ process(): Promise<void>;
57
+ /**
58
+ * Skips the stage
59
+ *
60
+ */
61
+ skip(): void;
62
+ protected completed(): void;
63
+ protected failed(error: Error | A_Error | unknown): void;
64
+ /**
65
+ * Serializes the stage to JSON
66
+ *
67
+ */
68
+ toJSON(): A_TYPES__A_Stage_JSON;
69
+ }
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.A_Stage = void 0;
13
+ const a_utils_1 = require("@adaas/a-utils");
14
+ const A_Context_class_1 = require("../A-Context/A-Context.class");
15
+ const A_Feature_class_1 = require("../A-Feature/A-Feature.class");
16
+ const A_Stage_types_1 = require("./A-Stage.types");
17
+ const A_Container_class_1 = require("../A-Container/A-Container.class");
18
+ /**
19
+ * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
20
+ * Each stage may contain one or more functions.
21
+ * [!] That always run in parallel (in NodeJS asynchronously), independently of each other.
22
+ *
23
+ * A-Stage is a common object that uses to simplify logic and re-use of A-Feature internals for better composition.
24
+ */
25
+ class A_Stage {
26
+ constructor(feature, steps = []) {
27
+ this.feature = feature;
28
+ this.steps = steps;
29
+ this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.INITIALIZED;
30
+ }
31
+ get before() {
32
+ return this.steps.reduce((acc, step) => ([
33
+ ...acc,
34
+ ...step.before
35
+ ]), []);
36
+ }
37
+ get after() {
38
+ return this.steps.reduce((acc, step) => ([
39
+ ...acc,
40
+ ...step.after
41
+ ]), []);
42
+ }
43
+ /**
44
+ * Resolves the arguments of the step
45
+ *
46
+ * @param step
47
+ * @returns
48
+ */
49
+ getStepArgs(step) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ return step.args.map((arg) => __awaiter(this, void 0, void 0, function* () {
52
+ // In case if the target is a feature step then pass the current feature
53
+ return a_utils_1.A_CommonHelper.isInheritedFrom(arg.target, A_Feature_class_1.A_Feature)
54
+ ? this
55
+ : A_Context_class_1.A_Context.scope(this.feature).resolve(arg.target);
56
+ }));
57
+ });
58
+ }
59
+ /**
60
+ * Adds a step to the stage
61
+ *
62
+ * @param step
63
+ * @returns
64
+ */
65
+ add(step) {
66
+ this.steps.push(step);
67
+ return this;
68
+ }
69
+ /**
70
+ * Resolves the component of the step
71
+ *
72
+ * @param step
73
+ * @returns
74
+ */
75
+ getStepInstance(step) {
76
+ const { component, handler } = step;
77
+ // TODO: probably would be better to do it another way. let's think about it
78
+ const instance = component instanceof A_Container_class_1.A_Container
79
+ ? component
80
+ : A_Context_class_1.A_Context.scope(this.feature).resolve(component);
81
+ if (!instance)
82
+ throw new Error(`Unable to resolve component ${component.name}`);
83
+ if (!instance[handler])
84
+ throw new Error(`Handler ${handler} not found in ${instance.constructor.name}`);
85
+ return instance;
86
+ }
87
+ /**
88
+ * Calls the handler of the step
89
+ *
90
+ * @param step
91
+ * @returns
92
+ */
93
+ getStepHandler(step) {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ const instance = this.getStepInstance(step);
96
+ const callArgs = yield this.getStepArgs(step);
97
+ return instance[step.handler](...callArgs);
98
+ });
99
+ }
100
+ /**
101
+ * Runs async all the steps of the stage
102
+ *
103
+ * @returns
104
+ */
105
+ process() {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ if (!this.processed)
108
+ this.processed = new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
109
+ try {
110
+ this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.PROCESSING;
111
+ const syncSteps = this.steps.filter(step => step.behavior === 'sync');
112
+ const asyncSteps = this.steps.filter(step => step.behavior === 'async');
113
+ // Run sync steps
114
+ yield Promise
115
+ .all([
116
+ // Run async steps that are independent of each other
117
+ ...asyncSteps.map(step => this.getStepHandler(step)),
118
+ // Run sync steps that are dependent on each other
119
+ new Promise((r, j) => __awaiter(this, void 0, void 0, function* () {
120
+ try {
121
+ for (const step of syncSteps) {
122
+ yield this.getStepHandler(step);
123
+ }
124
+ return r();
125
+ }
126
+ catch (error) {
127
+ return j(error);
128
+ }
129
+ }))
130
+ ]);
131
+ this.completed();
132
+ return resolve();
133
+ }
134
+ catch (error) {
135
+ this.failed(error);
136
+ return reject(error);
137
+ }
138
+ }));
139
+ return this.processed;
140
+ });
141
+ }
142
+ /**
143
+ * Skips the stage
144
+ *
145
+ */
146
+ skip() {
147
+ this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.SKIPPED;
148
+ this.feature.next(this);
149
+ }
150
+ // ==========================================
151
+ // ============ Status methods =============
152
+ // ==========================================
153
+ completed() {
154
+ this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.COMPLETED;
155
+ this.feature.next(this);
156
+ }
157
+ failed(error) {
158
+ this.status = A_Stage_types_1.A_TYPES__A_Stage_Status.FAILED;
159
+ this.feature.failed(error);
160
+ }
161
+ // ==========================================
162
+ // ============ Serialization ===============
163
+ // ==========================================
164
+ /**
165
+ * Serializes the stage to JSON
166
+ *
167
+ */
168
+ toJSON() {
169
+ return {
170
+ name: 'A_Stage',
171
+ status: this.status,
172
+ };
173
+ }
174
+ }
175
+ exports.A_Stage = A_Stage;
176
+ //# sourceMappingURL=A-Stage.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A-Stage.class.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.class.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAyD;AACzD,kEAAyD;AACzD,kEAAyD;AACzD,mDAAuG;AACvG,wEAA+D;AAI/D;;;;;;GAMG;AACH,MAAa,OAAO;IAIhB,YACY,OAAkB,EAClB,QAAgC,EAAE;QADlC,YAAO,GAAP,OAAO,CAAW;QAClB,UAAK,GAAL,KAAK,CAA6B;QAK9C,WAAM,GAA4B,uCAAuB,CAAC,WAAW,CAAC;IAFtE,CAAC;IASD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG;YACN,GAAG,IAAI,CAAC,MAAM;SACjB,CAAC,EAAE,EAAc,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,GAAG;YACN,GAAG,IAAI,CAAC,KAAK;SAChB,CAAC,EAAE,EAAc,CAAC,CAAC;IACxB,CAAC;IAGD;;;;;OAKG;IACa,WAAW,CAAC,IAA0B;;YAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAM,GAAG,EAAC,EAAE;gBAC7B,wEAAwE;gBACxE,OAAA,wBAAc,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,2BAAS,CAAC;oBACjD,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,2BAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;cAAA,CAC1D,CAAC;QACN,CAAC;KAAA;IAGD;;;;;OAKG;IACH,GAAG,CACC,IAA0B;QAE1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtB,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD;;;;;OAKG;IACO,eAAe,CAAC,IAA0B;QAChD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAEpC,4EAA4E;QAC5E,MAAM,QAAQ,GAAG,SAAS,YAAY,+BAAW;YAC7C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,2BAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEvD,IAAI,CAAC,QAAQ;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QAErE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,iBAAiB,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAEpF,OAAO,QAAQ,CAAC;IACpB,CAAC;IAID;;;;;OAKG;IACa,cAAc,CAAC,IAA0B;;YAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE9C,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE/C,CAAC;KAAA;IAGD;;;;OAIG;IACG,OAAO;;YACT,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,CACxB,CAAO,OAAO,EAAE,MAAM,EAAE,EAAE;oBACtB,IAAI,CAAC;wBACD,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,UAAU,CAAC;wBAEjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;wBACtE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;wBAExE,iBAAiB;wBAEjB,MAAM,OAAO;6BACR,GAAG,CAAC;4BAED,qDAAqD;4BACrD,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;4BAEpD,kDAAkD;4BAClD,IAAI,OAAO,CACP,CAAO,CAAC,EAAE,CAAC,EAAE,EAAE;gCACX,IAAI,CAAC;oCACD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;wCAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;oCACpC,CAAC;oCAED,OAAO,CAAC,EAAE,CAAC;gCACf,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACb,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;gCACpB,CAAC;4BACL,CAAC,CAAA,CACJ;yBACJ,CAAC,CAAC;wBAEP,IAAI,CAAC,SAAS,EAAE,CAAC;wBAEjB,OAAO,OAAO,EAAE,CAAC;oBAErB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAEnB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC,CAAA,CAAC,CAAC;YAGX,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;KAAA;IAGD;;;OAGG;IACH,IAAI;QACA,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAKD,6CAA6C;IAC7C,4CAA4C;IAC5C,6CAA6C;IAEnC,SAAS;QACf,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,SAAS,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAES,MAAM,CACZ,KAAgC;QAEhC,IAAI,CAAC,MAAM,GAAG,uCAAuB,CAAC,MAAM,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAID,6CAA6C;IAC7C,6CAA6C;IAC7C,6CAA6C;IAG7C;;;OAGG;IACH,MAAM;QAEF,OAAO;YACH,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAA;IACL,CAAC;CACJ;AAjND,0BAiNC"}
@@ -0,0 +1,83 @@
1
+ import { A_TYPES__A_InjectDecorator_Meta } from "../../decorators/A-Inject/A-Inject.decorator.types";
2
+ import { A_Component } from "../A-Component/A-Component.class";
3
+ import { A_Container } from "../A-Container/A-Container.class";
4
+ import { A_TYPES__A_ExtendDecorator_BehaviorConfig } from "../../decorators/A-Feature/A-Feature.decorator.types";
5
+ export declare enum A_TYPES__A_Stage_Status {
6
+ /**
7
+ * The stage is currently being processed
8
+ */
9
+ PROCESSING = "PROCESSING",
10
+ /**
11
+ * The stage has been completed
12
+ */
13
+ COMPLETED = "COMPLETED",
14
+ /**
15
+ * The stage has failed
16
+ */
17
+ FAILED = "FAILED",
18
+ /**
19
+ * The stage has been skipped
20
+ */
21
+ SKIPPED = "SKIPPED",
22
+ /**
23
+ * The stage has been paused
24
+ */
25
+ /**
26
+ * The stage has been stopped
27
+ */
28
+ /**
29
+ * The stage has been started
30
+ */
31
+ /**
32
+ * The stage has been initialized
33
+ */
34
+ INITIALIZED = "INITIALIZED",
35
+ /**
36
+ * The stage has been reset
37
+ */
38
+ /**
39
+ * The stage has been resumed
40
+ */
41
+ /**
42
+ * The stage has been suspended
43
+ */
44
+ /**
45
+ * The stage has been terminated
46
+ */
47
+ /**
48
+ * The stage has been aborted
49
+ */
50
+ ABORTED = "ABORTED"
51
+ }
52
+ export type A_TYPES__A_StageStep = {
53
+ /**
54
+ * The component to be called
55
+ */
56
+ component: typeof A_Component | typeof A_Container | A_Container<any>;
57
+ /**
58
+ * The method to be called on the component
59
+ */
60
+ handler: string;
61
+ /**
62
+ * Original Feature Extension name
63
+ *
64
+ * [!] could be string or regex
65
+ *
66
+ */
67
+ name: string;
68
+ /**
69
+ * Arguments to be passed to the method
70
+ */
71
+ args: A_TYPES__A_InjectDecorator_Meta;
72
+ } & A_TYPES__A_ExtendDecorator_BehaviorConfig;
73
+ export type A_TYPES__A_Stage_JSON = {
74
+ /**
75
+ * The name of the stage
76
+ */
77
+ name: string;
78
+ /**
79
+ * The status of the stage
80
+ *
81
+ */
82
+ status: A_TYPES__A_Stage_Status;
83
+ };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.A_TYPES__A_Stage_Status = void 0;
4
+ var A_TYPES__A_Stage_Status;
5
+ (function (A_TYPES__A_Stage_Status) {
6
+ /**
7
+ * The stage is currently being processed
8
+ */
9
+ A_TYPES__A_Stage_Status["PROCESSING"] = "PROCESSING";
10
+ /**
11
+ * The stage has been completed
12
+ */
13
+ A_TYPES__A_Stage_Status["COMPLETED"] = "COMPLETED";
14
+ /**
15
+ * The stage has failed
16
+ */
17
+ A_TYPES__A_Stage_Status["FAILED"] = "FAILED";
18
+ /**
19
+ * The stage has been skipped
20
+ */
21
+ A_TYPES__A_Stage_Status["SKIPPED"] = "SKIPPED";
22
+ /**
23
+ * The stage has been paused
24
+ */
25
+ // PAUSED = 'PAUSED',
26
+ /**
27
+ * The stage has been stopped
28
+ */
29
+ // STOPPED = 'STOPPED',
30
+ /**
31
+ * The stage has been started
32
+ */
33
+ // STARTED = 'STARTED',
34
+ /**
35
+ * The stage has been initialized
36
+ */
37
+ A_TYPES__A_Stage_Status["INITIALIZED"] = "INITIALIZED";
38
+ /**
39
+ * The stage has been reset
40
+ */
41
+ // RESET = 'RESET',
42
+ /**
43
+ * The stage has been resumed
44
+ */
45
+ // RESUMED = 'RESUMED',
46
+ /**
47
+ * The stage has been suspended
48
+ */
49
+ // SUSPENDED = 'SUSPENDED',
50
+ /**
51
+ * The stage has been terminated
52
+ */
53
+ // TERMINATED = 'TERMINATED',
54
+ /**
55
+ * The stage has been aborted
56
+ */
57
+ A_TYPES__A_Stage_Status["ABORTED"] = "ABORTED";
58
+ })(A_TYPES__A_Stage_Status || (exports.A_TYPES__A_Stage_Status = A_TYPES__A_Stage_Status = {}));
59
+ //# sourceMappingURL=A-Stage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"A-Stage.types.js","sourceRoot":"","sources":["../../../../src/global/A-Stage/A-Stage.types.ts"],"names":[],"mappings":";;;AAOA,IAAY,uBAqDX;AArDD,WAAY,uBAAuB;IAC/B;;OAEG;IACH,oDAAyB,CAAA;IACzB;;OAEG;IACH,kDAAuB,CAAA;IACvB;;OAEG;IACH,4CAAiB,CAAA;IACjB;;OAEG;IACH,8CAAmB,CAAA;IACnB;;OAEG;IACH,qBAAqB;IACrB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,sDAA2B,CAAA;IAC3B;;OAEG;IACH,mBAAmB;IACnB;;OAEG;IACH,uBAAuB;IACvB;;OAEG;IACH,2BAA2B;IAC3B;;OAEG;IACH,6BAA6B;IAC7B;;OAEG;IACH,8CAAmB,CAAA;AACvB,CAAC,EArDW,uBAAuB,uCAAvB,uBAAuB,QAqDlC"}
@@ -0,0 +1,15 @@
1
+ import { A_Feature } from "../global/A-Feature/A-Feature.class";
2
+ import { A_Stage } from "../global/A-Stage/A-Stage.class";
3
+ import { A_TYPES__A_StageStep } from "../global/A-Stage/A-Stage.types";
4
+ export declare class StepsManager {
5
+ entities: A_TYPES__A_StageStep[];
6
+ graph: Map<string, Set<string>>;
7
+ visited: Set<string>;
8
+ tempMark: Set<string>;
9
+ sortedEntities: string[];
10
+ constructor(entities: A_TYPES__A_StageStep[]);
11
+ private buildGraph;
12
+ private matchEntities;
13
+ private visit;
14
+ toStages(feature: A_Feature): Array<A_Stage>;
15
+ }
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StepsManager = void 0;
4
+ const A_Stage_class_1 = require("../global/A-Stage/A-Stage.class");
5
+ class StepsManager {
6
+ constructor(entities) {
7
+ this.entities = entities;
8
+ this.graph = new Map();
9
+ this.visited = new Set();
10
+ this.tempMark = new Set();
11
+ this.sortedEntities = [];
12
+ }
13
+ buildGraph() {
14
+ // Initialize graph nodes
15
+ this.entities.forEach(entity => this.graph.set(entity.name, new Set()));
16
+ // Add directed edges based on 'before' and 'after'
17
+ this.entities.forEach(entity => {
18
+ const { name, before = [], after = [] } = entity;
19
+ // Add edges for 'before' dependencies
20
+ before.forEach(dep => {
21
+ const targets = this.matchEntities(dep);
22
+ targets.forEach(target => {
23
+ if (!this.graph.has(target))
24
+ this.graph.set(target, new Set());
25
+ this.graph.get(target).add(name); // target -> name (target should be before name)
26
+ });
27
+ });
28
+ // Add edges for 'after' dependencies
29
+ after.forEach(dep => {
30
+ const sources = this.matchEntities(dep);
31
+ sources.forEach(source => {
32
+ if (!this.graph.has(name))
33
+ this.graph.set(name, new Set());
34
+ this.graph.get(name).add(source); // name -> source (name should be before source)
35
+ });
36
+ });
37
+ });
38
+ }
39
+ // Match entities by name or regex
40
+ matchEntities(pattern) {
41
+ const regex = new RegExp(`^${pattern}$`);
42
+ return this.entities
43
+ .filter(entity => regex.test(entity.name))
44
+ .map(entity => entity.name);
45
+ }
46
+ // Topological sort with cycle detection
47
+ visit(node) {
48
+ if (this.tempMark.has(node))
49
+ throw new Error("Circular dependency detected");
50
+ if (!this.visited.has(node)) {
51
+ this.tempMark.add(node);
52
+ (this.graph.get(node) || []).forEach(neighbor => this.visit(neighbor));
53
+ this.tempMark.delete(node);
54
+ this.visited.add(node);
55
+ this.sortedEntities.push(node);
56
+ }
57
+ }
58
+ // Sort the entities based on dependencies
59
+ toStages(feature) {
60
+ this.buildGraph();
61
+ // Start topological sort
62
+ this.entities.forEach(entity => {
63
+ if (!this.visited.has(entity.name))
64
+ this.visit(entity.name);
65
+ });
66
+ const stages = [];
67
+ // Map sorted names back to entity objects
68
+ this.sortedEntities
69
+ .map(name => {
70
+ const step = this.entities.find(entity => entity.name === name);
71
+ let stage = stages.find(stage => {
72
+ return stage.after.every(after => step.after.includes(after))
73
+ && step.before.every(before => stage.after.includes(before));
74
+ });
75
+ if (!stage) {
76
+ stage = new A_Stage_class_1.A_Stage(feature);
77
+ stages.push(stage);
78
+ }
79
+ stage.add(step);
80
+ });
81
+ return stages;
82
+ }
83
+ }
84
+ exports.StepsManager = StepsManager;
85
+ //# sourceMappingURL=StepsManager.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepsManager.class.js","sourceRoot":"","sources":["../../../src/helpers/StepsManager.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { A_Channel } from "@adaas/a-concept/global/A-Channel/A-Channel.class";
2
+
3
+
4
+ export class TestChannel extends A_Channel<any> {
5
+
6
+
7
+ getVersion(
8
+ params
9
+ ) {
10
+
11
+ }
12
+
13
+
14
+ getUser() {
15
+
16
+ }
17
+
18
+
19
+ getPage() {
20
+ }
21
+
22
+
23
+
24
+ }