@scpxl/nodejs-framework 1.0.13

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 (411) hide show
  1. package/README.md +195 -0
  2. package/dist/api-requester/api-requester.d.ts +11 -0
  3. package/dist/api-requester/api-requester.d.ts.map +1 -0
  4. package/dist/api-requester/api-requester.js +59 -0
  5. package/dist/api-requester/api-requester.js.map +7 -0
  6. package/dist/api-requester/index.d.ts +2 -0
  7. package/dist/api-requester/index.d.ts.map +1 -0
  8. package/dist/api-requester/index.js +5 -0
  9. package/dist/api-requester/index.js.map +7 -0
  10. package/dist/application/base-application.d.ts +110 -0
  11. package/dist/application/base-application.d.ts.map +1 -0
  12. package/dist/application/base-application.interface.d.ts +161 -0
  13. package/dist/application/base-application.interface.d.ts.map +1 -0
  14. package/dist/application/base-application.interface.js +1 -0
  15. package/dist/application/base-application.interface.js.map +7 -0
  16. package/dist/application/base-application.js +350 -0
  17. package/dist/application/base-application.js.map +7 -0
  18. package/dist/application/command-application.d.ts +18 -0
  19. package/dist/application/command-application.d.ts.map +1 -0
  20. package/dist/application/command-application.interface.d.ts +26 -0
  21. package/dist/application/command-application.interface.d.ts.map +1 -0
  22. package/dist/application/command-application.interface.js +1 -0
  23. package/dist/application/command-application.interface.js.map +7 -0
  24. package/dist/application/command-application.js +110 -0
  25. package/dist/application/command-application.js.map +7 -0
  26. package/dist/application/index.d.ts +5 -0
  27. package/dist/application/index.d.ts.map +1 -0
  28. package/dist/application/index.js +7 -0
  29. package/dist/application/index.js.map +7 -0
  30. package/dist/application/web-application.d.ts +43 -0
  31. package/dist/application/web-application.d.ts.map +1 -0
  32. package/dist/application/web-application.interface.d.ts +21 -0
  33. package/dist/application/web-application.interface.d.ts.map +1 -0
  34. package/dist/application/web-application.interface.js +1 -0
  35. package/dist/application/web-application.interface.js.map +7 -0
  36. package/dist/application/web-application.js +176 -0
  37. package/dist/application/web-application.js.map +7 -0
  38. package/dist/auth/index.d.ts +2 -0
  39. package/dist/auth/index.d.ts.map +1 -0
  40. package/dist/auth/index.js +5 -0
  41. package/dist/auth/index.js.map +7 -0
  42. package/dist/auth/jwt.d.ts +25 -0
  43. package/dist/auth/jwt.d.ts.map +1 -0
  44. package/dist/auth/jwt.js +51 -0
  45. package/dist/auth/jwt.js.map +7 -0
  46. package/dist/cache/index.d.ts +2 -0
  47. package/dist/cache/index.d.ts.map +1 -0
  48. package/dist/cache/index.js +5 -0
  49. package/dist/cache/index.js.map +7 -0
  50. package/dist/cache/manager.d.ts +26 -0
  51. package/dist/cache/manager.d.ts.map +1 -0
  52. package/dist/cache/manager.js +54 -0
  53. package/dist/cache/manager.js.map +7 -0
  54. package/dist/cluster/cluster-manager.d.ts +15 -0
  55. package/dist/cluster/cluster-manager.d.ts.map +1 -0
  56. package/dist/cluster/cluster-manager.interface.d.ts +23 -0
  57. package/dist/cluster/cluster-manager.interface.d.ts.map +1 -0
  58. package/dist/cluster/cluster-manager.interface.js +1 -0
  59. package/dist/cluster/cluster-manager.interface.js.map +7 -0
  60. package/dist/cluster/cluster-manager.js +106 -0
  61. package/dist/cluster/cluster-manager.js.map +7 -0
  62. package/dist/cluster/index.d.ts +2 -0
  63. package/dist/cluster/index.d.ts.map +1 -0
  64. package/dist/cluster/index.js +13 -0
  65. package/dist/cluster/index.js.map +7 -0
  66. package/dist/command/command-manager.d.ts +19 -0
  67. package/dist/command/command-manager.d.ts.map +1 -0
  68. package/dist/command/command-manager.js +42 -0
  69. package/dist/command/command-manager.js.map +7 -0
  70. package/dist/command/command.d.ts +27 -0
  71. package/dist/command/command.d.ts.map +1 -0
  72. package/dist/command/command.interface.d.ts +11 -0
  73. package/dist/command/command.interface.d.ts.map +1 -0
  74. package/dist/command/command.interface.js +1 -0
  75. package/dist/command/command.interface.js.map +7 -0
  76. package/dist/command/command.js +37 -0
  77. package/dist/command/command.js.map +7 -0
  78. package/dist/command/index.d.ts +3 -0
  79. package/dist/command/index.d.ts.map +1 -0
  80. package/dist/command/index.js +7 -0
  81. package/dist/command/index.js.map +7 -0
  82. package/dist/database/dynamic-entity-form-decorators.d.ts +31 -0
  83. package/dist/database/dynamic-entity-form-decorators.d.ts.map +1 -0
  84. package/dist/database/dynamic-entity-form-decorators.js +62 -0
  85. package/dist/database/dynamic-entity-form-decorators.js.map +7 -0
  86. package/dist/database/dynamic-entity.d.ts +15 -0
  87. package/dist/database/dynamic-entity.d.ts.map +1 -0
  88. package/dist/database/dynamic-entity.js +42 -0
  89. package/dist/database/dynamic-entity.js.map +7 -0
  90. package/dist/database/index.d.ts +5 -0
  91. package/dist/database/index.d.ts.map +1 -0
  92. package/dist/database/index.js +12 -0
  93. package/dist/database/index.js.map +7 -0
  94. package/dist/database/instance.d.ts +36 -0
  95. package/dist/database/instance.d.ts.map +1 -0
  96. package/dist/database/instance.interface.d.ts +5 -0
  97. package/dist/database/instance.interface.d.ts.map +1 -0
  98. package/dist/database/instance.interface.js +1 -0
  99. package/dist/database/instance.interface.js.map +7 -0
  100. package/dist/database/instance.js +57 -0
  101. package/dist/database/instance.js.map +7 -0
  102. package/dist/database/manager.d.ts +27 -0
  103. package/dist/database/manager.d.ts.map +1 -0
  104. package/dist/database/manager.interface.d.ts +18 -0
  105. package/dist/database/manager.interface.d.ts.map +1 -0
  106. package/dist/database/manager.interface.js +1 -0
  107. package/dist/database/manager.interface.js.map +7 -0
  108. package/dist/database/manager.js +49 -0
  109. package/dist/database/manager.js.map +7 -0
  110. package/dist/event/controller/base.d.ts +23 -0
  111. package/dist/event/controller/base.d.ts.map +1 -0
  112. package/dist/event/controller/base.interface.d.ts +11 -0
  113. package/dist/event/controller/base.interface.d.ts.map +1 -0
  114. package/dist/event/controller/base.interface.js +1 -0
  115. package/dist/event/controller/base.interface.js.map +7 -0
  116. package/dist/event/controller/base.js +51 -0
  117. package/dist/event/controller/base.js.map +7 -0
  118. package/dist/event/index.d.ts +5 -0
  119. package/dist/event/index.d.ts.map +1 -0
  120. package/dist/event/index.js +9 -0
  121. package/dist/event/index.js.map +7 -0
  122. package/dist/event/manager.d.ts +21 -0
  123. package/dist/event/manager.d.ts.map +1 -0
  124. package/dist/event/manager.interface.d.ts +134 -0
  125. package/dist/event/manager.interface.d.ts.map +1 -0
  126. package/dist/event/manager.interface.js +1 -0
  127. package/dist/event/manager.interface.js.map +7 -0
  128. package/dist/event/manager.js +134 -0
  129. package/dist/event/manager.js.map +7 -0
  130. package/dist/index.d.ts +18 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +23 -0
  133. package/dist/index.js.map +7 -0
  134. package/dist/logger/index.d.ts +2 -0
  135. package/dist/logger/index.d.ts.map +1 -0
  136. package/dist/logger/index.js +5 -0
  137. package/dist/logger/index.js.map +7 -0
  138. package/dist/logger/logger.d.ts +51 -0
  139. package/dist/logger/logger.d.ts.map +1 -0
  140. package/dist/logger/logger.interface.d.ts +2 -0
  141. package/dist/logger/logger.interface.d.ts.map +1 -0
  142. package/dist/logger/logger.interface.js +1 -0
  143. package/dist/logger/logger.interface.js.map +7 -0
  144. package/dist/logger/logger.js +168 -0
  145. package/dist/logger/logger.js.map +7 -0
  146. package/dist/performance/cache-performance.d.ts +58 -0
  147. package/dist/performance/cache-performance.d.ts.map +1 -0
  148. package/dist/performance/cache-performance.js +199 -0
  149. package/dist/performance/cache-performance.js.map +7 -0
  150. package/dist/performance/database-performance.d.ts +40 -0
  151. package/dist/performance/database-performance.d.ts.map +1 -0
  152. package/dist/performance/database-performance.js +132 -0
  153. package/dist/performance/database-performance.js.map +7 -0
  154. package/dist/performance/index.d.ts +7 -0
  155. package/dist/performance/index.d.ts.map +1 -0
  156. package/dist/performance/index.js +7 -0
  157. package/dist/performance/index.js.map +7 -0
  158. package/dist/performance/performance-monitor.d.ts +68 -0
  159. package/dist/performance/performance-monitor.d.ts.map +1 -0
  160. package/dist/performance/performance-monitor.js +270 -0
  161. package/dist/performance/performance-monitor.js.map +7 -0
  162. package/dist/performance/queue-performance.d.ts +46 -0
  163. package/dist/performance/queue-performance.d.ts.map +1 -0
  164. package/dist/performance/queue-performance.js +144 -0
  165. package/dist/performance/queue-performance.js.map +7 -0
  166. package/dist/performance/webserver-performance.d.ts +69 -0
  167. package/dist/performance/webserver-performance.d.ts.map +1 -0
  168. package/dist/performance/webserver-performance.js +164 -0
  169. package/dist/performance/webserver-performance.js.map +7 -0
  170. package/dist/performance/websocket-performance.d.ts +44 -0
  171. package/dist/performance/websocket-performance.d.ts.map +1 -0
  172. package/dist/performance/websocket-performance.js +139 -0
  173. package/dist/performance/websocket-performance.js.map +7 -0
  174. package/dist/queue/index.d.ts +6 -0
  175. package/dist/queue/index.d.ts.map +1 -0
  176. package/dist/queue/index.interface.d.ts +10 -0
  177. package/dist/queue/index.interface.d.ts.map +1 -0
  178. package/dist/queue/index.interface.js +1 -0
  179. package/dist/queue/index.interface.js.map +7 -0
  180. package/dist/queue/index.js +7 -0
  181. package/dist/queue/index.js.map +7 -0
  182. package/dist/queue/job.interface.d.ts +42 -0
  183. package/dist/queue/job.interface.d.ts.map +1 -0
  184. package/dist/queue/job.interface.js +1 -0
  185. package/dist/queue/job.interface.js.map +7 -0
  186. package/dist/queue/manager.d.ts +36 -0
  187. package/dist/queue/manager.d.ts.map +1 -0
  188. package/dist/queue/manager.interface.d.ts +18 -0
  189. package/dist/queue/manager.interface.d.ts.map +1 -0
  190. package/dist/queue/manager.interface.js +1 -0
  191. package/dist/queue/manager.interface.js.map +7 -0
  192. package/dist/queue/manager.js +244 -0
  193. package/dist/queue/manager.js.map +7 -0
  194. package/dist/queue/processor/base.d.ts +28 -0
  195. package/dist/queue/processor/base.d.ts.map +1 -0
  196. package/dist/queue/processor/base.js +46 -0
  197. package/dist/queue/processor/base.js.map +7 -0
  198. package/dist/queue/processor/processor.interface.d.ts +15 -0
  199. package/dist/queue/processor/processor.interface.d.ts.map +1 -0
  200. package/dist/queue/processor/processor.interface.js +1 -0
  201. package/dist/queue/processor/processor.interface.js.map +7 -0
  202. package/dist/queue/worker.d.ts +14 -0
  203. package/dist/queue/worker.d.ts.map +1 -0
  204. package/dist/queue/worker.interface.d.ts +13 -0
  205. package/dist/queue/worker.interface.d.ts.map +1 -0
  206. package/dist/queue/worker.interface.js +1 -0
  207. package/dist/queue/worker.interface.js.map +7 -0
  208. package/dist/queue/worker.js +72 -0
  209. package/dist/queue/worker.js.map +7 -0
  210. package/dist/redis/index.d.ts +3 -0
  211. package/dist/redis/index.d.ts.map +1 -0
  212. package/dist/redis/index.js +7 -0
  213. package/dist/redis/index.js.map +7 -0
  214. package/dist/redis/instance.d.ts +32 -0
  215. package/dist/redis/instance.d.ts.map +1 -0
  216. package/dist/redis/instance.interface.d.ts +9 -0
  217. package/dist/redis/instance.interface.d.ts.map +1 -0
  218. package/dist/redis/instance.interface.js +1 -0
  219. package/dist/redis/instance.interface.js.map +7 -0
  220. package/dist/redis/instance.js +92 -0
  221. package/dist/redis/instance.js.map +7 -0
  222. package/dist/redis/manager.d.ts +15 -0
  223. package/dist/redis/manager.d.ts.map +1 -0
  224. package/dist/redis/manager.interface.d.ts +8 -0
  225. package/dist/redis/manager.interface.d.ts.map +1 -0
  226. package/dist/redis/manager.interface.js +1 -0
  227. package/dist/redis/manager.interface.js.map +7 -0
  228. package/dist/redis/manager.js +65 -0
  229. package/dist/redis/manager.js.map +7 -0
  230. package/dist/services/aws/index.d.ts +2 -0
  231. package/dist/services/aws/index.d.ts.map +1 -0
  232. package/dist/services/aws/index.js +5 -0
  233. package/dist/services/aws/index.js.map +7 -0
  234. package/dist/services/aws/s3.d.ts +54 -0
  235. package/dist/services/aws/s3.d.ts.map +1 -0
  236. package/dist/services/aws/s3.interface.d.ts +14 -0
  237. package/dist/services/aws/s3.interface.d.ts.map +1 -0
  238. package/dist/services/aws/s3.interface.js +1 -0
  239. package/dist/services/aws/s3.interface.js.map +7 -0
  240. package/dist/services/aws/s3.js +236 -0
  241. package/dist/services/aws/s3.js.map +7 -0
  242. package/dist/services/index.d.ts +2 -0
  243. package/dist/services/index.d.ts.map +1 -0
  244. package/dist/services/index.js +2 -0
  245. package/dist/services/index.js.map +7 -0
  246. package/dist/util/file.d.ts +45 -0
  247. package/dist/util/file.d.ts.map +1 -0
  248. package/dist/util/file.js +105 -0
  249. package/dist/util/file.js.map +7 -0
  250. package/dist/util/helper.d.ts +37 -0
  251. package/dist/util/helper.d.ts.map +1 -0
  252. package/dist/util/helper.js +73 -0
  253. package/dist/util/helper.js.map +7 -0
  254. package/dist/util/image.d.ts +12 -0
  255. package/dist/util/image.d.ts.map +1 -0
  256. package/dist/util/image.js +35 -0
  257. package/dist/util/image.js.map +7 -0
  258. package/dist/util/index.d.ts +10 -0
  259. package/dist/util/index.d.ts.map +1 -0
  260. package/dist/util/index.js +21 -0
  261. package/dist/util/index.js.map +7 -0
  262. package/dist/util/loader.d.ts +19 -0
  263. package/dist/util/loader.d.ts.map +1 -0
  264. package/dist/util/loader.js +84 -0
  265. package/dist/util/loader.js.map +7 -0
  266. package/dist/util/num.d.ts +13 -0
  267. package/dist/util/num.d.ts.map +1 -0
  268. package/dist/util/num.js +16 -0
  269. package/dist/util/num.js.map +7 -0
  270. package/dist/util/os.d.ts +6 -0
  271. package/dist/util/os.d.ts.map +1 -0
  272. package/dist/util/os.js +32 -0
  273. package/dist/util/os.js.map +7 -0
  274. package/dist/util/str.d.ts +39 -0
  275. package/dist/util/str.d.ts.map +1 -0
  276. package/dist/util/str.js +34 -0
  277. package/dist/util/str.js.map +7 -0
  278. package/dist/util/time.d.ts +13 -0
  279. package/dist/util/time.d.ts.map +1 -0
  280. package/dist/util/time.interface.d.ts +12 -0
  281. package/dist/util/time.interface.d.ts.map +1 -0
  282. package/dist/util/time.interface.js +1 -0
  283. package/dist/util/time.interface.js.map +7 -0
  284. package/dist/util/time.js +90 -0
  285. package/dist/util/time.js.map +7 -0
  286. package/dist/util/url.d.ts +7 -0
  287. package/dist/util/url.d.ts.map +1 -0
  288. package/dist/util/url.js +12 -0
  289. package/dist/util/url.js.map +7 -0
  290. package/dist/webserver/controller/auth-middleware.d.ts +21 -0
  291. package/dist/webserver/controller/auth-middleware.d.ts.map +1 -0
  292. package/dist/webserver/controller/auth-middleware.js +33 -0
  293. package/dist/webserver/controller/auth-middleware.js.map +7 -0
  294. package/dist/webserver/controller/base.d.ts +39 -0
  295. package/dist/webserver/controller/base.d.ts.map +1 -0
  296. package/dist/webserver/controller/base.interface.d.ts +45 -0
  297. package/dist/webserver/controller/base.interface.d.ts.map +1 -0
  298. package/dist/webserver/controller/base.interface.js +1 -0
  299. package/dist/webserver/controller/base.interface.js.map +7 -0
  300. package/dist/webserver/controller/base.js +188 -0
  301. package/dist/webserver/controller/base.js.map +7 -0
  302. package/dist/webserver/controller/entity.d.ts +94 -0
  303. package/dist/webserver/controller/entity.d.ts.map +1 -0
  304. package/dist/webserver/controller/entity.js +361 -0
  305. package/dist/webserver/controller/entity.js.map +7 -0
  306. package/dist/webserver/controller/example-auth.d.ts +12 -0
  307. package/dist/webserver/controller/example-auth.d.ts.map +1 -0
  308. package/dist/webserver/controller/example-auth.js +53 -0
  309. package/dist/webserver/controller/example-auth.js.map +7 -0
  310. package/dist/webserver/controller/health.d.ts +8 -0
  311. package/dist/webserver/controller/health.d.ts.map +1 -0
  312. package/dist/webserver/controller/health.js +50 -0
  313. package/dist/webserver/controller/health.js.map +7 -0
  314. package/dist/webserver/index.d.ts +12 -0
  315. package/dist/webserver/index.d.ts.map +1 -0
  316. package/dist/webserver/index.js +19 -0
  317. package/dist/webserver/index.js.map +7 -0
  318. package/dist/webserver/util.d.ts +10 -0
  319. package/dist/webserver/util.d.ts.map +1 -0
  320. package/dist/webserver/util.js +63 -0
  321. package/dist/webserver/util.js.map +7 -0
  322. package/dist/webserver/webserver.d.ts +65 -0
  323. package/dist/webserver/webserver.d.ts.map +1 -0
  324. package/dist/webserver/webserver.interface.d.ts +118 -0
  325. package/dist/webserver/webserver.interface.d.ts.map +1 -0
  326. package/dist/webserver/webserver.interface.js +9 -0
  327. package/dist/webserver/webserver.interface.js.map +7 -0
  328. package/dist/webserver/webserver.js +347 -0
  329. package/dist/webserver/webserver.js.map +7 -0
  330. package/dist/websocket/controller/client/base.d.ts +12 -0
  331. package/dist/websocket/controller/client/base.d.ts.map +1 -0
  332. package/dist/websocket/controller/client/base.interface.d.ts +12 -0
  333. package/dist/websocket/controller/client/base.interface.d.ts.map +1 -0
  334. package/dist/websocket/controller/client/base.interface.js +1 -0
  335. package/dist/websocket/controller/client/base.interface.js.map +7 -0
  336. package/dist/websocket/controller/client/base.js +26 -0
  337. package/dist/websocket/controller/client/base.js.map +7 -0
  338. package/dist/websocket/controller/server/base.d.ts +13 -0
  339. package/dist/websocket/controller/server/base.d.ts.map +1 -0
  340. package/dist/websocket/controller/server/base.interface.d.ts +13 -0
  341. package/dist/websocket/controller/server/base.interface.d.ts.map +1 -0
  342. package/dist/websocket/controller/server/base.interface.js +1 -0
  343. package/dist/websocket/controller/server/base.interface.js.map +7 -0
  344. package/dist/websocket/controller/server/base.js +26 -0
  345. package/dist/websocket/controller/server/base.js.map +7 -0
  346. package/dist/websocket/controllers/client/system.d.ts +6 -0
  347. package/dist/websocket/controllers/client/system.d.ts.map +1 -0
  348. package/dist/websocket/controllers/client/system.js +14 -0
  349. package/dist/websocket/controllers/client/system.js.map +7 -0
  350. package/dist/websocket/controllers/server/system.d.ts +7 -0
  351. package/dist/websocket/controllers/server/system.d.ts.map +1 -0
  352. package/dist/websocket/controllers/server/system.js +87 -0
  353. package/dist/websocket/controllers/server/system.js.map +7 -0
  354. package/dist/websocket/index.d.ts +7 -0
  355. package/dist/websocket/index.d.ts.map +1 -0
  356. package/dist/websocket/index.js +11 -0
  357. package/dist/websocket/index.js.map +7 -0
  358. package/dist/websocket/routes/client/system.d.ts +3 -0
  359. package/dist/websocket/routes/client/system.d.ts.map +1 -0
  360. package/dist/websocket/routes/client/system.js +11 -0
  361. package/dist/websocket/routes/client/system.js.map +7 -0
  362. package/dist/websocket/routes/server/system.d.ts +3 -0
  363. package/dist/websocket/routes/server/system.d.ts.map +1 -0
  364. package/dist/websocket/routes/server/system.js +16 -0
  365. package/dist/websocket/routes/server/system.js.map +7 -0
  366. package/dist/websocket/utils.d.ts +9 -0
  367. package/dist/websocket/utils.d.ts.map +1 -0
  368. package/dist/websocket/utils.js +39 -0
  369. package/dist/websocket/utils.js.map +7 -0
  370. package/dist/websocket/websocket-base.d.ts +15 -0
  371. package/dist/websocket/websocket-base.d.ts.map +1 -0
  372. package/dist/websocket/websocket-base.js +104 -0
  373. package/dist/websocket/websocket-base.js.map +7 -0
  374. package/dist/websocket/websocket-client-manager.d.ts +53 -0
  375. package/dist/websocket/websocket-client-manager.d.ts.map +1 -0
  376. package/dist/websocket/websocket-client-manager.interface.d.ts +8 -0
  377. package/dist/websocket/websocket-client-manager.interface.d.ts.map +1 -0
  378. package/dist/websocket/websocket-client-manager.interface.js +1 -0
  379. package/dist/websocket/websocket-client-manager.interface.js.map +7 -0
  380. package/dist/websocket/websocket-client-manager.js +225 -0
  381. package/dist/websocket/websocket-client-manager.js.map +7 -0
  382. package/dist/websocket/websocket-client.d.ts +35 -0
  383. package/dist/websocket/websocket-client.d.ts.map +1 -0
  384. package/dist/websocket/websocket-client.interface.d.ts +14 -0
  385. package/dist/websocket/websocket-client.interface.d.ts.map +1 -0
  386. package/dist/websocket/websocket-client.interface.js +1 -0
  387. package/dist/websocket/websocket-client.interface.js.map +7 -0
  388. package/dist/websocket/websocket-client.js +158 -0
  389. package/dist/websocket/websocket-client.js.map +7 -0
  390. package/dist/websocket/websocket-room-manager.d.ts +32 -0
  391. package/dist/websocket/websocket-room-manager.d.ts.map +1 -0
  392. package/dist/websocket/websocket-room-manager.js +130 -0
  393. package/dist/websocket/websocket-room-manager.js.map +7 -0
  394. package/dist/websocket/websocket-server.d.ts +92 -0
  395. package/dist/websocket/websocket-server.d.ts.map +1 -0
  396. package/dist/websocket/websocket-server.interface.d.ts +16 -0
  397. package/dist/websocket/websocket-server.interface.d.ts.map +1 -0
  398. package/dist/websocket/websocket-server.interface.js +1 -0
  399. package/dist/websocket/websocket-server.interface.js.map +7 -0
  400. package/dist/websocket/websocket-server.js +686 -0
  401. package/dist/websocket/websocket-server.js.map +7 -0
  402. package/dist/websocket/websocket-service.d.ts +44 -0
  403. package/dist/websocket/websocket-service.d.ts.map +1 -0
  404. package/dist/websocket/websocket-service.js +99 -0
  405. package/dist/websocket/websocket-service.js.map +7 -0
  406. package/dist/websocket/websocket.interface.d.ts +119 -0
  407. package/dist/websocket/websocket.interface.d.ts.map +1 -0
  408. package/dist/websocket/websocket.interface.js +18 -0
  409. package/dist/websocket/websocket.interface.js.map +7 -0
  410. package/package.json +159 -0
  411. package/pxl.js +4 -0
