@adaas/a-server 0.0.22 → 0.0.24

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 (516) 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 +1699 -0
  6. package/dist/browser/index.mjs +2935 -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-6qhiV7BE.d.mts +348 -0
  11. package/dist/node/A-Response.entity-bjh6bofZ.d.ts +348 -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 +608 -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 +596 -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 +196 -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 +184 -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 -66
  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 +751 -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 +256 -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/{components/A-StaticLoader/A-StaticLoader.component.ts → lib/A-ServerStatic/A-ServerStatic.component.ts} +73 -54
  468. package/src/{context/A-StaticConfig/A-StaticConfig.context.ts → lib/A-ServerStatic/A-ServerStatic.context.ts} +16 -6
  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 -855
  478. package/dist/index.d.ts +0 -855
  479. package/dist/index.js +0 -2179
  480. package/dist/index.js.map +0 -1
  481. package/dist/index.mjs +0 -2144
  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/containers/A-Service/A-Service.container.ts +0 -218
  494. package/src/containers/A-Service/A-Service.container.types.ts +0 -46
  495. package/src/context/A-EntityFactory/A-EntityFactory.context.ts +0 -163
  496. package/src/context/A-EntityFactory/A-EntityFactory.context.types.ts +0 -11
  497. package/src/context/A-HttpChannel/A-HttpChannel.context.ts +0 -36
  498. package/src/context/A-Server/A_Server.context.types.ts +0 -9
  499. package/src/entities/A-Request/A-Request.entity.ts +0 -163
  500. package/src/entities/A-Request/A-Request.entity.types.ts +0 -41
  501. package/src/entities/A-Response/A-Response.entity.ts +0 -194
  502. package/src/entities/A-Response/A-Response.entity.types.ts +0 -26
  503. package/src/entities/A-Route/A-Route.entity.ts +0 -117
  504. package/tests/A-Service.test.ts +0 -18
  505. /package/src/{components → controllers}/A-EntityController/A-EntityController.component.types.ts +0 -0
  506. /package/src/{components/A-Controller/A-Controller.component.types.ts → controllers/A-ListingController/A-ListingController.types.ts} +0 -0
  507. /package/src/{components/A-ServerHealthMonitor/A-ServerHealthMonitor.component.types.ts → controllers/A-ServerHealthMonitor/A-ServerHealthMonitor.types.ts} +0 -0
  508. /package/src/{components/A-EntityRepository/A-EntityRepository.error.ts → lib/A-Response/A-Response.env.ts} +0 -0
  509. /package/src/{components/A-EntityRepository/A-EntityRepository.types.ts → lib/A-ServerController/A-ServerController.types.ts} +0 -0
  510. /package/src/{components → lib}/A-ServerLogger/A-ServerLogger.constants.ts +0 -0
  511. /package/src/{components/A-ListingController/A-ListingController.component.types.ts → lib/A-ServerMiddleware/A-ServerMiddleware.constants.ts} +0 -0
  512. /package/src/{components/A-ServerError/A-ServerError.constants.ts → lib/A-ServerMiddleware/A-ServerMiddleware.types.ts} +0 -0
  513. /package/src/{components/A-StaticLoader/A-StaticLoader.component.types.ts → lib/A-ServerStatic/A-ServerStatic.types.ts} +0 -0
  514. /package/src/{components/A-ServerCORS/A_ServerCORS.component.types.ts → middlewares/A-ServerCORS/A_ServerCORS.types.ts} +0 -0
  515. /package/src/{context/A-StaticConfig/A-StaticConfig.context.types.ts → repositories/A-EntityRepository/A-EntityRepository.error.ts} +0 -0
  516. /package/src/{entities/A-Route/A-Route.entity.types.ts → repositories/A-EntityRepository/A-EntityRepository.types.ts} +0 -0
