@archlast/server 0.1.8 → 0.1.9

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 (347) hide show
  1. package/README.md +104 -100
  2. package/dist/admin/auth.d.ts +24 -5
  3. package/dist/admin/auth.js +49 -25
  4. package/dist/admin/schema.d.ts +122 -32
  5. package/dist/admin/schema.js +131 -95
  6. package/dist/admin/seed.d.ts +1 -1
  7. package/dist/admin/seed.js +79 -47
  8. package/dist/auth/api-key-resolver.d.ts +1 -1
  9. package/dist/auth/api-key-resolver.js +7 -3
  10. package/dist/auth/archlast-auth-adapter.d.ts +2 -5
  11. package/dist/auth/archlast-auth-adapter.js +1 -1
  12. package/dist/auth/better-auth-adapter.d.ts.map +1 -1
  13. package/dist/auth/better-auth-adapter.js +41 -26
  14. package/dist/auth/better-auth-adapter.js.map +1 -1
  15. package/dist/auth/better-auth-admin.d.ts.map +1 -1
  16. package/dist/auth/better-auth-admin.js +1 -1
  17. package/dist/auth/better-auth-admin.js.map +1 -1
  18. package/dist/auth/better-auth-api-key-resolver.js +1 -1
  19. package/dist/auth/better-auth-api-key-resolver.js.map +1 -1
  20. package/dist/auth/better-auth-instance.d.ts +249 -301
  21. package/dist/auth/better-auth-instance.d.ts.map +1 -1
  22. package/dist/auth/better-auth-instance.js +11 -0
  23. package/dist/auth/better-auth-instance.js.map +1 -1
  24. package/dist/auth/better-auth-seed.d.ts +5 -2
  25. package/dist/auth/better-auth-seed.js +31 -22
  26. package/dist/auth/better-auth-session-adapter.d.ts.map +1 -1
  27. package/dist/auth/better-auth-session-adapter.js +14 -10
  28. package/dist/auth/better-auth-session-adapter.js.map +1 -1
  29. package/dist/auth/errors.d.ts.map +1 -1
  30. package/dist/auth/errors.js +11 -11
  31. package/dist/auth/errors.js.map +1 -1
  32. package/dist/auth/oauth-proxy.d.ts +5 -2
  33. package/dist/auth/oauth-proxy.js +23 -27
  34. package/dist/auth/resolver.d.ts.map +1 -1
  35. package/dist/auth/resolver.js.map +1 -1
  36. package/dist/auth/role-helpers.d.ts +1 -1
  37. package/dist/auth/role-helpers.d.ts.map +1 -1
  38. package/dist/auth/role-helpers.js.map +1 -1
  39. package/dist/auth/session-manager.d.ts +2 -5
  40. package/dist/auth/session-manager.js +16 -6
  41. package/dist/auth/system/better-auth-schema.d.ts.map +1 -1
  42. package/dist/auth/system/better-auth-schema.js +6 -23
  43. package/dist/auth/system/better-auth-schema.js.map +1 -1
  44. package/dist/cache/circuit-breaker.d.ts +81 -0
  45. package/dist/cache/circuit-breaker.d.ts.map +1 -0
  46. package/dist/cache/circuit-breaker.js +170 -0
  47. package/dist/cache/circuit-breaker.js.map +1 -0
  48. package/dist/cache/client.d.ts +6 -3
  49. package/dist/cache/client.d.ts.map +1 -1
  50. package/dist/cache/client.js +12 -53
  51. package/dist/cache/client.js.map +1 -1
  52. package/dist/cache/index.d.ts +2 -0
  53. package/dist/cache/index.d.ts.map +1 -1
  54. package/dist/cache/index.js +5 -1
  55. package/dist/cache/index.js.map +1 -1
  56. package/dist/cache/invalidation-queue.d.ts +63 -0
  57. package/dist/cache/invalidation-queue.d.ts.map +1 -0
  58. package/dist/cache/invalidation-queue.js +196 -0
  59. package/dist/cache/invalidation-queue.js.map +1 -0
  60. package/dist/cache/layers.d.ts +14 -4
  61. package/dist/cache/layers.d.ts.map +1 -1
  62. package/dist/cache/layers.js +66 -72
  63. package/dist/cache/layers.js.map +1 -1
  64. package/dist/cache/manager.d.ts.map +1 -1
  65. package/dist/cache/manager.js +6 -41
  66. package/dist/cache/manager.js.map +1 -1
  67. package/dist/cache/protocol.d.ts +4 -39
  68. package/dist/cache/protocol.d.ts.map +1 -1
  69. package/dist/cache/protocol.js.map +1 -1
  70. package/dist/cache/redis-adapter.d.ts +103 -0
  71. package/dist/cache/redis-adapter.d.ts.map +1 -0
  72. package/dist/cache/redis-adapter.js +424 -0
  73. package/dist/cache/redis-adapter.js.map +1 -0
  74. package/dist/cache/run-sidecar.js +10 -1
  75. package/dist/cache/run-sidecar.js.map +1 -1
  76. package/dist/cache/sidecar-server.d.ts +51 -1
  77. package/dist/cache/sidecar-server.d.ts.map +1 -1
  78. package/dist/cache/sidecar-server.js +368 -22
  79. package/dist/cache/sidecar-server.js.map +1 -1
  80. package/dist/cache/store.d.ts +43 -0
  81. package/dist/cache/store.d.ts.map +1 -1
  82. package/dist/cache/store.js +69 -76
  83. package/dist/cache/store.js.map +1 -1
  84. package/dist/cache/strategies.d.ts +2 -9
  85. package/dist/cache/strategies.d.ts.map +1 -1
  86. package/dist/cache/types.d.ts +130 -0
  87. package/dist/cache/types.d.ts.map +1 -0
  88. package/dist/cache/types.js +60 -0
  89. package/dist/cache/types.js.map +1 -0
  90. package/dist/config/bullmq.d.ts +16 -0
  91. package/dist/config/bullmq.d.ts.map +1 -0
  92. package/dist/config/bullmq.js +103 -0
  93. package/dist/config/bullmq.js.map +1 -0
  94. package/dist/config/index.d.ts +1 -0
  95. package/dist/config/index.d.ts.map +1 -1
  96. package/dist/config/index.js +1 -0
  97. package/dist/config/index.js.map +1 -1
  98. package/dist/config/schema.d.ts +80 -6
  99. package/dist/config/schema.d.ts.map +1 -1
  100. package/dist/config/schema.js +71 -6
  101. package/dist/config/schema.js.map +1 -1
  102. package/dist/config/service.d.ts +54 -4
  103. package/dist/config/service.d.ts.map +1 -1
  104. package/dist/config/service.js +56 -2
  105. package/dist/config/service.js.map +1 -1
  106. package/dist/controllers/admin/admin-tokens.controller.d.ts +131 -115
  107. package/dist/controllers/admin/admin-tokens.controller.js +117 -98
  108. package/dist/controllers/admin/api-keys.controller.d.ts +1 -1
  109. package/dist/controllers/admin/api-keys.controller.d.ts.map +1 -1
  110. package/dist/controllers/admin/api-keys.controller.js.map +1 -1
  111. package/dist/controllers/admin/app-users.controller.d.ts +274 -243
  112. package/dist/controllers/admin/app-users.controller.js +301 -257
  113. package/dist/controllers/admin/auth.controller.d.ts +260 -236
  114. package/dist/controllers/admin/auth.controller.js +197 -174
  115. package/dist/controllers/admin/backup.controller.d.ts.map +1 -1
  116. package/dist/controllers/admin/backup.controller.js.map +1 -1
  117. package/dist/controllers/admin/settings.controller.d.ts +1 -1
  118. package/dist/controllers/admin/storage-stats.controller.d.ts +63 -0
  119. package/dist/controllers/admin/storage-stats.controller.d.ts.map +1 -0
  120. package/dist/controllers/admin/storage-stats.controller.js +33 -0
  121. package/dist/controllers/admin/storage-stats.controller.js.map +1 -0
  122. package/dist/controllers/admin/tenants.controller.d.ts.map +1 -1
  123. package/dist/controllers/admin/tenants.controller.js.map +1 -1
  124. package/dist/controllers/admin/users.controller.d.ts +1 -1
  125. package/dist/controllers/admin/users.controller.d.ts.map +1 -1
  126. package/dist/controllers/admin/users.controller.js.map +1 -1
  127. package/dist/controllers/auth.controller.d.ts +289 -271
  128. package/dist/controllers/auth.controller.js +275 -226
  129. package/dist/controllers/crud-generator.controller.d.ts.map +1 -1
  130. package/dist/controllers/crud-generator.controller.js +127 -125
  131. package/dist/controllers/crud-generator.controller.js.map +1 -1
  132. package/dist/controllers/index.d.ts +1 -1
  133. package/dist/controllers/index.d.ts.map +1 -1
  134. package/dist/controllers/index.js.map +1 -1
  135. package/dist/controllers/introspection.controller.d.ts +642 -0
  136. package/dist/controllers/introspection.controller.d.ts.map +1 -1
  137. package/dist/controllers/introspection.controller.js +611 -0
  138. package/dist/controllers/introspection.controller.js.map +1 -1
  139. package/dist/controllers/invite.controller.d.ts +190 -170
  140. package/dist/controllers/invite.controller.js +183 -164
  141. package/dist/controllers/mfa.controller.d.ts +205 -183
  142. package/dist/controllers/mfa.controller.js +131 -111
  143. package/dist/controllers/otp.controller.d.ts +194 -171
  144. package/dist/controllers/otp.controller.js +192 -175
  145. package/dist/controllers/storage.controller.d.ts.map +1 -1
  146. package/dist/controllers/storage.controller.js.map +1 -1
  147. package/dist/controllers/system.controller.d.ts +5 -3
  148. package/dist/controllers/system.controller.d.ts.map +1 -1
  149. package/dist/controllers/system.controller.js +4 -2
  150. package/dist/controllers/system.controller.js.map +1 -1
  151. package/dist/controllers/tenant.controller.d.ts +258 -227
  152. package/dist/controllers/tenant.controller.js +224 -200
  153. package/dist/db/cachedclient.d.ts +6 -11
  154. package/dist/db/cachedclient.d.ts.map +1 -1
  155. package/dist/db/cachedclient.js +79 -43
  156. package/dist/db/cachedclient.js.map +1 -1
  157. package/dist/db/distributed-client.d.ts +79 -24
  158. package/dist/db/distributed-client.js +23 -24
  159. package/dist/db/factory.d.ts +3 -8
  160. package/dist/db/factory.d.ts.map +1 -1
  161. package/dist/db/factory.js +3 -22
  162. package/dist/db/factory.js.map +1 -1
  163. package/dist/db/socket-client.d.ts +7 -0
  164. package/dist/db/socket-client.d.ts.map +1 -1
  165. package/dist/db/socket-client.js +140 -11
  166. package/dist/db/socket-client.js.map +1 -1
  167. package/dist/deployment/handler.d.ts +10 -2
  168. package/dist/deployment/handler.d.ts.map +1 -1
  169. package/dist/deployment/handler.js +70 -15
  170. package/dist/deployment/handler.js.map +1 -1
  171. package/dist/deployment/persistence.d.ts.map +1 -1
  172. package/dist/deployment/persistence.js +6 -1
  173. package/dist/deployment/persistence.js.map +1 -1
  174. package/dist/docker/compose.d.ts.map +1 -1
  175. package/dist/docker/compose.js +76 -0
  176. package/dist/docker/compose.js.map +1 -1
  177. package/dist/engine/runner.d.ts.map +1 -1
  178. package/dist/engine/runner.js +0 -43
  179. package/dist/engine/runner.js.map +1 -1
  180. package/dist/functions/built-in/auth-apikey.d.ts.map +1 -1
  181. package/dist/functions/built-in/auth-apikey.js.map +1 -1
  182. package/dist/functions/built-in/system-cache.d.ts.map +1 -1
  183. package/dist/functions/built-in/system-cache.js +6 -31
  184. package/dist/functions/built-in/system-cache.js.map +1 -1
  185. package/dist/functions/built-in/system-data.d.ts.map +1 -1
  186. package/dist/functions/built-in/system-data.js +4 -2
  187. package/dist/functions/built-in/system-data.js.map +1 -1
  188. package/dist/functions/definition.d.ts.map +1 -1
  189. package/dist/functions/definition.js +6 -2
  190. package/dist/functions/definition.js.map +1 -1
  191. package/dist/http/routes/metrics.d.ts +42 -0
  192. package/dist/http/routes/metrics.d.ts.map +1 -0
  193. package/dist/http/routes/metrics.js +29 -0
  194. package/dist/http/routes/metrics.js.map +1 -0
  195. package/dist/http/server.d.ts +1 -0
  196. package/dist/http/server.d.ts.map +1 -1
  197. package/dist/http/server.js +41 -3
  198. package/dist/http/server.js.map +1 -1
  199. package/dist/ipc/socket-bridge.d.ts +1 -0
  200. package/dist/ipc/socket-bridge.d.ts.map +1 -1
  201. package/dist/ipc/socket-bridge.js +5 -1
  202. package/dist/ipc/socket-bridge.js.map +1 -1
  203. package/dist/jobs/bullmq-adapter.d.ts +154 -0
  204. package/dist/jobs/bullmq-adapter.d.ts.map +1 -0
  205. package/dist/jobs/bullmq-adapter.js +688 -0
  206. package/dist/jobs/bullmq-adapter.js.map +1 -0
  207. package/dist/jobs/bullmq-circuit-breaker.d.ts +133 -0
  208. package/dist/jobs/bullmq-circuit-breaker.d.ts.map +1 -0
  209. package/dist/jobs/bullmq-circuit-breaker.js +323 -0
  210. package/dist/jobs/bullmq-circuit-breaker.js.map +1 -0
  211. package/dist/jobs/bullmq-dlq-manager.d.ts +155 -0
  212. package/dist/jobs/bullmq-dlq-manager.d.ts.map +1 -0
  213. package/dist/jobs/bullmq-dlq-manager.js +325 -0
  214. package/dist/jobs/bullmq-dlq-manager.js.map +1 -0
  215. package/dist/jobs/bullmq-metrics.d.ts +104 -0
  216. package/dist/jobs/bullmq-metrics.d.ts.map +1 -0
  217. package/dist/jobs/bullmq-metrics.js +323 -0
  218. package/dist/jobs/bullmq-metrics.js.map +1 -0
  219. package/dist/jobs/bullmq-priority-service.d.ts +173 -0
  220. package/dist/jobs/bullmq-priority-service.d.ts.map +1 -0
  221. package/dist/jobs/bullmq-priority-service.js +390 -0
  222. package/dist/jobs/bullmq-priority-service.js.map +1 -0
  223. package/dist/jobs/bullmq-scheduler.d.ts +111 -0
  224. package/dist/jobs/bullmq-scheduler.d.ts.map +1 -0
  225. package/dist/jobs/bullmq-scheduler.js +300 -0
  226. package/dist/jobs/bullmq-scheduler.js.map +1 -0
  227. package/dist/jobs/bullmq-worker.d.ts +155 -0
  228. package/dist/jobs/bullmq-worker.d.ts.map +1 -0
  229. package/dist/jobs/bullmq-worker.js +651 -0
  230. package/dist/jobs/bullmq-worker.js.map +1 -0
  231. package/dist/jobs/circuit-breaker.d.ts +120 -0
  232. package/dist/jobs/circuit-breaker.d.ts.map +1 -0
  233. package/dist/jobs/circuit-breaker.js +262 -0
  234. package/dist/jobs/circuit-breaker.js.map +1 -0
  235. package/dist/jobs/index.d.ts +1 -1
  236. package/dist/jobs/index.d.ts.map +1 -1
  237. package/dist/jobs/index.js.map +1 -1
  238. package/dist/jobs/queue.d.ts +120 -1
  239. package/dist/jobs/queue.d.ts.map +1 -1
  240. package/dist/jobs/queue.js +487 -9
  241. package/dist/jobs/queue.js.map +1 -1
  242. package/dist/jobs/redis-connection.d.ts +50 -0
  243. package/dist/jobs/redis-connection.d.ts.map +1 -0
  244. package/dist/jobs/redis-connection.js +123 -0
  245. package/dist/jobs/redis-connection.js.map +1 -0
  246. package/dist/jobs/run-scheduler.js +163 -10
  247. package/dist/jobs/run-scheduler.js.map +1 -1
  248. package/dist/jobs/run-worker.js +101 -9
  249. package/dist/jobs/run-worker.js.map +1 -1
  250. package/dist/jobs/worker-thread.d.ts +6 -0
  251. package/dist/jobs/worker-thread.d.ts.map +1 -1
  252. package/dist/jobs/worker-thread.js +37 -8
  253. package/dist/jobs/worker-thread.js.map +1 -1
  254. package/dist/jobs/worker.d.ts +33 -0
  255. package/dist/jobs/worker.d.ts.map +1 -1
  256. package/dist/jobs/worker.js +358 -115
  257. package/dist/jobs/worker.js.map +1 -1
  258. package/dist/linq/async-enumerable.d.ts.map +1 -1
  259. package/dist/linq/async-enumerable.js.map +1 -1
  260. package/dist/linq/enumerable.d.ts.map +1 -1
  261. package/dist/linq/enumerable.js +10 -10
  262. package/dist/linq/enumerable.js.map +1 -1
  263. package/dist/metrics/collector.d.ts +26 -0
  264. package/dist/metrics/collector.d.ts.map +1 -0
  265. package/dist/metrics/collector.js +103 -0
  266. package/dist/metrics/collector.js.map +1 -0
  267. package/dist/polling/updates.controller.d.ts +57 -0
  268. package/dist/polling/updates.controller.d.ts.map +1 -0
  269. package/dist/polling/updates.controller.js +70 -0
  270. package/dist/polling/updates.controller.js.map +1 -0
  271. package/dist/repository/db-set.d.ts.map +1 -1
  272. package/dist/repository/db-set.js +12 -8
  273. package/dist/repository/db-set.js.map +1 -1
  274. package/dist/repository/ef-core.d.ts.map +1 -1
  275. package/dist/repository/ef-core.js +6 -6
  276. package/dist/repository/ef-core.js.map +1 -1
  277. package/dist/repository/factory.d.ts +1 -1
  278. package/dist/repository/factory.d.ts.map +1 -1
  279. package/dist/repository/factory.js.map +1 -1
  280. package/dist/repository/interfaces.d.ts.map +1 -1
  281. package/dist/repository/interfaces.js.map +1 -1
  282. package/dist/repository/queryable.d.ts.map +1 -1
  283. package/dist/repository/queryable.js.map +1 -1
  284. package/dist/rpc/adapter.d.ts.map +1 -1
  285. package/dist/rpc/adapter.js.map +1 -1
  286. package/dist/rpc/router.d.ts +2 -2
  287. package/dist/rpc/router.d.ts.map +1 -1
  288. package/dist/rpc/router.js +1 -1
  289. package/dist/rpc/router.js.map +1 -1
  290. package/dist/schema/relationship-types.d.ts +7 -2
  291. package/dist/schema/relationship-types.js +1 -1
  292. package/dist/schema/types.d.ts.map +1 -1
  293. package/dist/services/admin/app-users.service.d.ts +1 -1
  294. package/dist/services/admin/app-users.service.js +31 -38
  295. package/dist/services/admin/auth.service.d.ts +1 -1
  296. package/dist/services/admin/auth.service.js +11 -5
  297. package/dist/services/admin/backup/BackupOrchestrator.d.ts.map +1 -1
  298. package/dist/services/admin/backup/BackupOrchestrator.js +4 -7
  299. package/dist/services/admin/backup/BackupOrchestrator.js.map +1 -1
  300. package/dist/services/admin/backup/SqliteGenerator.js +8 -8
  301. package/dist/services/admin/backup/StorageStreamer.d.ts +3 -3
  302. package/dist/services/admin/backup/StorageStreamer.d.ts.map +1 -1
  303. package/dist/services/admin/backup/StorageStreamer.js +16 -55
  304. package/dist/services/admin/backup/StorageStreamer.js.map +1 -1
  305. package/dist/services/admin/backup/ZipComposer.d.ts +2 -0
  306. package/dist/services/admin/backup/ZipComposer.d.ts.map +1 -1
  307. package/dist/services/admin/backup/ZipComposer.js +23 -0
  308. package/dist/services/admin/backup/ZipComposer.js.map +1 -1
  309. package/dist/services/admin/backup.service.d.ts.map +1 -1
  310. package/dist/services/admin/backup.service.js.map +1 -1
  311. package/dist/services/admin/data.service.d.ts.map +1 -1
  312. package/dist/services/admin/data.service.js +287 -286
  313. package/dist/services/admin/data.service.js.map +1 -1
  314. package/dist/services/admin/tenants.service.d.ts.map +1 -1
  315. package/dist/services/admin/tenants.service.js.map +1 -1
  316. package/dist/services/auth.service.d.ts +2 -3
  317. package/dist/services/auth.service.js +16 -16
  318. package/dist/services/invite.service.d.ts +1 -1
  319. package/dist/services/invite.service.js +17 -15
  320. package/dist/services/storage.service.d.ts.map +1 -1
  321. package/dist/services/storage.service.js +35 -4
  322. package/dist/services/storage.service.js.map +1 -1
  323. package/dist/services/system.service.d.ts.map +1 -1
  324. package/dist/services/system.service.js +1 -1
  325. package/dist/services/system.service.js.map +1 -1
  326. package/dist/services/tenant.service.d.ts +1 -1
  327. package/dist/services/tenant.service.js +43 -31
  328. package/dist/sse/subscriptions.controller.d.ts +57 -0
  329. package/dist/sse/subscriptions.controller.d.ts.map +1 -0
  330. package/dist/sse/subscriptions.controller.js +127 -0
  331. package/dist/sse/subscriptions.controller.js.map +1 -0
  332. package/dist/startup/bootstrap.d.ts +13 -2
  333. package/dist/startup/bootstrap.d.ts.map +1 -1
  334. package/dist/startup/bootstrap.js +85 -13
  335. package/dist/startup/bootstrap.js.map +1 -1
  336. package/dist/storage/s3-backend.d.ts.map +1 -1
  337. package/dist/storage/s3-backend.js +3 -3
  338. package/dist/storage/s3-backend.js.map +1 -1
  339. package/dist/websocket/server.d.ts.map +1 -1
  340. package/dist/websocket/server.js +14 -3
  341. package/dist/websocket/server.js.map +1 -1
  342. package/docker/README.md +309 -11
  343. package/package.json +214 -210
  344. package/templates/.env.example +115 -55
  345. package/templates/archlast.config.js +51 -37
  346. package/templates/docker-compose.prod.yml +32 -15
  347. package/templates/docker-compose.yml +117 -33
