@pattern-stack/codegen 0.15.3 → 0.16.1

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 (150) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/consumer-skills/integration/change-sources-and-sinks.md +1 -1
  3. package/dist/{chunk-GCYKMF22.js → chunk-24WXSC3C.js} +6 -6
  4. package/dist/{chunk-32DOFN3T.js → chunk-2WDX6I7T.js} +2 -2
  5. package/dist/{chunk-WWGYCIJX.js → chunk-43SBT72G.js} +2 -2
  6. package/dist/{chunk-FBGHYQIZ.js → chunk-5LXOJGO2.js} +6 -6
  7. package/dist/{chunk-32BMMV4H.js → chunk-5RT7JGKT.js} +5 -5
  8. package/dist/{chunk-3NMCDN7L.js → chunk-5TK7MEN4.js} +2 -2
  9. package/dist/chunk-5TK7MEN4.js.map +1 -0
  10. package/dist/{chunk-4H3PETLM.js → chunk-AYC2HEAL.js} +12 -9
  11. package/dist/chunk-AYC2HEAL.js.map +1 -0
  12. package/dist/{chunk-27ETSJ2X.js → chunk-COGHTKXY.js} +2 -2
  13. package/dist/{chunk-IYNSRIGR.js → chunk-CRBVI4GE.js} +5 -5
  14. package/dist/{chunk-J7JMVS2B.js → chunk-CZQUOIDY.js} +4 -4
  15. package/dist/{chunk-O37C3YE6.js → chunk-DGYTSCKN.js} +14 -8
  16. package/dist/chunk-DGYTSCKN.js.map +1 -0
  17. package/dist/{chunk-L7BNNRGI.js → chunk-DLG62MQY.js} +26 -6
  18. package/dist/chunk-DLG62MQY.js.map +1 -0
  19. package/dist/{chunk-TNXH7BJS.js → chunk-E45CSC33.js} +2 -2
  20. package/dist/{chunk-4JLJYWJC.js → chunk-H6FO2ZDJ.js} +99 -11
  21. package/dist/chunk-H6FO2ZDJ.js.map +1 -0
  22. package/dist/{chunk-5Y7W3XR6.js → chunk-IT6FRTEW.js} +30 -11
  23. package/dist/chunk-IT6FRTEW.js.map +1 -0
  24. package/dist/{chunk-RC23QROE.js → chunk-JM3T27ZW.js} +78 -4
  25. package/dist/chunk-JM3T27ZW.js.map +1 -0
  26. package/dist/{chunk-Z7PQCAVK.js → chunk-LQ6PYFU6.js} +4 -4
  27. package/dist/chunk-MYQIQ27N.js +118 -0
  28. package/dist/chunk-MYQIQ27N.js.map +1 -0
  29. package/dist/{chunk-YTN6BKWA.js → chunk-NXNVTXKG.js} +5 -5
  30. package/dist/{chunk-RDVTWIYY.js → chunk-QSJ3J4HE.js} +5 -5
  31. package/dist/{chunk-4MVGAMUA.js → chunk-RUSUZZAF.js} +4 -4
  32. package/dist/{chunk-4RFHUZXU.js → chunk-T4YJRD22.js} +4 -4
  33. package/dist/{chunk-7YGORYZD.js → chunk-T6C4LFLC.js} +4 -4
  34. package/dist/{chunk-OGIZXGPY.js → chunk-TDEHU73T.js} +4 -4
  35. package/dist/{chunk-YLPAPPLW.js → chunk-TIZXQU26.js} +36 -9
  36. package/dist/chunk-TIZXQU26.js.map +1 -0
  37. package/dist/{chunk-EOLLMEAH.js → chunk-TKVTEUBD.js} +3 -3
  38. package/dist/chunk-TKVTEUBD.js.map +1 -0
  39. package/dist/{chunk-YPWODKD5.js → chunk-W2UIDI3R.js} +5 -5
  40. package/dist/chunk-W4HOHZVF.js +1 -0
  41. package/dist/{chunk-DCCZB4UC.js → chunk-XWBK3XJK.js} +4 -4
  42. package/dist/{chunk-SR7F3TJY.js → chunk-YK5JEVLX.js} +4 -4
  43. package/dist/{chunk-BIO6F7YI.js → chunk-ZPL74UQN.js} +4 -2
  44. package/dist/{chunk-BIO6F7YI.js.map → chunk-ZPL74UQN.js.map} +1 -1
  45. package/dist/runtime/base-classes/index.js +22 -22
  46. package/dist/runtime/subsystems/analytics/analytics.module.js +2 -2
  47. package/dist/runtime/subsystems/analytics/index.js +4 -4
  48. package/dist/runtime/subsystems/auth/auth.module.js +1 -1
  49. package/dist/runtime/subsystems/auth/index.js +7 -7
  50. package/dist/runtime/subsystems/bridge/bridge-delivery-handler.js +3 -3
  51. package/dist/runtime/subsystems/bridge/bridge-delivery.drizzle-backend.js +1 -1
  52. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.d.ts +2 -1
  53. package/dist/runtime/subsystems/bridge/bridge-outbox-drain-hook.js +6 -5
  54. package/dist/runtime/subsystems/bridge/bridge.module.js +16 -15
  55. package/dist/runtime/subsystems/bridge/event-flow.service.js +3 -3
  56. package/dist/runtime/subsystems/bridge/index.js +16 -15
  57. package/dist/runtime/subsystems/cache/cache.drizzle-backend.js +2 -2
  58. package/dist/runtime/subsystems/cache/cache.module.js +3 -3
  59. package/dist/runtime/subsystems/cache/index.js +5 -5
  60. package/dist/runtime/subsystems/events/event-bus.drizzle-backend.d.ts +20 -0
  61. package/dist/runtime/subsystems/events/event-bus.drizzle-backend.js +4 -3
  62. package/dist/runtime/subsystems/events/event-bus.memory-backend.js +2 -2
  63. package/dist/runtime/subsystems/events/events.module.d.ts +14 -0
  64. package/dist/runtime/subsystems/events/events.module.js +6 -5
  65. package/dist/runtime/subsystems/events/index.js +12 -11
  66. package/dist/runtime/subsystems/index.js +88 -87
  67. package/dist/runtime/subsystems/integration/build-change-source.js +2 -2
  68. package/dist/runtime/subsystems/integration/detection-config.schema.d.ts +23 -15
  69. package/dist/runtime/subsystems/integration/detection-config.schema.js +1 -1
  70. package/dist/runtime/subsystems/integration/execute-integration.use-case.js +2 -2
  71. package/dist/runtime/subsystems/integration/index.js +17 -17
  72. package/dist/runtime/subsystems/integration/integration-cursor-store.drizzle-backend.js +2 -2
  73. package/dist/runtime/subsystems/integration/integration-run-recorder.drizzle-backend.js +2 -2
  74. package/dist/runtime/subsystems/integration/integration.module.js +4 -4
  75. package/dist/runtime/subsystems/integration/webhook-change-source.d.ts +36 -6
  76. package/dist/runtime/subsystems/integration/webhook-change-source.js +1 -1
  77. package/dist/runtime/subsystems/jobs/index.d.ts +2 -1
  78. package/dist/runtime/subsystems/jobs/index.js +42 -30
  79. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js +6 -5
  80. package/dist/runtime/subsystems/jobs/job-orchestrator.bullmq-backend.js.map +1 -1
  81. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.d.ts +2 -1
  82. package/dist/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.js +4 -3
  83. package/dist/runtime/subsystems/jobs/job-orchestrator.memory-backend.js +3 -3
  84. package/dist/runtime/subsystems/jobs/job-run-service.drizzle-backend.js +3 -3
  85. package/dist/runtime/subsystems/jobs/job-run-service.memory-backend.js +2 -2
  86. package/dist/runtime/subsystems/jobs/job-worker.bullmq-backend.js +3 -3
  87. package/dist/runtime/subsystems/jobs/job-worker.d.ts +28 -0
  88. package/dist/runtime/subsystems/jobs/job-worker.js +4 -3
  89. package/dist/runtime/subsystems/jobs/job-worker.module.js +11 -10
  90. package/dist/runtime/subsystems/jobs/jobs-domain.module.d.ts +12 -7
  91. package/dist/runtime/subsystems/jobs/jobs-domain.module.js +9 -8
  92. package/dist/runtime/subsystems/jobs/jobs-domain.tokens.d.ts +13 -1
  93. package/dist/runtime/subsystems/jobs/jobs-domain.tokens.js +3 -1
  94. package/dist/runtime/subsystems/jobs/pg-notify.d.ts +85 -0
  95. package/dist/runtime/subsystems/jobs/pg-notify.js +14 -0
  96. package/dist/runtime/subsystems/jobs/pg-notify.js.map +1 -0
  97. package/dist/runtime/subsystems/observability/index.js +4 -4
  98. package/dist/runtime/subsystems/observability/observability.module.js +4 -4
  99. package/dist/runtime/subsystems/observability/observability.service.js +3 -3
  100. package/dist/runtime/subsystems/storage/index.js +4 -4
  101. package/dist/runtime/subsystems/storage/storage.module.js +2 -2
  102. package/dist/src/cli/index.js +53 -15
  103. package/dist/src/cli/index.js.map +1 -1
  104. package/dist/src/index.d.ts +11 -11
  105. package/dist/src/index.js +9 -9
  106. package/package.json +1 -1
  107. package/runtime/subsystems/bridge/bridge-outbox-drain-hook.ts +27 -0
  108. package/runtime/subsystems/events/event-bus.drizzle-backend.ts +108 -4
  109. package/runtime/subsystems/events/events.module.ts +14 -0
  110. package/runtime/subsystems/integration/detection-config.schema.ts +64 -54
  111. package/runtime/subsystems/integration/webhook-change-source.ts +187 -133
  112. package/runtime/subsystems/jobs/index.ts +10 -0
  113. package/runtime/subsystems/jobs/job-orchestrator.drizzle-backend.ts +29 -2
  114. package/runtime/subsystems/jobs/job-worker.module.ts +11 -0
  115. package/runtime/subsystems/jobs/job-worker.ts +98 -0
  116. package/runtime/subsystems/jobs/jobs-domain.module.ts +22 -7
  117. package/runtime/subsystems/jobs/jobs-domain.tokens.ts +13 -0
  118. package/runtime/subsystems/jobs/pg-notify.ts +216 -0
  119. package/templates/subsystem/events-config/codegen-config-events-block.ejs.t +14 -0
  120. package/templates/subsystem/jobs-config/codegen-config-jobs-block.ejs.t +13 -4
  121. package/dist/chunk-3NMCDN7L.js.map +0 -1
  122. package/dist/chunk-4H3PETLM.js.map +0 -1
  123. package/dist/chunk-4JLJYWJC.js.map +0 -1
  124. package/dist/chunk-5Y7W3XR6.js.map +0 -1
  125. package/dist/chunk-EOLLMEAH.js.map +0 -1
  126. package/dist/chunk-L7BNNRGI.js.map +0 -1
  127. package/dist/chunk-O37C3YE6.js.map +0 -1
  128. package/dist/chunk-RC23QROE.js.map +0 -1
  129. package/dist/chunk-UTN4GBPQ.js +0 -1
  130. package/dist/chunk-YLPAPPLW.js.map +0 -1
  131. /package/dist/{chunk-GCYKMF22.js.map → chunk-24WXSC3C.js.map} +0 -0
  132. /package/dist/{chunk-32DOFN3T.js.map → chunk-2WDX6I7T.js.map} +0 -0
  133. /package/dist/{chunk-WWGYCIJX.js.map → chunk-43SBT72G.js.map} +0 -0
  134. /package/dist/{chunk-FBGHYQIZ.js.map → chunk-5LXOJGO2.js.map} +0 -0
  135. /package/dist/{chunk-32BMMV4H.js.map → chunk-5RT7JGKT.js.map} +0 -0
  136. /package/dist/{chunk-27ETSJ2X.js.map → chunk-COGHTKXY.js.map} +0 -0
  137. /package/dist/{chunk-IYNSRIGR.js.map → chunk-CRBVI4GE.js.map} +0 -0
  138. /package/dist/{chunk-J7JMVS2B.js.map → chunk-CZQUOIDY.js.map} +0 -0
  139. /package/dist/{chunk-TNXH7BJS.js.map → chunk-E45CSC33.js.map} +0 -0
  140. /package/dist/{chunk-Z7PQCAVK.js.map → chunk-LQ6PYFU6.js.map} +0 -0
  141. /package/dist/{chunk-YTN6BKWA.js.map → chunk-NXNVTXKG.js.map} +0 -0
  142. /package/dist/{chunk-RDVTWIYY.js.map → chunk-QSJ3J4HE.js.map} +0 -0
  143. /package/dist/{chunk-4MVGAMUA.js.map → chunk-RUSUZZAF.js.map} +0 -0
  144. /package/dist/{chunk-4RFHUZXU.js.map → chunk-T4YJRD22.js.map} +0 -0
  145. /package/dist/{chunk-7YGORYZD.js.map → chunk-T6C4LFLC.js.map} +0 -0
  146. /package/dist/{chunk-OGIZXGPY.js.map → chunk-TDEHU73T.js.map} +0 -0
  147. /package/dist/{chunk-YPWODKD5.js.map → chunk-W2UIDI3R.js.map} +0 -0
  148. /package/dist/{chunk-UTN4GBPQ.js.map → chunk-W4HOHZVF.js.map} +0 -0
  149. /package/dist/{chunk-DCCZB4UC.js.map → chunk-XWBK3XJK.js.map} +0 -0
  150. /package/dist/{chunk-SR7F3TJY.js.map → chunk-YK5JEVLX.js.map} +0 -0
