@adaas/a-server 0.0.21 → 0.0.23

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 (518) hide show
  1. package/.conf/tsconfig.base.json +79 -0
  2. package/.conf/tsconfig.browser.json +32 -0
  3. package/.conf/tsconfig.node.json +33 -0
  4. package/LICENSE +10 -19
  5. package/dist/browser/index.d.mts +1669 -0
  6. package/dist/browser/index.mjs +2869 -0
  7. package/dist/browser/index.mjs.map +1 -0
  8. package/dist/node/A-Request.entity-8_9MCXT2.d.ts +533 -0
  9. package/dist/node/A-Request.entity-r905O60G.d.mts +533 -0
  10. package/dist/node/A-Response.entity-BVYAc6-8.d.mts +318 -0
  11. package/dist/node/A-Response.entity-CRc-t-vr.d.ts +318 -0
  12. package/dist/node/channels/A-Http/A-Http.channel.constants.d.mts +9 -0
  13. package/dist/node/channels/A-Http/A-Http.channel.constants.d.ts +9 -0
  14. package/dist/node/channels/A-Http/A-Http.channel.constants.js +13 -0
  15. package/dist/node/channels/A-Http/A-Http.channel.constants.js.map +1 -0
  16. package/dist/node/channels/A-Http/A-Http.channel.constants.mjs +12 -0
  17. package/dist/node/channels/A-Http/A-Http.channel.constants.mjs.map +1 -0
  18. package/dist/node/channels/A-Http/A-Http.channel.d.mts +23 -0
  19. package/dist/node/channels/A-Http/A-Http.channel.d.ts +23 -0
  20. package/dist/node/channels/A-Http/A-Http.channel.error.d.mts +7 -0
  21. package/dist/node/channels/A-Http/A-Http.channel.error.d.ts +7 -0
  22. package/dist/node/channels/A-Http/A-Http.channel.error.js +11 -0
  23. package/dist/node/channels/A-Http/A-Http.channel.error.js.map +1 -0
  24. package/dist/node/channels/A-Http/A-Http.channel.error.mjs +10 -0
  25. package/dist/node/channels/A-Http/A-Http.channel.error.mjs.map +1 -0
  26. package/dist/node/channels/A-Http/A-Http.channel.js +122 -0
  27. package/dist/node/channels/A-Http/A-Http.channel.js.map +1 -0
  28. package/dist/node/channels/A-Http/A-Http.channel.mjs +110 -0
  29. package/dist/node/channels/A-Http/A-Http.channel.mjs.map +1 -0
  30. package/dist/node/channels/A-Http/A-Http.channel.types.d.mts +67 -0
  31. package/dist/node/channels/A-Http/A-Http.channel.types.d.ts +67 -0
  32. package/dist/node/channels/A-Http/A-Http.channel.types.js +4 -0
  33. package/dist/node/channels/A-Http/A-Http.channel.types.js.map +1 -0
  34. package/dist/node/channels/A-Http/A-Http.channel.types.mjs +3 -0
  35. package/dist/node/channels/A-Http/A-Http.channel.types.mjs.map +1 -0
  36. package/dist/node/channels/A-Websockets/A-Websockets.channel.d.mts +7 -0
  37. package/dist/node/channels/A-Websockets/A-Websockets.channel.d.ts +7 -0
  38. package/dist/node/channels/A-Websockets/A-Websockets.channel.js +13 -0
  39. package/dist/node/channels/A-Websockets/A-Websockets.channel.js.map +1 -0
  40. package/dist/node/channels/A-Websockets/A-Websockets.channel.mjs +12 -0
  41. package/dist/node/channels/A-Websockets/A-Websockets.channel.mjs.map +1 -0
  42. package/dist/node/chunk-EQQGB2QZ.mjs +15 -0
  43. package/dist/node/chunk-EQQGB2QZ.mjs.map +1 -0
  44. package/dist/node/constants/env.constants.d.mts +12 -0
  45. package/dist/node/constants/env.constants.d.ts +12 -0
  46. package/dist/node/constants/env.constants.js +23 -0
  47. package/dist/node/constants/env.constants.js.map +1 -0
  48. package/dist/node/constants/env.constants.mjs +22 -0
  49. package/dist/node/constants/env.constants.mjs.map +1 -0
  50. package/dist/node/controllers/A-CommandController/A-CommandController.component.d.mts +29 -0
  51. package/dist/node/controllers/A-CommandController/A-CommandController.component.d.ts +29 -0
  52. package/dist/node/controllers/A-CommandController/A-CommandController.component.js +55 -0
  53. package/dist/node/controllers/A-CommandController/A-CommandController.component.js.map +1 -0
  54. package/dist/node/controllers/A-CommandController/A-CommandController.component.mjs +43 -0
  55. package/dist/node/controllers/A-CommandController/A-CommandController.component.mjs.map +1 -0
  56. package/dist/node/controllers/A-EntityController/A-EntityController.component.d.mts +44 -0
  57. package/dist/node/controllers/A-EntityController/A-EntityController.component.d.ts +44 -0
  58. package/dist/node/controllers/A-EntityController/A-EntityController.component.js +189 -0
  59. package/dist/node/controllers/A-EntityController/A-EntityController.component.js.map +1 -0
  60. package/dist/node/controllers/A-EntityController/A-EntityController.component.mjs +177 -0
  61. package/dist/node/controllers/A-EntityController/A-EntityController.component.mjs.map +1 -0
  62. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.d.mts +2 -0
  63. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.d.ts +2 -0
  64. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.js +4 -0
  65. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.js.map +1 -0
  66. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.mjs +3 -0
  67. package/dist/node/controllers/A-EntityController/A-EntityController.component.types.mjs.map +1 -0
  68. package/dist/node/controllers/A-ListingController/A-ListingController.component.d.mts +28 -0
  69. package/dist/node/controllers/A-ListingController/A-ListingController.component.d.ts +28 -0
  70. package/dist/node/controllers/A-ListingController/A-ListingController.component.js +59 -0
  71. package/dist/node/controllers/A-ListingController/A-ListingController.component.js.map +1 -0
  72. package/dist/node/controllers/A-ListingController/A-ListingController.component.mjs +47 -0
  73. package/dist/node/controllers/A-ListingController/A-ListingController.component.mjs.map +1 -0
  74. package/dist/node/controllers/A-ListingController/A-ListingController.types.d.mts +2 -0
  75. package/dist/node/controllers/A-ListingController/A-ListingController.types.d.ts +2 -0
  76. package/dist/node/controllers/A-ListingController/A-ListingController.types.js +4 -0
  77. package/dist/node/controllers/A-ListingController/A-ListingController.types.js.map +1 -0
  78. package/dist/node/controllers/A-ListingController/A-ListingController.types.mjs +3 -0
  79. package/dist/node/controllers/A-ListingController/A-ListingController.types.mjs.map +1 -0
  80. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.d.mts +30 -0
  81. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.d.ts +30 -0
  82. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.js +46 -0
  83. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.js.map +1 -0
  84. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.mjs +34 -0
  85. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.component.mjs.map +1 -0
  86. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.d.mts +2 -0
  87. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.d.ts +2 -0
  88. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.js +4 -0
  89. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.js.map +1 -0
  90. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.mjs +3 -0
  91. package/dist/node/controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.mjs.map +1 -0
  92. package/dist/node/index.d.mts +51 -0
  93. package/dist/node/index.d.ts +51 -0
  94. package/dist/node/index.js +320 -0
  95. package/dist/node/index.js.map +1 -0
  96. package/dist/node/index.mjs +48 -0
  97. package/dist/node/index.mjs.map +1 -0
  98. package/dist/node/lib/A-Request/A-HttpRequestData.context.d.mts +12 -0
  99. package/dist/node/lib/A-Request/A-HttpRequestData.context.d.ts +12 -0
  100. package/dist/node/lib/A-Request/A-HttpRequestData.context.js +25 -0
  101. package/dist/node/lib/A-Request/A-HttpRequestData.context.js.map +1 -0
  102. package/dist/node/lib/A-Request/A-HttpRequestData.context.mjs +24 -0
  103. package/dist/node/lib/A-Request/A-HttpRequestData.context.mjs.map +1 -0
  104. package/dist/node/lib/A-Request/A-HttpServerRequest.context.d.mts +39 -0
  105. package/dist/node/lib/A-Request/A-HttpServerRequest.context.d.ts +39 -0
  106. package/dist/node/lib/A-Request/A-HttpServerRequest.context.js +56 -0
  107. package/dist/node/lib/A-Request/A-HttpServerRequest.context.js.map +1 -0
  108. package/dist/node/lib/A-Request/A-HttpServerRequest.context.mjs +55 -0
  109. package/dist/node/lib/A-Request/A-HttpServerRequest.context.mjs.map +1 -0
  110. package/dist/node/lib/A-Request/A-Request.constants.d.mts +18 -0
  111. package/dist/node/lib/A-Request/A-Request.constants.d.ts +18 -0
  112. package/dist/node/lib/A-Request/A-Request.constants.js +22 -0
  113. package/dist/node/lib/A-Request/A-Request.constants.js.map +1 -0
  114. package/dist/node/lib/A-Request/A-Request.constants.mjs +22 -0
  115. package/dist/node/lib/A-Request/A-Request.constants.mjs.map +1 -0
  116. package/dist/node/lib/A-Request/A-Request.entity.d.mts +17 -0
  117. package/dist/node/lib/A-Request/A-Request.entity.d.ts +17 -0
  118. package/dist/node/lib/A-Request/A-Request.entity.js +651 -0
  119. package/dist/node/lib/A-Request/A-Request.entity.js.map +1 -0
  120. package/dist/node/lib/A-Request/A-Request.entity.mjs +639 -0
  121. package/dist/node/lib/A-Request/A-Request.entity.mjs.map +1 -0
  122. package/dist/node/lib/A-Request/A-Request.env.d.mts +37 -0
  123. package/dist/node/lib/A-Request/A-Request.env.d.ts +37 -0
  124. package/dist/node/lib/A-Request/A-Request.env.js +39 -0
  125. package/dist/node/lib/A-Request/A-Request.env.js.map +1 -0
  126. package/dist/node/lib/A-Request/A-Request.env.mjs +38 -0
  127. package/dist/node/lib/A-Request/A-Request.env.mjs.map +1 -0
  128. package/dist/node/lib/A-Request/A-Request.error.d.mts +11 -0
  129. package/dist/node/lib/A-Request/A-Request.error.d.ts +11 -0
  130. package/dist/node/lib/A-Request/A-Request.error.js +15 -0
  131. package/dist/node/lib/A-Request/A-Request.error.js.map +1 -0
  132. package/dist/node/lib/A-Request/A-Request.error.mjs +14 -0
  133. package/dist/node/lib/A-Request/A-Request.error.mjs.map +1 -0
  134. package/dist/node/lib/A-Request/A-Request.helper.d.mts +105 -0
  135. package/dist/node/lib/A-Request/A-Request.helper.d.ts +105 -0
  136. package/dist/node/lib/A-Request/A-Request.helper.js +181 -0
  137. package/dist/node/lib/A-Request/A-Request.helper.js.map +1 -0
  138. package/dist/node/lib/A-Request/A-Request.helper.mjs +180 -0
  139. package/dist/node/lib/A-Request/A-Request.helper.mjs.map +1 -0
  140. package/dist/node/lib/A-Request/A-Request.types.d.mts +17 -0
  141. package/dist/node/lib/A-Request/A-Request.types.d.ts +17 -0
  142. package/dist/node/lib/A-Request/A-Request.types.js +14 -0
  143. package/dist/node/lib/A-Request/A-Request.types.js.map +1 -0
  144. package/dist/node/lib/A-Request/A-Request.types.mjs +14 -0
  145. package/dist/node/lib/A-Request/A-Request.types.mjs.map +1 -0
  146. package/dist/node/lib/A-Response/A-Response.constants.d.mts +24 -0
  147. package/dist/node/lib/A-Response/A-Response.constants.d.ts +24 -0
  148. package/dist/node/lib/A-Response/A-Response.constants.js +28 -0
  149. package/dist/node/lib/A-Response/A-Response.constants.js.map +1 -0
  150. package/dist/node/lib/A-Response/A-Response.constants.mjs +28 -0
  151. package/dist/node/lib/A-Response/A-Response.constants.mjs.map +1 -0
  152. package/dist/node/lib/A-Response/A-Response.entity.d.mts +20 -0
  153. package/dist/node/lib/A-Response/A-Response.entity.d.ts +20 -0
  154. package/dist/node/lib/A-Response/A-Response.entity.js +544 -0
  155. package/dist/node/lib/A-Response/A-Response.entity.js.map +1 -0
  156. package/dist/node/lib/A-Response/A-Response.entity.mjs +532 -0
  157. package/dist/node/lib/A-Response/A-Response.entity.mjs.map +1 -0
  158. package/dist/node/lib/A-Response/A-Response.env.d.mts +2 -0
  159. package/dist/node/lib/A-Response/A-Response.env.d.ts +2 -0
  160. package/dist/node/lib/A-Response/A-Response.env.js +4 -0
  161. package/dist/node/lib/A-Response/A-Response.env.js.map +1 -0
  162. package/dist/node/lib/A-Response/A-Response.env.mjs +3 -0
  163. package/dist/node/lib/A-Response/A-Response.env.mjs.map +1 -0
  164. package/dist/node/lib/A-Response/A-Response.error.d.mts +6 -0
  165. package/dist/node/lib/A-Response/A-Response.error.d.ts +6 -0
  166. package/dist/node/lib/A-Response/A-Response.error.js +10 -0
  167. package/dist/node/lib/A-Response/A-Response.error.js.map +1 -0
  168. package/dist/node/lib/A-Response/A-Response.error.mjs +9 -0
  169. package/dist/node/lib/A-Response/A-Response.error.mjs.map +1 -0
  170. package/dist/node/lib/A-Response/A-Response.types.d.mts +20 -0
  171. package/dist/node/lib/A-Response/A-Response.types.d.ts +20 -0
  172. package/dist/node/lib/A-Response/A-Response.types.js +4 -0
  173. package/dist/node/lib/A-Response/A-Response.types.js.map +1 -0
  174. package/dist/node/lib/A-Response/A-Response.types.mjs +3 -0
  175. package/dist/node/lib/A-Response/A-Response.types.mjs.map +1 -0
  176. package/dist/node/lib/A-Server/A-HttpServer.constants.d.mts +7 -0
  177. package/dist/node/lib/A-Server/A-HttpServer.constants.d.ts +7 -0
  178. package/dist/node/lib/A-Server/A-HttpServer.constants.js +11 -0
  179. package/dist/node/lib/A-Server/A-HttpServer.constants.js.map +1 -0
  180. package/dist/node/lib/A-Server/A-HttpServer.constants.mjs +11 -0
  181. package/dist/node/lib/A-Server/A-HttpServer.constants.mjs.map +1 -0
  182. package/dist/node/lib/A-Server/A-HttpServer.container.d.mts +50 -0
  183. package/dist/node/lib/A-Server/A-HttpServer.container.d.ts +50 -0
  184. package/dist/node/lib/A-Server/A-HttpServer.container.js +194 -0
  185. package/dist/node/lib/A-Server/A-HttpServer.container.js.map +1 -0
  186. package/dist/node/lib/A-Server/A-HttpServer.container.mjs +182 -0
  187. package/dist/node/lib/A-Server/A-HttpServer.container.mjs.map +1 -0
  188. package/dist/node/lib/A-Server/A-HttpServer.error.d.mts +54 -0
  189. package/dist/node/lib/A-Server/A-HttpServer.error.d.ts +54 -0
  190. package/dist/node/lib/A-Server/A-HttpServer.error.js +118 -0
  191. package/dist/node/lib/A-Server/A-HttpServer.error.js.map +1 -0
  192. package/dist/node/lib/A-Server/A-HttpServer.error.mjs +117 -0
  193. package/dist/node/lib/A-Server/A-HttpServer.error.mjs.map +1 -0
  194. package/dist/node/lib/A-Server/A-HttpServer.types.d.mts +19 -0
  195. package/dist/node/lib/A-Server/A-HttpServer.types.d.ts +19 -0
  196. package/dist/node/lib/A-Server/A-HttpServer.types.js +4 -0
  197. package/dist/node/lib/A-Server/A-HttpServer.types.js.map +1 -0
  198. package/dist/node/lib/A-Server/A-HttpServer.types.mjs +3 -0
  199. package/dist/node/lib/A-Server/A-HttpServer.types.mjs.map +1 -0
  200. package/dist/node/lib/A-Server/A-Server.context.d.mts +22 -0
  201. package/dist/node/lib/A-Server/A-Server.context.d.ts +22 -0
  202. package/dist/node/lib/A-Server/A-Server.context.js +24 -0
  203. package/dist/node/lib/A-Server/A-Server.context.js.map +1 -0
  204. package/dist/node/lib/A-Server/A-Server.context.mjs +23 -0
  205. package/dist/node/lib/A-Server/A-Server.context.mjs.map +1 -0
  206. package/dist/node/lib/A-Server/A-Server.error.d.mts +14 -0
  207. package/dist/node/lib/A-Server/A-Server.error.d.ts +14 -0
  208. package/dist/node/lib/A-Server/A-Server.error.js +26 -0
  209. package/dist/node/lib/A-Server/A-Server.error.js.map +1 -0
  210. package/dist/node/lib/A-Server/A-Server.error.mjs +25 -0
  211. package/dist/node/lib/A-Server/A-Server.error.mjs.map +1 -0
  212. package/dist/node/lib/A-Server/A-Server.types.d.mts +26 -0
  213. package/dist/node/lib/A-Server/A-Server.types.d.ts +26 -0
  214. package/dist/node/lib/A-Server/A-Server.types.js +4 -0
  215. package/dist/node/lib/A-Server/A-Server.types.js.map +1 -0
  216. package/dist/node/lib/A-Server/A-Server.types.mjs +3 -0
  217. package/dist/node/lib/A-Server/A-Server.types.mjs.map +1 -0
  218. package/dist/node/lib/A-ServerController/A-ServerController.component.d.mts +29 -0
  219. package/dist/node/lib/A-ServerController/A-ServerController.component.d.ts +29 -0
  220. package/dist/node/lib/A-ServerController/A-ServerController.component.js +49 -0
  221. package/dist/node/lib/A-ServerController/A-ServerController.component.js.map +1 -0
  222. package/dist/node/lib/A-ServerController/A-ServerController.component.mjs +37 -0
  223. package/dist/node/lib/A-ServerController/A-ServerController.component.mjs.map +1 -0
  224. package/dist/node/lib/A-ServerController/A-ServerController.types.d.mts +2 -0
  225. package/dist/node/lib/A-ServerController/A-ServerController.types.d.ts +2 -0
  226. package/dist/node/lib/A-ServerController/A-ServerController.types.js +4 -0
  227. package/dist/node/lib/A-ServerController/A-ServerController.types.js.map +1 -0
  228. package/dist/node/lib/A-ServerController/A-ServerController.types.mjs +3 -0
  229. package/dist/node/lib/A-ServerController/A-ServerController.types.mjs.map +1 -0
  230. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.d.mts +49 -0
  231. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.d.ts +49 -0
  232. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.js +91 -0
  233. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.js.map +1 -0
  234. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.mjs +90 -0
  235. package/dist/node/lib/A-ServerEntityList/A-EntityList.entity.mjs.map +1 -0
  236. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.d.mts +22 -0
  237. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.d.ts +22 -0
  238. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.js +10 -0
  239. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.js.map +1 -0
  240. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.mjs +10 -0
  241. package/dist/node/lib/A-ServerEntityList/A-EntityList.types.mjs.map +1 -0
  242. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.d.mts +13 -0
  243. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.d.ts +13 -0
  244. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.js +32 -0
  245. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.js.map +1 -0
  246. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.mjs +31 -0
  247. package/dist/node/lib/A-ServerListQuery/A-ServerListQueryFilter.context.mjs.map +1 -0
  248. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.d.mts +48 -0
  249. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.d.ts +48 -0
  250. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.js +88 -0
  251. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.js.map +1 -0
  252. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.mjs +76 -0
  253. package/dist/node/lib/A-ServerLogger/A-ServerLogger.component.mjs.map +1 -0
  254. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.d.mts +24 -0
  255. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.d.ts +24 -0
  256. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.js +33 -0
  257. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.js.map +1 -0
  258. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.mjs +33 -0
  259. package/dist/node/lib/A-ServerLogger/A-ServerLogger.constants.mjs.map +1 -0
  260. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.d.mts +12 -0
  261. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.d.ts +12 -0
  262. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.js +4 -0
  263. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.js.map +1 -0
  264. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.mjs +3 -0
  265. package/dist/node/lib/A-ServerLogger/A-ServerLogger.types.mjs.map +1 -0
  266. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.d.mts +6 -0
  267. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.d.ts +6 -0
  268. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.js +18 -0
  269. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.js.map +1 -0
  270. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.mjs +17 -0
  271. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.component.mjs.map +1 -0
  272. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.d.mts +2 -0
  273. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.d.ts +2 -0
  274. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.js +4 -0
  275. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.js.map +1 -0
  276. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.mjs +3 -0
  277. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.constants.mjs.map +1 -0
  278. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.d.mts +2 -0
  279. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.d.ts +2 -0
  280. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.js +4 -0
  281. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.js.map +1 -0
  282. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.mjs +3 -0
  283. package/dist/node/lib/A-ServerMiddleware/A-ServerMiddleware.types.mjs.map +1 -0
  284. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.d.mts +31 -0
  285. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.d.ts +31 -0
  286. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.js +90 -0
  287. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.js.map +1 -0
  288. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.mjs +78 -0
  289. package/dist/node/lib/A-ServerProxy/A-ServerProxy.component.mjs.map +1 -0
  290. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.d.mts +9 -0
  291. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.d.ts +9 -0
  292. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.js +14 -0
  293. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.js.map +1 -0
  294. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.mjs +14 -0
  295. package/dist/node/lib/A-ServerProxy/A-ServerProxy.constants.mjs.map +1 -0
  296. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.d.mts +36 -0
  297. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.d.ts +36 -0
  298. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.js +60 -0
  299. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.js.map +1 -0
  300. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.mjs +59 -0
  301. package/dist/node/lib/A-ServerProxy/A-ServerProxy.context.mjs.map +1 -0
  302. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.d.mts +23 -0
  303. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.d.ts +23 -0
  304. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.js +4 -0
  305. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.js.map +1 -0
  306. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.mjs +3 -0
  307. package/dist/node/lib/A-ServerProxy/A-ServerProxy.types.mjs.map +1 -0
  308. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.d.mts +20 -0
  309. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.d.ts +20 -0
  310. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.js +25 -0
  311. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.js.map +1 -0
  312. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.mjs +24 -0
  313. package/dist/node/lib/A-ServerRoute/A-ServerRoute.constants.mjs.map +1 -0
  314. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.d.mts +15 -0
  315. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.d.ts +15 -0
  316. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.js +24 -0
  317. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.js.map +1 -0
  318. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.mjs +23 -0
  319. package/dist/node/lib/A-ServerRoute/A-ServerRoute.entity.mjs.map +1 -0
  320. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.d.mts +6 -0
  321. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.d.ts +6 -0
  322. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.js +4 -0
  323. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.js.map +1 -0
  324. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.mjs +3 -0
  325. package/dist/node/lib/A-ServerRoute/A-ServerRoute.types.mjs.map +1 -0
  326. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.d.mts +84 -0
  327. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.d.ts +84 -0
  328. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.js +194 -0
  329. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.js.map +1 -0
  330. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.mjs +184 -0
  331. package/dist/node/lib/A-ServerRouter/A-ServerRouter.component.mjs.map +1 -0
  332. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.d.mts +6 -0
  333. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.d.ts +6 -0
  334. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.js +10 -0
  335. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.js.map +1 -0
  336. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.mjs +10 -0
  337. package/dist/node/lib/A-ServerRouter/A-ServerRouter.constants.mjs.map +1 -0
  338. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.d.mts +16 -0
  339. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.d.ts +16 -0
  340. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.js +40 -0
  341. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.js.map +1 -0
  342. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.mjs +39 -0
  343. package/dist/node/lib/A-ServerRouter/A-ServerRouter.meta.mjs.map +1 -0
  344. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.d.mts +24 -0
  345. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.d.ts +24 -0
  346. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.js +4 -0
  347. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.js.map +1 -0
  348. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.mjs +3 -0
  349. package/dist/node/lib/A-ServerRouter/A-ServerRouter.types.mjs.map +1 -0
  350. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.d.mts +16 -0
  351. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.d.ts +16 -0
  352. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.js +25 -0
  353. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.js.map +1 -0
  354. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.mjs +24 -0
  355. package/dist/node/lib/A-ServerRouter/A-ServerRouterDefine.decorator.mjs.map +1 -0
  356. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.d.mts +65 -0
  357. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.d.ts +65 -0
  358. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.js +260 -0
  359. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.js.map +1 -0
  360. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.mjs +248 -0
  361. package/dist/node/lib/A-ServerStatic/A-ServerStatic.component.mjs.map +1 -0
  362. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.d.mts +110 -0
  363. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.d.ts +110 -0
  364. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.js +180 -0
  365. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.js.map +1 -0
  366. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.mjs +179 -0
  367. package/dist/node/lib/A-ServerStatic/A-ServerStatic.context.mjs.map +1 -0
  368. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.d.mts +8 -0
  369. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.d.ts +8 -0
  370. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.js +4 -0
  371. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.js.map +1 -0
  372. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.mjs +3 -0
  373. package/dist/node/lib/A-ServerStatic/A-ServerStatic.types.mjs.map +1 -0
  374. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.d.mts +29 -0
  375. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.d.ts +29 -0
  376. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.js +62 -0
  377. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.js.map +1 -0
  378. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.mjs +50 -0
  379. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.component.mjs.map +1 -0
  380. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.d.mts +5 -0
  381. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.d.ts +5 -0
  382. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.js +14 -0
  383. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.js.map +1 -0
  384. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.mjs +14 -0
  385. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.constants.mjs.map +1 -0
  386. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.d.mts +9 -0
  387. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.d.ts +9 -0
  388. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.js +4 -0
  389. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.js.map +1 -0
  390. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.mjs +3 -0
  391. package/dist/node/middlewares/A-ServerCORS/A_ServerCORS.types.mjs.map +1 -0
  392. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.d.mts +24 -0
  393. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.d.ts +24 -0
  394. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.js +94 -0
  395. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.js.map +1 -0
  396. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.mjs +82 -0
  397. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.component.mjs.map +1 -0
  398. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.d.mts +2 -0
  399. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.d.ts +2 -0
  400. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.js +4 -0
  401. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.js.map +1 -0
  402. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.mjs +3 -0
  403. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.error.mjs.map +1 -0
  404. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.d.mts +2 -0
  405. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.d.ts +2 -0
  406. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.js +4 -0
  407. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.js.map +1 -0
  408. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.mjs +3 -0
  409. package/dist/node/repositories/A-EntityRepository/A-EntityRepository.types.mjs.map +1 -0
  410. package/examples/simple-server/commands/SignIn.command.ts +17 -1
  411. package/examples/simple-server/components/Test.controller.ts +8 -7
  412. package/examples/simple-server/components/Users.repository.ts +28 -26
  413. package/examples/simple-server/concept.ts +56 -59
  414. package/examples/simple-server/entities/User/User.entity.ts +17 -7
  415. package/jest.config.ts +24 -10
  416. package/package.json +267 -25
  417. package/src/channels/A-Http/A-Http.channel.constants.ts +6 -7
  418. package/src/channels/A-Http/A-Http.channel.error.ts +2 -2
  419. package/src/channels/A-Http/A-Http.channel.ts +76 -125
  420. package/src/channels/A-Http/A-Http.channel.types.ts +6 -3
  421. package/src/channels/A-Websockets/A-Websockets.channel.ts +1 -1
  422. package/src/{components → controllers}/A-CommandController/A-CommandController.component.ts +16 -10
  423. package/src/{components → controllers}/A-EntityController/A-EntityController.component.ts +24 -28
  424. package/src/{components → controllers}/A-ListingController/A-ListingController.component.ts +10 -12
  425. package/src/{components → controllers}/A-ServerHealthMonitor/A-ServerHealthMonitor.component.ts +11 -11
  426. package/src/index.ts +58 -63
  427. package/src/lib/A-Request/A-HttpRequestData.context.ts +30 -0
  428. package/src/lib/A-Request/A-HttpServerRequest.context.ts +103 -0
  429. package/src/lib/A-Request/A-Request.constants.ts +30 -0
  430. package/src/lib/A-Request/A-Request.entity.ts +844 -0
  431. package/src/lib/A-Request/A-Request.env.ts +50 -0
  432. package/src/lib/A-Request/A-Request.error.ts +11 -0
  433. package/src/lib/A-Request/A-Request.helper.ts +276 -0
  434. package/src/lib/A-Request/A-Request.types.ts +284 -0
  435. package/src/lib/A-Request/README.md +567 -0
  436. package/src/lib/A-Response/A-Response.constants.ts +24 -0
  437. package/src/lib/A-Response/A-Response.entity.ts +689 -0
  438. package/src/lib/A-Response/A-Response.error.ts +6 -0
  439. package/src/lib/A-Response/A-Response.types.ts +127 -0
  440. package/src/lib/A-Response/README.md +793 -0
  441. package/src/lib/A-Server/A-HttpServer.constants.ts +9 -0
  442. package/src/lib/A-Server/A-HttpServer.container.ts +251 -0
  443. package/src/lib/A-Server/A-HttpServer.error.ts +165 -0
  444. package/src/lib/A-Server/A-HttpServer.types.ts +37 -0
  445. package/src/{context/A-Server/A_Server.context.ts → lib/A-Server/A-Server.context.ts} +6 -7
  446. package/src/lib/A-Server/A-Server.error.ts +26 -0
  447. package/src/{components/A-ServerError/A-ServerError.types.ts → lib/A-Server/A-Server.types.ts} +8 -0
  448. package/src/{components/A-Controller/A-Controller.component.ts → lib/A-ServerController/A-ServerController.component.ts} +5 -5
  449. package/src/{entities/A_EntityList/A_EntityList.entity.ts → lib/A-ServerEntityList/A-EntityList.entity.ts} +2 -2
  450. package/src/{entities/A_EntityList/A_EntityList.entity.types.ts → lib/A-ServerEntityList/A-EntityList.types.ts} +2 -2
  451. package/src/{context/A-ListQueryFilter/A_ListQueryFilter.context.ts → lib/A-ServerListQuery/A-ServerListQueryFilter.context.ts} +1 -1
  452. package/src/lib/A-ServerLogger/A-ServerLogger.component.ts +121 -0
  453. package/src/lib/A-ServerLogger/A-ServerLogger.types.ts +13 -0
  454. package/src/lib/A-ServerMiddleware/A-ServerMiddleware.component.ts +17 -0
  455. package/src/{components → lib}/A-ServerProxy/A-ServerProxy.component.ts +17 -12
  456. package/src/{context/A-ProxyConfig/A_ProxyConfig.constants.ts → lib/A-ServerProxy/A-ServerProxy.constants.ts} +1 -1
  457. package/src/{context/A-ProxyConfig/A_ProxyConfig.context.ts → lib/A-ServerProxy/A-ServerProxy.context.ts} +4 -4
  458. package/src/{context/A-ProxyConfig/A_ProxyConfig.types.ts → lib/A-ServerProxy/A-ServerProxy.types.ts} +4 -4
  459. package/src/lib/A-ServerRoute/A-ServerRoute.constants.ts +20 -0
  460. package/src/lib/A-ServerRoute/A-ServerRoute.entity.ts +48 -0
  461. package/src/lib/A-ServerRoute/A-ServerRoute.types.ts +6 -0
  462. package/src/{components/A-Router/A-Router.component.ts → lib/A-ServerRouter/A-ServerRouter.component.ts} +77 -97
  463. package/src/lib/A-ServerRouter/A-ServerRouter.constants.ts +8 -0
  464. package/src/lib/A-ServerRouter/A-ServerRouter.meta.ts +48 -0
  465. package/src/lib/A-ServerRouter/A-ServerRouter.types.ts +27 -0
  466. package/src/lib/A-ServerRouter/A-ServerRouterDefine.decorator.ts +37 -0
  467. package/src/lib/A-ServerStatic/A-ServerStatic.component.ts +323 -0
  468. package/src/lib/A-ServerStatic/A-ServerStatic.context.ts +229 -0
  469. package/src/{components → middlewares}/A-ServerCORS/A_ServerCORS.component.ts +16 -13
  470. package/src/{components/A-ServerCORS/A_ServerCORS.component.defaults.ts → middlewares/A-ServerCORS/A_ServerCORS.constants.ts} +2 -2
  471. package/src/{components → repositories}/A-EntityRepository/A-EntityRepository.component.ts +39 -30
  472. package/tests/A-HttpChannel.test.ts +41 -48
  473. package/tests/A-HttpServerError.test.ts +204 -0
  474. package/tests/A-Request.test.ts +351 -0
  475. package/tsconfig.json +40 -50
  476. package/tsup.config.ts +111 -13
  477. package/dist/index.d.mts +0 -739
  478. package/dist/index.d.ts +0 -739
  479. package/dist/index.js +0 -1904
  480. package/dist/index.js.map +0 -1
  481. package/dist/index.mjs +0 -1863
  482. package/dist/index.mjs.map +0 -1
  483. package/examples/microservices-server/components/controllers/Statistics.controller.ts +0 -18
  484. package/examples/microservices-server/components/repositories/Memory.repository.ts +0 -66
  485. package/examples/microservices-server/concept.ts +0 -43
  486. package/examples/microservices-server/context/MemoryStore.context.ts +0 -31
  487. package/examples/microservices-server/entities/Order.entity.ts +0 -7
  488. package/examples/microservices-server/entities/User.entity.ts +0 -8
  489. package/src/components/A-Router/A-Router.component.types.ts +0 -38
  490. package/src/components/A-ServerError/A-ServerError.class.ts +0 -98
  491. package/src/components/A-ServerLogger/A_ServerLogger.component.ts +0 -194
  492. package/src/components/A-ServerLogger/A_ServerLogger.component.types.ts +0 -14
  493. package/src/components/A-StaticLoader/A-StaticLoader.component.ts +0 -133
  494. package/src/containers/A-Service/A-Service.container.ts +0 -202
  495. package/src/containers/A-Service/A-Service.container.types.ts +0 -46
  496. package/src/context/A-EntityFactory/A-EntityFactory.context.ts +0 -163
  497. package/src/context/A-EntityFactory/A-EntityFactory.context.types.ts +0 -11
  498. package/src/context/A-HttpChannel/A-HttpChannel.context.ts +0 -36
  499. package/src/context/A-Server/A_Server.context.types.ts +0 -9
  500. package/src/context/A-StaticConfig/A-StaticConfig.context.ts +0 -36
  501. package/src/entities/A-Request/A-Request.entity.ts +0 -163
  502. package/src/entities/A-Request/A-Request.entity.types.ts +0 -41
  503. package/src/entities/A-Response/A-Response.entity.ts +0 -194
  504. package/src/entities/A-Response/A-Response.entity.types.ts +0 -26
  505. package/src/entities/A-Route/A-Route.entity.ts +0 -117
  506. package/tests/A-Service.test.ts +0 -18
  507. /package/src/{components → controllers}/A-EntityController/A-EntityController.component.types.ts +0 -0
  508. /package/src/{components/A-Controller/A-Controller.component.types.ts → controllers/A-ListingController/A-ListingController.types.ts} +0 -0
  509. /package/src/{components/A-ServerHealthMonitor/A-ServerHealthMonitor.component.types.ts → controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.ts} +0 -0
  510. /package/src/{components/A-EntityRepository/A-EntityRepository.error.ts → lib/A-Response/A-Response.env.ts} +0 -0
  511. /package/src/{components/A-EntityRepository/A-EntityRepository.types.ts → lib/A-ServerController/A-ServerController.types.ts} +0 -0
  512. /package/src/{components → lib}/A-ServerLogger/A-ServerLogger.constants.ts +0 -0
  513. /package/src/{components/A-ListingController/A-ListingController.component.types.ts → lib/A-ServerMiddleware/A-ServerMiddleware.constants.ts} +0 -0
  514. /package/src/{components/A-ServerError/A-ServerError.constants.ts → lib/A-ServerMiddleware/A-ServerMiddleware.types.ts} +0 -0
  515. /package/src/{components/A-StaticLoader/A-StaticLoader.component.types.ts → lib/A-ServerStatic/A-ServerStatic.types.ts} +0 -0
  516. /package/src/{components/A-ServerCORS/A_ServerCORS.component.types.ts → middlewares/A-ServerCORS/A_ServerCORS.types.ts} +0 -0
  517. /package/src/{context/A-StaticConfig/A-StaticConfig.context.types.ts → repositories/A-EntityRepository/A-EntityRepository.error.ts} +0 -0
  518. /package/src/{entities/A-Route/A-Route.entity.types.ts → repositories/A-EntityRepository/A-EntityRepository.types.ts} +0 -0
