@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,83 +1,202 @@
1
+ import { A_TYPES__Scope_Init, A_TYPES__ScopeConfig, A_TYPES__ScopeLinkedComponents, A_TYPES_ScopeDependentComponents } from "../A-Scope/A-Scope.types";
2
+ import { A_TYPES__MetaLinkedComponentConstructors, A_TYPES__MetaLinkedComponents } from "../A-Meta/A-Meta.types";
3
+ import { A_TYPES__FeatureAvailableComponents } from "../A-Feature/A-Feature.types";
1
4
  import { A_Component } from "../A-Component/A-Component.class";
2
- import { A_Fragment } from "../A-Fragment/A-Fragment.class";
3
5
  import { A_Feature } from "../A-Feature/A-Feature.class";
4
6
  import { A_Container } from "../A-Container/A-Container.class";
5
7
  import { A_Scope } from "../A-Scope/A-Scope.class";
6
- import { A_TYPES__ScopeConfig, A_TYPES__ScopeConstructor } from "../A-Scope/A-Scope.types";
7
8
  import { A_Meta } from "../A-Meta/A-Meta.class";
8
9
  import { A_ComponentMeta } from "../A-Component/A-Component.meta";
9
10
  import { A_ContainerMeta } from "../A-Container/A-Container.meta";
10
11
  import { A_Entity } from "../A-Entity/A-Entity.class";
11
12
  import { A_EntityMeta } from "../A-Entity/A-Entity.meta";
