@zintrust/core 0.4.28 → 0.4.30

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 (453) hide show
  1. package/bin/z.js +0 -0
  2. package/bin/zin.js +0 -0
  3. package/bin/zintrust.js +0 -0
  4. package/bin/zt.js +0 -0
  5. package/package.json +78 -23
  6. package/src/cli/commands/D1ProxyCommand.d.ts.map +1 -1
  7. package/src/cli/commands/D1ProxyCommand.js +69 -9
  8. package/src/cli/commands/KvProxyCommand.d.ts.map +1 -1
  9. package/src/cli/commands/KvProxyCommand.js +69 -9
  10. package/src/cli/commands/NewCommand.d.ts.map +1 -1
  11. package/src/cli/commands/NewCommand.js +8 -28
  12. package/src/cli/scaffolding/GovernanceScaffolder.d.ts.map +1 -1
  13. package/src/cli/scaffolding/GovernanceScaffolder.js +31 -4
  14. package/src/cli/scaffolding/ProjectScaffolder.d.ts.map +1 -1
  15. package/src/cli/scaffolding/ProjectScaffolder.js +31 -5
  16. package/src/cli/utils/DistPackager.d.ts +2 -2
  17. package/src/cli/utils/DistPackager.js +2 -2
  18. package/src/index.js +3 -3
  19. package/src/zintrust.plugins.js +1 -1
  20. package/app/Controllers/AuthController.d.ts +0 -10
  21. package/app/Controllers/AuthController.d.ts.map +0 -1
  22. package/app/Controllers/AuthController.js +0 -233
  23. package/app/Controllers/TestController.d.ts +0 -22
  24. package/app/Controllers/TestController.d.ts.map +0 -1
  25. package/app/Controllers/TestController.js +0 -188
  26. package/app/Controllers/UserController.d.ts +0 -9
  27. package/app/Controllers/UserController.d.ts.map +0 -1
  28. package/app/Controllers/UserController.js +0 -8
  29. package/app/Controllers/UserQueryBuilderController.d.ts +0 -16
  30. package/app/Controllers/UserQueryBuilderController.d.ts.map +0 -1
  31. package/app/Controllers/UserQueryBuilderController.js +0 -404
  32. package/app/Jobs/AdvancedEmailJobService.d.ts +0 -57
  33. package/app/Jobs/AdvancedEmailJobService.d.ts.map +0 -1
  34. package/app/Jobs/AdvancedEmailJobService.js +0 -185
  35. package/app/Jobs/EmailJobService.d.ts +0 -33
  36. package/app/Jobs/EmailJobService.d.ts.map +0 -1
  37. package/app/Jobs/EmailJobService.js +0 -113
  38. package/app/Middleware/AuthFailureResponder.d.ts +0 -3
  39. package/app/Middleware/AuthFailureResponder.d.ts.map +0 -1
  40. package/app/Middleware/AuthFailureResponder.js +0 -8
  41. package/app/Middleware/ProfilerMiddleware.d.ts +0 -12
  42. package/app/Middleware/ProfilerMiddleware.d.ts.map +0 -1
  43. package/app/Middleware/ProfilerMiddleware.js +0 -47
  44. package/app/Middleware/index.d.ts +0 -59
  45. package/app/Middleware/index.d.ts.map +0 -1
  46. package/app/Middleware/index.js +0 -216
  47. package/app/Models/Post.d.ts +0 -14
  48. package/app/Models/Post.d.ts.map +0 -1
  49. package/app/Models/Post.js +0 -27
  50. package/app/Models/User.d.ts +0 -14
  51. package/app/Models/User.d.ts.map +0 -1
  52. package/app/Models/User.js +0 -44
  53. package/app/Schedules/JobTracking.d.ts +0 -3
  54. package/app/Schedules/JobTracking.d.ts.map +0 -1
  55. package/app/Schedules/JobTracking.js +0 -13
  56. package/app/Schedules/index.d.ts +0 -2
  57. package/app/Schedules/index.d.ts.map +0 -1
  58. package/app/Schedules/index.js +0 -1
  59. package/app/Toolkit/Broadcast/sendBroadcast.d.ts +0 -6
  60. package/app/Toolkit/Broadcast/sendBroadcast.d.ts.map +0 -1
  61. package/app/Toolkit/Broadcast/sendBroadcast.js +0 -5
  62. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts +0 -6
  63. package/app/Toolkit/Mail/sendWelcomeEmail.d.ts.map +0 -1
  64. package/app/Toolkit/Mail/sendWelcomeEmail.js +0 -20
  65. package/app/Toolkit/Notification/sendSlackNotification.d.ts +0 -8
  66. package/app/Toolkit/Notification/sendSlackNotification.d.ts.map +0 -1
  67. package/app/Toolkit/Notification/sendSlackNotification.js +0 -5
  68. package/app/Toolkit/Notification/sendSms.d.ts +0 -6
  69. package/app/Toolkit/Notification/sendSms.d.ts.map +0 -1
  70. package/app/Toolkit/Notification/sendSms.js +0 -5
  71. package/app/Types/controller.d.ts +0 -44
  72. package/app/Types/controller.d.ts.map +0 -1
  73. package/app/Types/controller.js +0 -1
  74. package/app/Workers/AdvancEmailWorker.d.ts +0 -44
  75. package/app/Workers/AdvancEmailWorker.d.ts.map +0 -1
  76. package/app/Workers/AdvancEmailWorker.js +0 -192
  77. package/app/Workers/EmailWorker.d.ts +0 -39
  78. package/app/Workers/EmailWorker.d.ts.map +0 -1
  79. package/app/Workers/EmailWorker.js +0 -199
  80. package/app/Workers/TestWorker.d.ts +0 -16
  81. package/app/Workers/TestWorker.d.ts.map +0 -1
  82. package/app/Workers/TestWorker.js +0 -153
  83. package/build-manifest.json +0 -6410
  84. package/config/broadcast.d.ts +0 -38
  85. package/config/broadcast.d.ts.map +0 -1
  86. package/config/broadcast.js +0 -37
  87. package/config/cache.d.ts +0 -40
  88. package/config/cache.d.ts.map +0 -1
  89. package/config/cache.js +0 -39
  90. package/config/database.d.ts +0 -58
  91. package/config/database.d.ts.map +0 -1
  92. package/config/database.js +0 -65
  93. package/config/mail.d.ts +0 -51
  94. package/config/mail.d.ts.map +0 -1
  95. package/config/mail.js +0 -69
  96. package/config/middleware.d.ts +0 -21
  97. package/config/middleware.d.ts.map +0 -1
  98. package/config/middleware.js +0 -61
  99. package/config/notification.d.ts +0 -33
  100. package/config/notification.d.ts.map +0 -1
  101. package/config/notification.js +0 -33
  102. package/config/queue.d.ts +0 -55
  103. package/config/queue.d.ts.map +0 -1
  104. package/config/queue.js +0 -87
  105. package/config/storage.d.ts +0 -59
  106. package/config/storage.d.ts.map +0 -1
  107. package/config/storage.js +0 -59
  108. package/config/workers.d.ts +0 -54
  109. package/config/workers.d.ts.map +0 -1
  110. package/config/workers.js +0 -83
  111. package/database/factories/UserFactory.d.ts +0 -40
  112. package/database/factories/UserFactory.d.ts.map +0 -1
  113. package/database/factories/UserFactory.js +0 -99
  114. package/database/migrations/20260109074544_create_users_table.d.ts +0 -7
  115. package/database/migrations/20260109074544_create_users_table.d.ts.map +0 -1
  116. package/database/migrations/20260109074544_create_users_table.js +0 -21
  117. package/database/migrations/20260109144731_create_tasks_table.d.ts +0 -7
  118. package/database/migrations/20260109144731_create_tasks_table.d.ts.map +0 -1
  119. package/database/migrations/20260109144731_create_tasks_table.js +0 -19
  120. package/database/migrations/20260109144735_add_done_tasks_table.d.ts +0 -11
  121. package/database/migrations/20260109144735_add_done_tasks_table.d.ts.map +0 -1
  122. package/database/migrations/20260109144735_add_done_tasks_table.js +0 -25
  123. package/database/migrations/20260109150837_add_start_tasks_table.d.ts +0 -11
  124. package/database/migrations/20260109150837_add_start_tasks_table.d.ts.map +0 -1
  125. package/database/migrations/20260109150837_add_start_tasks_table.js +0 -22
  126. package/database/migrations/20260109152114_add_way_tasks_table.d.ts +0 -11
  127. package/database/migrations/20260109152114_add_way_tasks_table.d.ts.map +0 -1
  128. package/database/migrations/20260109152114_add_way_tasks_table.js +0 -22
  129. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts +0 -7
  130. package/database/migrations/20260218121500_create_jwt_revocations_table.d.ts.map +0 -1
  131. package/database/migrations/20260218121500_create_jwt_revocations_table.js +0 -22
  132. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts +0 -11
  133. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.d.ts.map +0 -1
  134. package/database/migrations/20260222120000_add_kind_to_jwt_revocations_table.js +0 -20
  135. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts +0 -11
  136. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.d.ts.map +0 -1
  137. package/database/migrations/20260222123000_add_user_id_to_jwt_revocations_table.js +0 -20
  138. package/database/migrations/20260327112651_create_posts_table.d.ts +0 -11
  139. package/database/migrations/20260327112651_create_posts_table.d.ts.map +0 -1
  140. package/database/migrations/20260327112651_create_posts_table.js +0 -24
  141. package/database/seeders/DatabaseSeeder.d.ts +0 -5
  142. package/database/seeders/DatabaseSeeder.d.ts.map +0 -1
  143. package/database/seeders/DatabaseSeeder.js +0 -15
  144. package/database/seeders/UserSeeder.d.ts +0 -30
  145. package/database/seeders/UserSeeder.d.ts.map +0 -1
  146. package/database/seeders/UserSeeder.js +0 -97
  147. package/index.d.ts +0 -1
  148. package/index.js +0 -1
  149. package/packages/cache-redis/src/RedisProxyAdapter.d.ts +0 -6
  150. package/packages/cache-redis/src/RedisProxyAdapter.d.ts.map +0 -1
  151. package/packages/cache-redis/src/RedisProxyAdapter.js +0 -144
  152. package/packages/cache-redis/src/index.d.ts +0 -27
  153. package/packages/cache-redis/src/index.d.ts.map +0 -1
  154. package/packages/cache-redis/src/index.js +0 -153
  155. package/packages/db-d1/src/index.d.ts +0 -55
  156. package/packages/db-d1/src/index.d.ts.map +0 -1
  157. package/packages/db-d1/src/index.js +0 -118
  158. package/packages/db-d1/src/register.d.ts +0 -6
  159. package/packages/db-d1/src/register.d.ts.map +0 -1
  160. package/packages/db-d1/src/register.js +0 -8
  161. package/packages/db-mysql/src/common.d.ts +0 -7
  162. package/packages/db-mysql/src/common.d.ts.map +0 -1
  163. package/packages/db-mysql/src/common.js +0 -17
  164. package/packages/db-mysql/src/index.d.ts +0 -43
  165. package/packages/db-mysql/src/index.d.ts.map +0 -1
  166. package/packages/db-mysql/src/index.js +0 -265
  167. package/packages/db-mysql/src/register.d.ts +0 -6
  168. package/packages/db-mysql/src/register.d.ts.map +0 -1
  169. package/packages/db-mysql/src/register.js +0 -32
  170. package/packages/db-postgres/src/index.d.ts +0 -39
  171. package/packages/db-postgres/src/index.d.ts.map +0 -1
  172. package/packages/db-postgres/src/index.js +0 -179
  173. package/packages/db-postgres/src/register.d.ts +0 -6
  174. package/packages/db-postgres/src/register.d.ts.map +0 -1
  175. package/packages/db-postgres/src/register.js +0 -8
  176. package/packages/db-sqlite/src/index.d.ts +0 -9
  177. package/packages/db-sqlite/src/index.d.ts.map +0 -1
  178. package/packages/db-sqlite/src/index.js +0 -7
  179. package/packages/db-sqlite/src/register.d.ts +0 -6
  180. package/packages/db-sqlite/src/register.d.ts.map +0 -1
  181. package/packages/db-sqlite/src/register.js +0 -8
  182. package/packages/db-sqlserver/src/index.d.ts +0 -38
  183. package/packages/db-sqlserver/src/index.d.ts.map +0 -1
  184. package/packages/db-sqlserver/src/index.js +0 -73
  185. package/packages/db-sqlserver/src/register.d.ts +0 -6
  186. package/packages/db-sqlserver/src/register.d.ts.map +0 -1
  187. package/packages/db-sqlserver/src/register.js +0 -21
  188. package/packages/mail-sendgrid/src/register.d.ts +0 -6
  189. package/packages/mail-sendgrid/src/register.d.ts.map +0 -1
  190. package/packages/mail-sendgrid/src/register.js +0 -24
  191. package/packages/mail-smtp/src/register.d.ts +0 -6
  192. package/packages/mail-smtp/src/register.d.ts.map +0 -1
  193. package/packages/mail-smtp/src/register.js +0 -29
  194. package/packages/queue-monitor/src/QueueMonitoringService.d.ts +0 -35
  195. package/packages/queue-monitor/src/QueueMonitoringService.d.ts.map +0 -1
  196. package/packages/queue-monitor/src/QueueMonitoringService.js +0 -194
  197. package/packages/queue-monitor/src/connection.d.ts +0 -3
  198. package/packages/queue-monitor/src/connection.d.ts.map +0 -1
  199. package/packages/queue-monitor/src/connection.js +0 -1
  200. package/packages/queue-monitor/src/dashboard-ui.d.ts +0 -7
  201. package/packages/queue-monitor/src/dashboard-ui.d.ts.map +0 -1
  202. package/packages/queue-monitor/src/dashboard-ui.js +0 -997
  203. package/packages/queue-monitor/src/driver.d.ts +0 -15
  204. package/packages/queue-monitor/src/driver.d.ts.map +0 -1
  205. package/packages/queue-monitor/src/driver.js +0 -115
  206. package/packages/queue-monitor/src/index.d.ts +0 -71
  207. package/packages/queue-monitor/src/index.d.ts.map +0 -1
  208. package/packages/queue-monitor/src/index.js +0 -296
  209. package/packages/queue-monitor/src/metrics.d.ts +0 -27
  210. package/packages/queue-monitor/src/metrics.d.ts.map +0 -1
  211. package/packages/queue-monitor/src/metrics.js +0 -92
  212. package/packages/queue-monitor/src/worker.d.ts +0 -8
  213. package/packages/queue-monitor/src/worker.d.ts.map +0 -1
  214. package/packages/queue-monitor/src/worker.js +0 -35
  215. package/packages/queue-redis/src/BullMQRedisQueue.d.ts +0 -26
  216. package/packages/queue-redis/src/BullMQRedisQueue.d.ts.map +0 -1
  217. package/packages/queue-redis/src/BullMQRedisQueue.js +0 -465
  218. package/packages/queue-redis/src/HttpQueueDriver.d.ts +0 -18
  219. package/packages/queue-redis/src/HttpQueueDriver.d.ts.map +0 -1
  220. package/packages/queue-redis/src/HttpQueueDriver.js +0 -249
  221. package/packages/queue-redis/src/QueueHttpGateway.d.ts +0 -16
  222. package/packages/queue-redis/src/QueueHttpGateway.d.ts.map +0 -1
  223. package/packages/queue-redis/src/QueueHttpGateway.js +0 -217
  224. package/packages/queue-redis/src/RedisPublishClient.d.ts +0 -14
  225. package/packages/queue-redis/src/RedisPublishClient.d.ts.map +0 -1
  226. package/packages/queue-redis/src/RedisPublishClient.js +0 -251
  227. package/packages/queue-redis/src/index.d.ts +0 -12
  228. package/packages/queue-redis/src/index.d.ts.map +0 -1
  229. package/packages/queue-redis/src/index.js +0 -10
  230. package/packages/queue-redis/src/register.d.ts +0 -6
  231. package/packages/queue-redis/src/register.d.ts.map +0 -1
  232. package/packages/queue-redis/src/register.js +0 -21
  233. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts +0 -11
  234. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.d.ts.map +0 -1
  235. package/packages/workers/migrations/20260119100000_create_zintrust_workers_table.js +0 -32
  236. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts +0 -11
  237. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.d.ts.map +0 -1
  238. package/packages/workers/migrations/20260123180000_create_queue_jobs_table.js +0 -46
  239. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts +0 -7
  240. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.d.ts.map +0 -1
  241. package/packages/workers/migrations/20260213142000_create_zintrust_job_tracking_tables.js +0 -44
  242. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts +0 -7
  243. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.d.ts.map +0 -1
  244. package/packages/workers/migrations/20260213183000_expand_zintrust_job_tracking_reliability_tables.js +0 -104
  245. package/packages/workers/src/AnomalyDetection.d.ts +0 -107
  246. package/packages/workers/src/AnomalyDetection.d.ts.map +0 -1
  247. package/packages/workers/src/AnomalyDetection.js +0 -329
  248. package/packages/workers/src/AutoScaler.d.ts +0 -128
  249. package/packages/workers/src/AutoScaler.d.ts.map +0 -1
  250. package/packages/workers/src/AutoScaler.js +0 -425
  251. package/packages/workers/src/BroadcastWorker.d.ts +0 -29
  252. package/packages/workers/src/BroadcastWorker.d.ts.map +0 -1
  253. package/packages/workers/src/BroadcastWorker.js +0 -24
  254. package/packages/workers/src/CanaryController.d.ts +0 -104
  255. package/packages/workers/src/CanaryController.d.ts.map +0 -1
  256. package/packages/workers/src/CanaryController.js +0 -424
  257. package/packages/workers/src/ChaosEngineering.d.ts +0 -80
  258. package/packages/workers/src/ChaosEngineering.d.ts.map +0 -1
  259. package/packages/workers/src/ChaosEngineering.js +0 -229
  260. package/packages/workers/src/CircuitBreaker.d.ts +0 -107
  261. package/packages/workers/src/CircuitBreaker.d.ts.map +0 -1
  262. package/packages/workers/src/CircuitBreaker.js +0 -374
  263. package/packages/workers/src/ClusterLock.d.ts +0 -91
  264. package/packages/workers/src/ClusterLock.d.ts.map +0 -1
  265. package/packages/workers/src/ClusterLock.js +0 -397
  266. package/packages/workers/src/ComplianceManager.d.ts +0 -178
  267. package/packages/workers/src/ComplianceManager.d.ts.map +0 -1
  268. package/packages/workers/src/ComplianceManager.js +0 -556
  269. package/packages/workers/src/DatacenterOrchestrator.d.ts +0 -134
  270. package/packages/workers/src/DatacenterOrchestrator.d.ts.map +0 -1
  271. package/packages/workers/src/DatacenterOrchestrator.js +0 -404
  272. package/packages/workers/src/DeadLetterQueue.d.ts +0 -123
  273. package/packages/workers/src/DeadLetterQueue.d.ts.map +0 -1
  274. package/packages/workers/src/DeadLetterQueue.js +0 -544
  275. package/packages/workers/src/HealthMonitor.d.ts +0 -43
  276. package/packages/workers/src/HealthMonitor.d.ts.map +0 -1
  277. package/packages/workers/src/HealthMonitor.js +0 -312
  278. package/packages/workers/src/MultiQueueWorker.d.ts +0 -90
  279. package/packages/workers/src/MultiQueueWorker.d.ts.map +0 -1
  280. package/packages/workers/src/MultiQueueWorker.js +0 -282
  281. package/packages/workers/src/NotificationWorker.d.ts +0 -29
  282. package/packages/workers/src/NotificationWorker.d.ts.map +0 -1
  283. package/packages/workers/src/NotificationWorker.js +0 -23
  284. package/packages/workers/src/Observability.d.ts +0 -154
  285. package/packages/workers/src/Observability.d.ts.map +0 -1
  286. package/packages/workers/src/Observability.js +0 -538
  287. package/packages/workers/src/PluginManager.d.ts +0 -124
  288. package/packages/workers/src/PluginManager.d.ts.map +0 -1
  289. package/packages/workers/src/PluginManager.js +0 -392
  290. package/packages/workers/src/PriorityQueue.d.ts +0 -118
  291. package/packages/workers/src/PriorityQueue.d.ts.map +0 -1
  292. package/packages/workers/src/PriorityQueue.js +0 -276
  293. package/packages/workers/src/ResourceMonitor.d.ts +0 -165
  294. package/packages/workers/src/ResourceMonitor.d.ts.map +0 -1
  295. package/packages/workers/src/ResourceMonitor.js +0 -632
  296. package/packages/workers/src/SLAMonitor.d.ts +0 -111
  297. package/packages/workers/src/SLAMonitor.d.ts.map +0 -1
  298. package/packages/workers/src/SLAMonitor.js +0 -274
  299. package/packages/workers/src/WorkerFactory.d.ts +0 -226
  300. package/packages/workers/src/WorkerFactory.d.ts.map +0 -1
  301. package/packages/workers/src/WorkerFactory.js +0 -2551
  302. package/packages/workers/src/WorkerInit.d.ts +0 -103
  303. package/packages/workers/src/WorkerInit.d.ts.map +0 -1
  304. package/packages/workers/src/WorkerInit.js +0 -359
  305. package/packages/workers/src/WorkerMetrics.d.ts +0 -116
  306. package/packages/workers/src/WorkerMetrics.d.ts.map +0 -1
  307. package/packages/workers/src/WorkerMetrics.js +0 -570
  308. package/packages/workers/src/WorkerRegistry.d.ts +0 -152
  309. package/packages/workers/src/WorkerRegistry.d.ts.map +0 -1
  310. package/packages/workers/src/WorkerRegistry.js +0 -396
  311. package/packages/workers/src/WorkerShutdown.d.ts +0 -70
  312. package/packages/workers/src/WorkerShutdown.d.ts.map +0 -1
  313. package/packages/workers/src/WorkerShutdown.js +0 -185
  314. package/packages/workers/src/WorkerVersioning.d.ts +0 -108
  315. package/packages/workers/src/WorkerVersioning.d.ts.map +0 -1
  316. package/packages/workers/src/WorkerVersioning.js +0 -300
  317. package/packages/workers/src/config/workerConfig.d.ts +0 -5
  318. package/packages/workers/src/config/workerConfig.d.ts.map +0 -1
  319. package/packages/workers/src/config/workerConfig.js +0 -25
  320. package/packages/workers/src/createQueueWorker.d.ts +0 -31
  321. package/packages/workers/src/createQueueWorker.d.ts.map +0 -1
  322. package/packages/workers/src/createQueueWorker.js +0 -382
  323. package/packages/workers/src/dashboard/index.d.ts +0 -2
  324. package/packages/workers/src/dashboard/index.d.ts.map +0 -1
  325. package/packages/workers/src/dashboard/index.js +0 -1
  326. package/packages/workers/src/dashboard/types.d.ts +0 -123
  327. package/packages/workers/src/dashboard/types.d.ts.map +0 -1
  328. package/packages/workers/src/dashboard/types.js +0 -1
  329. package/packages/workers/src/dashboard/workers-api.d.ts +0 -5
  330. package/packages/workers/src/dashboard/workers-api.d.ts.map +0 -1
  331. package/packages/workers/src/dashboard/workers-api.js +0 -776
  332. package/packages/workers/src/helper/index.d.ts +0 -6
  333. package/packages/workers/src/helper/index.d.ts.map +0 -1
  334. package/packages/workers/src/helper/index.js +0 -10
  335. package/packages/workers/src/http/WorkerApiController.d.ts +0 -39
  336. package/packages/workers/src/http/WorkerApiController.d.ts.map +0 -1
  337. package/packages/workers/src/http/WorkerApiController.js +0 -313
  338. package/packages/workers/src/http/WorkerController.d.ts +0 -375
  339. package/packages/workers/src/http/WorkerController.d.ts.map +0 -1
  340. package/packages/workers/src/http/WorkerController.js +0 -1454
  341. package/packages/workers/src/http/WorkerMonitoringService.d.ts +0 -12
  342. package/packages/workers/src/http/WorkerMonitoringService.d.ts.map +0 -1
  343. package/packages/workers/src/http/WorkerMonitoringService.js +0 -89
  344. package/packages/workers/src/http/middleware/CustomValidation.d.ts +0 -93
  345. package/packages/workers/src/http/middleware/CustomValidation.d.ts.map +0 -1
  346. package/packages/workers/src/http/middleware/CustomValidation.js +0 -270
  347. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts +0 -4
  348. package/packages/workers/src/http/middleware/DatacenterValidator.d.ts.map +0 -1
  349. package/packages/workers/src/http/middleware/DatacenterValidator.js +0 -94
  350. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts +0 -8
  351. package/packages/workers/src/http/middleware/EditWorkerValidation.d.ts.map +0 -1
  352. package/packages/workers/src/http/middleware/EditWorkerValidation.js +0 -56
  353. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts +0 -4
  354. package/packages/workers/src/http/middleware/FeaturesValidator.d.ts.map +0 -1
  355. package/packages/workers/src/http/middleware/FeaturesValidator.js +0 -61
  356. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts +0 -32
  357. package/packages/workers/src/http/middleware/InfrastructureValidator.d.ts.map +0 -1
  358. package/packages/workers/src/http/middleware/InfrastructureValidator.js +0 -226
  359. package/packages/workers/src/http/middleware/OptionsValidator.d.ts +0 -4
  360. package/packages/workers/src/http/middleware/OptionsValidator.d.ts.map +0 -1
  361. package/packages/workers/src/http/middleware/OptionsValidator.js +0 -112
  362. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts +0 -8
  363. package/packages/workers/src/http/middleware/PayloadSanitizer.d.ts.map +0 -1
  364. package/packages/workers/src/http/middleware/PayloadSanitizer.js +0 -42
  365. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts +0 -4
  366. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.d.ts.map +0 -1
  367. package/packages/workers/src/http/middleware/ProcessorPathSanitizer.js +0 -140
  368. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts +0 -4
  369. package/packages/workers/src/http/middleware/QueueNameSanitizer.d.ts.map +0 -1
  370. package/packages/workers/src/http/middleware/QueueNameSanitizer.js +0 -45
  371. package/packages/workers/src/http/middleware/ValidateDriver.d.ts +0 -8
  372. package/packages/workers/src/http/middleware/ValidateDriver.d.ts.map +0 -1
  373. package/packages/workers/src/http/middleware/ValidateDriver.js +0 -20
  374. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts +0 -4
  375. package/packages/workers/src/http/middleware/VersionSanitizer.d.ts.map +0 -1
  376. package/packages/workers/src/http/middleware/VersionSanitizer.js +0 -25
  377. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts +0 -4
  378. package/packages/workers/src/http/middleware/WorkerNameSanitizer.d.ts.map +0 -1
  379. package/packages/workers/src/http/middleware/WorkerNameSanitizer.js +0 -46
  380. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts +0 -28
  381. package/packages/workers/src/http/middleware/WorkerValidationChain.d.ts.map +0 -1
  382. package/packages/workers/src/http/middleware/WorkerValidationChain.js +0 -186
  383. package/packages/workers/src/index.d.ts +0 -47
  384. package/packages/workers/src/index.d.ts.map +0 -1
  385. package/packages/workers/src/index.js +0 -48
  386. package/packages/workers/src/register.d.ts +0 -10
  387. package/packages/workers/src/register.d.ts.map +0 -1
  388. package/packages/workers/src/register.js +0 -43
  389. package/packages/workers/src/routes/workers.d.ts +0 -13
  390. package/packages/workers/src/routes/workers.d.ts.map +0 -1
  391. package/packages/workers/src/routes/workers.js +0 -126
  392. package/packages/workers/src/storage/WorkerStore.d.ts +0 -52
  393. package/packages/workers/src/storage/WorkerStore.d.ts.map +0 -1
  394. package/packages/workers/src/storage/WorkerStore.js +0 -259
  395. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts +0 -47
  396. package/packages/workers/src/telemetry/api/TelemetryAPI.d.ts.map +0 -1
  397. package/packages/workers/src/telemetry/api/TelemetryAPI.js +0 -219
  398. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts +0 -18
  399. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.d.ts.map +0 -1
  400. package/packages/workers/src/telemetry/api/TelemetryMonitoringService.js +0 -140
  401. package/packages/workers/src/telemetry/components/AlertPanel.d.ts +0 -2
  402. package/packages/workers/src/telemetry/components/AlertPanel.d.ts.map +0 -1
  403. package/packages/workers/src/telemetry/components/AlertPanel.js +0 -13
  404. package/packages/workers/src/telemetry/components/CostTracking.d.ts +0 -2
  405. package/packages/workers/src/telemetry/components/CostTracking.d.ts.map +0 -1
  406. package/packages/workers/src/telemetry/components/CostTracking.js +0 -14
  407. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts +0 -2
  408. package/packages/workers/src/telemetry/components/ResourceUsageChart.d.ts.map +0 -1
  409. package/packages/workers/src/telemetry/components/ResourceUsageChart.js +0 -11
  410. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts +0 -2
  411. package/packages/workers/src/telemetry/components/WorkerHealthChart.d.ts.map +0 -1
  412. package/packages/workers/src/telemetry/components/WorkerHealthChart.js +0 -11
  413. package/packages/workers/src/telemetry/index.d.ts +0 -16
  414. package/packages/workers/src/telemetry/index.d.ts.map +0 -1
  415. package/packages/workers/src/telemetry/index.js +0 -60
  416. package/packages/workers/src/telemetry/routes/dashboard.d.ts +0 -7
  417. package/packages/workers/src/telemetry/routes/dashboard.d.ts.map +0 -1
  418. package/packages/workers/src/telemetry/routes/dashboard.js +0 -608
  419. package/packages/workers/src/type.d.ts +0 -77
  420. package/packages/workers/src/type.d.ts.map +0 -1
  421. package/packages/workers/src/type.js +0 -1
  422. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts +0 -5
  423. package/packages/workers/src/ui/router/EmbeddedAssets.d.ts.map +0 -1
  424. package/packages/workers/src/ui/router/EmbeddedAssets.js +0 -13
  425. package/packages/workers/src/ui/router/ui.d.ts +0 -4
  426. package/packages/workers/src/ui/router/ui.d.ts.map +0 -1
  427. package/packages/workers/src/ui/router/ui.js +0 -208
  428. package/packages/workers/src/ui/types/worker-ui.d.ts +0 -230
  429. package/packages/workers/src/ui/types/worker-ui.d.ts.map +0 -1
  430. package/packages/workers/src/ui/types/worker-ui.js +0 -5
  431. package/routes/DirectTestRoutes.d.ts +0 -25
  432. package/routes/DirectTestRoutes.d.ts.map +0 -1
  433. package/routes/DirectTestRoutes.js +0 -480
  434. package/routes/TestRoutes.d.ts +0 -11
  435. package/routes/TestRoutes.d.ts.map +0 -1
  436. package/routes/TestRoutes.js +0 -25
  437. package/routes/api.d.ts +0 -7
  438. package/routes/api.d.ts.map +0 -1
  439. package/routes/api.js +0 -136
  440. package/routes/apiDev.d.ts +0 -7
  441. package/routes/apiDev.d.ts.map +0 -1
  442. package/routes/apiDev.js +0 -92
  443. package/routes/broadcast.d.ts +0 -9
  444. package/routes/broadcast.d.ts.map +0 -1
  445. package/routes/broadcast.js +0 -27
  446. package/routes/mail.d.ts +0 -12
  447. package/routes/mail.d.ts.map +0 -1
  448. package/routes/mail.js +0 -138
  449. package/routes/storage.d.ts +0 -4
  450. package/routes/storage.d.ts.map +0 -1
  451. package/routes/storage.js +0 -35
  452. package/start.d.ts +0 -1
  453. package/start.js +0 -1