@@ -0,0 +1,50 @@
1
+ import Redis from "ioredis";
2
+ export interface RedisConnectionOptions {
3
+ host?: string;
4
+ port?: number;
5
+ password?: string;
6
+ db?: number;
7
+ maxRetriesPerRequest?: number | null;
8
+ enableOfflineQueue?: boolean;
9
+ }
10
+ /**
11
+ * Creates a Redis connection with the specified options.
12
+ * Follows BullMQ requirements for worker connections:
13
+ * - maxRetriesPerRequest must be null for workers
14
+ * - enableOfflineQueue should be false for workers
15
+ *
16
+ * @param options - Connection configuration options
17
+ * @returns Configured Redis instance
18
+ */
19
+ export declare function createRedisConnection(options?: RedisConnectionOptions): Redis;
20
+ /**
21
+ * Creates a Redis connection for cache operations (DB 0).
22
+ * Uses standard retry configuration suitable for cache operations.
23
+ *
24
+ * @returns Redis instance configured for cache operations
25
+ */
26
+ export declare function createCacheRedisConnection(): Redis;
27
+ /**
28
+ * Creates a Redis connection for BullMQ workers (DB 1).
29
+ * Uses maxRetriesPerRequest: null as required by BullMQ workers.
30
+ *
31
+ * @returns Redis instance configured for BullMQ workers
32
+ */
33
+ export declare function createBullMQRedisConnection(): Redis;
34
+ /**
35
+ * Creates a Redis connection for BullMQ producers (DB 1).
36
+ * Uses maxRetriesPerRequest: 3 for reliable job submission.
37
+ *
38
+ * @returns Redis instance configured for BullMQ producers
39
+ */
40
+ export declare function createBullMQProducerConnection(): Redis;
41
+ /**
42
+ * Checks the health of a Redis connection.
43
+ * Tests connectivity using the PING command with a timeout.
44
+ *
45
+ * @param redis - Redis instance to check
46
+ * @param timeoutMs - Timeout in milliseconds (default: 5000)
47
+ * @returns Promise<boolean> - true if healthy, false otherwise
48
+ */
49
+ export declare function checkRedisHealth(redis: Redis, timeoutMs?: number): Promise<boolean>;
50
+ //# sourceMappingURL=redis-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-connection.d.ts","sourceRoot":"","sources":["../../src/jobs/redis-connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,WAAW,sBAAsB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC;AAUD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,sBAA2B,GAAG,KAAK,CA8BjF;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,KAAK,CAMlD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,KAAK,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,IAAI,KAAK,CAMtD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B/F"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createRedisConnection = createRedisConnection;
7
+ exports.createCacheRedisConnection = createCacheRedisConnection;
8
+ exports.createBullMQRedisConnection = createBullMQRedisConnection;
9
+ exports.createBullMQProducerConnection = createBullMQProducerConnection;
10
+ exports.checkRedisHealth = checkRedisHealth;
11
+ const ioredis_1 = __importDefault(require("ioredis"));
12
+ const DEFAULT_CONFIG = {
13
+ host: process.env.REDIS_HOST || "localhost",
14
+ port: parseInt(process.env.REDIS_PORT || "6379", 10),
15
+ password: process.env.REDIS_PASSWORD,
16
+ cacheDb: 0,
17
+ bullmqDb: parseInt(process.env.BULLMQ_REDIS_DB || "1", 10),
18
+ };
19
+ /**
20
+ * Creates a Redis connection with the specified options.
21
+ * Follows BullMQ requirements for worker connections:
22
+ * - maxRetriesPerRequest must be null for workers
23
+ * - enableOfflineQueue should be false for workers
24
+ *
25
+ * @param options - Connection configuration options
26
+ * @returns Configured Redis instance
27
+ */
28
+ function createRedisConnection(options = {}) {
29
+ const { host = DEFAULT_CONFIG.host, port = DEFAULT_CONFIG.port, password = DEFAULT_CONFIG.password, db = DEFAULT_CONFIG.cacheDb, maxRetriesPerRequest = 3, enableOfflineQueue = true, } = options;
30
+ return new ioredis_1.default({
31
+ host,
32
+ port,
33
+ password,
34
+ db,
35
+ maxRetriesPerRequest,
36
+ enableReadyCheck: true,
37
+ enableOfflineQueue,
38
+ retryStrategy: (times) => {
39
+ const delay = Math.min(times * 50, 2000);
40
+ return delay;
41
+ },
42
+ reconnectOnError: (err) => {
43
+ const targetError = "READONLY";
44
+ if (err.message.includes(targetError)) {
45
+ return true;
46
+ }
47
+ return false;
48
+ },
49
+ });
50
+ }
51
+ /**
52
+ * Creates a Redis connection for cache operations (DB 0).
53
+ * Uses standard retry configuration suitable for cache operations.
54
+ *
55
+ * @returns Redis instance configured for cache operations
56
+ */
57
+ function createCacheRedisConnection() {
58
+ return createRedisConnection({
59
+ db: DEFAULT_CONFIG.cacheDb,
60
+ maxRetriesPerRequest: 3,
61
+ enableOfflineQueue: true,
62
+ });
63
+ }
64
+ /**
65
+ * Creates a Redis connection for BullMQ workers (DB 1).
66
+ * Uses maxRetriesPerRequest: null as required by BullMQ workers.
67
+ *
68
+ * @returns Redis instance configured for BullMQ workers
69
+ */
70
+ function createBullMQRedisConnection() {
71
+ return createRedisConnection({
72
+ db: DEFAULT_CONFIG.bullmqDb,
73
+ maxRetriesPerRequest: null,
74
+ enableOfflineQueue: false,
75
+ });
76
+ }
77
+ /**
78
+ * Creates a Redis connection for BullMQ producers (DB 1).
79
+ * Uses maxRetriesPerRequest: 3 for reliable job submission.
80
+ *
81
+ * @returns Redis instance configured for BullMQ producers
82
+ */
83
+ function createBullMQProducerConnection() {
84
+ return createRedisConnection({
85
+ db: DEFAULT_CONFIG.bullmqDb,
86
+ maxRetriesPerRequest: 3,
87
+ enableOfflineQueue: true,
88
+ });
89
+ }
90
+ /**
91
+ * Checks the health of a Redis connection.
92
+ * Tests connectivity using the PING command with a timeout.
93
+ *
94
+ * @param redis - Redis instance to check
95
+ * @param timeoutMs - Timeout in milliseconds (default: 5000)
96
+ * @returns Promise<boolean> - true if healthy, false otherwise
97
+ */
98
+ async function checkRedisHealth(redis, timeoutMs = 5000) {
99
+ if (!redis) {
100
+ console.warn("Redis health check failed: Redis instance is null");
101
+ return false;
102
+ }
103
+ // Check if client is in ready state
104
+ if (redis.status !== "ready") {
105
+ console.warn(`Redis health check failed: Redis status is ${redis.status}`);
106
+ return false;
107
+ }
108
+ try {
109
+ // Race between PING command and timeout
110
+ const pingPromise = redis.ping();
111
+ const timeoutPromise = new Promise((_, reject) => {
112
+ setTimeout(() => reject(new Error("Health check timeout")), timeoutMs);
113
+ });
114
+ await Promise.race([pingPromise, timeoutPromise]);
115
+ return true;
116
+ }
117
+ catch (err) {
118
+ const message = err instanceof Error ? err.message : String(err);
119
+ console.warn(`Redis health check failed: ${message}`);
120
+ return false;
121
+ }
122
+ }
123
+ //# sourceMappingURL=redis-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-connection.js","sourceRoot":"","sources":["../../src/jobs/redis-connection.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,18 @@ const factory_js_1 = require("../db/factory.js");
14
14
  const cachedclient_js_1 = require("../db/cachedclient.js");