package/README.md ADDED
@@ -0,0 +1,195 @@
1
+ # PXL Node.js Framework
2
+
3
+ A comprehensive Node.js framework for building modern applications with support for web servers, databases, queues, caching, and more.
4
+
5
+ ## Installation
6
+
7
+ Install the framework from NPM:
8
+
9
+ ```sh
10
+ npm install @scpxl/nodejs-framework
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```ts
16
+ import { WebApplication } from '@scpxl/nodejs-framework/application';
17
+
18
+ const app = new WebApplication({
19
+ webServer: {
20
+ port: 3000,
21
+ host: '0.0.0.0'
22
+ },
23
+ database: {
24
+ host: 'localhost',
25
+ port: 5432,
26
+ dbName: 'myapp',
27
+ user: 'user',
28
+ password: 'password'
29
+ }
30
+ });
31
+
32
+ await app.start();
33
+ ```
34
+
35
+ ## Features
36
+
37
+ - 🚀 **FastAPI-powered Web Server** with auto-routing
38
+ - 🗄️ **Database Integration** with MikroORM and PostgreSQL
39
+ - 📦 **Queue System** using BullMQ and Redis
40
+ - 🔄 **WebSocket Support** for real-time communication
41
+ - 🗄️ **Caching Layer** with Redis integration
42
+ - ☁️ **AWS S3 Integration** for file storage
43
+ - 🔐 **Authentication System** with JWT
44
+ - 📊 **Structured Logging** with Winston
45
+ - 🧪 **Built-in Testing Utils**
46
+ - ⚡ **Performance Monitoring**
47
+
48
+ ## Development (Framework Contributors)
49
+
50
+ ### Local Development
51
+
52
+ Clone this repository and switch to the project specific Node.js version:
53
+
54
+ ```sh
55
+ git clone https://github.com/PXLbros/pxl-nodejs-framework.git
56
+ cd pxl-nodejs-framework
57
+ nvm use
58
+ npm install
59
+ ```
60
+
61
+ ### Build
62
+
63
+ ```sh
64
+ npm run build
65
+ ```
66
+
67
+ ### Testing with Yalc (Local Development)
68
+
69
+ For local testing before publishing to NPM:
70
+
71
+ ```sh
72
+ # Build and publish locally
73
+ npm run build:local
74
+
75
+ # In your project
76
+ yalc add @pxl/nodejs-framework
77
+ ```
78
+
79
+ ## Development
80
+
81
+ ### Local Development
82
+
83
+ For local development with automatic publishing through **Yalc**:
84
+
85
+ ```sh
86
+ npm run dev
87
+ ```
88
+
89
+ For building locally with Yalc publishing:
90
+
91
+ ```sh
92
+ npm run build:local
93
+ ```
94
+
95
+ For building without Yalc (CI/production build):
96
+
97
+ ```sh
98
+ npm run build
99
+ ```
100
+
101
+ ## CI/CD Pipeline
102
+
103
+ This project uses GitHub Actions for continuous integration and deployment:
104
+
105
+ ### Build and Test (CI)
106
+
107
+ - Runs on all pull requests
108
+ - Installs dependencies, runs linting, builds the project, and runs tests
109
+
110
+ ### Build and Publish
111
+
112
+ - Runs on pushes to `main`/`master` branches and version tags
113
+ - Builds the project and publishes to npm
114
+ - Beta releases are published on pushes to main/master branches
115
+ - Stable releases are published when version tags are created
116
+
117
+ ### Setup for Publishing
118
+
119
+ To enable automatic publishing, configure the following repository secret:
120
+
121
+ - `NPM_TOKEN`: Your npm authentication token
122
+
123
+ > **Note**: The `dist/` folder is gitignored and automatically generated during the CI/CD process. Do not commit built files to the repository.
124
+
125
+ ## Releasing
126
+
127
+ Use the built-in release script to create new versions:
128
+
129
+ ### Quick Release Commands
130
+
131
+ ```sh
132
+ # Patch release (1.0.0 → 1.0.1)
133
+ npm run release -- --patch
134
+
135
+ # Minor release (1.0.0 → 1.1.0)
136
+ npm run release -- --minor
137
+
138
+ # Major release (1.0.0 → 2.0.0)
139
+ npm run release -- --major
140
+
141
+ # Specific version
142
+ npm run release -- --version 2.1.3
143
+ ```
144
+
145
+ ### Release Process
146
+
147
+ The release script will:
148
+
149
+ 1. Check that your working directory is clean
150
+ 2. Verify you're on the main/master branch
151
+ 3. Update the version in `package.json`
152
+ 4. Create a git commit and tag
153
+ 5. Push to origin, triggering GitHub Actions
154
+
155
+ ### Dry Run
156
+
157
+ Preview what the release script will do without making changes:
158
+
159
+ ```sh
160
+ npm run release -- --patch --dry-run
161
+ ```
162
+
163
+ ### Help
164
+
165
+ For more information about the release script:
166
+
167
+ ```sh
168
+ npm run release -- --help
169
+ ```
170
+
171
+ ## Documentation
172
+
173
+ The API documentation is automatically generated using TypeDoc and deployed via GitHub Actions to GitHub Pages.
174
+
175
+ ### Local Documentation Development
176
+
177
+ To generate and view documentation locally:
178
+
179
+ ```sh
180
+ npm run docs
181
+ ```
182
+
183
+ This will generate the documentation in the `docs/` folder. You can then open `docs/index.html` in your browser.
184
+
185
+ ### Automated Documentation Deployment
186
+
187
+ Documentation is automatically built and deployed to GitHub Pages when:
188
+
189
+ - Code is pushed to the `main` or `master` branch
190
+ - Pull requests are opened against `main` or `master` branch
191
+ - Manual workflow dispatch is triggered
192
+
193
+ The documentation will be available at: `https://[your-username].github.io/[repository-name]/`
194
+
195
+ > **Note**: The `docs/` folder is gitignored and should not be committed to the repository as it's automatically generated by the CI/CD pipeline.
@@ -0,0 +1,11 @@
1
+ import { type AxiosRequestConfig, type AxiosResponse } from 'axios';
2
+ export default class ApiRequester {
3
+ private axiosInstance;
4
+ constructor(baseURL: string, headers?: Record<string, string>);
5
+ get<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T> | undefined>;
6
+ post<T, R>(url: string, data: T, config?: AxiosRequestConfig): Promise<AxiosResponse<R> | undefined>;
7
+ put<T, R>(url: string, data: T, config?: AxiosRequestConfig): Promise<AxiosResponse<R> | undefined>;
8
+ delete<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T> | undefined>;
9
+ private handleError;
10
+ }
11
+ //# sourceMappingURL=api-requester.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-requester.d.ts","sourceRoot":"","sources":["../../src/api-requester/api-requester.ts"],"names":[],"mappings":"AAAA,OAAc,EAAsB,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE/F,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOhD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASvF,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASpG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASnG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IASvG,OAAO,CAAC,WAAW;CAUpB"}
@@ -0,0 +1,59 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import axios from "axios";
4
+ class ApiRequester {
5
+ static {
6
+ __name(this, "ApiRequester");
7
+ }
8
+ axiosInstance;
9
+ constructor(baseURL, headers) {
10
+ this.axiosInstance = axios.create({
11
+ baseURL,
12
+ headers
13
+ });
14
+ }
15
+ async get(url, config) {
16
+ try {
17
+ const response = await this.axiosInstance.get(url, config);
18
+ return response;
19
+ } catch (error) {
20
+ this.handleError(error);
21
+ }
22
+ }
23
+ async post(url, data, config) {
24
+ try {
25
+ const response = await this.axiosInstance.post(url, data, config);
26
+ return response;
27
+ } catch (error) {
28
+ this.handleError(error);
29
+ }
30
+ }
31
+ async put(url, data, config) {
32
+ try {
33
+ const response = await this.axiosInstance.put(url, data, config);
34
+ return response;
35
+ } catch (error) {
36
+ this.handleError(error);
37
+ }
38
+ }
39
+ async delete(url, config) {
40
+ try {
41
+ const response = await this.axiosInstance.delete(url, config);
42
+ return response;
43
+ } catch (error) {
44
+ this.handleError(error);
45
+ }
46
+ }
47
+ handleError(error) {
48
+ if (axios.isAxiosError(error)) {
49
+ console.error("Axios error:", error.response?.data);
50
+ } else {
51
+ console.error("Unexpected error:", error);
52
+ }
53
+ throw error;
54
+ }
55
+ }
56
+ export {
57
+ ApiRequester as default
58
+ };
59
+ //# sourceMappingURL=api-requester.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/api-requester/api-requester.ts"],
4
+ "sourcesContent": ["import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios';\n\nexport default class ApiRequester {\n private axiosInstance: AxiosInstance;\n\n constructor(baseURL: string, headers?: Record<string, string>) {\n this.axiosInstance = axios.create({\n baseURL,\n headers,\n });\n }\n\n public async get<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T> | undefined> {\n try {\n const response = await this.axiosInstance.get<T>(url, config);\n return response;\n } catch (error) {\n this.handleError(error);\n }\n }\n\n public async post<T, R>(url: string, data: T, config?: AxiosRequestConfig): Promise<AxiosResponse<R> | undefined> {\n try {\n const response = await this.axiosInstance.post<R>(url, data, config);\n return response;\n } catch (error) {\n this.handleError(error);\n }\n }\n\n public async put<T, R>(url: string, data: T, config?: AxiosRequestConfig): Promise<AxiosResponse<R> | undefined> {\n try {\n const response = await this.axiosInstance.put<R>(url, data, config);\n return response;\n } catch (error) {\n this.handleError(error);\n }\n }\n\n public async delete<T>(url: string, config?: AxiosRequestConfig): Promise<AxiosResponse<T> | undefined> {\n try {\n const response = await this.axiosInstance.delete<T>(url, config);\n return response;\n } catch (error) {\n this.handleError(error);\n }\n }\n\n private handleError(error: any): void {\n if (axios.isAxiosError(error)) {\n // Handle Axios-specific errors here\n console.error('Axios error:', error.response?.data);\n } else {\n // Handle non-Axios errors here\n console.error('Unexpected error:', error);\n }\n throw error;\n }\n}\n"],
5
+ "mappings": ";;AAAA,OAAO,WAAgF;AAEvF,MAAO,aAA2B;AAAA,EAFlC,OAEkC;AAAA;AAAA;AAAA,EACxB;AAAA,EAER,YAAY,SAAiB,SAAkC;AAC7D,SAAK,gBAAgB,MAAM,OAAO;AAAA,MAChC;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,IAAO,KAAa,QAAoE;AACnG,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,cAAc,IAAO,KAAK,MAAM;AAC5D,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,MAAa,KAAW,KAAa,MAAS,QAAoE;AAChH,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,cAAc,KAAQ,KAAK,MAAM,MAAM;AACnE,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,MAAa,IAAU,KAAa,MAAS,QAAoE;AAC/G,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,cAAc,IAAO,KAAK,MAAM,MAAM;AAClE,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEA,MAAa,OAAU,KAAa,QAAoE;AACtG,QAAI;AACF,YAAM,WAAW,MAAM,KAAK,cAAc,OAAU,KAAK,MAAM;AAC/D,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,YAAY,KAAK;AAAA,IACxB;AAAA,EACF;AAAA,EAEQ,YAAY,OAAkB;AACpC,QAAI,MAAM,aAAa,KAAK,GAAG;AAE7B,cAAQ,MAAM,gBAAgB,MAAM,UAAU,IAAI;AAAA,IACpD,OAAO;AAEL,cAAQ,MAAM,qBAAqB,KAAK;AAAA,IAC1C;AACA,UAAM;AAAA,EACR;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export { default as ApiRequester } from './api-requester.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api-requester/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { default as default2 } from "./api-requester.js";
2
+ export {
3
+ default2 as ApiRequester
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/api-requester/index.ts"],
4
+ "sourcesContent": ["export { default as ApiRequester } from './api-requester.js';\n"],
5
+ "mappings": "AAAA,SAAoB,WAAXA,gBAA+B;",
6
+ "names": ["default"]
7
+ }
@@ -0,0 +1,110 @@
1
+ import { type DatabaseInstance, DatabaseManager } from '../database/index.js';
2
+ import QueueManager from '../queue/manager.js';
3
+ import RedisManager from '../redis/manager.js';
4
+ import type { ApplicationConfig } from './base-application.interface.js';
5
+ import type RedisInstance from '../redis/instance.js';
6
+ import CacheManager from '../cache/manager.js';
7
+ import EventManager from '../event/manager.js';
8
+ import { PerformanceMonitor } from '../performance/performance-monitor.js';
9
+ export type { ApplicationConfig } from './base-application.interface.js';
10
+ export default abstract class BaseApplication {
11
+ /** Unique instance ID */
12
+ uniqueInstanceId: string;
13
+ /** Shutdown signals */
14
+ protected shutdownSignals: NodeJS.Signals[];
15
+ /** Application start time */
16
+ protected startTime: [number, number];
17
+ /** Whether application is stopping */
18
+ protected isStopping: boolean;
19
+ /** Shutdown timeout (30 seconds) */
20
+ protected shutdownTimeout: number;
21
+ /** Cache for application version to avoid repeated imports */
22
+ private static applicationVersionCache;
23
+ /** Cluster worker ID */
24
+ protected workerId: number | null;
25
+ /** Application config */
26
+ protected config: ApplicationConfig;
27
+ /** Application version */
28
+ protected applicationVersion?: string;
29
+ /** Redis manager */
30
+ redisManager: RedisManager;
31
+ /** Cache manager */
32
+ cacheManager: CacheManager;
33
+ /** Database manager */
34
+ databaseManager?: DatabaseManager;
35
+ /** Queue manager */
36
+ queueManager?: QueueManager;
37
+ /** Event manager */
38
+ eventManager?: EventManager;
39
+ /** Performance monitor */
40
+ performanceMonitor?: PerformanceMonitor;
41
+ get Name(): string;
42
+ /**
43
+ * Application constructor
44
+ */
45
+ constructor(config: ApplicationConfig);
46
+ /**
47
+ * Get application version
48
+ */
49
+ getApplicationVersion(): Promise<string>;
50
+ /**
51
+ * Start application
52
+ */
53
+ start(): Promise<void>;
54
+ /**
55
+ * Before application start
56
+ */
57
+ private onBeforeStart;
58
+ /**
59
+ * Application started event
60
+ */
61
+ protected onStarted({ startupTime: _startupTime }: {
62
+ startupTime: number;
63
+ }): void;
64
+ /**
65
+ * Application stopped event
66
+ */
67
+ protected onStopped({ runtime: _runtime }: {
68
+ runtime: number;
69
+ }): void;
70
+ /**
71
+ * Before application stop event
72
+ */
73
+ private onBeforeStop;
74
+ /**
75
+ * Start application instance
76
+ */
77
+ private startInstance;
78
+ protected abstract startHandler({ redisInstance, databaseInstance, queueManager, eventManager, }: {
79
+ redisInstance: RedisInstance;
80
+ databaseInstance?: DatabaseInstance | null;
81
+ queueManager: QueueManager;
82
+ eventManager?: EventManager | null;
83
+ }): Promise<void>;
84
+ protected abstract stopCallback(): void;
85
+ /**
86
+ * Set up global error handlers
87
+ */
88
+ /**
89
+ * Initialize performance monitor
90
+ */
91
+ private initializePerformanceMonitor;
92
+ private setupGlobalErrorHandlers;
93
+ /**
94
+ * Initiate graceful shutdown
95
+ */
96
+ private initiateGracefulShutdown;
97
+ /**
98
+ * Handle shutdown
99
+ */
100
+ handleShutdown({ onStopped }: {
101
+ onStopped?: ({ runtime }: {
102
+ runtime: number;
103
+ }) => void;
104
+ }): void;
105
+ /**
106
+ * Stop application
107
+ */
108
+ private stop;
109
+ }
110
+ //# sourceMappingURL=base-application.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-application.d.ts","sourceRoot":"","sources":["../../src/application/base-application.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import type { ClusterManagerConfig } from '../cluster/cluster-manager.interface.js';
2
+ import type DatabaseInstance from '../database/instance.js';
3
+ import type { EventDefinition } from '../event/manager.interface.js';
4
+ import type { PerformanceMonitorOptions, PerformanceThresholds } from '../performance/performance-monitor.js';
5
+ import type { QueueItem } from '../queue/index.interface.js';
6
+ import type { WebServerDebugOptions, WebServerLogConfig, WebServerOptions, WebServerRoute } from '../webserver/webserver.interface.js';
7
+ import type WebSocketServer from '../websocket/websocket-server.js';
8
+ import type { WebSocketOptions, WebSocketRoute, WebSocketType } from '../websocket/websocket.interface.js';
9
+ export type OnStartedEvent = ({ startupTime }: {
10
+ startupTime: number;
11
+ }) => void;
12
+ export type OnStoppedEvent = ({ runtime }: {
13
+ runtime: number;
14
+ }) => void;
15
+ export interface ApplicationStartInstanceOptions {
16
+ /** On started event */
17
+ onStarted?: OnStartedEvent;
18
+ }
19
+ export interface ApplicationStopInstanceOptions {
20
+ /** On stopped event */
21
+ onStopped?: OnStoppedEvent;
22
+ }
23
+ export interface ApplicationRedisConfig {
24
+ /** Redis host */
25
+ host: string;
26
+ /** Redis port */
27
+ port: number;
28
+ /** Redis password */
29
+ password?: string;
30
+ }
31
+ export interface ApplicationCacheConfig {
32
+ }
33
+ export interface ApplicationDatabaseConfig {
34
+ /** Whether to enable database */
35
+ enabled: boolean;
36
+ /** Database host */
37
+ host: string;
38
+ /** Database port */
39
+ port: number;
40
+ /** Database username */
41
+ username: string;
42
+ /** Database password */
43
+ password: string;
44
+ /** Database name */
45
+ databaseName: string;
46
+ /** Entities directory */
47
+ entitiesDirectory: string;
48
+ }
49
+ export interface ApplicationQueueConfig {
50
+ /** Initial queues */
51
+ queues: QueueItem[];
52
+ /** Queue processors directory */
53
+ processorsDirectory: string;
54
+ log?: {
55
+ jobRegistered?: boolean;
56
+ jobAdded?: boolean;
57
+ jobCompleted?: boolean;
58
+ queueRegistered?: boolean;
59
+ queuesRegistered?: boolean;
60
+ queueWaiting?: boolean;
61
+ };
62
+ }
63
+ export interface ApplicationEventConfig {
64
+ /** Whether to enable event system */
65
+ enabled: boolean;
66
+ /** Event controllers directory */
67
+ controllersDirectory: string;
68
+ /** Event definitions */
69
+ events: EventDefinition[];
70
+ }
71
+ export interface ApplicationEmailConfig {
72
+ }
73
+ export interface ApplicationAuthConfig {
74
+ /** JWT secret key for token verification */
75
+ jwtSecretKey: string;
76
+ }
77
+ export interface ApplicationWebSocketConfig extends WebSocketOptions {
78
+ /** WebSocket type */
79
+ type: WebSocketType;
80
+ /** Whether to enable WebSocket */
81
+ enabled: boolean;
82
+ /** WebSocket routes */
83
+ routes: WebSocketRoute[];
84
+ /** WebSocket server message handler */
85
+ serverMessageHandler?: (options: {
86
+ ws: WebSocket;
87
+ clientId: string;
88
+ parsedMessage: any;
89
+ }) => void;
90
+ /** WebSocket subscriber event handler */
91
+ subscriberEventHandler?: (options: {
92
+ channel: string;
93
+ message: any;
94
+ webSocketServer: WebSocketServer;
95
+ databaseInstance: DatabaseInstance;
96
+ }) => void;
97
+ }
98
+ export interface ApplicationWebServerConfig extends WebServerOptions {
99
+ /** Whether to enable web server */
100
+ enabled: boolean;
101
+ /** Web server routes */
102
+ routes: WebServerRoute[];
103
+ log?: WebServerLogConfig;
104
+ debug: WebServerDebugOptions;
105
+ }
106
+ export interface ApplicationCommandsConfig {
107
+ commandsDirectory: string;
108
+ }
109
+ export interface ApplicationLogConfig {
110
+ startUp?: boolean;
111
+ shutdown?: boolean;
112
+ }
113
+ export interface ApplicationPerformanceConfig extends PerformanceMonitorOptions {
114
+ /** Whether to enable performance monitoring */
115
+ enabled?: boolean;
116
+ /** Performance thresholds for different operations */
117
+ thresholds?: Partial<PerformanceThresholds>;
118
+ /** Whether to monitor HTTP requests */
119
+ monitorHttpRequests?: boolean;
120
+ /** Whether to monitor database operations */
121
+ monitorDatabaseOperations?: boolean;
122
+ /** Whether to monitor WebSocket operations */
123
+ monitorWebSocketOperations?: boolean;
124
+ /** Whether to monitor queue operations */
125
+ monitorQueueOperations?: boolean;
126
+ /** Whether to monitor cache operations */
127
+ monitorCacheOperations?: boolean;
128
+ /** Performance report generation interval in milliseconds */
129
+ reportInterval?: number;
130
+ /** Performance report format: 'simple' for one-line, 'detailed' for multi-line */
131
+ reportFormat?: 'simple' | 'detailed';
132
+ }
133
+ export interface ApplicationConfig {
134
+ /** Application name */
135
+ name: string;
136
+ /** Application instance ID */
137
+ instanceId: string;
138
+ /** Root directory */
139
+ rootDirectory: string;
140
+ /** Cluster configuration */
141
+ cluster?: ClusterManagerConfig;
142
+ /** Redis configuration */
143
+ redis: ApplicationRedisConfig;
144
+ /** Cache configuration */
145
+ cache?: ApplicationCacheConfig;
146
+ /** Database configuration */
147
+ database?: ApplicationDatabaseConfig;
148
+ /** Queue configuration */
149
+ queue: ApplicationQueueConfig;
150
+ /** Event configuration */
151
+ event?: ApplicationEventConfig;
152
+ /** Log configuration */
153
+ log?: ApplicationLogConfig;
154
+ /** Performance monitoring configuration */
155
+ performanceMonitoring?: ApplicationPerformanceConfig;
156
+ /** Email configuration */
157
+ email?: ApplicationEmailConfig;
158
+ /** Authentication configuration */
159
+ auth?: ApplicationAuthConfig;
160
+ }
161
+ //# sourceMappingURL=base-application.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-application.interface.d.ts","sourceRoot":"","sources":["../../src/application/base-application.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=base-application.interface.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }