@adaas/a-concept 0.0.64 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +13 -39
  72. package/dist/src/global/A-Entity/A-Entity.class.js +30 -73
  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 +33 -88
  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,33 +1,44 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.A_Scope = void 0;
4
- const a_utils_1 = require("@adaas/a-utils");
5
- const A_Component_types_1 = require("../A-Component/A-Component.types");
6
4
  const A_Fragment_class_1 = require("../A-Fragment/A-Fragment.class");
7
5
  const A_Context_class_1 = require("../A-Context/A-Context.class");
8
6
  const A_Component_class_1 = require("../A-Component/A-Component.class");
9
7
  const A_Entity_class_1 = require("../A-Entity/A-Entity.class");
10
- const A_Command_class_1 = require("../A-Command/A-Command.class");
8
+ const A_TypeGuards_helper_1 = require("../../helpers/A_TypeGuards.helper");
9
+ const A_Error_class_1 = require("../A-Error/A_Error.class");
10
+ const A_Formatter_helper_1 = require("../../helpers/A_Formatter.helper");
11
+ const ASEID_class_1 = require("../ASEID/ASEID.class");
12
+ const A_Common_helper_1 = require("../../helpers/A_Common.helper");
13
+ const A_Scope_error_1 = require("./A-Scope.error");
14
+ const A_Component_constants_1 = require("../A-Component/A-Component.constants");
11
15
  class A_Scope {
12
16
  // ===========================================================================
13
17
  // --------------------Readonly Allowed Properties----------------------------
14
18
  // ===========================================================================
19
+ /**
20
+ * Returns the name of the scope
21
+ */
22
+ get name() { return this._name; }
15
23
  /**
16
24
  * Returns a list of Constructors for A-Components that are available in the scope
17
25
  */
18
26
  get allowedComponents() { return this._allowedComponents; }
19
27
  /**
20
- * Returns a list of Constructors for A-Commands that are available in the scope
28
+ * Returns a list of Constructors for A-Entities that are available in the scope
21
29
  */
22
- get allowedCommands() { return this._allowedCommands; }
30
+ get allowedEntities() { return this._allowedEntities; }
23
31
  /**
24
32
  * Returns a list of Constructors for A-Fragments that are available in the scope
25
33
  */
26
34
  get allowedFragments() { return this._allowedFragments; }
27
35
  /**
28
- * Returns a list of Constructors for A-Entities that are available in the scope
36
+ * Returns a list of Constructors for A-Errors that are available in the scope
29
37
  */
30
- get allowedEntities() { return this._allowedEntities; }
38
+ get allowedErrors() { return this._allowedErrors; }
39
+ // ===========================================================================
40
+ // --------------------Readonly Registered Properties--------------------------
41
+ // ===========================================================================
31
42
  /**
32
43
  * Returns an Array of entities registered in the scope
33
44
  *
@@ -47,33 +58,15 @@ class A_Scope {
47
58
  */
48
59
  get components() { return Array.from(this._components.values()); }
49
60
  /**
50
- * Returns an Array of commands registered in the scope
61
+ * Returns the parent scope of the current scope
51
62
  *
52
- * [!] One command per command aseid
53
- * [!!] There may be any number of instances of the same command code, but with different aseids.
54
- */
55
- get commands() { return Array.from(this._commands.values()); }
56
- /**
57
- * A_Scope refers to the visibility and accessibility of :
58
- * - variables,
59
- * - Components,
60
- * - Context Fragments
61
- * - Commands
62
- * - Entities
63
- * - and objects in different parts of your code.
64
- * Scope determines where a particular piece of data (like a variable or function)
65
- * can be accessed, modified, or referenced, and it plays a crucial role in avoiding naming collisions and ensuring data integrity.
66
- *
67
- * [!] The scope behavior is similar to tree structure where each scope can have a parent scope and inherit its components, fragments, entities and commands
68
- *
69
- * @param params
70
- * @param config
63
+ * @param setValue
64
+ * @returns
71
65
  */
72
- constructor(params, config = {}) {
73
- /**
74
- * Scope Name uses for identification and logging purposes
75
- */
76
- this.name = '';
66
+ get parent() {
67
+ return this._parent;
68
+ }
69
+ constructor(param1, param2) {
77
70
  // ===========================================================================
78
71
  // --------------------ALLowed Constructors--------------------------------
79
72
  // ===========================================================================
@@ -82,6 +75,10 @@ class A_Scope {
82
75
  *
83
76
  */
84
77
  this._allowedComponents = new Set();
78
+ /**
79
+ * A set of allowed errors, A set of constructors that are allowed in the scope
80
+ */
81
+ this._allowedErrors = new Set();
85
82
  /**
86
83
  * A set of allowed entities, A set of constructors that are allowed in the scope
87
84
  */
@@ -90,32 +87,51 @@ class A_Scope {
90
87
  * A set of allowed fragments, A set of constructors that are allowed in the scope
91
88
  */
92
89
  this._allowedFragments = new Set();
93
- /**
94
- * A set of allowed commands, A set of constructors that are allowed in the scope
95
- */
96
- this._allowedCommands = new Set();
97
90
  // ===========================================================================
98
91
  // --------------------Internal Storage--------------------------------
99
92
  // ===========================================================================
100
93
  /**
101
- * Internal storage for the components, fragments, entities and commands
94
+ * Storage for the components, should be strong as components are unique per scope
102
95
  */
103
96
  this._components = new Map();
104
97
  /**
105
- * Storage for the fragments, should be weak as fragments are singletons per scope
98
+ * Storage for the errors, should be strong as errors are unique per code
106
99
  */
107
- this._fragments = new Map();
100
+ this._errors = new Map();
108
101
  /**
109
102
  * Storage for the entities, should be strong as entities are unique per aseid
110
103
  */
111
104
  this._entities = new Map();
112
105
  /**
113
- * Storage for the commands, should be strong as commands are unique per code
106
+ * Storage for the fragments, should be weak as fragments are singletons per scope
114
107
  */
115
- this._commands = new Map();
116
- this.name = params.name || this.constructor.name;
108
+ this._fragments = new Map();
109
+ const initializer = this.getInitializer(param1);
110
+ // the returned initializer is already bound to `this` (we used .bind(this)),
111
+ // so calling it will run the appropriate logic on this instance:
112
+ initializer.call(this, param1, param2);
113
+ }
114
+ /**
115
+ * Determines which initializer method to use based on the type of the first parameter.
116
+ *
117
+ * @param param1
118
+ * @returns
119
+ */
120
+ getInitializer(param1, param2) {
121
+ switch (true) {
122
+ case !param1 && !param2:
123
+ ;
124
+ return this.defaultInitialized;
125
+ case !!param1:
126
+ return this.defaultInitialized;
127
+ default:
128
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.ConstructorError, 'Invalid parameters provided to A_Scope constructor');
129
+ }
130
+ }
131
+ defaultInitialized(params = {}, config = {}) {
132
+ this._name = params.name || this.constructor.name;
117
133
  this.initComponents(params.components);
118
- this.initCommands(params.commands);
134
+ this.initErrors(params.errors);
119
135
  this.initFragments(params.fragments);
120
136
  this.initEntities(params.entities);
121
137
  if (config.parent) {
@@ -134,6 +150,14 @@ class A_Scope {
134
150
  * @param _components
135
151
  */
136
152
  initComponents(_components) { _components === null || _components === void 0 ? void 0 : _components.forEach(this.register.bind(this)); }
153
+ /**
154
+ * This method is used to initialize the errors in the scope
155
+ *
156
+ * This method only registers the errors in the scope in case they are not registered yet
157
+ *
158
+ * @param _errors
159
+ */
160
+ initErrors(_errors) { _errors === null || _errors === void 0 ? void 0 : _errors.forEach(this.register.bind(this)); }
137
161
  /**
138
162
  * This method is used to initialize the entities in the scope
139
163
  *
@@ -141,7 +165,7 @@ class A_Scope {
141
165
  *
142
166
  * @param _entities
143
167
  */
144
- initEntities(_entities) { _entities === null || _entities === void 0 ? void 0 : _entities.forEach(this.register.bind(this)); }
168
+ initEntities(_entities) { _entities === null || _entities === void 0 ? void 0 : _entities.forEach(ent => this.register(ent)); }
145
169
  /**
146
170
  * This method is used to initialize the fragments in the scope
147
171
  *
@@ -151,26 +175,18 @@ class A_Scope {
151
175
  */
152
176
  initFragments(_fragments) { _fragments === null || _fragments === void 0 ? void 0 : _fragments.forEach(this.register.bind(this)); }
153
177
  /**
154
- * This method is used to initialize the commands in the scope
178
+ * Returns the issuer of the scope, useful for debugging and tracking purposes
155
179
  *
156
- * This method only registers the commands in the scope in case they are not registered yet
180
+ * Issuer can be:
181
+ * - A Container that allocated the scope
182
+ * - A Feature that allocated the scope
157
183
  *
158
- * @param _commands
159
- */
160
- initCommands(_commands) { _commands === null || _commands === void 0 ? void 0 : _commands.forEach(this.register.bind(this)); }
161
- /**
162
- * This method is used to get or set the parent scope
163
- *
164
- * [!] Note that setting the parent scope will override the existing parent scope
184
+ * [!] Note that the issuer is the direct allocator of the scope, so if a Container allocated a Feature that allocated the scope, the issuer will be the Feature
165
185
  *
166
- * @param setValue
167
186
  * @returns
168
187
  */
169
- parent(setValue) {
170
- if (setValue) {
171
- return this.inherit(setValue);
172
- }
173
- return this._parent;
188
+ issuer() {
189
+ return A_Context_class_1.A_Context.issuer(this);
174
190
  }
175
191
  /**
176
192
  * This method is used to inherit from a parent scope
@@ -181,10 +197,16 @@ class A_Scope {
181
197
  * @returns
182
198
  */
183
199
  inherit(parent) {
200
+ if (!parent)
201
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.InitializationError, `Invalid parent scope provided`);
202
+ if (parent === this)
203
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.CircularInheritanceError, `Unable to inherit scope ${this.name} from itself`);
204
+ if (parent === this._parent)
205
+ return this;
184
206
  // Prevent circular inheritance
185
207
  const circularCheck = this.checkCircularInheritance(parent);
186
208
  if (circularCheck)
187
- throw new a_utils_1.A_Error(`Circular inheritance detected: ${[...circularCheck, parent.name].join(' -> ')}`);
209
+ throw new A_Scope_error_1.A_ScopeError(A_Scope_error_1.A_ScopeError.CircularInheritanceError, `Circular inheritance detected: ${[...circularCheck, parent.name].join(' -> ')}`);
188
210
  this._parent = parent;
189
211
  return this;
190
212
  }
@@ -201,10 +223,6 @@ class A_Scope {
201
223
  const possibleFragment = Array.from(this.allowedFragments).find(f => f.name === ctor);
202
224
  if (possibleFragment)
203
225
  found = true;
204
- // 1.3 Check if it's a command code or name
205
- const possibleCommand = Array.from(this.allowedCommands).find(c => c.name === ctor);
206
- if (possibleCommand)
207
- found = true;
208
226
  // 1.4 Check if it's an entity name or entity static entity property
209
227
  const possibleEntity = Array.from(this.allowedEntities).find(e => e.name === ctor);
210
228
  if (possibleEntity)
@@ -215,25 +233,20 @@ class A_Scope {
215
233
  return false;
216
234
  }
217
235
  // 2) Check if it's a Component
218
- case this.isComponentConstructor(ctor): {
236
+ case A_TypeGuards_helper_1.A_TypeGuards.isComponentConstructor(ctor): {
219
237
  found = this.isAllowedComponent(ctor);
220
238
  break;
221
239
  }
222
240
  // 3) Check if it's an Entity
223
- case this.isEntityConstructor(ctor): {
241
+ case A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(ctor): {
224
242
  found = this.isAllowedEntity(ctor);
225
243
  break;
226
244
  }
227
245
  // 4) Check if it's a Fragment
228
- case this.isFragmentConstructor(ctor): {
246
+ case A_TypeGuards_helper_1.A_TypeGuards.isFragmentConstructor(ctor): {
229
247
  found = this.isAllowedFragment(ctor);
230
248
  break;
231
249
  }
232
- // 5) Check if it's a Command
233
- case this.isCommandConstructor(ctor): {
234
- found = this.isAllowedCommand(ctor);
235
- break;
236
- }
237
250
  }
238
251
  if (!found && !!this._parent)
239
252
  return this._parent.has(ctor);
@@ -253,9 +266,11 @@ class A_Scope {
253
266
  const merged = new A_Scope({
254
267
  name: `${this.name} + ${anotherScope.name}`,
255
268
  components: [...this.allowedComponents, ...anotherScope.allowedComponents],
256
- commands: [...this.allowedCommands, ...anotherScope.allowedCommands],
257
269
  fragments: [...this.fragments, ...anotherScope.fragments],
258
- entities: [...this.entities, ...anotherScope.entities],
270
+ entities: [
271
+ ...this.entities, ...anotherScope.entities,
272
+ ...this.allowedEntities, ...anotherScope.allowedEntities
273
+ ],
259
274
  }, {
260
275
  parent: this._parent || anotherScope._parent
261
276
  });
@@ -264,25 +279,19 @@ class A_Scope {
264
279
  resolveConstructor(name) {
265
280
  // 1) Check components
266
281
  const component = Array.from(this.allowedComponents).find(c => c.name === name
267
- || c.name === a_utils_1.A_CommonHelper.toPascalCase(name));
282
+ || c.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name));
268
283
  if (component)
269
284
  return component;
270
285
  // 2) Check entities
271
286
  const entity = Array.from(this.allowedEntities).find(e => e.name === name
272
- || e.name === a_utils_1.A_CommonHelper.toPascalCase(name)
287
+ || e.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name)
273
288
  || e.entity === name
274
- || e.entity === a_utils_1.A_CommonHelper.toKebabCase(name));
289
+ || e.entity === A_Formatter_helper_1.A_FormatterHelper.toKebabCase(name));
275
290
  if (entity)
276
291
  return entity;
277
- // 3) Check commands
278
- const command = Array.from(this.allowedCommands).find(c => c.code === name
279
- || c.name === a_utils_1.A_CommonHelper.toPascalCase(name)
280
- || c.code === a_utils_1.A_CommonHelper.toKebabCase(name));
281
- if (command)
282
- return command;
283
- // 4) Check fragments
292
+ // 3) Check fragments
284
293
  const fragment = Array.from(this.allowedFragments).find(f => f.name === name
285
- || f.name === a_utils_1.A_CommonHelper.toPascalCase(name));
294
+ || f.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name));
286
295
  if (fragment)
287
296
  return fragment;
288
297
  // If not found in current scope, check parent scope
@@ -291,24 +300,28 @@ class A_Scope {
291
300
  }
292
301
  throw new Error(`Component or Entity with name ${name} not found in the scope ${this.name}`);
293
302
  }
294
- // base definition
295
303
  resolve(
296
304
  /**
297
305
  * Provide a component, fragment or entity constructor or an array of constructors to resolve its instance(s) from the scope
298
306
  */
299
307
  param1, param2) {
300
308
  switch (true) {
301
- case Array.isArray(param1): {
302
- return param1.map(c => this.resolveOnce(c, param2)).filter(Boolean);
309
+ case A_TypeGuards_helper_1.A_TypeGuards.isArray(param1): {
310
+ return param1.map(c => {
311
+ if (A_TypeGuards_helper_1.A_TypeGuards.isString(c))
312
+ return this.resolveByName(c);
313
+ else
314
+ return this.resolveOnce(c, param2);
315
+ }).filter(Boolean);
303
316
  }
304
- case typeof param1 === 'function': {
317
+ case A_TypeGuards_helper_1.A_TypeGuards.isFunction(param1): {
305
318
  return this.resolveOnce(param1, param2);
306
319
  }
307
- case typeof param1 === 'string': {
320
+ case A_TypeGuards_helper_1.A_TypeGuards.isString(param1): {
308
321
  return this.resolveByName(param1);
309
322
  }
310
323
  default: {
311
- throw new a_utils_1.A_Error(`Invalid parameter provided to resolve method: ${param1} in scope ${this.name}`);
324
+ throw new A_Error_class_1.A_Error(`Invalid parameter provided to resolve method: ${param1} in scope ${this.name}`);
312
325
  }
313
326
  }
314
327
  }
@@ -317,28 +330,34 @@ class A_Scope {
317
330
  // -------------------------------------INTERNAL RESOLVERS-------------------------------------------
318
331
  // --------------------------------------------------------------------------------------------------
319
332
  // ==================================================================================================
320
- resolveByName(name) {
333
+ /**
334
+ * This method is used internally to resolve a component, fragment or entity by its constructor name
335
+ *
336
+ * [!] Note that this method checks for the component, fragment or entity in the current scope and all parent scopes
337
+ *
338
+ * @param name - name of the component, fragment or entity to resolve (constructor name for components and fragments, static entity property for entities, static code property for commands)
339
+ * @returns
340
+ */
341
+ resolveByName(
342
+ /**
343
+ * Provide the name of the component, fragment or entity to resolve
344
+ */
345
+ name) {
321
346
  // 1) Check components
322
347
  const component = Array.from(this.allowedComponents).find(c => c.name === name
323
- || c.name === a_utils_1.A_CommonHelper.toPascalCase(name));
348
+ || c.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name));
324
349
  if (component)
325
350
  return this.resolveOnce(component);
326
351
  // 2) Check entities
327
352
  const entity = Array.from(this.allowedEntities).find(e => e.name === name
328
- || e.name === a_utils_1.A_CommonHelper.toPascalCase(name)
353
+ || e.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name)
329
354
  || e.entity === name
330
- || e.entity === a_utils_1.A_CommonHelper.toKebabCase(name));
355
+ || e.entity === A_Formatter_helper_1.A_FormatterHelper.toKebabCase(name));
331
356
  if (entity)
332
357
  return this.resolveOnce(entity);
333
- // 3) Check commands
334
- const command = Array.from(this.allowedCommands).find(c => c.code === name
335
- || c.name === a_utils_1.A_CommonHelper.toPascalCase(name)
336
- || c.code === a_utils_1.A_CommonHelper.toKebabCase(name));
337
- if (command)
338
- return this.resolveOnce(command);
339
- // 4) Check fragments
358
+ // 3) Check fragments
340
359
  const fragment = Array.from(this.allowedFragments).find(f => f.name === name
341
- || f.name === a_utils_1.A_CommonHelper.toPascalCase(name));
360
+ || f.name === A_Formatter_helper_1.A_FormatterHelper.toPascalCase(name));
342
361
  if (fragment)
343
362
  return this.resolveOnce(fragment);
344
363
  // If not found in current scope, check parent scope
@@ -355,24 +374,21 @@ class A_Scope {
355
374
  * @returns
356
375
  */
357
376
  resolveOnce(component, instructions) {
358
- if (this.isScopeConstructor(component))
377
+ if (A_TypeGuards_helper_1.A_TypeGuards.isScopeConstructor(component))
359
378
  component;
360
379
  if (typeof component == 'function' && component.name === 'A_Scope')
361
380
  component;
362
381
  switch (true) {
363
- case this.isEntityConstructor(component): {
382
+ case A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(component): {
364
383
  return this.resolveEntity(component, instructions);
365
384
  }
366
- case this.isFragmentConstructor(component): {
385
+ case A_TypeGuards_helper_1.A_TypeGuards.isFragmentConstructor(component): {
367
386
  return this.resolveFragment(component);
368
387
  }
369
- case this.isCommandConstructor(component): {
370
- return this.resolveCommand(component);
371
- }
372
- case this.isScopeConstructor(component): {
388
+ case A_TypeGuards_helper_1.A_TypeGuards.isScopeConstructor(component): {
373
389
  return this.resolveScope(component);
374
390
  }
375
- case this.isComponentConstructor(component): {
391
+ case A_TypeGuards_helper_1.A_TypeGuards.isComponentConstructor(component): {
376
392
  return this.resolveComponent(component);
377
393
  }
378
394
  default:
@@ -428,7 +444,7 @@ class A_Scope {
428
444
  */
429
445
  case !!query.aseid
430
446
  && typeof query.aseid === 'object'
431
- && query.aseid instanceof a_utils_1.ASEID
447
+ && query.aseid instanceof ASEID_class_1.ASEID
432
448
  && this._entities.has(query.aseid.toString()):
433
449
  {
434
450
  return this._entities.get(query.aseid.toString());
@@ -515,7 +531,7 @@ class A_Scope {
515
531
  // 2) In case the component available but does NOT exist in the scope
516
532
  case this.allowedComponents.has(component) && !this._components.has(component): {
517
533
  const componentMeta = A_Context_class_1.A_Context.meta(component);
518
- const argsMeta = componentMeta.get(A_Component_types_1.A_TYPES__ComponentMetaKey.INJECTIONS);
534
+ const argsMeta = componentMeta.get(A_Component_constants_1.A_TYPES__ComponentMetaKey.INJECTIONS);
519
535
  const resolvedArgs = ((argsMeta === null || argsMeta === void 0 ? void 0 : argsMeta.get('constructor')) || [])
520
536
  .map(arg => {
521
537
  if ('instructions' in arg) {
@@ -530,8 +546,8 @@ class A_Scope {
530
546
  return this._components.get(component);
531
547
  }
532
548
  // 3) In case when there's a component that is inherited from the required component
533
- case !this.allowedComponents.has(component) && Array.from(this.allowedComponents).some(el => a_utils_1.A_CommonHelper.isInheritedFrom(el, component)): {
534
- const found = Array.from(this.allowedComponents).find(el => a_utils_1.A_CommonHelper.isInheritedFrom(el, component));
549
+ case !this.allowedComponents.has(component) && Array.from(this.allowedComponents).some(el => A_Common_helper_1.A_CommonHelper.isInheritedFrom(el, component)): {
550
+ const found = Array.from(this.allowedComponents).find(el => A_Common_helper_1.A_CommonHelper.isInheritedFrom(el, component));
535
551
  return this.resolveComponent(found);
536
552
  }
537
553
  // 4) In case when the component is not available in the scope but the _parent is available
@@ -542,22 +558,6 @@ class A_Scope {
542
558
  throw new Error(`Component ${component.name} not found in the scope ${this.name}`);
543
559
  }
544
560
  }
545
- /**
546
- * Should be similar to resolveEntity but for commands
547
- *
548
- * @param command
549
- */
550
- resolveCommand(command) {
551
- const found = this.commands.find(e => e instanceof command);
552
- switch (true) {
553
- case !!found:
554
- return found;
555
- case !found && !!this._parent:
556
- return this._parent.resolveCommand(command);
557
- default:
558
- throw new Error(`Command ${command.name} not found in the scope ${this.name}`);
559
- }
560
- }
561
561
  register(param1) {
562
562
  switch (true) {
563
563
  // ------------------------------------------
@@ -571,14 +571,6 @@ class A_Scope {
571
571
  A_Context_class_1.A_Context.register(this, param1);
572
572
  break;
573
573
  }
574
- // 2) In case when it's a A-Command instance
575
- case param1 instanceof A_Command_class_1.A_Command: {
576
- if (!this.allowedCommands.has(param1.constructor))
577
- this.allowedCommands.add(param1.constructor);
578
- this._commands.set(param1.constructor.code, param1);
579
- A_Context_class_1.A_Context.register(this, param1);
580
- break;
581
- }
582
574
  // 3) In case when it's a A-Entity instance
583
575
  case param1 instanceof A_Entity_class_1.A_Entity && !this._entities.has(param1.aseid.toString()): {
584
576
  if (!this.allowedEntities.has(param1.constructor))
@@ -595,33 +587,43 @@ class A_Scope {
595
587
  A_Context_class_1.A_Context.register(this, param1);
596
588
  break;
597
589
  }
590
+ // 5) In case when it's a A-Error instance
591
+ case param1 instanceof A_Error_class_1.A_Error: {
592
+ if (!this.allowedErrors.has(param1.constructor))
593
+ this.allowedErrors.add(param1.constructor);
594
+ // A_Context.register(this, param1);
595
+ break;
596
+ }
598
597
  // ------------------------------------------
599
598
  // ------------ Constructors ----------------
600
599
  // ------------------------------------------
601
- // 5) In case when it's a A-Component constructor
602
- case this.isComponentConstructor(param1): {
600
+ // 6) In case when it's a A-Component constructor
601
+ case A_TypeGuards_helper_1.A_TypeGuards.isComponentConstructor(param1): {
603
602
  if (!this.allowedComponents.has(param1))
604
603
  this.allowedComponents.add(param1);
605
604
  break;
606
605
  }
607
- // 6) In case when it's a A-Command constructor
608
- case this.isCommandConstructor(param1): {
609
- if (!this.allowedCommands.has(param1))
610
- this.allowedCommands.add(param1);
611
- break;
612
- }
613
- // 7) In case when it's a A-Fragment constructor
614
- case this.isFragmentConstructor(param1): {
606
+ // 8) In case when it's a A-Fragment constructor
607
+ case A_TypeGuards_helper_1.A_TypeGuards.isFragmentConstructor(param1): {
615
608
  if (!this.allowedFragments.has(param1))
616
609
  this.allowedFragments.add(param1);
617
610
  break;
618
611
  }
619
- // 8) In case when it's a A-Entity constructor
620
- case this.isEntityConstructor(param1): {
612
+ // 9) In case when it's a A-Entity constructor
613
+ case A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(param1): {
621
614
  if (!this.allowedEntities.has(param1))
622
615
  this.allowedEntities.add(param1);
623
616
  break;
624
617
  }
618
+ // 10) In case when it's a A-Error constructor
619
+ case A_TypeGuards_helper_1.A_TypeGuards.isErrorConstructor(param1): {
620
+ if (!this.allowedErrors.has(param1))
621
+ this.allowedErrors.add(param1);
622
+ break;
623
+ }
624
+ // ------------------------------------------
625
+ // ------------ Invalid Cases ----------------
626
+ // ------------------------------------------
625
627
  default:
626
628
  if (param1 instanceof A_Entity_class_1.A_Entity)
627
629
  throw new Error(`Entity with ASEID ${param1.aseid.toString()} is already registered in the scope ${this.name}`);
@@ -649,54 +651,6 @@ class A_Scope {
649
651
  //==========================================================================
650
652
  // --------------------Scope Type Check Helpers---------------------------
651
653
  //==========================================================================
652
- /**
653
- * Type guard to check if the constructor is of type A_Component
654
- *
655
- * @param ctor
656
- * @returns
657
- */
658
- isComponentConstructor(ctor) {
659
- return typeof ctor === 'function' && a_utils_1.A_CommonHelper.isInheritedFrom(ctor, A_Component_class_1.A_Component);
660
- }
661
- /**
662
- * Type guard to check if the constructor is of type A_Command
663
- *
664
- * @param ctor
665
- * @returns
666
- */
667
- isCommandConstructor(ctor) {
668
- return typeof ctor === 'function' && a_utils_1.A_CommonHelper.isInheritedFrom(ctor, A_Command_class_1.A_Command);
669
- }
670
- /**
671
- * Type guard to check if the constructor is of type A_Fragment
672
- *
673
- * @param ctor
674
- * @returns
675
- */
676
- isFragmentConstructor(ctor) {
677
- return typeof ctor === 'function' && a_utils_1.A_CommonHelper.isInheritedFrom(ctor, A_Fragment_class_1.A_Fragment);
678
- }
679
- /**
680
- * Type guard to check if the constructor is of type A_Entity
681
- *
682
- * @param ctor
683
- * @returns
684
- */
685
- isEntityConstructor(ctor) {
686
- return typeof ctor === 'function' && a_utils_1.A_CommonHelper.isInheritedFrom(ctor, A_Entity_class_1.A_Entity);
687
- }
688
- /**
689
- * Type guard to check if the constructor is of type A_Scope
690
- *
691
- * @param ctor
692
- * @returns
693
- */
694
- isScopeConstructor(ctor) {
695
- return typeof ctor === 'function' && a_utils_1.A_CommonHelper.isInheritedFrom(ctor, A_Scope);
696
- }
697
- // -------------------------------------------------------------------------------
698
- // --------------------Scope Allowed Type Check Helpers---------------------------
699
- // -------------------------------------------------------------------------------
700
654
  /**
701
655
  * Type guard to check if the constructor is of type A_Component and is allowed in the scope
702
656
  *
@@ -704,34 +658,34 @@ class A_Scope {
704
658
  * @returns
705
659
  */
706
660
  isAllowedComponent(ctor) {
707
- return this.isComponentConstructor(ctor) && this.allowedComponents.has(ctor);
661
+ return A_TypeGuards_helper_1.A_TypeGuards.isComponentConstructor(ctor) && this.allowedComponents.has(ctor);
708
662
  }
709
663
  /**
710
- * Type guard to check if the constructor is of type A_Command and is allowed in the scope
664
+ * Type guard to check if the constructor is of type A_Entity and is allowed in the scope
711
665
  *
712
666
  * @param ctor
713
667
  * @returns
714
668
  */
715
- isAllowedCommand(ctor) {
716
- return this.isCommandConstructor(ctor) && this.allowedCommands.has(ctor);
669
+ isAllowedEntity(ctor) {
670
+ return A_TypeGuards_helper_1.A_TypeGuards.isEntityConstructor(ctor) && this.allowedEntities.has(ctor);
717
671
  }
718
672
  /**
719
- * Type guard to check if the constructor is of type A_Entity and is allowed in the scope
673
+ * Type guard to check if the constructor is of type A_Fragment and is allowed in the scope
720
674
  *
721
675
  * @param ctor
722
676
  * @returns
723
677
  */
724
- isAllowedEntity(ctor) {
725
- return this.isEntityConstructor(ctor) && this.allowedEntities.has(ctor);
678
+ isAllowedFragment(ctor) {
679
+ return A_TypeGuards_helper_1.A_TypeGuards.isFragmentConstructor(ctor) && this.allowedFragments.has(ctor);
726
680
  }
727
681
  /**
728
- * Type guard to check if the constructor is of type A_Fragment and is allowed in the scope
682
+ * Type guard to check if the constructor is of type A_Error and is allowed in the scope
729
683
  *
730
684
  * @param ctor
731
685
  * @returns
732
686
  */
733
- isAllowedFragment(ctor) {
734
- return this.isFragmentConstructor(ctor) && this.allowedFragments.has(ctor);
687
+ isAllowedError(ctor) {
688
+ return A_TypeGuards_helper_1.A_TypeGuards.isErrorConstructor(ctor) && this.allowedErrors.has(ctor);
735
689
  }
736
690
  // ==========================================================================
737
691
  // --------------------DEBUG & Helpers Methods--------------------------------