@shipfox/api-triggers 2.0.0

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 (331) hide show
  1. package/.turbo/turbo-build.log +2 -0
  2. package/.turbo/turbo-type$colon$emit.log +1 -0
  3. package/.turbo/turbo-type.log +1 -0
  4. package/CHANGELOG.md +224 -0
  5. package/LICENSE +21 -0
  6. package/README.md +300 -0
  7. package/dist/config.d.ts +10 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +42 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/core/compute-next-fire-at.d.ts +9 -0
  12. package/dist/core/compute-next-fire-at.d.ts.map +1 -0
  13. package/dist/core/compute-next-fire-at.js +28 -0
  14. package/dist/core/compute-next-fire-at.js.map +1 -0
  15. package/dist/core/config.d.ts +26 -0
  16. package/dist/core/config.d.ts.map +1 -0
  17. package/dist/core/config.js +68 -0
  18. package/dist/core/config.js.map +1 -0
  19. package/dist/core/dispatch-integration-event.d.ts +14 -0
  20. package/dist/core/dispatch-integration-event.d.ts.map +1 -0
  21. package/dist/core/dispatch-integration-event.js +136 -0
  22. package/dist/core/dispatch-integration-event.js.map +1 -0
  23. package/dist/core/drain-cron-schedules.d.ts +30 -0
  24. package/dist/core/drain-cron-schedules.d.ts.map +1 -0
  25. package/dist/core/drain-cron-schedules.js +76 -0
  26. package/dist/core/drain-cron-schedules.js.map +1 -0
  27. package/dist/core/entities/cron-schedule.d.ts +11 -0
  28. package/dist/core/entities/cron-schedule.d.ts.map +1 -0
  29. package/dist/core/entities/cron-schedule.js +3 -0
  30. package/dist/core/entities/cron-schedule.js.map +1 -0
  31. package/dist/core/entities/decision.d.ts +23 -0
  32. package/dist/core/entities/decision.d.ts.map +1 -0
  33. package/dist/core/entities/decision.js +7 -0
  34. package/dist/core/entities/decision.js.map +1 -0
  35. package/dist/core/entities/index.d.ts +3 -0
  36. package/dist/core/entities/index.d.ts.map +1 -0
  37. package/dist/core/entities/index.js +3 -0
  38. package/dist/core/entities/index.js.map +1 -0
  39. package/dist/core/entities/job-listener-subscription.d.ts +14 -0
  40. package/dist/core/entities/job-listener-subscription.d.ts.map +1 -0
  41. package/dist/core/entities/job-listener-subscription.js +3 -0
  42. package/dist/core/entities/job-listener-subscription.js.map +1 -0
  43. package/dist/core/entities/received-event.d.ts +28 -0
  44. package/dist/core/entities/received-event.d.ts.map +1 -0
  45. package/dist/core/entities/received-event.js +14 -0
  46. package/dist/core/entities/received-event.js.map +1 -0
  47. package/dist/core/entities/subscription.d.ts +13 -0
  48. package/dist/core/entities/subscription.d.ts.map +1 -0
  49. package/dist/core/entities/subscription.js +3 -0
  50. package/dist/core/entities/subscription.js.map +1 -0
  51. package/dist/core/errors.d.ts +25 -0
  52. package/dist/core/errors.d.ts.map +1 -0
  53. package/dist/core/errors.js +41 -0
  54. package/dist/core/errors.js.map +1 -0
  55. package/dist/core/fire-cron.d.ts +28 -0
  56. package/dist/core/fire-cron.d.ts.map +1 -0
  57. package/dist/core/fire-cron.js +85 -0
  58. package/dist/core/fire-cron.js.map +1 -0
  59. package/dist/core/fire-manual.d.ts +9 -0
  60. package/dist/core/fire-manual.d.ts.map +1 -0
  61. package/dist/core/fire-manual.js +87 -0
  62. package/dist/core/fire-manual.js.map +1 -0
  63. package/dist/core/index.d.ts +11 -0
  64. package/dist/core/index.d.ts.map +1 -0
  65. package/dist/core/index.js +10 -0
  66. package/dist/core/index.js.map +1 -0
  67. package/dist/core/record-trigger-history.d.ts +35 -0
  68. package/dist/core/record-trigger-history.d.ts.map +1 -0
  69. package/dist/core/record-trigger-history.js +75 -0
  70. package/dist/core/record-trigger-history.js.map +1 -0
  71. package/dist/core/route-event-to-job-listeners.d.ts +31 -0
  72. package/dist/core/route-event-to-job-listeners.d.ts.map +1 -0
  73. package/dist/core/route-event-to-job-listeners.js +140 -0
  74. package/dist/core/route-event-to-job-listeners.js.map +1 -0
  75. package/dist/db/cron-schedules.d.ts +36 -0
  76. package/dist/db/cron-schedules.d.ts.map +1 -0
  77. package/dist/db/cron-schedules.js +104 -0
  78. package/dist/db/cron-schedules.js.map +1 -0
  79. package/dist/db/db.d.ts +2515 -0
  80. package/dist/db/db.d.ts.map +1 -0
  81. package/dist/db/db.js +28 -0
  82. package/dist/db/db.js.map +1 -0
  83. package/dist/db/event-history.d.ts +50 -0
  84. package/dist/db/event-history.d.ts.map +1 -0
  85. package/dist/db/event-history.js +207 -0
  86. package/dist/db/event-history.js.map +1 -0
  87. package/dist/db/event-queries.d.ts +38 -0
  88. package/dist/db/event-queries.d.ts.map +1 -0
  89. package/dist/db/event-queries.js +78 -0
  90. package/dist/db/event-queries.js.map +1 -0
  91. package/dist/db/index.d.ts +11 -0
  92. package/dist/db/index.d.ts.map +1 -0
  93. package/dist/db/index.js +14 -0
  94. package/dist/db/index.js.map +1 -0
  95. package/dist/db/job-listener-subscriptions.d.ts +24 -0
  96. package/dist/db/job-listener-subscriptions.d.ts.map +1 -0
  97. package/dist/db/job-listener-subscriptions.js +69 -0
  98. package/dist/db/job-listener-subscriptions.js.map +1 -0
  99. package/dist/db/received-events.d.ts +7 -0
  100. package/dist/db/received-events.d.ts.map +1 -0
  101. package/dist/db/received-events.js +11 -0
  102. package/dist/db/received-events.js.map +1 -0
  103. package/dist/db/schema/common.d.ts +2 -0
  104. package/dist/db/schema/common.d.ts.map +1 -0
  105. package/dist/db/schema/common.js +4 -0
  106. package/dist/db/schema/common.js.map +1 -0
  107. package/dist/db/schema/cron-schedules.d.ts +148 -0
  108. package/dist/db/schema/cron-schedules.d.ts.map +1 -0
  109. package/dist/db/schema/cron-schedules.js +39 -0
  110. package/dist/db/schema/cron-schedules.js.map +1 -0
  111. package/dist/db/schema/decisions.d.ts +284 -0
  112. package/dist/db/schema/decisions.d.ts.map +1 -0
  113. package/dist/db/schema/decisions.js +70 -0
  114. package/dist/db/schema/decisions.js.map +1 -0
  115. package/dist/db/schema/job-listener-subscriptions.d.ts +185 -0
  116. package/dist/db/schema/job-listener-subscriptions.d.ts.map +1 -0
  117. package/dist/db/schema/job-listener-subscriptions.js +41 -0
  118. package/dist/db/schema/job-listener-subscriptions.js.map +1 -0
  119. package/dist/db/schema/outbox.d.ts +195 -0
  120. package/dist/db/schema/outbox.d.ts.map +1 -0
  121. package/dist/db/schema/outbox.js +5 -0
  122. package/dist/db/schema/outbox.js.map +1 -0
  123. package/dist/db/schema/received-events.d.ts +544 -0
  124. package/dist/db/schema/received-events.d.ts.map +1 -0
  125. package/dist/db/schema/received-events.js +86 -0
  126. package/dist/db/schema/received-events.js.map +1 -0
  127. package/dist/db/schema/subscriptions.d.ts +182 -0
  128. package/dist/db/schema/subscriptions.d.ts.map +1 -0
  129. package/dist/db/schema/subscriptions.js +39 -0
  130. package/dist/db/schema/subscriptions.js.map +1 -0
  131. package/dist/db/subscriptions.d.ts +26 -0
  132. package/dist/db/subscriptions.d.ts.map +1 -0
  133. package/dist/db/subscriptions.js +103 -0
  134. package/dist/db/subscriptions.js.map +1 -0
  135. package/dist/index.d.ts +7 -0
  136. package/dist/index.d.ts.map +1 -0
  137. package/dist/index.js +68 -0
  138. package/dist/index.js.map +1 -0
  139. package/dist/metrics/index.d.ts +3 -0
  140. package/dist/metrics/index.d.ts.map +1 -0
  141. package/dist/metrics/index.js +4 -0
  142. package/dist/metrics/index.js.map +1 -0
  143. package/dist/metrics/instance.d.ts +15 -0
  144. package/dist/metrics/instance.d.ts.map +1 -0
  145. package/dist/metrics/instance.js +32 -0
  146. package/dist/metrics/instance.js.map +1 -0
  147. package/dist/metrics/service.d.ts +2 -0
  148. package/dist/metrics/service.d.ts.map +1 -0
  149. package/dist/metrics/service.js +15 -0
  150. package/dist/metrics/service.js.map +1 -0
  151. package/dist/presentation/dto/trigger-events.d.ts +7 -0
  152. package/dist/presentation/dto/trigger-events.d.ts.map +1 -0
  153. package/dist/presentation/dto/trigger-events.js +47 -0
  154. package/dist/presentation/dto/trigger-events.js.map +1 -0
  155. package/dist/presentation/index.d.ts +3 -0
  156. package/dist/presentation/index.d.ts.map +1 -0
  157. package/dist/presentation/index.js +4 -0
  158. package/dist/presentation/index.js.map +1 -0
  159. package/dist/presentation/routes/fire-manual.d.ts +2 -0
  160. package/dist/presentation/routes/fire-manual.d.ts.map +1 -0
  161. package/dist/presentation/routes/fire-manual.js +71 -0
  162. package/dist/presentation/routes/fire-manual.js.map +1 -0
  163. package/dist/presentation/routes/get-trigger-event.d.ts +2 -0
  164. package/dist/presentation/routes/get-trigger-event.d.ts.map +1 -0
  165. package/dist/presentation/routes/get-trigger-event.js +37 -0
  166. package/dist/presentation/routes/get-trigger-event.js.map +1 -0
  167. package/dist/presentation/routes/index.d.ts +3 -0
  168. package/dist/presentation/routes/index.d.ts.map +1 -0
  169. package/dist/presentation/routes/index.js +27 -0
  170. package/dist/presentation/routes/index.js.map +1 -0
  171. package/dist/presentation/routes/list-trigger-event-facets.d.ts +2 -0
  172. package/dist/presentation/routes/list-trigger-event-facets.d.ts.map +1 -0
  173. package/dist/presentation/routes/list-trigger-event-facets.js +29 -0
  174. package/dist/presentation/routes/list-trigger-event-facets.js.map +1 -0
  175. package/dist/presentation/routes/list-trigger-events.d.ts +2 -0
  176. package/dist/presentation/routes/list-trigger-events.d.ts.map +1 -0
  177. package/dist/presentation/routes/list-trigger-events.js +56 -0
  178. package/dist/presentation/routes/list-trigger-events.js.map +1 -0
  179. package/dist/presentation/subscribers/index.d.ts +6 -0
  180. package/dist/presentation/subscribers/index.d.ts.map +1 -0
  181. package/dist/presentation/subscribers/index.js +7 -0
  182. package/dist/presentation/subscribers/index.js.map +1 -0
  183. package/dist/presentation/subscribers/on-definition-deleted.d.ts +3 -0
  184. package/dist/presentation/subscribers/on-definition-deleted.d.ts.map +1 -0
  185. package/dist/presentation/subscribers/on-definition-deleted.js +8 -0
  186. package/dist/presentation/subscribers/on-definition-deleted.js.map +1 -0
  187. package/dist/presentation/subscribers/on-definition-resolved.d.ts +3 -0
  188. package/dist/presentation/subscribers/on-definition-resolved.d.ts.map +1 -0
  189. package/dist/presentation/subscribers/on-definition-resolved.js +11 -0
  190. package/dist/presentation/subscribers/on-definition-resolved.js.map +1 -0
  191. package/dist/presentation/subscribers/on-integration-event-received.d.ts +4 -0
  192. package/dist/presentation/subscribers/on-integration-event-received.d.ts.map +1 -0
  193. package/dist/presentation/subscribers/on-integration-event-received.js +17 -0
  194. package/dist/presentation/subscribers/on-integration-event-received.js.map +1 -0
  195. package/dist/presentation/subscribers/on-job-activated.d.ts +3 -0
  196. package/dist/presentation/subscribers/on-job-activated.d.ts.map +1 -0
  197. package/dist/presentation/subscribers/on-job-activated.js +13 -0
  198. package/dist/presentation/subscribers/on-job-activated.js.map +1 -0
  199. package/dist/presentation/subscribers/on-job-terminated.d.ts +3 -0
  200. package/dist/presentation/subscribers/on-job-terminated.d.ts.map +1 -0
  201. package/dist/presentation/subscribers/on-job-terminated.js +6 -0
  202. package/dist/presentation/subscribers/on-job-terminated.js.map +1 -0
  203. package/dist/temporal/activities/drain-cron-batch.d.ts +4 -0
  204. package/dist/temporal/activities/drain-cron-batch.d.ts.map +1 -0
  205. package/dist/temporal/activities/drain-cron-batch.js +20 -0
  206. package/dist/temporal/activities/drain-cron-batch.js.map +1 -0
  207. package/dist/temporal/activities/index.d.ts +10 -0
  208. package/dist/temporal/activities/index.d.ts.map +1 -0
  209. package/dist/temporal/activities/index.js +15 -0
  210. package/dist/temporal/activities/index.js.map +1 -0
  211. package/dist/temporal/activities/prune-trigger-events.d.ts +4 -0
  212. package/dist/temporal/activities/prune-trigger-events.d.ts.map +1 -0
  213. package/dist/temporal/activities/prune-trigger-events.js +11 -0
  214. package/dist/temporal/activities/prune-trigger-events.js.map +1 -0
  215. package/dist/temporal/constants.d.ts +7 -0
  216. package/dist/temporal/constants.d.ts.map +1 -0
  217. package/dist/temporal/constants.js +7 -0
  218. package/dist/temporal/constants.js.map +1 -0
  219. package/dist/temporal/workflows/cron-tick-cron.d.ts +9 -0
  220. package/dist/temporal/workflows/cron-tick-cron.d.ts.map +1 -0
  221. package/dist/temporal/workflows/cron-tick-cron.js +54 -0
  222. package/dist/temporal/workflows/cron-tick-cron.js.map +1 -0
  223. package/dist/temporal/workflows/index.d.ts +3 -0
  224. package/dist/temporal/workflows/index.d.ts.map +1 -0
  225. package/dist/temporal/workflows/index.js +4 -0
  226. package/dist/temporal/workflows/index.js.map +1 -0
  227. package/dist/temporal/workflows/prune-trigger-events-cron.d.ts +2 -0
  228. package/dist/temporal/workflows/prune-trigger-events-cron.d.ts.map +1 -0
  229. package/dist/temporal/workflows/prune-trigger-events-cron.js +18 -0
  230. package/dist/temporal/workflows/prune-trigger-events-cron.js.map +1 -0
  231. package/dist/tsconfig.test.tsbuildinfo +1 -0
  232. package/drizzle/0000_initial.sql +109 -0
  233. package/drizzle/meta/0000_snapshot.json +905 -0
  234. package/drizzle/meta/_journal.json +13 -0
  235. package/drizzle.config.ts +14 -0
  236. package/package.json +83 -0
  237. package/src/config.test.ts +33 -0
  238. package/src/config.ts +53 -0
  239. package/src/core/compute-next-fire-at.test.ts +69 -0
  240. package/src/core/compute-next-fire-at.ts +37 -0
  241. package/src/core/config.test.ts +213 -0
  242. package/src/core/config.ts +86 -0
  243. package/src/core/dispatch-integration-event.history-failure.test.ts +66 -0
  244. package/src/core/dispatch-integration-event.test.ts +1006 -0
  245. package/src/core/dispatch-integration-event.ts +150 -0
  246. package/src/core/drain-cron-schedules.test.ts +265 -0
  247. package/src/core/drain-cron-schedules.ts +90 -0
  248. package/src/core/entities/cron-schedule.ts +10 -0
  249. package/src/core/entities/decision.ts +24 -0
  250. package/src/core/entities/index.ts +5 -0
  251. package/src/core/entities/job-listener-subscription.ts +14 -0
  252. package/src/core/entities/received-event.ts +36 -0
  253. package/src/core/entities/subscription.ts +12 -0
  254. package/src/core/errors.ts +63 -0
  255. package/src/core/fire-cron.test.ts +146 -0
  256. package/src/core/fire-cron.ts +98 -0
  257. package/src/core/fire-manual.test.ts +157 -0
  258. package/src/core/fire-manual.ts +92 -0
  259. package/src/core/index.ts +34 -0
  260. package/src/core/record-trigger-history.test.ts +159 -0
  261. package/src/core/record-trigger-history.ts +145 -0
  262. package/src/core/route-event-to-job-listeners.test.ts +369 -0
  263. package/src/core/route-event-to-job-listeners.ts +184 -0
  264. package/src/db/cron-schedules.test.ts +358 -0
  265. package/src/db/cron-schedules.ts +163 -0
  266. package/src/db/db.ts +31 -0
  267. package/src/db/event-history.test.ts +421 -0
  268. package/src/db/event-history.ts +279 -0
  269. package/src/db/event-queries.ts +140 -0
  270. package/src/db/index.ts +51 -0
  271. package/src/db/job-listener-subscriptions.test.ts +270 -0
  272. package/src/db/job-listener-subscriptions.ts +133 -0
  273. package/src/db/received-events.ts +16 -0
  274. package/src/db/schema/common.ts +3 -0
  275. package/src/db/schema/cron-schedules.ts +37 -0
  276. package/src/db/schema/decisions.test.ts +279 -0
  277. package/src/db/schema/decisions.ts +77 -0
  278. package/src/db/schema/job-listener-subscriptions.ts +65 -0
  279. package/src/db/schema/outbox.ts +4 -0
  280. package/src/db/schema/received-events.test.ts +135 -0
  281. package/src/db/schema/received-events.ts +93 -0
  282. package/src/db/schema/subscriptions.ts +46 -0
  283. package/src/db/subscriptions.test.ts +340 -0
  284. package/src/db/subscriptions.ts +179 -0
  285. package/src/index.ts +108 -0
  286. package/src/metrics/index.ts +8 -0
  287. package/src/metrics/instance.ts +33 -0
  288. package/src/metrics/service.ts +18 -0
  289. package/src/presentation/dto/trigger-events.test.ts +144 -0
  290. package/src/presentation/dto/trigger-events.ts +60 -0
  291. package/src/presentation/index.ts +6 -0
  292. package/src/presentation/routes/fire-manual.test.ts +118 -0
  293. package/src/presentation/routes/fire-manual.ts +70 -0
  294. package/src/presentation/routes/get-trigger-event.test.ts +184 -0
  295. package/src/presentation/routes/get-trigger-event.ts +37 -0
  296. package/src/presentation/routes/index.ts +21 -0
  297. package/src/presentation/routes/list-trigger-event-facets.test.ts +116 -0
  298. package/src/presentation/routes/list-trigger-event-facets.ts +29 -0
  299. package/src/presentation/routes/list-trigger-events.test.ts +379 -0
  300. package/src/presentation/routes/list-trigger-events.ts +68 -0
  301. package/src/presentation/subscribers/index.ts +5 -0
  302. package/src/presentation/subscribers/on-definition-deleted.test.ts +42 -0
  303. package/src/presentation/subscribers/on-definition-deleted.ts +6 -0
  304. package/src/presentation/subscribers/on-definition-resolved.test.ts +67 -0
  305. package/src/presentation/subscribers/on-definition-resolved.ts +11 -0
  306. package/src/presentation/subscribers/on-integration-event-received.test.ts +53 -0
  307. package/src/presentation/subscribers/on-integration-event-received.ts +21 -0
  308. package/src/presentation/subscribers/on-job-activated.ts +14 -0
  309. package/src/presentation/subscribers/on-job-terminated.ts +6 -0
  310. package/src/temporal/activities/drain-cron-batch.ts +20 -0
  311. package/src/temporal/activities/index.ts +15 -0
  312. package/src/temporal/activities/prune-trigger-events.test.ts +78 -0
  313. package/src/temporal/activities/prune-trigger-events.ts +9 -0
  314. package/src/temporal/constants.ts +7 -0
  315. package/src/temporal/workflows/cron-tick-cron.ts +56 -0
  316. package/src/temporal/workflows/index.ts +2 -0
  317. package/src/temporal/workflows/prune-trigger-events-cron.ts +17 -0
  318. package/test/env.ts +8 -0
  319. package/test/factories/cron-schedule.ts +34 -0
  320. package/test/factories/decision.ts +49 -0
  321. package/test/factories/job-listener-subscription.ts +42 -0
  322. package/test/factories/received-event.ts +49 -0
  323. package/test/factories/subscription.ts +38 -0
  324. package/test/globalSetup.ts +20 -0
  325. package/test/index.ts +5 -0
  326. package/test/setup.ts +17 -0
  327. package/tsconfig.build.json +9 -0
  328. package/tsconfig.build.tsbuildinfo +1 -0
  329. package/tsconfig.json +3 -0
  330. package/tsconfig.test.json +8 -0
  331. package/vitest.config.ts +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAC,0BAA0B,EAAC,MAAM,2BAA2B,CAAC;AAErE,wBAAgB,mCAAmC;;EAIlD;AAED,wBAAgB,4BAA4B;;;EAK3C"}
