@adaas/a-concept 0.0.63 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/dist/index.d.ts +24 -32
  2. package/dist/index.js +35 -52
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/constants/env.constants.d.ts +15 -8
  5. package/dist/src/constants/env.constants.js +17 -10
  6. package/dist/src/constants/env.constants.js.map +1 -1
  7. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +23 -0
  8. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js +69 -0
  9. package/dist/src/global/A-Abstraction/A-Abstraction-Extend.decorator.js.map +1 -0
  10. package/dist/src/global/A-Abstraction/A-Abstraction.class.d.ts +47 -20
  11. package/dist/src/global/A-Abstraction/A-Abstraction.class.js +55 -48
  12. package/dist/src/global/A-Abstraction/A-Abstraction.class.js.map +1 -1
  13. package/dist/src/global/A-Abstraction/A-Abstraction.error.d.ts +7 -0
  14. package/dist/src/global/A-Abstraction/A-Abstraction.error.js +12 -0
  15. package/dist/src/global/A-Abstraction/A-Abstraction.error.js.map +1 -0
  16. package/dist/src/global/A-Abstraction/A-Abstraction.types.d.ts +27 -12
  17. package/dist/src/global/A-Abstraction/A-Abstraction.types.js +0 -8
  18. package/dist/src/global/A-Abstraction/A-Abstraction.types.js.map +1 -1
  19. package/dist/src/global/A-Caller/A_Caller.class.d.ts +33 -0
  20. package/dist/src/global/A-Caller/A_Caller.class.js +44 -0
  21. package/dist/src/global/A-Caller/A_Caller.class.js.map +1 -0
  22. package/dist/src/global/A-Caller/A_Caller.error.d.ts +7 -0
  23. package/dist/src/global/A-Caller/A_Caller.error.js +12 -0
  24. package/dist/src/global/A-Caller/A_Caller.error.js.map +1 -0
  25. package/dist/src/global/A-Caller/A_Caller.types.d.ts +18 -0
  26. package/dist/src/{base/A-Errors/A-Errors.types.js → global/A-Caller/A_Caller.types.js} +1 -1
  27. package/dist/src/global/A-Caller/A_Caller.types.js.map +1 -0
  28. package/dist/src/global/A-Component/A-Component.class.d.ts +20 -3
  29. package/dist/src/global/A-Component/A-Component.class.js +35 -19
  30. package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
  31. package/dist/src/global/A-Component/A-Component.constants.d.ts +6 -0
  32. package/dist/src/global/A-Component/A-Component.constants.js +11 -0
  33. package/dist/src/global/A-Component/A-Component.constants.js.map +1 -0
  34. package/dist/src/global/A-Component/A-Component.meta.d.ts +4 -4
  35. package/dist/src/global/A-Component/A-Component.meta.js +6 -8
  36. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -1
  37. package/dist/src/global/A-Component/A-Component.types.d.ts +40 -22
  38. package/dist/src/global/A-Component/A-Component.types.js +1 -8
  39. package/dist/src/global/A-Component/A-Component.types.js.map +1 -1
  40. package/dist/src/global/A-Concept/A-Concept.class.d.ts +153 -0
  41. package/dist/src/global/A-Concept/A-Concept.class.js +260 -0
  42. package/dist/src/global/A-Concept/A-Concept.class.js.map +1 -0
  43. package/dist/src/global/A-Concept/A-Concept.constants.d.ts +33 -0
  44. package/dist/src/global/A-Concept/A-Concept.constants.js +39 -0
  45. package/dist/src/global/A-Concept/A-Concept.constants.js.map +1 -0
  46. package/dist/src/global/A-Concept/{A_Concept.meta.js → A-Concept.meta.js} +1 -2
  47. package/dist/src/global/A-Concept/A-Concept.meta.js.map +1 -0
  48. package/dist/src/global/A-Concept/A-Concept.types.d.ts +83 -0
  49. package/dist/src/global/{A-Channel/A-Channel.types.js → A-Concept/A-Concept.types.js} +1 -1
  50. package/dist/src/global/A-Concept/A-Concept.types.js.map +1 -0
  51. package/dist/src/global/A-Container/A-Container.class.d.ts +31 -35
  52. package/dist/src/global/A-Container/A-Container.class.js +34 -55
  53. package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
  54. package/dist/src/global/A-Container/A-Container.constants.d.ts +5 -0
  55. package/dist/src/global/A-Container/A-Container.constants.js +10 -0
  56. package/dist/src/global/A-Container/A-Container.constants.js.map +1 -0
  57. package/dist/src/global/A-Container/A-Container.meta.d.ts +6 -6
  58. package/dist/src/global/A-Container/A-Container.meta.js +5 -6
  59. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -1
  60. package/dist/src/global/A-Container/A-Container.types.d.ts +31 -25
  61. package/dist/src/global/A-Container/A-Container.types.js +1 -7
  62. package/dist/src/global/A-Container/A-Container.types.js.map +1 -1
  63. package/dist/src/global/A-Context/A-Context.class.d.ts +302 -76
  64. package/dist/src/global/A-Context/A-Context.class.js +436 -244
  65. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  66. package/dist/src/global/A-Context/A-Context.error.d.ts +20 -0
  67. package/dist/src/global/A-Context/A-Context.error.js +25 -0
  68. package/dist/src/global/A-Context/A-Context.error.js.map +1 -0
  69. package/dist/src/global/A-Context/A-Context.types.d.ts +5 -0
  70. package/dist/src/global/A-Context/A-Context.types.js +1 -0
  71. package/dist/src/global/A-Entity/A-Entity.class.d.ts +18 -18
  72. package/dist/src/global/A-Entity/A-Entity.class.js +36 -43
  73. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -1
  74. package/dist/src/global/A-Entity/A-Entity.constants.d.ts +11 -0
  75. package/dist/src/global/A-Entity/A-Entity.constants.js +17 -0
  76. package/dist/src/global/A-Entity/A-Entity.constants.js.map +1 -0
  77. package/dist/src/global/A-Entity/A-Entity.error.d.ts +7 -0
  78. package/dist/src/global/A-Entity/A-Entity.error.js +12 -0
  79. package/dist/src/global/A-Entity/A-Entity.error.js.map +1 -0
  80. package/dist/src/global/A-Entity/A-Entity.meta.d.ts +2 -2
  81. package/dist/src/global/A-Entity/A-Entity.meta.js +2 -2
  82. package/dist/src/global/A-Entity/A-Entity.meta.js.map +1 -1
  83. package/dist/src/global/A-Entity/A-Entity.types.d.ts +24 -29
  84. package/dist/src/global/A-Entity/A-Entity.types.js +1 -13
  85. package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -1
  86. package/dist/src/global/A-Error/A_Error.class.d.ts +219 -0
  87. package/dist/src/global/A-Error/A_Error.class.js +267 -0
  88. package/dist/src/global/A-Error/A_Error.class.js.map +1 -0
  89. package/dist/src/global/A-Error/A_Error.constants.d.ts +5 -0
  90. package/dist/src/global/A-Error/A_Error.constants.js +9 -0
  91. package/dist/src/global/A-Error/A_Error.constants.js.map +1 -0
  92. package/dist/src/global/A-Error/A_Error.types.d.ts +89 -0
  93. package/dist/src/{decorators/A-Inject/A-Inject.decorator.types.js → global/A-Error/A_Error.types.js} +1 -1
  94. package/dist/src/global/A-Error/A_Error.types.js.map +1 -0
  95. package/dist/src/global/A-Feature/A-Feature-Define.decorator.d.ts +15 -0
  96. package/dist/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.js +21 -27
  97. package/dist/src/global/A-Feature/A-Feature-Define.decorator.js.map +1 -0
  98. package/dist/src/{decorators → global}/A-Feature/A-Feature-Extend.decorator.d.ts +26 -3
  99. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js +97 -0
  100. package/dist/src/global/A-Feature/A-Feature-Extend.decorator.js.map +1 -0
  101. package/dist/src/global/A-Feature/A-Feature.class.d.ts +120 -30
  102. package/dist/src/global/A-Feature/A-Feature.class.js +205 -73
  103. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -1
  104. package/dist/src/global/A-Feature/A-Feature.error.d.ts +25 -0
  105. package/dist/src/global/A-Feature/A-Feature.error.js +33 -0
  106. package/dist/src/global/A-Feature/A-Feature.error.js.map +1 -0
  107. package/dist/src/global/A-Feature/A-Feature.types.d.ts +241 -18
  108. package/dist/src/global/A-Feature/A-Feature.types.js +16 -22
  109. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -1
  110. package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +19 -27
  111. package/dist/src/global/A-Fragment/A-Fragment.class.js +21 -91
  112. package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -1
  113. package/dist/src/global/A-Fragment/A-Fragment.types.d.ts +19 -1
  114. package/dist/src/global/A-Fragment/A-Fragment.types.js +3 -0
  115. package/dist/src/global/A-Fragment/A-Fragment.types.js.map +1 -1
  116. package/dist/src/global/A-Inject/A-Inject.decorator.d.ts +80 -0
  117. package/dist/src/global/A-Inject/A-Inject.decorator.js +49 -0
  118. package/dist/src/global/A-Inject/A-Inject.decorator.js.map +1 -0
  119. package/dist/src/global/A-Inject/A-Inject.error.d.ts +5 -0
  120. package/dist/src/global/A-Inject/A-Inject.error.js +10 -0
  121. package/dist/src/global/A-Inject/A-Inject.error.js.map +1 -0
  122. package/dist/src/global/A-Inject/A-Inject.types.d.ts +42 -0
  123. package/dist/src/{decorators/A-Entity/A-Entity.decorator.types.js → global/A-Inject/A-Inject.types.js} +1 -1
  124. package/dist/src/global/A-Inject/A-Inject.types.js.map +1 -0
  125. package/dist/src/global/A-Meta/A-Meta.class.d.ts +1 -1
  126. package/dist/src/global/A-Meta/A-Meta.types.d.ts +14 -0
  127. package/dist/src/global/A-Meta/A-Meta.types.js +1 -0
  128. package/dist/src/global/A-Scope/A-Scope.class.d.ts +406 -63
  129. package/dist/src/global/A-Scope/A-Scope.class.js +533 -287
  130. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -1
  131. package/dist/src/global/A-Scope/A-Scope.error.d.ts +6 -0
  132. package/dist/src/global/A-Scope/A-Scope.error.js +11 -0
  133. package/dist/src/global/A-Scope/A-Scope.error.js.map +1 -0
  134. package/dist/src/global/A-Scope/A-Scope.types.d.ts +50 -13
  135. package/dist/src/global/A-Stage/A-Stage.class.d.ts +31 -23
  136. package/dist/src/global/A-Stage/A-Stage.class.js +100 -68
  137. package/dist/src/global/A-Stage/A-Stage.class.js.map +1 -1
  138. package/dist/src/global/A-Stage/A-Stage.error.d.ts +2 -1
  139. package/dist/src/global/A-Stage/A-Stage.error.js +5 -2
  140. package/dist/src/global/A-Stage/A-Stage.error.js.map +1 -1
  141. package/dist/src/global/A-Stage/A-Stage.types.d.ts +4 -16
  142. package/dist/src/global/A-Stage/A-Stage.types.js +0 -16
  143. package/dist/src/global/A-Stage/A-Stage.types.js.map +1 -1
  144. package/dist/src/global/ASEID/ASEID.class.d.ts +130 -0
  145. package/dist/src/global/ASEID/ASEID.class.js +167 -0
  146. package/dist/src/global/ASEID/ASEID.class.js.map +1 -0
  147. package/dist/src/global/ASEID/ASEID.constants.js +2 -0
  148. package/dist/src/global/ASEID/ASEID.constants.js.map +1 -0
  149. package/dist/src/global/ASEID/ASEID.error.d.ts +5 -0
  150. package/dist/src/global/ASEID/ASEID.error.js +10 -0
  151. package/dist/src/global/ASEID/ASEID.error.js.map +1 -0
  152. package/dist/src/global/ASEID/ASEID.types.d.ts +65 -0
  153. package/dist/src/global/ASEID/ASEID.types.js +5 -0
  154. package/dist/src/global/ASEID/ASEID.types.js.map +1 -0
  155. package/dist/src/helpers/A_Common.helper.d.ts +28 -0
  156. package/dist/src/helpers/A_Common.helper.js +170 -0
  157. package/dist/src/helpers/A_Common.helper.js.map +1 -0
  158. package/dist/src/helpers/A_Formatter.helper.d.ts +35 -0
  159. package/dist/src/helpers/A_Formatter.helper.js +62 -0
  160. package/dist/src/helpers/A_Formatter.helper.js.map +1 -0
  161. package/dist/src/helpers/A_Identity.helper.d.ts +29 -0
  162. package/dist/src/helpers/A_Identity.helper.js +43 -0
  163. package/dist/src/helpers/A_Identity.helper.js.map +1 -0
  164. package/dist/src/helpers/{StepsManager.class.d.ts → A_StepsManager.class.d.ts} +4 -2
  165. package/dist/src/helpers/{StepsManager.class.js → A_StepsManager.class.js} +10 -5
  166. package/dist/src/helpers/A_StepsManager.class.js.map +1 -0
  167. package/dist/src/helpers/A_TypeGuards.helper.d.ts +205 -0
  168. package/dist/src/helpers/A_TypeGuards.helper.js +288 -0
  169. package/dist/src/helpers/A_TypeGuards.helper.js.map +1 -0
  170. package/dist/src/types/A_Common.types.d.ts +36 -0
  171. package/dist/src/types/A_Common.types.js +3 -0
  172. package/dist/src/types/A_Common.types.js.map +1 -0
  173. package/index.ts +27 -51
  174. package/jest.config.ts +1 -0
  175. package/package.json +1 -2
  176. package/src/constants/env.constants.ts +18 -11
  177. package/src/global/A-Abstraction/A-Abstraction-Extend.decorator.ts +103 -0
  178. package/src/global/A-Abstraction/A-Abstraction.class.ts +71 -65
  179. package/src/global/A-Abstraction/A-Abstraction.error.ts +9 -0
  180. package/src/global/A-Abstraction/A-Abstraction.types.ts +52 -13
  181. package/src/global/A-Caller/A_Caller.class.ts +61 -0
  182. package/src/global/A-Caller/A_Caller.error.ts +10 -0
  183. package/src/global/A-Caller/A_Caller.types.ts +25 -0
  184. package/src/global/A-Component/A-Component.class.ts +26 -15
  185. package/src/global/A-Component/A-Component.constants.ts +9 -0
  186. package/src/global/A-Component/A-Component.meta.ts +6 -16
  187. package/src/global/A-Component/A-Component.types.ts +53 -28
  188. package/src/global/A-Concept/A-Concept.class.ts +316 -0
  189. package/src/global/A-Concept/A-Concept.constants.ts +36 -0
  190. package/src/global/A-Concept/A-Concept.meta.ts +17 -0
  191. package/src/global/A-Concept/A-Concept.types.ts +100 -0
  192. package/src/global/A-Container/A-Container.class.ts +42 -83
  193. package/src/global/A-Container/A-Container.constants.ts +5 -0
  194. package/src/global/A-Container/A-Container.meta.ts +7 -11
  195. package/src/global/A-Container/A-Container.types.ts +38 -34
  196. package/src/global/A-Context/A-Context.class.ts +648 -412
  197. package/src/global/A-Context/A-Context.error.ts +44 -0
  198. package/src/global/A-Context/A-Context.types.ts +14 -0
  199. package/src/global/A-Entity/A-Entity.class.ts +39 -52
  200. package/src/global/A-Entity/A-Entity.constants.ts +12 -0
  201. package/src/global/A-Entity/A-Entity.error.ts +12 -0
  202. package/src/global/A-Entity/A-Entity.meta.ts +4 -4
  203. package/src/global/A-Entity/A-Entity.types.ts +31 -36
  204. package/src/global/A-Error/A_Error.class.ts +408 -0
  205. package/src/global/A-Error/A_Error.constants.ts +11 -0
  206. package/src/global/A-Error/A_Error.types.ts +96 -0
  207. package/src/{decorators → global}/A-Feature/A-Feature-Define.decorator.ts +31 -37
  208. package/src/global/A-Feature/A-Feature-Extend.decorator.ts +187 -0
  209. package/src/global/A-Feature/A-Feature.class.ts +279 -122
  210. package/src/global/A-Feature/A-Feature.error.ts +33 -0
  211. package/src/global/A-Feature/A-Feature.types.ts +278 -40
  212. package/src/global/A-Fragment/A-Fragment.class.ts +29 -100
  213. package/src/global/A-Fragment/A-Fragment.types.ts +25 -3
  214. package/src/global/A-Inject/A-Inject.decorator.ts +167 -0
  215. package/src/global/A-Inject/A-Inject.error.ts +8 -0
  216. package/src/global/A-Inject/A-Inject.types.ts +75 -0
  217. package/src/global/A-Meta/A-Meta.class.ts +1 -1
  218. package/src/global/A-Meta/A-Meta.types.ts +21 -0
  219. package/src/global/A-Scope/A-Scope.class.ts +841 -443
  220. package/src/global/A-Scope/A-Scope.error.ts +13 -0
  221. package/src/global/A-Scope/A-Scope.types.ts +65 -26
  222. package/src/global/A-Stage/A-Stage.class.ts +142 -80
  223. package/src/global/A-Stage/A-Stage.error.ts +4 -2
  224. package/src/global/A-Stage/A-Stage.types.ts +4 -25
  225. package/src/global/ASEID/ASEID.class.ts +275 -0
  226. package/src/global/ASEID/ASEID.error.ts +12 -0
  227. package/src/global/ASEID/ASEID.types.ts +79 -0
  228. package/src/helpers/A_Common.helper.ts +204 -0
  229. package/src/helpers/A_Formatter.helper.ts +58 -0
  230. package/src/helpers/A_Identity.helper.ts +53 -0
  231. package/src/helpers/{StepsManager.class.ts → A_StepsManager.class.ts} +19 -3
  232. package/src/helpers/A_TypeGuards.helper.ts +318 -0
  233. package/src/types/A_Common.types.ts +79 -0
  234. package/tests/A-Common.test.ts +117 -0
  235. package/tests/A-Component.test.ts +11 -6
  236. package/tests/A-Concept.test.ts +19 -22
  237. package/tests/A-Entity.test.ts +24 -24
  238. package/tests/A-Error.test.ts +129 -0
  239. package/tests/A-Feature.test.ts +34 -25
  240. package/tests/A-Scope.test.ts +50 -22
  241. package/tests/ASEID.test.ts +74 -0
  242. package/tsconfig.build.json +2 -1
  243. package/tsconfig.json +3 -2
  244. package/dist/src/base/A-Config/A-Config.container.d.ts +0 -9
  245. package/dist/src/base/A-Config/A-Config.container.js +0 -69
  246. package/dist/src/base/A-Config/A-Config.container.js.map +0 -1
  247. package/dist/src/base/A-Config/A-Config.context.d.ts +0 -30
  248. package/dist/src/base/A-Config/A-Config.context.js +0 -60
  249. package/dist/src/base/A-Config/A-Config.context.js.map +0 -1
  250. package/dist/src/base/A-Config/A-Config.types.d.ts +0 -20
  251. package/dist/src/base/A-Config/A-Config.types.js +0 -7
  252. package/dist/src/base/A-Config/A-Config.types.js.map +0 -1
  253. package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +0 -29
  254. package/dist/src/base/A-Config/components/ConfigReader.component.js +0 -84
  255. package/dist/src/base/A-Config/components/ConfigReader.component.js.map +0 -1
  256. package/dist/src/base/A-Config/components/ENVConfigReader.component.d.ts +0 -10
  257. package/dist/src/base/A-Config/components/ENVConfigReader.component.js +0 -37
  258. package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +0 -1
  259. package/dist/src/base/A-Config/components/FileConfigReader.component.d.ts +0 -11
  260. package/dist/src/base/A-Config/components/FileConfigReader.component.js +0 -48
  261. package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +0 -1
  262. package/dist/src/base/A-Errors/A-Error.entity.d.ts +0 -3
  263. package/dist/src/base/A-Errors/A-Error.entity.js +0 -8
  264. package/dist/src/base/A-Errors/A-Error.entity.js.map +0 -1
  265. package/dist/src/base/A-Errors/A-Errors.component.d.ts +0 -19
  266. package/dist/src/base/A-Errors/A-Errors.component.js +0 -87
  267. package/dist/src/base/A-Errors/A-Errors.component.js.map +0 -1
  268. package/dist/src/base/A-Errors/A-Errors.context.d.ts +0 -27
  269. package/dist/src/base/A-Errors/A-Errors.context.js +0 -50
  270. package/dist/src/base/A-Errors/A-Errors.context.js.map +0 -1
  271. package/dist/src/base/A-Errors/A-Errors.types.d.ts +0 -5
  272. package/dist/src/base/A-Errors/A-Errors.types.js.map +0 -1
  273. package/dist/src/base/A-Logger/A-Logger.component.d.ts +0 -31
  274. package/dist/src/base/A-Logger/A-Logger.component.js +0 -155
  275. package/dist/src/base/A-Logger/A-Logger.component.js.map +0 -1
  276. package/dist/src/base/A-Logger/A-Logger.types.js +0 -2
  277. package/dist/src/base/A-Logger/A-Logger.types.js.map +0 -1
  278. package/dist/src/base/A-Polyfill/A-Polyfill.component.d.ts +0 -5
  279. package/dist/src/base/A-Polyfill/A-Polyfill.component.js +0 -34
  280. package/dist/src/base/A-Polyfill/A-Polyfill.component.js.map +0 -1
  281. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.d.ts +0 -14
  282. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js +0 -53
  283. package/dist/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.js.map +0 -1
  284. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.d.ts +0 -2
  285. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js +0 -3
  286. package/dist/src/decorators/A-Abstraction/A-Abstraction.decorator.types.js.map +0 -1
  287. package/dist/src/decorators/A-Connect/A-Connect.decorator.d.ts +0 -19
  288. package/dist/src/decorators/A-Connect/A-Connect.decorator.js +0 -31
  289. package/dist/src/decorators/A-Connect/A-Connect.decorator.js.map +0 -1
  290. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.d.ts +0 -1
  291. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js +0 -3
  292. package/dist/src/decorators/A-Connect/A-Connect.decorator.types.js.map +0 -1
  293. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.d.ts +0 -1
  294. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js +0 -8
  295. package/dist/src/decorators/A-Entity/A-Entity-List.decorator.js.map +0 -1
  296. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.d.ts +0 -14
  297. package/dist/src/decorators/A-Entity/A-Entity.decorator.types.js.map +0 -1
  298. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +0 -19
  299. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +0 -1
  300. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +0 -81
  301. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +0 -1
  302. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +0 -96
  303. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js +0 -3
  304. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js.map +0 -1
  305. package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +0 -30
  306. package/dist/src/decorators/A-Inject/A-Inject.decorator.js +0 -47
  307. package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +0 -1
  308. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +0 -48
  309. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.js.map +0 -1
  310. package/dist/src/global/A-Channel/A-Channel.class.d.ts +0 -16
  311. package/dist/src/global/A-Channel/A-Channel.class.js +0 -59
  312. package/dist/src/global/A-Channel/A-Channel.class.js.map +0 -1
  313. package/dist/src/global/A-Channel/A-Channel.types.d.ts +0 -68
  314. package/dist/src/global/A-Channel/A-Channel.types.js.map +0 -1
  315. package/dist/src/global/A-Command/A-Command.class.d.ts +0 -187
  316. package/dist/src/global/A-Command/A-Command.class.js +0 -349
  317. package/dist/src/global/A-Command/A-Command.class.js.map +0 -1
  318. package/dist/src/global/A-Command/A-Command.constants.d.ts +0 -17
  319. package/dist/src/global/A-Command/A-Command.constants.js +0 -22
  320. package/dist/src/global/A-Command/A-Command.constants.js.map +0 -1
  321. package/dist/src/global/A-Command/A-Command.meta.d.ts +0 -11
  322. package/dist/src/global/A-Command/A-Command.meta.js +0 -18
  323. package/dist/src/global/A-Command/A-Command.meta.js.map +0 -1
  324. package/dist/src/global/A-Command/A-Command.types.d.ts +0 -43
  325. package/dist/src/global/A-Command/A-Command.types.js +0 -10
  326. package/dist/src/global/A-Command/A-Command.types.js.map +0 -1
  327. package/dist/src/global/A-Command/context/A_Command.context.d.ts +0 -64
  328. package/dist/src/global/A-Command/context/A_Command.context.js +0 -85
  329. package/dist/src/global/A-Command/context/A_Command.context.js.map +0 -1
  330. package/dist/src/global/A-Concept/A_Concept.class.d.ts +0 -104
  331. package/dist/src/global/A-Concept/A_Concept.class.js +0 -217
  332. package/dist/src/global/A-Concept/A_Concept.class.js.map +0 -1
  333. package/dist/src/global/A-Concept/A_Concept.meta.js.map +0 -1
  334. package/dist/src/global/A-Concept/A_Concept.types.d.ts +0 -103
  335. package/dist/src/global/A-Concept/A_Concept.types.js +0 -28
  336. package/dist/src/global/A-Concept/A_Concept.types.js.map +0 -1
  337. package/dist/src/global/A-Feature/A-FeatureCaller.class.d.ts +0 -22
  338. package/dist/src/global/A-Feature/A-FeatureCaller.class.js +0 -26
  339. package/dist/src/global/A-Feature/A-FeatureCaller.class.js.map +0 -1
  340. package/dist/src/helpers/StepsManager.class.js.map +0 -1
  341. package/dist/src/types/A_Module.types.d.ts +0 -17
  342. package/dist/src/types/A_Module.types.js +0 -22
  343. package/dist/src/types/A_Module.types.js.map +0 -1
  344. package/examples/entity/concept.ts +0 -68
  345. package/examples/entity/entities/Task.entity.ts +0 -110
  346. package/examples/entity/entities/User.entity.ts +0 -62
  347. package/examples/fe-be/channels/Test.channel.ts +0 -27
  348. package/examples/fe-be/components/BE-Controller.component.ts +0 -20
  349. package/examples/fe-be/components/FE.component.ts +0 -13
  350. package/examples/fe-be/containers/ServerApp.container.ts +0 -8
  351. package/examples/fe-be/containers/WebApp.container.ts +0 -13
  352. package/examples/multi-container/channels/Direct.channel.ts +0 -39
  353. package/examples/multi-container/concept.ts +0 -0
  354. package/examples/multi-container/containers/Command.container.ts +0 -41
  355. package/examples/multi-container/containers/Schedule.container.ts +0 -52
  356. package/examples/simple/components/A.component.ts +0 -71
  357. package/examples/simple/components/B.component.ts +0 -68
  358. package/examples/simple/concept.ts +0 -87
  359. package/examples/simple/containers/Main.container.ts +0 -88
  360. package/examples/simple/containers/Secondary.container.ts +0 -26
  361. package/examples/simple/context/Fragment_A.context.ts +0 -25
  362. package/examples/simple/context/Fragment_B.context.ts +0 -19
  363. package/examples/simple/entities/EntityA.entity.ts +0 -32
  364. package/examples/simple-http-server/components/http-error-handler.component.ts +0 -47
  365. package/examples/simple-http-server/components/http-request-handler.component.ts +0 -13
  366. package/examples/simple-http-server/concept.ts +0 -35
  367. package/examples/simple-http-server/containers/http-server.container.ts +0 -57
  368. package/examples/simple-http-server/contexts/http-request.context.ts +0 -59
  369. package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -0
  370. package/examples/simple-http-server/controllers/orders.controller.ts +0 -20
  371. package/examples/simple-http-server/controllers/users.controller.ts +0 -104
  372. package/examples/simple-http-server/test.ts +0 -290
  373. package/src/base/A-Config/A-Config.container.ts +0 -68
  374. package/src/base/A-Config/A-Config.context.ts +0 -114
  375. package/src/base/A-Config/A-Config.types.ts +0 -28
  376. package/src/base/A-Config/components/ConfigReader.component.ts +0 -68
  377. package/src/base/A-Config/components/ENVConfigReader.component.ts +0 -31
  378. package/src/base/A-Config/components/FileConfigReader.component.ts +0 -41
  379. package/src/base/A-Errors/A-Error.entity.ts +0 -10
  380. package/src/base/A-Errors/A-Errors.component.ts +0 -103
  381. package/src/base/A-Errors/A-Errors.context.ts +0 -90
  382. package/src/base/A-Errors/A-Errors.types.ts +0 -6
  383. package/src/base/A-Logger/A-Logger.component.ts +0 -192
  384. package/src/base/A-Logger/A-Logger.types.ts +0 -0
  385. package/src/base/A-Polyfill/A-Polyfill.component.ts +0 -18
  386. package/src/decorators/A-Abstraction/A-Abstraction-Extend.decorator.ts +0 -81
  387. package/src/decorators/A-Abstraction/A-Abstraction.decorator.types.ts +0 -21
  388. package/src/decorators/A-Connect/A-Connect.decorator.ts +0 -71
  389. package/src/decorators/A-Connect/A-Connect.decorator.types.ts +0 -6
  390. package/src/decorators/A-Entity/A-Entity-List.decorator.ts +0 -12
  391. package/src/decorators/A-Entity/A-Entity.decorator.types.ts +0 -18
  392. package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +0 -151
  393. package/src/decorators/A-Feature/A-Feature.decorator.types.ts +0 -142
  394. package/src/decorators/A-Inject/A-Inject.decorator.ts +0 -119
  395. package/src/decorators/A-Inject/A-Inject.decorator.types.ts +0 -85
  396. package/src/global/A-Channel/A-Channel.class.ts +0 -111
  397. package/src/global/A-Channel/A-Channel.types.ts +0 -114
  398. package/src/global/A-Command/A-Command.class.ts +0 -419
  399. package/src/global/A-Command/A-Command.constants.ts +0 -27
  400. package/src/global/A-Command/A-Command.meta.ts +0 -22
  401. package/src/global/A-Command/A-Command.types.ts +0 -73
  402. package/src/global/A-Command/context/A_Command.context.ts +0 -114
  403. package/src/global/A-Concept/A_Concept.class.ts +0 -298
  404. package/src/global/A-Concept/A_Concept.meta.ts +0 -32
  405. package/src/global/A-Concept/A_Concept.types.ts +0 -143
  406. package/src/global/A-Feature/A-FeatureCaller.class.ts +0 -38
  407. package/src/types/A_Module.types.ts +0 -23
  408. package/tests/A-Command.test.ts +0 -133
  409. package/tests/A-Config.test.ts +0 -172
  410. /package/dist/src/global/A-Concept/{A_Concept.meta.d.ts → A-Concept.meta.d.ts} +0 -0
  411. /package/dist/src/{base/A-Logger/A-Logger.types.d.ts → global/ASEID/ASEID.constants.d.ts} +0 -0
  412. /package/{examples/fe-be/concept.ts → src/global/ASEID/ASEID.constants.ts} +0 -0
