@adaas/a-concept 0.0.63 → 0.1.1

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 (412) hide show
  1. package/dist/index.d.ts +24 -32
  2. package/dist/index.js +35 -52
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/constants/env.constants.d.ts +15 -8
  5. package/dist/src/constants/env.constants.js +17 -10
  6. package/dist/src/constants/env.constants.js.map +1 -1
  7. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +23 -0
  8. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +69 -0
  9. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -0
  10. package/dist/src/global/A-Abstraction/A-Abstraction.class.d.ts +47 -20
  11. package/dist/src/global/A-Abstraction/A-Abstraction.class.js +55 -48
  12. package/dist/src/global/A-Abstraction/A-Abstraction.class.js.map +1 -1
  13. package/dist/src/global/A-Abstraction/A-Abstraction.error.d.ts +7 -0
  14. package/dist/src/global/A-Abstraction/A-Abstraction.error.js +12 -0
  15. package/dist/src/global/A-Abstraction/A-Abstraction.error.js.map +1 -0
  16. package/dist/src/global/A-Abstraction/A-Abstraction.types.d.ts +27 -12
  17. package/dist/src/global/A-Abstraction/A-Abstraction.types.js +0 -8
  18. package/dist/src/global/A-Abstraction/A-Abstraction.types.js.map +1 -1
  19. package/dist/src/global/A-Caller/A_Caller.class.d.ts +33 -0
  20. package/dist/src/global/A-Caller/A_Caller.class.js +44 -0
  21. package/dist/src/global/A-Caller/A_Caller.class.js.map +1 -0
  22. package/dist/src/global/A-Caller/A_Caller.error.d.ts +7 -0
  23. package/dist/src/global/A-Caller/A_Caller.error.js +12 -0
  24. package/dist/src/global/A-Caller/A_Caller.error.js.map +1 -0
  25. package/dist/src/global/A-Caller/A_Caller.types.d.ts +18 -0
  26. package/dist/src/{base/A-Errors/A-Errors.types.js → global/A-Caller/A_Caller.types.js} +1 -1
  27. package/dist/src/global/A-Caller/A_Caller.types.js.map +1 -0
  28. package/dist/src/global/A-Component/A-Component.class.d.ts +20 -3
  29. package/dist/src/global/A-Component/A-Component.class.js +35 -19
  30. package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
  31. package/dist/src/global/A-Component/A-Component.constants.d.ts +6 -0
  32. package/dist/src/global/A-Component/A-Component.constants.js +11 -0
  33. package/dist/src/global/A-Component/A-Component.constants.js.map +1 -0
  34. package/dist/src/global/A-Component/A-Component.meta.d.ts +4 -4
  35. package/dist/src/global/A-Component/A-Component.meta.js +6 -8
  36. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
  37. package/dist/src/global/A-Component/A-Component.types.d.ts +40 -22
  38. package/dist/src/global/A-Component/A-Component.types.js +1 -8
  39. package/dist/src/global/A-Component/A-Component.types.js.map +1 -1
  40. package/dist/src/global/A-Concept/A-Concept.class.d.ts +153 -0
  41. package/dist/src/global/A-Concept/A-Concept.class.js +260 -0
  42. package/dist/src/global/A-Concept/A-Concept.class.js.map +1 -0
  43. package/dist/src/global/A-Concept/A-Concept.constants.d.ts +33 -0
  44. package/dist/src/global/A-Concept/A-Concept.constants.js +39 -0
  45. package/dist/src/global/A-Concept/A-Concept.constants.js.map +1 -0
  46. package/dist/src/global/A-Concept/{A_Concept.meta.js → A-Concept.meta.js} +1 -2
  47. package/dist/src/global/A-Concept/A-Concept.meta.js.map +1 -0
  48. package/dist/src/global/A-Concept/A-Concept.types.d.ts +83 -0
  49. package/dist/src/global/{A-Channel/A-Channel.types.js → A-Concept/A-Concept.types.js} +1 -1
  50. package/dist/src/global/A-Concept/A-Concept.types.js.map +1 -0
  51. package/dist/src/global/A-Container/A-Container.class.d.ts +31 -35
  52. package/dist/src/global/A-Container/A-Container.class.js +34 -55
  53. package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
  54. package/dist/src/global/A-Container/A-Container.constants.d.ts +5 -0
  55. package/dist/src/global/A-Container/A-Container.constants.js +10 -0
  56. package/dist/src/global/A-Container/A-Container.constants.js.map +1 -0
  57. package/dist/src/global/A-Container/A-Container.meta.d.ts +6 -6
  58. package/dist/src/global/A-Container/A-Container.meta.js +5 -6
  59. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
  60. package/dist/src/global/A-Container/A-Container.types.d.ts +31 -25
  61. package/dist/src/global/A-Container/A-Container.types.js +1 -7
  62. package/dist/src/global/A-Container/A-Container.types.js.map +1 -1
  63. package/dist/src/global/A-Context/A-Context.class.d.ts +302 -76
  64. package/dist/src/global/A-Context/A-Context.class.js +436 -244
  65. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  66. package/dist/src/global/A-Context/A-Context.error.d.ts +20 -0
  67. package/dist/src/global/A-Context/A-Context.error.js +25 -0
  68. package/dist/src/global/A-Context/A-Context.error.js.map +1 -0
  69. package/dist/src/global/A-Context/A-Context.types.d.ts +5 -0
  70. package/dist/src/global/A-Context/A-Context.types.js +1 -0
  71. package/dist/src/global/A-Entity/A-Entity.class.d.ts +18 -18
  72. package/dist/src/global/A-Entity/A-Entity.class.js +36 -43
  73. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
  74. package/dist/src/global/A-Entity/A-Entity.constants.d.ts +11 -0
  75. package/dist/src/global/A-Entity/A-Entity.constants.js +17 -0
  76. package/dist/src/global/A-Entity/A-Entity.constants.js.map +1 -0
  77. package/dist/src/global/A-Entity/A-Entity.error.d.ts +7 -0
  78. package/dist/src/global/A-Entity/A-Entity.error.js +12 -0
  79. package/dist/src/global/A-Entity/A-Entity.error.js.map +1 -0
  80. package/dist/src/global/A-Entity/A-Entity.meta.d.ts +2 -2
  81. package/dist/src/global/A-Entity/A-Entity.meta.js +2 -2
  82. package/dist/src/global/A-Entity/A-Entity.meta.js.map +1 -1
  83. package/dist/src/global/A-Entity/A-Entity.types.d.ts +24 -29
  84. package/dist/src/global/A-Entity/A-Entity.types.js +1 -13
  85. package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -1
  86. package/dist/src/global/A-Error/A_Error.class.d.ts +219 -0
  87. package/dist/src/global/A-Error/A_Error.class.js +267 -0
  88. package/dist/src/global/A-Error/A_Error.class.js.map +1 -0
  89. package/dist/src/global/A-Error/A_Error.constants.d.ts +5 -0
  90. package/dist/src/global/A-Error/A_Error.constants.js +9 -0
  91. package/dist/src/global/A-Error/A_Error.constants.js.map +1 -0
  92. package/dist/src/global/A-Error/A_Error.types.d.ts +89 -0
  93. package/dist/src/{decorators/A-Inject/A-Inject.decorator.types.js → global/A-Error/A_Error.types.js} +1 -1
  94. package/dist/src/global/A-Error/A_Error.types.js.map +1 -0
  95. package/dist/src/global/A-Feature/A-Feature-Define.decorator.d.ts +15 -0
  96. package/dist/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.js +21 -27
  97. package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -0
  98. package/dist/src/{decorators → global}/A-Feature/A-Feature-Extend.decorator.d.ts +26 -3
  99. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +97 -0
  100. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -0
  101. package/dist/src/global/A-Feature/A-Feature.class.d.ts +120 -30
  102. package/dist/src/global/A-Feature/A-Feature.class.js +205 -73
  103. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
  104. package/dist/src/global/A-Feature/A-Feature.error.d.ts +25 -0
  105. package/dist/src/global/A-Feature/A-Feature.error.js +33 -0
  106. package/dist/src/global/A-Feature/A-Feature.error.js.map +1 -0
  107. package/dist/src/global/A-Feature/A-Feature.types.d.ts +241 -18
  108. package/dist/src/global/A-Feature/A-Feature.types.js +16 -22
  109. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
  110. package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +19 -27
  111. package/dist/src/global/A-Fragment/A-Fragment.class.js +21 -91
  112. package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -1
  113. package/dist/src/global/A-Fragment/A-Fragment.types.d.ts +19 -1
  114. package/dist/src/global/A-Fragment/A-Fragment.types.js +3 -0
  115. package/dist/src/global/A-Fragment/A-Fragment.types.js.map +1 -1
  116. package/dist/src/global/A-Inject/A-Inject.decorator.d.ts +80 -0
  117. package/dist/src/global/A-Inject/A-Inject.decorator.js +49 -0
  118. package/dist/src/global/A-Inject/A-Inject.decorator.js.map +1 -0
  119. package/dist/src/global/A-Inject/A-Inject.error.d.ts +5 -0
  120. package/dist/src/global/A-Inject/A-Inject.error.js +10 -0
  121. package/dist/src/global/A-Inject/A-Inject.error.js.map +1 -0
  122. package/dist/src/global/A-Inject/A-Inject.types.d.ts +42 -0
  123. package/dist/src/{decorators/A-Entity/A-Entity.decorator.types.js → global/A-Inject/A-Inject.types.js} +1 -1
  124. package/dist/src/global/A-Inject/A-Inject.types.js.map +1 -0
  125. package/dist/src/global/A-Meta/A-Meta.class.d.ts +1 -1
  126. package/dist/src/global/A-Meta/A-Meta.types.d.ts +14 -0
  127. package/dist/src/global/A-Meta/A-Meta.types.js +1 -0
  128. package/dist/src/global/A-Scope/A-Scope.class.d.ts +406 -63
  129. package/dist/src/global/A-Scope/A-Scope.class.js +533 -287
  130. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
  131. package/dist/src/global/A-Scope/A-Scope.error.d.ts +6 -0
  132. package/dist/src/global/A-Scope/A-Scope.error.js +11 -0
  133. package/dist/src/global/A-Scope/A-Scope.error.js.map +1 -0
  134. package/dist/src/global/A-Scope/A-Scope.types.d.ts +50 -13
  135. package/dist/src/global/A-Stage/A-Stage.class.d.ts +31 -23
  136. package/dist/src/global/A-Stage/A-Stage.class.js +100 -68
  137. package/dist/src/global/A-Stage/A-Stage.class.js.map +1 -1
  138. package/dist/src/global/A-Stage/A-Stage.error.d.ts +2 -1
  139. package/dist/src/global/A-Stage/A-Stage.error.js +5 -2
  140. package/dist/src/global/A-Stage/A-Stage.error.js.map +1 -1
  141. package/dist/src/global/A-Stage/A-Stage.types.d.ts +4 -16
  142. package/dist/src/global/A-Stage/A-Stage.types.js +0 -16
  143. package/dist/src/global/A-Stage/A-Stage.types.js.map +1 -1
  144. package/dist/src/global/ASEID/ASEID.class.d.ts +130 -0
  145. package/dist/src/global/ASEID/ASEID.class.js +167 -0
  146. package/dist/src/global/ASEID/ASEID.class.js.map +1 -0
  147. package/dist/src/global/ASEID/ASEID.constants.js +2 -0
  148. package/dist/src/global/ASEID/ASEID.constants.js.map +1 -0
  149. package/dist/src/global/ASEID/ASEID.error.d.ts +5 -0
  150. package/dist/src/global/ASEID/ASEID.error.js +10 -0
  151. package/dist/src/global/ASEID/ASEID.error.js.map +1 -0
  152. package/dist/src/global/ASEID/ASEID.types.d.ts +65 -0
  153. package/dist/src/global/ASEID/ASEID.types.js +5 -0
  154. package/dist/src/global/ASEID/ASEID.types.js.map +1 -0
  155. package/dist/src/helpers/A_Common.helper.d.ts +28 -0
  156. package/dist/src/helpers/A_Common.helper.js +170 -0
  157. package/dist/src/helpers/A_Common.helper.js.map +1 -0
  158. package/dist/src/helpers/A_Formatter.helper.d.ts +35 -0
  159. package/dist/src/helpers/A_Formatter.helper.js +62 -0
  160. package/dist/src/helpers/A_Formatter.helper.js.map +1 -0
  161. package/dist/src/helpers/A_Identity.helper.d.ts +29 -0
  162. package/dist/src/helpers/A_Identity.helper.js +43 -0
  163. package/dist/src/helpers/A_Identity.helper.js.map +1 -0
  164. package/dist/src/helpers/{StepsManager.class.d.ts → A_StepsManager.class.d.ts} +4 -2
  165. package/dist/src/helpers/{StepsManager.class.js → A_StepsManager.class.js} +10 -5
  166. package/dist/src/helpers/A_StepsManager.class.js.map +1 -0
  167. package/dist/src/helpers/A_TypeGuards.helper.d.ts +205 -0
  168. package/dist/src/helpers/A_TypeGuards.helper.js +288 -0
  169. package/dist/src/helpers/A_TypeGuards.helper.js.map +1 -0
  170. package/dist/src/types/A_Common.types.d.ts +36 -0
  171. package/dist/src/types/A_Common.types.js +3 -0
  172. package/dist/src/types/A_Common.types.js.map +1 -0
  173. package/index.ts +27 -51
  174. package/jest.config.ts +1 -0
  175. package/package.json +1 -2
  176. package/src/constants/env.constants.ts +18 -11
  177. package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +103 -0
  178. package/src/global/A-Abstraction/A-Abstraction.class.ts +71 -65
  179. package/src/global/A-Abstraction/A-Abstraction.error.ts +9 -0
  180. package/src/global/A-Abstraction/A-Abstraction.types.ts +52 -13
  181. package/src/global/A-Caller/A_Caller.class.ts +61 -0
  182. package/src/global/A-Caller/A_Caller.error.ts +10 -0
  183. package/src/global/A-Caller/A_Caller.types.ts +25 -0
  184. package/src/global/A-Component/A-Component.class.ts +26 -15
  185. package/src/global/A-Component/A-Component.constants.ts +9 -0
  186. package/src/global/A-Component/A-Component.meta.ts +6 -16
  187. package/src/global/A-Component/A-Component.types.ts +53 -28
  188. package/src/global/A-Concept/A-Concept.class.ts +316 -0
  189. package/src/global/A-Concept/A-Concept.constants.ts +36 -0
  190. package/src/global/A-Concept/A-Concept.meta.ts +17 -0
  191. package/src/global/A-Concept/A-Concept.types.ts +100 -0
  192. package/src/global/A-Container/A-Container.class.ts +42 -83
  193. package/src/global/A-Container/A-Container.constants.ts +5 -0
  194. package/src/global/A-Container/A-Container.meta.ts +7 -11
  195. package/src/global/A-Container/A-Container.types.ts +38 -34
  196. package/src/global/A-Context/A-Context.class.ts +648 -412
  197. package/src/global/A-Context/A-Context.error.ts +44 -0
  198. package/src/global/A-Context/A-Context.types.ts +14 -0
  199. package/src/global/A-Entity/A-Entity.class.ts +39 -52
  200. package/src/global/A-Entity/A-Entity.constants.ts +12 -0
  201. package/src/global/A-Entity/A-Entity.error.ts +12 -0
  202. package/src/global/A-Entity/A-Entity.meta.ts +4 -4
  203. package/src/global/A-Entity/A-Entity.types.ts +31 -36
  204. package/src/global/A-Error/A_Error.class.ts +408 -0
  205. package/src/global/A-Error/A_Error.constants.ts +11 -0
  206. package/src/global/A-Error/A_Error.types.ts +96 -0
  207. package/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.ts +31 -37
  208. package/src/global/A-Feature/A-Feature-Extend.decorator.ts +187 -0
  209. package/src/global/A-Feature/A-Feature.class.ts +279 -122
  210. package/src/global/A-Feature/A-Feature.error.ts +33 -0
  211. package/src/global/A-Feature/A-Feature.types.ts +278 -40
  212. package/src/global/A-Fragment/A-Fragment.class.ts +29 -100
  213. package/src/global/A-Fragment/A-Fragment.types.ts +25 -3
  214. package/src/global/A-Inject/A-Inject.decorator.ts +167 -0
  215. package/src/global/A-Inject/A-Inject.error.ts +8 -0
  216. package/src/global/A-Inject/A-Inject.types.ts +75 -0
  217. package/src/global/A-Meta/A-Meta.class.ts +1 -1
  218. package/src/global/A-Meta/A-Meta.types.ts +21 -0
  219. package/src/global/A-Scope/A-Scope.class.ts +841 -443
  220. package/src/global/A-Scope/A-Scope.error.ts +13 -0
  221. package/src/global/A-Scope/A-Scope.types.ts +65 -26
  222. package/src/global/A-Stage/A-Stage.class.ts +142 -80
  223. package/src/global/A-Stage/A-Stage.error.ts +4 -2
  224. package/src/global/A-Stage/A-Stage.types.ts +4 -25
  225. package/src/global/ASEID/ASEID.class.ts +275 -0
  226. package/src/global/ASEID/ASEID.error.ts +12 -0
  227. package/src/global/ASEID/ASEID.types.ts +79 -0
  228. package/src/helpers/A_Common.helper.ts +204 -0
  229. package/src/helpers/A_Formatter.helper.ts +58 -0
  230. package/src/helpers/A_Identity.helper.ts +53 -0
  231. package/src/helpers/{StepsManager.class.ts → A_StepsManager.class.ts} +19 -3
  232. package/src/helpers/A_TypeGuards.helper.ts +318 -0
  233. package/src/types/A_Common.types.ts +79 -0
  234. package/tests/A-Common.test.ts +117 -0
  235. package/tests/A-Component.test.ts +11 -6
  236. package/tests/A-Concept.test.ts +19 -22
  237. package/tests/A-Entity.test.ts +24 -24
  238. package/tests/A-Error.test.ts +129 -0
  239. package/tests/A-Feature.test.ts +34 -25
  240. package/tests/A-Scope.test.ts +50 -22
  241. package/tests/ASEID.test.ts +74 -0
  242. package/tsconfig.build.json +2 -1
  243. package/tsconfig.json +3 -2
  244. package/dist/src/base/A-Config/A-Config.container.d.ts +0 -9
  245. package/dist/src/base/A-Config/A-Config.container.js +0 -69
  246. package/dist/src/base/A-Config/A-Config.container.js.map +0 -1
  247. package/dist/src/base/A-Config/A-Config.context.d.ts +0 -30
  248. package/dist/src/base/A-Config/A-Config.context.js +0 -60
  249. package/dist/src/base/A-Config/A-Config.context.js.map +0 -1
  250. package/dist/src/base/A-Config/A-Config.types.d.ts +0 -20
  251. package/dist/src/base/A-Config/A-Config.types.js +0 -7
  252. package/dist/src/base/A-Config/A-Config.types.js.map +0 -1
  253. package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +0 -29
  254. package/dist/src/base/A-Config/components/ConfigReader.component.js +0 -84
  255. package/dist/src/base/A-Config/components/ConfigReader.component.js.map +0 -1
  256. package/dist/src/base/A-Config/components/ENVConfigReader.component.d.ts +0 -10
  257. package/dist/src/base/A-Config/components/ENVConfigReader.component.js +0 -37
  258. package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +0 -1
  259. package/dist/src/base/A-Config/components/FileConfigReader.component.d.ts +0 -11
  260. package/dist/src/base/A-Config/components/FileConfigReader.component.js +0 -48
  261. package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +0 -1
  262. package/dist/src/base/A-Errors/A-Error.entity.d.ts +0 -3
  263. package/dist/src/base/A-Errors/A-Error.entity.js +0 -8
  264. package/dist/src/base/A-Errors/A-Error.entity.js.map +0 -1
  265. package/dist/src/base/A-Errors/A-Errors.component.d.ts +0 -19
  266. package/dist/src/base/A-Errors/A-Errors.component.js +0 -87
  267. package/dist/src/base/A-Errors/A-Errors.component.js.map +0 -1
  268. package/dist/src/base/A-Errors/A-Errors.context.d.ts +0 -27
  269. package/dist/src/base/A-Errors/A-Errors.context.js +0 -50
  270. package/dist/src/base/A-Errors/A-Errors.context.js.map +0 -1
  271. package/dist/src/base/A-Errors/A-Errors.types.d.ts +0 -5
  272. package/dist/src/base/A-Errors/A-Errors.types.js.map +0 -1
  273. package/dist/src/base/A-Logger/A-Logger.component.d.ts +0 -31
  274. package/dist/src/base/A-Logger/A-Logger.component.js +0 -155
  275. package/dist/src/base/A-Logger/A-Logger.component.js.map +0 -1
  276. package/dist/src/base/A-Logger/A-Logger.types.js +0 -2
  277. package/dist/src/base/A-Logger/A-Logger.types.js.map +0 -1
  278. package/dist/src/base/A-Polyfill/A-Polyfill.component.d.ts +0 -5
  279. package/dist/src/base/A-Polyfill/A-Polyfill.component.js +0 -34
  280. package/dist/src/base/A-Polyfill/A-Polyfill.component.js.map +0 -1
  281. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +0 -14
  282. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js +0 -53
  283. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js.map +0 -1
  284. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.d.ts +0 -2
  285. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js +0 -3
  286. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js.map +0 -1
  287. package/dist/src/decorators/A-Connect/A-Connect.decorator.d.ts +0 -19
  288. package/dist/src/decorators/A-Connect/A-Connect.decorator.js +0 -31
  289. package/dist/src/decorators/A-Connect/A-Connect.decorator.js.map +0 -1
  290. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.d.ts +0 -1
  291. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js +0 -3
  292. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js.map +0 -1
  293. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.d.ts +0 -1
  294. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js +0 -8
  295. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js.map +0 -1
  296. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.d.ts +0 -14
  297. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js.map +0 -1
  298. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +0 -19
  299. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +0 -1
  300. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +0 -81
  301. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +0 -1
  302. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +0 -96
  303. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js +0 -3
  304. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js.map +0 -1
  305. package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +0 -30
  306. package/dist/src/decorators/A-Inject/A-Inject.decorator.js +0 -47
  307. package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +0 -1
  308. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +0 -48
  309. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.js.map +0 -1
  310. package/dist/src/global/A-Channel/A-Channel.class.d.ts +0 -16
  311. package/dist/src/global/A-Channel/A-Channel.class.js +0 -59
  312. package/dist/src/global/A-Channel/A-Channel.class.js.map +0 -1
  313. package/dist/src/global/A-Channel/A-Channel.types.d.ts +0 -68
  314. package/dist/src/global/A-Channel/A-Channel.types.js.map +0 -1
  315. package/dist/src/global/A-Command/A-Command.class.d.ts +0 -187
  316. package/dist/src/global/A-Command/A-Command.class.js +0 -349
  317. package/dist/src/global/A-Command/A-Command.class.js.map +0 -1
  318. package/dist/src/global/A-Command/A-Command.constants.d.ts +0 -17
  319. package/dist/src/global/A-Command/A-Command.constants.js +0 -22
  320. package/dist/src/global/A-Command/A-Command.constants.js.map +0 -1
  321. package/dist/src/global/A-Command/A-Command.meta.d.ts +0 -11
  322. package/dist/src/global/A-Command/A-Command.meta.js +0 -18
  323. package/dist/src/global/A-Command/A-Command.meta.js.map +0 -1
  324. package/dist/src/global/A-Command/A-Command.types.d.ts +0 -43
  325. package/dist/src/global/A-Command/A-Command.types.js +0 -10
  326. package/dist/src/global/A-Command/A-Command.types.js.map +0 -1
  327. package/dist/src/global/A-Command/context/A_Command.context.d.ts +0 -64
  328. package/dist/src/global/A-Command/context/A_Command.context.js +0 -85
  329. package/dist/src/global/A-Command/context/A_Command.context.js.map +0 -1
  330. package/dist/src/global/A-Concept/A_Concept.class.d.ts +0 -104
  331. package/dist/src/global/A-Concept/A_Concept.class.js +0 -217
  332. package/dist/src/global/A-Concept/A_Concept.class.js.map +0 -1
  333. package/dist/src/global/A-Concept/A_Concept.meta.js.map +0 -1
  334. package/dist/src/global/A-Concept/A_Concept.types.d.ts +0 -103
  335. package/dist/src/global/A-Concept/A_Concept.types.js +0 -28
  336. package/dist/src/global/A-Concept/A_Concept.types.js.map +0 -1
  337. package/dist/src/global/A-Feature/A-FeatureCaller.class.d.ts +0 -22
  338. package/dist/src/global/A-Feature/A-FeatureCaller.class.js +0 -26
  339. package/dist/src/global/A-Feature/A-FeatureCaller.class.js.map +0 -1
  340. package/dist/src/helpers/StepsManager.class.js.map +0 -1
  341. package/dist/src/types/A_Module.types.d.ts +0 -17
  342. package/dist/src/types/A_Module.types.js +0 -22
  343. package/dist/src/types/A_Module.types.js.map +0 -1
  344. package/examples/entity/concept.ts +0 -68
  345. package/examples/entity/entities/Task.entity.ts +0 -110
  346. package/examples/entity/entities/User.entity.ts +0 -62
  347. package/examples/fe-be/channels/Test.channel.ts +0 -27
  348. package/examples/fe-be/components/BE-Controller.component.ts +0 -20
  349. package/examples/fe-be/components/FE.component.ts +0 -13
  350. package/examples/fe-be/containers/ServerApp.container.ts +0 -8
  351. package/examples/fe-be/containers/WebApp.container.ts +0 -13
  352. package/examples/multi-container/channels/Direct.channel.ts +0 -39
  353. package/examples/multi-container/concept.ts +0 -0
  354. package/examples/multi-container/containers/Command.container.ts +0 -41
  355. package/examples/multi-container/containers/Schedule.container.ts +0 -52
  356. package/examples/simple/components/A.component.ts +0 -71
  357. package/examples/simple/components/B.component.ts +0 -68
  358. package/examples/simple/concept.ts +0 -87
  359. package/examples/simple/containers/Main.container.ts +0 -88
  360. package/examples/simple/containers/Secondary.container.ts +0 -26
  361. package/examples/simple/context/Fragment_A.context.ts +0 -25
  362. package/examples/simple/context/Fragment_B.context.ts +0 -19
  363. package/examples/simple/entities/EntityA.entity.ts +0 -32
  364. package/examples/simple-http-server/components/http-error-handler.component.ts +0 -47
  365. package/examples/simple-http-server/components/http-request-handler.component.ts +0 -13
  366. package/examples/simple-http-server/concept.ts +0 -35
  367. package/examples/simple-http-server/containers/http-server.container.ts +0 -57
  368. package/examples/simple-http-server/contexts/http-request.context.ts +0 -59
  369. package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -0
  370. package/examples/simple-http-server/controllers/orders.controller.ts +0 -20
  371. package/examples/simple-http-server/controllers/users.controller.ts +0 -104
  372. package/examples/simple-http-server/test.ts +0 -290
  373. package/src/base/A-Config/A-Config.container.ts +0 -68
  374. package/src/base/A-Config/A-Config.context.ts +0 -114
  375. package/src/base/A-Config/A-Config.types.ts +0 -28
  376. package/src/base/A-Config/components/ConfigReader.component.ts +0 -68
  377. package/src/base/A-Config/components/ENVConfigReader.component.ts +0 -31
  378. package/src/base/A-Config/components/FileConfigReader.component.ts +0 -41
  379. package/src/base/A-Errors/A-Error.entity.ts +0 -10
  380. package/src/base/A-Errors/A-Errors.component.ts +0 -103
  381. package/src/base/A-Errors/A-Errors.context.ts +0 -90
  382. package/src/base/A-Errors/A-Errors.types.ts +0 -6
  383. package/src/base/A-Logger/A-Logger.component.ts +0 -192
  384. package/src/base/A-Logger/A-Logger.types.ts +0 -0
  385. package/src/base/A-Polyfill/A-Polyfill.component.ts +0 -18
  386. package/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.ts +0 -81
  387. package/src/decorators/A-Abstraction/A-Abstraction.decorator.types.ts +0 -21
  388. package/src/decorators/A-Connect/A-Connect.decorator.ts +0 -71
  389. package/src/decorators/A-Connect/A-Connect.decorator.types.ts +0 -6
  390. package/src/decorators/A-Entity/A-Entity-List.decorator.ts +0 -12
  391. package/src/decorators/A-Entity/A-Entity.decorator.types.ts +0 -18
  392. package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +0 -151
  393. package/src/decorators/A-Feature/A-Feature.decorator.types.ts +0 -142
  394. package/src/decorators/A-Inject/A-Inject.decorator.ts +0 -119
  395. package/src/decorators/A-Inject/A-Inject.decorator.types.ts +0 -85
  396. package/src/global/A-Channel/A-Channel.class.ts +0 -111
  397. package/src/global/A-Channel/A-Channel.types.ts +0 -114
  398. package/src/global/A-Command/A-Command.class.ts +0 -419
  399. package/src/global/A-Command/A-Command.constants.ts +0 -27
  400. package/src/global/A-Command/A-Command.meta.ts +0 -22
  401. package/src/global/A-Command/A-Command.types.ts +0 -73
  402. package/src/global/A-Command/context/A_Command.context.ts +0 -114
  403. package/src/global/A-Concept/A_Concept.class.ts +0 -298
  404. package/src/global/A-Concept/A_Concept.meta.ts +0 -32
  405. package/src/global/A-Concept/A_Concept.types.ts +0 -143
  406. package/src/global/A-Feature/A-FeatureCaller.class.ts +0 -38
  407. package/src/types/A_Module.types.ts +0 -23
  408. package/tests/A-Command.test.ts +0 -133
  409. package/tests/A-Config.test.ts +0 -172
  410. /package/dist/src/global/A-Concept/{A_Concept.meta.d.ts → A-Concept.meta.d.ts} +0 -0
  411. /package/dist/src/{base/A-Logger/A-Logger.types.d.ts → global/ASEID/ASEID.constants.d.ts} +0 -0
  412. /package/{examples/fe-be/concept.ts → src/global/ASEID/ASEID.constants.ts} +0 -0