@@ -1,19 +1,17 @@
1
- import "../../chunk-ZUMULSEQ.js";
1
+ import "../../chunk-IWAOY6KC.js";
2
2
  import {
3
- StorageModule
4
- } from "../../chunk-4MVGAMUA.js";
3
+ CacheModule
4
+ } from "../../chunk-COGHTKXY.js";
5
5
  import {
6
- LocalStorageBackend
7
- } from "../../chunk-JWNHNUYL.js";
6
+ DrizzleCacheService
7
+ } from "../../chunk-T6C4LFLC.js";
8
8
  import {
9
- MemoryStorageBackend
10
- } from "../../chunk-3SZFUTXE.js";
9
+ MemoryCacheService
10
+ } from "../../chunk-IF5I3DAA.js";
11
+ import "../../chunk-FASRXRX5.js";
11
12
  import {
12
- STORAGE
13
- } from "../../chunk-NYBCQZC7.js";
14
- import "../../chunk-J6MN42LG.js";
15
- import "../../chunk-UTN4GBPQ.js";
16
- import "../../chunk-IWAOY6KC.js";
13
+ CACHE
14
+ } from "../../chunk-L6FTY45T.js";
17
15
  import "../../chunk-FI34KYZ5.js";
18
16
  import "../../chunk-L4SDDEEU.js";