@@ -1,60 +1,220 @@
1
- import { A_TYPES__ScopeConfig, A_TYPES__ScopeConstructor } from "./A-Scope.types";
1
+ import { A_TYPES__ScopeConfig, A_TYPES__Scope_Init, A_TYPES__ScopeLinkedComponents, A_TYPES__ScopeResolvableComponents } from './A-Scope.types';
2
+ import { A_TYPES__A_InjectDecorator_EntityInjectionInstructions, A_TYPES__InjectableConstructors } from "../A-Inject/A-Inject.types";
2
3
  import { A_Fragment } from "../A-Fragment/A-Fragment.class";
3
4
  import { A_Component } from "../A-Component/A-Component.class";
4
5
  import { A_Entity } from "../A-Entity/A-Entity.class";
5
- import { A_TYPES__A_InjectDecorator_EntityInjectionInstructions, A_TYPES__A_InjectDecorator_Injectable } from "../../decorators/A-Inject/A-Inject.decorator.types";
6
- import { A_Command } from "../A-Command/A-Command.class";
7
- /**
8
- *
9
- *
10
- * A_Scope refers to the visibility and accessibility of :
11
- * - variables,
12
- * - Components,
13
- * - Context Fragments
14
- * - and objects in different parts of your code.
15
- * Scope determines where a particular piece of data (like a variable or function)
16
- * can be accessed, modified, or referenced, and it plays a crucial role in avoiding naming collisions and ensuring data integrity.
17
- *
18
- *
19
- */
20
- export declare class A_Scope {
21
- readonly name: string;
22
- private _components;
23
- private _fragments;
24
- private _commands;
25
- private _entities;
26
- private _parent?;
27
- protected params: A_TYPES__ScopeConstructor;
28
- constructor(params: Partial<A_TYPES__ScopeConstructor>, config?: Partial<A_TYPES__ScopeConfig>);
29
- private initComponents;
30
- private initEntities;
31
- private initFragments;
32
- get components(): (new (...args: any[]) => A_Component)[];
33
- get commands(): (new (...args: any[]) => A_Command)[];
34
- get fragments(): A_Fragment[];
35
- parent(setValue: A_Scope): void;
36
- parent(): A_Scope;
37
- isInheritedFrom(scope: A_Scope): boolean;
38
- inherit(parent: A_Scope): A_Scope;
6
+ import { A_Error } from "../A-Error/A_Error.class";
7
+ import { A_TYPES__Entity_Constructor } from '../A-Entity/A-Entity.types';
8
+ import { A_TYPES__Component_Constructor } from '../A-Component/A-Component.types';
9
+ import { A_TYPES__Fragment_Constructor } from '../A-Fragment/A-Fragment.types';
10
+ import { A_TYPES__Error_Constructor } from '../A-Error/A_Error.types';
11
+ export declare class A_Scope<_ComponentType extends A_TYPES__Component_Constructor[] = A_TYPES__Component_Constructor[], _ErrorType extends A_TYPES__Error_Constructor[] = A_TYPES__Error_Constructor[], _EntityType extends A_TYPES__Entity_Constructor[] = A_TYPES__Entity_Constructor[], _FragmentType extends A_Fragment[] = A_Fragment[]> {
39
12
  /**
40
- * Helper method to check circular inheritance
41
- * Should return a full sequence of inheritance for logging purposes
13
+ * Scope Name uses for identification and logging purposes
14
+ */
15
+ protected _name: string;
16
+ /**
17
+ * Parent scope reference, used for inheritance of components, fragments, entities and commands
18
+ */
19
+ protected _parent?: A_Scope;
20
+ /**
21
+ * A set of allowed components, A set of constructors that are allowed in the scope
42
22
  *
43
- * @param scope
23
+ */
24
+ protected _allowedComponents: Set<_ComponentType[number]>;
25
+ /**
26
+ * A set of allowed errors, A set of constructors that are allowed in the scope
27
+ */
28
+ protected _allowedErrors: Set<_ErrorType[number]>;
29
+ /**
30
+ * A set of allowed entities, A set of constructors that are allowed in the scope
31
+ */
32
+ protected _allowedEntities: Set<_EntityType[number]>;
33
+ /**
34
+ * A set of allowed fragments, A set of constructors that are allowed in the scope
35
+ */
36
+ protected _allowedFragments: Set<A_TYPES__Fragment_Constructor<_FragmentType[number]>>;
37
+ /**
38
+ * Storage for the components, should be strong as components are unique per scope
39
+ */
40
+ protected _components: Map<_ComponentType[number], InstanceType<_ComponentType[number]>>;
41
+ /**
42
+ * Storage for the errors, should be strong as errors are unique per code
43
+ */
44
+ protected _errors: Map<string, InstanceType<_ErrorType[number]>>;
45
+ /**
46
+ * Storage for the entities, should be strong as entities are unique per aseid
47
+ */
48
+ protected _entities: Map<string, InstanceType<_EntityType[number]>>;
49
+ /**
50
+ * Storage for the fragments, should be weak as fragments are singletons per scope
51
+ */
52
+ protected _fragments: Map<A_TYPES__Fragment_Constructor<_FragmentType[number]>, _FragmentType[number]>;
53
+ /**
54
+ * Returns the name of the scope
55
+ */
56
+ get name(): string;
57
+ /**
58
+ * Returns a list of Constructors for A-Components that are available in the scope
59
+ */
60
+ get allowedComponents(): Set<_ComponentType[number]>;
61
+ /**
62
+ * Returns a list of Constructors for A-Entities that are available in the scope
63
+ */
64
+ get allowedEntities(): Set<_EntityType[number]>;
65
+ /**
66
+ * Returns a list of Constructors for A-Fragments that are available in the scope
67
+ */
68
+ get allowedFragments(): Set<A_TYPES__Fragment_Constructor<_FragmentType[number]>>;
69
+ /**
70
+ * Returns a list of Constructors for A-Errors that are available in the scope
71
+ */
72
+ get allowedErrors(): Set<_ErrorType[number]>;
73
+ /**
74
+ * Returns an Array of entities registered in the scope
75
+ *
76
+ * [!] One entity per aseid
77
+ */
78
+ get entities(): Array<InstanceType<_EntityType[number]>>;
79
+ /**
80
+ * Returns an Array of fragments registered in the scope
81
+ *
82
+ * [!] One fragment per scope
83
+ */
84
+ get fragments(): Array<_FragmentType[number]>;
85
+ /**
86
+ * Returns an Array of components registered in the scope
87
+ *
88
+ * [!] One component instance per scope
89
+ */
90
+ get components(): Array<InstanceType<_ComponentType[number]>>;
91
+ /**
92
+ * Returns the parent scope of the current scope
93
+ *
94
+ * @param setValue
44
95
  * @returns
45
96
  */
46
- checkCircularInheritance(scope: A_Scope): Array<string> | false;
47
- printInheritanceChain(): void;
97
+ get parent(): A_Scope | undefined;
98
+ /**
99
+ * A_Scope refers to the visibility and accessibility of :
100
+ * - variables,
101
+ * - Components,
102
+ * - Context Fragments
103
+ * - Entities
104
+ * - and objects in different parts of your code.
105
+ * Scope determines where a particular piece of data (like a variable or function)
106
+ * can be accessed, modified, or referenced, and it plays a crucial role in avoiding naming collisions and ensuring data integrity.
107
+ *
108
+ * [!] The scope behavior is similar to tree structure where each scope can have a parent scope and inherit its components, fragments, entities and errors
109
+ *
110
+ * @param params
111
+ * @param config
112
+ */
113
+ constructor();
114
+ constructor(
115
+ /**
116
+ * A set of constructors that are allowed in the scope
117
+ */
118
+ params: Partial<A_TYPES__Scope_Init<_ComponentType, _ErrorType, _EntityType, _FragmentType>>,
119
+ /**
120
+ * Configuration options for the scope
121
+ */
122
+ config?: Partial<A_TYPES__ScopeConfig>);
123
+ /**
124
+ * Determines which initializer method to use based on the type of the first parameter.
125
+ *
126
+ * @param param1
127
+ * @returns
128
+ */
129
+ protected getInitializer(param1?: Partial<A_TYPES__Scope_Init<_ComponentType, _ErrorType, _EntityType, _FragmentType>>, param2?: Partial<A_TYPES__ScopeConfig>): (param1: any, param2: any) => void | (() => void);
130
+ protected defaultInitialized(params?: Partial<A_TYPES__Scope_Init<_ComponentType, _ErrorType, _EntityType, _FragmentType>>, config?: Partial<A_TYPES__ScopeConfig>): void;
131
+ /**
132
+ * This method is used to initialize the components in the scope
133
+ * To save memory components are initialized only when they are requested
134
+ *
135
+ * This method only registers the component in the scope in case they are not registered yet
136
+ *
137
+ * @param _components
138
+ */
139
+ protected initComponents(_components?: _ComponentType): void;
140
+ /**
141
+ * This method is used to initialize the errors in the scope
142
+ *
143
+ * This method only registers the errors in the scope in case they are not registered yet
144
+ *
145
+ * @param _errors
146
+ */
147
+ protected initErrors(_errors?: _ErrorType): void;
148
+ /**
149
+ * This method is used to initialize the entities in the scope
150
+ *
151
+ * This method only registers the entities in the scope in case they are not registered yet
152
+ *
153
+ * @param _entities
154
+ */
155
+ protected initEntities(_entities?: [
156
+ ..._EntityType,
157
+ ...InstanceType<_EntityType[number]>[]
158
+ ]): void;
159
+ /**
160
+ * This method is used to initialize the fragments in the scope
161
+ *
162
+ * This method only registers the fragments in the scope in case they are not registered yet
163
+ *
164
+ * @param _fragments
165
+ */
166
+ protected initFragments(_fragments?: _FragmentType): void;
167
+ /**
168
+ * Returns the issuer of the scope, useful for debugging and tracking purposes
169
+ *
170
+ * Issuer can be:
171
+ * - A Container that allocated the scope
172
+ * - A Feature that allocated the scope
173
+ *
174
+ * [!] 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
175
+ *
176
+ * @returns
177
+ */
178
+ issuer<T extends A_TYPES__ScopeLinkedComponents>(): T;
179
+ /**
180
+ * This method is used to inherit from a parent scope
181
+ *
182
+ * [!] This method checks for circular inheritance and throws an error if detected
183
+ *
184
+ * @param parent
185
+ * @returns
186
+ */
187
+ inherit(parent: A_Scope): A_Scope;
48
188
  /**
49
189
  * This method is used to check if the component is available in the scope
50
190
  *
191
+ * [!] Note that this method checks for the component in the current scope and all parent scopes
192
+ *
51
193
  * @param component
52
194
  * @returns
53
195
  */
54
- has<T extends A_Component>(component: new (...args: any[]) => T): boolean;
55
- has<T extends A_Entity>(entity: new (...args: any[]) => T): boolean;
56
- has<T extends A_Fragment>(fragment: new (...args: any[]) => T): boolean;
57
- has(constructor: string): boolean;
196
+ has<T extends A_Component>(
197
+ /**
198
+ * Provide a component constructor to check if it's available in the scope
199
+ */
200
+ component: A_TYPES__Component_Constructor<T>): boolean;
201
+ has<T extends A_Entity>(
202
+ /**
203
+ * Provide an entity constructor to check if it's available in the scope
204
+ *
205
+ * [!] Note that entities are unique per aseid, so this method checks if there's at least one entity of the provided type in the scope
206
+ */
207
+ entity: A_TYPES__Entity_Constructor<T>): boolean;
208
+ has<T extends A_Fragment>(
209
+ /**
210
+ * Provide a fragment constructor to check if it's available in the scope
211
+ */
212
+ fragment: A_TYPES__Fragment_Constructor<T>): boolean;
213
+ has(
214
+ /**
215
+ * Provide a string to check if a component, entity or fragment with the provided name is available in the scope
216
+ */
217
+ constructor: string): boolean;
58
218
  /**
59
219
  * Merges two scopes into a new one
60
220
  *
@@ -71,47 +231,230 @@ export declare class A_Scope {
71
231
  *
72
232
  * [!] Notes:
73
233
  * - In case of search for A-Entity please ensure that provided string corresponds to the static entity property of the class. [!] By default it's the kebab-case of the class name
74
- * - In case of search for A_Command please ensure that provided string corresponds to the static code property of the class. [!] By default it's the kebab-case of the class name
75
234
  * - In case of search for A_Component please ensure that provided string corresponds to the class name in PascalCase
76
235
  *
77
236
  * @param name
78
237
  * @returns
79
238
  */
80
- resolveConstructor<T extends A_Component | A_Entity>(name: string): new (...args: any[]) => T;
239
+ resolveConstructor<T extends A_Entity>(
240
+ /**
241
+ * Provide the entity name or static entity property to retrieve its constructor
242
+ */
243
+ name: string): A_TYPES__Entity_Constructor<T>;
244
+ resolveConstructor<T extends A_Component>(
245
+ /**
246
+ * Provide the component name in PascalCase to retrieve its constructor
247
+ */
248
+ name: string): A_TYPES__Component_Constructor<T>;
249
+ resolveConstructor<T extends A_Fragment>(
250
+ /**
251
+ * Provide the fragment name in PascalCase to retrieve its constructor
252
+ */
253
+ name: string): A_TYPES__Fragment_Constructor<T>;
81
254
  /**
82
- * This method is used to get the component by class
255
+ * This method allows to resolve/inject a component, fragment or entity from the scope
256
+ * Depending on the provided parameters it can resolve:
257
+ * - A single component/fragment/entity by its constructor or name
258
+ * - An array of components/fragments/entities by providing an array of constructors
259
+ * - An entity or an array of entities by providing the entity constructor and query instructions
83
260
  *
84
261
  * @param component
85
262
  * @returns
86
263
  */
87
- resolve<T extends A_TYPES__A_InjectDecorator_Injectable>(string: string): InstanceType<T>;
88
- resolve<T extends A_TYPES__A_InjectDecorator_Injectable>(component: T): InstanceType<T>;
89
- resolve<T extends A_Entity>(entity: {
90
- new (...args: any[]): T;
91
- }, instructions: Partial<A_TYPES__A_InjectDecorator_EntityInjectionInstructions<T>>): T | Array<T>;
92
- resolve<T extends A_TYPES__A_InjectDecorator_Injectable>(component: Array<T>): Array<InstanceType<T>>;
264
+ resolve<T extends A_Component>(
265
+ /**
266
+ * Provide a component constructor to resolve its instance from the scope
267
+ */
268
+ component: A_TYPES__Component_Constructor<T>): T;
269
+ resolve<T extends A_TYPES__Component_Constructor[]>(
270
+ /**
271
+ * Provide an array of component constructors to resolve their instances from the scope
272
+ */
273
+ components: [...T]): Array<InstanceType<T[number]>>;
274
+ resolve<T extends A_Fragment>(
275
+ /**
276
+ * Provide a fragment constructor to resolve its instance from the scope
277
+ */
278
+ fragment: A_TYPES__Fragment_Constructor<T>): T;
279
+ resolve<T extends A_TYPES__Fragment_Constructor[]>(
280
+ /**
281
+ * Provide an array of fragment constructors to resolve their instances from the scope
282
+ */
283
+ fragments: [...T]): Array<InstanceType<T[number]>>;
284
+ resolve<T extends A_Entity>(
285
+ /**
286
+ * Provide an entity constructor to resolve its instance or an array of instances from the scope
287
+ */
288
+ entity: A_TYPES__Entity_Constructor<T>): T | undefined;
289
+ resolve<T extends A_Scope>(
290
+ /**
291
+ * Uses only in case of resolving a single entity
292
+ *
293
+ * Provide an entity constructor to resolve its instance from the scope
294
+ */
295
+ scope: new (...args: any[]) => T): T;
296
+ resolve<T extends A_Entity>(
297
+ /**
298
+ * Provide an entity constructor to resolve its instance or an array of instances from the scope
299
+ */
300
+ entity: A_TYPES__Entity_Constructor<T>,
301
+ /**
302
+ * Provide optional instructions to find a specific entity or a set of entities
303
+ */
304
+ instructions: Partial<A_TYPES__A_InjectDecorator_EntityInjectionInstructions<T>>): Array<T>;
305
+ resolve(constructorName: string): A_TYPES__ScopeResolvableComponents;
306
+ resolve<T extends A_TYPES__ScopeResolvableComponents>(
307
+ /**
308
+ * Provide a component, fragment or entity constructor or an array of constructors to resolve its instance(s) from the scope
309
+ */
310
+ param1: A_TYPES__InjectableConstructors): T | Array<T>;
311
+ /**
312
+ * This method is used internally to resolve a component, fragment or entity by its constructor name
313
+ *
314
+ * [!] Note that this method checks for the component, fragment or entity in the current scope and all parent scopes
315
+ *
316
+ * @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)
317
+ * @returns
318
+ */
93
319
  private resolveByName;
320
+ /**
321
+ * This method is used internally to resolve a single component, fragment or entity from the scope
322
+ *
323
+ * @param component
324
+ * @param instructions
325
+ * @returns
326
+ */
94
327
  private resolveOnce;
328
+ /**
329
+ * This method is used internally to resolve a single entity from the scope based on the provided instructions
330
+ *
331
+ * [!] Note that this method can return either a single entity or an array of entities depending on the instructions provided
332
+ *
333
+ * @param entity
334
+ * @param instructions
335
+ * @returns
336
+ */
95
337
  private resolveEntity;
338
+ /**
339
+ * This method is used internally to resolve a single fragment from the scope
340
+ *
341
+ * @param fragment
342
+ * @returns
343
+ */
96
344
  private resolveFragment;
345
+ /**
346
+ * This method is used internally to resolve a single scope from the current scope
347
+ *
348
+ * @param scope
349
+ * @returns
350
+ */
97
351
  private resolveScope;
98
- private resolveComponent;
99
352
  /**
100
- * Should be similar to resolveEntity but for commands
353
+ * This method is used internally to resolve a single component from the scope
101
354
  *
102
- * @param command
355
+ * @param component
356
+ * @returns
103
357
  */
104
- private resolveCommand;
358
+ private resolveComponent;
105
359
  /**
106
360
  * This method is used to register the component in the scope
107
361
  *
108
362
  * @param fragment
109
363
  */
110
- register<T extends A_Component>(component: new (...args: any[]) => T): void;
111
- register<T extends A_Entity>(entity: new (...args: any[]) => T): void;
112
- register<T extends A_Command>(command: new (...args: any[]) => T): void;
113
- register(entity: A_Entity): void;
114
- register(component: A_Component): void;
115
- register(fragment: A_Fragment): void;
364
+ register<T extends A_Component>(
365
+ /**
366
+ * Provide a component constructor to register it in the scope
367
+ */
368
+ component: A_TYPES__Component_Constructor<T>): void;
369
+ register(
370
+ /**
371
+ * Provide a command instance to register it in the scope
372
+ */
373
+ component: A_Component): void;
374
+ register<T extends A_Error>(
375
+ /**
376
+ * Provide an error constructor to register it in the scope
377
+ */
378
+ error: A_TYPES__Error_Constructor<T>): void;
379
+ register(
380
+ /**
381
+ * Provide an error instance to register it in the scope
382
+ */
383
+ error: A_Error): void;
384
+ register<T extends A_Fragment>(
385
+ /**
386
+ * Provide a command instance to register it in the scope
387
+ */
388
+ fragment: A_TYPES__Fragment_Constructor<T>): void;
389
+ register(
390
+ /**
391
+ * Provide a fragment instance to register it in the scope
392
+ */
393
+ fragment: A_Fragment): void;
394
+ register<T extends A_Entity>(
395
+ /**
396
+ * Provide an entity constructor to register it in the scope
397
+ */
398
+ entity: A_TYPES__Entity_Constructor<T>): void;
399
+ register(
400
+ /**
401
+ * Provide an entity instance to register it in the scope
402
+ */
403
+ entity: A_Entity): void;
404
+ /**
405
+ * This method is useful when you want to serialize the scope to JSON
406
+ *
407
+ * [!] Note this is not a deep serialization, only the fragments are serialized
408
+ * [!] Fragments are a storage for information which is relevant to the scope
409
+ *
410
+ * @returns
411
+ */
116
412
  toJSON(): Record<string, any>;
413
+ /**
414
+ * Type guard to check if the constructor is of type A_Component and is allowed in the scope
415
+ *
416
+ * @param ctor
417
+ * @returns
418
+ */
419
+ protected isAllowedComponent(ctor: unknown): ctor is _ComponentType[number];
420
+ /**
421
+ * Type guard to check if the constructor is of type A_Entity and is allowed in the scope
422
+ *
423
+ * @param ctor
424
+ * @returns
425
+ */
426
+ protected isAllowedEntity(ctor: unknown): ctor is A_TYPES__Entity_Constructor<_EntityType[number]>;
427
+ /**
428
+ * Type guard to check if the constructor is of type A_Fragment and is allowed in the scope
429
+ *
430
+ * @param ctor
431
+ * @returns
432
+ */
433
+ protected isAllowedFragment(ctor: unknown): ctor is A_TYPES__Fragment_Constructor<_FragmentType[number]>;
434
+ /**
435
+ * Type guard to check if the constructor is of type A_Error and is allowed in the scope
436
+ *
437
+ * @param ctor
438
+ * @returns
439
+ */
440
+ protected isAllowedError(ctor: unknown): ctor is A_TYPES__Error_Constructor<_ErrorType[number]>;
441
+ /**
442
+ * This method is used to check if the scope is inherited from another scope
443
+ *
444
+ * @param scope
445
+ * @returns
446
+ */
447
+ isInheritedFrom(scope: A_Scope): boolean;
448
+ /**
449
+ * Helper method to check circular inheritance
450
+ * Should return a full sequence of inheritance for logging purposes
451
+ *
452
+ * @param scope
453
+ * @returns
454
+ */
455
+ checkCircularInheritance(scope: A_Scope): Array<string> | false;
456
+ /**
457
+ * Helper method to print the inheritance chain of the scope
458
+ */
459
+ printInheritanceChain(): void;
117
460
  }