@@ -0,0 +1,13 @@
1
+ import { A_Error } from "../A-Error/A_Error.class";
2
+
3
+ export class A_ScopeError extends A_Error {
4
+
5
+
6
+ static readonly InitializationError = 'A-Scope Initialization Error';
7
+
8
+ static readonly ConstructorError = 'Unable to construct A-Scope instance';
9
+
10
+
11
+ static readonly CircularInheritanceError = 'A-Scope Circular Inheritance Error';
12
+
13
+ }
@@ -1,12 +1,33 @@
1
- import { A_Command } from "../A-Command/A-Command.class"
2
1
  import { A_Component } from "../A-Component/A-Component.class"
2
+ import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types"
3
+ import { A_Container } from "../A-Container/A-Container.class"
3
4
  import { A_Entity } from "../A-Entity/A-Entity.class"
5
+ import { A_TYPES__Entity_Constructor } from "../A-Entity/A-Entity.types"
6
+ import { A_Feature } from "../A-Feature/A-Feature.class"
4
7
  import { A_Fragment } from "../A-Fragment/A-Fragment.class"
8
+ import { A_Caller } from "../A-Caller/A_Caller.class"
9
+ import { A_Error } from "../A-Error/A_Error.class"
10
+ import { A_TYPES__Error_Constructor } from "../A-Error/A_Error.types"
5
11
  import { A_Scope } from "./A-Scope.class"
