@adaas/a-concept 0.0.64 → 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 (416) 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 +124 -142
  129. package/dist/src/global/A-Scope/A-Scope.class.js +163 -209
  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 +48 -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 +288 -299
  220. package/src/global/A-Scope/A-Scope.error.ts +13 -0
  221. package/src/global/A-Scope/A-Scope.types.ts +61 -27
  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/global/A-Scope/A-Scope.constants.d.ts +0 -2
  341. package/dist/src/global/A-Scope/A-Scope.constants.js +0 -11
  342. package/dist/src/global/A-Scope/A-Scope.constants.js.map +0 -1
  343. package/dist/src/helpers/StepsManager.class.js.map +0 -1
  344. package/dist/src/types/A_Module.types.d.ts +0 -17
  345. package/dist/src/types/A_Module.types.js +0 -22
  346. package/dist/src/types/A_Module.types.js.map +0 -1
  347. package/examples/entity/concept.ts +0 -68
  348. package/examples/entity/entities/Task.entity.ts +0 -110
  349. package/examples/entity/entities/User.entity.ts +0 -62
  350. package/examples/fe-be/channels/Test.channel.ts +0 -27
  351. package/examples/fe-be/components/BE-Controller.component.ts +0 -20
  352. package/examples/fe-be/components/FE.component.ts +0 -13
  353. package/examples/fe-be/containers/ServerApp.container.ts +0 -8
  354. package/examples/fe-be/containers/WebApp.container.ts +0 -13
  355. package/examples/multi-container/channels/Direct.channel.ts +0 -39
  356. package/examples/multi-container/concept.ts +0 -0
  357. package/examples/multi-container/containers/Command.container.ts +0 -41
  358. package/examples/multi-container/containers/Schedule.container.ts +0 -52
  359. package/examples/simple/components/A.component.ts +0 -71
  360. package/examples/simple/components/B.component.ts +0 -68
  361. package/examples/simple/concept.ts +0 -87
  362. package/examples/simple/containers/Main.container.ts +0 -88
  363. package/examples/simple/containers/Secondary.container.ts +0 -26
  364. package/examples/simple/context/Fragment_A.context.ts +0 -25
  365. package/examples/simple/context/Fragment_B.context.ts +0 -19
  366. package/examples/simple/entities/EntityA.entity.ts +0 -32
  367. package/examples/simple-http-server/components/http-error-handler.component.ts +0 -47
  368. package/examples/simple-http-server/components/http-request-handler.component.ts +0 -13
  369. package/examples/simple-http-server/concept.ts +0 -35
  370. package/examples/simple-http-server/containers/http-server.container.ts +0 -57
  371. package/examples/simple-http-server/contexts/http-request.context.ts +0 -59
  372. package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -0
  373. package/examples/simple-http-server/controllers/orders.controller.ts +0 -20
  374. package/examples/simple-http-server/controllers/users.controller.ts +0 -104
  375. package/examples/simple-http-server/test.ts +0 -290
  376. package/src/base/A-Config/A-Config.container.ts +0 -68
  377. package/src/base/A-Config/A-Config.context.ts +0 -114
  378. package/src/base/A-Config/A-Config.types.ts +0 -28
  379. package/src/base/A-Config/components/ConfigReader.component.ts +0 -68
  380. package/src/base/A-Config/components/ENVConfigReader.component.ts +0 -31
  381. package/src/base/A-Config/components/FileConfigReader.component.ts +0 -41
  382. package/src/base/A-Errors/A-Error.entity.ts +0 -10
  383. package/src/base/A-Errors/A-Errors.component.ts +0 -103
  384. package/src/base/A-Errors/A-Errors.context.ts +0 -90
  385. package/src/base/A-Errors/A-Errors.types.ts +0 -6
  386. package/src/base/A-Logger/A-Logger.component.ts +0 -192
  387. package/src/base/A-Logger/A-Logger.types.ts +0 -0
  388. package/src/base/A-Polyfill/A-Polyfill.component.ts +0 -18
  389. package/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.ts +0 -81
  390. package/src/decorators/A-Abstraction/A-Abstraction.decorator.types.ts +0 -21
  391. package/src/decorators/A-Connect/A-Connect.decorator.ts +0 -71
  392. package/src/decorators/A-Connect/A-Connect.decorator.types.ts +0 -6
  393. package/src/decorators/A-Entity/A-Entity-List.decorator.ts +0 -12
  394. package/src/decorators/A-Entity/A-Entity.decorator.types.ts +0 -18
  395. package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +0 -151
  396. package/src/decorators/A-Feature/A-Feature.decorator.types.ts +0 -142
  397. package/src/decorators/A-Inject/A-Inject.decorator.ts +0 -119
  398. package/src/decorators/A-Inject/A-Inject.decorator.types.ts +0 -85
  399. package/src/global/A-Channel/A-Channel.class.ts +0 -111
  400. package/src/global/A-Channel/A-Channel.types.ts +0 -114
  401. package/src/global/A-Command/A-Command.class.ts +0 -419
  402. package/src/global/A-Command/A-Command.constants.ts +0 -27
  403. package/src/global/A-Command/A-Command.meta.ts +0 -22
  404. package/src/global/A-Command/A-Command.types.ts +0 -73
  405. package/src/global/A-Command/context/A_Command.context.ts +0 -114
  406. package/src/global/A-Concept/A_Concept.class.ts +0 -298
  407. package/src/global/A-Concept/A_Concept.meta.ts +0 -32
  408. package/src/global/A-Concept/A_Concept.types.ts +0 -143
  409. package/src/global/A-Feature/A-FeatureCaller.class.ts +0 -38
  410. package/src/global/A-Scope/A-Scope.constants.ts +0 -9
  411. package/src/types/A_Module.types.ts +0 -23
  412. package/tests/A-Command.test.ts +0 -133
  413. package/tests/A-Config.test.ts +0 -172
  414. /package/dist/src/global/A-Concept/{A_Concept.meta.d.ts → A-Concept.meta.d.ts} +0 -0
  415. /package/dist/src/{base/A-Logger/A-Logger.types.d.ts → global/ASEID/ASEID.constants.d.ts} +0 -0
  416. /package/{examples/fe-be/concept.ts → src/global/ASEID/ASEID.constants.ts} +0 -0