@@ -1,18 +1,23 @@
1
- import { A_Component, A_Feature, A_Inject } from '@adaas/a-concept';
2
- import { A_SERVER_TYPES__CorsConfig } from './A_ServerCORS.component.types';
3
- import { A_SERVER_DEFAULTS__CorsConfig } from './A_ServerCORS.component.defaults';
4
- import { A_SERVER_TYPES__ServerFeature } from '@adaas/a-server/containers/A-Service/A-Service.container.types';
5
- import { A_Request } from '@adaas/a-server/entities/A-Request/A-Request.entity';
6
- import { A_Response } from '@adaas/a-server/entities/A-Response/A-Response.entity';
7
- import { A_Config } from '@adaas/a-utils';
1
+ import { A_Feature, A_Inject } from '@adaas/a-concept';
2
+ import { A_ServiceFeatures } from '@adaas/a-utils/a-service';
3
+ import { A_Request } from '@adaas/a-server/request/A-Request.entity';
4
+ import { A_Response } from '@adaas/a-server/response/A-Response.entity';
5
+ import { A_HttpServerFeatures } from '@adaas/a-server/server/A-HttpServer.constants';
6
+ import { A_Config } from '@adaas/a-utils/a-config';
7
+ import { A_ServerMiddleware } from '@adaas/a-server/middleware/A-ServerMiddleware.component';
8
+ import { A_SERVER_TYPES__CorsConfig } from './A_ServerCORS.types';
9
+ import { A_SERVER_DEFAULTS__CorsConfig } from './A_ServerCORS.constants';
10
+ import { A_HttpServer } from '@adaas/a-server/server/A-HttpServer.container';
8
11
 