19
17
  import {
@@ -21,48 +19,69 @@ import {
21
19
  } from "../../chunk-EWYCWP4H.js";
22
20
  import {
23
21
  ObservabilityModule
24
- } from "../../chunk-TNXH7BJS.js";
22
+ } from "../../chunk-E45CSC33.js";
25
23
  import "../../chunk-AQFQ4BYM.js";
26
- import "../../chunk-YPWODKD5.js";
24
+ import "../../chunk-W2UIDI3R.js";
27
25
  import {
28
26
  OBSERVABILITY,
29
27
  OBSERVABILITY_MODULE_OPTIONS
30
28
  } from "../../chunk-Y7RRSEOC.js";
31
- import "../../chunk-FN2PYDPP.js";
32
- import {
33
- EventsModule
34
- } from "../../chunk-EOLLMEAH.js";
35
- import "../../chunk-GM3RMJIJ.js";
36
- import "../../chunk-BGULBWKJ.js";
37
- import "../../chunk-JRQO2IOF.js";
29
+ import "../../chunk-ZUMULSEQ.js";
38
30
  import {
39
- CacheModule
40
- } from "../../chunk-27ETSJ2X.js";
31
+ StorageModule
32
+ } from "../../chunk-RUSUZZAF.js";
41
33
  import {
42
- DrizzleCacheService
43
- } from "../../chunk-7YGORYZD.js";
34
+ MemoryStorageBackend
35
+ } from "../../chunk-3SZFUTXE.js";
44
36
  import {
45
- MemoryCacheService
46
- } from "../../chunk-IF5I3DAA.js";
37
+ STORAGE
38
+ } from "../../chunk-NYBCQZC7.js";
47
39
  import {
48
- CACHE
49
- } from "../../chunk-L6FTY45T.js";
50
- import "../../chunk-FASRXRX5.js";
40
+ LocalStorageBackend
41
+ } from "../../chunk-JWNHNUYL.js";
42
+ import "../../chunk-J6MN42LG.js";
43
+ import "../../chunk-W4HOHZVF.js";
44
+ import "../../chunk-AYC2HEAL.js";
45
+ import "../../chunk-JM3T27ZW.js";
46
+ import "../../chunk-DGYTSCKN.js";
47
+ import "../../chunk-5LXOJGO2.js";
48
+ import "../../chunk-QSJ3J4HE.js";
49
+ import "../../chunk-L3LZWWSX.js";
50
+ import "../../chunk-DV4RV2DC.js";
51
+ import "../../chunk-I6MVCB5A.js";
52
+ import "../../chunk-RHVN6NA7.js";
53
+ import "../../chunk-IT6FRTEW.js";
51
54
  import {
52
- DrizzleEventBus
53
- } from "../../chunk-4JLJYWJC.js";
55
+ collisionModeEnum,
56
+ jobRunStatusEnum,
57
+ jobRuns,
58
+ jobStepKindEnum,
59
+ jobStepStatusEnum,
60
+ jobSteps,
61
+ jobs,
62
+ parentClosePolicyEnum,
63
+ replayFromEnum,
64
+ triggerSourceEnum,
65
+ waitKindEnum
66
+ } from "../../chunk-OKXZ63IA.js";
67
+ import "../../chunk-T4YJRD22.js";
68
+ import "../../chunk-PNZSGAB2.js";
69
+ import "../../chunk-SNQ3TOWP.js";
70
+ import "../../chunk-CO6LUM72.js";
71
+ import "../../chunk-ZPL74UQN.js";
72
+ import "../../chunk-T4BIIU5E.js";
73
+ import "../../chunk-FN2PYDPP.js";
54
74
  import {
55
- MemoryEventBus
56
- } from "../../chunk-Z7PQCAVK.js";
57
- import "../../chunk-UQ5EHOH2.js";
75
+ EventsModule
76
+ } from "../../chunk-TKVTEUBD.js";
77
+ import "../../chunk-GM3RMJIJ.js";
78
+ import "../../chunk-BGULBWKJ.js";
79
+ import "../../chunk-JRQO2IOF.js";
58
80
  import "../../chunk-V4AF6DI4.js";