15
15
  const runtime_loader_js_1 = require("./runtime-loader.js");
16
16
  const manager_js_1 = require("../storage/manager.js");
17
- const fs_backend_js_1 = __importDefault(require("../storage/fs-backend.js"));
18
17
  const s3_backend_js_1 = __importDefault(require("../storage/s3-backend.js"));
19
18
  const paths_js_1 = require("../config/paths.js");
20
19
  const index_js_1 = require("../config/index.js");
21
20
  const path_1 = require("path");
21
+ // BullMQ imports
22
+ const bullmq_adapter_js_1 = require("./bullmq-adapter.js");
23
+ const bullmq_scheduler_js_1 = require("./bullmq-scheduler.js");
24
+ const redis_connection_js_1 = require("./redis-connection.js");
22
25
  const config = (0, index_js_1.loadServerConfig)();
23
26
  (0, paths_js_1.ensureAllDbDirectories)(config.paths);
27
+ // Feature flag for BullMQ
28
+ const useBullMQ = process.env.BULLMQ_ENABLED !== "false";
24
29
  /**
25
30
  * Scheduler entrypoint.
26
31
  *
@@ -76,23 +81,171 @@ async function start() {
76
81
  message: "[Scheduler] Failed to connect to IPC sidecar, continuing without IPC",
77
82
  });
78
83
  }
79
- // Create cache client for engine
80
- const cacheClient = ipcClient ? new client_js_1.CacheClient(ipcClient) : null;
81
- if (cacheClient) {
84
+ if (useBullMQ) {
85
+ // BullMQ Scheduler Path
86
+ logger_js_1.logger.log({
87
+ timestamp: Date.now(),
88
+ level: "info",
89
+ kind: "system",
90
+ message: "[Scheduler] Initializing BullMQ scheduler...",
91
+ });
92
+ // Create Redis connection for BullMQ
93
+ const redisConnection = (0, redis_connection_js_1.createBullMQProducerConnection)();
94
+ // Use database client for BullMQJobQueue (required by interface)
95
+ const rawDb = (0, factory_js_1.createDatabaseClient)();
96
+ // Create BullMQ job queue adapter
97
+ const jobQueue = new bullmq_adapter_js_1.BullMQJobQueue({
98
+ queueName: process.env.JOB_QUEUE_NAME ?? "archlast-jobs",
99
+ db: rawDb,
100
+ });
101
+ // Create BullMQ scheduler
102
+ const scheduler = new bullmq_scheduler_js_1.BullMQScheduler(jobQueue, redisConnection);
103
+ // Subscribe to sys:schedule channel for IPC commands
104
+ if (ipcClient) {
105
+ try {
106
+ await ipcClient.subscribe("sys:schedule", async (payload) => {
107
+ logger_js_1.logger.log({
108
+ timestamp: Date.now(),
109
+ level: "info",
110
+ kind: "system",
111
+ message: "[Scheduler] Received schedule command via IPC:",
112
+ context: { data: [payload.type] },
113
+ });
114
+ try {
115
+ if (payload.type === "ADD_JOB") {
116
+ // Extract schedule parameters
117
+ const { name, cron, preset, interval, payload: jobPayload, oneTime, maxAttempts, } = payload;
118
+ let job;
119
+ if (oneTime) {
120
+ // Import SchedulePreset from bullmq-scheduler
121
+ const { SchedulePreset } = await import("./bullmq-scheduler.js");
122
+ job = {
123
+ name,
124
+ preset: SchedulePreset.RunNow,
125
+ payload: jobPayload,
126
+ maxAttempts,
127
+ };
128
+ }
129
+ else if (preset) {
130
+ job = { name, preset, payload: jobPayload, maxAttempts };
131
+ }
132
+ else if (interval) {
133
+ job = {
134
+ name,
135
+ cron: (0, scheduler_js_1.intervalToCron)(interval),
136
+ payload: jobPayload,
137
+ maxAttempts,
138
+ };
139
+ }
140
+ else {
141
+ job = {
142
+ name,
143
+ cron: cron || "* * * * *",
144
+ payload: jobPayload,
145
+ maxAttempts,
146
+ };
147
+ }
148
+ // Delegate to BullMQ scheduler
149
+ scheduler.add(job);
150
+ logger_js_1.logger.log({
151
+ timestamp: Date.now(),
152
+ level: "info",
153
+ kind: "system",
154
+ message: "[Scheduler] Job scheduled:",
155
+ context: name,
156
+ });
157
+ }
158
+ else if (payload.type === "CANCEL_JOB") {
159
+ scheduler.cancel(payload.jobId);
160
+ logger_js_1.logger.log({
161
+ timestamp: Date.now(),
162
+ level: "info",
163
+ kind: "system",
164
+ message: "[Scheduler] Job cancelled:",
165
+ context: { data: [payload.jobId] },
166
+ });
167
+ }
168
+ }
169
+ catch (err) {
170
+ logger_js_1.logger.log({
171
+ timestamp: Date.now(),
172
+ level: "error",
173
+ kind: "system",
174
+ message: "[Scheduler] Error processing schedule command:",
175
+ context: { err },
176
+ });
177
+ }
178
+ });
179
+ logger_js_1.logger.log({
180
+ timestamp: Date.now(),
181
+ level: "info",
182
+ kind: "system",
183
+ message: "[Scheduler] Subscribed to sys:schedule channel",
184
+ });
185
+ }
186
+ catch (err) {
187
+ logger_js_1.logger.log({
188
+ timestamp: Date.now(),
189
+ level: "error",
190
+ kind: "system",
191
+ message: "[Scheduler] Failed to subscribe to sys:schedule:",
192
+ context: { err },
193
+ });
194
+ }
195
+ }
196
+ logger_js_1.logger.log({
197
+ timestamp: Date.now(),
198
+ level: "info",
199
+ kind: "system",
200
+ message: "[Scheduler] BullMQ scheduler started",
201
+ });
202
+ // Handle graceful shutdown
203
+ const signals = ["SIGINT", "SIGTERM"];
204
+ signals.forEach((sig) => process.on(sig, () => {
205
+ logger_js_1.logger.log({
206
+ timestamp: Date.now(),
207
+ level: "info",
208
+ kind: "system",
209
+ message: "[Scheduler] Shutting down BullMQ scheduler...",
210
+ });
211
+ scheduler.stopAll();
212
+ jobQueue.dispose();
213
+ process.exit(0);
214
+ }));
215
+ // Keep process alive with heartbeat interval
216
+ const heartbeatInterval = setInterval(() => {
217
+ // No-op to keep event loop alive
218
+ }, 30000);
219
+ // Store interval reference for cleanup
220
+ global.__schedulerHeartbeat = heartbeatInterval;
221
+ return;
222
+ }
223
+ // Legacy SQLite Scheduler Path
224
+ // Create cache client for engine (connect to cache.sock, not ipc.sock)
225
+ let cacheClient = null;
226
+ try {
227
+ const cacheSocketPath = (0, path_1.join)(process.cwd(), config.paths.root, "cache.sock");
228
+ const cacheIpcClient = new socket_bridge_js_1.IpcClient(cacheSocketPath);
229
+ await cacheIpcClient.connect();
230
+ cacheClient = new client_js_1.CacheClient(cacheIpcClient);
82
231
  await cacheClient.connect();
83
232
  }
233
+ catch (err) {
234
+ logger_js_1.logger.log({
235
+ timestamp: Date.now(),
236
+ level: "warn",
237
+ kind: "system",
238
+ message: "[Scheduler] Failed to connect to cache sidecar, continuing without cache",
239
+ context: { err },
240
+ });
241
+ }
84
242
  // Use database client from factory (supports both SQLite and document store)
85
243
  const rawDb = (0, factory_js_1.createDatabaseClient)();
86
244
  const db = new cachedclient_js_1.CachedDatabaseClient(rawDb, cacheClient);
87
245
  // Set rawDb on logger for persistence (uncached to avoid cache invalidation)
88
246
  logger_js_1.logger.setDb(rawDb);
89
247
  // Initialize storage backend
90
- const storageBackend = config.storage.s3Enabled
91
- ? new s3_backend_js_1.default()
92
- : new fs_backend_js_1.default({
93
- root: config.storage.root,
94
- signingSecret: config.storage.signingSecret,
95
- });
248
+ const storageBackend = new s3_backend_js_1.default();
96
249
  const storageManager = new manager_js_1.StorageManager({
97
250
  backend: storageBackend,
98
251
  db: db,
@@ -1 +1 @@
1
- {"version":3,"file":"run-scheduler.js","sourceRoot":"","sources":["../../src/jobs/run-scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-scheduler.js","sourceRoot":"","sources":["../../src/jobs/run-scheduler.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,6 @@ const cachedclient_js_1 = require("../db/cachedclient.js");
11
11
  const worker_js_1 = require("./worker.js");
12
12
  const manager_js_1 = require("../storage/manager.js");
13
13
  const queue_js_1 = require("./queue.js");
14
- const fs_backend_js_1 = __importDefault(require("../storage/fs-backend.js"));
15
14
  const s3_backend_js_1 = __importDefault(require("../storage/s3-backend.js"));
16
15
  const socket_bridge_js_1 = require("../ipc/socket-bridge.js");
17
16
  const client_js_1 = require("../cache/client.js");
@@ -19,8 +18,13 @@ const logger_js_1 = require("../logging/logger.js");
19
18
  const paths_js_1 = require("../config/paths.js");
20
19
  const index_js_1 = require("../config/index.js");
21
20
  const path_1 = require("path");
21
+ // BullMQ imports
22
+ const bullmq_adapter_js_1 = require("./bullmq-adapter.js");
23
+ const bullmq_worker_js_1 = require("./bullmq-worker.js");
22
24
  const config = (0, index_js_1.loadServerConfig)();
23
25
  (0, paths_js_1.ensureAllDbDirectories)(config.paths);
26
+ // Feature flag for BullMQ
27
+ const useBullMQ = process.env.BULLMQ_ENABLED !== "false";
24
28
  /**
25
29
  * Worker entrypoint.
26
30
  *
@@ -28,6 +32,96 @@ const config = (0, index_js_1.loadServerConfig)();
28
32
  * (same as the main server) so jobs can invoke deployed functions by name.
29
33
  */