@@ -0,0 +1,793 @@
1
+ # A_Response - Comprehensive HTTP Response Processing
2
+
3
+ ## Overview
4
+
5
+ The `A_Response` class is a comprehensive wrapper around Node.js `ServerResponse` that provides advanced HTTP response processing capabilities. It extends the base `A_Entity` class and offers features like response data accumulation, error collection, response streaming, template rendering, cookie management, response compression, and performance tracking.
6
+
7
+ ## Key Features
8
+
9
+ - 🚀 **High Performance**: Efficient response processing with performance metrics
10
+ - 📊 **Data Accumulation**: Collect and organize response data from multiple sources
11
+ - 🛠️ **Error Collection**: Comprehensive error tracking and standardized error responses
12
+ - 🌊 **Response Streaming**: Stream large responses with progress tracking
13
+ - 🍪 **Cookie Management**: Secure cookie setting with advanced options
14
+ - 📦 **Response Compression**: Automatic gzip compression for large responses
15
+ - 📁 **File Downloads**: Streamlined file serving and download responses
16
+ - 🎯 **Response Validation**: Validate response data and headers
17
+ - ⏱️ **Performance Tracking**: Response timing, byte tracking, and performance insights
18
+ - 🛡️ **Security Headers**: Built-in security headers and CORS support
19
+ - 🔧 **Type Safety**: Full TypeScript support with generic types
20
+
21
+ ## Installation
22
+
23
+ ```bash
24
+ npm install @adaas/a-server
25
+ ```
26
+
27
+ ## Basic Usage
28
+
29
+ ### Simple Response Handling
30
+
31
+ ```typescript
32
+ import { A_Response } from '@adaas/a-server';
33
+ import { ServerResponse } from 'http';
34
+
35
+ // Create response instance
36
+ const response = new A_Response({
37
+ id: 'res-123',
38
+ response: serverResponse, // Node.js ServerResponse
39
+ scope: 'api'
40
+ });
41
+
42
+ // Initialize response processing
43
+ await response.init();
44
+
45
+ // Add response data
46
+ response.add('message', 'Hello World');
47
+ response.add('timestamp', new Date());
48
+
49
+ // Send JSON response
50
+ response.status(200).json();
51
+ ```
52
+
53
+ ### Typed Response Processing
54
+
55
+ ```typescript
56
+ interface UserResponse {
57
+ id: string;
58
+ name: string;
59
+ email: string;
60
+ }
61
+
62
+ const response = new A_Response<UserResponse>({
63
+ id: 'res-456',
64
+ response: serverResponse,
65
+ scope: 'users'
66
+ });
67
+
68
+ await response.init();
69
+
70
+ // Add typed data
71
+ response.add('user', {
72
+ id: '123',
73
+ name: 'John Doe',
74
+ email: 'john@example.com'
75
+ });
76
+
77
+ response.add('metadata', {
78
+ requestId: 'req-456',
79
+ timestamp: new Date()
80
+ });
81
+
82
+ // Send response
83
+ response.status(200).json();
84
+ ```
85
+
86
+ ## Advanced Features
87
+
88
+ ### Response Configuration
89
+
90
+ ```typescript
91
+ const options = {
92
+ autoCompress: true,
93
+ compressionThreshold: 1024, // 1KB
94
+ enableCaching: true,
95
+ defaultCacheMaxAge: 3600, // 1 hour
96
+ enableMetrics: true,
97
+ enableEtag: true,
98
+ enableLastModified: true,
99
+ charset: 'utf-8',
100
+ defaultContentType: 'application/json',
101
+ enableCookies: true,
102
+ enableSessions: true
103
+ };
104
+
105
+ const response = new A_Response({
106
+ id: 'res-789',
107
+ response: serverResponse,
108
+ scope: 'api'
109
+ }, options);
110
+ ```
111
+
112
+ ### Data Management
113
+
114
+ ```typescript
115
+ await response.init();
116
+
117
+ // Add data
118
+ response.add('users', userList);
119
+ response.add('pagination', paginationInfo);
120
+ response.add('filters', activeFilters);
121
+
122
+ // Get data
123
+ const users = response.get('users');
124
+
125
+ // Check if data exists
126
+ if (response.has('pagination')) {
127
+ const pagination = response.get('pagination');
128
+ }
129
+
130
+ // Remove data
131
+ response.remove('filters');
132
+
133
+ // Clear all data
134
+ response.clear();
135
+
136
+ // Convert to response object
137
+ const responseData = response.toResponse();
138
+ ```
139
+
140
+ ### Error Handling and Collection
141
+
142
+ ```typescript
143
+ // Handle errors
144
+ try {
145
+ // Process request...
146
+ } catch (error) {
147
+ response.failed(error);
148
+ return; // Response automatically sent with error details
149
+ }
150
+
151
+ // Add individual errors
152
+ response.addError({
153
+ code: 'VALIDATION_ERROR',
154
+ message: 'Invalid email format',
155
+ statusCode: 400,
156
+ timestamp: new Date()
157
+ });
158
+
159
+ // Add warnings
160
+ response.addWarning('User email not verified');
161
+
162
+ // Check error status
163
+ if (response.hasErrors) {
164
+ console.log('Response has errors:', response.errors);
165
+ }
166
+
167
+ // Clear errors
168
+ response.clearErrors();
169
+ ```
170
+
171
+ ### Cookie Management
172
+
173
+ ```typescript
174
+ await response.init();
175
+
176
+ // Set cookies
177
+ response.setCookie('sessionId', 'abc123', {
178
+ httpOnly: true,
179
+ secure: true,
180
+ maxAge: 3600,
181
+ sameSite: 'strict'
182
+ });
183
+
184
+ response.setCookie('preferences', JSON.stringify({ theme: 'dark' }), {
185
+ path: '/',
186
+ maxAge: 86400 // 24 hours
187
+ });
188
+
189
+ // Clear cookies
190
+ response.clearCookie('oldCookie', {
191
+ path: '/',
192
+ domain: '.example.com'
193
+ });
194
+
195
+ // Send response with cookies
196
+ response.status(200).json({ message: 'Cookies set' });
197
+ ```
198
+
199
+ ### Response Streaming
200
+
201
+ ```typescript
202
+ // Stream array data
203
+ const largeDataArray = [/* thousands of items */];
204
+
205
+ await response.stream(largeDataArray, {
206
+ chunkSize: 100,
207
+ delay: 10, // 10ms between chunks
208
+ transform: (item) => JSON.stringify(item) + '\n',
209
+ onProgress: (bytesWritten, totalBytes) => {
210
+ console.log(`Progress: ${bytesWritten}/${totalBytes} bytes`);
211
+ },
212
+ onComplete: () => {
213
+ console.log('Streaming complete');
214
+ },
215
+ onError: (error) => {
216
+ console.error('Streaming error:', error);
217
+ }
218
+ });
219
+ ```
220
+
221
+ ```typescript
222
+ // Stream from readable stream
223
+ const fs = require('fs');
224
+ const fileStream = fs.createReadStream('/path/to/large-file.json');
225
+
226
+ await response.stream(fileStream, {
227
+ onProgress: (bytesWritten) => {
228
+ console.log(`Streamed ${bytesWritten} bytes`);
229
+ }
230
+ });
231
+ ```
232
+
233
+ ### Response Compression
234
+
235
+ ```typescript
236
+ // Automatic compression for large responses
237
+ response.add('largeData', massiveDataSet);
238
+ response.json(); // Automatically compressed if > threshold
239
+
240
+ // Manual compression
241
+ response.compressed({
242
+ data: largeDataSet,
243
+ message: 'Large dataset response'
244
+ }, {
245
+ level: 6, // Compression level 1-9
246
+ strategy: zlib.constants.Z_DEFAULT_STRATEGY
247
+ });
248
+ ```
249
+
250
+ ### File Downloads
251
+
252
+ ```typescript
253
+ // Serve file download
254
+ response.download('/path/to/file.pdf', {
255
+ filename: 'document.pdf',
256
+ contentType: 'application/pdf',
257
+ disposition: 'attachment',
258
+ etag: true,
259
+ lastModified: true,
260
+ maxAge: 3600
261
+ });
262
+
263
+ // Inline file display
264
+ response.download('/path/to/image.jpg', {
265
+ filename: 'photo.jpg',
266
+ contentType: 'image/jpeg',
267
+ disposition: 'inline'
268
+ });
269
+ ```
270
+
271
+ ### Response Caching
272
+
273
+ ```typescript
274
+ // Set cache headers
275
+ response.cache({
276
+ maxAge: 3600, // 1 hour
277
+ public: true,
278
+ etag: true,
279
+ lastModified: new Date()
280
+ });
281
+
282
+ // No cache
283
+ response.noCache();
284
+
285
+ // Custom cache control
286
+ response.cache({
287
+ private: true,
288
+ mustRevalidate: true,
289
+ sMaxAge: 1800 // 30 minutes for proxies
290
+ });
291
+ ```
292
+
293
+ ### Response Validation
294
+
295
+ ```typescript
296
+ // Validate response before sending
297
+ const validation = response.validate({
298
+ requiredFields: ['data', 'message'],
299
+ maxSize: 1024 * 1024, // 1MB
300
+ allowedStatusCodes: [200, 201, 202]
301
+ });
302
+
303
+ if (!validation.isValid) {
304
+ console.log('Response validation errors:', validation.errors);
305
+ console.log('Warnings:', validation.warnings);
306
+ }
307
+ ```
308
+
309
+ ### Redirects
310
+
311
+ ```typescript
312
+ // Temporary redirect (302)
313
+ response.redirect('/new-location');
314
+
315
+ // Permanent redirect (301)
316
+ response.redirect('/new-location', true);
317
+
318
+ // With custom status
319
+ response.status(303).redirect('/see-other');
320
+ ```
321
+
322
+ ### Custom Headers
323
+
324
+ ```typescript
325
+ // Set headers
326
+ response
327
+ .setHeader('X-API-Version', '2.0')
328
+ .setHeader('X-Rate-Limit', '1000')
329
+ .setHeader('Access-Control-Allow-Origin', 'https://example.com');
330
+
331
+ // Get headers
332
+ const apiVersion = response.getHeader('X-API-Version');
333
+
334
+ // Remove headers
335
+ response.removeHeader('X-Debug-Info');
336
+ ```
337
+
338
+ ### Performance Monitoring
339
+
340
+ ```typescript
341
+ await response.init();
342
+
343
+ // Response metrics
344
+ console.log('Response duration:', response.duration);
345
+ console.log('Bytes written:', response.size);
346
+ console.log('Is finished:', response.isFinished);
347
+
348
+ // Detailed metrics
349
+ const metrics = response.metrics;
350
+ console.log('Start time:', metrics.startTime);
351
+ console.log('End time:', metrics.endTime);
352
+ console.log('Headers sent at:', metrics.headersSentAt);
353
+ console.log('First byte at:', metrics.firstByteAt);
354
+ console.log('Compression ratio:', metrics.compressionRatio);
355
+ ```
356
+
357
+ ## Response Types
358
+
359
+ ### JSON Response
360
+
361
+ ```typescript
362
+ // Simple JSON
363
+ response.json({ message: 'Success', data: [] });
364
+
365
+ // With status
366
+ response.status(201).json({ created: true });
367
+
368
+ // From accumulated data
369
+ response.add('users', userList);
370
+ response.add('count', userList.length);
371
+ response.json(); // Sends all accumulated data
372
+ ```
373
+
374
+ ### Text Response
375
+
376
+ ```typescript
377
+ // Plain text
378
+ response.send('Hello World');
379
+
380
+ // With custom content type
381
+ response
382
+ .setHeader('Content-Type', 'text/plain; charset=utf-8')
383
+ .send('Plain text response');
384
+ ```
385
+
386
+ ### HTML Response
387
+
388
+ ```typescript
389
+ // HTML response
390
+ response
391
+ .setHeader('Content-Type', 'text/html')
392
+ .send('<h1>Hello World</h1>');
393
+ ```
394
+
395
+ ### Binary Response
396
+
397
+ ```typescript
398
+ // Binary data
399
+ const buffer = Buffer.from('binary data');
400
+ response
401
+ .setHeader('Content-Type', 'application/octet-stream')
402
+ .send(buffer);
403
+ ```
404
+
405
+ ## Error Response Patterns
406
+
407
+ ### Standard Error Response
408
+
409
+ ```typescript
410
+ // Automatic error formatting
411
+ response.failed(new Error('Something went wrong'));
412
+ // Sends: { error: { code: 'UNKNOWN_ERROR', message: '...', timestamp: '...' }, errors: [...], warnings: [...] }
413
+ ```
414
+
415
+ ### Custom Error Response
416
+
417
+ ```typescript
418
+ response.addError({
419
+ code: 'VALIDATION_FAILED',
420
+ message: 'Email is required',
421
+ statusCode: 400,
422
+ timestamp: new Date()
423
+ });
424
+
425
+ response.addError({
426
+ code: 'DUPLICATE_EMAIL',
427
+ message: 'Email already exists',
428
+ statusCode: 409,
429
+ timestamp: new Date()
430
+ });
431
+
432
+ response.status(400).json({
433
+ success: false,
434
+ errors: response.errors,
435
+ warnings: response.warnings
436
+ });
437
+ ```
438
+
439
+ ### Validation Error Response
440
+
441
+ ```typescript
442
+ const validationErrors = [
443
+ { field: 'email', message: 'Invalid email format' },
444
+ { field: 'password', message: 'Password too short' }
445
+ ];
446
+
447
+ validationErrors.forEach(error => {
448
+ response.addError({
449
+ code: 'VALIDATION_ERROR',
450
+ message: `${error.field}: ${error.message}`,
451
+ statusCode: 422,
452
+ timestamp: new Date()
453
+ });
454
+ });
455
+
456
+ response.status(422).json({
457
+ message: 'Validation failed',
458
+ errors: response.errors
459
+ });
460
+ ```
461
+
462
+ ## Security Features
463
+
464
+ ### Security Headers
465
+
466
+ ```typescript
467
+ // Automatically set security headers:
468
+ // X-Content-Type-Options: nosniff
469
+ // X-Frame-Options: DENY
470
+ // X-XSS-Protection: 1; mode=block
471
+ // X-Request-ID: <request-id>
472
+
473
+ // Additional security headers
474
+ response
475
+ .setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains')
476
+ .setHeader('Content-Security-Policy', "default-src 'self'")
477
+ .setHeader('X-Content-Type-Options', 'nosniff');
478
+ ```
479
+
480
+ ### CORS Support
481
+
482
+ ```typescript
483
+ // Basic CORS (automatically set)
484
+ // Access-Control-Allow-Origin: *
485
+ // Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
486
+ // Access-Control-Allow-Headers: Content-Type, Authorization
487
+
488
+ // Custom CORS
489
+ response
490
+ .setHeader('Access-Control-Allow-Origin', 'https://example.com')
491
+ .setHeader('Access-Control-Allow-Credentials', 'true')
492
+ .setHeader('Access-Control-Expose-Headers', 'X-Total-Count');
493
+ ```
494
+
495
+ ### Secure Cookies
496
+
497
+ ```typescript
498
+ response.setCookie('sessionId', sessionId, {
499
+ httpOnly: true, // Prevent XSS
500
+ secure: true, // HTTPS only
501
+ sameSite: 'strict', // CSRF protection
502
+ maxAge: 3600 // 1 hour
503
+ });
504
+ ```
505
+
506
+ ## Best Practices
507
+
508
+ ### 1. Always Initialize
509
+
510
+ ```typescript
511
+ // ✅ Good
512
+ const response = new A_Response(params);
513
+ await response.init();
514
+
515
+ // ❌ Bad
516
+ const response = new A_Response(params);
517
+ response.json(); // Missing initialization
518
+ ```
519
+
520
+ ### 2. Check Headers Before Sending
521
+
522
+ ```typescript
523
+ // ✅ Good
524
+ if (!response.headersSent) {
525
+ response.json(data);
526
+ }
527
+
528
+ // ✅ Better - built-in check
529
+ response.json(data); // Automatically checks headers
530
+ ```
531
+
532
+ ### 3. Handle Errors Gracefully
533
+
534
+ ```typescript
535
+ // ✅ Good
536
+ try {
537
+ await processRequest();
538
+ response.status(200).json({ success: true });
539
+ } catch (error) {
540
+ response.failed(error); // Automatically formats error response
541
+ }
542
+ ```
543
+
544
+ ### 4. Use Data Accumulation
545
+
546
+ ```typescript
547
+ // ✅ Good - Accumulate data from different sources
548
+ response.add('user', userData);
549
+ response.add('permissions', userPermissions);
550
+ response.add('preferences', userPreferences);
551
+ response.json(); // Sends all accumulated data
552
+
553
+ // ❌ Bad - Manual object building
554
+ const responseData = {
555
+ user: userData,
556
+ permissions: userPermissions,
557
+ preferences: userPreferences
558
+ };
559
+ response.json(responseData);
560
+ ```
561
+
562
+ ### 5. Set Appropriate Status Codes
563
+
564
+ ```typescript
565
+ // ✅ Good
566
+ response.status(201).json({ created: true }); // Created
567
+ response.status(204).send(); // No Content
568
+ response.status(404).json({ error: 'Not Found' });
569
+ response.status(422).json({ validationErrors });
570
+
571
+ // ❌ Bad
572
+ response.json({ created: true }); // Uses default 200
573
+ ```
574
+
575
+ ### 6. Use Compression for Large Responses
576
+
577
+ ```typescript
578
+ // ✅ Good - Automatic compression
579
+ const options = { autoCompress: true, compressionThreshold: 1024 };
580
+ const response = new A_Response(params, options);
581
+
582
+ // ✅ Manual compression for control
583
+ if (responseSize > 10240) { // 10KB
584
+ response.compressed(largeData);
585
+ } else {
586
+ response.json(largeData);
587
+ }
588
+ ```
589
+
590
+ ### 7. Set Appropriate Cache Headers
591
+
592
+ ```typescript
593
+ // ✅ Good - API responses
594
+ response.cache({ private: true, maxAge: 300 }); // 5 minutes
595
+
596
+ // ✅ Good - Static content
597
+ response.cache({ public: true, maxAge: 86400 }); // 24 hours
598
+
599
+ // ✅ Good - No cache for sensitive data
600
+ response.noCache();
601
+ ```
602
+
603
+ ## Performance Tips
604
+
605
+ ### 1. Stream Large Responses
606
+
607
+ ```typescript
608
+ // ✅ For large datasets
609
+ await response.stream(largeDataArray);
610
+
611
+ // ❌ Don't load everything into memory
612
+ response.json(massiveDataSet);
613
+ ```
614
+
615
+ ### 2. Use Compression
616
+
617
+ ```typescript
618
+ // Enable automatic compression
619
+ const options = { autoCompress: true, compressionThreshold: 1024 };
620
+ ```
621
+
622
+ ### 3. Monitor Performance
623
+
624
+ ```typescript
625
+ // Track response performance
626
+ console.log('Response time:', response.duration);
627
+ console.log('Compression ratio:', response.metrics.compressionRatio);
628
+ ```
629
+
630
+ ### 4. Efficient Data Management
631
+
632
+ ```typescript
633
+ // ✅ Use response data accumulation
634
+ response.add('key', data);
635
+
636
+ // ✅ Remove unnecessary data
637
+ response.remove('temporaryData');
638
+
639
+ // ✅ Clear when done
640
+ response.clear();
641
+ ```
642
+
643
+ ## Common Patterns
644
+
645
+ ### API Response Pattern
646
+
647
+ ```typescript
648
+ class APIResponse {
649
+ static success(response: A_Response, data: any, message?: string) {
650
+ response.add('success', true);
651
+ response.add('data', data);
652
+ if (message) response.add('message', message);
653
+ response.add('timestamp', new Date().toISOString());
654
+ return response.status(200).json();
655
+ }
656
+
657
+ static error(response: A_Response, error: Error, statusCode = 500) {
658
+ response.failed(error);
659
+ // Automatically handled by failed() method
660
+ }
661
+
662
+ static paginated(response: A_Response, data: any[], pagination: any) {
663
+ response.add('data', data);
664
+ response.add('pagination', pagination);
665
+ response.add('total', pagination.total);
666
+ return response.status(200).json();
667
+ }
668
+ }
669
+
670
+ // Usage
671
+ APIResponse.success(response, userData, 'User retrieved successfully');
672
+ APIResponse.paginated(response, users, { page: 1, limit: 10, total: 100 });
673
+ ```
674
+
675
+ ### File Upload Response Pattern
676
+
677
+ ```typescript
678
+ class FileResponse {
679
+ static uploaded(response: A_Response, files: any[]) {
680
+ response.add('uploaded', true);
681
+ response.add('files', files.map(f => ({
682
+ originalName: f.originalname,
683
+ filename: f.filename,
684
+ size: f.size,
685
+ mimetype: f.mimetype
686
+ })));
687
+ response.add('count', files.length);
688
+ return response.status(201).json();
689
+ }
690
+ }
691
+ ```
692
+
693
+ ### Validation Error Pattern
694
+
695
+ ```typescript
696
+ class ValidationResponse {
697
+ static invalid(response: A_Response, validationErrors: any[]) {
698
+ validationErrors.forEach(error => {
699
+ response.addError({
700
+ code: 'VALIDATION_ERROR',
701
+ message: error.message,
702
+ statusCode: 422,
703
+ timestamp: new Date()
704
+ });
705
+ });
706
+
707
+ response.status(422).json({
708
+ message: 'Validation failed',
709
+ errors: response.errors
710
+ });
711
+ }
712
+ }
713
+ ```
714
+
715
+ ## API Reference
716
+
717
+ ### Constructor
718
+
719
+ ```typescript
720
+ new A_Response<ResponseType>(
721
+ params: A_SERVER_TYPES__ResponseConstructor,
722
+ options?: A_SERVER_TYPES__ResponseOptions
723
+ )
724
+ ```
725
+
726
+ ### Properties
727
+
728
+ - `duration: number` - Response duration in milliseconds
729
+ - `statusCode: number` - HTTP status code
730
+ - `headersSent: boolean` - Whether headers have been sent
731
+ - `original: ServerResponse` - Original Node.js ServerResponse
732
+ - `errors: A_SERVER_TYPES__ResponseError[]` - Accumulated errors
733
+ - `warnings: string[]` - Warning messages
734
+ - `hasErrors: boolean` - Whether response has errors
735
+ - `isFinished: boolean` - Whether response is complete
736
+ - `size: number` - Response size in bytes
737
+ - `metrics: A_SERVER_TYPES__ResponseMetrics` - Performance metrics
738
+
739
+ ### Methods
740
+
741
+ #### Core Methods
742
+ - `init(): Promise<void>` - Initialize response processing
743
+ - `send(data?: string | object): void` - Send response
744
+ - `json(data?: object): void` - Send JSON response
745
+ - `status(code: number): this` - Set status code
746
+
747
+ #### Data Management
748
+ - `add(key: string, data: ResponseType): this` - Add response data
749
+ - `get(key: string): ResponseType | undefined` - Get response data
750
+ - `has(key: string): boolean` - Check if data exists
751
+ - `remove(key: string): this` - Remove response data
752
+ - `clear(): this` - Clear all data
753
+
754
+ #### Error Handling
755
+ - `failed(error: Error | A_ServerError): void` - Handle error response
756
+ - `addError(error: A_SERVER_TYPES__ResponseError): void` - Add error
757
+ - `addWarning(message: string): void` - Add warning
758
+ - `clearErrors(): void` - Clear all errors
759
+
760
+ #### Headers and Cookies
761
+ - `setHeader(key: string, value: string | number | string[]): this` - Set header
762
+ - `getHeader(key: string): string | number | string[] | undefined` - Get header
763
+ - `removeHeader(key: string): this` - Remove header
764
+ - `setCookie(name: string, value: string, options?: CookieOptions): this` - Set cookie
765
+ - `clearCookie(name: string, options?: CookieOptions): this` - Clear cookie
766
+
767
+ #### Advanced Features
768
+ - `stream(data: Readable | any[], options?: StreamOptions): Promise<void>` - Stream response
769
+ - `compressed(data: any, options?: CompressionOptions): void` - Send compressed response
770
+ - `download(filePath: string, options?: DownloadOptions): void` - Send file download
771
+ - `redirect(url: string, permanent?: boolean): void` - Redirect response
772
+ - `cache(options: CacheOptions): this` - Set cache headers
773
+ - `noCache(): this` - Set no-cache headers
774
+ - `validate(schema?: any): A_SERVER_TYPES__ResponseValidation` - Validate response
775
+
776
+ #### Utility Methods
777
+ - `toResponse(): A_SERVER_TYPES__SendResponseObject<ResponseType>` - Convert to response object
778
+ - `toJSON(): any` - Serialize for debugging
779
+
780
+ ## Contributing
781
+
782
+ When contributing to A_Response:
783
+
784
+ 1. Ensure all features have comprehensive tests
785
+ 2. Update documentation for new features
786
+ 3. Follow TypeScript best practices
787
+ 4. Consider performance implications
788
+ 5. Add security validation where appropriate
789
+ 6. Test streaming and compression features thoroughly
790
+
791
+ ## License
792
+
793
+ MIT License - see LICENSE file for details.