9
12
 
10
- export class A_ServerCORS extends A_Component {
13
+
14
+
15
+ export class A_ServerCORS extends A_ServerMiddleware {
11
16
 
12
17
  private config!: A_SERVER_TYPES__CorsConfig;
13
18
 
14
19
  @A_Feature.Extend({
15
- name: A_SERVER_TYPES__ServerFeature.beforeStart
20
+ name: A_ServiceFeatures.onBeforeStart
16
21
  })
17
22
  async init(
18
23
  @A_Inject(A_Config) config: A_Config<['ORIGIN', 'METHODS', 'HEADERS', 'CREDENTIALS', 'MAX_AGE']>,
@@ -27,9 +32,7 @@ export class A_ServerCORS extends A_Component {
27
32
  }
28
33
 
29
34
 
30
- @A_Feature.Extend({
31
- name: A_SERVER_TYPES__ServerFeature.beforeRequest
32
- })
35
+ @A_HttpServer.onAfterRequest
33
36
  public apply(
34
37
  @A_Inject(A_Request) aReq: A_Request,
35
38
  @A_Inject(A_Response) aRes: A_Response,
@@ -48,7 +51,7 @@ export class A_ServerCORS extends A_Component {
48
51
  }
49
52
 
50
53
  // Handle preflight OPTIONS requests
51
- if (aReq.req.method === 'OPTIONS') {
54
+ if (aReq.method === 'OPTIONS') {
52
55
  aRes.status(204).send();
53
56
  }
54
57
  }
@@ -1,4 +1,4 @@
1
- import { A_SERVER_TYPES__CorsConfig } from "./A_ServerCORS.component.types";
1
+ import { A_SERVER_TYPES__CorsConfig } from "./A_ServerCORS.types";
2
2
 
3
3
 
4
4
 
@@ -8,4 +8,4 @@ export const A_SERVER_DEFAULTS__CorsConfig: A_SERVER_TYPES__CorsConfig = {
8
8
  headers: ['Content-Type'],
9
9
  credentials: false,
10
10
  maxAge: 0
11
- };
11
+ } as const;
@@ -1,34 +1,52 @@
1
- import { A_Caller, A_Component, A_Entity, A_Feature, A_Inject, A_Scope, A_TYPES__Entity_Constructor } from "@adaas/a-concept";
2
- import { A_TYPES__EntityFeatures } from "@adaas/a-concept/dist/src/global/A-Entity/A-Entity.constants";
1
+ import { A_Caller, A_Entity, A_Feature, A_Inject, A_Scope, A_TYPES__Entity_Constructor, A_TYPES__EntityFeatures } from "@adaas/a-concept";
3
2
  import { A_HTTPChannel } from "@adaas/a-server/channels/A-Http/A-Http.channel";
4
- import { A_EntityList } from "@adaas/a-server/entities/A_EntityList/A_EntityList.entity";
5
- import { A_Manifest } from "@adaas/a-utils";
3
+ import { A_ServerEntityList } from "@adaas/a-server/entity-list/A-EntityList.entity";
4
+ import { A_Command, A_CommandFeatures, A_TYPES__Command_Serialized } from "@adaas/a-utils/a-command";
5
+ import { A_Manifest } from "@adaas/a-utils/a-manifest";
6
6
 
7
7
 
8
8
 
9
9
 
10
- export class A_EntityRepository extends A_Component {
10
+ export class A_EntityRepository extends A_HTTPChannel {
11
+
12
+
13
+ @A_Feature.Extend({
14
+ name: A_CommandFeatures.onExecute,
15
+ })
16
+ async execute(
17
+ @A_Inject(A_Caller) command: A_Command,
18
+ @A_Inject(A_Scope) scope: A_Scope,
19
+ ) {
20
+ // Check if the scope has a manifest and if the entity is allowed to load
21
+ if (
22
+ scope.has(A_Manifest) && !scope.resolve(A_Manifest)!
23
+ .isAllowed(command.constructor, 'load')
24
+ .for(command.constructor as A_TYPES__Entity_Constructor)
25
+ )
26
+ return;
27
+
28
+ const response = await this.post<A_TYPES__Command_Serialized>(`/a-command/v1/${command.aseid.entity}`, command.toJSON());
29
+
30
+ command.fromJSON(response.data!);
31
+ }
11
32
 
12
33
  @A_Feature.Extend({
13
34
  name: A_TYPES__EntityFeatures.LOAD,
14
- scope: {
15
- include: [A_EntityList]
16
- }
35
+ scope: [A_ServerEntityList]
17
36
  })
18
37
  async list(
19
- @A_Inject(A_HTTPChannel) channel: A_HTTPChannel,
20
- @A_Inject(A_Caller) entity: A_EntityList,
38
+ @A_Inject(A_Caller) entity: A_ServerEntityList,
21
39
  @A_Inject(A_Scope) scope: A_Scope,
22
40
  ) {
23
41
  // Check if the scope has a manifest and if the entity is allowed to load
24
42
  if (
25
- scope.has(A_Manifest) && !scope.resolve(A_Manifest)
43
+ scope.has(A_Manifest) && !scope.resolve(A_Manifest)!
26
44
  .isAllowed(entity.constructor, 'load')
27
45
  .for(entity.constructor as A_TYPES__Entity_Constructor)
28
46
  )
29
47
  return;
30
48
 
31
- const response = await channel.get(`/a-list/${entity.aseid.entity}`);
49
+ const response = await this.get(`/a-list/v1/${entity.aseid.entity}`);
32
50
 
33
51
  entity.fromJSON(response.data);
34
52
  }
@@ -36,24 +54,21 @@ export class A_EntityRepository extends A_Component {
36
54
 
37
55
  @A_Feature.Extend({
38
56
  name: A_TYPES__EntityFeatures.LOAD,
39
- scope: {
40
- exclude: [A_EntityList]
41
- }
57
+ scope: [A_ServerEntityList]
42
58
  })
43
59
  async load(
44
- @A_Inject(A_HTTPChannel) channel: A_HTTPChannel,
45
60
  @A_Inject(A_Caller) entity: A_Entity,
46
61
  @A_Inject(A_Scope) scope: A_Scope,
47
62
  ) {
48
63
  // Check if the scope has a manifest and if the entity is allowed to load
49
64
  if (
50
- scope.has(A_Manifest) && !scope.resolve(A_Manifest)
65
+ scope.has(A_Manifest) && !scope.resolve(A_Manifest)!
51
66
  .isAllowed(entity.constructor, 'load')
52
67
  .for(entity.constructor as A_TYPES__Entity_Constructor)
53
68
  )
54
69
  return;
55
70
 
56
- const response = await channel.get(`/a-entity/${entity.aseid.toString()}`);
71
+ const response = await this.get(`/a-entity/v1/${entity.aseid.toString()}`);
57
72
 
58
73
  entity.fromJSON(response.data);
59
74
  }
@@ -61,24 +76,21 @@ export class A_EntityRepository extends A_Component {
61
76
 
62
77
  @A_Feature.Extend({
63
78
  name: A_TYPES__EntityFeatures.SAVE,
64
- scope: {
65
- exclude: [A_EntityList]
66
- }
79
+ scope: [A_ServerEntityList]
67
80
  })
68
81
  async save(
69
- @A_Inject(A_HTTPChannel) channel: A_HTTPChannel,
70
82
  @A_Inject(A_Caller) entity: A_Entity,
71
83
  @A_Inject(A_Scope) scope: A_Scope,
72
84
  ) {
73
85
  // Check if the scope has a manifest and if the entity is allowed to save
74
86
  if (
75
- scope.has(A_Manifest) && !scope.resolve(A_Manifest)
87
+ scope.has(A_Manifest) && !scope.resolve(A_Manifest)!
76
88
  .isAllowed(entity.constructor, 'save')
77
89
  .for(entity.constructor as A_TYPES__Entity_Constructor)
78
90
  )
79
91
  return;
80
92
 
81
- const response = await channel.post(`/a-entity/${entity.aseid.toString()}`, entity.toJSON());
93
+ const response = await this.post(`/a-entity/v1/${entity.aseid.toString()}`, entity.toJSON());
82
94
 
83
95
  entity.fromJSON(response.data);
84
96
  }
@@ -86,24 +98,21 @@ export class A_EntityRepository extends A_Component {
86
98
 
87
99
  @A_Feature.Extend({
88
100
  name: A_TYPES__EntityFeatures.DESTROY,
89
- scope: {
90
- exclude: [A_EntityList]
91
- }
101
+ scope: [A_ServerEntityList]
92
102
  })
93
103
  async destroy(
94
- @A_Inject(A_HTTPChannel) channel: A_HTTPChannel,
95
104
  @A_Inject(A_Caller) entity: A_Entity,
96
105
  @A_Inject(A_Scope) scope: A_Scope,
97
106
  ) {
98
107
  // Check if the scope has a manifest and if the entity is allowed to destroy
99
108
  if (
100
- scope.has(A_Manifest) && !scope.resolve(A_Manifest)
109
+ scope.has(A_Manifest) && !scope.resolve(A_Manifest)!
101
110
  .isAllowed(entity.constructor, 'destroy')
102
111
  .for(entity.constructor as A_TYPES__Entity_Constructor)
103
112
  )
104
113
  return;
105
114
 
106
- const response = await channel.delete(`/a-entity/${entity.aseid.toString()}`);
115
+ const response = await this.delete(`/a-entity/v1/${entity.aseid.toString()}`);
107
116
 
108
117
  entity.fromJSON(response.data);
109
118
  }
@@ -1,7 +1,7 @@
1
- import { A_Context, A_Feature, A_Inject, A_Scope } from '@adaas/a-concept';
1
+ import { A_Feature, A_Inject, A_Scope } from '@adaas/a-concept';
2
+ import { A_ChannelRequest } from '@adaas/a-utils/a-channel';
2
3
  import { A_HTTPChannel } from '@adaas/a-server/channels/A-Http/A-Http.channel';
3
4
  import { A_SERVER_CONSTANTS__A_HttpChannel_Lifecycle } from '@adaas/a-server/channels/A-Http/A-Http.channel.constants';
4
- import { A_HTTPChannel_RequestContext } from '@adaas/a-server/context/A-HttpChannel/A-HttpChannel.context';
5
5
 
6
6
  jest.retryTimes(0);
7
7
 
@@ -14,12 +14,12 @@ describe('A-HttpChannel Tests', () => {
14
14
  components: [A_HTTPChannel]
15
15
  });
16
16
 
17
-
18
- const channel = scope.resolve(A_HTTPChannel);
17
+ const channel = scope.resolve(A_HTTPChannel)!;
19
18
 
20
19
  expect(channel).toBeInstanceOf(A_HTTPChannel);
21
20
  expect(channel.processing).toBe(false);
22
21
  });
22
+
23
23
  it('Should be possible to create a custom Channel', async () => {
24
24
  class myChannel extends A_HTTPChannel {
25
25
  custom = true;
@@ -34,7 +34,7 @@ describe('A-HttpChannel Tests', () => {
34
34
  components: [myChannel]
35
35
  });
36
36
 
37
- const channel = scope.resolve(myChannel);
37
+ const channel = scope.resolve(myChannel)!;
38
38
  expect(channel).toBeInstanceOf(myChannel);
39
39
  expect(channel.custom).toBe(true);
40
40
  expect(channel.processing).toBe(false);
@@ -44,9 +44,9 @@ describe('A-HttpChannel Tests', () => {
44
44
  { userId: 1 }
45
45
  );
46
46
 
47
- expect(Array.isArray(response.result)).toBe(true);
48
- expect(response.result?.length).toBeGreaterThan(0);
49
- expect(response.result?.[0].userId).toBe(1);
47
+ expect(Array.isArray(response.data)).toBe(true);
48
+ expect(response.data?.length).toBeGreaterThan(0);
49
+ expect(response.data?.[0].userId).toBe(1);
50
50
  });
51
51
 
52
52
  it('Should throw an error if baseUrl is not set', async () => {
@@ -54,9 +54,10 @@ describe('A-HttpChannel Tests', () => {
54
54
  components: [A_HTTPChannel]
55
55
  });
56
56
 
57
- const channel = scope.resolve(A_HTTPChannel);
57
+ const channel = scope.resolve(A_HTTPChannel)!;
58
58
 
59
- await expect(channel.get('/posts')).rejects.toThrow("Base URL is not set for HTTP Channel");
59
+ // The error is wrapped by A-Feature processing machinery, so we only check it rejects
60
+ await expect(channel.get('/posts')).rejects.toThrow();
60
61
  });
61
62
 
62
63
  it('Should allow to extend response handler behavior', async () => {
@@ -69,17 +70,16 @@ describe('A-HttpChannel Tests', () => {
69
70
  }
70
71
 
71
72
  class myChannelWithCustomResponseHandler extends myChannel {
72
-
73
73
  @A_Feature.Extend({
74
74
  name: A_SERVER_CONSTANTS__A_HttpChannel_Lifecycle.onAfterRequest
75
75
  })
76
- protected async handleResponse<T>(
77
- @A_Inject(A_HTTPChannel_RequestContext) context: A_HTTPChannel_RequestContext<MockResponse>
76
+ protected async handleResponse(
77
+ @A_Inject(A_ChannelRequest) context: A_ChannelRequest<any, MockResponse>
78
78
  ): Promise<void> {
79
- context.result = context.result?.map(item => ({
79
+ context.succeed((context.data?.map(item => ({
80
80
  ...item,
81
81
  customField: 'customValue'
82
- })) || [];
82
+ })) || []) as unknown as MockResponse);
83
83
  }
84
84
  }
85
85
 
@@ -87,19 +87,20 @@ describe('A-HttpChannel Tests', () => {
87
87
  components: [myChannel, myChannelWithCustomResponseHandler]
88
88
  });
89
89
 
90
- const channel = scope.resolve(myChannelWithCustomResponseHandler);
90
+ const channel = scope.resolve(myChannelWithCustomResponseHandler)!;
91
91
  expect(channel).toBeInstanceOf(myChannelWithCustomResponseHandler);
92
92
  expect(channel.custom).toBe(true);
93
93
  expect(channel.processing).toBe(false);
94
94
 
95
95
  const response = await channel.get<MockResponse>('/posts', { userId: 1 });
96
96
 
97
- expect(Array.isArray(response.result)).toBe(true);
98
- expect(response.result?.length).toBeGreaterThan(0);
99
- expect(response.result?.[0].userId).toBe(1);
100
- expect((response.result?.[0] as any).customField).toBe('customValue');
97
+ expect(Array.isArray(response.data)).toBe(true);
98
+ expect(response.data?.length).toBeGreaterThan(0);
99
+ expect(response.data?.[0].userId).toBe(1);
100
+ expect((response.data?.[0] as any).customField).toBe('customValue');
101
101
  });
102
- it('Should allow to extend error handler behavior', async () => {
102
+
103
+ it('Should call the error handler extension and still throw on request failure', async () => {
103
104
  class myChannel extends A_HTTPChannel {
104
105
  custom = true;
105
106
  constructor() {
@@ -108,21 +109,16 @@ describe('A-HttpChannel Tests', () => {
108
109
  }
109
110
  }
110
111
 
112
+ let errorHandlerCalled = false;
113
+
111
114
  class myChannelWithCustomErrorHandler extends myChannel {
112
115
  @A_Feature.Extend({
113
116
  name: A_SERVER_CONSTANTS__A_HttpChannel_Lifecycle.onError
114
117
  })
115
118
  protected async handleError(
116
- @A_Inject(A_HTTPChannel_RequestContext) context: A_HTTPChannel_RequestContext<MockResponse>,
117
- error: any
119
+ @A_Inject(A_ChannelRequest) context: A_ChannelRequest<any, MockResponse>
118
120
  ): Promise<void> {
119
- context.result = [{
120
- userId: -1,
121
- id: -1,
122
- title: 'error',
123
- body: 'error',
124
- customField: 'customValue'
125
- }];
121
+ errorHandlerCalled = true;
126
122
  }
127
123
  }
128
124
 
@@ -130,17 +126,14 @@ describe('A-HttpChannel Tests', () => {
130
126
  components: [myChannel, myChannelWithCustomErrorHandler]
131
127
  });
132
128
 
133
- const channel = scope.resolve(myChannelWithCustomErrorHandler);
129
+ const channel = scope.resolve(myChannelWithCustomErrorHandler)!;
134
130
  expect(channel).toBeInstanceOf(myChannelWithCustomErrorHandler);
135
131
  expect(channel.custom).toBe(true);
136
132
  expect(channel.processing).toBe(false);
137
133
 
138
- const response = await channel.get<MockResponse>('/posts_invalid', { userId: 1 }, { throwOnError: false });
139
-
140
- expect(Array.isArray(response.result)).toBe(true);
141
- expect(response.result?.length).toBe(1);
142
- expect(response.result?.[0].userId).toBe(-1);
143
- expect((response.result?.[0] as any).customField).toBe('customValue');
134
+ // request() always re-throws after calling onError; no throwOnError suppression in A_Channel
135
+ await expect(channel.get<MockResponse>('/posts_invalid', { userId: 1 })).rejects.toThrow();
136
+ expect(errorHandlerCalled).toBe(true);
144
137
  });
145
138
 
146
139
  it('Should do a proper filtering with query params', async () => {
@@ -156,16 +149,16 @@ describe('A-HttpChannel Tests', () => {
156
149
  components: [myChannel]
157
150
  });
158
151
 
159
- const channel = scope.resolve(myChannel);
152
+ const channel = scope.resolve(myChannel)!;
160
153
  expect(channel).toBeInstanceOf(myChannel);
161
154
  expect(channel.custom).toBe(true);
162
155
  expect(channel.processing).toBe(false);
163
156
 
164
157
  const response = await channel.get<MockResponse>('/posts', { userId: 1 });
165
158
 
166
- expect(Array.isArray(response.result)).toBe(true);
167
- expect(response.result?.length).toBeGreaterThan(0);
168
- expect(response.result?.every(item => item.userId === 1)).toBe(true);
159
+ expect(Array.isArray(response.data)).toBe(true);
160
+ expect(response.data?.length).toBeGreaterThan(0);
161
+ expect(response.data?.every(item => item.userId === 1)).toBe(true);
169
162
  });
170
163
 
171
164
  it('Should be possible to do a POST request', async () => {
@@ -181,7 +174,7 @@ describe('A-HttpChannel Tests', () => {
181
174
  components: [myChannel]
182
175
  });
183
176
 
184
- const channel = scope.resolve(myChannel);
177
+ const channel = scope.resolve(myChannel)!;
185
178
  expect(channel).toBeInstanceOf(myChannel);
186
179
  expect(channel.custom).toBe(true);
187
180
  expect(channel.processing).toBe(false);
@@ -195,10 +188,10 @@ describe('A-HttpChannel Tests', () => {
195
188
  }
196
189
  );
197
190
 
198
- expect(response.result).toBeDefined();
199
- expect((response.result as any).id).toBeDefined();
200
- expect((response.result as any).title).toBe('foo');
201
- expect((response.result as any).body).toBe('bar');
202
- expect((response.result as any).userId).toBe(1);
191
+ expect(response.data).toBeDefined();
192
+ expect((response.data as any).id).toBeDefined();
193
+ expect((response.data as any).title).toBe('foo');
194
+ expect((response.data as any).body).toBe('bar');
195
+ expect((response.data as any).userId).toBe(1);
203
196
  });
204
- });
197
+ });
@@ -0,0 +1,204 @@
1
+ import { A_HttpServerError } from '../src/lib/A-Server/A-HttpServer.error';
2
+
3
+ describe('A_HttpServerError', () => {
4
+ describe('Constructor Pattern 1: Status Code + Description', () => {
5
+ it('should automatically set title based on status code', () => {
6
+ // Test 404 error
7
+ const error404 = new A_HttpServerError(404, 'The requested resource was not found');
8
+
9
+ expect(error404.status).toBe(404);
10
+ expect(error404.title).toBe('Not Found');
11
+ expect(error404.description).toBe('The requested resource was not found');
12
+ expect(error404.message).toContain('Not Found');
13
+ expect(error404.message).toContain('The requested resource was not found');
14
+ });
15
+
16
+ it('should handle various HTTP status codes correctly', () => {
17
+ // Test 500 error
18
+ const error500 = new A_HttpServerError(500, 'Database connection failed');
19
+ expect(error500.status).toBe(500);
20
+ expect(error500.title).toBe('Internal Server Error');
21
+ expect(error500.description).toBe('Database connection failed');
22
+
23
+ // Test 401 error
24
+ const error401 = new A_HttpServerError(401, 'Invalid credentials provided');
25
+ expect(error401.status).toBe(401);
26
+ expect(error401.title).toBe('Unauthorized');
27
+ expect(error401.description).toBe('Invalid credentials provided');
28
+
29
+ // Test 429 error
30
+ const error429 = new A_HttpServerError(429, 'Rate limit exceeded');
31
+ expect(error429.status).toBe(429);
32
+ expect(error429.title).toBe('Too Many Requests');
33
+ expect(error429.description).toBe('Rate limit exceeded');
34
+ });
35
+
36
+ it('should handle unknown status codes', () => {
37
+ const unknownError = new A_HttpServerError(999, 'Custom error');
38
+ expect(unknownError.status).toBe(999);
39
+ expect(unknownError.title).toBe('Unknown Error');
40
+ expect(unknownError.description).toBe('Custom error');
41
+ });
42
+ });
43
+
44
+ describe('Constructor Pattern 2: Configuration Object', () => {
45
+ it('should automatically set title when status is provided without title', () => {
46
+ const error = new A_HttpServerError({
47
+ status: 500,
48
+ description: 'An unexpected error occurred'
49
+ });
50
+
51
+ expect(error.status).toBe(500);
52
+ expect(error.title).toBe('Internal Server Error');
53
+ expect(error.description).toBe('An unexpected error occurred');
54
+ });
55
+
56
+ it('should respect explicit title when provided', () => {
57
+ const error = new A_HttpServerError({
58
+ title: 'Custom Error Title',
59
+ status: 400,
60
+ description: 'Custom error description'
61
+ });
62
+
63
+ expect(error.status).toBe(400);
64
+ expect(error.title).toBe('Custom Error Title');
65
+ expect(error.description).toBe('Custom error description');
66
+ });
67
+
68
+ it('should handle original error object', () => {
69
+ const originalError = new Error('Original error message');
70
+ const error = new A_HttpServerError({
71
+ status: 500,
72
+ description: 'Wrapper error description',
73
+ originalError
74
+ });
75
+
76
+ expect(error.status).toBe(500);
77
+ expect(error.title).toBe('Internal Server Error');
78
+ expect(error.description).toBe('Wrapper error description');
79
+ expect(error.originalError).toBe(originalError);
80
+ });
81
+
82
+ it('should default to status 500 when not provided', () => {
83
+ const error = new A_HttpServerError({
84
+ title: 'Custom Error',
85
+ description: 'Something went wrong'
86
+ });
87
+
88
+ expect(error.status).toBe(500);
89
+ expect(error.title).toBe('Custom Error');
90
+ expect(error.description).toBe('Something went wrong');
91
+ });
92
+
93
+ it('should handle all optional fields', () => {
94
+ const originalError = new Error('Database error');
95
+ const error = new A_HttpServerError({
96
+ status: 503,
97
+ description: 'Service temporarily unavailable',
98
+ code: 'SERVICE_UNAVAILABLE',
99
+ link: 'https://docs.example.com/errors/503',
100
+ originalError
101
+ });
102
+
103
+ expect(error.status).toBe(503);
104
+ expect(error.title).toBe('Service Unavailable');
105
+ expect(error.description).toBe('Service temporarily unavailable');
106
+ expect(error.code).toBe('SERVICE_UNAVAILABLE');
107
+ expect(error.link).toBe('https://docs.example.com/errors/503');
108
+ expect(error.originalError).toBe(originalError);
109
+ });
110
+ });
111
+
112
+ describe('Constructor Pattern 3: Error Object', () => {
113
+ it('should wrap Error objects with default status 500', () => {
114
+ const originalError = new Error('Database connection timeout');
115
+ const httpError = new A_HttpServerError(originalError);
116
+
117
+ expect(httpError.status).toBe(500);
118
+ expect(httpError.originalError).toBe(originalError);
119
+ expect(httpError.message).toBe(originalError.message);
120
+ });
121
+
122
+ it('should handle custom Error subclasses', () => {
123
+ class CustomError extends Error {
124
+ code = 'CUSTOM_CODE';
125
+ constructor(message: string) {
126
+ super(message);
127
+ this.name = 'CustomError';
128
+ }
129
+ }
130
+
131
+ const customError = new CustomError('Custom error occurred');
132
+ const httpError = new A_HttpServerError(customError);
133
+
134
+ expect(httpError.status).toBe(500);
135
+ expect(httpError.originalError).toBe(customError);
136
+ expect(httpError.message).toBe('Custom error occurred');
137
+ });
138
+ });
139
+
140
+ describe('Serialization', () => {
141
+ it('should serialize to JSON correctly', () => {
142
+ const error = new A_HttpServerError(404, 'Resource not found');
143
+ const serialized = error.toJSON();
144
+
145
+ expect(serialized.status).toBe(404);
146
+ expect(serialized.title).toBe('Not Found');
147
+ expect(serialized.description).toBe('Resource not found');
148
+ expect(typeof serialized.aseid).toBe('string');
149
+ expect(typeof serialized.code).toBe('string');
150
+ });
151
+
152
+ it('should include original error in serialization', () => {
153
+ const originalError = new Error('Original error');
154
+ const error = new A_HttpServerError({
155
+ status: 500,
156
+ description: 'Server error',
157
+ originalError
158
+ });
159
+ const serialized = error.toJSON();
160
+
161
+ expect(serialized.status).toBe(500);
162
+ expect(serialized.originalError).toBe('Original error');
163
+ });
164
+ });
165
+
166
+ describe('Error Inheritance', () => {
167
+ it('should be instance of Error', () => {
168
+ const error = new A_HttpServerError(500, 'Server error');
169
+ expect(error).toBeInstanceOf(Error);
170
+ });
171
+
172
+ it('should have proper error stack', () => {
173
+ const error = new A_HttpServerError(404, 'Not found');
174
+ expect(error.stack).toBeDefined();
175
+ expect(typeof error.stack).toBe('string');
176
+ });
177
+ });
178
+
179
+ describe('Edge Cases', () => {
180
+ it('should handle empty description', () => {
181
+ const error = new A_HttpServerError(404, '');
182
+ expect(error.status).toBe(404);
183
+ expect(error.title).toBe('Not Found');
184
+ // A_Error sets a default description if empty string is provided
185
+ expect(error.description).toBeDefined();
186
+ });
187
+
188
+ it('should throw error for invalid constructor parameters', () => {
189
+ expect(() => {
190
+ // @ts-ignore - Testing invalid usage
191
+ new A_HttpServerError('invalid');
192
+ }).toThrow('Invalid parameters provided to A_HttpServerError constructor');
193
+ });
194
+ });
195
+
196
+ describe('Static Constants', () => {
197
+ it('should provide static error constants', () => {
198
+ expect(A_HttpServerError.NotFoundErrorStatus).toBe(404);
199
+ expect(A_HttpServerError.NotFoundError).toBe('Resource Not Found');
200
+ expect(A_HttpServerError.InternalServerErrorStatus).toBe(500);
201
+ expect(A_HttpServerError.InternalServerError).toBe('Internal Server Error');
202
+ });
203
+ });
204
+ });