@scpxl/nodejs-framework 1.0.22 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/README.md +199 -9
  2. package/dist/api-requester/api-requester.d.ts +32 -0
  3. package/dist/api-requester/api-requester.d.ts.map +1 -0
  4. package/dist/api-requester/index.d.ts +3 -0
  5. package/dist/api-requester/index.d.ts.map +1 -0
  6. package/dist/application/base-application.d.ts +106 -0
  7. package/dist/application/base-application.d.ts.map +1 -0
  8. package/dist/application/base-application.interface.d.ts +162 -0
  9. package/dist/application/base-application.interface.d.ts.map +1 -0
  10. package/dist/application/base-application.js +3 -0
  11. package/dist/application/base-application.js.map +2 -2
  12. package/dist/application/command-application.d.ts +18 -0
  13. package/dist/application/command-application.d.ts.map +1 -0
  14. package/dist/application/command-application.interface.d.ts +26 -0
  15. package/dist/application/command-application.interface.d.ts.map +1 -0
  16. package/dist/application/index.d.ts +5 -0
  17. package/dist/application/index.d.ts.map +1 -0
  18. package/dist/application/web-application.d.ts +43 -0
  19. package/dist/application/web-application.d.ts.map +1 -0
  20. package/dist/application/web-application.interface.d.ts +21 -0
  21. package/dist/application/web-application.interface.d.ts.map +1 -0
  22. package/dist/application/web-application.js +1 -0
  23. package/dist/application/web-application.js.map +2 -2
  24. package/dist/auth/index.d.ts +2 -0
  25. package/dist/auth/index.d.ts.map +1 -0
  26. package/dist/auth/jwt.d.ts +25 -0
  27. package/dist/auth/jwt.d.ts.map +1 -0
  28. package/dist/cache/index.d.ts +2 -0
  29. package/dist/cache/index.d.ts.map +1 -0
  30. package/dist/cache/manager.d.ts +107 -0
  31. package/dist/cache/manager.d.ts.map +1 -0
  32. package/dist/cli/index.d.ts +2 -0
  33. package/dist/cli/index.d.ts.map +1 -0
  34. package/dist/cli/index.js +5655 -0
  35. package/dist/cli/index.js.map +7 -0
  36. package/dist/cluster/cluster-manager.d.ts +15 -0
  37. package/dist/cluster/cluster-manager.d.ts.map +1 -0
  38. package/dist/cluster/cluster-manager.interface.d.ts +23 -0
  39. package/dist/cluster/cluster-manager.interface.d.ts.map +1 -0
  40. package/dist/cluster/index.d.ts +2 -0
  41. package/dist/cluster/index.d.ts.map +1 -0
  42. package/dist/command/command-manager.d.ts +19 -0
  43. package/dist/command/command-manager.d.ts.map +1 -0
  44. package/dist/command/command.d.ts +27 -0
  45. package/dist/command/command.d.ts.map +1 -0
  46. package/dist/command/command.interface.d.ts +11 -0
  47. package/dist/command/command.interface.d.ts.map +1 -0
  48. package/dist/command/index.d.ts +3 -0
  49. package/dist/command/index.d.ts.map +1 -0
  50. package/dist/config/env.d.ts +11 -0
  51. package/dist/config/env.d.ts.map +1 -0
  52. package/dist/config/index.d.ts +3 -0
  53. package/dist/config/index.d.ts.map +1 -0
  54. package/dist/config/schema.d.ts +432 -0
  55. package/dist/config/schema.d.ts.map +1 -0
  56. package/dist/database/dynamic-entity-form-decorators.d.ts +31 -0
  57. package/dist/database/dynamic-entity-form-decorators.d.ts.map +1 -0
  58. package/dist/database/dynamic-entity.d.ts +15 -0
  59. package/dist/database/dynamic-entity.d.ts.map +1 -0
  60. package/dist/database/index.d.ts +5 -0
  61. package/dist/database/index.d.ts.map +1 -0
  62. package/dist/database/instance.d.ts +36 -0
  63. package/dist/database/instance.d.ts.map +1 -0
  64. package/dist/database/instance.interface.d.ts +5 -0
  65. package/dist/database/instance.interface.d.ts.map +1 -0
  66. package/dist/database/manager.d.ts +27 -0
  67. package/dist/database/manager.d.ts.map +1 -0
  68. package/dist/database/manager.interface.d.ts +18 -0
  69. package/dist/database/manager.interface.d.ts.map +1 -0
  70. package/dist/error/error-reporter.d.ts +96 -0
  71. package/dist/error/error-reporter.d.ts.map +1 -0
  72. package/dist/error/error.interface.d.ts +126 -0
  73. package/dist/error/error.interface.d.ts.map +1 -0
  74. package/dist/error/framework-errors.d.ts +113 -0
  75. package/dist/error/framework-errors.d.ts.map +1 -0
  76. package/dist/error/index.d.ts +6 -0
  77. package/dist/error/index.d.ts.map +1 -0
  78. package/dist/event/controller/base.d.ts +23 -0
  79. package/dist/event/controller/base.d.ts.map +1 -0
  80. package/dist/event/controller/base.interface.d.ts +11 -0
  81. package/dist/event/controller/base.interface.d.ts.map +1 -0
  82. package/dist/event/index.d.ts +5 -0
  83. package/dist/event/index.d.ts.map +1 -0
  84. package/dist/event/manager.d.ts +21 -0
  85. package/dist/event/manager.d.ts.map +1 -0
  86. package/dist/event/manager.interface.d.ts +137 -0
  87. package/dist/event/manager.interface.d.ts.map +1 -0
  88. package/dist/index.d.ts +22 -0
  89. package/dist/index.d.ts.map +1 -0
  90. package/dist/lifecycle/exit.d.ts +11 -0
  91. package/dist/lifecycle/exit.d.ts.map +1 -0
  92. package/dist/lifecycle/index.d.ts +7 -0
  93. package/dist/lifecycle/index.d.ts.map +1 -0
  94. package/dist/lifecycle/lifecycle-manager.d.ts +66 -0
  95. package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -0
  96. package/dist/lifecycle/lifecycle-manager.js +6 -11
  97. package/dist/lifecycle/lifecycle-manager.js.map +2 -2
  98. package/dist/lifecycle/shutdown-controller.d.ts +15 -0
  99. package/dist/lifecycle/shutdown-controller.d.ts.map +1 -0
  100. package/dist/lifecycle/types.d.ts +28 -0
  101. package/dist/lifecycle/types.d.ts.map +1 -0
  102. package/dist/logger/index.d.ts +2 -0
  103. package/dist/logger/index.d.ts.map +1 -0
  104. package/dist/logger/logger.d.ts +59 -0
  105. package/dist/logger/logger.d.ts.map +1 -0
  106. package/dist/logger/logger.interface.d.ts +2 -0
  107. package/dist/logger/logger.interface.d.ts.map +1 -0
  108. package/dist/logger/logger.js +8 -1
  109. package/dist/logger/logger.js.map +2 -2
  110. package/dist/performance/cache-performance.d.ts +64 -0
  111. package/dist/performance/cache-performance.d.ts.map +1 -0
  112. package/dist/performance/database-performance.d.ts +40 -0
  113. package/dist/performance/database-performance.d.ts.map +1 -0
  114. package/dist/performance/index.d.ts +8 -0
  115. package/dist/performance/index.d.ts.map +1 -0
  116. package/dist/performance/performance-monitor.d.ts +68 -0
  117. package/dist/performance/performance-monitor.d.ts.map +1 -0
  118. package/dist/performance/performance-monitor.plugin.d.ts +24 -0
  119. package/dist/performance/performance-monitor.plugin.d.ts.map +1 -0
  120. package/dist/performance/queue-performance.d.ts +46 -0
  121. package/dist/performance/queue-performance.d.ts.map +1 -0
  122. package/dist/performance/webserver-performance.d.ts +69 -0
  123. package/dist/performance/webserver-performance.d.ts.map +1 -0
  124. package/dist/performance/websocket-performance.d.ts +44 -0
  125. package/dist/performance/websocket-performance.d.ts.map +1 -0
  126. package/dist/queue/index.d.ts +6 -0
  127. package/dist/queue/index.d.ts.map +1 -0
  128. package/dist/queue/index.interface.d.ts +10 -0
  129. package/dist/queue/index.interface.d.ts.map +1 -0
  130. package/dist/queue/job.interface.d.ts +43 -0
  131. package/dist/queue/job.interface.d.ts.map +1 -0
  132. package/dist/queue/manager.d.ts +44 -0
  133. package/dist/queue/manager.d.ts.map +1 -0
  134. package/dist/queue/manager.interface.d.ts +18 -0
  135. package/dist/queue/manager.interface.d.ts.map +1 -0
  136. package/dist/queue/processor/base.d.ts +29 -0
  137. package/dist/queue/processor/base.d.ts.map +1 -0
  138. package/dist/queue/processor/processor.interface.d.ts +16 -0
  139. package/dist/queue/processor/processor.interface.d.ts.map +1 -0
  140. package/dist/queue/worker.d.ts +14 -0
  141. package/dist/queue/worker.d.ts.map +1 -0
  142. package/dist/queue/worker.interface.d.ts +13 -0
  143. package/dist/queue/worker.interface.d.ts.map +1 -0
  144. package/dist/redis/index.d.ts +3 -0
  145. package/dist/redis/index.d.ts.map +1 -0
  146. package/dist/redis/instance.d.ts +32 -0
  147. package/dist/redis/instance.d.ts.map +1 -0
  148. package/dist/redis/instance.interface.d.ts +9 -0
  149. package/dist/redis/instance.interface.d.ts.map +1 -0
  150. package/dist/redis/manager.d.ts +15 -0
  151. package/dist/redis/manager.d.ts.map +1 -0
  152. package/dist/redis/manager.interface.d.ts +8 -0
  153. package/dist/redis/manager.interface.d.ts.map +1 -0
  154. package/dist/redis/manager.js +13 -14
  155. package/dist/redis/manager.js.map +2 -2
  156. package/dist/request-context/index.d.ts +3 -0
  157. package/dist/request-context/index.d.ts.map +1 -0
  158. package/dist/request-context/request-context.d.ts +108 -0
  159. package/dist/request-context/request-context.d.ts.map +1 -0
  160. package/dist/request-context/request-context.interface.d.ts +46 -0
  161. package/dist/request-context/request-context.interface.d.ts.map +1 -0
  162. package/dist/services/aws/index.d.ts +2 -0
  163. package/dist/services/aws/index.d.ts.map +1 -0
  164. package/dist/services/aws/s3.d.ts +54 -0
  165. package/dist/services/aws/s3.d.ts.map +1 -0
  166. package/dist/services/aws/s3.interface.d.ts +14 -0
  167. package/dist/services/aws/s3.interface.d.ts.map +1 -0
  168. package/dist/services/index.d.ts +2 -0
  169. package/dist/services/index.d.ts.map +1 -0
  170. package/dist/util/file.d.ts +58 -0
  171. package/dist/util/file.d.ts.map +1 -0
  172. package/dist/util/helper.d.ts +51 -0
  173. package/dist/util/helper.d.ts.map +1 -0
  174. package/dist/util/helper.js +72 -10
  175. package/dist/util/helper.js.map +2 -2
  176. package/dist/util/image.d.ts +12 -0
  177. package/dist/util/image.d.ts.map +1 -0
  178. package/dist/util/index.d.ts +11 -0
  179. package/dist/util/index.d.ts.map +1 -0
  180. package/dist/util/loader.d.ts +21 -0
  181. package/dist/util/loader.d.ts.map +1 -0
  182. package/dist/util/loader.js +5 -2
  183. package/dist/util/loader.js.map +2 -2
  184. package/dist/util/num.d.ts +13 -0
  185. package/dist/util/num.d.ts.map +1 -0
  186. package/dist/util/os.d.ts +6 -0
  187. package/dist/util/os.d.ts.map +1 -0
  188. package/dist/util/str.d.ts +39 -0
  189. package/dist/util/str.d.ts.map +1 -0
  190. package/dist/util/time.d.ts +19 -0
  191. package/dist/util/time.d.ts.map +1 -0
  192. package/dist/util/time.interface.d.ts +12 -0
  193. package/dist/util/time.interface.d.ts.map +1 -0
  194. package/dist/util/timing.d.ts +36 -0
  195. package/dist/util/timing.d.ts.map +1 -0
  196. package/dist/util/timing.interface.d.ts +47 -0
  197. package/dist/util/timing.interface.d.ts.map +1 -0
  198. package/dist/util/url.d.ts +7 -0
  199. package/dist/util/url.d.ts.map +1 -0
  200. package/dist/webserver/controller/auth-middleware.d.ts +21 -0
  201. package/dist/webserver/controller/auth-middleware.d.ts.map +1 -0
  202. package/dist/webserver/controller/base.d.ts +41 -0
  203. package/dist/webserver/controller/base.d.ts.map +1 -0
  204. package/dist/webserver/controller/base.interface.d.ts +50 -0
  205. package/dist/webserver/controller/base.interface.d.ts.map +1 -0
  206. package/dist/webserver/controller/entity.d.ts +94 -0
  207. package/dist/webserver/controller/entity.d.ts.map +1 -0
  208. package/dist/webserver/controller/example-auth.d.ts +12 -0
  209. package/dist/webserver/controller/example-auth.d.ts.map +1 -0
  210. package/dist/webserver/controller/health.d.ts +15 -0
  211. package/dist/webserver/controller/health.d.ts.map +1 -0
  212. package/dist/webserver/define-action.d.ts +26 -0
  213. package/dist/webserver/define-action.d.ts.map +1 -0
  214. package/dist/webserver/define-action.js +16 -0
  215. package/dist/webserver/define-action.js.map +7 -0
  216. package/dist/webserver/define-route.d.ts +53 -0
  217. package/dist/webserver/define-route.d.ts.map +1 -0
  218. package/dist/webserver/define-route.js +11 -6
  219. package/dist/webserver/define-route.js.map +2 -2
  220. package/dist/webserver/index.d.ts +14 -0
  221. package/dist/webserver/index.d.ts.map +1 -0
  222. package/dist/webserver/index.js +2 -0
  223. package/dist/webserver/index.js.map +2 -2
  224. package/dist/webserver/util.d.ts +10 -0
  225. package/dist/webserver/util.d.ts.map +1 -0
  226. package/dist/webserver/util.js +5 -2
  227. package/dist/webserver/util.js.map +2 -2
  228. package/dist/webserver/webserver.d.ts +93 -0
  229. package/dist/webserver/webserver.d.ts.map +1 -0
  230. package/dist/webserver/webserver.interface.d.ts +181 -0
  231. package/dist/webserver/webserver.interface.d.ts.map +1 -0
  232. package/dist/webserver/webserver.interface.js.map +1 -1
  233. package/dist/webserver/webserver.js +28 -31
  234. package/dist/webserver/webserver.js.map +2 -2
  235. package/dist/websocket/controller/client/base.d.ts +12 -0
  236. package/dist/websocket/controller/client/base.d.ts.map +1 -0
  237. package/dist/websocket/controller/client/base.interface.d.ts +12 -0
  238. package/dist/websocket/controller/client/base.interface.d.ts.map +1 -0
  239. package/dist/websocket/controller/server/base.d.ts +13 -0
  240. package/dist/websocket/controller/server/base.d.ts.map +1 -0
  241. package/dist/websocket/controller/server/base.interface.d.ts +13 -0
  242. package/dist/websocket/controller/server/base.interface.d.ts.map +1 -0
  243. package/dist/websocket/controllers/client/system.d.ts +6 -0
  244. package/dist/websocket/controllers/client/system.d.ts.map +1 -0
  245. package/dist/websocket/controllers/server/system.d.ts +7 -0
  246. package/dist/websocket/controllers/server/system.d.ts.map +1 -0
  247. package/dist/websocket/index.d.ts +7 -0
  248. package/dist/websocket/index.d.ts.map +1 -0
  249. package/dist/websocket/routes/client/system.d.ts +3 -0
  250. package/dist/websocket/routes/client/system.d.ts.map +1 -0
  251. package/dist/websocket/routes/server/system.d.ts +3 -0
  252. package/dist/websocket/routes/server/system.d.ts.map +1 -0
  253. package/dist/websocket/utils.d.ts +9 -0
  254. package/dist/websocket/utils.d.ts.map +1 -0
  255. package/dist/websocket/websocket-base.d.ts +19 -0
  256. package/dist/websocket/websocket-base.d.ts.map +1 -0
  257. package/dist/websocket/websocket-client-manager.d.ts +53 -0
  258. package/dist/websocket/websocket-client-manager.d.ts.map +1 -0
  259. package/dist/websocket/websocket-client-manager.interface.d.ts +8 -0
  260. package/dist/websocket/websocket-client-manager.interface.d.ts.map +1 -0
  261. package/dist/websocket/websocket-client.d.ts +35 -0
  262. package/dist/websocket/websocket-client.d.ts.map +1 -0
  263. package/dist/websocket/websocket-client.interface.d.ts +14 -0
  264. package/dist/websocket/websocket-client.interface.d.ts.map +1 -0
  265. package/dist/websocket/websocket-room-manager.d.ts +32 -0
  266. package/dist/websocket/websocket-room-manager.d.ts.map +1 -0
  267. package/dist/websocket/websocket-server.d.ts +92 -0
  268. package/dist/websocket/websocket-server.d.ts.map +1 -0
  269. package/dist/websocket/websocket-server.interface.d.ts +16 -0
  270. package/dist/websocket/websocket-server.interface.d.ts.map +1 -0
  271. package/dist/websocket/websocket-server.js +33 -9
  272. package/dist/websocket/websocket-server.js.map +2 -2
  273. package/dist/websocket/websocket-service.d.ts +44 -0
  274. package/dist/websocket/websocket-service.d.ts.map +1 -0
  275. package/dist/websocket/websocket.interface.d.ts +124 -0
  276. package/dist/websocket/websocket.interface.d.ts.map +1 -0
  277. package/package.json +13 -13
  278. package/pxl.js +0 -4