59
81
  import "../../chunk-7C3FOSDI.js";
60
82
  import {
61
83
  OAuth2RefreshStrategy
62
84
  } from "../../chunk-M6QLSLPO.js";
63
- import {
64
- ConnectionBrokenError
65
- } from "../../chunk-2N4UG4VD.js";
66
85
  import {
67
86
  withAuthRetry
68
87
  } from "../../chunk-WL67FZGF.js";
@@ -71,6 +90,22 @@ import {
71
90
  isSessionExpiredError
72
91
  } from "../../chunk-7RELQJIN.js";
73
92
  import "../../chunk-OSQRXVG2.js";
93
+ import {
94
+ ConnectionBrokenError
95
+ } from "../../chunk-2N4UG4VD.js";
96
+ import {
97
+ DrizzleEventBus
98
+ } from "../../chunk-H6FO2ZDJ.js";
99
+ import "../../chunk-4LH67P4U.js";
100
+ import "../../chunk-MYQIQ27N.js";
101
+ import "../../chunk-OFRRBC7M.js";
102
+ import {
103
+ MemoryEventBus
104
+ } from "../../chunk-LQ6PYFU6.js";
105
+ import {
106
+ EVENT_BUS
107
+ } from "../../chunk-H5NH7KPE.js";
108
+ import "../../chunk-UQ5EHOH2.js";
74
109
  import {
75
110
  AuthModule
76
111
  } from "../../chunk-T6SCOJF4.js";
@@ -89,9 +124,6 @@ import {
89
124
  import {
90
125
  OAuthStateError
91
126
  } from "../../chunk-BPARRK6F.js";
92
- import {
93
- authOAuthState
94
- } from "../../chunk-NPFPZ2HO.js";
95
127
  import {
96
128
  AUTH_CONNECTION_GRANT_SINK,
97
129
  AUTH_CONNECTION_READER,
@@ -102,55 +134,23 @@ import {
102
134
  OAUTH_STATE_STORE,
103
135
  STRATEGY_REGISTRY
104
136
  } from "../../chunk-6XY6ZMMD.js";
105
- import "../../chunk-4H3PETLM.js";
106
- import "../../chunk-RC23QROE.js";
107
- import "../../chunk-O37C3YE6.js";
108
- import "../../chunk-FBGHYQIZ.js";
109
- import "../../chunk-RDVTWIYY.js";
110
- import "../../chunk-L3LZWWSX.js";
111
- import "../../chunk-DV4RV2DC.js";
112
- import "../../chunk-I6MVCB5A.js";
113
- import "../../chunk-RHVN6NA7.js";
114
- import "../../chunk-5Y7W3XR6.js";
115
- import "../../chunk-4RFHUZXU.js";
116
- import "../../chunk-PNZSGAB2.js";
117
- import "../../chunk-SNQ3TOWP.js";
118
- import "../../chunk-T4BIIU5E.js";
119
- import "../../chunk-CO6LUM72.js";
120
- import "../../chunk-BIO6F7YI.js";
121
137
  import {
122
- EVENT_BUS
123
- } from "../../chunk-H5NH7KPE.js";
124
- import "../../chunk-4LH67P4U.js";
125
- import {
126
- collisionModeEnum,
127
- jobRunStatusEnum,
128
- jobRuns,
129
- jobStepKindEnum,
130
- jobStepStatusEnum,
131
- jobSteps,
132
- jobs,
133
- parentClosePolicyEnum,
134
- replayFromEnum,
135
- triggerSourceEnum,
136
- waitKindEnum
137
- } from "../../chunk-OKXZ63IA.js";
138
- import "../../chunk-OFRRBC7M.js";
138
+ authOAuthState
139
+ } from "../../chunk-NPFPZ2HO.js";
139
140
  import "../../chunk-GYGNEQSC.js";
140
- import "../../chunk-ZUKFQL6E.js";
141
141
  import "../../chunk-KVOWSC5S.js";
142
- import "../../chunk-GCYKMF22.js";
142
+ import "../../chunk-24WXSC3C.js";
143
143
  import "../../chunk-EO2QPOKH.js";
144
144
  import "../../chunk-PRWIX6UW.js";
145
- import "../../chunk-DCCZB4UC.js";
145
+ import "../../chunk-XWBK3XJK.js";
146
146
  import "../../chunk-AHV4GDYM.js";
147
- import "../../chunk-SR7F3TJY.js";
147
+ import "../../chunk-YK5JEVLX.js";
148
148
  import "../../chunk-SQDOBLBP.js";
149
149
  import {
150
150
  CURSOR_DIVISIBILITY,
151
151
  DetectionConfigSchema,
152
152
  isDivisibleCursor
153
- } from "../../chunk-3NMCDN7L.js";
153
+ } from "../../chunk-5TK7MEN4.js";
154
154
  import {
155
155
  MemoryEntityChangeSourceRegistry
156
156
  } from "../../chunk-4KNXX6TI.js";