6
12
 
7
13
 
8
- export type A_TYPES__ScopeConstructor = {
9
-
14
+ // ============================================================================
15
+ // --------------------------- Primary Types ----------------------------------
16
+ // ============================================================================
17
+ /**
18
+ * Scope constructor type
19
+ * Uses the generic type T to specify the type of the Scope
20
+ */
21
+ export type A_TYPES__Scope_Constructor<T = A_Scope> = new (...args: any[]) => T;
22
+ /**
23
+ * Scope initialization type
24
+ */
25
+ export type A_TYPES__Scope_Init<
26
+ _ComponentType extends A_TYPES__Component_Constructor[] = A_TYPES__Component_Constructor[],
27
+ _ErrorType extends A_TYPES__Error_Constructor[] = A_TYPES__Error_Constructor[],
28
+ _EntityType extends A_TYPES__Entity_Constructor[] = A_TYPES__Entity_Constructor[],
29
+ _FragmentType extends A_Fragment[] = A_Fragment[],
30
+ > = {
10
31
  /**
11
32
  * Scope Name
12
33
  */
@@ -14,38 +35,56 @@ export type A_TYPES__ScopeConstructor = {
14
35
  /**
15
36
  * A list of Context Fragments available in the Scope
16
37
  */
17
- fragments: Array<A_Fragment>
38
+ fragments: [..._FragmentType];
18
39
  /**
19
40
  * A set of Components available in the Scope
20
41
  */
21
- components: Array<{ new(...args: any[]): A_Component }>
22
-
23
- /**
24
- * A set of Entities available in the Scope
25
- *
26
- */
27
- entities: Array<A_Entity>
28
-
29
-
30
- /**
31
- * A set of Commands available in the Scope
32
- */
33
- commands: Array<{ new(...args: any[]): A_Command }>
34
-
42
+ components: [..._ComponentType],
35
43
  /**
36
- * A list of Features/Lifecycle Hooks available in the Scope
44
+ * A set of Errors available in the Scope
37
45
  */
38
- // import: Array<string>,
46
+ errors: [..._ErrorType],
39
47
  /**
40
- * A list of Features/Lifecycle Hooks available to be exported from the Scope
48
+ * A set of Entities available in the Scope
49
+ *
41
50
  */
42
- // export: Array<string>
43
- }
44
-
45
-
51
+ entities: [
52
+ ..._EntityType,
53
+ ...InstanceType<_EntityType[number]>[]
54
+ ];
55
+ };
56
+ /**
57
+ * Scope configuration type
58
+ */
46
59
  export type A_TYPES__ScopeConfig = {
47
60
  /**
48
61
  * Allows to define a parent to take dependencies from in case of the current scope does not have the required component
49
62
  */
50
63
  parent: A_Scope
51
- }
64
+ }
65
+ /**
66
+ * Scope serialized type
67
+ */
68
+ export type A_TYPES__Scope_Serialized = {}
69
+
70
+
71
+
72
+
73
+ /**
74
+ * A list of components that can have a scope associated with them
75
+ */
76
+ export type A_TYPES__ScopeLinkedComponents = A_Container | A_Feature;
77
+ /**
78
+ * A list of components that can be resolved by a scope
79
+ */
80
+ export type A_TYPES__ScopeResolvableComponents = A_Component | A_Fragment | A_Entity | A_Fragment
81
+ /**
82
+ * A list of components that are dependent on a scope and do not have their own scope
83
+ */
84
+ export type A_TYPES_ScopeDependentComponents = A_Component | A_Entity | A_Fragment
85
+ /**
86
+ * A list of components that are independent of a scope. They don't need a scope to be resolved
87
+ * Those components haven't scope dependent features.
88
+ */
89
+ export type A_TYPES_ScopeIndependentComponents = A_Error | A_Scope | A_Caller
90
+
@@ -1,51 +1,56 @@
1
- import { A_CommonHelper, A_Error } from "@adaas/a-utils";
1
+ import {
2
+ A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status,
3
+ A_TYPES__A_StageStep, A_TYPES__A_StageStepProcessingExtraParams
4
+ } from "./A-Stage.types";
2
5
  import { A_Context } from "../A-Context/A-Context.class";