@@ -0,0 +1,15 @@
1
+ import type { ClusterManagerProps } from './cluster-manager.interface.js';
2
+ export default class ClusterManager {
3
+ private readonly config;
4
+ private startApplicationCallback;
5
+ private stopApplicationCallback;
6
+ private shutdownSignals;
7
+ private isShuttingDown;
8
+ constructor({ config, startApplicationCallback, stopApplicationCallback }: ClusterManagerProps);
9
+ start(): void;
10
+ private setupPrimary;
11
+ private setupWorker;
12
+ private handleShutdown;
13
+ private initiateShutdown;
14
+ }
15
+ //# sourceMappingURL=cluster-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-manager.d.ts","sourceRoot":"","sources":["../../src/cluster/cluster-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAE9C,OAAO,CAAC,wBAAwB,CAAsB;IACtD,OAAO,CAAC,uBAAuB,CAAsB;IAErD,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,cAAc,CAAS;gBAEnB,EAAE,MAAM,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,EAAE,mBAAmB;IAOvF,KAAK,IAAI,IAAI;IAUpB,OAAO,CAAC,YAAY;YAqCN,WAAW;IAkBzB,OAAO,CAAC,cAAc;YAMR,gBAAgB;CA6B/B"}
@@ -0,0 +1,23 @@
1
+ export type ClusterWorkerMode = 'auto' | 'manual';
2
+ export interface ClusterManagerDisabledConfig {
3
+ enabled: false;
4
+ workerMode?: ClusterWorkerMode;
5
+ workerCount?: never;
6
+ }
7
+ export interface ClusterManagerEnabledConfigBase {
8
+ enabled: true;
9
+ }
10
+ export interface ClusterManagerWorkerModeAutoConfig extends ClusterManagerEnabledConfigBase {
11
+ workerMode: 'auto';
12
+ }
13
+ export interface ClusterManagerWorkerModeManualConfig extends ClusterManagerEnabledConfigBase {
14
+ workerMode: 'manual';
15
+ workerCount: number;
16
+ }
17
+ export type ClusterManagerConfig = ClusterManagerDisabledConfig | ClusterManagerWorkerModeAutoConfig | ClusterManagerWorkerModeManualConfig;
18
+ export interface ClusterManagerProps {
19
+ config: ClusterManagerConfig;
20
+ startApplicationCallback: () => Promise<void>;
21
+ stopApplicationCallback: () => Promise<void>;
22
+ }
23
+ //# sourceMappingURL=cluster-manager.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-manager.interface.d.ts","sourceRoot":"","sources":["../../src/cluster/cluster-manager.interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAElD,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,KAAK,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,kCAAmC,SAAQ,+BAA+B;IACzF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oCAAqC,SAAQ,+BAA+B;IAC3F,UAAU,EAAE,QAAQ,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,oBAAoB,GAC5B,4BAA4B,GAC5B,kCAAkC,GAClC,oCAAoC,CAAC;AAEzC,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,oBAAoB,CAAC;IAE7B,wBAAwB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C"}
@@ -0,0 +1,2 @@
1
+ export { ClusterManagerConfig, ClusterManagerDisabledConfig, ClusterManagerWorkerModeAutoConfig, ClusterManagerWorkerModeManualConfig, type ClusterWorkerMode, } from './cluster-manager.interface.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cluster/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,kCAAkC,EAClC,oCAAoC,EACpC,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type Argv } from 'yargs';
2
+ declare class CommandManager {
3
+ argv: Argv;
4
+ constructor();
5
+ addCommand({ command, description, builder, handler, }: {
6
+ command: string;
7
+ description: string;
8
+ builder: (yargs: Argv) => Argv;
9
+ handler: (argv: any) => void;
10
+ }): this;
11
+ addOption({ option, description, type, }: {
12
+ option: string;
13
+ description: string;
14
+ type: 'string' | 'boolean' | 'number';
15
+ }): this;
16
+ parse(): void;
17
+ }
18
+ export default CommandManager;
19
+ //# sourceMappingURL=command-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-manager.d.ts","sourceRoot":"","sources":["../../src/command/command-manager.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAC;AAGzC,cAAM,cAAc;IACX,IAAI,EAAE,IAAI,CAAC;;IAQX,UAAU,CAAC,EAChB,OAAO,EACP,WAAW,EACX,OAAO,EACP,OAAO,GACR,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC;QAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;KAC9B,GAAG,IAAI;IAMD,SAAS,CAAC,EACf,MAAM,EACN,WAAW,EACX,IAAI,GACL,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;KACvC,GAAG,IAAI;IASD,KAAK,IAAI,IAAI;CAGrB;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ApplicationConfig } from '../application/base-application.interface.js';
2
+ import type DatabaseInstance from '../database/instance.js';
3
+ import type { QueueManager } from '../queue/index.js';
4
+ import type RedisInstance from '../redis/instance.js';
5
+ import type { CommandConstructorParams } from './command.interface.js';
6
+ import { Logger } from '../logger/index.js';
7
+ export default abstract class Command {
8
+ /** Command name */
9
+ abstract name: string;
10
+ /** Command description */
11
+ abstract description: string;
12
+ protected applicationConfig: ApplicationConfig;
13
+ protected redisInstance: RedisInstance;
14
+ protected queueManager: QueueManager;
15
+ protected databaseInstance: DatabaseInstance;
16
+ protected logger: typeof Logger;
17
+ constructor({ applicationConfig, redisInstance, queueManager, databaseInstance }: CommandConstructorParams);
18
+ /**
19
+ * Run command
20
+ */
21
+ abstract run(argv?: unknown): Promise<void>;
22
+ /**
23
+ * Log command message
24
+ */
25
+ log(message: string, meta?: Record<string, unknown>): void;
26
+ }
27
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,OAAO;IACnC,mBAAmB;IACnB,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B,0BAA0B;IAC1B,SAAgB,WAAW,EAAE,MAAM,CAAC;IAEpC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAE/C,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;IACvC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE7C,SAAS,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC;gBAEpB,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,wBAAwB;IAU1G;;OAEG;aACa,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD;;OAEG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAUlE"}
@@ -0,0 +1,11 @@
1
+ import type { ApplicationConfig } from '../application/base-application.interface.js';
2
+ import type DatabaseInstance from '../database/instance.js';
3
+ import type { QueueManager } from '../queue/index.js';
4
+ import type RedisInstance from '../redis/instance.js';
5
+ export interface CommandConstructorParams {
6
+ applicationConfig: ApplicationConfig;
7
+ redisInstance: RedisInstance;
8
+ queueManager: QueueManager;
9
+ databaseInstance: DatabaseInstance;
10
+ }
11
+ //# sourceMappingURL=command.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.interface.d.ts","sourceRoot":"","sources":["../../src/command/command.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AAEtD,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,EAAE,iBAAiB,CAAC;IAErC,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;CACpC"}
@@ -0,0 +1,3 @@
1
+ export { default as Command } from './command.js';
2
+ export { default as CommandManager } from './command-manager.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/command/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type InferFrameworkConfig } from './schema.js';
2
+ /**
3
+ * Load a partial framework configuration from environment variables. This is intentionally
4
+ * conservative: only widely useful primitives are supported. Complex structures (e.g. routes)
5
+ * should be defined in code and merged before validation.
6
+ *
7
+ * Naming convention: PXL_<SECTION>_<FIELD>
8
+ */
9
+ export declare function loadFrameworkConfigFromEnv(): Partial<InferFrameworkConfig>;
10
+ /** Deep merge helper (shallow for primitives & plain objects) */
11
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAsBxD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6F1E;AAED,iEAAiE"}
@@ -0,0 +1,3 @@
1
+ export * from './schema.js';
2
+ export * from './env.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,432 @@
1
+ import { z } from 'zod';
2
+ export declare const RedisConfigSchema: z.ZodObject<{
3
+ host: z.ZodString;
4
+ port: z.ZodDefault<z.ZodNumber>;
5
+ password: z.ZodOptional<z.ZodString>;
6
+ }, z.core.$strip>;
7
+ export declare const DatabaseConfigSchema: z.ZodObject<{
8
+ enabled: z.ZodDefault<z.ZodBoolean>;
9
+ host: z.ZodString;
10
+ port: z.ZodDefault<z.ZodNumber>;
11
+ username: z.ZodString;
12
+ password: z.ZodString;
13
+ databaseName: z.ZodString;
14
+ entitiesDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ }, z.core.$strip>;
16
+ export declare const QueueLogConfigSchema: z.ZodOptional<z.ZodObject<{
17
+ jobRegistered: z.ZodOptional<z.ZodBoolean>;
18
+ jobAdded: z.ZodOptional<z.ZodBoolean>;
19
+ jobCompleted: z.ZodOptional<z.ZodBoolean>;
20
+ queueRegistered: z.ZodOptional<z.ZodBoolean>;
21
+ queuesRegistered: z.ZodOptional<z.ZodBoolean>;
22
+ queueWaiting: z.ZodOptional<z.ZodBoolean>;
23
+ }, z.core.$strip>>;
24
+ export declare const QueueJobSchema: z.ZodObject<{
25
+ id: z.ZodString;
26
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
27
+ }, z.core.$strip>;
28
+ export declare const QueueItemSchema: z.ZodObject<{
29
+ name: z.ZodString;
30
+ isExternal: z.ZodOptional<z.ZodBoolean>;
31
+ jobs: z.ZodDefault<z.ZodArray<z.ZodObject<{
32
+ id: z.ZodString;
33
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
34
+ }, z.core.$strip>>>;
35
+ }, z.core.$strip>;
36
+ export declare const QueueConfigSchema: z.ZodObject<{
37
+ queues: z.ZodDefault<z.ZodArray<z.ZodObject<{
38
+ name: z.ZodString;
39
+ isExternal: z.ZodOptional<z.ZodBoolean>;
40
+ jobs: z.ZodDefault<z.ZodArray<z.ZodObject<{
41
+ id: z.ZodString;
42
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
43
+ }, z.core.$strip>>>;
44
+ }, z.core.$strip>>>;
45
+ processorsDirectory: z.ZodString;
46
+ log: z.ZodOptional<z.ZodObject<{
47
+ jobRegistered: z.ZodOptional<z.ZodBoolean>;
48
+ jobAdded: z.ZodOptional<z.ZodBoolean>;
49
+ jobCompleted: z.ZodOptional<z.ZodBoolean>;
50
+ queueRegistered: z.ZodOptional<z.ZodBoolean>;
51
+ queuesRegistered: z.ZodOptional<z.ZodBoolean>;
52
+ queueWaiting: z.ZodOptional<z.ZodBoolean>;
53
+ }, z.core.$strip>>;
54
+ }, z.core.$strip>;
55
+ export declare const EventDefinitionSchema: z.ZodObject<{
56
+ name: z.ZodString;
57
+ }, z.core.$strip>;
58
+ export declare const EventConfigSchema: z.ZodObject<{
59
+ enabled: z.ZodDefault<z.ZodBoolean>;
60
+ controllersDirectory: z.ZodString;
61
+ events: z.ZodDefault<z.ZodArray<z.ZodObject<{
62
+ name: z.ZodString;
63
+ }, z.core.$strip>>>;
64
+ }, z.core.$strip>;
65
+ export declare const LogConfigSchema: z.ZodOptional<z.ZodObject<{
66
+ startUp: z.ZodOptional<z.ZodBoolean>;
67
+ shutdown: z.ZodOptional<z.ZodBoolean>;
68
+ }, z.core.$strip>>;
69
+ export declare const PerformanceThresholdsSchema: z.ZodObject<{
70
+ httpMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
71
+ dbMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
72
+ queueMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
73
+ cacheMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
74
+ wsMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
75
+ }, z.core.$strip>;
76
+ export declare const PerformanceMonitoringSchema: z.ZodObject<{
77
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
78
+ thresholds: z.ZodOptional<z.ZodOptional<z.ZodObject<{
79
+ httpMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
80
+ dbMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
81
+ queueMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
82
+ cacheMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
83
+ wsMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
84
+ }, z.core.$strip>>>;
85
+ maxMetricsHistory: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
86
+ logSlowOperations: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
87
+ logAllOperations: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
88
+ monitorHttpRequests: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
89
+ monitorDatabaseOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
90
+ monitorWebSocketOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
91
+ monitorQueueOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
92
+ monitorCacheOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
93
+ reportInterval: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodNumber>>>;
94
+ reportFormat: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodEnum<{
95
+ simple: "simple";
96
+ detailed: "detailed";
97
+ }>>>>;
98
+ }, z.core.$strip>;
99
+ export declare const AuthConfigSchema: z.ZodOptional<z.ZodObject<{
100
+ jwtSecretKey: z.ZodString;
101
+ }, z.core.$strip>>;
102
+ export declare const SecurityConfigSchema: z.ZodOptional<z.ZodObject<{
103
+ helmet: z.ZodOptional<z.ZodObject<{
104
+ enabled: z.ZodOptional<z.ZodBoolean>;
105
+ contentSecurityPolicy: z.ZodOptional<z.ZodBoolean>;
106
+ crossOriginEmbedderPolicy: z.ZodOptional<z.ZodBoolean>;
107
+ crossOriginOpenerPolicy: z.ZodOptional<z.ZodBoolean>;
108
+ crossOriginResourcePolicy: z.ZodOptional<z.ZodBoolean>;
109
+ dnsPrefetchControl: z.ZodOptional<z.ZodBoolean>;
110
+ frameguard: z.ZodOptional<z.ZodBoolean>;
111
+ hidePoweredBy: z.ZodOptional<z.ZodBoolean>;
112
+ hsts: z.ZodOptional<z.ZodBoolean>;
113
+ ieNoOpen: z.ZodOptional<z.ZodBoolean>;
114
+ noSniff: z.ZodOptional<z.ZodBoolean>;
115
+ originAgentCluster: z.ZodOptional<z.ZodBoolean>;
116
+ permittedCrossDomainPolicies: z.ZodOptional<z.ZodBoolean>;
117
+ referrerPolicy: z.ZodOptional<z.ZodBoolean>;
118
+ xssFilter: z.ZodOptional<z.ZodBoolean>;
119
+ }, z.core.$strip>>;
120
+ rateLimit: z.ZodOptional<z.ZodObject<{
121
+ enabled: z.ZodOptional<z.ZodBoolean>;
122
+ max: z.ZodOptional<z.ZodNumber>;
123
+ timeWindow: z.ZodOptional<z.ZodString>;
124
+ ban: z.ZodOptional<z.ZodNumber>;
125
+ cache: z.ZodOptional<z.ZodNumber>;
126
+ }, z.core.$strip>>;
127
+ }, z.core.$strip>>;
128
+ export declare const WebServerRouteSchema: z.ZodObject<{
129
+ type: z.ZodOptional<z.ZodString>;
130
+ method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
131
+ path: z.ZodString;
132
+ url: z.ZodOptional<z.ZodString>;
133
+ controller: z.ZodOptional<z.ZodUnknown>;
134
+ controllerName: z.ZodOptional<z.ZodString>;
135
+ action: z.ZodOptional<z.ZodString>;
136
+ entityName: z.ZodOptional<z.ZodString>;
137
+ validation: z.ZodOptional<z.ZodUnknown>;
138
+ handler: z.ZodOptional<z.ZodUnknown>;
139
+ schema: z.ZodOptional<z.ZodUnknown>;
140
+ }, z.core.$loose>;
141
+ export declare const WebServerConfigSchema: z.ZodObject<{
142
+ enabled: z.ZodDefault<z.ZodBoolean>;
143
+ host: z.ZodDefault<z.ZodString>;
144
+ port: z.ZodDefault<z.ZodNumber>;
145
+ bodyLimit: z.ZodDefault<z.ZodNumber>;
146
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
147
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
148
+ type: z.ZodOptional<z.ZodString>;
149
+ method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
150
+ path: z.ZodString;
151
+ url: z.ZodOptional<z.ZodString>;
152
+ controller: z.ZodOptional<z.ZodUnknown>;
153
+ controllerName: z.ZodOptional<z.ZodString>;
154
+ action: z.ZodOptional<z.ZodString>;
155
+ entityName: z.ZodOptional<z.ZodString>;
156
+ validation: z.ZodOptional<z.ZodUnknown>;
157
+ handler: z.ZodOptional<z.ZodUnknown>;
158
+ schema: z.ZodOptional<z.ZodUnknown>;
159
+ }, z.core.$loose>>>;
160
+ controllersDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
161
+ routesDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
162
+ cors: z.ZodOptional<z.ZodOptional<z.ZodObject<{
163
+ enabled: z.ZodDefault<z.ZodBoolean>;
164
+ urls: z.ZodDefault<z.ZodArray<z.ZodString>>;
165
+ }, z.core.$strip>>>;
166
+ security: z.ZodOptional<z.ZodOptional<z.ZodOptional<z.ZodObject<{
167
+ helmet: z.ZodOptional<z.ZodObject<{
168
+ enabled: z.ZodOptional<z.ZodBoolean>;
169
+ contentSecurityPolicy: z.ZodOptional<z.ZodBoolean>;
170
+ crossOriginEmbedderPolicy: z.ZodOptional<z.ZodBoolean>;
171
+ crossOriginOpenerPolicy: z.ZodOptional<z.ZodBoolean>;
172
+ crossOriginResourcePolicy: z.ZodOptional<z.ZodBoolean>;
173
+ dnsPrefetchControl: z.ZodOptional<z.ZodBoolean>;
174
+ frameguard: z.ZodOptional<z.ZodBoolean>;
175
+ hidePoweredBy: z.ZodOptional<z.ZodBoolean>;
176
+ hsts: z.ZodOptional<z.ZodBoolean>;
177
+ ieNoOpen: z.ZodOptional<z.ZodBoolean>;
178
+ noSniff: z.ZodOptional<z.ZodBoolean>;
179
+ originAgentCluster: z.ZodOptional<z.ZodBoolean>;
180
+ permittedCrossDomainPolicies: z.ZodOptional<z.ZodBoolean>;
181
+ referrerPolicy: z.ZodOptional<z.ZodBoolean>;
182
+ xssFilter: z.ZodOptional<z.ZodBoolean>;
183
+ }, z.core.$strip>>;
184
+ rateLimit: z.ZodOptional<z.ZodObject<{
185
+ enabled: z.ZodOptional<z.ZodBoolean>;
186
+ max: z.ZodOptional<z.ZodNumber>;
187
+ timeWindow: z.ZodOptional<z.ZodString>;
188
+ ban: z.ZodOptional<z.ZodNumber>;
189
+ cache: z.ZodOptional<z.ZodNumber>;
190
+ }, z.core.$strip>>;
191
+ }, z.core.$strip>>>>;
192
+ debug: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodObject<{
193
+ logAllRegisteredRoutes: z.ZodOptional<z.ZodBoolean>;
194
+ }, z.core.$strip>>>>;
195
+ }, z.core.$strip>;
196
+ export declare const WebSocketRouteSchema: z.ZodObject<{
197
+ type: z.ZodString;
198
+ controllerName: z.ZodString;
199
+ action: z.ZodString;
200
+ controller: z.ZodOptional<z.ZodUnknown>;
201
+ }, z.core.$strip>;
202
+ export declare const WebSocketConfigSchema: z.ZodObject<{
203
+ type: z.ZodOptional<z.ZodDefault<z.ZodString>>;
204
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
205
+ routes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
206
+ type: z.ZodString;
207
+ controllerName: z.ZodString;
208
+ action: z.ZodString;
209
+ controller: z.ZodOptional<z.ZodUnknown>;
210
+ }, z.core.$strip>>>>;
211
+ }, z.core.$strip>;
212
+ export declare const ClusterConfigSchema: z.ZodObject<{
213
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
214
+ workers: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
215
+ }, z.core.$strip>;
216
+ export declare const FrameworkConfigSchema: z.ZodObject<{
217
+ name: z.ZodString;
218
+ instanceId: z.ZodDefault<z.ZodString>;
219
+ rootDirectory: z.ZodString;
220
+ cluster: z.ZodOptional<z.ZodObject<{
221
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
222
+ workers: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
223
+ }, z.core.$strip>>;
224
+ redis: z.ZodObject<{
225
+ host: z.ZodString;
226
+ port: z.ZodDefault<z.ZodNumber>;
227
+ password: z.ZodOptional<z.ZodString>;
228
+ }, z.core.$strip>;
229
+ cache: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
230
+ database: z.ZodOptional<z.ZodObject<{
231
+ enabled: z.ZodDefault<z.ZodBoolean>;
232
+ host: z.ZodString;
233
+ port: z.ZodDefault<z.ZodNumber>;
234
+ username: z.ZodString;
235
+ password: z.ZodString;
236
+ databaseName: z.ZodString;
237
+ entitiesDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
238
+ }, z.core.$strip>>;
239
+ queue: z.ZodObject<{
240
+ queues: z.ZodDefault<z.ZodArray<z.ZodObject<{
241
+ name: z.ZodString;
242
+ isExternal: z.ZodOptional<z.ZodBoolean>;
243
+ jobs: z.ZodDefault<z.ZodArray<z.ZodObject<{
244
+ id: z.ZodString;
245
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
246
+ }, z.core.$strip>>>;
247
+ }, z.core.$strip>>>;
248
+ processorsDirectory: z.ZodString;
249
+ log: z.ZodOptional<z.ZodObject<{
250
+ jobRegistered: z.ZodOptional<z.ZodBoolean>;
251
+ jobAdded: z.ZodOptional<z.ZodBoolean>;
252
+ jobCompleted: z.ZodOptional<z.ZodBoolean>;
253
+ queueRegistered: z.ZodOptional<z.ZodBoolean>;
254
+ queuesRegistered: z.ZodOptional<z.ZodBoolean>;
255
+ queueWaiting: z.ZodOptional<z.ZodBoolean>;
256
+ }, z.core.$strip>>;
257
+ }, z.core.$strip>;
258
+ event: z.ZodOptional<z.ZodObject<{
259
+ enabled: z.ZodDefault<z.ZodBoolean>;
260
+ controllersDirectory: z.ZodString;
261
+ events: z.ZodDefault<z.ZodArray<z.ZodObject<{
262
+ name: z.ZodString;
263
+ }, z.core.$strip>>>;
264
+ }, z.core.$strip>>;
265
+ log: z.ZodOptional<z.ZodObject<{
266
+ startUp: z.ZodOptional<z.ZodBoolean>;
267
+ shutdown: z.ZodOptional<z.ZodBoolean>;
268
+ }, z.core.$strip>>;
269
+ performanceMonitoring: z.ZodOptional<z.ZodObject<{
270
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
271
+ thresholds: z.ZodOptional<z.ZodOptional<z.ZodObject<{
272
+ httpMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
273
+ dbMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
274
+ queueMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
275
+ cacheMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
276
+ wsMs: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
277
+ }, z.core.$strip>>>;
278
+ maxMetricsHistory: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
279
+ logSlowOperations: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
280
+ logAllOperations: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
281
+ monitorHttpRequests: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
282
+ monitorDatabaseOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
283
+ monitorWebSocketOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
284
+ monitorQueueOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
285
+ monitorCacheOperations: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodBoolean>>>;
286
+ reportInterval: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodNumber>>>;
287
+ reportFormat: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodEnum<{
288
+ simple: "simple";
289
+ detailed: "detailed";
290
+ }>>>>;
291
+ }, z.core.$strip>>;
292
+ email: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
293
+ auth: z.ZodOptional<z.ZodObject<{
294
+ jwtSecretKey: z.ZodString;
295
+ }, z.core.$strip>>;
296
+ web: z.ZodOptional<z.ZodObject<{
297
+ enabled: z.ZodDefault<z.ZodBoolean>;
298
+ host: z.ZodDefault<z.ZodString>;
299
+ port: z.ZodDefault<z.ZodNumber>;
300
+ bodyLimit: z.ZodDefault<z.ZodNumber>;
301
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
302
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
303
+ type: z.ZodOptional<z.ZodString>;
304
+ method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
305
+ path: z.ZodString;
306
+ url: z.ZodOptional<z.ZodString>;
307
+ controller: z.ZodOptional<z.ZodUnknown>;
308
+ controllerName: z.ZodOptional<z.ZodString>;
309
+ action: z.ZodOptional<z.ZodString>;
310
+ entityName: z.ZodOptional<z.ZodString>;
311
+ validation: z.ZodOptional<z.ZodUnknown>;
312
+ handler: z.ZodOptional<z.ZodUnknown>;
313
+ schema: z.ZodOptional<z.ZodUnknown>;
314
+ }, z.core.$loose>>>;
315
+ controllersDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
316
+ routesDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
317
+ cors: z.ZodOptional<z.ZodOptional<z.ZodObject<{
318
+ enabled: z.ZodDefault<z.ZodBoolean>;
319
+ urls: z.ZodDefault<z.ZodArray<z.ZodString>>;
320
+ }, z.core.$strip>>>;
321
+ security: z.ZodOptional<z.ZodOptional<z.ZodOptional<z.ZodObject<{
322
+ helmet: z.ZodOptional<z.ZodObject<{
323
+ enabled: z.ZodOptional<z.ZodBoolean>;
324
+ contentSecurityPolicy: z.ZodOptional<z.ZodBoolean>;
325
+ crossOriginEmbedderPolicy: z.ZodOptional<z.ZodBoolean>;
326
+ crossOriginOpenerPolicy: z.ZodOptional<z.ZodBoolean>;
327
+ crossOriginResourcePolicy: z.ZodOptional<z.ZodBoolean>;
328
+ dnsPrefetchControl: z.ZodOptional<z.ZodBoolean>;
329
+ frameguard: z.ZodOptional<z.ZodBoolean>;
330
+ hidePoweredBy: z.ZodOptional<z.ZodBoolean>;
331
+ hsts: z.ZodOptional<z.ZodBoolean>;
332
+ ieNoOpen: z.ZodOptional<z.ZodBoolean>;
333
+ noSniff: z.ZodOptional<z.ZodBoolean>;
334
+ originAgentCluster: z.ZodOptional<z.ZodBoolean>;
335
+ permittedCrossDomainPolicies: z.ZodOptional<z.ZodBoolean>;
336
+ referrerPolicy: z.ZodOptional<z.ZodBoolean>;
337
+ xssFilter: z.ZodOptional<z.ZodBoolean>;
338
+ }, z.core.$strip>>;
339
+ rateLimit: z.ZodOptional<z.ZodObject<{
340
+ enabled: z.ZodOptional<z.ZodBoolean>;
341
+ max: z.ZodOptional<z.ZodNumber>;
342
+ timeWindow: z.ZodOptional<z.ZodString>;
343
+ ban: z.ZodOptional<z.ZodNumber>;
344
+ cache: z.ZodOptional<z.ZodNumber>;
345
+ }, z.core.$strip>>;
346
+ }, z.core.$strip>>>>;
347
+ debug: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodObject<{
348
+ logAllRegisteredRoutes: z.ZodOptional<z.ZodBoolean>;
349
+ }, z.core.$strip>>>>;
350
+ }, z.core.$strip>>;
351
+ webServer: z.ZodOptional<z.ZodObject<{
352
+ enabled: z.ZodDefault<z.ZodBoolean>;
353
+ host: z.ZodDefault<z.ZodString>;
354
+ port: z.ZodDefault<z.ZodNumber>;
355
+ bodyLimit: z.ZodDefault<z.ZodNumber>;
356
+ connectionTimeout: z.ZodDefault<z.ZodNumber>;
357
+ routes: z.ZodDefault<z.ZodArray<z.ZodObject<{
358
+ type: z.ZodOptional<z.ZodString>;
359
+ method: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
360
+ path: z.ZodString;
361
+ url: z.ZodOptional<z.ZodString>;
362
+ controller: z.ZodOptional<z.ZodUnknown>;
363
+ controllerName: z.ZodOptional<z.ZodString>;
364
+ action: z.ZodOptional<z.ZodString>;
365
+ entityName: z.ZodOptional<z.ZodString>;
366
+ validation: z.ZodOptional<z.ZodUnknown>;
367
+ handler: z.ZodOptional<z.ZodUnknown>;
368
+ schema: z.ZodOptional<z.ZodUnknown>;
369
+ }, z.core.$loose>>>;
370
+ controllersDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
371
+ routesDirectory: z.ZodOptional<z.ZodOptional<z.ZodString>>;
372
+ cors: z.ZodOptional<z.ZodOptional<z.ZodObject<{
373
+ enabled: z.ZodDefault<z.ZodBoolean>;
374
+ urls: z.ZodDefault<z.ZodArray<z.ZodString>>;
375
+ }, z.core.$strip>>>;
376
+ security: z.ZodOptional<z.ZodOptional<z.ZodOptional<z.ZodObject<{
377
+ helmet: z.ZodOptional<z.ZodObject<{
378
+ enabled: z.ZodOptional<z.ZodBoolean>;
379
+ contentSecurityPolicy: z.ZodOptional<z.ZodBoolean>;
380
+ crossOriginEmbedderPolicy: z.ZodOptional<z.ZodBoolean>;
381
+ crossOriginOpenerPolicy: z.ZodOptional<z.ZodBoolean>;
382
+ crossOriginResourcePolicy: z.ZodOptional<z.ZodBoolean>;
383
+ dnsPrefetchControl: z.ZodOptional<z.ZodBoolean>;
384
+ frameguard: z.ZodOptional<z.ZodBoolean>;
385
+ hidePoweredBy: z.ZodOptional<z.ZodBoolean>;
386
+ hsts: z.ZodOptional<z.ZodBoolean>;
387
+ ieNoOpen: z.ZodOptional<z.ZodBoolean>;
388
+ noSniff: z.ZodOptional<z.ZodBoolean>;
389
+ originAgentCluster: z.ZodOptional<z.ZodBoolean>;
390
+ permittedCrossDomainPolicies: z.ZodOptional<z.ZodBoolean>;
391
+ referrerPolicy: z.ZodOptional<z.ZodBoolean>;
392
+ xssFilter: z.ZodOptional<z.ZodBoolean>;
393
+ }, z.core.$strip>>;
394
+ rateLimit: z.ZodOptional<z.ZodObject<{
395
+ enabled: z.ZodOptional<z.ZodBoolean>;
396
+ max: z.ZodOptional<z.ZodNumber>;
397
+ timeWindow: z.ZodOptional<z.ZodString>;
398
+ ban: z.ZodOptional<z.ZodNumber>;
399
+ cache: z.ZodOptional<z.ZodNumber>;
400
+ }, z.core.$strip>>;
401
+ }, z.core.$strip>>>>;
402
+ debug: z.ZodOptional<z.ZodOptional<z.ZodDefault<z.ZodObject<{
403
+ logAllRegisteredRoutes: z.ZodOptional<z.ZodBoolean>;
404
+ }, z.core.$strip>>>>;
405
+ }, z.core.$strip>>;
406
+ webSocket: z.ZodOptional<z.ZodObject<{
407
+ type: z.ZodOptional<z.ZodDefault<z.ZodString>>;
408
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
409
+ routes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
410
+ type: z.ZodString;
411
+ controllerName: z.ZodString;
412
+ action: z.ZodString;
413
+ controller: z.ZodOptional<z.ZodUnknown>;
414
+ }, z.core.$strip>>>>;
415
+ }, z.core.$strip>>;
416
+ }, z.core.$strip>;
417
+ export type InferFrameworkConfig = z.infer<typeof FrameworkConfigSchema>;
418
+ export interface ValidateConfigOptions {
419
+ collectAllErrors?: boolean;
420
+ }
421
+ export interface ValidationIssueDetail {
422
+ path: string;
423
+ message: string;
424
+ }
425
+ export declare class ConfigValidationError extends Error {
426
+ issues: ValidationIssueDetail[];
427
+ constructor(message: string, issues: ValidationIssueDetail[]);
428
+ }
429
+ export declare function validateFrameworkConfig(raw: unknown, _options?: ValidateConfigOptions): InferFrameworkConfig;
430
+ export declare function formatConfigIssues(issues: ValidationIssueDetail[]): string;
431
+ export default FrameworkConfigSchema;
432
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAGH,eAAO,MAAM,oBAAoB;;;;;;;;iBAUM,CAAC;AAGxC,eAAO,MAAM,oBAAoB;;;;;;;kBASpB,CAAC;AAEd,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;iBAI1B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;iBAI5B,CAAC;AAGH,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;iBAI5B,CAAC;AAGH,eAAO,MAAM,eAAe;;;kBAKf,CAAC;AAGd,eAAO,MAAM,2BAA2B;;;;;;iBAQ5B,CAAC;AAEb,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;iBAe5B,CAAC;AAGb,eAAO,MAAM,gBAAgB;;kBAIhB,CAAC;AAGd,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BpB,CAAC;AAGd,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAcjB,CAAC;AAEjB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCwE,CAAC;AAG3G,eAAO,MAAM,oBAAoB;;;;;iBAK/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;iBAMtB,CAAC;AAGb,eAAO,MAAM,mBAAmB;;;iBAKpB,CAAC;AAGb,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBhC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IACvC,MAAM,EAAE,qBAAqB,EAAE,CAAC;gBAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;CAK7D;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,GAAE,qBAA0B,GAAG,oBAAoB,CAUhH;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAE1E;AAED,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type Joi from 'joi';
2
+ import 'reflect-metadata';
3
+ export declare enum FormFieldType {
4
+ Text = "text",
5
+ Email = "email",
6
+ Password = "password",
7
+ Number = "number",
8
+ Date = "date",
9
+ Select = "select",
10
+ Checkbox = "checkbox",
11
+ Textarea = "textarea",
12
+ Image = "image",
13
+ DynamicInput = "dynamicInput",
14
+ ReadOnly = "readonly"
15
+ }
16
+ export interface FormFieldOptions {
17
+ type: FormFieldType;
18
+ label: string;
19
+ placeholder?: string;
20
+ typeOptions?: any;
21
+ typeValues?: any;
22
+ }
23
+ export interface FormFieldOptionsExtended extends FormFieldOptions {
24
+ name: string;
25
+ validation: Joi.PartialSchemaMap | null;
26
+ }
27
+ export declare const FormField: (options: FormFieldOptions) => (target: any, propertyKey: string) => void;
28
+ export declare const generateFormFields: ({ model }: {
29
+ model: any;
30
+ }) => FormFieldOptionsExtended[];
31
+ //# sourceMappingURL=dynamic-entity-form-decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-entity-form-decorators.d.ts","sourceRoot":"","sources":["../../src/database/dynamic-entity-form-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,kBAAkB,CAAC;AAS1B,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,SAAS,GAAI,SAAS,gBAAgB,MACzC,QAAQ,GAAG,EAAE,aAAa,MAAM,SAgBzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,WAAW;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,KAAG,wBAAwB,EAqCtF,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { BaseEntity } from '@mikro-orm/core';
2
+ import type { Schema, ValidationResult } from 'joi';
3
+ export declare abstract class DynamicEntity extends BaseEntity {
4
+ static schema: Schema;
5
+ static schemaUpdate: Schema;
6
+ static get singularName(): string;
7
+ static get pluralName(): string;
8
+ static get singularNameLowerCase(): string;
9
+ static get pluralNameLowerCase(): string;
10
+ static get singularNameCapitalized(): string;
11
+ static get pluralNameCapitalized(): string;
12
+ static validate<T>(item: T, isCreating: boolean): ValidationResult;
13
+ static getSearchFields(): string[];
14
+ }
15
+ //# sourceMappingURL=dynamic-entity.d.ts.map