@@ -159,7 +159,12 @@ import {
159
159
  } from "../../chunk-3CJFPU6Q.js";
160
160
  import {
161
161
  ExecuteIntegrationUseCase
162
- } from "../../chunk-OGIZXGPY.js";
162
+ } from "../../chunk-TDEHU73T.js";
163
+ import {
164
+ ENTITY_CHANGE_SOURCE_REGISTRY,
165
+ INTEGRATION_CHANGE_SOURCE,
166
+ INTEGRATION_SINK
167
+ } from "../../chunk-S7C6TIIF.js";
163
168
  import "../../chunk-MZ6GV4YF.js";
164
169
  import {
165
170
  IncrementalReadBase,
@@ -168,20 +173,16 @@ import {
168
173
  import "../../chunk-HNWZFNKP.js";
169
174
  import {
170
175
  buildChangeSource
171
- } from "../../chunk-WWGYCIJX.js";
176
+ } from "../../chunk-43SBT72G.js";
172
177
  import {
173
178
  PollChangeSource
174
179
  } from "../../chunk-4MF3HKJA.js";
175
180
  import {
176
181
  WebhookChangeSource
177
- } from "../../chunk-YLPAPPLW.js";
182
+ } from "../../chunk-TIZXQU26.js";
178
183
  import "../../chunk-36U5UGIO.js";
179
- import {
180
- ENTITY_CHANGE_SOURCE_REGISTRY,
181
- INTEGRATION_CHANGE_SOURCE,
182
- INTEGRATION_SINK
183
- } from "../../chunk-S7C6TIIF.js";
184
184
  import "../../chunk-U64T4YZE.js";
185
+ import "../../chunk-ZUKFQL6E.js";
185
186
  import "../../chunk-2E224ZSN.js";
186
187
  export {
187
188
  AUTH_CONNECTION_GRANT_SINK,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  buildChangeSource
3
- } from "../../../chunk-WWGYCIJX.js";
3
+ } from "../../../chunk-43SBT72G.js";
4
4
  import "../../../chunk-4MF3HKJA.js";
5
- import "../../../chunk-YLPAPPLW.js";
5
+ import "../../../chunk-TIZXQU26.js";
6
6
  import "../../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  buildChangeSource
@@ -24,8 +24,10 @@ import { z } from 'zod';
24
24
  * primitive while emitting `Change<T>.source = 'cdc'`. Long-lived
25
25
  * streaming CDC (SFDC Pub-Sub, Debezium) is a separate primitive
26
26
  * deferred to #226-8.
27
- * - `webhook` mode requires `eventIdField` so `WebhookChangeSource<T>`
28
- * can populate `Change<T>.dedupKey` from the inbound staging row.
27
+ * - `webhook` mode's `eventIdField` is optional: `WebhookChangeSource<T>`
28
+ * prefers an `eventId` yielded by the queue iterator and falls back to the
29
+ * `eventIdField` record extraction (precedence: yielded eventId >
30
+ * eventIdField extraction > undefined dedupKey).
29
31
  */
30
32
 
31
33
  /**
@@ -138,9 +140,9 @@ type CursorStrategy = z.infer<typeof CursorStrategySchema>;
138
140
  * `eventId` is classified atomic conservatively: a generic opaque id is treated
139
141
  * all-or-nothing unless a concrete strategy proves it monotonically resumable.
140
142
  */
141
- declare const CURSOR_DIVISIBILITY: Readonly<Record<CursorStrategy['kind'], boolean>>;
143
+ declare const CURSOR_DIVISIBILITY: Readonly<Record<CursorStrategy["kind"], boolean>>;
142
144
  /** Predicate form of {@link CURSOR_DIVISIBILITY}. */
143
- declare function isDivisibleCursor(kind: CursorStrategy['kind']): boolean;
145
+ declare function isDivisibleCursor(kind: CursorStrategy["kind"]): boolean;
144
146
  /**
145
147
  * Poll-mode block. `provenance: 'cdc'` opts the poll primitive into stamping
146
148
  * `Change<T>.source = 'cdc'` and populating `dedupKey` from the cursor's
@@ -248,16 +250,22 @@ declare const PollDetectionSchema: z.ZodObject<{
248
250
  }>;
249
251
  type PollDetection = z.infer<typeof PollDetectionSchema>;
250
252
  /**
251
- * Webhook-mode block. `eventIdField` names the column in the consumer-owned
252
- * inbound staging row that `WebhookChangeSource<T>` reads to set
253
- * `Change<T>.dedupKey`.
253
+ * Webhook-mode block. `eventIdField`, when present, names the field on the
254
+ * emitted canonical record that `WebhookChangeSource<T>` reads to set
255
+ * `Change<T>.dedupKey` — used only as the fallback when the queue iterator
256
+ * does NOT yield an `eventId` alongside the record.
257
+ *
258
+ * `eventIdField` is **optional**: a queue iterator that always yields an
259
+ * `eventId` (vendor delivery metadata, the preferred channel) need not declare
260
+ * a record field for it. dedupKey precedence is: yielded `eventId` >
261
+ * `eventIdField` record extraction > undefined.
254
262
  */