3
6
  import { A_Feature } from "../A-Feature/A-Feature.class";
4
- import { A_TYPES__A_Stage_JSON, A_TYPES__A_Stage_Status, A_TYPES__A_StageStep, A_TYPES__A_StageStepProcessingExtraParams } from "./A-Stage.types";
5
- import { A_Container } from "../A-Container/A-Container.class";
6
7
  import { A_Scope } from "../A-Scope/A-Scope.class";
7
8
  import { A_StageError } from "./A-Stage.error";
8
- import { A_FeatureCaller } from "../A-Feature/A-FeatureCaller.class";
9
- import { A_Entity } from "../A-Entity/A-Entity.class";
9
+ import { A_Error } from "../A-Error/A_Error.class";
10
+ import { A_TypeGuards } from "@adaas/a-concept/helpers/A_TypeGuards.helper";
11
+ import { A_TYPES__ScopeResolvableComponents } from "../A-Scope/A-Scope.types";
12
+ import { A_TYPES__Container_Constructor } from "../A-Container/A-Container.types";
13
+ import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types";
14
+ import { A_TYPES__InjectableConstructors } from "@adaas/a-concept/global/A-Inject/A-Inject.types";
10
15
 
11
16
 
12
- /**
13
- * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
14
- * Each stage may contain one or more functions.
15
- * [!] That always run in parallel (in NodeJS asynchronously), independently of each other.
16
- *
17
- * A-Stage is a common object that uses to simplify logic and re-use of A-Feature internals for better composition.
18
- */
19
- export class A_Stage {
20
17
 
21
- readonly name: string = 'A_Stage';
18
+ export class A_Stage {
22
19
 
23
- private readonly feature!: A_Feature;
20
+ private readonly _feature!: A_Feature;
24
21
  private readonly _steps!: A_TYPES__A_StageStep[];
22
+ private _error?: Error | A_Error | any;
23
+
25
24
 
25
+ /**
26
+ * A_Stage is a set of A_Functions within A_Feature that should be run in a specific order.
27
+ * Each stage may contain one or more functions.
28
+ * [!] That always run in parallel (in NodeJS asynchronously), independently of each other.
29
+ *
30
+ * A-Stage is a common object that uses to simplify logic and re-use of A-Feature internals for better composition.
31
+ */
26
32
  constructor(
27
33
  feature: A_Feature,
28
- _steps: A_TYPES__A_StageStep[] = []
34
+ steps: A_TYPES__A_StageStep[] = []
29
35
  ) {
30
- this.feature = feature;
31
- this._steps = _steps;
32
- this.name = `${this.feature.name}::a-stage:[sync:${this
33
- .syncSteps
34
- .map(s => typeof s.component === 'string' ? s.component : s.component.name + '.' + s.handler)
35
- .join(' -> ')}][async:${this
36
- .asyncSteps
37
- .map(s => typeof s.component === 'string' ? s.component : s.component.name + '.' + s.handler)
38
- .join(' -> ')}]`;
39
-
36
+ this._feature = feature;
37
+ this._steps = steps;
40
38
  }
41
39
 
42
40
  status: A_TYPES__A_Stage_Status = A_TYPES__A_Stage_Status.INITIALIZED;
41
+
43
42
  /**
44
43
  * Promise that will be resolved when the stage is Processed
45
44
  */
46
45
  processed: Promise<void> | undefined;
47
46
 
48
47
 
48
+
49
+
50
+ get name(): string {
51
+ return this.toString();
52
+ }
53
+
49
54
  get before(): string[] {
50
55
  return this._steps.reduce((acc, step) => ([
51
56
  ...acc,
@@ -64,7 +69,6 @@ export class A_Stage {
64
69
  return this._steps;
65
70
  }
66
71
 
67
-
68
72
  get asyncSteps(): A_TYPES__A_StageStep[] {
69
73
  return this._steps.filter(step => step.behavior === 'async');
70
74
  }
@@ -81,29 +85,47 @@ export class A_Stage {
81
85
  * @returns
82
86
  */
83
87
  protected async getStepArgs(
84
- step: A_TYPES__A_StageStep,
85
- scope: A_Scope
88
+ scope: A_Scope,
89
+ step: A_TYPES__A_StageStep
86
90
  ) {
91
+ let resolverConstructor: A_TYPES__Container_Constructor | A_TYPES__Component_Constructor;
92
+
93
+ switch (true) {
94
+ case A_TypeGuards.isContainerInstance(step.component):
95
+ resolverConstructor = step.component.constructor as A_TYPES__Container_Constructor;
96
+ break;
97
+
98
+ case A_TypeGuards.isString(step.component):
99
+ resolverConstructor = scope.resolveConstructor(step.component);
100
+ break;
101
+
102
+ default:
103
+ resolverConstructor = step.component;
104
+ break;
105
+ }
106
+
87
107
 
88
108
  return Promise
89
109
  .all(A_Context
90
- .meta(
91
- // TODO: fix types
92
- (step.component instanceof A_Container
93
- ? step.component.constructor
94
- : step.component) as any
95
-
96
- )
110
+ .meta(resolverConstructor)
97
111
  .injections(step.handler)
98
112
  .map(async arg => {
99
- if (A_CommonHelper.isInheritedFrom(arg.target, A_FeatureCaller))
100
- return this.feature.Caller.resolve();
113
+ switch (true) {
114
+ case A_TypeGuards.isCallerConstructor(arg.target):
115
+ return this._feature.caller.component;
101
116
 
117
+ case A_TypeGuards.isScopeConstructor(arg.target):
118
+ return scope;
102
119
 
103
- if (A_CommonHelper.isInheritedFrom(arg.target, A_Feature))
104
- return this.feature;
120
+ case A_TypeGuards.isFeatureConstructor(arg.target):
121
+ return this._feature;
105
122
 
106
- return scope.resolve((arg as any).target, (arg as any).instructions)
123
+ case A_TypeGuards.isEntityConstructor(arg.target) && 'instructions' in arg:
124
+ return scope.resolve(arg.target, arg.instructions)
125
+
126
+ default:
127
+ return scope.resolve(arg.target)
128
+ }
107
129
  })
108
130
  )
109
131
  }
@@ -130,21 +152,33 @@ export class A_Stage {
130
152
  * @param step
131
153
  * @returns
132
154
  */
133
- protected getStepInstance(step: A_TYPES__A_StageStep) {
155
+ protected getStepInstance(
156
+ scope: A_Scope,
157
+ step: A_TYPES__A_StageStep
158
+ ) {
134
159
  const { component, handler } = step;
135
160
 
161
+ let instance: A_TYPES__ScopeResolvableComponents | undefined
136
162
 
137
- // TODO: probably would be better to do it another way. let's think about it
138
- const instance = component instanceof A_Container
139
- ? component
140
- // TODO: fix types
141
- : this.feature.Scope.resolve(component as any);
163
+ switch (true) {
164
+ case A_TypeGuards.isContainerInstance(component):
165
+ instance = component;
166
+ break;
167
+
168
+ case A_TypeGuards.isString(component):
169
+ instance = scope.resolve(component);
170
+ break;
171
+
172
+ default:
173
+ instance = scope.resolve(component);
174
+ break;
175
+ }
142
176
 
143
177
  if (!instance)
144
- throw new Error(`Unable to resolve component ${typeof component === 'string' ? component : component.name} from scope ${this.feature.Scope.name}`);
178
+ throw new A_StageError(A_StageError.CompileError, `Unable to resolve component ${typeof component === 'string' ? component : component.name} from scope ${scope.name}`);
145
179
 
146
180
  if (!instance[handler])
147
- throw new Error(`Handler ${handler} not found in ${instance.constructor.name}`);
181
+ throw new A_StageError(A_StageError.CompileError, `Handler ${handler} not found in ${instance.constructor.name}`);
148
182
 
149
183
  return instance;
150
184
  }
@@ -161,30 +195,54 @@ export class A_Stage {
161
195
  step: A_TYPES__A_StageStep,
162
196
  scope: A_Scope
163
197
  ) {
164
- const instance = await this.getStepInstance(step);
165
- const callArgs = await this.getStepArgs(step, scope);
198
+ const instance = await this.getStepInstance(scope, step);
199
+ const callArgs = await this.getStepArgs(scope, step);
166
200
 
167
201
  return await instance[step.handler](...callArgs);
168
202
  }
169
203
 
170
204
 
205
+ skip() {
206
+ this.status = A_TYPES__A_Stage_Status.SKIPPED;
207
+ }
208
+
209
+
171
210
  /**
172
- * Runs async all the _steps of the stage
211
+ * This method processes the stage by executing all the steps
173
212
  *
174
- * @returns
213
+ * @param scope - Scope to be used to resolve the steps dependencies
175
214
  */
176
215
  async process(
177
216
  /**
178
217
  * Scope to be used to resolve the steps dependencies
179
218
  */
180
- scope: A_Scope = new A_Scope({}, {}),
219
+ scope?: A_Scope,
220
+ ): Promise<void>
221
+ async process(
222
+ /**
223
+ * Extra parameters to control the steps processing
224
+ */
181
225
  params?: Partial<A_TYPES__A_StageStepProcessingExtraParams>
226
+ ): Promise<void>
227
+ async process(
228
+ /**
229
+ * Scope to be used to resolve the steps dependencies
230
+ */
231
+ param1?: A_Scope | Partial<A_TYPES__A_StageStepProcessingExtraParams>,
232
+ /**
233
+ * Extra parameters to control the steps processing
234
+ */
235
+ param2?: Partial<A_TYPES__A_StageStepProcessingExtraParams>
182
236
  ): Promise<void> {
183
237
 
184
- scope = scope.inherit(this.feature.Scope);
238
+ const scope = A_TypeGuards.isScopeInstance(param1)
239
+ ? param1
240
+ : A_Context.scope(this._feature);
185
241
 
242
+ const params = A_TypeGuards.isScopeInstance(param1)
243
+ ? param2
244
+ : param1;
186
245
 
187
- // console.log(' -> Init stage processing:', this.name);
188
246
 
189
247
  if (!this.processed)
190
248
  this.processed = new Promise<void>(
@@ -229,9 +287,7 @@ export class A_Stage {
229
287
 
230
288
  this.completed();
231
289
 
232
- // console.log(' -> Finished stage processing:', this.name);
233
290
  return resolve();
234
-
235
291
  } catch (error) {
236
292
  this.failed(error);
237
293
 
@@ -244,35 +300,20 @@ export class A_Stage {
244
300
  }
245
301
 
246
302
 
247
- /**
248
- * Skips the stage
249
- *
250
- */
251
- skip() {
252
- this.status = A_TYPES__A_Stage_Status.SKIPPED;
253
-
254
- this.feature.next(this);
255
- }
256
-
257
-
258
-
259
-
260
303
  // ==========================================
261
304
  // ============ Status methods =============
262
305
  // ==========================================
263
306
 
264
307
  protected completed() {
265
308
  this.status = A_TYPES__A_Stage_Status.COMPLETED;
266
-
267
- this.feature.next(this);
268
309
  }
269
310
 
270
311
  protected failed(
271
- error: Error | A_Error | unknown
312
+ error: Error | A_Error | any
272
313
  ) {
273
- this.status = A_TYPES__A_Stage_Status.FAILED;
314
+ this._error = error;
274
315
 
275
- this.feature.failed(new A_StageError(error));
316
+ this.status = A_TYPES__A_Stage_Status.FAILED;
276
317
  }
277
318
 
278
319
 
@@ -280,17 +321,38 @@ export class A_Stage {
280
321
  // ==========================================
281
322
  // ============ Serialization ===============
282
323
  // ==========================================
283
-
284
-
285
324
  /**
286
325
  * Serializes the stage to JSON
287
326
  *
288
327
  */
289
328
  toJSON(): A_TYPES__A_Stage_JSON {
290
-
291
329
  return {
292
- name: 'A_Stage',
330
+ name: this.name,
293
331
  status: this.status,
294
332
  }
295
333
  }
334
+
335
+ /**
336
+ * Returns a string representation of the stage
337
+ *
338
+ * @returns
339
+ */
340
+ toString() {
341
+ return [
342
+ this._feature.name,
343
+ '::a-stage:',
344
+ '[sync:',
345
+ this
346
+ .syncSteps
347
+ .map(s => typeof s.component === 'string' ? s.component : s.component.name + '.' + s.handler)
348
+ .join(' -> '),
349
+ ']',
350
+ '[async:',
351
+ this
352
+ .asyncSteps
353
+ .map(s => typeof s.component === 'string' ? s.component : s.component.name + '.' + s.handler)
354
+ .join(' -> '),
355
+ ']'
356
+ ].join('');
357
+ }
296
358
  }
@@ -1,9 +1,11 @@
1
- import { A_Error } from "@adaas/a-utils";
1
+ import { A_Error } from "../A-Error/A_Error.class";
2
2
 
3
3
 
4
4
  export class A_StageError extends A_Error {
5
5
 
6
6
 
7
-
7
+ static get CompileError(): string {
8
+ return 'Unable to compile A-Stage';
9
+ }
8
10
 
9
11
  }
@@ -1,8 +1,6 @@
1
- import { A_Component } from "../A-Component/A-Component.class"
2
1
  import { A_Container } from "../A-Container/A-Container.class"
3
- import { A_TYPES__A_ExtendDecorator_BehaviorConfig } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator.types"
4
- import { A_TYPES__ScopeConfig, A_TYPES__ScopeConstructor } from "../A-Scope/A-Scope.types"
5
- import { A_Scope } from "../A-Scope/A-Scope.class"
2
+ import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types"
3
+ import { A_TYPES__FeatureExtendDecoratorBehaviorConfig } from "../A-Feature/A-Feature.types"
6
4
 
7
5
 
8
6
 
@@ -39,22 +37,6 @@ export enum A_TYPES__A_Stage_Status {
39
37
  * The stage has been initialized
40
38
  */
41
39
  INITIALIZED = 'INITIALIZED',
42
- /**
43
- * The stage has been reset
44
- */
45
- // RESET = 'RESET',
46
- /**
47
- * The stage has been resumed
48
- */
49
- // RESUMED = 'RESUMED',
50
- /**
51
- * The stage has been suspended
52
- */
53
- // SUSPENDED = 'SUSPENDED',
54
- /**
55
- * The stage has been terminated
56
- */
57
- // TERMINATED = 'TERMINATED',
58
40
  /**
59
41
  * The stage has been aborted
60
42
  */
@@ -63,17 +45,14 @@ export enum A_TYPES__A_Stage_Status {
63
45
 
64
46
 
65
47
  export type A_TYPES__A_StageStep = {
66
-
67
48
  /**
68
49
  * The component to be called
69
50
  */
70
- component: typeof A_Component | A_Container | string
71
-
51
+ component: A_TYPES__Component_Constructor | A_Container | string
72
52
  /**
73
53
  * The method to be called on the component
74
54
  */
75
55
  handler: string,
76
-
77
56
  /**
78
57
  * Original Feature Extension name
79
58
  *
@@ -82,7 +61,7 @@ export type A_TYPES__A_StageStep = {
82
61
  */
83
62
  name: string,
84
63
 
85
- } & A_TYPES__A_ExtendDecorator_BehaviorConfig
64
+ } & A_TYPES__FeatureExtendDecoratorBehaviorConfig
86
65
 
87
66
 
88
67