30
34
  async function bootstrapAndStart() {
35
+ if (useBullMQ) {
36
+ // Initialize BullMQ components
37
+ logger_js_1.logger.log({
38
+ timestamp: Date.now(),
39
+ level: "info",
40
+ kind: "system",
41
+ message: "[Worker] Initializing BullMQ worker...",
42
+ });
43
+ // Initialize IPC/cache clients similar to legacy worker path
44
+ const ipcSocketPath = (0, path_1.join)(process.cwd(), config.paths.root, "ipc.sock");
45
+ let ipcClient = null;
46
+ let cacheClient = null;
47
+ try {
48
+ ipcClient = new socket_bridge_js_1.IpcClient(ipcSocketPath);
49
+ await ipcClient.connect();
50
+ logger_js_1.logger.setIpcClient(ipcClient);
51
+ const cacheSocketPath = (0, path_1.join)(process.cwd(), config.paths.root, "cache.sock");
52
+ const cacheIpcClient = new socket_bridge_js_1.IpcClient(cacheSocketPath);
53
+ await cacheIpcClient.connect();
54
+ cacheClient = new client_js_1.CacheClient(cacheIpcClient);
55
+ await cacheClient.connect();
56
+ }
57
+ catch (err) {
58
+ logger_js_1.logger.log({
59
+ timestamp: Date.now(),
60
+ level: "warn",
61
+ kind: "system",
62
+ message: "[Worker] Failed to connect to IPC/cache sidecars, continuing without IPC",
63
+ context: { err },
64
+ });
65
+ }
66
+ // Use database client for BullMQJobQueue and engine runtime
67
+ const rawDb = (0, factory_js_1.createDatabaseClient)();
68
+ const db = new cachedclient_js_1.CachedDatabaseClient(rawDb, cacheClient);
69
+ logger_js_1.logger.setDb(rawDb);
70
+ const storageBackend = new s3_backend_js_1.default();
71
+ const storageManager = new manager_js_1.StorageManager({
72
+ backend: storageBackend,
73
+ db,
74
+ stagingDir: `${config.paths.root}/storage/.staging`,
75
+ logger: logger_js_1.logger,
76
+ });
77
+ const graph = new graph_js_1.DependencyGraph();
78
+ // Create BullMQ job queue adapter
79
+ const jobQueue = new bullmq_adapter_js_1.BullMQJobQueue({
80
+ queueName: process.env.JOB_QUEUE_NAME ?? "archlast-jobs",
81
+ db: rawDb,
82
+ });
83
+ const engine = new runner_js_1.ExecutionEngine(db, graph, storageManager, jobQueue, cacheClient, ipcClient);
84
+ // Load persisted deployment so worker can execute function jobs
85
+ await (0, runtime_loader_js_1.loadRuntime)(engine, db);
86
+ // Create BullMQ worker manager
87
+ const workerManager = new bullmq_worker_js_1.BullMQWorkerManager(process.env.JOB_QUEUE_NAME ?? "archlast-jobs", jobQueue, {
88
+ concurrency: Number(process.env.JOB_WORKER_CONCURRENCY ?? 5),
89
+ lockDuration: Number(process.env.JOB_LOCK_DURATION ?? 30000),
90
+ engineDispatcher: {
91
+ runFunction: (name, payload, auth, queryId) => engine.runFunction(name, payload, auth, queryId),
92
+ },
93
+ });
94
+ workerManager.setIpcClient(ipcClient);
95
+ await workerManager.initialize();
96
+ logger_js_1.logger.log({
97
+ timestamp: Date.now(),
98
+ level: "info",
99
+ kind: "system",
100
+ message: "[Worker] BullMQ worker started",
101
+ });
102
+ // Handle graceful shutdown
103
+ const gracefulShutdown = async () => {
104
+ logger_js_1.logger.log({
105
+ timestamp: Date.now(),
106
+ level: "info",
107
+ kind: "system",
108
+ message: "[Worker] Shutting down BullMQ worker...",
109
+ });
110
+ await workerManager.stop(Number(process.env.JOB_WORKER_GRACE_PERIOD ?? 30000));
111
+ await jobQueue.dispose();
112
+ if (cacheClient) {
113
+ await cacheClient.disconnect();
114
+ }
115
+ if (ipcClient) {
116
+ await ipcClient.disconnect();
117
+ }
118
+ process.exit(0);
119
+ };
120
+ process.on("SIGINT", gracefulShutdown);
121
+ process.on("SIGTERM", gracefulShutdown);
122
+ return;
123
+ }
124
+ // Legacy SQLite worker path
31
125
  // Initialize IPC client for worker logger
32
126
  const ipcSocketPath = (0, path_1.join)(process.cwd(), config.paths.root, "ipc.sock");
33
127
  let ipcClient = null;
@@ -67,8 +161,11 @@ async function bootstrapAndStart() {
67
161
  });