255
263
  declare const WebhookDetectionSchema: z.ZodObject<{
256
- eventIdField: z.ZodString;
264
+ eventIdField: z.ZodOptional<z.ZodString>;
257
265
  }, "strip", z.ZodTypeAny, {
258
- eventIdField: string;
266
+ eventIdField?: string | undefined;
259
267
  }, {
260
- eventIdField: string;
268
+ eventIdField?: string | undefined;
261
269
  }>;
262
270
  type WebhookDetection = z.infer<typeof WebhookDetectionSchema>;
263
271
  /**
@@ -466,11 +474,11 @@ declare const DetectionConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObjec
466
474
  }>, z.ZodObject<{
467
475
  mode: z.ZodLiteral<"webhook">;
468
476
  webhook: z.ZodObject<{
469
- eventIdField: z.ZodString;
477
+ eventIdField: z.ZodOptional<z.ZodString>;
470
478
  }, "strip", z.ZodTypeAny, {
471
- eventIdField: string;
479
+ eventIdField?: string | undefined;
472
480
  }, {
473
- eventIdField: string;
481
+ eventIdField?: string | undefined;
474
482
  }>;
475
483
  mapping: z.ZodArray<z.ZodObject<{
476
484
  source: z.ZodString;
@@ -500,7 +508,7 @@ declare const DetectionConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObjec
500
508
  }>, "many">>;
501
509
  }, "strip", z.ZodTypeAny, {
502
510
  webhook: {
503
- eventIdField: string;
511
+ eventIdField?: string | undefined;
504
512
  };
505
513
  mode: "webhook";
506
514
  mapping: {
@@ -515,7 +523,7 @@ declare const DetectionConfigSchema: z.ZodDiscriminatedUnion<"mode", [z.ZodObjec
515
523
  }[];
516
524
  }, {
517
525
  webhook: {
518
- eventIdField: string;
526
+ eventIdField?: string | undefined;
519
527
  };
520
528
  mode: "webhook";
521
529
  mapping: {
@@ -7,7 +7,7 @@ import {
7
7
  ResolvedFilterSchema,
8
8
  WebhookDetectionSchema,
9
9
  isDivisibleCursor
10
- } from "../../../chunk-3NMCDN7L.js";
10
+ } from "../../../chunk-5TK7MEN4.js";
11
11
  import "../../../chunk-2E224ZSN.js";
12
12
  export {
13
13
  CURSOR_DIVISIBILITY,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ExecuteIntegrationUseCase
3
- } from "../../../chunk-OGIZXGPY.js";
4
- import "../../../chunk-MZ6GV4YF.js";
3
+ } from "../../../chunk-TDEHU73T.js";
5
4
  import "../../../chunk-S7C6TIIF.js";
5
+ import "../../../chunk-MZ6GV4YF.js";
6
6
  import "../../../chunk-2E224ZSN.js";
7
7
  export {
8
8
  ExecuteIntegrationUseCase
@@ -1,7 +1,7 @@
1
1
  import "../../../chunk-KVOWSC5S.js";
2
2
  import {
3
3
  IntegrationModule
4
- } from "../../../chunk-GCYKMF22.js";
4
+ } from "../../../chunk-24WXSC3C.js";
5
5
  import {
6
6
  MemoryRunRecorder
7
7
  } from "../../../chunk-EO2QPOKH.js";
@@ -10,13 +10,13 @@ import {
10
10
  } from "../../../chunk-PRWIX6UW.js";
11
11
  import {
12
12
  PostgresCursorStore
13
- } from "../../../chunk-DCCZB4UC.js";
13
+ } from "../../../chunk-XWBK3XJK.js";
14
14
  import {
15
15
  MemoryCursorStore
16
16
  } from "../../../chunk-AHV4GDYM.js";
17
17
  import {
18
18
  DrizzleIntegrationRunRecorder
19
- } from "../../../chunk-SR7F3TJY.js";
19
+ } from "../../../chunk-YK5JEVLX.js";
20
20
  import {
21
21
  FieldDiffSchema,
22
22
  FieldDiffValueSchema
@@ -30,7 +30,7 @@ import {
30
30
  ResolvedFilterSchema,
31
31
  WebhookDetectionSchema,
32
32
  isDivisibleCursor
33
- } from "../../../chunk-3NMCDN7L.js";
33
+ } from "../../../chunk-5TK7MEN4.js";
34
34
  import {
35
35
  MemoryEntityChangeSourceRegistry
36
36
  } from "../../../chunk-4KNXX6TI.js";
@@ -39,7 +39,17 @@ import {
39
39
  } from "../../../chunk-3CJFPU6Q.js";
40
40
  import {
41
41
  ExecuteIntegrationUseCase
42
- } from "../../../chunk-OGIZXGPY.js";
42
+ } from "../../../chunk-TDEHU73T.js";
43
+ import {
44
+ ENTITY_CHANGE_SOURCE_REGISTRY,
45
+ INTEGRATION_CHANGE_SOURCE,
46
+ INTEGRATION_CURSOR_STORE,
47
+ INTEGRATION_FIELD_DIFFER,
48
+ INTEGRATION_MODULE_OPTIONS,
49
+ INTEGRATION_MULTI_TENANT,
50
+ INTEGRATION_RUN_RECORDER,
51
+ INTEGRATION_SINK
52
+ } from "../../../chunk-S7C6TIIF.js";
43
53
  import {
44
54
  MissingTenantIdError,
45
55
  assertTenantId
@@ -60,26 +70,16 @@ import {
60
70
  } from "../../../chunk-HNWZFNKP.js";
61
71
  import {
62
72
  buildChangeSource
63
- } from "../../../chunk-WWGYCIJX.js";
73
+ } from "../../../chunk-43SBT72G.js";
64
74
  import {
65
75
  PollChangeSource
66
76
  } from "../../../chunk-4MF3HKJA.js";
67
77
  import {
68
78
  WebhookChangeSource
69
- } from "../../../chunk-YLPAPPLW.js";
79
+ } from "../../../chunk-TIZXQU26.js";
70
80
  import {
71
81
  DeepEqualDiffer
72
82
  } from "../../../chunk-36U5UGIO.js";
73
- import {
74
- ENTITY_CHANGE_SOURCE_REGISTRY,
75
- INTEGRATION_CHANGE_SOURCE,
76
- INTEGRATION_CURSOR_STORE,
77
- INTEGRATION_FIELD_DIFFER,
78
- INTEGRATION_MODULE_OPTIONS,
79
- INTEGRATION_MULTI_TENANT,
80
- INTEGRATION_RUN_RECORDER,
81
- INTEGRATION_SINK
82
- } from "../../../chunk-S7C6TIIF.js";
83
83
  import "../../../chunk-U64T4YZE.js";
84
84
  import "../../../chunk-2E224ZSN.js";
85
85
  export {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  PostgresCursorStore
3
- } from "../../../chunk-DCCZB4UC.js";
3
+ } from "../../../chunk-XWBK3XJK.js";
4
+ import "../../../chunk-S7C6TIIF.js";
4
5
  import "../../../chunk-MZ6GV4YF.js";
5
6
  import "../../../chunk-HNWZFNKP.js";
6
- import "../../../chunk-S7C6TIIF.js";
7
7
  import "../../../chunk-U64T4YZE.js";
8
8
  import "../../../chunk-2E224ZSN.js";
9
9
  export {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  DrizzleIntegrationRunRecorder
3
- } from "../../../chunk-SR7F3TJY.js";
3
+ } from "../../../chunk-YK5JEVLX.js";
4
4
  import "../../../chunk-SQDOBLBP.js";
5
+ import "../../../chunk-S7C6TIIF.js";
5
6
  import "../../../chunk-MZ6GV4YF.js";
6
7
  import "../../../chunk-HNWZFNKP.js";
7
- import "../../../chunk-S7C6TIIF.js";
8
8
  import "../../../chunk-U64T4YZE.js";
9
9
  import "../../../chunk-2E224ZSN.js";
10
10
  export {
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  IntegrationModule
3
- } from "../../../chunk-GCYKMF22.js";
3
+ } from "../../../chunk-24WXSC3C.js";
4
4
  import "../../../chunk-EO2QPOKH.js";
5
- import "../../../chunk-DCCZB4UC.js";
5
+ import "../../../chunk-XWBK3XJK.js";
6
6
  import "../../../chunk-AHV4GDYM.js";
7
- import "../../../chunk-SR7F3TJY.js";
7
+ import "../../../chunk-YK5JEVLX.js";
8
8
  import "../../../chunk-SQDOBLBP.js";
9
+ import "../../../chunk-S7C6TIIF.js";
9
10
  import "../../../chunk-MZ6GV4YF.js";
10
11
  import "../../../chunk-HNWZFNKP.js";
11
12
  import "../../../chunk-36U5UGIO.js";
12
- import "../../../chunk-S7C6TIIF.js";
13
13
  import "../../../chunk-U64T4YZE.js";
14
14
  import "../../../chunk-2E224ZSN.js";
15
15
  export {
@@ -12,8 +12,11 @@ import 'zod';
12
12
  * queue. The primitive owns:
13
13
  *
14
14
  * - canonical `Change<T>.source = 'webhook'` stamping;
15
- * - `dedupKey` derivation from the configured `webhook.eventIdField` on
16
- * the emitted record;
15
+ * - `dedupKey` derivation, preferring the `eventId` yielded alongside the
16
+ * record by the queue iterator, and falling back to the configured
17
+ * `webhook.eventIdField` on the emitted record when no `eventId` is yielded
18
+ * (precedence: yielded `eventId` > `eventIdField` record extraction >
19
+ * undefined `dedupKey`);
17
20
  * - `externalId` derivation: the mapping entry whose `target === 'external_id'`
18
21
  * names — via its `source` — the field on the emitted record that carries
19
22
  * the canonical external id (mirrors `PollChangeSource`);
@@ -60,10 +63,22 @@ interface WebhookFetchContext {
60
63
  }
61
64
  /**
62
65
  * Consumer-supplied queue iterator. Returns an async iterable of
63
- * `{ record }` pairs — the consumer drains the inbound staging queue and
64
- * emits already-mapped canonical records `T`. The primitive stamps
65
- * `source: 'webhook'` and `dedupKey` from the record's configured
66
- * `webhook.eventIdField`; the consumer is the one who decided when a
66
+ * `{ record, eventId?, cursor? }` tuples — the consumer drains the inbound
67
+ * staging queue and emits already-mapped canonical records `T`. The primitive
68
+ * stamps `source: 'webhook'` and derives `dedupKey` with this precedence:
69
+ *
70
+ * 1. the yielded `eventId` (vendor delivery metadata — the queue is the
71
+ * right channel for it: a vendor's event id should never need a field
72
+ * on the vendor-neutral canonical record);
73
+ * 2. else the record field named by `webhook.eventIdField`, when configured;
74
+ * 3. else `undefined`.
75
+ *
76
+ * Yielding `eventId` is the safe channel when one canonical record identity
77
+ * (the `external_id`) can recur across distinct vendor events in a single
78
+ * drain batch — e.g. a message create and its later edit share an
79
+ * `external_id` but are different events. Reading dedup identity off the
80
+ * record (`eventIdField`) collapses those into one `dedupKey`; the yielded
81
+ * `eventId` keeps them distinct. The consumer is the one who decided when a
67
82
  * staging row is "ready" to drain.
68
83
  *
69
84
  * Webhook mode has no per-record cursor advance — the staging-row drain
@@ -73,6 +88,7 @@ interface WebhookFetchContext {
73
88
  */