@@ -0,0 +1,15 @@
1
+ import { drainCronBatchActivity, readCronFanoutActivity } from './drain-cron-batch.js';
2
+ import { pruneTriggerEventsActivity } from './prune-trigger-events.js';
3
+ export function createTriggersMaintenanceActivities() {
4
+ return {
5
+ pruneTriggerEventsActivity
6
+ };
7
+ }
8
+ export function createTriggersCronActivities() {
9
+ return {
10
+ drainCronBatchActivity,
11
+ readCronFanoutActivity
12
+ };
13
+ }
14
+
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/temporal/activities/index.ts"],"sourcesContent":["import {drainCronBatchActivity, readCronFanoutActivity} from './drain-cron-batch.js';\nimport {pruneTriggerEventsActivity} from './prune-trigger-events.js';\n\nexport function createTriggersMaintenanceActivities() {\n return {\n pruneTriggerEventsActivity,\n };\n}\n\nexport function createTriggersCronActivities() {\n return {\n drainCronBatchActivity,\n readCronFanoutActivity,\n };\n}\n"],"names":["drainCronBatchActivity","readCronFanoutActivity","pruneTriggerEventsActivity","createTriggersMaintenanceActivities","createTriggersCronActivities"],"mappings":"AAAA,SAAQA,sBAAsB,EAAEC,sBAAsB,QAAO,wBAAwB;AACrF,SAAQC,0BAA0B,QAAO,4BAA4B;AAErE,OAAO,SAASC;IACd,OAAO;QACLD;IACF;AACF;AAEA,OAAO,SAASE;IACd,OAAO;QACLJ;QACAC;IACF;AACF"}
@@ -0,0 +1,4 @@
1
+ export declare function pruneTriggerEventsActivity(): Promise<{
2
+ deleted: number;
3
+ }>;
4
+ //# sourceMappingURL=prune-trigger-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune-trigger-events.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/prune-trigger-events.ts"],"names":[],"mappings":"AAKA,wBAAsB,0BAA0B,IAAI,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC,CAG7E"}
@@ -0,0 +1,11 @@
1
+ import { config } from '#config.js';
2
+ import { pruneTriggerEvents } from '#db/received-events.js';
3
+ const MS_PER_DAY = 24 * 60 * 60 * 1000;
4
+ export async function pruneTriggerEventsActivity() {
5
+ const olderThan = new Date(Date.now() - config.TRIGGER_EVENT_RETENTION_DAYS * MS_PER_DAY);
6
+ return await pruneTriggerEvents({
7
+ olderThan
8
+ });
9
+ }
10
+
11
+ //# sourceMappingURL=prune-trigger-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/temporal/activities/prune-trigger-events.ts"],"sourcesContent":["import {config} from '#config.js';\nimport {pruneTriggerEvents} from '#db/received-events.js';\n\nconst MS_PER_DAY = 24 * 60 * 60 * 1000;\n\nexport async function pruneTriggerEventsActivity(): Promise<{deleted: number}> {\n const olderThan = new Date(Date.now() - config.TRIGGER_EVENT_RETENTION_DAYS * MS_PER_DAY);\n return await pruneTriggerEvents({olderThan});\n}\n"],"names":["config","pruneTriggerEvents","MS_PER_DAY","pruneTriggerEventsActivity","olderThan","Date","now","TRIGGER_EVENT_RETENTION_DAYS"],"mappings":"AAAA,SAAQA,MAAM,QAAO,aAAa;AAClC,SAAQC,kBAAkB,QAAO,yBAAyB;AAE1D,MAAMC,aAAa,KAAK,KAAK,KAAK;AAElC,OAAO,eAAeC;IACpB,MAAMC,YAAY,IAAIC,KAAKA,KAAKC,GAAG,KAAKN,OAAOO,4BAA4B,GAAGL;IAC9E,OAAO,MAAMD,mBAAmB;QAACG;IAAS;AAC5C"}
@@ -0,0 +1,7 @@
1
+ export declare const TRIGGERS_MAINTENANCE_TASK_QUEUE = "triggers-maintenance";
2
+ /**
3
+ * Dedicated queue for the minute cron tick, so bursty cron-fire load and hourly
4
+ * maintenance load scale independently.
5
+ */
6
+ export declare const TRIGGERS_CRON_TASK_QUEUE = "triggers-cron";
7
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/temporal/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export const TRIGGERS_MAINTENANCE_TASK_QUEUE = 'triggers-maintenance';
2
+ /**
3
+ * Dedicated queue for the minute cron tick, so bursty cron-fire load and hourly
4
+ * maintenance load scale independently.
5
+ */ export const TRIGGERS_CRON_TASK_QUEUE = 'triggers-cron';
6
+
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/temporal/constants.ts"],"sourcesContent":["export const TRIGGERS_MAINTENANCE_TASK_QUEUE = 'triggers-maintenance';\n\n/**\n * Dedicated queue for the minute cron tick, so bursty cron-fire load and hourly\n * maintenance load scale independently.\n */\nexport const TRIGGERS_CRON_TASK_QUEUE = 'triggers-cron';\n"],"names":["TRIGGERS_MAINTENANCE_TASK_QUEUE","TRIGGERS_CRON_TASK_QUEUE"],"mappings":"AAAA,OAAO,MAAMA,kCAAkC,uBAAuB;AAEtE;;;CAGC,GACD,OAAO,MAAMC,2BAA2B,gBAAgB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Fires once a minute (Temporal never overlaps a cron workflow with itself, so a slow
3
+ * tick delays the next rather than doubling it). Reads the current fanout and runs that
4
+ * many drain activities; Temporal spreads them across the worker fleet, and `SKIP LOCKED`
5
+ * keeps their claims disjoint. The per-tick fire ceiling is
6
+ * `fanout * TRIGGER_CRON_CLAIM_BATCH`.
7
+ */
8
+ export declare function cronTickCron(): Promise<void>;
9
+ //# sourceMappingURL=cron-tick-cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron-tick-cron.d.ts","sourceRoot":"","sources":["../../../src/temporal/workflows/cron-tick-cron.ts"],"names":[],"mappings":"AA0BA;;;;;;GAMG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAsBlD"}
@@ -0,0 +1,54 @@
1
+ import { log, proxyActivities } from '@temporalio/workflow';
2
+ // Upper bound on per-tick parallelism. A misconfigured TRIGGER_CRON_FANOUT (e.g. a
3
+ // pasted large number) is clamped to this rather than spawning an unbounded fan-out
4
+ // that could stall the tick, so one config mistake cannot stop cron firing.
5
+ const MAX_CRON_FANOUT = 32;
6
+ const { drainCronBatchActivity, readCronFanoutActivity } = proxyActivities({
7
+ // Throughput is governed by fanout and claim batch, not a per-tick time budget, so
8
+ // give the batch drain plenty of room.
9
+ startToCloseTimeout: '5 minutes',
10
+ // The drain heartbeats once per processed schedule, so a hung run stops heartbeating
11
+ // well before the start-to-close timeout. Fail it within a minute (rather than after
12
+ // five) so its FOR UPDATE SKIP LOCKED locks release and the next tick re-claims those
13
+ // rows.
14
+ heartbeatTimeout: '1 minute',
15
+ // No activity retry: the drain is not batch-idempotent across retries. A retry after a
16
+ // committed advance would claim a fresh due batch and fire beyond the
17
+ // fanout * TRIGGER_CRON_CLAIM_BATCH per-tick ceiling. Whole-activity failures roll the
18
+ // batch back (rows stay due) and the once-per-minute cron schedule is the retry.
19
+ retry: {
20
+ maximumAttempts: 1
21
+ }
22
+ });
23
+ /**
24
+ * Fires once a minute (Temporal never overlaps a cron workflow with itself, so a slow
25
+ * tick delays the next rather than doubling it). Reads the current fanout and runs that
26
+ * many drain activities; Temporal spreads them across the worker fleet, and `SKIP LOCKED`
27
+ * keeps their claims disjoint. The per-tick fire ceiling is
28
+ * `fanout * TRIGGER_CRON_CLAIM_BATCH`.
29
+ */ export async function cronTickCron() {
30
+ const fanout = await readCronFanoutActivity();
31
+ const requested = Number.isInteger(fanout) && fanout > 0 ? fanout : 1;
32
+ const parallelism = Math.min(requested, MAX_CRON_FANOUT);
33
+ if (parallelism < requested) {
34
+ log.warn('Cron tick fanout exceeds the maximum; clamping', {
35
+ requested,
36
+ max: MAX_CRON_FANOUT
37
+ });
38
+ }
39
+ const summaries = await Promise.all(Array.from({
40
+ length: parallelism
41
+ }, ()=>drainCronBatchActivity()));
42
+ const fired = summaries.reduce((total, summary)=>total + summary.fired, 0);
43
+ const errored = summaries.reduce((total, summary)=>total + summary.errored, 0);
44
+ const retried = summaries.reduce((total, summary)=>total + summary.retried, 0);
45
+ if (fired > 0 || errored > 0 || retried > 0) {
46
+ log.info('Cron tick drained schedules', {
47
+ fired,
48
+ errored,
49
+ retried
50
+ });
51
+ }
52
+ }
53
+
54
+ //# sourceMappingURL=cron-tick-cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/temporal/workflows/cron-tick-cron.ts"],"sourcesContent":["import {log, proxyActivities} from '@temporalio/workflow';\nimport type {createTriggersCronActivities} from '../activities/index.js';\n\n// Upper bound on per-tick parallelism. A misconfigured TRIGGER_CRON_FANOUT (e.g. a\n// pasted large number) is clamped to this rather than spawning an unbounded fan-out\n// that could stall the tick, so one config mistake cannot stop cron firing.\nconst MAX_CRON_FANOUT = 32;\n\nconst {drainCronBatchActivity, readCronFanoutActivity} = proxyActivities<\n ReturnType<typeof createTriggersCronActivities>\n>({\n // Throughput is governed by fanout and claim batch, not a per-tick time budget, so\n // give the batch drain plenty of room.\n startToCloseTimeout: '5 minutes',\n // The drain heartbeats once per processed schedule, so a hung run stops heartbeating\n // well before the start-to-close timeout. Fail it within a minute (rather than after\n // five) so its FOR UPDATE SKIP LOCKED locks release and the next tick re-claims those\n // rows.\n heartbeatTimeout: '1 minute',\n // No activity retry: the drain is not batch-idempotent across retries. A retry after a\n // committed advance would claim a fresh due batch and fire beyond the\n // fanout * TRIGGER_CRON_CLAIM_BATCH per-tick ceiling. Whole-activity failures roll the\n // batch back (rows stay due) and the once-per-minute cron schedule is the retry.\n retry: {maximumAttempts: 1},\n});\n\n/**\n * Fires once a minute (Temporal never overlaps a cron workflow with itself, so a slow\n * tick delays the next rather than doubling it). Reads the current fanout and runs that\n * many drain activities; Temporal spreads them across the worker fleet, and `SKIP LOCKED`\n * keeps their claims disjoint. The per-tick fire ceiling is\n * `fanout * TRIGGER_CRON_CLAIM_BATCH`.\n */\nexport async function cronTickCron(): Promise<void> {\n const fanout = await readCronFanoutActivity();\n const requested = Number.isInteger(fanout) && fanout > 0 ? fanout : 1;\n const parallelism = Math.min(requested, MAX_CRON_FANOUT);\n if (parallelism < requested) {\n log.warn('Cron tick fanout exceeds the maximum; clamping', {\n requested,\n max: MAX_CRON_FANOUT,\n });\n }\n\n const summaries = await Promise.all(\n Array.from({length: parallelism}, () => drainCronBatchActivity()),\n );\n\n const fired = summaries.reduce((total, summary) => total + summary.fired, 0);\n const errored = summaries.reduce((total, summary) => total + summary.errored, 0);\n const retried = summaries.reduce((total, summary) => total + summary.retried, 0);\n\n if (fired > 0 || errored > 0 || retried > 0) {\n log.info('Cron tick drained schedules', {fired, errored, retried});\n }\n}\n"],"names":["log","proxyActivities","MAX_CRON_FANOUT","drainCronBatchActivity","readCronFanoutActivity","startToCloseTimeout","heartbeatTimeout","retry","maximumAttempts","cronTickCron","fanout","requested","Number","isInteger","parallelism","Math","min","warn","max","summaries","Promise","all","Array","from","length","fired","reduce","total","summary","errored","retried","info"],"mappings":"AAAA,SAAQA,GAAG,EAAEC,eAAe,QAAO,uBAAuB;AAG1D,mFAAmF;AACnF,oFAAoF;AACpF,4EAA4E;AAC5E,MAAMC,kBAAkB;AAExB,MAAM,EAACC,sBAAsB,EAAEC,sBAAsB,EAAC,GAAGH,gBAEvD;IACA,mFAAmF;IACnF,uCAAuC;IACvCI,qBAAqB;IACrB,qFAAqF;IACrF,qFAAqF;IACrF,sFAAsF;IACtF,QAAQ;IACRC,kBAAkB;IAClB,uFAAuF;IACvF,sEAAsE;IACtE,uFAAuF;IACvF,iFAAiF;IACjFC,OAAO;QAACC,iBAAiB;IAAC;AAC5B;AAEA;;;;;;CAMC,GACD,OAAO,eAAeC;IACpB,MAAMC,SAAS,MAAMN;IACrB,MAAMO,YAAYC,OAAOC,SAAS,CAACH,WAAWA,SAAS,IAAIA,SAAS;IACpE,MAAMI,cAAcC,KAAKC,GAAG,CAACL,WAAWT;IACxC,IAAIY,cAAcH,WAAW;QAC3BX,IAAIiB,IAAI,CAAC,kDAAkD;YACzDN;YACAO,KAAKhB;QACP;IACF;IAEA,MAAMiB,YAAY,MAAMC,QAAQC,GAAG,CACjCC,MAAMC,IAAI,CAAC;QAACC,QAAQV;IAAW,GAAG,IAAMX;IAG1C,MAAMsB,QAAQN,UAAUO,MAAM,CAAC,CAACC,OAAOC,UAAYD,QAAQC,QAAQH,KAAK,EAAE;IAC1E,MAAMI,UAAUV,UAAUO,MAAM,CAAC,CAACC,OAAOC,UAAYD,QAAQC,QAAQC,OAAO,EAAE;IAC9E,MAAMC,UAAUX,UAAUO,MAAM,CAAC,CAACC,OAAOC,UAAYD,QAAQC,QAAQE,OAAO,EAAE;IAE9E,IAAIL,QAAQ,KAAKI,UAAU,KAAKC,UAAU,GAAG;QAC3C9B,IAAI+B,IAAI,CAAC,+BAA+B;YAACN;YAAOI;YAASC;QAAO;IAClE;AACF"}
@@ -0,0 +1,3 @@
1
+ export { cronTickCron } from './cron-tick-cron.js';
2
+ export { pruneTriggerEventsCron } from './prune-trigger-events-cron.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/workflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { cronTickCron } from './cron-tick-cron.js';
2
+ export { pruneTriggerEventsCron } from './prune-trigger-events-cron.js';
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/temporal/workflows/index.ts"],"sourcesContent":["export {cronTickCron} from './cron-tick-cron.js';\nexport {pruneTriggerEventsCron} from './prune-trigger-events-cron.js';\n"],"names":["cronTickCron","pruneTriggerEventsCron"],"mappings":"AAAA,SAAQA,YAAY,QAAO,sBAAsB;AACjD,SAAQC,sBAAsB,QAAO,iCAAiC"}
@@ -0,0 +1,2 @@
1
+ export declare function pruneTriggerEventsCron(): Promise<void>;
2
+ //# sourceMappingURL=prune-trigger-events-cron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune-trigger-events-cron.d.ts","sourceRoot":"","sources":["../../../src/temporal/workflows/prune-trigger-events-cron.ts"],"names":[],"mappings":"AAWA,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK5D"}
@@ -0,0 +1,18 @@
1
+ import { log, proxyActivities } from '@temporalio/workflow';
2
+ const { pruneTriggerEventsActivity } = proxyActivities({
3
+ startToCloseTimeout: '5 minutes',
4
+ // Let persistent failures fall through so the next hourly run retries with a fresh cutoff.
5
+ retry: {
6
+ maximumAttempts: 5
7
+ }
8
+ });
9
+ export async function pruneTriggerEventsCron() {
10
+ const { deleted } = await pruneTriggerEventsActivity();
11
+ if (deleted > 0) {
12
+ log.info('Pruned trigger received events', {
13
+ deleted
14
+ });
15
+ }
16
+ }
17
+
18
+ //# sourceMappingURL=prune-trigger-events-cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/temporal/workflows/prune-trigger-events-cron.ts"],"sourcesContent":["import {log, proxyActivities} from '@temporalio/workflow';\nimport type {createTriggersMaintenanceActivities} from '../activities/index.js';\n\nconst {pruneTriggerEventsActivity} = proxyActivities<\n ReturnType<typeof createTriggersMaintenanceActivities>\n>({\n startToCloseTimeout: '5 minutes',\n // Let persistent failures fall through so the next hourly run retries with a fresh cutoff.\n retry: {maximumAttempts: 5},\n});\n\nexport async function pruneTriggerEventsCron(): Promise<void> {\n const {deleted} = await pruneTriggerEventsActivity();\n if (deleted > 0) {\n log.info('Pruned trigger received events', {deleted});\n }\n}\n"],"names":["log","proxyActivities","pruneTriggerEventsActivity","startToCloseTimeout","retry","maximumAttempts","pruneTriggerEventsCron","deleted","info"],"mappings":"AAAA,SAAQA,GAAG,EAAEC,eAAe,QAAO,uBAAuB;AAG1D,MAAM,EAACC,0BAA0B,EAAC,GAAGD,gBAEnC;IACAE,qBAAqB;IACrB,2FAA2F;IAC3FC,OAAO;QAACC,iBAAiB;IAAC;AAC5B;AAEA,OAAO,eAAeC;IACpB,MAAM,EAACC,OAAO,EAAC,GAAG,MAAML;IACxB,IAAIK,UAAU,GAAG;QACfP,IAAIQ,IAAI,CAAC,kCAAkC;YAACD;QAAO;IACrD;AACF"}