@adaas/a-concept 0.0.2 → 0.0.4

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 (303) hide show
  1. package/dist/examples/simple/components/A.component.d.ts +7 -0
  2. package/dist/examples/simple/components/A.component.js +57 -0
  3. package/dist/examples/simple/components/A.component.js.map +1 -0
  4. package/dist/examples/simple/components/B.component.d.ts +9 -0
  5. package/dist/examples/simple/components/B.component.js +77 -0
  6. package/dist/examples/simple/components/B.component.js.map +1 -0
  7. package/dist/examples/simple/concept.d.ts +1 -0
  8. package/dist/examples/simple/concept.js +53 -11
  9. package/dist/examples/simple/concept.js.map +1 -1
  10. package/dist/examples/simple/containers/Main.container.d.ts +11 -0
  11. package/dist/examples/simple/containers/Main.container.js +64 -0
  12. package/dist/examples/simple/containers/Main.container.js.map +1 -0
  13. package/dist/examples/simple/context/Fragment_A.context.d.ts +6 -0
  14. package/dist/examples/simple/context/Fragment_A.context.js +16 -0
  15. package/dist/examples/simple/context/Fragment_A.context.js.map +1 -0
  16. package/dist/examples/simple/context/Fragment_B.context.d.ts +6 -0
  17. package/dist/examples/simple/context/Fragment_B.context.js +16 -0
  18. package/dist/examples/simple/context/Fragment_B.context.js.map +1 -0
  19. package/dist/examples/simple-http-server/components/http-error-handler.component.d.ts +9 -0
  20. package/dist/examples/simple-http-server/components/http-error-handler.component.js +63 -0
  21. package/dist/examples/simple-http-server/components/http-error-handler.component.js.map +1 -0
  22. package/dist/examples/simple-http-server/components/http-request-handler.component.d.ts +2 -0
  23. package/dist/examples/simple-http-server/components/http-request-handler.component.js +7 -0
  24. package/dist/examples/simple-http-server/components/http-request-handler.component.js.map +1 -0
  25. package/dist/examples/simple-http-server/concept.js +21 -22
  26. package/dist/examples/simple-http-server/concept.js.map +1 -1
  27. package/dist/examples/simple-http-server/containers/http-server.container.d.ts +8 -8
  28. package/dist/examples/simple-http-server/containers/http-server.container.js +34 -30
  29. package/dist/examples/simple-http-server/containers/http-server.container.js.map +1 -1
  30. package/dist/examples/simple-http-server/containers/http-server.controller.js +1 -1
  31. package/dist/examples/simple-http-server/containers/http-server.router.js +2 -2
  32. package/dist/examples/simple-http-server/containers/http-server.router.js.map +1 -1
  33. package/dist/examples/simple-http-server/contexts/http-request.context.d.ts +13 -0
  34. package/dist/examples/simple-http-server/contexts/http-request.context.js +51 -0
  35. package/dist/examples/simple-http-server/contexts/http-request.context.js.map +1 -0
  36. package/dist/examples/simple-http-server/contexts/http-server.context.types.d.ts +0 -4
  37. package/dist/examples/simple-http-server/contexts/http-server.context.types.js +0 -98
  38. package/dist/examples/simple-http-server/contexts/http-server.context.types.js.map +1 -1
  39. package/dist/examples/simple-http-server/contexts/http-server.namespace.d.ts +1 -1
  40. package/dist/examples/simple-http-server/contexts/http-server.namespace.js +1 -1
  41. package/dist/examples/simple-http-server/controllers/users.controller.js +2 -2
  42. package/dist/examples/simple-http-server/test.d.ts +68 -0
  43. package/dist/examples/simple-http-server/test.js +162 -0
  44. package/dist/examples/simple-http-server/test.js.map +1 -0
  45. package/dist/index.d.ts +25 -7
  46. package/dist/index.js +55 -13
  47. package/dist/index.js.map +1 -1
  48. package/dist/src/base/A-Config/A-Config.container.d.ts +8 -0
  49. package/dist/src/base/A-Config/A-Config.container.js +64 -0
  50. package/dist/src/base/A-Config/A-Config.container.js.map +1 -0
  51. package/dist/src/base/A-Config/A-Config.context.d.ts +30 -0
  52. package/dist/src/base/A-Config/A-Config.context.js +58 -0
  53. package/dist/src/base/A-Config/A-Config.context.js.map +1 -0
  54. package/dist/src/base/A-Config/A-Config.types.d.ts +14 -0
  55. package/dist/src/base/A-Config/A-Config.types.js +3 -0
  56. package/dist/src/base/A-Config/A-Config.types.js.map +1 -0
  57. package/dist/src/base/A-Config/components/ConfigReader.component.d.ts +19 -0
  58. package/dist/src/base/A-Config/components/ConfigReader.component.js +53 -0
  59. package/dist/src/base/A-Config/components/ConfigReader.component.js.map +1 -0
  60. package/dist/src/base/A-Config/components/ENVConfigReader.component.d.ts +10 -0
  61. package/dist/src/base/A-Config/components/ENVConfigReader.component.js +37 -0
  62. package/dist/src/base/A-Config/components/ENVConfigReader.component.js.map +1 -0
  63. package/dist/src/base/A-Config/components/FileConfigReader.component.d.ts +11 -0
  64. package/dist/src/base/A-Config/components/FileConfigReader.component.js +47 -0
  65. package/dist/src/base/A-Config/components/FileConfigReader.component.js.map +1 -0
  66. package/dist/src/base/A-Errors/A-Errors.component.d.ts +18 -0
  67. package/dist/src/base/A-Errors/A-Errors.component.js +85 -0
  68. package/dist/src/base/A-Errors/A-Errors.component.js.map +1 -0
  69. package/dist/src/base/A-Errors/A-Errors.context.d.ts +27 -0
  70. package/dist/src/base/A-Errors/A-Errors.context.js +50 -0
  71. package/dist/src/base/A-Errors/A-Errors.context.js.map +1 -0
  72. package/dist/src/base/A-Errors/A-Errors.types.d.ts +5 -0
  73. package/dist/src/base/A-Errors/A-Errors.types.js +3 -0
  74. package/dist/src/base/A-Errors/A-Errors.types.js.map +1 -0
  75. package/dist/src/base/A-Logger/A-Logger.component.d.ts +28 -0
  76. package/dist/src/base/A-Logger/A-Logger.component.js +142 -0
  77. package/dist/src/base/A-Logger/A-Logger.component.js.map +1 -0
  78. package/dist/src/base/A-Logger/A-Logger.types.js +2 -0
  79. package/dist/src/base/A-Logger/A-Logger.types.js.map +1 -0
  80. package/dist/src/constants/A_ConceptLifecycle.constants.d.ts +0 -2
  81. package/dist/src/constants/A_ConceptLifecycle.constants.js +9 -10
  82. package/dist/src/constants/A_ConceptLifecycle.constants.js.map +1 -1
  83. package/dist/src/containers/A-Config/A-Config.container.js +1 -1
  84. package/dist/src/containers/A-Config/A-Config.namespace.d.ts +1 -1
  85. package/dist/src/containers/A-Config/A-Config.namespace.js +1 -1
  86. package/dist/src/containers/A-Config/A-Config.types.d.ts +1 -1
  87. package/dist/src/containers/A-Errors/A-Errors.container.js +1 -1
  88. package/dist/src/containers/A-Errors/A-Errors.namespace.d.ts +1 -1
  89. package/dist/src/containers/A-Errors/A-Errors.namespace.js +1 -1
  90. package/dist/src/containers/A-Errors/A-Errors.types.d.ts +1 -1
  91. package/dist/src/containers/A-Logger/A-Logger.container.js +1 -1
  92. package/dist/src/containers/A-Logger/A-Logger.namespace.d.ts +1 -1
  93. package/dist/src/containers/A-Logger/A-Logger.namespace.js +1 -1
  94. package/dist/src/containers/A-Logger/components/Logger.component.d.ts +1 -1
  95. package/dist/src/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator.js.map +1 -1
  96. package/dist/src/decorators/A-Define/Feature/Feature.decorator.d.ts +16 -0
  97. package/dist/src/decorators/A-Define/Feature/Feature.decorator.js +36 -0
  98. package/dist/src/decorators/A-Define/Feature/Feature.decorator.js.map +1 -0
  99. package/dist/src/decorators/A-Define/Feature/Feature.decorator.types.d.ts +8 -0
  100. package/dist/src/decorators/A-Define/Feature/Feature.decorator.types.js +3 -0
  101. package/dist/src/decorators/A-Define/Feature/Feature.decorator.types.js.map +1 -0
  102. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.d.ts +14 -0
  103. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.js +24 -0
  104. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.js.map +1 -0
  105. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.types.d.ts +8 -0
  106. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.types.js +3 -0
  107. package/dist/src/decorators/A-Define/Lifecycle/Lifecycle.decorator.types.js.map +1 -0
  108. package/dist/src/decorators/A-Define/index.d.ts +7 -0
  109. package/dist/src/decorators/A-Define/index.js +10 -0
  110. package/dist/src/decorators/A-Define/index.js.map +1 -0
  111. package/dist/src/decorators/A-Extend/A-Extend.decorator.d.ts +18 -0
  112. package/dist/src/decorators/A-Extend/A-Extend.decorator.js +37 -0
  113. package/dist/src/decorators/A-Extend/A-Extend.decorator.js.map +1 -0
  114. package/dist/src/decorators/A-Extend/A-Extend.decorator.types.d.ts +21 -0
  115. package/dist/src/decorators/A-Extend/A-Extend.decorator.types.js +3 -0
  116. package/dist/src/decorators/A-Extend/A-Extend.decorator.types.js.map +1 -0
  117. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.d.ts +16 -0
  118. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js +37 -0
  119. package/dist/src/decorators/A-Feature/A-Feature-Define.decorator.js.map +1 -0
  120. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.d.ts +16 -0
  121. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js +42 -0
  122. package/dist/src/decorators/A-Feature/A-Feature-Extend.decorator.js.map +1 -0
  123. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.d.ts +20 -0
  124. package/dist/src/decorators/A-Feature/A-Feature.decorator.types.js +1 -0
  125. package/dist/src/decorators/A-Inject/A-Inject.decorator.d.ts +12 -10
  126. package/dist/src/decorators/A-Inject/A-Inject.decorator.js +16 -26
  127. package/dist/src/decorators/A-Inject/A-Inject.decorator.js.map +1 -1
  128. package/dist/src/decorators/A-Inject/A-Inject.decorator.types.d.ts +4 -3
  129. package/dist/src/decorators/A-Stage/A-Stage.decorator.d.ts +12 -0
  130. package/dist/src/decorators/A-Stage/A-Stage.decorator.js +35 -0
  131. package/dist/src/decorators/A-Stage/A-Stage.decorator.js.map +1 -0
  132. package/dist/src/decorators/A-Stage/A-Stage.decorator.types.d.ts +2 -0
  133. package/dist/src/decorators/A-Stage/A-Stage.decorator.types.js +3 -0
  134. package/dist/src/decorators/A-Stage/A-Stage.decorator.types.js.map +1 -0
  135. package/dist/src/global/A-Channel/A-Channel.class.d.ts +18 -0
  136. package/dist/src/global/A-Channel/A-Channel.class.js +54 -0
  137. package/dist/src/global/A-Channel/A-Channel.class.js.map +1 -0
  138. package/dist/src/global/A-Channel/A-Channel.types.d.ts +35 -0
  139. package/dist/src/global/A-Channel/A-Channel.types.js +3 -0
  140. package/dist/src/global/A-Channel/A-Channel.types.js.map +1 -0
  141. package/dist/src/global/A-Component/A-Component.class.d.ts +1 -11
  142. package/dist/src/global/A-Component/A-Component.class.js +0 -7
  143. package/dist/src/global/A-Component/A-Component.class.js.map +1 -1
  144. package/dist/src/global/A-Component/A-Component.meta.d.ts +4 -0
  145. package/dist/src/global/A-Component/A-Component.meta.js +8 -0
  146. package/dist/src/global/A-Component/A-Component.meta.js.map +1 -0
  147. package/dist/src/global/A-Component/A-Component.types.d.ts +18 -0
  148. package/dist/src/global/A-Component/A-Component.types.js +10 -0
  149. package/dist/src/global/A-Component/A-Component.types.js.map +1 -0
  150. package/dist/src/global/A-Concept/A_Concept.class.d.ts +41 -17
  151. package/dist/src/global/A-Concept/A_Concept.class.js +120 -43
  152. package/dist/src/global/A-Concept/A_Concept.class.js.map +1 -1
  153. package/dist/src/global/A-Concept/A_Concept.meta.d.ts +3 -0
  154. package/dist/src/global/A-Concept/A_Concept.meta.js +9 -0
  155. package/dist/src/global/A-Concept/A_Concept.meta.js.map +1 -0
  156. package/dist/src/global/A-Concept/A_Concept.types.d.ts +31 -16
  157. package/dist/src/global/A-Concept/A_Concept.types.js +25 -0
  158. package/dist/src/global/A-Concept/A_Concept.types.js.map +1 -1
  159. package/dist/src/global/A-Container/A-Container.class.d.ts +72 -10
  160. package/dist/src/global/A-Container/A-Container.class.js +119 -9
  161. package/dist/src/global/A-Container/A-Container.class.js.map +1 -1
  162. package/dist/src/global/A-Container/A-Container.meta.d.ts +7 -0
  163. package/dist/src/global/A-Container/A-Container.meta.js +54 -0
  164. package/dist/src/global/A-Container/A-Container.meta.js.map +1 -0
  165. package/dist/src/global/A-Container/A-Container.types.d.ts +31 -0
  166. package/dist/src/global/A-Container/A-Container.types.js +9 -0
  167. package/dist/src/global/A-Container/A-Container.types.js.map +1 -0
  168. package/dist/src/global/A-Context/A-Context.class.d.ts +36 -54
  169. package/dist/src/global/A-Context/A-Context.class.js +127 -61
  170. package/dist/src/global/A-Context/A-Context.class.js.map +1 -1
  171. package/dist/src/global/A-Context/A-Context.types.d.ts +12 -0
  172. package/dist/src/global/A-Context/A-Context.types.js +1 -0
  173. package/dist/src/global/A-Context/A-ContextFragment.class.d.ts +12 -0
  174. package/dist/src/global/A-Context/A-ContextFragment.class.js +19 -0
  175. package/dist/src/global/A-Context/A-ContextFragment.class.js.map +1 -0
  176. package/dist/src/global/A-Dependency/A-DependencyReference.types.d.ts +0 -55
  177. package/dist/src/global/A-Dependency/A-DependencyReference.types.js +56 -1
  178. package/dist/src/global/A-Dependency/A-DependencyReference.types.js.map +1 -1
  179. package/dist/src/global/A-Entity/A-Entity.class.d.ts +10 -0
  180. package/dist/src/global/A-Entity/A-Entity.class.js +16 -0
  181. package/dist/src/global/A-Entity/A-Entity.class.js.map +1 -0
  182. package/dist/src/global/A-Entity/A-Entity.types.js +2 -0
  183. package/dist/src/global/A-Entity/A-Entity.types.js.map +1 -0
  184. package/dist/src/global/A-Feature/A-Feature.class.d.ts +44 -0
  185. package/dist/src/global/A-Feature/A-Feature.class.js +125 -0
  186. package/dist/src/global/A-Feature/A-Feature.class.js.map +1 -0
  187. package/dist/src/global/A-Feature/A-Feature.types.d.ts +17 -0
  188. package/dist/src/global/A-Feature/A-Feature.types.js +11 -0
  189. package/dist/src/global/A-Feature/A-Feature.types.js.map +1 -0
  190. package/dist/src/global/A-Fragment/A-Fragment.class.d.ts +38 -0
  191. package/dist/src/global/A-Fragment/A-Fragment.class.js +107 -0
  192. package/dist/src/global/A-Fragment/A-Fragment.class.js.map +1 -0
  193. package/dist/src/global/A-Fragment/A-Fragment.types.d.ts +3 -0
  194. package/dist/src/global/A-Fragment/A-Fragment.types.js +3 -0
  195. package/dist/src/global/A-Fragment/A-Fragment.types.js.map +1 -0
  196. package/dist/src/global/A-Meta/A-Meta.class.d.ts +11 -0
  197. package/dist/src/global/A-Meta/A-Meta.class.js +43 -0
  198. package/dist/src/global/A-Meta/A-Meta.class.js.map +1 -0
  199. package/dist/src/global/A-Meta/A-Meta.types.d.ts +0 -0
  200. package/dist/src/global/A-Meta/A-Meta.types.js +2 -0
  201. package/dist/src/global/A-Meta/A-Meta.types.js.map +1 -0
  202. package/dist/src/global/A-Scope/A-Scope.class.d.ts +51 -0
  203. package/dist/src/global/A-Scope/A-Scope.class.js +133 -0
  204. package/dist/src/global/A-Scope/A-Scope.class.js.map +1 -0
  205. package/dist/src/global/A-Scope/A-Scope.types.d.ts +32 -0
  206. package/dist/src/global/A-Scope/A-Scope.types.js +3 -0
  207. package/dist/src/global/A-Scope/A-Scope.types.js.map +1 -0
  208. package/dist/src/storage/A_Component.storage.d.ts +10 -0
  209. package/dist/src/storage/A_Component.storage.js +17 -0
  210. package/dist/src/storage/A_Component.storage.js.map +1 -0
  211. package/dist/src/storage/A_Concept.storage.js +2 -2
  212. package/dist/src/storage/A_Concept.storage.js.map +1 -1
  213. package/dist/src/storage/A_Container.storage.d.ts +8 -0
  214. package/dist/src/storage/A_Container.storage.js +17 -0
  215. package/dist/src/storage/A_Container.storage.js.map +1 -0
  216. package/dist/src/storage/A_Inject.storage.d.ts +9 -0
  217. package/dist/src/storage/A_Inject.storage.js +13 -0
  218. package/dist/src/storage/A_Inject.storage.js.map +1 -0
  219. package/examples/simple/components/A.component.ts +35 -0
  220. package/examples/simple/components/B.component.ts +46 -0
  221. package/examples/simple/concept.ts +49 -12
  222. package/examples/simple/containers/Main.container.ts +41 -0
  223. package/examples/simple/context/Fragment_A.context.ts +25 -0
  224. package/examples/simple/context/Fragment_B.context.ts +19 -0
  225. package/examples/simple-http-server/components/http-error-handler.component.ts +44 -0
  226. package/examples/simple-http-server/components/http-request-handler.component.ts +9 -0
  227. package/examples/simple-http-server/concept.ts +22 -21
  228. package/examples/simple-http-server/containers/http-server.container.ts +23 -38
  229. package/examples/simple-http-server/contexts/http-request.context.ts +59 -0
  230. package/examples/simple-http-server/contexts/http-server.context.types.ts +0 -108
  231. package/examples/simple-http-server/test.ts +290 -0
  232. package/index.ts +55 -8
  233. package/jest.config.ts +2 -0
  234. package/package.json +4 -7
  235. package/src/{containers → base}/A-Config/A-Config.container.ts +21 -20
  236. package/src/{containers/A-Config/A-Config.namespace.ts → base/A-Config/A-Config.context.ts} +12 -5
  237. package/src/{containers → base}/A-Config/A-Config.types.ts +10 -4
  238. package/src/{containers → base}/A-Config/components/ConfigReader.component.ts +7 -3
  239. package/src/{containers → base}/A-Config/components/ENVConfigReader.component.ts +1 -1
  240. package/src/{containers → base}/A-Config/components/FileConfigReader.component.ts +1 -1
  241. package/src/base/A-Errors/A-Errors.component.ts +102 -0
  242. package/src/{containers/A-Errors/A-Errors.namespace.ts → base/A-Errors/A-Errors.context.ts} +24 -39
  243. package/src/{containers → base}/A-Errors/A-Errors.types.ts +2 -2
  244. package/src/base/A-Logger/A-Logger.component.ts +169 -0
  245. package/src/base/A-Logger/A-Logger.types.ts +0 -0
  246. package/src/constants/A_ConceptLifecycle.constants.ts +9 -9
  247. package/src/decorators/A-Feature/A-Feature-Define.decorator.ts +57 -0
  248. package/src/decorators/A-Feature/A-Feature-Extend.decorator.ts +57 -0
  249. package/src/decorators/A-Feature/A-Feature.decorator.types.ts +56 -0
  250. package/src/decorators/A-Inject/A-Inject.decorator.ts +65 -53
  251. package/src/decorators/A-Inject/A-Inject.decorator.types.ts +31 -4
  252. package/src/decorators/A-Stage/A-Stage.decorator.ts +57 -0
  253. package/src/decorators/A-Stage/A-Stage.decorator.types.ts +23 -0
  254. package/src/global/A-Channel/A-Channel.class.ts +48 -0
  255. package/src/global/A-Channel/A-Channel.types.ts +60 -0
  256. package/src/global/A-Component/A-Component.class.ts +1 -29
  257. package/src/global/A-Component/A-Component.meta.ts +9 -0
  258. package/src/global/A-Component/A-Component.types.ts +40 -0
  259. package/src/global/A-Concept/A_Concept.class.ts +160 -66
  260. package/src/global/A-Concept/A_Concept.meta.ts +9 -0
  261. package/src/global/A-Concept/A_Concept.types.ts +45 -10
  262. package/src/global/A-Container/A-Container.class.ts +177 -22
  263. package/src/global/A-Container/A-Container.meta.ts +80 -0
  264. package/src/global/A-Container/A-Container.types.ts +40 -0
  265. package/src/global/A-Context/A-Context.class.ts +231 -130
  266. package/src/global/A-Context/A-Context.types.ts +15 -0
  267. package/src/global/A-Dependency/A-DependencyReference.types.ts +56 -56
  268. package/src/global/A-Entity/A-Entity.class.ts +16 -0
  269. package/src/global/A-Entity/A-Entity.types.ts +0 -0
  270. package/src/global/A-Feature/A-Feature.class.ts +156 -0
  271. package/src/global/A-Feature/A-Feature.types.ts +20 -0
  272. package/src/global/{A-Namespace/A_Namespace.class.ts → A-Fragment/A-Fragment.class.ts} +24 -30
  273. package/src/global/A-Fragment/A-Fragment.types.ts +6 -0
  274. package/src/global/A-Meta/A-Meta.class.ts +60 -0
  275. package/src/global/A-Meta/A-Meta.types.ts +0 -0
  276. package/src/global/A-Scope/A-Scope.class.ts +208 -0
  277. package/src/global/A-Scope/A-Scope.types.ts +37 -0
  278. package/src/storage/A_Component.storage.ts +28 -0
  279. package/src/storage/A_Concept.storage.ts +5 -1
  280. package/src/storage/A_Container.storage.ts +21 -0
  281. package/src/storage/A_Inject.storage.ts +30 -0
  282. package/tsconfig.json +3 -1
  283. package/examples/sdk/concept.ts +0 -24
  284. package/examples/sdk/orders.api.ts +0 -21
  285. package/examples/sdk/users.api.ts +0 -21
  286. package/examples/simple-http-server/containers/http-server.controller.ts +0 -24
  287. package/examples/simple-http-server/containers/http-server.router.ts +0 -23
  288. package/examples/simple-http-server/contexts/http-server.namespace.ts +0 -36
  289. package/src/containers/A-Errors/A-Errors.container.ts +0 -14
  290. package/src/containers/A-Logger/A-Logger.container.ts +0 -22
  291. package/src/containers/A-Logger/A-Logger.namespace.ts +0 -26
  292. package/src/containers/A-Logger/components/Logger.component.ts +0 -169
  293. package/src/decorators/A-ConceptLifecycle/A-ConceptLifecycle.decorator.types.ts +0 -46
  294. package/src/decorators/A-ConceptLifecycle/A-Load/A-Load.decorator.ts +0 -55
  295. package/src/decorators/A-ConceptLifecycle/A-Load/A-Load.decorator.types.ts +0 -20
  296. package/src/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator.ts +0 -62
  297. package/src/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator.types.ts +0 -28
  298. package/src/decorators/A-ConceptLifecycle/index.ts +0 -9
  299. package/src/decorators/A-Feature/A-Feature.decorator.ts +0 -13
  300. package/src/decorators/A_Lazy.decorator.ts +0 -31
  301. package/src/global/A-Namespace/A_Namespace.types.ts +0 -24
  302. /package/{src/containers/A-Logger/A-Logger.types.ts → dist/src/base/A-Logger/A-Logger.types.d.ts} +0 -0
  303. /package/{src/decorators/A_ConceptMethods.decorator.ts → dist/src/global/A-Entity/A-Entity.types.d.ts} +0 -0