74
89
  type WebhookFetchCallback<T> = (ctx: WebhookFetchContext) => AsyncIterable<{
75
90
  record: T;
91
+ eventId?: string;
76
92
  cursor?: WebhookCursor;
77
93
  }>;
78
94
  interface WebhookChangeSourceOptions<T> {
@@ -100,11 +116,25 @@ declare class WebhookChangeSource<T> implements IChangeSource<T> {
100
116
  readonly label: string;
101
117
  private readonly queue;
102
118
  private readonly externalIdSourceField;
119
+ /**
120
+ * Record field carrying the event id, when `webhook.eventIdField` is
121
+ * configured. Used only as the fallback when the queue iterator does NOT
122
+ * yield an `eventId` — see {@link WebhookFetchCallback} for the precedence.
123
+ */
103
124
  private readonly eventIdSourceField;
104
125
  private readonly composed;
105
126
  constructor(opts: WebhookChangeSourceOptions<T>);
106
127
  listChanges(subscription: IntegrationSubscriptionView, cursor: unknown | null): AsyncIterable<Change<T>>;
107
128
  private fetch;
129
+ /**
130
+ * Resolve `Change<T>.dedupKey` with the precedence: yielded `eventId` >
131
+ * `webhook.eventIdField` record extraction > `undefined`. A non-empty
132
+ * yielded `eventId` always wins; otherwise the configured field is read off
133
+ * the record (and must be a non-empty string when the field is configured);
134
+ * with neither, `dedupKey` is `undefined` (the orchestrator then has no
135
+ * delivery-level dedup signal for this change).
136
+ */
137
+ private deriveDedupKey;
108
138
  }
109
139
 
110
140
  export { WebhookChangeSource, type WebhookChangeSourceOptions, type WebhookCursor, type WebhookFetchCallback, type WebhookFetchContext };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WebhookChangeSource
3
- } from "../../../chunk-YLPAPPLW.js";
3
+ } from "../../../chunk-TIZXQU26.js";
4
4
  import "../../../chunk-2E224ZSN.js";