12
- import { A_TYPES__FeatureConstructor } from "../A-Feature/A-Feature.types";
13
- import { A_TYPES__ConceptStage } from "../A-Concept/A_Concept.types";
14
- import { A_Command } from "../A-Command/A-Command.class";
15
- /**
16
- * Namespace Provider is responsible for providing the Namespace to the Containers and other Namespaces.
17
- * This class stores all Namespaces across the Program.
18
- *
19
- * Namespace provider is a singleton class that is used to store all the Namespaces in the program.
20
- *
21
- */
13
+ import { A_TYPES__A_StageStep } from "../A-Stage/A-Stage.types";
14
+ import { A_TYPES__ContextEnvironment } from "./A-Context.types";
15
+ import { A_TYPES__Container_Constructor } from "../A-Container/A-Container.types";
16
+ import { A_TYPES__Entity_Constructor } from "../A-Entity/A-Entity.types";
17
+ import { A_TYPES__Component_Constructor } from "../A-Component/A-Component.types";
18
+ import { A_Fragment } from "../A-Fragment/A-Fragment.class";
19
+ import { A_TYPES__InjectableTargets } from "../A-Inject/A-Inject.types";
20
+ import { A_TYPES__ConceptAbstraction } from "../A-Concept/A-Concept.types";
22
21
  export declare class A_Context {
23
- static instance: A_Context;
24
22
  /**
25
- * A set of globally registered containers.
23
+ * Default name of the application from environment variable A_CONCEPT_NAME
24
+ *
25
+ * [!] If environment variable is not set, it will default to 'a-concept'
26
26
  */
27
- protected containers: WeakMap<A_Container, A_Scope>;
27
+ static get concept(): string;
28
28
  /**
29
- * A set of globally registered features.
29
+ * Root scope of the application from environment variable A_CONCEPT_ROOT_SCOPE
30
+ *
31
+ * [!] If environment variable is not set, it will default to 'root'
30
32
  */
31
- protected features: WeakMap<A_Feature, A_Scope>;
32
- protected commands: WeakMap<A_Command, A_Scope>;
33
+ static get root(): A_Scope;
33
34
  /**
34
- * Uses to store the scope of every element in the program.
35
+ * Environment the application is running in.
36
+ * Can be either 'server' or 'browser'.
37
+ * [!] Determined by checking if 'window' object is available.
35
38
  */
36
- protected registry: WeakMap<A_Container | A_Feature | A_Component | A_Fragment | A_Entity, A_Scope>;
39
+ static get environment(): A_TYPES__ContextEnvironment;
37
40
  /**
38
- * A set of allocated scopes per every element in the program.
41
+ * Singleton instance of the Context
39
42
  */
40
- protected containersMeta: Map<typeof A_Container.constructor, A_ContainerMeta>;
41
- protected componentsMeta: Map<typeof A_Component, A_ComponentMeta>;
42
- protected entitiesMeta: Map<typeof A_Entity.constructor, A_EntityMeta>;
43
- protected customMeta: Map<typeof A_Container.constructor, A_Meta<any>>;
43
+ private static _instance;
44
44
  /**
45
- * Root Namespace is a Namespace that is used to run the program.
45
+ * Root Scope of the Concept and Environment
46
+ *
47
+ * Root scope is the top-level scope that all other scopes inherit from.
48
+ * It stores global configurations and settings and ALL SHAREABLE RESOURCES.
49
+ *
50
+ * [!] Root scope is created automatically when the Context is initialized.
51
+ * [!] Root scope name can be configured using environment variable A_CONCEPT_ROOT_SCOPE
46
52
  */
47
53
  private _root;
54
+ /**
55
+ * A registry that keeps track of scopes for all components (Containers, Features, Commands)
56
+ * Which can issue a scope allocation.
57
+ */
58
+ protected _registry: WeakMap<A_TYPES__ScopeLinkedComponents, A_Scope>;
59
+ /**
60
+ * This is a registry that stores an issuer of each scope allocation.
61
+ * It helps to track which component (Container, Feature, Command) allocated a specific scope.
62
+ */
63
+ protected _scopeIssuers: WeakMap<A_Scope, A_TYPES__ScopeLinkedComponents>;
64
+ /**
65
+ * Stores a context associated with a specific component that depends on a scope.
66
+ * uses for quick retrieval of the scope for the component.
67
+ */
68
+ protected _scopeStorage: WeakMap<A_TYPES_ScopeDependentComponents, A_Scope>;
69
+ /**
70
+ * Stores meta information for different component types by their constructors.
71
+ * Meta provides to store extra information about the class behavior and configuration.
72
+ */
73
+ protected _metaStorage: Map<A_TYPES__MetaLinkedComponentConstructors, A_Meta>;
74
+ /**
75
+ * Private constructor to enforce singleton pattern.
76
+ *
77
+ * [!] This class should not be instantiated directly. Use A_Context.getInstance() instead.
78
+ */
48
79
  private constructor();
49
80
  /**
50
81
  * Get the instance of the Namespace Provider.
51
82
  *
83
+ * If the instance does not exist, it will be created.
84
+ *
52
85
  * @returns
53
86
  */
54
87
  static getInstance(): A_Context;
55
- static get root(): A_Scope;
56
- static get environment(): 'server' | 'browser';
57
- static allocate(component: any, importing: Partial<A_TYPES__ScopeConstructor & A_TYPES__ScopeConfig>): A_Scope;
58
- static allocate(component: any, importing: Partial<A_TYPES__ScopeConstructor & A_TYPES__ScopeConfig> | A_Scope): A_Scope;
59
- static allocate(feature: A_Feature, importing: Partial<A_TYPES__ScopeConstructor & A_TYPES__ScopeConfig>): A_Scope;
60
- static allocate(feature: A_Feature, importing: Partial<A_TYPES__ScopeConstructor & A_TYPES__ScopeConfig> | A_Scope): A_Scope;
61
- static allocate(container: A_Container, importing: Partial<A_TYPES__ScopeConstructor & A_TYPES__ScopeConfig>): A_Scope;
62
- static allocate(container: A_Container, importing: A_Scope): A_Scope;
63
- /**
64
- * Get or Create Meta for the specific class or instance.
65
- * This method will return the existing meta if it exists, or create a new one if it doesn't.
66
- *
67
- * Meta object contains custom metadata based on the class type.
68
- *
69
- * @param container
70
- */
71
- static meta(container: typeof A_Container): A_ContainerMeta;
72
- static meta(container: A_Container): A_ContainerMeta;
73
- static meta(entity: A_Entity): A_ContainerMeta;
74
- static meta(entity: typeof A_Entity): A_ContainerMeta;
75
- static meta(component: string): A_ComponentMeta;
76
- static meta(component: typeof A_Component): A_ComponentMeta;
77
- static meta(component: A_Component): A_ComponentMeta;
78
- static meta<T extends Record<string, any>>(constructor: typeof A_Component | typeof A_Container | A_Container | A_Component | A_Entity | typeof A_Entity | {
79
- new (...args: any[]): any;
80
- } | string): A_Meta<T>;
88
+ /**
89
+ * Register method allows to register a component with a specific scope in the context.
90
+ *
91
+ * @param component - Component to register with a specific scope. Can be either A_Container, A_Feature.
92
+ * @param scope - Scope to associate the component with.
93
+ * @returns
94
+ */
95
+ static register(
96
+ /**
97
+ * Provide the scope that will be associated with the component.
98
+ */
99
+ scope: A_Scope,
100
+ /**
101
+ * Provide a component that needs to be registered with a specific scope.
102
+ */
103
+ component: A_TYPES_ScopeDependentComponents): A_Scope;
104
+ /**
105
+ * Allocate method instantiates a new scope for the given component and registers it in the context.
106
+ * It bounds the component (Container, Feature) to a new scope that can be configured and used independently.
107
+ *
108
+ *
109
+ * @param component - Component to allocate the scope for. Can be either A_Container, A_Feature.
110
+ * @param importing - Configuration of the scope that will be created for the component.
111
+ */
112
+ static allocate(
113
+ /**
114
+ * Provide a component that needs a scope allocation.
115
+ */
116
+ component: A_TYPES__ScopeLinkedComponents): A_Scope;
117
+ static allocate(
118
+ /**
119
+ * Provide a component that needs a scope allocation.
120
+ */
121
+ component: A_TYPES__ScopeLinkedComponents,
122
+ /**
123
+ * Provide the scope that will be used as a base for the new scope.
124
+ */
125
+ importing: A_Scope): A_Scope;
126
+ static allocate(
127
+ /**
128
+ * Provide a component that needs a scope allocation.
129
+ */
130
+ component: A_TYPES__ScopeLinkedComponents,
131
+ /**
132
+ * Provide configuration for the scope that will be created for the component.
133
+ */
134
+ config: Partial<A_TYPES__Scope_Init & A_TYPES__ScopeConfig>): A_Scope;
135
+ /**
136
+ * Get or Create Meta for the specific class or instance.
137
+ * This method will return the existing meta if it exists, or create a new one if it doesn't.
138
+ *
139
+ * Meta object contains custom metadata based on the class type.
140
+ *
141
+ * @param container
142
+ */
143
+ static meta(
144
+ /**
145
+ * Get meta for the specific container class by constructor.
146
+ */
147
+ container: A_TYPES__Container_Constructor): A_ContainerMeta;
148
+ static meta(
149
+ /**
150
+ * Get meta for the specific container instance.
151
+ */
152
+ container: A_Container): A_ContainerMeta;
153
+ static meta(
154
+ /**
155
+ * Get meta for the specific entity class by constructor.
156
+ */
157
+ entity: A_TYPES__Entity_Constructor): A_EntityMeta;
158
+ static meta(
159
+ /**
160
+ * Get meta for the specific entity instance.
161
+ */
162
+ entity: A_Entity): A_EntityMeta;
163
+ static meta(
164
+ /**
165
+ * Get meta for the specific component class by constructor.
166
+ */
167
+ component: A_TYPES__Component_Constructor): A_ComponentMeta;
168
+ static meta(
169
+ /**
170
+ * Get meta for the specific component instance.
171
+ */
172
+ component: A_Component): A_ComponentMeta;
173
+ static meta(
174
+ /**
175
+ * Get meta for the specific component by its name.
176
+ */
177
+ component: string): A_ComponentMeta;
178
+ static meta(
179
+ /**
180
+ * Get meta for the specific injectable target (class or instance).
181
+ */
182
+ target: A_TYPES__InjectableTargets): A_ComponentMeta;
183
+ static meta<T extends Record<string, any>>(
184
+ /**
185
+ * Get meta for the specific class or instance
186
+ */
187
+ constructor: new (...args: any[]) => any): A_Meta<T>;
188
+ /**
189
+ *
190
+ * This method allows to get the issuer of a specific scope.
191
+ *
192
+ * @param scope - Scope to get the issuer for.
193
+ * @returns - Component that issued the scope.
194
+ */
195
+ static issuer(
196
+ /**
197
+ * Provide the scope to get its issuer.
198
+ */
199
+ scope: A_Scope): A_TYPES__ScopeLinkedComponents;
81
200
  /**
82
201
  * Get the scope of the specific class or instance.
83
202
  *
@@ -87,49 +206,156 @@ export declare class A_Context {
87
206
  *
88
207
  * @param entity
89
208
  */
90
- static scope(entity: A_Entity): A_Scope;
91
- static scope(component: A_Component): A_Scope;
92
- static scope(container: A_Container): A_Scope;
93
- static scope(feature: A_Fragment): A_Scope;
94
- static scope(feature: A_Feature): A_Scope;
209
+ static scope<T extends A_Entity>(
210
+ /**
211
+ * Provide an entity to get its scope.
212
+ */
213
+ entity: T): A_Scope;
214
+ static scope<T extends A_Component>(
215
+ /**
216
+ * Provide a component to get its scope.
217
+ */
218
+ component: T): A_Scope;
219
+ static scope<T extends A_Container>(
220
+ /**
221
+ * Provide a container to get its scope.
222
+ */
223
+ container: T): A_Scope;
224
+ static scope<T extends A_Feature>(
225
+ /**
226
+ * Provide a feature to get its scope.
227
+ */
228
+ feature: T): A_Scope;
229
+ static scope<T extends A_Fragment>(
230
+ /**
231
+ * Provide a fragment to get its scope.
232
+ */
233
+ fragment: T): A_Scope;
95
234
  /**
96
- * This method returns a component by its meta.
235
+ * Returns a template of the feature that can be then used to create a new A-Feature Instance
97
236
  *
98
- * @param meta
99
- * @returns
237
+ * [!] Note: Steps/Stages included are fully dependent on the scope provided since it dictates which components are active and can provide extensions for the feature.
238
+ *
239
+ * @param name
240
+ */
241
+ static featureTemplate(
242
+ /**
243
+ * Provide the name of the feature to get the template for. Regular expressions are also supported to match multiple features.
244
+ */
245
+ name: string | RegExp,
246
+ /**
247
+ * Provide the component to get the feature template from.
248
+ */
249
+ component: A_TYPES__FeatureAvailableComponents,
250
+ /**
251
+ * Provide the scope that dictates which components are active and can provide extensions for the feature.
100
252
  */
101
- static component(meta: A_ComponentMeta): typeof A_Component;
253
+ scope: A_Scope): Array<A_TYPES__A_StageStep>;
102
254
  /**
103
- * This method returns a constructor params to create a new feature
255
+ * Returns all extensions for the specific feature in the specific component within the provided scope.
256
+ * Scope dictates which components are active and can provide extensions for the feature.
257
+ *
258
+ * [!] This method only returns extensions, not the base feature definition.
104
259
  *
105
260
  * @param scope
106
261
  * @returns
107
262
  */
108
- static featureDefinition(component: A_Component | A_Container | A_Entity, feature: string | RegExp, scope: A_Scope): A_TYPES__FeatureConstructor;
263
+ static featureExtensions(
264
+ /**
265
+ * Provide the name of the feature to get the template for. Regular expressions are also supported to match multiple features.
266
+ */
267
+ name: string | RegExp,
109
268
  /**
110
- * This method returns a constructor params to create a new feature
269
+ * Provide the component to get the feature template from.
270
+ */
271
+ component: A_TYPES__FeatureAvailableComponents,
272
+ /**
273
+ * Provide the scope that dictates which components are active and can provide extensions for the feature.
274
+ */
275
+ scope: A_Scope): Array<A_TYPES__A_StageStep>;
276
+ /**
277
+ * This method returns the feature template definition without any extensions.
278
+ * It can be used to retrieve the base template for a feature before any modifications are applied.
111
279
  *
112
- * @param scope
280
+ * [!] This method does not consider extensions from other components.
281
+ *
282
+ * @param feature
283
+ * @param component
113
284
  * @returns
114
285
  */
115
- static abstractionDefinition(component: A_Component | A_Container | A_Entity | A_Command, abstraction: A_TYPES__ConceptStage, scope: A_Scope): A_TYPES__FeatureConstructor;
286
+ static featureDefinition(
287
+ /**
288
+ * Name of the feature to get the template for.
289
+ * Regular expressions are also supported to match multiple features.
290
+ */
291
+ feature: string | RegExp,
116
292
  /**
117
- * This method returns a step-by-step instructions of feature implementation depending on the feature name and the class.
293
+ * Component to get the feature template from.
294
+ */
295
+ component: A_TYPES__FeatureAvailableComponents): Array<A_TYPES__A_StageStep>;
296
+ /**
297
+ * Returns a definition of the abstraction that can be then used to create a new A-Feature Instance
118
298
  *
119
- * @param scope
120
- * @returns
299
+ * [!] Note: Steps/Stages included are fully dependent on the scope provided since it dictates which components are active and can provide extensions for the abstraction.
300
+ *
301
+ * @param abstraction
302
+ */
303
+ static abstractionTemplate(
304
+ /**
305
+ * Provide the abstraction stage to get the definition for.
306
+ */
307
+ abstraction: A_TYPES__ConceptAbstraction,
308
+ /**
309
+ * Provide the component to get the abstraction definition from.
310
+ */
311
+ component: A_TYPES__FeatureAvailableComponents,
312
+ /**
313
+ * Provide the scope that dictates which components are active and can provide extensions for the abstraction.
314
+ */
315
+ scope: A_Scope): Array<A_TYPES__A_StageStep>;
316
+ static abstractionExtensions(
317
+ /**
318
+ * Provide the abstraction name to get the definition for.
319
+ */
320
+ abstraction: A_TYPES__ConceptAbstraction,
321
+ /**
322
+ * Provide the component to get the abstraction definition from.
121
323
  */
122
- static feature<T extends Array<string>>(component: A_Component | A_Container | A_Entity<any, any>, feature: string | T[number] | RegExp, scope: A_Scope): A_Feature;
324
+ component: A_TYPES__FeatureAvailableComponents,
123
325
  /**
124
- * Register a Namespace in the provider.
125
- * @param Namespace
326
+ * Provide the scope that dictates which components are active and can provide extensions for the abstraction.
126
327
  */
127
- static register(scope: A_Scope, container: A_Container): any;
128
- static register(scope: A_Scope, entity: A_Entity): any;
129
- static register(scope: A_Scope, component: A_Component): any;
130
- static register(scope: A_Scope, fragment: A_Fragment): any;
328
+ scope: A_Scope): Array<A_TYPES__A_StageStep>;
131
329
  /**
132
330
  * Resets the Context to its initial state.
133
331
  */
134
332
  static reset(): void;
333
+ /**
334
+ * Type guard to check if the param is allowed for scope allocation.
335
+ *
336
+ * @param param
337
+ * @returns
338
+ */
339
+ static isAllowedForScopeAllocation(param: any): param is A_TYPES__ScopeLinkedComponents;
340
+ /**
341
+ * Type guard to check if the param is allowed to be registered in the context.
342
+ *
343
+ * @param param
344
+ * @returns
345
+ */
346
+ static isAllowedToBeRegistered(param: any): param is A_TYPES_ScopeDependentComponents;
347
+ /**
348
+ * Type guard to check if the param is allowed for meta storage.
349
+ *
350
+ * @param param
351
+ * @returns
352
+ */
353
+ static isAllowedForMeta(param: any): param is A_TYPES__MetaLinkedComponents;
354
+ /**
355
+ * Type guard to check if the param is allowed for meta storage by constructor.
356
+ *
357
+ * @param param
358
+ * @returns
359
+ */
360
+ static isAllowedForMetaConstructor(param: any): param is A_TYPES__MetaLinkedComponentConstructors;
135
361
  }