68
162
  process.exit(0);
69
163
  });
70
- // Create cache client for engine
71
- cacheClient = new client_js_1.CacheClient(ipcClient);
164
+ // Create cache client for engine (connect to cache.sock, not ipc.sock)
165
+ const cacheSocketPath = (0, path_1.join)(process.cwd(), config.paths.root, "cache.sock");
166
+ const cacheIpcClient = new socket_bridge_js_1.IpcClient(cacheSocketPath);
167
+ await cacheIpcClient.connect();
168
+ cacheClient = new client_js_1.CacheClient(cacheIpcClient);
72
169
  await cacheClient.connect();
73
170
  }
74
171
  catch (err) {
@@ -86,12 +183,7 @@ async function bootstrapAndStart() {
86
183
  // Set rawDb on logger for persistence (uncached to avoid cache invalidation)
87
184
  logger_js_1.logger.setDb(rawDb);
88
185
  // Initialize storage backend
89
- const storageBackend = config.storage.s3Enabled
90
- ? new s3_backend_js_1.default()
91
- : new fs_backend_js_1.default({
92
- root: config.storage.root,
93
- signingSecret: config.storage.signingSecret,
94
- });
186
+ const storageBackend = new s3_backend_js_1.default();
95
187
  const storageManager = new manager_js_1.StorageManager({
96
188
  backend: storageBackend,
97
189
  db: db,
@@ -1 +1 @@
1
- {"version":3,"file":"run-worker.js","sourceRoot":"","sources":["../../src/jobs/run-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-worker.js","sourceRoot":"","sources":["../../src/jobs/run-worker.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,13 @@ export declare class WorkerPool {
20
20
  dispose(): void;
21
21
  private spawn;
22
22
  private inflight;
23
+ private workersTerminated;
24
+ private pendingResponses;
25
+ private isWorkerAlive;
26
+ private markWorkerTerminated;
27
+ private safePostMessage;
23
28
  private drain;
29
+ hasPendingResponses(): boolean;
24
30
  private markIdle;
25
31
  }
26
32
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../src/jobs/worker-thread.ts"],"names":[],"mappings":"AAgCA,KAAK,cAAc,GACb;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAmFR,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,EAAE,MAAM;IAQlB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7E,OAAO;IAUP,OAAO,CAAC,KAAK;IA6Bb,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,KAAK;IAoBb,OAAO,CAAC,QAAQ;CAKnB"}
1
+ {"version":3,"file":"worker-thread.d.ts","sourceRoot":"","sources":["../../src/jobs/worker-thread.ts"],"names":[],"mappings":"AA0BA,KAAK,cAAc,GACb;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAmFR,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,EAAE,MAAM;IAQlB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAO7E,OAAO;IAWP,OAAO,CAAC,KAAK;IAmCb,OAAO,CAAC,QAAQ,CAA8C;IAE9D,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,gBAAgB,CAA8D;IAEtF,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,KAAK;IAqBb,mBAAmB,IAAI,OAAO;IAI9B,OAAO,CAAC,QAAQ;CAKnB"}