@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
@@ -0,0 +1,270 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { PerformanceObserver, performance } from "perf_hooks";
4
+ import { Logger } from "../logger/index.js";
5
+ class PerformanceMonitor {
6
+ static {
7
+ __name(this, "PerformanceMonitor");
8
+ }
9
+ static instance;
10
+ observer;
11
+ metrics = [];
12
+ thresholds = {
13
+ http: 1e3,
14
+ // 1 second
15
+ database: 500,
16
+ // 500ms
17
+ cache: 100,
18
+ // 100ms
19
+ queue: 2e3,
20
+ // 2 seconds
21
+ websocket: 200,
22
+ // 200ms
23
+ custom: 1e3
24
+ // 1 second
25
+ };
26
+ maxMetricsHistory = 1e4;
27
+ isEnabled = true;
28
+ logSlowOperations = true;
29
+ logAllOperations = false;
30
+ constructor(options = {}) {
31
+ this.isEnabled = options.enabled ?? true;
32
+ this.maxMetricsHistory = options.maxMetricsHistory ?? 1e4;
33
+ this.logSlowOperations = options.logSlowOperations ?? true;
34
+ this.logAllOperations = options.logAllOperations ?? false;
35
+ if (options.thresholds) {
36
+ this.thresholds = { ...this.thresholds, ...options.thresholds };
37
+ }
38
+ if (this.isEnabled) {
39
+ this.initializeObserver();
40
+ }
41
+ }
42
+ static getInstance(options) {
43
+ if (!PerformanceMonitor.instance) {
44
+ PerformanceMonitor.instance = new PerformanceMonitor(options);
45
+ }
46
+ return PerformanceMonitor.instance;
47
+ }
48
+ static initialize(options = {}) {
49
+ PerformanceMonitor.instance = new PerformanceMonitor(options);
50
+ return PerformanceMonitor.instance;
51
+ }
52
+ initializeObserver() {
53
+ this.observer = new PerformanceObserver((items) => {
54
+ items.getEntries().forEach((entry) => {
55
+ if (entry.name.startsWith("pxl-performance:")) {
56
+ this.handlePerformanceEntry(entry);
57
+ }
58
+ });
59
+ });
60
+ this.observer.observe({ entryTypes: ["measure"] });
61
+ }
62
+ handlePerformanceEntry(entry) {
63
+ if (!this.isEnabled) return;
64
+ const [, type, name] = entry.name.split(":");
65
+ const metricType = type;
66
+ const metric = {
67
+ name,
68
+ duration: entry.duration,
69
+ timestamp: Date.now(),
70
+ type: metricType,
71
+ metadata: entry.detail
72
+ };
73
+ this.metrics.push(metric);
74
+ if (this.metrics.length > this.maxMetricsHistory) {
75
+ this.metrics = this.metrics.slice(-this.maxMetricsHistory);
76
+ }
77
+ const threshold = this.thresholds[metricType];
78
+ if (this.logSlowOperations && entry.duration > threshold) {
79
+ Logger.warn({
80
+ message: `Performance threshold exceeded`,
81
+ meta: {
82
+ operation: entry.name,
83
+ duration: `${entry.duration.toFixed(2)}ms`,
84
+ threshold: `${threshold}ms`,
85
+ type: metricType
86
+ }
87
+ });
88
+ }
89
+ if (this.logAllOperations) {
90
+ Logger.debug({
91
+ message: `Performance metric`,
92
+ meta: {
93
+ operation: entry.name,
94
+ duration: `${entry.duration.toFixed(2)}ms`,
95
+ type: metricType
96
+ }
97
+ });
98
+ }
99
+ }
100
+ startMeasure(name, type = "custom") {
101
+ if (!this.isEnabled) return "";
102
+ const measureName = `pxl-performance:${type}:${name}`;
103
+ const startMark = `${measureName}-start`;
104
+ performance.mark(startMark);
105
+ return startMark;
106
+ }
107
+ endMeasure(startMark, _metadata) {
108
+ if (!this.isEnabled || !startMark) return;
109
+ const endMark = `${startMark.replace("-start", "")}-end`;
110
+ const measureName = startMark.replace("-start", "");
111
+ performance.mark(endMark);
112
+ try {
113
+ performance.measure(measureName, startMark, endMark);
114
+ performance.clearMarks(startMark);
115
+ performance.clearMarks(endMark);
116
+ } catch (error) {
117
+ Logger.error({
118
+ error: error instanceof Error ? error : new Error(String(error)),
119
+ message: "Error measuring performance"
120
+ });
121
+ }
122
+ }
123
+ async measureAsync({
124
+ name,
125
+ type,
126
+ fn,
127
+ metadata
128
+ }) {
129
+ if (!this.isEnabled) {
130
+ return fn();
131
+ }
132
+ const startMark = this.startMeasure(name, type);
133
+ try {
134
+ const result = await fn();
135
+ this.endMeasure(startMark, metadata);
136
+ return result;
137
+ } catch (error) {
138
+ this.endMeasure(startMark, { ...metadata, error: error instanceof Error ? error.message : String(error) });
139
+ throw error;
140
+ }
141
+ }
142
+ measureSync(name, type, fn, metadata) {
143
+ if (!this.isEnabled) {
144
+ return fn();
145
+ }
146
+ const startMark = this.startMeasure(name, type);
147
+ try {
148
+ const result = fn();
149
+ this.endMeasure(startMark, metadata);
150
+ return result;
151
+ } catch (error) {
152
+ this.endMeasure(startMark, { ...metadata, error: error instanceof Error ? error.message : String(error) });
153
+ throw error;
154
+ }
155
+ }
156
+ getMetrics(type, limit) {
157
+ let filteredMetrics = this.metrics;
158
+ if (type) {
159
+ filteredMetrics = filteredMetrics.filter((m) => m.type === type);
160
+ }
161
+ if (limit) {
162
+ filteredMetrics = filteredMetrics.slice(-limit);
163
+ }
164
+ return filteredMetrics;
165
+ }
166
+ getAverageMetrics(type) {
167
+ const metrics = this.getMetrics(type);
168
+ const groups = metrics.reduce(
169
+ (acc, metric) => {
170
+ if (!acc[metric.name]) {
171
+ acc[metric.name] = [];
172
+ }
173
+ acc[metric.name].push(metric.duration);
174
+ return acc;
175
+ },
176
+ {}
177
+ );
178
+ return Object.entries(groups).reduce(
179
+ (acc, [name, durations]) => {
180
+ acc[name] = durations.reduce((sum, duration) => sum + duration, 0) / durations.length;
181
+ return acc;
182
+ },
183
+ {}
184
+ );
185
+ }
186
+ getMemoryUsage() {
187
+ return process.memoryUsage();
188
+ }
189
+ getDetailedMemoryUsage() {
190
+ const usage = process.memoryUsage();
191
+ return {
192
+ rss: Math.round(usage.rss / 1024 / 1024),
193
+ // MB
194
+ heapTotal: Math.round(usage.heapTotal / 1024 / 1024),
195
+ // MB
196
+ heapUsed: Math.round(usage.heapUsed / 1024 / 1024),
197
+ // MB
198
+ external: Math.round(usage.external / 1024 / 1024),
199
+ // MB
200
+ arrayBuffers: Math.round(usage.arrayBuffers / 1024 / 1024)
201
+ // MB
202
+ };
203
+ }
204
+ getCpuUsage() {
205
+ return process.cpuUsage();
206
+ }
207
+ setThresholds(thresholds) {
208
+ this.thresholds = { ...this.thresholds, ...thresholds };
209
+ }
210
+ setEnabled(enabled) {
211
+ this.isEnabled = enabled;
212
+ if (enabled && !this.observer) {
213
+ this.initializeObserver();
214
+ } else if (!enabled && this.observer) {
215
+ this.observer.disconnect();
216
+ this.observer = void 0;
217
+ }
218
+ }
219
+ clearMetrics() {
220
+ this.metrics = [];
221
+ }
222
+ generateReport() {
223
+ return {
224
+ summary: {
225
+ totalMetrics: this.metrics.length,
226
+ averages: this.getAverageMetrics(),
227
+ thresholds: this.thresholds,
228
+ enabled: this.isEnabled
229
+ },
230
+ metrics: this.getMetrics(void 0, 100),
231
+ // Last 100 metrics
232
+ memory: this.getDetailedMemoryUsage(),
233
+ cpu: this.getCpuUsage()
234
+ };
235
+ }
236
+ generateFormattedReport(format = "detailed") {
237
+ const report = this.generateReport();
238
+ if (format === "simple") {
239
+ const memoryUsed = report.memory.heapUsed;
240
+ const cpuPercent = Math.round((report.cpu.user + report.cpu.system) / 1e6);
241
+ const avgDurations = Object.values(report.summary.averages);
242
+ const avgMetric = avgDurations.length > 0 ? Math.round(avgDurations.reduce((sum, val) => sum + val, 0) / avgDurations.length) : 0;
243
+ return `Performance Report (summary: ${report.summary.totalMetrics} ops, avg: ${avgMetric}ms | metrics: ${report.metrics.length} | memory: ${memoryUsed}mb | cpu: ${cpuPercent}%)`;
244
+ }
245
+ const lines = [
246
+ "Performance Report:",
247
+ `Summary: ${report.summary.totalMetrics} operations tracked, enabled: ${report.summary.enabled}`,
248
+ `Metrics: ${report.metrics.length} recent operations recorded`,
249
+ `Memory: RSS: ${report.memory.rss}mb, Heap: ${report.memory.heapUsed}/${report.memory.heapTotal}mb`,
250
+ `CPU: User: ${Math.round(report.cpu.user / 1e3)}ms, System: ${Math.round(report.cpu.system / 1e3)}ms`
251
+ ];
252
+ if (Object.keys(report.summary.averages).length > 0) {
253
+ lines.push(
254
+ `Averages: ${Object.entries(report.summary.averages).map(([name, avg]) => `${name}: ${Math.round(avg)}ms`).join(", ")}`
255
+ );
256
+ }
257
+ return lines.join("\n");
258
+ }
259
+ destroy() {
260
+ if (this.observer) {
261
+ this.observer.disconnect();
262
+ this.observer = void 0;
263
+ }
264
+ this.metrics = [];
265
+ }
266
+ }
267
+ export {
268
+ PerformanceMonitor
269
+ };
270
+ //# sourceMappingURL=performance-monitor.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/performance/performance-monitor.ts"],
4
+ "sourcesContent": ["import { PerformanceObserver, performance } from 'perf_hooks';\nimport { Logger } from '../logger/index.js';\n\nexport interface PerformanceMetrics {\n name: string;\n duration: number;\n timestamp: number;\n type: 'http' | 'database' | 'cache' | 'queue' | 'websocket' | 'custom';\n metadata?: Record<string, any>;\n}\n\nexport interface PerformanceThresholds {\n http: number;\n database: number;\n cache: number;\n queue: number;\n websocket: number;\n custom: number;\n}\n\nexport interface PerformanceMonitorOptions {\n enabled?: boolean;\n maxMetricsHistory?: number;\n thresholds?: Partial<PerformanceThresholds>;\n logSlowOperations?: boolean;\n logAllOperations?: boolean;\n}\n\nexport class PerformanceMonitor {\n private static instance: PerformanceMonitor;\n private observer: PerformanceObserver | undefined;\n private metrics: PerformanceMetrics[] = [];\n private thresholds: PerformanceThresholds = {\n http: 1000, // 1 second\n database: 500, // 500ms\n cache: 100, // 100ms\n queue: 2000, // 2 seconds\n websocket: 200, // 200ms\n custom: 1000, // 1 second\n };\n private maxMetricsHistory = 10000;\n private isEnabled = true;\n private logSlowOperations = true;\n private logAllOperations = false;\n\n private constructor(options: PerformanceMonitorOptions = {}) {\n this.isEnabled = options.enabled ?? true;\n this.maxMetricsHistory = options.maxMetricsHistory ?? 10000;\n this.logSlowOperations = options.logSlowOperations ?? true;\n this.logAllOperations = options.logAllOperations ?? false;\n\n if (options.thresholds) {\n this.thresholds = { ...this.thresholds, ...options.thresholds };\n }\n\n if (this.isEnabled) {\n this.initializeObserver();\n }\n }\n\n public static getInstance(options?: PerformanceMonitorOptions): PerformanceMonitor {\n if (!PerformanceMonitor.instance) {\n PerformanceMonitor.instance = new PerformanceMonitor(options);\n }\n return PerformanceMonitor.instance;\n }\n\n public static initialize(options: PerformanceMonitorOptions = {}): PerformanceMonitor {\n PerformanceMonitor.instance = new PerformanceMonitor(options);\n return PerformanceMonitor.instance;\n }\n\n private initializeObserver(): void {\n this.observer = new PerformanceObserver(items => {\n items.getEntries().forEach(entry => {\n if (entry.name.startsWith('pxl-performance:')) {\n this.handlePerformanceEntry(entry);\n }\n });\n });\n\n this.observer.observe({ entryTypes: ['measure'] });\n }\n\n private handlePerformanceEntry(entry: any): void {\n if (!this.isEnabled) return;\n\n const [, type, name] = entry.name.split(':');\n const metricType = type as PerformanceMetrics['type'];\n\n const metric: PerformanceMetrics = {\n name,\n duration: entry.duration,\n timestamp: Date.now(),\n type: metricType,\n metadata: entry.detail,\n };\n\n this.metrics.push(metric);\n\n // Keep only the most recent metrics\n if (this.metrics.length > this.maxMetricsHistory) {\n this.metrics = this.metrics.slice(-this.maxMetricsHistory);\n }\n\n // Check thresholds and log warnings\n const threshold = this.thresholds[metricType];\n if (this.logSlowOperations && entry.duration > threshold) {\n Logger.warn({\n message: `Performance threshold exceeded`,\n meta: {\n operation: entry.name,\n duration: `${entry.duration.toFixed(2)}ms`,\n threshold: `${threshold}ms`,\n type: metricType,\n },\n });\n }\n\n // Log all operations if enabled\n if (this.logAllOperations) {\n Logger.debug({\n message: `Performance metric`,\n meta: {\n operation: entry.name,\n duration: `${entry.duration.toFixed(2)}ms`,\n type: metricType,\n },\n });\n }\n }\n\n public startMeasure(name: string, type: PerformanceMetrics['type'] = 'custom'): string {\n if (!this.isEnabled) return '';\n\n const measureName = `pxl-performance:${type}:${name}`;\n const startMark = `${measureName}-start`;\n\n performance.mark(startMark);\n return startMark;\n }\n\n public endMeasure(startMark: string, _metadata?: Record<string, any>): void {\n if (!this.isEnabled || !startMark) return;\n\n const endMark = `${startMark.replace('-start', '')}-end`;\n const measureName = startMark.replace('-start', '');\n\n performance.mark(endMark);\n\n try {\n performance.measure(measureName, startMark, endMark);\n\n // Clean up marks\n performance.clearMarks(startMark);\n performance.clearMarks(endMark);\n } catch (error) {\n Logger.error({\n error: error instanceof Error ? error : new Error(String(error)),\n message: 'Error measuring performance',\n });\n }\n }\n\n public async measureAsync<T>({\n name,\n type,\n fn,\n metadata,\n }: {\n name: string;\n type: PerformanceMetrics['type'];\n fn: () => Promise<T>;\n metadata?: Record<string, any>;\n }): Promise<T> {\n if (!this.isEnabled) {\n return fn();\n }\n\n const startMark = this.startMeasure(name, type);\n\n try {\n const result = await fn();\n this.endMeasure(startMark, metadata);\n return result;\n } catch (error) {\n this.endMeasure(startMark, { ...metadata, error: error instanceof Error ? error.message : String(error) });\n throw error;\n }\n }\n\n public measureSync<T>(\n name: string,\n type: PerformanceMetrics['type'],\n fn: () => T,\n metadata?: Record<string, any>,\n ): T {\n if (!this.isEnabled) {\n return fn();\n }\n\n const startMark = this.startMeasure(name, type);\n\n try {\n const result = fn();\n this.endMeasure(startMark, metadata);\n return result;\n } catch (error) {\n this.endMeasure(startMark, { ...metadata, error: error instanceof Error ? error.message : String(error) });\n throw error;\n }\n }\n\n public getMetrics(type?: PerformanceMetrics['type'], limit?: number): PerformanceMetrics[] {\n let filteredMetrics = this.metrics;\n\n if (type) {\n filteredMetrics = filteredMetrics.filter(m => m.type === type);\n }\n\n if (limit) {\n filteredMetrics = filteredMetrics.slice(-limit);\n }\n\n return filteredMetrics;\n }\n\n public getAverageMetrics(type?: PerformanceMetrics['type']): Record<string, number> {\n const metrics = this.getMetrics(type);\n const groups = metrics.reduce(\n (acc, metric) => {\n if (!acc[metric.name]) {\n acc[metric.name] = [];\n }\n acc[metric.name].push(metric.duration);\n return acc;\n },\n {} as Record<string, number[]>,\n );\n\n return Object.entries(groups).reduce(\n (acc, [name, durations]) => {\n acc[name] = durations.reduce((sum, duration) => sum + duration, 0) / durations.length;\n return acc;\n },\n {} as Record<string, number>,\n );\n }\n\n public getMemoryUsage(): NodeJS.MemoryUsage {\n return process.memoryUsage();\n }\n\n public getDetailedMemoryUsage(): Record<string, number> {\n const usage = process.memoryUsage();\n return {\n rss: Math.round(usage.rss / 1024 / 1024), // MB\n heapTotal: Math.round(usage.heapTotal / 1024 / 1024), // MB\n heapUsed: Math.round(usage.heapUsed / 1024 / 1024), // MB\n external: Math.round(usage.external / 1024 / 1024), // MB\n arrayBuffers: Math.round(usage.arrayBuffers / 1024 / 1024), // MB\n };\n }\n\n public getCpuUsage(): NodeJS.CpuUsage {\n return process.cpuUsage();\n }\n\n public setThresholds(thresholds: Partial<PerformanceThresholds>): void {\n this.thresholds = { ...this.thresholds, ...thresholds };\n }\n\n public setEnabled(enabled: boolean): void {\n this.isEnabled = enabled;\n\n if (enabled && !this.observer) {\n this.initializeObserver();\n } else if (!enabled && this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n }\n\n public clearMetrics(): void {\n this.metrics = [];\n }\n\n public generateReport(): {\n summary: {\n totalMetrics: number;\n averages: Record<string, number>;\n thresholds: PerformanceThresholds;\n enabled: boolean;\n };\n metrics: PerformanceMetrics[];\n memory: Record<string, number>;\n cpu: NodeJS.CpuUsage;\n } {\n return {\n summary: {\n totalMetrics: this.metrics.length,\n averages: this.getAverageMetrics(),\n thresholds: this.thresholds,\n enabled: this.isEnabled,\n },\n metrics: this.getMetrics(undefined, 100), // Last 100 metrics\n memory: this.getDetailedMemoryUsage(),\n cpu: this.getCpuUsage(),\n };\n }\n\n public generateFormattedReport(format: 'simple' | 'detailed' = 'detailed'): string {\n const report = this.generateReport();\n\n if (format === 'simple') {\n const memoryUsed = report.memory.heapUsed;\n const cpuPercent = Math.round((report.cpu.user + report.cpu.system) / 1000000); // Convert microseconds to rough percentage\n const avgDurations = Object.values(report.summary.averages);\n const avgMetric =\n avgDurations.length > 0 ? Math.round(avgDurations.reduce((sum, val) => sum + val, 0) / avgDurations.length) : 0;\n\n return `Performance Report (summary: ${report.summary.totalMetrics} ops, avg: ${avgMetric}ms | metrics: ${report.metrics.length} | memory: ${memoryUsed}mb | cpu: ${cpuPercent}%)`;\n }\n const lines = [\n 'Performance Report:',\n `Summary: ${report.summary.totalMetrics} operations tracked, enabled: ${report.summary.enabled}`,\n `Metrics: ${report.metrics.length} recent operations recorded`,\n `Memory: RSS: ${report.memory.rss}mb, Heap: ${report.memory.heapUsed}/${report.memory.heapTotal}mb`,\n `CPU: User: ${Math.round(report.cpu.user / 1000)}ms, System: ${Math.round(report.cpu.system / 1000)}ms`,\n ];\n\n if (Object.keys(report.summary.averages).length > 0) {\n lines.push(\n `Averages: ${Object.entries(report.summary.averages)\n .map(([name, avg]) => `${name}: ${Math.round(avg)}ms`)\n .join(', ')}`,\n );\n }\n\n return lines.join('\\n');\n }\n\n public destroy(): void {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = undefined;\n }\n this.metrics = [];\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,46 @@
1
+ import { PerformanceMonitor } from './performance-monitor.js';
2
+ export interface QueueOperationMetadata {
3
+ operation: string;
4
+ queueName?: string;
5
+ jobName?: string;
6
+ jobId?: string;
7
+ priority?: number;
8
+ delay?: number;
9
+ attempts?: number;
10
+ error?: string;
11
+ argumentCount?: number;
12
+ }
13
+ export declare class QueuePerformanceWrapper {
14
+ private static performanceMonitor;
15
+ static setPerformanceMonitor(monitor: PerformanceMonitor): void;
16
+ private static getPerformanceMonitor;
17
+ /**
18
+ * Monitor job processing
19
+ */
20
+ static monitorJobProcessing<T>(queueName: string, jobName: string, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
21
+ /**
22
+ * Monitor job addition to queue
23
+ */
24
+ static monitorJobAddition<T>(queueName: string, jobName: string, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
25
+ /**
26
+ * Monitor queue operations
27
+ */
28
+ static monitorQueueOperation<T>(queueName: string, operationName: string, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
29
+ /**
30
+ * Monitor processor execution
31
+ */
32
+ static monitorProcessor<T>(processorName: string, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
33
+ /**
34
+ * Monitor queue worker operations
35
+ */
36
+ static monitorWorker<T>(workerName: string, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
37
+ /**
38
+ * Monitor job retry operations
39
+ */
40
+ static monitorJobRetry<T>(queueName: string, jobName: string, attempt: number, operation: () => Promise<T>, metadata?: Partial<QueueOperationMetadata>): Promise<T>;
41
+ }
42
+ /**
43
+ * Decorator for monitoring queue processor methods
44
+ */
45
+ export declare function MonitorQueueProcessor(processorName?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
46
+ //# sourceMappingURL=queue-performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-performance.d.ts","sourceRoot":"","sources":["../../src/performance/queue-performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAqB;WAExC,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAItE,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAOpC;;OAEG;WACiB,oBAAoB,CAAC,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;IAkBb;;OAEG;WACiB,kBAAkB,CAAC,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;IAkBb;;OAEG;WACiB,qBAAqB,CAAC,CAAC,EACzC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;IAiBb;;OAEG;WACiB,gBAAgB,CAAC,CAAC,EACpC,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;IAiBb;;OAEG;WACiB,aAAa,CAAC,CAAC,EACjC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;IAgBb;;OAEG;WACiB,eAAe,CAAC,CAAC,EACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC;CAkBd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,IACzC,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAelF"}
@@ -0,0 +1,144 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+ import { PerformanceMonitor } from "./performance-monitor.js";
4
+ class QueuePerformanceWrapper {
5
+ static {
6
+ __name(this, "QueuePerformanceWrapper");
7
+ }
8
+ static performanceMonitor;
9
+ static setPerformanceMonitor(monitor) {
10
+ QueuePerformanceWrapper.performanceMonitor = monitor;
11
+ }
12
+ static getPerformanceMonitor() {
13
+ if (!QueuePerformanceWrapper.performanceMonitor) {
14
+ QueuePerformanceWrapper.performanceMonitor = PerformanceMonitor.getInstance();
15
+ }
16
+ return QueuePerformanceWrapper.performanceMonitor;
17
+ }
18
+ /**
19
+ * Monitor job processing
20
+ */
21
+ static async monitorJobProcessing(queueName, jobName, operation, metadata) {
22
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
23
+ const operationMetadata = {
24
+ operation: "job_processing",
25
+ queueName,
26
+ jobName,
27
+ ...metadata
28
+ };
29
+ return monitor.measureAsync({
30
+ name: `${queueName}.${jobName}`,
31
+ type: "queue",
32
+ fn: operation,
33
+ metadata: operationMetadata
34
+ });
35
+ }
36
+ /**
37
+ * Monitor job addition to queue
38
+ */
39
+ static async monitorJobAddition(queueName, jobName, operation, metadata) {
40
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
41
+ const operationMetadata = {
42
+ operation: "job_addition",
43
+ queueName,
44
+ jobName,
45
+ ...metadata
46
+ };
47
+ return monitor.measureAsync({
48
+ name: `add.${queueName}.${jobName}`,
49
+ type: "queue",
50
+ fn: operation,
51
+ metadata: operationMetadata
52
+ });
53
+ }
54
+ /**
55
+ * Monitor queue operations
56
+ */
57
+ static async monitorQueueOperation(queueName, operationName, operation, metadata) {
58
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
59
+ const operationMetadata = {
60
+ operation: operationName,
61
+ queueName,
62
+ ...metadata
63
+ };
64
+ return monitor.measureAsync({
65
+ name: `queue.${queueName}.${operationName}`,
66
+ type: "queue",
67
+ fn: operation,
68
+ metadata: operationMetadata
69
+ });
70
+ }
71
+ /**
72
+ * Monitor processor execution
73
+ */
74
+ static async monitorProcessor(processorName, operation, metadata) {
75
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
76
+ const operationMetadata = {
77
+ operation: "processor_execution",
78
+ jobName: processorName,
79
+ ...metadata
80
+ };
81
+ return monitor.measureAsync({
82
+ name: `processor.${processorName}`,
83
+ type: "queue",
84
+ fn: operation,
85
+ metadata: operationMetadata
86
+ });
87
+ }
88
+ /**
89
+ * Monitor queue worker operations
90
+ */
91
+ static async monitorWorker(workerName, operation, metadata) {
92
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
93
+ const operationMetadata = {
94
+ operation: "worker_execution",
95
+ ...metadata
96
+ };
97
+ return monitor.measureAsync({
98
+ name: `worker.${workerName}`,
99
+ type: "queue",
100
+ fn: operation,
101
+ metadata: operationMetadata
102
+ });
103
+ }
104
+ /**
105
+ * Monitor job retry operations
106
+ */
107
+ static async monitorJobRetry(queueName, jobName, attempt, operation, metadata) {
108
+ const monitor = QueuePerformanceWrapper.getPerformanceMonitor();
109
+ const operationMetadata = {
110
+ operation: "job_retry",
111
+ queueName,
112
+ jobName,
113
+ attempts: attempt,
114
+ ...metadata
115
+ };
116
+ return monitor.measureAsync({
117
+ name: `retry.${queueName}.${jobName}`,
118
+ type: "queue",
119
+ fn: operation,
120
+ metadata: operationMetadata
121
+ });
122
+ }
123
+ }
124
+ function MonitorQueueProcessor(processorName) {
125
+ return function(target, propertyKey, descriptor) {
126
+ const originalMethod = descriptor.value;
127
+ const className = target.constructor.name;
128
+ const operation = processorName ?? propertyKey;
129
+ descriptor.value = async function(...args) {
130
+ return QueuePerformanceWrapper.monitorProcessor(
131
+ `${className}.${operation}`,
132
+ () => originalMethod.apply(this, args),
133
+ { argumentCount: args.length }
134
+ );
135
+ };
136
+ return descriptor;
137
+ };
138
+ }
139
+ __name(MonitorQueueProcessor, "MonitorQueueProcessor");
140
+ export {
141
+ MonitorQueueProcessor,
142
+ QueuePerformanceWrapper
143
+ };
144
+ //# sourceMappingURL=queue-performance.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/performance/queue-performance.ts"],
4
+ "sourcesContent": ["import { PerformanceMonitor } from './performance-monitor.js';\n\nexport interface QueueOperationMetadata {\n operation: string;\n queueName?: string;\n jobName?: string;\n jobId?: string;\n priority?: number;\n delay?: number;\n attempts?: number;\n error?: string;\n argumentCount?: number;\n}\n\nexport class QueuePerformanceWrapper {\n private static performanceMonitor: PerformanceMonitor;\n\n public static setPerformanceMonitor(monitor: PerformanceMonitor): void {\n QueuePerformanceWrapper.performanceMonitor = monitor;\n }\n\n private static getPerformanceMonitor(): PerformanceMonitor {\n if (!QueuePerformanceWrapper.performanceMonitor) {\n QueuePerformanceWrapper.performanceMonitor = PerformanceMonitor.getInstance();\n }\n return QueuePerformanceWrapper.performanceMonitor;\n }\n\n /**\n * Monitor job processing\n */\n public static async monitorJobProcessing<T>(\n queueName: string,\n jobName: string,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: 'job_processing',\n queueName,\n jobName,\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `${queueName}.${jobName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n\n /**\n * Monitor job addition to queue\n */\n public static async monitorJobAddition<T>(\n queueName: string,\n jobName: string,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: 'job_addition',\n queueName,\n jobName,\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `add.${queueName}.${jobName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n\n /**\n * Monitor queue operations\n */\n public static async monitorQueueOperation<T>(\n queueName: string,\n operationName: string,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: operationName,\n queueName,\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `queue.${queueName}.${operationName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n\n /**\n * Monitor processor execution\n */\n public static async monitorProcessor<T>(\n processorName: string,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: 'processor_execution',\n jobName: processorName,\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `processor.${processorName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n\n /**\n * Monitor queue worker operations\n */\n public static async monitorWorker<T>(\n workerName: string,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: 'worker_execution',\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `worker.${workerName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n\n /**\n * Monitor job retry operations\n */\n public static async monitorJobRetry<T>(\n queueName: string,\n jobName: string,\n attempt: number,\n operation: () => Promise<T>,\n metadata?: Partial<QueueOperationMetadata>,\n ): Promise<T> {\n const monitor = QueuePerformanceWrapper.getPerformanceMonitor();\n\n const operationMetadata: QueueOperationMetadata = {\n operation: 'job_retry',\n queueName,\n jobName,\n attempts: attempt,\n ...metadata,\n };\n\n return monitor.measureAsync({\n name: `retry.${queueName}.${jobName}`,\n type: 'queue',\n fn: operation,\n metadata: operationMetadata,\n });\n }\n}\n\n/**\n * Decorator for monitoring queue processor methods\n */\nexport function MonitorQueueProcessor(processorName?: string) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n const className = target.constructor.name;\n const operation = processorName ?? propertyKey;\n\n descriptor.value = async function (...args: any[]) {\n return QueuePerformanceWrapper.monitorProcessor(\n `${className}.${operation}`,\n () => originalMethod.apply(this, args),\n { argumentCount: args.length },\n );\n };\n\n return descriptor;\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,69 @@
1
+ import type { FastifyReply, FastifyRequest } from 'fastify';
2
+ import { PerformanceMonitor } from './performance-monitor.js';
3
+ export interface WebServerPerformanceOptions {
4
+ logSlowRequests?: boolean;
5
+ slowRequestThreshold?: number;
6
+ includeHeaders?: boolean;
7
+ includeUserAgent?: boolean;
8
+ skipRoutes?: string[];
9
+ skipMethods?: string[];
10
+ }
11
+ export interface HttpRequestMetadata {
12
+ method: string;
13
+ url: string;
14
+ ip?: string;
15
+ userAgent?: string;
16
+ headers?: Record<string, string | string[] | undefined>;
17
+ statusCode?: number;
18
+ contentLength?: number;
19
+ error?: string;
20
+ errorName?: string;
21
+ argumentCount?: number;
22
+ }
23
+ export declare class WebServerPerformanceWrapper {
24
+ private static performanceMonitor;
25
+ static setPerformanceMonitor(monitor: PerformanceMonitor): void;
26
+ private static getPerformanceMonitor;
27
+ /**
28
+ * Create performance middleware for Fastify
29
+ */
30
+ static createPerformanceMiddleware(options?: WebServerPerformanceOptions): (request: FastifyRequest, _reply: FastifyReply) => Promise<void>;
31
+ /**
32
+ * Create Fastify hooks for performance monitoring
33
+ */
34
+ static createPerformanceHooks(_options?: WebServerPerformanceOptions): {
35
+ onSend: (request: FastifyRequest, reply: FastifyReply, payload: any) => Promise<any>;
36
+ onError: (request: FastifyRequest, reply: FastifyReply, error: Error) => Promise<void>;
37
+ };
38
+ /**
39
+ * Monitor controller method execution
40
+ */
41
+ static monitorControllerMethod<T>({ controllerName, methodName, operation, metadata, }: {
42
+ controllerName: string;
43
+ methodName: string;
44
+ operation: () => Promise<T>;
45
+ metadata?: Record<string, any>;
46
+ }): Promise<T>;
47
+ /**
48
+ * Monitor route handler execution
49
+ */
50
+ static monitorRouteHandler<T>({ route, method, operation, metadata, }: {
51
+ route: string;
52
+ method: string;
53
+ operation: () => Promise<T>;
54
+ metadata?: Record<string, any>;
55
+ }): Promise<T>;
56
+ /**
57
+ * Monitor middleware execution
58
+ */
59
+ static monitorMiddleware<T>({ middlewareName, operation, metadata, }: {
60
+ middlewareName: string;
61
+ operation: () => Promise<T>;
62
+ metadata?: Record<string, any>;
63
+ }): Promise<T>;
64
+ }
65
+ /**
66
+ * Decorator for monitoring controller methods
67
+ */
68
+ export declare function MonitorControllerMethod(methodName?: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
69
+ //# sourceMappingURL=webserver-performance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webserver-performance.d.ts","sourceRoot":"","sources":["../../src/performance/webserver-performance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,2BAA2B;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,2BAA2B;IACtC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAqB;WAExC,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAItE,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAOpC;;OAEG;WACW,2BAA2B,CAAC,OAAO,GAAE,2BAAgC,IAanE,SAAS,cAAc,EAAE,QAAQ,YAAY;IA0B7D;;OAEG;WACW,sBAAsB,CAAC,QAAQ,GAAE,2BAAgC;0BAInD,cAAc,SAAS,YAAY,WAAW,GAAG;2BAgBhD,cAAc,SAAS,YAAY,SAAS,KAAK;;IAkB9E;;OAEG;WACiB,uBAAuB,CAAC,CAAC,EAAE,EAC7C,cAAc,EACd,UAAU,EACV,SAAS,EACT,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,CAAC,CAAC;IAed;;OAEG;WACiB,mBAAmB,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,GACT,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,CAAC,CAAC;IAWd;;OAEG;WACiB,iBAAiB,CAAC,CAAC,EAAE,EACvC,cAAc,EACd,SAAS,EACT,QAAQ,GACT,EAAE;QACD,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,CAAC,CAAC;CAaf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,IACxC,QAAQ,GAAG,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAgBlF"}