@@ -1,69 +1,54 @@
1
1
  import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
2
- import { HttpServer } from "../contexts/http-server.namespace";
3
2
  import { createServer, IncomingMessage, Server, ServerResponse } from "http";
4
- import { A_Run } from "@adaas/a-concept/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator";
5
3
  import { A_Inject } from "@adaas/a-concept/decorators/A-Inject/A-Inject.decorator";
6
4
  // import { A_Feature } from "@adaas/a-concept/decorators/A-Feature/A-Feature.decorator";
7
5
  import { A_Concept } from "@adaas/a-concept/global/A-Concept/A_Concept.class";
8
- import { A_TYPES__A_CONCEPT_RootRunParams } from "@adaas/a-concept/global/A-Concept/A_Concept.types";
9
- import { A_Lifecycle } from "@adaas/a-concept/decorators/A-ConceptLifecycle";
10
- import { A_Config } from "src/containers/A-Config/A-Config.namespace";
6
+ import { A_Config } from "@adaas/a-concept/base/A-Config/A-Config.context";
7
+ import { A_Feature } from "@adaas/a-concept/global/A-Feature/A-Feature.class";
8
+ import { HTTPRequest } from "../contexts/http-request.context";
11
9
 
12
10
 
13
11
 
14
12
 
15
13
 
16
- export class DefaultHttpServer extends A_Container<HttpServer> {
14
+ export class HttpServer extends A_Container<['start', 'stop', 'onRequest']> {
17
15
 
18
16
  server!: Server
19
17
  port!: number
20
18
 
21
- @A_Lifecycle.Load()
22
- public async create(
23
- concept: A_Concept,
19
+
20
+ @A_Concept.Load()
21
+ async create(
24
22
  @A_Inject(A_Config) config: A_Config<'PORT'>
25
23
  ) {
26
24
  // Set the server to listen on port 3000
27
25
  this.port = config.get('PORT') || 3000;
28
26
 
29
27
  // Create the HTTP server
30
- this.server = createServer((req: IncomingMessage, res: ServerResponse) => {
31
- // Set the response headers
32
- res.statusCode = 200;
33
- res.setHeader('Content-Type', 'text/plain');
34
-
35
- // Routing logic (basic example)
36
- if (req.url === '/') {
37
- res.end('Welcome to the homepage!');
38
- } else if (req.url === '/about') {
39
- res.end('Welcome to the about page!');
40
- } else {
41
- res.statusCode = 404;
42
- res.end('404 - Page not found');
43
- }
44
- });
45
-
46
- this.namespace.registerServer(this.server, this.port);
28
+ this.server = createServer(this.onRequest.bind(this));
47
29
  }
48
30
 
49
-
50
-
51
- @A_Run({})
52
- async run(
53
- params: A_TYPES__A_CONCEPT_RootRunParams,
54
- ) {
31
+ @A_Concept.Start()
32
+ async run() {
55
33
  this.server.listen(this.port, () => {
56
34
  console.log(`Server is running on http://localhost:${this.port}`);
57
35
  });
58
36
  }
59
37
 
60
38
 
39
+ @A_Feature.Define()
40
+ async onRequest(
41
+ req: IncomingMessage,
42
+ res: ServerResponse
43
+ ) {
44
+ return await this.call('onRequest', {
45
+ fragments: [
46
+ new HTTPRequest(req, res)
47
+ ]
48
+ });
49
+ }
61
50
 
62
- // @A_Feature({
63
- // name: 'stop',
64
- // description: 'Stop the server'
65
- // })
66
- // async stop() {
67
51
 
68
- // }
52
+ @A_Concept.Stop()
53
+ async stop() { }
69
54
  }
@@ -0,0 +1,59 @@
1
+ import { A_Fragment } from "@adaas/a-concept/global/A-Fragment/A-Fragment.class";
2
+ import { IncomingMessage, ServerResponse } from "http";
3
+
4
+
5
+
6
+
7
+ export class HTTPRequest extends A_Fragment {
8
+
9
+
10
+ public request: IncomingMessage
11
+ public response: ServerResponse
12
+
13
+ private _body: any
14
+
15
+ state: 'open' | 'end' = 'open'
16
+
17
+
18
+ constructor(
19
+ request: IncomingMessage,
20
+ response: ServerResponse
21
+ ) {
22
+
23
+ super();
24
+
25
+ this.request = request;
26
+ this.response = response;
27
+ }
28
+
29
+
30
+ protected async onInit(): Promise<void> {
31
+ this.response.statusCode = 200;
32
+ this.response.setHeader('Content-Type', 'text/plain');
33
+ }
34
+
35
+
36
+ async toJSON<T extends any>(): Promise<T> {
37
+ if (!this._body) {
38
+ this._body = await this.parseBody();
39
+ }
40
+
41
+ return this._body;
42
+ }
43
+
44
+ private parseBody(): Promise<any> {
45
+ return new Promise((resolve, reject) => {
46
+ let body = '';
47
+ this.request.on('data', chunk => body += chunk.toString());
48
+ this.request.on('end', () => resolve(JSON.parse(body)));
49
+ this.request.on('error', reject);
50
+ });
51
+ }
52
+
53
+
54
+ async end(body: string): Promise<void> {
55
+ this.state = 'end';
56
+ this.response.end(body);
57
+ }
58
+
59
+ }
@@ -1,108 +0,0 @@
1
- import { A_Lifecycle } from "@adaas/a-concept/decorators/A-ConceptLifecycle";
2
- import { A_Component } from "@adaas/a-concept/global/A-Component/A-Component.class";
3
- import { A_Container } from "@adaas/a-concept/global/A-Container/A-Container.class";
4
- import { A_Namespace } from "@adaas/a-concept/global/A-Namespace/A_Namespace.class";
5
- import { A_TYPES__NamespaceConstructor } from "@adaas/a-concept/global/A-Namespace/A_Namespace.types";
6
-
7
-
8
- export type A_TYPES__HttpServerNamespaceConstructor = {
9
- port: number
10
- } & A_TYPES__NamespaceConstructor
11
-
12
-
13
-
14
-
15
-
16
-
17
- //=========== EXAMPLES============\
18
-
19
-
20
- /**
21
- * Stores information about DB connection, models, other things, etc.
22
- */
23
- class A_DB extends A_Namespace {
24
-
25
- private models: Array<any> = [];
26
- private connection: any;
27
-
28
-
29
- registerModel(model: any) {
30
- this.models.push(model);
31
- }
32
-
33
- connect(
34
- connection: any
35
- ) {
36
- this.connection = connection;
37
- }
38
-
39
- }
40
-
41
-
42
- /**
43
- * Container that deals with the DB connection.
44
- */
45
- class PostgresDB extends A_Container<A_DB> {
46
-
47
-
48
- @A_Lifecycle.Load()
49
- async connect() {
50
- // Connect to the DB
51
- this.namespace.connect(
52
- // Just for example
53
- 'connection'
54
- );
55
- }
56
-
57
-
58
- @A_Lifecycle.Load()
59
- async init() {
60
- this.namespace.registerModel(
61
- // Just for example
62
- 'model'
63
- );
64
- }
65
- }
66
-
67
-
68
- /**
69
- * Stores information about the models with methods to interact with them.
70
- */
71
- class PostgresDBRepository extends A_Component {
72
-
73
- async save(model: any) {
74
- // Save the model
75
- }
76
-
77
- async find(model: any) {
78
- // Find the model
79
- }
80
-
81
- async delete(model: any) {
82
- // Delete the model
83
- }
84
-
85
- }
86
-
87
-
88
-
89
- class A_Auth extends A_Namespace {
90
-
91
- private users: Array<any> = [];
92
-
93
- // dosomething<
94
- // S extends A_TYPES__NamespaceConstructor,
95
- // T extends A_Namespace<S>>(
96
- // conatienr: typeof A_Container<T>,
97
- // params: S
98
-
99
- // ) { }
100
-
101
- registerUser(user: any) {
102
- this.users.push(user);
103
-
104
- // Do something with the user
105
-
106
-
107
- }
108
- }
@@ -0,0 +1,290 @@
1
+
2
+ function Inject() {
3
+ return function (target: any, key: string, index: number) {
4
+ console.log('Inject', target, key, index);
5
+ }
6
+ }
7
+
8
+
9
+ /**
10
+ * Allows to define a new lifecycle method
11
+ */
12
+ function Define(
13
+ ...args: any[]
14
+ )
15
+ function Define(
16
+ name: string,
17
+ ...args: any[]
18
+ ) {
19
+ return function (target: any, key: string, descriptor: PropertyDescriptor) {
20
+ Architecture
21
+ .register(target.constructor, {
22
+ name
23
+ });
24
+ }
25
+
26
+ }
27
+
28
+
29
+ class User {
30
+
31
+ }
32
+
33
+
34
+ class CRUDController {
35
+
36
+
37
+ constructor(
38
+ // Context Injection to adjust behavior
39
+ // @Inject(User) user
40
+ ) {
41
+ }
42
+
43
+
44
+ post(
45
+ // Runtime injection to get the request object or any other
46
+ @Inject() request: ControllerRequest,
47
+ ) {
48
+ request.user;
49
+ }
50
+ }
51
+
52
+ class StatsController {
53
+
54
+
55
+ // This method is context independent and "extends" the behavior of the parent Class (without inheritance)
56
+ // Here you can define what to expect from the previous step
57
+ // Basically here we can extend the behavior of the parent class
58
+ @App.Lifecycle.onRequest()
59
+ onRequest(
60
+
61
+ ) {
62
+
63
+ }
64
+
65
+
66
+
67
+ // This method is context dependent
68
+ count(
69
+ @Inject() request: ControllerRequest,
70
+ ) {
71
+ request.user;
72
+ }
73
+ }
74
+
75
+ class ControllerRequest {
76
+
77
+ constructor(
78
+ public user: User
79
+ ) {
80
+
81
+
82
+ }
83
+ }
84
+
85
+
86
+ class DependencyResolver {
87
+ resolve<T extends { new(...args: any[]): any }>(
88
+ target: any,
89
+
90
+ ): T {
91
+ return new target();
92
+ }
93
+
94
+ }
95
+
96
+
97
+ class Architecture {
98
+
99
+ private static instance: Architecture;
100
+
101
+ private definitions: Map<{ new(...args: any[]): any }, {
102
+ lifecycle: Map<string, Function>
103
+ }> = new Map();
104
+
105
+
106
+ private constructor() {
107
+
108
+ }
109
+
110
+
111
+ static getInstance() {
112
+ if (!this.instance) {
113
+ this.instance = new Architecture();
114
+ }
115
+ return this.instance;
116
+ }
117
+
118
+
119
+ static register(
120
+ constructor: { new(...args: any[]): any },
121
+ config: {
122
+ name: string
123
+ }
124
+ ) {
125
+ const instance = this.getInstance();
126
+
127
+ instance.definitions.set(constructor, {
128
+ lifecycle: new Map()
129
+ });
130
+ }
131
+
132
+
133
+ static getLifecycle(
134
+ constructor: { new(...args: any[]): any }
135
+ ) {
136
+ const instance = this.getInstance();
137
+
138
+ return instance.definitions.get(constructor)?.lifecycle;
139
+ }
140
+
141
+ }
142
+
143
+
144
+ class Container {
145
+
146
+ }
147
+
148
+
149
+
150
+ // Concept
151
+ // - run
152
+ // - build
153
+
154
+ // Container #1
155
+ // - start
156
+ // - stop
157
+
158
+ // Container #2
159
+ // - build
160
+ // - request
161
+ // - response
162
+ // - error
163
+
164
+ // Container #3
165
+ // - start
166
+ // - stop
167
+
168
+
169
+
170
+ interface Feature<
171
+ _LifecycleMethodName extends string,
172
+ _RuntimeContext extends any,
173
+ > {
174
+ name: _LifecycleMethodName;
175
+ context: new (...args: any[]) => _RuntimeContext; // The class constructor for the context
176
+ }
177
+
178
+
179
+
180
+
181
+ class Concept<
182
+ _LifecycleMethodNames extends string,
183
+ _RuntimeContext extends any,
184
+
185
+ // _FeaturesDefinition extends Feature<_LifecycleMethodNames, _RuntimeContext>[],
186
+ _FeaturesDefinition2 extends Record<_LifecycleMethodNames, new (...args: any[]) => _RuntimeContext>
187
+ > {
188
+
189
+
190
+ // private steps!: _FeaturesDefinition
191
+
192
+ constructor(props: {
193
+ // features: _FeaturesDefinition,
194
+ exports: _FeaturesDefinition2
195
+ context: [],
196
+ import: any[]
197
+ }) {
198
+
199
+ }
200
+
201
+ // async resolve(): Promise<{
202
+ // [K in _FeaturesDefinition[number]['name']]: (
203
+ // context: InstanceType<
204
+ // Extract<_FeaturesDefinition[number], { name: K }>['context']
205
+ // >
206
+ // ) => void;
207
+ // }> {
208
+ // return {} as any
209
+ // }
210
+
211
+
212
+ async resolve2(): Promise<{
213
+ [K in keyof _FeaturesDefinition2]: (
214
+ context: InstanceType<
215
+ _FeaturesDefinition2[K]
216
+ >
217
+ ) => void;
218
+ }> {
219
+ return {} as any
220
+ }
221
+
222
+ }
223
+
224
+
225
+ class App extends Container {
226
+
227
+ server: any;
228
+ components: any[] = [];
229
+
230
+
231
+ constructor(components: any[]) {
232
+ super();
233
+ // this.server = new Server();
234
+
235
+ this.components = components;
236
+ }
237
+
238
+ static get Lifecycle() {
239
+ return {
240
+ onRequest: (...args: any[]) => Define('onRequest', ...args)
241
+ }
242
+ }
243
+
244
+ // The container has a set of lifecycle methods that can be used to extend the behavior by adding new methods
245
+ // Define Decorator allows to create a custom lifecycle attached to the class.
246
+ // So any other classes injected here will be able to use the lifecycle methods
247
+ @Define()
248
+ onRequest(request: any) {
249
+
250
+ }
251
+
252
+ }
253
+
254
+ class startContext {
255
+
256
+ }
257
+
258
+
259
+
260
+ const myConcept = new Concept(
261
+ {
262
+ exports: {
263
+ start: startContext
264
+ },
265
+ context: [],
266
+ import: [
267
+ // We say that concept has User Entity
268
+ User,
269
+
270
+ // We say that concept has an APP with CRUDController
271
+ new App([
272
+ //
273
+ CRUDController,
274
+ // new CRUDController(),
275
+ ])
276
+ ]
277
+ }
278
+ );
279
+
280
+ (async () => {
281
+ // const target2 = await myConcept
282
+ // .resolve2();
283
+
284
+
285
+ // target2.start()
286
+
287
+ })()
288
+
289
+
290
+
package/index.ts CHANGED
@@ -1,14 +1,61 @@
1
+
2
+ // =================================================================================================
3
+ // ============================= Export Framework Components =======================================
4
+ // =================================================================================================
5
+ // ---------------------- Major Components ----------------------
6
+ export { A_Context } from './src/global/A-Context/A-Context.class';
7
+ export * from './src/global/A-Context/A-Context.types';
8
+
1
9
  export { A_Concept } from './src/global/A-Concept/A_Concept.class';
10
+ export { A_ConceptMeta } from './src/global/A-Concept/A_Concept.meta';
2
11
  export * from './src/global/A-Concept/A_Concept.types';
12
+
3
13
  export { A_Container } from './src/global/A-Container/A-Container.class';
4
- // export * from './src/global/A-Container/A-Container.class';
5
- export { A_Namespace } from './src/global/A-Namespace/A_Namespace.class';
6
- export * from './src/global/A-Namespace/A_Namespace.types';
14
+ export { A_ContainerMeta } from './src/global/A-Container/A-Container.meta';
15
+ export * from './src/global/A-Container/A-Container.class';
16
+
17
+ export { A_Component } from './src/global/A-Component/A-Component.class';
18
+ export { A_ComponentMeta } from './src/global/A-Component/A-Component.meta';
19
+ export * from './src/global/A-Component/A-Component.types';
20
+
21
+
22
+ // ---------------------- Common Components ----------------------
23
+ export { A_Feature } from './src/global/A-Feature/A-Feature.class';
24
+ export * from './src/global/A-Feature/A-Feature.types';
25
+
26
+ export { A_Scope } from './src/global/A-Scope/A-Scope.class';
27
+ export * from './src/global/A-Scope/A-Scope.types';
28
+
29
+ export { A_Meta } from './src/global/A-Meta/A-Meta.class';
30
+ // export * from './src/global/A-Meta/A-Meta.types';
31
+
32
+ export { A_Fragment } from './src/global/A-Fragment/A-Fragment.class';
33
+ export * from './src/global/A-Fragment/A-Fragment.types';
34
+
35
+
36
+ // =================================================================================================
37
+ // =============================== Export Decorators ============================================
38
+ // =================================================================================================
39
+
7
40
  export { A_Inject } from './src/decorators/A-Inject/A-Inject.decorator';
8
41
  export * from './src/decorators/A-Inject/A-Inject.decorator.types';
9
- export { A_Load } from './src/decorators/A-ConceptLifecycle/A-Load/A-Load.decorator';
10
- export * from './src/decorators/A-ConceptLifecycle/A-Load/A-Load.decorator.types';
11
- export { A_Run } from './src/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator';
12
- export * from './src/decorators/A-ConceptLifecycle/A-Run/A-Run.decorator.types';
13
42
 
14
- export { A_Lifecycle } from './src/decorators/A-ConceptLifecycle';
43
+
44
+
45
+
46
+ // =================================================================================================
47
+ // =============================== Export Base Entities ============================================
48
+ // =================================================================================================
49
+ export { A_ConfigLoader } from './src/base/A-Config/A-Config.container';
50
+ export { A_Config } from './src/base/A-Config/A-Config.context';
51
+ export { ConfigReader } from './src/base/A-Config/components/ConfigReader.component';
52
+ export { ENVConfigReader } from './src/base/A-Config/components/ENVConfigReader.component';
53
+ export { FileConfigReader } from './src/base/A-Config/components/FileConfigReader.component';
54
+ export * from './src/base/A-Config/A-Config.types';
55
+
56
+ export * from './src/base/A-Logger/A-Logger.component';
57
+ // export * from './src/base/A-Logger/A-Logger.types';
58
+
59
+ export { A_ErrorsManager } from './src/base/A-Errors/A-Errors.component';
60
+ export { A_Errors } from './src/base/A-Errors/A-Errors.context';
61
+ export * from './src/base/A-Errors/A-Errors.types';
package/jest.config.ts CHANGED
@@ -16,6 +16,8 @@ const config: Config.InitialOptions = {
16
16
  "@adaas/a-concept/managers/(.*)": ["<rootDir>/src/managers/$1"],
17
17
  "@adaas/a-concept/providers/(.*)": ["<rootDir>/src/providers/$1"],
18
18
  "@adaas/a-concept/modules/(.*)": ["<rootDir>/src/modules/$1"],
19
+ "@adaas/a-concept/storage/(.*)": ["<rootDir>/src/storage/$1"],
20
+ "@adaas/a-concept/base/(.*)": ["<rootDir>/src/base/$1"],
19
21
  }
20
22
 
21
23
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaas/a-concept",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "description": "A-Concept is a framework to build new Applications within or outside the ADAAS ecosystem. This framework is designed to be modular structure regardless environment and program goal.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -13,12 +13,8 @@
13
13
  "node_modules"
14
14
  ],
15
15
  "watch": [
16
- "config",
17
- "constants",
18
16
  "src",
19
- "lib",
20
- "db",
21
- "shared"
17
+ "examples"
22
18
  ],
23
19
  "exec": "node -r tsconfig-paths/register -r ts-node/register ",
24
20
  "ext": "ts, js"
@@ -31,7 +27,8 @@
31
27
  "version": "echo git add .",
32
28
  "postversion": "git push --no-verify && git push --tags --no-verify && echo \"\n======Version Pushed Successfully=====\n\" ",
33
29
  "echo-version": "echo $npm_package_version",
34
- "build": "tsc --declaration --project tsconfig.json && tscpaths -p tsconfig.json -s ./ -o ./dist && rm -r ./dist/tests"
30
+ "build": "tsc --declaration --project tsconfig.json && tscpaths -p tsconfig.json -s ./ -o ./dist && rm -r ./dist/tests",
31
+ "test:simple": "nodemon ./examples/simple/concept.ts"
35
32
  },
36
33
  "repository": {
37
34
  "type": "git",