5
5
  export {
6
6
  WebhookChangeSource
@@ -1,5 +1,5 @@
1
1
  export { JobDefinitionRow, JobRunRow, JobStepRow, collisionModeEnum, jobRunStatusEnum, jobRuns, jobStepKindEnum, jobStepStatusEnum, jobSteps, jobs, parentClosePolicyEnum, replayFromEnum, triggerSourceEnum, waitKindEnum } from './job-orchestration.schema.js';
2
- export { JOBS_MULTI_TENANT, JOB_ORCHESTRATOR, JOB_RUN_SERVICE, JOB_STEP_SERVICE } from './jobs-domain.tokens.js';
2
+ export { JOBS_LISTEN_NOTIFY, JOBS_MULTI_TENANT, JOB_ORCHESTRATOR, JOB_RUN_SERVICE, JOB_STEP_SERVICE } from './jobs-domain.tokens.js';
3
3
  export { C as CancelOptions, a as ConcurrencyPolicy, D as DedupePolicy, H as HandlerRegistry, b as HandlerRegistryEntry, I as IJobOrchestrator, J as JOB_HANDLER_METADATA_KEY, c as JOB_HANDLER_REGISTRY, d as JobContext, e as JobHandler, f as JobHandlerBase, g as JobHandlerMeta, h as JobPoolDef, i as JobRun, j as JobUpsertEntry, P as ParentClosePolicy, R as RetryPolicy, S as ScopeRef, k as SpawnChildOptions, l as StartOptions, m as StepOptions } from '../../../job-orchestrator.protocol-DubMVbm9.js';
4
4
  export { CancelForScopeOptions, IJobRunService, JobRunFailure, JobRunPage, JobRunSummary, ListForScopeOptions, ListJobRunsQuery, PoolStatusCount, RescheduleForScopeOptions } from './job-run-service.protocol.js';
5
5
  export { IJobStepService, JobStep, RecordStepInput } from './job-step-service.protocol.js';
@@ -8,6 +8,7 @@ export { DrizzleJobRunService } from './job-run-service.drizzle-backend.js';
8
8
  export { DrizzleJobStepService } from './job-step-service.drizzle-backend.js';
9
9
  export { BULLMQ_CONNECTION, BULLMQ_RESOLVED_CONFIG, BullMqConnectionOptions, BullMqExtensionsConfig, BullMqResolvedConfig, resolveBullMqConfig, resolvePoolQueueName } from './bullmq.config.js';
10
10
  export { JOB_WORKER_OPTIONS, JobWorker, JobWorkerOptions, buildClaimQuery, buildStaleSweepQuery, classifyError, computeBackoff } from './job-worker.js';
11
+ export { EVENTS_WAKE_CHANNEL, JOBS_WAKE_CHANNEL, PgNotifyListener, PgNotifyListenerOptions, pgNotify } from './pg-notify.js';
11
12
  export { BootValidationError, JobCollisionError, JobNotReplayableError, JobTemplateFieldMissingError, JobTypeNotFoundError, MissingTenantIdError, ReservedPoolViolationError } from './jobs-errors.js';
12
13
  export { MemoryJobStore } from './memory-job-store.js';
13
14
  export { MemoryJobOrchestrator } from './job-orchestrator.memory-backend.js';