@@ -1,69 +1,307 @@
1
- import { A_TYPES__ScopeConfig, A_TYPES__ScopeConstructor } from "../A-Scope/A-Scope.types"
2
1
  import { A_TYPES__A_StageStep } from "../A-Stage/A-Stage.types"
3
2
  import { A_Fragment } from "../A-Fragment/A-Fragment.class"
4
3
  import { A_Entity } from "@adaas/a-concept/global/A-Entity/A-Entity.class"
5
- import { A_Scope } from "../A-Scope/A-Scope.class"
6
4
  import { A_Container } from "../A-Container/A-Container.class"
7
5
  import { A_Component } from "../A-Component/A-Component.class"
6
+ import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types"
7
+ import { A_TYPES__Container_Constructor } from "../A-Container/A-Container.types"
8
+ import { A_TYPES__Entity_Constructor } from "../A-Entity/A-Entity.types"
9
+ import { A_Feature } from "./A-Feature.class"
10
+ import { A_TYPES__Required } from "@adaas/a-concept/types/A_Common.types"
11
+ import { A_Scope } from "../A-Scope/A-Scope.class"
8
12
 
9
13
 
10
- export type A_TYPES__FeatureIteratorReturn<T extends any = any> = () => Promise<T>
14
+ // ============================================================================
15
+ // --------------------------- Primary Types ----------------------------------
16
+ // ============================================================================
17
+ /**
18
+ * Feature constructor type
19
+ * Uses the generic type T to specify the type of the feature
20
+ */
21
+ export type A_TYPES__Feature_Constructor<T = A_Feature> = new (...args: any[]) => T;
22
+ /**
23
+ * Feature initialization type
24
+ */
25
+ export type A_TYPES__Feature_Init<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__FeatureAvailableComponents> = A_TYPES__Feature_InitWithComponent<T> | A_TYPES__Feature_InitWithTemplate
26
+ /**
27
+ * Feature initialization type using component
28
+ */
29
+ export type A_TYPES__Feature_InitWithComponent<T extends A_TYPES__FeatureAvailableComponents = A_TYPES__FeatureAvailableComponents> = {
30
+ /**
31
+ * Feature Name
32
+ */
33
+ name: string,
34
+ /**
35
+ * The component from where the feature is calling. It's important for proper scoping.
36
+ * Based on the component would be retrieved connected components, entities and containers.
37
+ *
38
+ * [!] Could be Container, Entity, Component or Command
39
+ */
40
+ component: T,
41
+ }
42
+ /**
43
+ * Feature initialization type using template
44
+ */
45
+ export type A_TYPES__Feature_InitWithTemplate = {
46
+ /**
47
+ * Feature Name
48
+ */
49
+ name: string,
50
+ /**
51
+ * The scope from where to retrieve dependent components, entities and containers.
52
+ *
53
+ * [!] Important for proper scoping.
54
+ */
55
+ scope: A_Scope
56
+ /**
57
+ * Optional Feature template to be used instead of building it from decorators
58
+ */
59
+ template: Array<A_TYPES__FeatureDefineDecoratorTemplateItem>
60
+ }
61
+
62
+ /**
63
+ * Feature serialized type
64
+ */
65
+ export type A_TYPES__Feature_Serialized = {}
11
66
 