@@ -1,404 +0,0 @@
1
- /**
2
- * User QueryBuilder Controller
3
- * QueryBuilder-backed controller for the users resource.
4
- */
5
- import { Logger, QueryBuilder, Sanitizer, Schema, Validator, getValidatedBody, nowIso, randomBytes, useDatabase, } from '../../src/index.js';
6
- const isValidationError = (error) => {
7
- if (typeof error !== 'object' || error === null)
8
- return false;
9
- const maybe = error;
10
- return maybe.name === 'ValidationError' && typeof maybe.toObject === 'function';
11
- };
12
- const isSanitizerError = (error) => {
13
- if (typeof error !== 'object' || error === null)
14
- return false;
15
- const maybe = error;
16
- return maybe.name === 'SanitizerError';
17
- };
18
- const toJsonRecord = (value) => {
19
- if (typeof value !== 'object' || value === null)
20
- return {};
21
- if (Array.isArray(value))
22
- return {};
23
- return value;
24
- };
25
- const resolveBody = (req) => {
26
- return toJsonRecord(getValidatedBody(req) ?? req.body ?? {});
27
- };
28
- const getParamCompat = (req, name) => {
29
- try {
30
- const anyReq = req;
31
- if (typeof anyReq.getParam === 'function')
32
- return anyReq.getParam(name);
33
- }
34
- catch {
35
- // ignore
36
- }
37
- const anyReq = req;
38
- const params = anyReq.params;
39
- if (typeof params === 'object' && params !== null)
40
- return params[name];
41
- return undefined;
42
- };
43
- const requireSelf = (req, res, userId) => {
44
- if (typeof userId !== 'string' || userId.length === 0) {
45
- res.status(400).json({ error: 'Missing user id' });
46
- return false;
47
- }
48
- const subject = typeof req.user?.sub === 'string' ? req.user.sub : undefined;
49
- if (subject === undefined || subject.length === 0) {
50
- res.status(401).json({ error: 'Unauthorized' });
51
- return false;
52
- }
53
- if (subject !== userId) {
54
- res.status(403).json({ error: 'Forbidden' });
55
- return false;
56
- }
57
- return true;
58
- };
59
- const randomInt = (min, max) => {
60
- const lo = Math.ceil(min);
61
- const hi = Math.floor(max);
62
- return Math.floor(lo + Math.random() * (hi - lo + 1)); // NOSONAR is just a test utility
63
- };
64
- const randomName = () => {
65
- const first = ['Alex', 'Jordan', 'Taylor', 'Sam', 'Casey', 'Riley', 'Morgan'];
66
- const last = ['Lee', 'Kim', 'Patel', 'Garcia', 'Brown', 'Nguyen', 'Smith'];
67
- return `${first[randomInt(0, first.length - 1)]} ${last[randomInt(0, last.length - 1)]}`;
68
- };
69
- const randomEmail = () => {
70
- const n = randomInt(10000, 99999);
71
- return `user${n}@example.com`;
72
- };
73
- const randomPassword = () => {
74
- // Not cryptographically perfect UX-wise, but avoids hard-coded credentials.
75
- // `base64url` keeps it URL-safe and reasonably short.
76
- return randomBytes(12).toString('base64url');
77
- };
78
- const pickAllowed = (body, allowed) => {
79
- const out = {};
80
- for (const [k, v] of Object.entries(body)) {
81
- if (allowed.has(k))
82
- out[k] = v;
83
- }
84
- return out;
85
- };
86
- const hasUnknownKeys = (body, allowed) => {
87
- for (const k of Object.keys(body)) {
88
- if (!allowed.has(k))
89
- return k;
90
- }
91
- return null;
92
- };
93
- const sanitizeUserUpdateBody = (updateBody) => {
94
- const sanitizedUpdateBody = {};
95
- if ('name' in updateBody) {
96
- sanitizedUpdateBody['name'] = Sanitizer.nameText(updateBody['name']).trim();
97
- }
98
- if ('email' in updateBody) {
99
- sanitizedUpdateBody['email'] = Sanitizer.email(updateBody['email']).trim().toLowerCase();
100
- }
101
- if ('password' in updateBody) {
102
- sanitizedUpdateBody['password'] = Sanitizer.safePasswordChars(updateBody['password']);
103
- }
104
- return sanitizedUpdateBody;
105
- };
106
- const buildUserUpdateSchema = () => {
107
- return Schema.create()
108
- .custom('name', (v) => v === undefined || typeof v === 'string', 'name must be a string')
109
- .minLength('name', 1)
110
- .custom('email', (v) => v === undefined || typeof v === 'string', 'email must be a string')
111
- .custom('password', (v) => v === undefined || typeof v === 'string', 'password must be a string')
112
- .minLength('password', 8);
113
- };
114
- const buildUserStoreSchema = () => {
115
- return Schema.create()
116
- .custom('name', (v) => typeof v === 'string', 'name must be a string')
117
- .minLength('name', 1)
118
- .custom('email', (v) => typeof v === 'string', 'email must be a string')
119
- .email('email')
120
- .custom('password', (v) => typeof v === 'string', 'password must be a string')
121
- .minLength('password', 8);
122
- };
123
- /**
124
- * User Controller Methods
125
- */
126
- const userControllerMethods = {
127
- /**
128
- * List all users
129
- * GET /users
130
- */
131
- async index(req, res) {
132
- try {
133
- const subject = typeof req.user?.sub === 'string' ? req.user.sub : undefined;
134
- if (subject === undefined || subject.length === 0) {
135
- res.status(401).json({ error: 'Unauthorized' });
136
- return;
137
- }
138
- const db = useDatabase();
139
- const users = await QueryBuilder.create('users', db)
140
- .select('id', 'name', 'email', 'created_at', 'updated_at')
141
- .where('id', '=', subject)
142
- .limit(1)
143
- .get();
144
- res.json({ data: users });
145
- }
146
- catch (error) {
147
- Logger.error('Error fetching users:', error);
148
- res.status(500).json({ error: 'Failed to fetch users' });
149
- }
150
- },
151
- /**
152
- * Show a specific user
153
- * GET /users/:id
154
- */
155
- async show(req, res) {
156
- try {
157
- const db = useDatabase();
158
- const rawId = getParamCompat(req, 'id');
159
- const id = Sanitizer.digitsOnly(rawId); // Zero trust protection for db id
160
- if (typeof id !== 'string' || id.length === 0) {
161
- // ✅ Good
162
- res.status(400).json({ error: 'Missing user id' });
163
- return;
164
- }
165
- if (!requireSelf(req, res, id))
166
- return;
167
- const user = await QueryBuilder.create('users', db)
168
- .select('id', 'name', 'email', 'created_at', 'updated_at')
169
- .where('id', '=', id)
170
- .limit(1)
171
- .first();
172
- if (user === null) {
173
- res.status(404).json({ error: 'User not found' });
174
- return;
175
- }
176
- res.json({ data: user });
177
- }
178
- catch (error) {
179
- if (isSanitizerError(error)) {
180
- res.status(400).json({ error: error.message });
181
- return;
182
- }
183
- Logger.error('Error fetching user:', error);
184
- res.status(500).json({ error: 'Failed to fetch user' });
185
- }
186
- },
187
- /**
188
- * Show create form
189
- * GET /users/create
190
- */
191
- async create(_req, res) {
192
- res.json({ form: 'Create User Form' });
193
- },
194
- /**
195
- * Store a new user
196
- * POST /users
197
- */
198
- async store(req, res) {
199
- try {
200
- // Use validated body if available (already sanitized by middleware), otherwise fallback to raw
201
- const body = resolveBody(req);
202
- const required = ['name', 'email', 'password'];
203
- const missing = {};
204
- for (const key of required) {
205
- const val = body[key];
206
- if (typeof val !== 'string' || val.trim() === '') {
207
- missing[key] = ['Required'];
208
- }
209
- }
210
- if (Object.keys(missing).length > 0) {
211
- res.status(422).json({ errors: missing });
212
- return;
213
- }
214
- // Trust middleware for sanitization if validation passed.
215
- // If we are here, validation ostensibly passed or we are in a context where we must self-validate.
216
- // To satisfy defense-in-depth without double-sanitization bottleneck:
217
- // We assume body is safe-ish if it came from resolved validated body.
218
- // But to be explicit and type-safe, we cast or read fields directly.
219
- const db = useDatabase();
220
- const ts = nowIso();
221
- // Apply bulletproof sanitization for defense-in-depth
222
- const name = Sanitizer.nameText(body['name']);
223
- const email = Sanitizer.email(body['email']);
224
- const password = Sanitizer.safePasswordChars(body['password']);
225
- Validator.validate({ name, email, password }, buildUserStoreSchema());
226
- await QueryBuilder.create('users', db).insert({
227
- name,
228
- email,
229
- password, // Hashing should be handled by model/service or here if raw
230
- created_at: ts,
231
- updated_at: ts,
232
- });
233
- res.status(201).json({ message: 'User created' });
234
- }
235
- catch (error) {
236
- if (isSanitizerError(error)) {
237
- res.status(400).json({ error: error.message });
238
- return;
239
- }
240
- if (isValidationError(error)) {
241
- res.status(422).json({ errors: error.toObject?.() ?? {} });
242
- return;
243
- }
244
- Logger.error('Error creating user:', error);
245
- res.status(500).json({ error: 'Failed to create user' });
246
- }
247
- },
248
- /**
249
- * Fill users table with random users
250
- * POST /users/fill
251
- */
252
- async fill(req, res) {
253
- try {
254
- const body = resolveBody(req);
255
- const countVal = body['count'];
256
- // Ensure count is a number (middleware validation handles this, but we double check or default)
257
- let count = typeof countVal === 'number' ? countVal : 10;
258
- if (count < 1)
259
- count = 1;
260
- if (count > 100)
261
- count = 100;
262
- const db = useDatabase();
263
- const ts = nowIso();
264
- // Optimize: Bulk insert instead of N+1 inserts to reduce IO bottleneck and memory overhead
265
- const users = Array.from({ length: count }, () => ({
266
- name: randomName(),
267
- email: randomEmail(),
268
- password: randomPassword(),
269
- created_at: ts,
270
- updated_at: ts,
271
- }));
272
- await QueryBuilder.create('users', db).insert(users);
273
- res.status(201).json({ message: 'Users filled', count });
274
- }
275
- catch (error) {
276
- Logger.error('Error filling users:', error);
277
- res.status(500).json({ error: 'Failed to fill users' });
278
- }
279
- },
280
- /**
281
- * Show edit form
282
- * GET /users/:id/edit
283
- */
284
- async edit(_req, res) {
285
- try {
286
- res.json({ form: 'Edit User Form' });
287
- }
288
- catch (error) {
289
- Logger.error('Error loading edit form:', error);
290
- res.status(500).json({ error: 'Failed to load edit form' });
291
- }
292
- },
293
- /**
294
- * Update a user
295
- * PUT /users/:id
296
- */
297
- async update(req, res) {
298
- // NOSONAR bulletproof sanitization requires explicit validation steps
299
- try {
300
- const db = useDatabase();
301
- const rawId = getParamCompat(req, 'id');
302
- const id = Sanitizer.digitsOnly(rawId);
303
- if (typeof id !== 'string' || id.length === 0) {
304
- res.status(400).json({ error: 'Missing user id' });
305
- return;
306
- }
307
- if (!requireSelf(req, res, id))
308
- return;
309
- const allowed = new Set(['name', 'email', 'password']);
310
- const body = resolveBody(req);
311
- const unknown = hasUnknownKeys(body, allowed);
312
- if (unknown !== null) {
313
- res.status(422).json({ errors: { [unknown]: ['Unknown field'] } });
314
- return;
315
- }
316
- const updateBody = pickAllowed(body, allowed);
317
- if (Object.keys(updateBody).length === 0) {
318
- res.status(422).json({ errors: { body: ['No fields to update'] } });
319
- return;
320
- }
321
- const sanitizedUpdateBody = sanitizeUserUpdateBody(updateBody);
322
- Validator.validate(sanitizedUpdateBody, buildUserUpdateSchema());
323
- const existing = await QueryBuilder.create('users', db)
324
- .select('id')
325
- .where('id', '=', id)
326
- .limit(1)
327
- .first();
328
- if (existing === null) {
329
- res.status(404).json({ error: 'User not found' });
330
- return;
331
- }
332
- const ts = nowIso();
333
- await QueryBuilder.create('users', db)
334
- .where('id', '=', id)
335
- .update({ ...sanitizedUpdateBody, updated_at: ts });
336
- const user = await QueryBuilder.create('users', db)
337
- .select('id', 'name', 'email', 'created_at', 'updated_at')
338
- .where('id', '=', id)
339
- .limit(1)
340
- .first();
341
- res.json({ message: 'User updated', user });
342
- }
343
- catch (error) {
344
- if (isSanitizerError(error)) {
345
- res.status(400).json({ error: error.message });
346
- return;
347
- }
348
- if (isValidationError(error)) {
349
- res.status(422).json({ errors: error.toObject?.() ?? {} });
350
- return;
351
- }
352
- Logger.error('Error updating user:', error);
353
- res.status(500).json({ error: 'Failed to update user' });
354
- }
355
- },
356
- /**
357
- * Delete a user
358
- * DELETE /users/:id
359
- */
360
- async destroy(req, res) {
361
- try {
362
- const db = useDatabase();
363
- const rawId = getParamCompat(req, 'id');
364
- const id = Sanitizer.digitsOnly(rawId);
365
- if (typeof id !== 'string' || id.length === 0) {
366
- res.status(400).json({ error: 'Missing user id' });
367
- return;
368
- }
369
- if (!requireSelf(req, res, id))
370
- return;
371
- const existing = await QueryBuilder.create('users', db)
372
- .select('id')
373
- .where('id', '=', id)
374
- .limit(1)
375
- .first();
376
- if (existing === null) {
377
- res.status(404).json({ error: 'User not found' });
378
- return;
379
- }
380
- await QueryBuilder.create('users', db).where('id', '=', id).delete();
381
- res.json({ message: 'User deleted' });
382
- }
383
- catch (error) {
384
- if (isSanitizerError(error)) {
385
- res.status(400).json({ error: error.message });
386
- return;
387
- }
388
- Logger.error('Error deleting user:', error);
389
- res.status(500).json({ error: 'Failed to delete user' });
390
- }
391
- },
392
- };
393
- /**
394
- * User QueryBuilder Controller Factory
395
- */
396
- export const UserQueryBuilderController = {
397
- /**
398
- * Create a new user controller instance
399
- */
400
- create() {
401
- return userControllerMethods;
402
- },
403
- };
404
- export default UserQueryBuilderController;
@@ -1,57 +0,0 @@
1
- export declare const AdvancedEmailJobService: Readonly<{
2
- sendScheduledLock(to: string, subject: string, template: string, templateData: Record<string, unknown>, delayMs: number, queueName?: string): Promise<string>;
3
- /**
4
- * Send an advanced email with deduplication support
5
- */
6
- sendWithDeduplication(to: string, subject: string, template: string, templateData: Record<string, unknown>, deduplicationId: string, queueName?: string): Promise<string>;
7
- /**
8
- * Send an email with unique lock to prevent duplicates
9
- */
10
- sendWithUniqueLock(to: string, subject: string, template: string, templateData: Record<string, unknown>, uniqueVia: string, queueName?: string): Promise<string>;
11
- /**
12
- * Send a high-priority email with custom options
13
- */
14
- sendHighPriority(to: string, subject: string, template: string, templateData: Record<string, unknown>, options?: {
15
- priority?: number;
16
- delay?: number;
17
- attempts?: number;
18
- }, queueName?: string): Promise<string>;
19
- /**
20
- * Send a bulk email with batch processing support
21
- */
22
- sendBulk(recipients: string[], subject: string, template: string, templateData: Record<string, unknown>, batchId?: string, queueName?: string): Promise<string[]>;
23
- /**
24
- * Send an email with custom envelope metadata
25
- */
26
- sendWithMetadata(to: string, subject: string, template: string, templateData: Record<string, unknown>, metadata: {
27
- campaign?: string;
28
- source?: string;
29
- priority?: string;
30
- tags?: string[];
31
- }, queueName?: string): Promise<string>;
32
- /**
33
- * Send a scheduled email with delay
34
- */
35
- sendScheduled(to: string, subject: string, template: string, templateData: Record<string, unknown>, delayMs: number, queueName?: string): Promise<string>;
36
- /**
37
- * Process a single advanced email job
38
- */
39
- processOne(queueName?: string): Promise<boolean>;
40
- /**
41
- * Process all advanced email jobs in queue
42
- */
43
- processAll(queueName?: string): Promise<number>;
44
- /**
45
- * Start the advanced email worker
46
- */
47
- start(queueName?: string): Promise<void>;
48
- }>;
49
- export default AdvancedEmailJobService;
50
- export declare const testSamples: Readonly<{
51
- advancedQueuePatternsHeadline: "Advanced Queue Patterns";
52
- uniqueIdExample: "await AdvancedEmailJobService.sendWithDeduplication('user@example.com', 'Welcome', 'welcome', { name: 'User' }, 'welcome-user-123')";
53
- uniqueViaExample: "await AdvancedEmailJobService.sendWithUniqueLock('user@example.com', 'Reset Password', 'password-reset', { token: 'abc123' }, 'user-email')";
54
- bulkExample: "await AdvancedEmailJobService.sendBulk(['user1@example.com', 'user2@example.com'], 'Newsletter', 'newsletter', { issue: 'Q1-2024' })";
55
- scheduledExample: "await AdvancedEmailJobService.sendScheduled('user@example.com', 'Reminder', 'reminder', { event: 'meeting' }, 3600000)";
56
- }>;
57
- //# sourceMappingURL=AdvancedEmailJobService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdvancedEmailJobService.d.ts","sourceRoot":"","sources":["../../../app/Jobs/AdvancedEmailJobService.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,uBAAuB;0BAE5B,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAC5B,MAAM,uBAEd,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;8BAGG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,mBACpB,MAAM,uBAEtB,OAAO,CAAC,MAAM,CAAC;IAwBlB;;OAEG;2BAEG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAC1B,MAAM,uBAEhB,OAAO,CAAC,MAAM,CAAC;IAelB;;OAEG;yBAEG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAC5B;QACP,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,uBAEA,OAAO,CAAC,MAAM,CAAC;IAyBlB;;OAEG;yBAEW,MAAM,EAAE,WACX,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAC3B,MAAM,uBAEf,OAAO,CAAC,MAAM,EAAE,CAAC;IAkCpB;;OAEG;yBAEG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAC3B;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,uBAEA,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;sBAEG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAC5B,MAAM,uBAEd,OAAO,CAAC,MAAM,CAAC;IAmBlB;;OAEG;oCACmD,OAAO,CAAC,OAAO,CAAC;IAItE;;OAEG;oCACmD,OAAO,CAAC,MAAM,CAAC;IAIrE;;OAEG;+BAC8C,OAAO,CAAC,IAAI,CAAC;EAG9D,CAAC;AAEH,eAAe,uBAAuB,CAAC;AAGvC,eAAO,MAAM,WAAW;;;;;;EAUtB,CAAC"}
@@ -1,185 +0,0 @@
1
- import { AdvancEmailQueue } from '../Workers/AdvancEmailWorker.js';
2
- import { generateUuid, Logger } from '../../src/index.js';
3
- export const AdvancedEmailJobService = Object.freeze({
4
- async sendScheduledLock(to, subject, template, templateData, delayMs, queueName = 'advanced-test-redis2') {
5
- const payload = {
6
- to,
7
- subject,
8
- template,
9
- templateData,
10
- uniqueId: `scheduled-${Date.now()}-${generateUuid()}`,
11
- };
12
- const queueOptions = {
13
- delay: delayMs, // ✅ This passes delay to BullMQ
14
- };
15
- const jobId = await AdvancEmailQueue.add(payload, queueName, queueOptions);
16
- const scheduledTime = new Date(Date.now() + delayMs).toISOString();
17
- Logger.info('Scheduled advanced email queued', { jobId, to, subject, scheduledTime });
18
- return jobId;
19
- },
20
- /**
21
- * Send an advanced email with deduplication support
22
- */
23
- async sendWithDeduplication(to, subject, template, templateData, deduplicationId, queueName = 'advanced-test-redis2') {
24
- const payload = {
25
- to,
26
- subject,
27
- template,
28
- templateData,
29
- uniqueId: deduplicationId,
30
- deduplication: {
31
- id: deduplicationId,
32
- ttl: 86400000, // 24 hours
33
- releaseAfter: 3600000, // 1 hour
34
- },
35
- };
36
- const jobId = await AdvancEmailQueue.add(payload, queueName);
37
- Logger.info('Advanced email with deduplication queued', {
38
- jobId,
39
- to,
40
- subject,
41
- deduplicationId,
42
- });
43
- return jobId;
44
- },
45
- /**
46
- * Send an email with unique lock to prevent duplicates
47
- */
48
- async sendWithUniqueLock(to, subject, template, templateData, uniqueVia, queueName = 'advanced-test-redis2') {
49
- const payload = {
50
- to,
51
- subject,
52
- template,
53
- templateData,
54
- uniqueId: `unique-${Date.now()}-${generateUuid()}`,
55
- uniqueVia,
56
- };
57
- const jobId = await AdvancEmailQueue.add(payload, queueName);
58
- Logger.info('Advanced email with unique lock queued', { jobId, to, subject, uniqueVia });
59
- return jobId;
60
- },
61
- /**
62
- * Send a high-priority email with custom options
63
- */
64
- async sendHighPriority(to, subject, template, templateData, options = {}, queueName = 'advanced-test-redis2') {
65
- const payload = {
66
- to,
67
- subject,
68
- template,
69
- templateData,
70
- timestamp: Date.now(),
71
- attempts: options.attempts ?? 3,
72
- };
73
- const queueOptions = {
74
- priority: options.priority ?? 10,
75
- delay: options.delay ?? 0,
76
- };
77
- const jobId = await AdvancEmailQueue.add(payload, queueName, queueOptions);
78
- Logger.info('High priority advanced email queued', {
79
- jobId,
80
- to,
81
- subject,
82
- priority: queueOptions.priority,
83
- });
84
- return jobId;
85
- },
86
- /**
87
- * Send a bulk email with batch processing support
88
- */
89
- async sendBulk(recipients, subject, template, templateData, batchId, queueName = 'advanced-test-redis2') {
90
- const batchIdentifier = batchId ?? `batch-${Date.now()}-${generateUuid()}`;
91
- const jobPromises = recipients.map(async (to, index) => {
92
- const payload = {
93
- to,
94
- subject,
95
- template,
96
- templateData: {
97
- ...templateData,
98
- batch_id: batchIdentifier,
99
- recipient_index: index + 1,
100
- total_recipients: recipients.length,
101
- },
102
- uniqueId: `${batchIdentifier}-${to}`,
103
- deduplication: {
104
- id: `${batchIdentifier}-${to}`,
105
- ttl: 86400000, // 24 hours
106
- },
107
- };
108
- return AdvancEmailQueue.add(payload, queueName);
109
- });
110
- const jobIds = await Promise.all(jobPromises);
111
- Logger.info('Bulk advanced emails queued', {
112
- batchId: batchIdentifier,
113
- recipientCount: recipients.length,
114
- jobIds: jobIds.length,
115
- });
116
- return jobIds;
117
- },
118
- /**
119
- * Send an email with custom envelope metadata
120
- */
121
- async sendWithMetadata(to, subject, template, templateData, metadata, queueName = 'advanced-test-redis2') {
122
- const payload = {
123
- to,
124
- subject,
125
- template,
126
- templateData: {
127
- ...templateData,
128
- campaign: metadata.campaign,
129
- source: metadata.source,
130
- priority: metadata.priority,
131
- tags: metadata.tags,
132
- },
133
- uniqueId: `meta-${Date.now()}-${generateUuid()}`,
134
- };
135
- const jobId = await AdvancEmailQueue.add(payload, queueName);
136
- Logger.info('Advanced email with metadata queued', { jobId, to, subject, metadata });
137
- return jobId;
138
- },
139
- /**
140
- * Send a scheduled email with delay
141
- */
142
- async sendScheduled(to, subject, template, templateData, delayMs, queueName = 'advanced-test-redis2') {
143
- const payload = {
144
- to,
145
- subject,
146
- template,
147
- templateData,
148
- uniqueId: `scheduled-${Date.now()}-${generateUuid()}`,
149
- };
150
- const queueOptions = {
151
- delay: delayMs,
152
- };
153
- const jobId = await AdvancEmailQueue.add(payload, queueName, queueOptions);
154
- const scheduledTime = new Date(Date.now() + delayMs).toISOString();
155
- Logger.info('Scheduled advanced email queued', { jobId, to, subject, scheduledTime });
156
- return jobId;
157
- },
158
- /**
159
- * Process a single advanced email job
160
- */
161
- async processOne(queueName = 'advanced-test-redis2') {
162
- return AdvancEmailQueue.processOne(queueName);
163
- },
164
- /**
165
- * Process all advanced email jobs in queue
166
- */
167
- async processAll(queueName = 'advanced-test-redis2') {
168
- return AdvancEmailQueue.processAll(queueName);
169
- },
170
- /**
171
- * Start the advanced email worker
172
- */
173
- async start(queueName = 'advanced-test-redis2') {
174
- return AdvancEmailQueue.start(queueName);
175
- },
176
- });
177
- export default AdvancedEmailJobService;
178
- // Test samples for advanced queue patterns
179
- export const testSamples = Object.freeze({
180
- advancedQueuePatternsHeadline: 'Advanced Queue Patterns',
181
- uniqueIdExample: "await AdvancedEmailJobService.sendWithDeduplication('user@example.com', 'Welcome', 'welcome', { name: 'User' }, 'welcome-user-123')",
182
- uniqueViaExample: "await AdvancedEmailJobService.sendWithUniqueLock('user@example.com', 'Reset Password', 'password-reset', { token: 'abc123' }, 'user-email')",
183
- bulkExample: "await AdvancedEmailJobService.sendBulk(['user1@example.com', 'user2@example.com'], 'Newsletter', 'newsletter', { issue: 'Q1-2024' })",
184
- scheduledExample: "await AdvancedEmailJobService.sendScheduled('user@example.com', 'Reminder', 'reminder', { event: 'meeting' }, 3600000)",
185
- });
@@ -1,33 +0,0 @@
1
- export declare const EmailJobService: Readonly<{
2
- /**
3
- * Send a welcome email using worker queue
4
- */
5
- sendWelcome(to: string, userName: string, _queueName?: string): Promise<string>;
6
- /**
7
- * Send a password reset email using the worker queue
8
- */
9
- sendPasswordReset(to: string, resetToken: string): Promise<string>;
10
- /**
11
- * Send a worker alert email using the worker queue
12
- */
13
- sendWorkerAlert(to: string, workerName: string, error: string, jobId?: string): Promise<string>;
14
- /**
15
- * Send a general notification email using the worker queue
16
- */
17
- sendGeneral(to: string, subject: string, message: string, options?: {
18
- actionUrl?: string;
19
- actionText?: string;
20
- primaryColor?: string;
21
- }): Promise<string>;
22
- /**
23
- * Send a custom email with any template
24
- */
25
- sendCustom(to: string, subject: string, template: string, templateData: Record<string, unknown>): Promise<string>;
26
- }>;
27
- export default EmailJobService;
28
- export declare const testSamples: Readonly<{
29
- advancedQueuePatternsHeadline: "Advanced Queue Patterns";
30
- uniqueIdExample: "await Queue.enqueue('email', { to: 'user@example.com', template: 'welcome' }, { uniqueId: `welcome-email-${userId}` })";
31
- releaseAfterExample: "deduplication: { id: 'daily-cleanup', ttl: 86400000, releaseAfter: 3600000 }";
32
- }>;
33
- //# sourceMappingURL=EmailJobService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmailJobService.d.ts","sourceRoot":"","sources":["../../../app/Jobs/EmailJobService.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe;IAC1B;;OAEG;oBACmB,MAAM,YAAY,MAAM,eAAc,MAAM,GAAe,OAAO,CAAC,MAAM,CAAC;IAoBhG;;OAEG;0BACyB,MAAM,cAAc,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBxE;;OAEG;wBAEG,MAAM,cACE,MAAM,SACX,MAAM,UACL,MAAM,GACb,OAAO,CAAC,MAAM,CAAC;IAsBlB;;OAEG;oBAEG,MAAM,WACD,MAAM,WACN,MAAM,YACN;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,MAAM,CAAC;IAoBlB;;OAEG;mBAEG,MAAM,WACD,MAAM,YACL,MAAM,gBACF,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC;EAelB,CAAC;AAEH,eAAe,eAAe,CAAC;AAI/B,eAAO,MAAM,WAAW;;;;EAMtB,CAAC"}