12
67
 
13
- export type A_TYPES__FeatureCallParams = {
14
- fragments: Array<A_Fragment>,
15
- entities: Array<A_Entity<any, any>>,
16
- components: Array<{ new(...args: any[]): any }>
68
+ /**
69
+ * Feature lifecycle states
70
+ */
71
+ export enum A_TYPES__FeatureState {
72
+ /**
73
+ * The feature has been initialized
74
+ */
75
+ INITIALIZED = "INITIALIZED",
76
+ /**
77
+ * The feature is currently being processed
78
+ */
79
+ PROCESSING = "PROCESSING",
80
+ /**
81
+ * The feature has been completed
82
+ */
83
+ COMPLETED = "COMPLETED",
84
+ /**
85
+ * The feature has been interrupted
86
+ */
87
+ INTERRUPTED = "INTERRUPTED",
17
88
  }
18
89
 
90
+ // ===========================================================================-
91
+ // --------------------------- Available Types -------------------------------
92
+ // ===========================================================================
93
+
94
+ /**
95
+ * A list of component where features can be Defined
96
+ *
97
+ * [!] On this component Feature Definition is Available
98
+ */
99
+ export type A_TYPES__FeatureAvailableComponents = InstanceType<A_TYPES__FeatureAvailableConstructors>
100
+ /**
101
+ * A list of constructors where features can be Defined
102
+ *
103
+ * [!] On this component Feature Definition is Available
104
+ */
105
+ export type A_TYPES__FeatureAvailableConstructors = A_TYPES__Component_Constructor
106
+ | A_TYPES__Entity_Constructor
107
+ | A_TYPES__Container_Constructor
108
+
19
109
 
20
110
 
21
- export type A_TYPES__FeatureConstructor = {
111
+ // ===========================================================================
112
+ // --------------------------- Decorator Types -------------------------------
113
+ // ===========================================================================
114
+ // ---------------------------------------------------------------------------
115
+ // --------------------Feature Define Decorator Types-------------------------
116
+ // ---------------------------------------------------------------------------
117
+ /**
118
+ * Indicates a type of Feature Define decorator
119
+ */
120
+ export type A_TYPES__FeatureDefineDecoratorDescriptor =
121
+ TypedPropertyDescriptor<() => any>
122
+ | TypedPropertyDescriptor<(...args: any[]) => any>
123
+ | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>
124
+ | TypedPropertyDescriptor<() => Promise<any>>
125
+ /**
126
+ * Describes additional configuration properties to be used in Feature Define decorator
127
+ */
128
+ export type A_TYPES__FeatureDefineDecoratorConfig = {
22
129
  /**
23
- * Name of the A-Feature
130
+ * Feature name
131
+ *
132
+ * [!] By default uses the method name
24
133
  */
25
134
  name: string,
26
135
  /**
27
- * Steps that compose the A-Feature
136
+ * Indicates a default behavior of the feature. If true the feature will be automatically attached to the execution.
137
+ *
138
+ * [!] Before feature execution the method itself will be called to prepare the feature template
139
+ * [!] Default is false
28
140
  */
29
- steps: A_TYPES__A_StageStep[],
141
+ invoke: boolean,
30
142
  /**
31
- * Scope in which the A-Feature will be executed
143
+ * Allows to add a default behavior or number of steps that will be part of the feature
32
144
  */
33
- scope: A_Scope
145
+ template: Array<A_TYPES__FeatureDefineDecoratorTemplateItem>
146
+ }
147
+ /**
148
+ * Describes a single template item used in Feature Define decorator
149
+ */
150
+ export type A_TYPES__FeatureDefineDecoratorTemplateItem = A_TYPES__Required<Partial<A_TYPES__A_StageStep>, ['name', 'handler', 'component']>
151
+ /**
152
+ * Describes a target where Feature Define decorator can be applied
153
+ *
154
+ * [!] The feature can be defined on Container, Entity, Component or Command
155
+ */
156
+ export type A_TYPES__FeatureDefineDecoratorTarget = A_Container
157
+ | A_Entity
158
+ | A_Component
159
+ /**
160
+ * A type of Meta information stored by Feature Define decorator
161
+ * This information then uses by A-Context to build a proper feature template
162
+ */
163
+ export type A_TYPES__FeatureDefineDecoratorMeta = {
164
+ /**
165
+ * Feature name
166
+ * mainly it's a unique combination of the class name and method name
167
+ */
168
+ name: string,
169
+ /**
170
+ * Actual method name in the class
171
+ */
172
+ handler: string,
173
+ /**
174
+ * Indicates a default behavior of the feature. If true the feature will be automatically attached to the execution.
175
+ *
176
+ * [!] Before feature execution the method itself will be called to prepare the feature template
177
+ * [!] Default is false
178
+ */
179
+ invoke: boolean,
180
+ /**
181
+ * Allows to add a default behavior or number of steps that will be part of the feature
182
+ */
183
+ template: Array<A_TYPES__A_StageStep>
184
+ }
185
+ // ---------------------------------------------------------------------------
186
+ // --------------------Feature Extend Decorator Types-------------------------
187
+ // ---------------------------------------------------------------------------
188
+ /**
189
+ * Descriptor type for A_Extend decorator
190
+ */
191
+ export type A_TYPES__FeatureExtendDecoratorDescriptor =
192
+ TypedPropertyDescriptor<() => any>
193
+ | TypedPropertyDescriptor<(...args: any[]) => any>
194
+ | TypedPropertyDescriptor<(...args: any[]) => Promise<any>>
195
+ | TypedPropertyDescriptor<() => Promise<any>>
196
+ /**
197
+ * Target type for A_Extend decorator
198
+ *
199
+ * [!] Can be applied only on A-Components
200
+ */
201
+ export type A_TYPES__FeatureExtendDecoratorTarget = A_Component
202
+ /**
203
+ * Meta type for A_Extend decorator
204
+ */
205
+ export type A_TYPES__FeatureExtendDecoratorMeta = {
206
+ /**
207
+ * Original Feature Extension name
208
+ *
209
+ * [!] could be string or regex
210
+ */
211
+ name: string,
212
+ /**
213
+ * Actual method name in the class
214
+ */
215
+ handler: string
216
+ } & A_TYPES__FeatureExtendDecoratorBehaviorConfig
217
+ /**
218
+ * Configuration type for A_Extend decorator
219
+ */
220
+ export type A_TYPES__FeatureExtendDecoratorConfig = {
34
221
  /**
222
+ * Name of the container Lifecycle method to be extended.
35
223
  *
224
+ * [!] If not provided will be used the name of the method.
225
+ * [!!] If name contains "." dot it will be considered as a path to the method.
36
226
  */
37
- caller: A_Component | A_Entity | A_Container
227
+ name: string,
228
+ /**
229
+ * Container class or container name uses to identify the proper container in case when the name is not unique.
230
+ *
231
+ * [!] If not provided will be applied to all containers with the same name.
232
+ * [!!] By default uses OR to join all provided items. If you need more complex Logic, please use Regexp instead
233
+ *
234
+ * [!!!] In case if you need to exclude some containers, entities or components, please use "exclude" property
235
+ *
236
+ * Example:
237
+ *
238
+ * ```ts
239
+ * @A_Feature.Extend({
240
+ * name: 'load',
241
+ * scope: {
242
+ * include: [A_Container1, A_Entity1],
243
+ * exclude: [A_Component1]
244
+ * }
245
+ * })
246
+ * ```
247
+ */
248
+ scope: Array<A_TYPES__FeatureExtendDecoratorScopeItem> | Partial<A_TYPES__FeatureExtendDecoratorScopeConfig>,
249
+ } & A_TYPES__FeatureExtendDecoratorBehaviorConfig
250
+ /**
251
+ * Scope item that can be used in A_Extend decorator configuration
252
+ */
253
+ export type A_TYPES__FeatureExtendDecoratorScopeConfig = {
254
+ /**
255
+ * A list of components, entities or containers to include in the scope of the extension
256
+ */
257
+ include?: Array<A_TYPES__FeatureExtendDecoratorScopeItem>,
258
+ /**
259
+ * A list of components, entities or containers to exclude from the scope of the extension
260
+ */
261
+ exclude?: Array<A_TYPES__FeatureExtendDecoratorScopeItem>
38
262
  }
263
+ /**
264
+ * A single item that can be used in scope configuration
265
+ */
266
+ export type A_TYPES__FeatureExtendDecoratorScopeItem = { new(...args: any[]): A_Container }
267
+ | { new(...args: any[]): A_Entity }
268
+ | { new(...args: any[]): A_Component }
269
+ /**
270
+ * Behavior configuration for A_Extend decorator
271
+ */
272
+ export type A_TYPES__FeatureExtendDecoratorBehaviorConfig = {
273
+ /**
274
+ * The behavior of the method.
275
+ * In case its async it will be executed independently from the main thread.
276
+ *
277
+ * [!] However, in case of sync, it will be executed in the main thread.in the order of the declaration.
278
+ *
279
+ */
280
+ behavior: 'async' | 'sync'
39
281
 
40
- export enum A_TYPES__FeatureState {
41
- INITIALIZED = "INITIALIZED",
42
- PROCESSING = "PROCESSING",
43
282
 
44
- COMPLETED = "COMPLETED",
45
- FAILED = "FAILED",
283
+ /**
284
+ * Allows to define the order of the execution of the method.
285
+ *
286
+ * [!] In case the method has circular dependencies it will Throw an error.
287
+ *
288
+ */
289
+ before: string[]
290
+
291
+ /**
292
+ * Allows to define the order of the execution of the method.
293
+ *
294
+ * [!] In case the method has circular dependencies it will Throw an error.
295
+ *
296
+ */
297
+ after: string[]
46
298
  }
47
299
 
48
300
 
49
- // export type A_TYPES__FeatureStep = {
50
- // /**
51
- // * The component to be called
52
- // */
53
- // component: typeof A_Component,
54
- // /**
55
- // * The method to be called on the component
56
- // */
57
- // handler: string,
58
- // /**
59
- // * Original Feature Extension name
60
- // *
61
- // * [!] could be string or regex
62
- // *
63
- // */
64
- // name: string,
65
- // /**
66
- // * Arguments to be passed to the method
67
- // */
68
- // args: A_TYPES__A_InjectDecorator_Meta
69
- // }
301
+
302
+
303
+
304
+
305
+
306
+
307
+
@@ -1,132 +1,61 @@
1
- import { A_Context } from "../A-Context/A-Context.class";
2
- import { A_TYPES__FragmentConstructor } from "./A-Fragment.types";
1
+ import { A_Meta } from "../A-Meta/A-Meta.class";
2
+ import { A_TYPES__Fragment_Init } from "./A-Fragment.types";
3
3
 
4
4
 
5
- /**
6
- * A-Fragment = Context Fragments is a set of arguments that can be used to define a Context for the pipeline.
7
- * In other words it is a dynamic context that will be created on pipeline start and destroyed on pipeline end.
8
- * During the execution of the pipeline, the Context Fragments can be used to pass the data between the pipeline steps.
9
- *
10
- * Or to store the data that is required for the pipeline execution
11
- *
12
- */
13
- export class A_Fragment {
14
-
15
- name: string;
16
-
17
5
 
6
+ export class A_Fragment<
7
+ _MemoryItems extends Record<string, any> = any
8
+ > {
18
9
  /**
19
- * Indicates that Context Fragment is ready to use
10
+ * Fragment Name
20
11
  */
21
- ready!: Promise<void>;
22
-
23
-
24
- constructor(params: Partial<A_TYPES__FragmentConstructor> = {}) {
25
-
26
- this.name = params.name || this.constructor.name;
27
-
28
- /**
29
- * Register the Namespace in the global Namespace provider
30
- */
31
- this.name = params.name || this.constructor.name;
32
-
33
- /**
34
- * Run Async Initialization
35
- */
36
- this.init();
37
- }
38
-
39
-
40
-
41
-
42
- private hasInherited(cl: { new(...args: any[]) }): boolean {
43
- return this.constructor === cl
44
- ? false
45
- : true
46
- }
47
-
12
+ name: string;
48
13
  /**
49
- * Initializes the Namespace or can be used to reinitialize the Namespace
14
+ * Memory storage for the Fragment instance
50
15
  */
51
- private async init() {
52
- if (!this.ready)
53
- this.ready = new Promise(async (resolve, reject) => {
54
- try {
55
- await this.onBeforeInit();
16
+ protected _meta: A_Meta<_MemoryItems> = new A_Meta<_MemoryItems>();
56
17
 
57
- await this.onInit();
58
-
59
- await this.onAfterInit();
60
-
61
- return resolve();
62
- } catch (error) {
63
- return reject(error);
64
- }
65
- });
66
- else
67
- await this.ready;
68
- }
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
- // ==============================================================
77
- // ======================= HOOKS ================================
78
- // ==============================================================
79
18
 
80
19
  /**
81
- * Before init hook to be used in inherited classes
20
+ * A-Fragment is a singleton, a piece of execution Context that can be shared between the Components/Entities/Commands
21
+ * For every A_Scope can be defined only One A_Fragment of the same type.
22
+ * This class is useful for the design purpose and maintainance of the application
82
23
  *
83
- * @returns
84
- */
85
- protected async onBeforeInit() {
86
- return;
87
- }
88
-
89
- /**
90
- * Main initialization method for the SDK
24
+ *
25
+ * [!] Every A_Fragment is a Memory Class that can store data in memory between the steps of the pipeline.
26
+ * [!] So if it necessary to store some information in the Execution Context - use memory of the Fragment
91
27
  */
92
- protected async onInit() {
93
- // global logger configuration
94
- if (A_Context.environment === 'server' && !this.hasInherited(A_Fragment)) {
95
- // eslint-disable-next-line no-use-before-define
96
- // process.on('uncaughtException', (error) => {
97
- // // log only in case of A_AUTH_Error
98
- // if (error instanceof A_Error)
99
- // this.Logger.error(error);
100
- // });
101
- // // eslint-disable-next-line no-use-before-define
102
- // process.on('unhandledRejection', (error) => {
103
- // if (error instanceof A_Error)
104
- // this.Logger.error(error);
105
- // });
106
- }
28
+ constructor(params: Partial<A_TYPES__Fragment_Init> = {}) {
29
+ /**
30
+ * Register the Namespace in the global Namespace provider
31
+ */
32
+ this.name = params.name || this.constructor.name;
107
33
  }
108
34
 
109
35
  /**
110
- * After init hook to be used in inherited classes
36
+ * Returns the Meta object that allows to store data in the Fragment memory
111
37
  *
112
- * @returns
38
+ * @returns
113
39
  */
114
- protected async onAfterInit() {
115
- return;
40
+ get memory(): A_Meta<_MemoryItems> {
41
+ return this._meta;
116
42
  }
117
43
 
118
44
 
119
45
 
120
46
 
121
-
122
47
  /**
123
48
  * Returns the JSON representation of the Fragment
124
49
  *
125
50
  * @returns
126
51
  */
127
- toJSON(): Record<string, any> {
52
+ toJSON(): _MemoryItems & { name: string } {
128
53
  return {
129
54
  name: this.name,
55
+ ...this.memory.toArray().reduce((acc, [key, value]) => {
56
+ acc[key] = value;
57
+ return acc;
58
+ }, {} as _MemoryItems)
130
59
  };
131
60
  }
132
61
 
@@ -1,6 +1,28 @@
1
+ // ============================================================================
2
+ // --------------------------- Primary Types ----------------------------------
3
+ // ============================================================================
1
4
 
5
+ import { A_Fragment } from "./A-Fragment.class";
2
6
 
3
-
4
- export type A_TYPES__FragmentConstructor = {
7
+ /**
8
+ * Fragment constructor type
9
+ * Uses the generic type T to specify the type of the fragment
10
+ */
11
+ export type A_TYPES__Fragment_Constructor<T = A_Fragment> = new (...args: any[]) => T;
12
+ /**
13
+ * Fragment initialization type
14
+ */
15
+ export type A_TYPES__Fragment_Init = {
5
16
  name: string
6
- }
17
+ };
18
+ /**
19
+ * Fragment serialized type
20
+ */
21
+ export type A_TYPES__Fragment_Serialized = {
22
+ /**
23
+ * The ASEID of the fragment
24
+ */
25
+ aseid: string
26
+ };
27
+
28
+