@qlever-llc/trellis 0.10.22 → 0.11.0-rc.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 (406) hide show
  1. package/esm/auth/mod.d.ts +1 -1
  2. package/esm/auth/mod.d.ts.map +1 -1
  3. package/esm/auth/mod.js +1 -1
  4. package/esm/auth/protocol.d.ts +55 -0
  5. package/esm/auth/protocol.d.ts.map +1 -1
  6. package/esm/browser.d.ts +3 -3
  7. package/esm/browser.d.ts.map +1 -1
  8. package/esm/browser.js +1 -1
  9. package/esm/client_connect.d.ts +12 -3
  10. package/esm/client_connect.d.ts.map +1 -1
  11. package/esm/client_connect.js +112 -7
  12. package/esm/codec.d.ts +7 -6
  13. package/esm/codec.d.ts.map +1 -1
  14. package/esm/codec.js +125 -6
  15. package/esm/contract_support/canonical.d.ts +3 -0
  16. package/esm/contract_support/canonical.d.ts.map +1 -1
  17. package/esm/contract_support/canonical.js +3 -0
  18. package/esm/contract_support/mod.d.ts +125 -10
  19. package/esm/contract_support/mod.d.ts.map +1 -1
  20. package/esm/contract_support/mod.js +159 -5
  21. package/esm/contract_support/protocol.d.ts +92 -7
  22. package/esm/contract_support/protocol.d.ts.map +1 -1
  23. package/esm/contract_support/protocol.js +41 -7
  24. package/esm/contract_support/runtime.d.ts +4 -1
  25. package/esm/contract_support/runtime.d.ts.map +1 -1
  26. package/esm/errors/SchemaValidationError.d.ts +49 -0
  27. package/esm/errors/SchemaValidationError.d.ts.map +1 -0
  28. package/esm/errors/SchemaValidationError.js +67 -0
  29. package/esm/errors/index.d.ts +38 -9
  30. package/esm/errors/index.d.ts.map +1 -1
  31. package/esm/errors/index.js +16 -0
  32. package/esm/generated-sdk/auth/api.d.ts +33 -605
  33. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  34. package/esm/generated-sdk/auth/api.js +6 -1
  35. package/esm/generated-sdk/auth/client.d.ts +129 -134
  36. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  37. package/esm/generated-sdk/auth/contract.d.ts +2 -601
  38. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  39. package/esm/generated-sdk/auth/contract.js +310 -93
  40. package/esm/generated-sdk/auth/mod.d.ts +1 -1
  41. package/esm/generated-sdk/auth/mod.d.ts.map +1 -1
  42. package/esm/generated-sdk/auth/owned_api.d.ts +88 -86
  43. package/esm/generated-sdk/auth/owned_api.d.ts.map +1 -1
  44. package/esm/generated-sdk/auth/owned_api.js +6 -0
  45. package/esm/generated-sdk/auth/schemas.d.ts +284 -136
  46. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  47. package/esm/generated-sdk/auth/schemas.js +231 -92
  48. package/esm/generated-sdk/auth/types.d.ts +565 -89
  49. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  50. package/esm/generated-sdk/auth/types.js +1 -1
  51. package/esm/generated-sdk/health/api.d.ts +29 -18
  52. package/esm/generated-sdk/health/api.d.ts.map +1 -1
  53. package/esm/generated-sdk/health/client.d.ts +7 -21
  54. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  55. package/esm/generated-sdk/health/contract.d.ts +2 -15
  56. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  57. package/esm/generated-sdk/health/contract.js +2 -10
  58. package/esm/generated-sdk/health/mod.d.ts +1 -1
  59. package/esm/generated-sdk/health/mod.d.ts.map +1 -1
  60. package/esm/generated-sdk/health/owned_api.d.ts +2 -2
  61. package/esm/generated-sdk/health/schemas.d.ts +1 -14
  62. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  63. package/esm/generated-sdk/health/schemas.js +1 -9
  64. package/esm/generated-sdk/health/types.d.ts +10 -5
  65. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  66. package/esm/generated-sdk/health/types.js +1 -2
  67. package/esm/generated-sdk/jobs/api.d.ts +29 -109
  68. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  69. package/esm/generated-sdk/jobs/client.d.ts +21 -33
  70. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  71. package/esm/generated-sdk/jobs/contract.d.ts +2 -106
  72. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  73. package/esm/generated-sdk/jobs/contract.js +268 -1
  74. package/esm/generated-sdk/jobs/mod.d.ts +1 -1
  75. package/esm/generated-sdk/jobs/mod.d.ts.map +1 -1
  76. package/esm/generated-sdk/jobs/owned_api.d.ts +22 -9
  77. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  78. package/esm/generated-sdk/jobs/owned_api.js +20 -1
  79. package/esm/generated-sdk/jobs/schemas.d.ts +437 -0
  80. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  81. package/esm/generated-sdk/jobs/schemas.js +211 -0
  82. package/esm/generated-sdk/jobs/types.d.ts +195 -12
  83. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  84. package/esm/generated-sdk/jobs/types.js +1 -1
  85. package/esm/generated-sdk/state/api.d.ts +29 -68
  86. package/esm/generated-sdk/state/api.d.ts.map +1 -1
  87. package/esm/generated-sdk/state/client.d.ts +17 -31
  88. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  89. package/esm/generated-sdk/state/contract.d.ts +1 -64
  90. package/esm/generated-sdk/state/contract.d.ts.map +1 -1
  91. package/esm/generated-sdk/state/mod.d.ts +1 -1
  92. package/esm/generated-sdk/state/mod.d.ts.map +1 -1
  93. package/esm/generated-sdk/state/owned_api.d.ts +7 -7
  94. package/esm/generated-sdk/state/types.d.ts +52 -9
  95. package/esm/generated-sdk/state/types.d.ts.map +1 -1
  96. package/esm/generated-sdk/trellis-core/api.d.ts +33 -45
  97. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  98. package/esm/generated-sdk/trellis-core/api.js +6 -1
  99. package/esm/generated-sdk/trellis-core/client.d.ts +31 -20
  100. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  101. package/esm/generated-sdk/trellis-core/contract.d.ts +2 -41
  102. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  103. package/esm/generated-sdk/trellis-core/contract.js +91 -1
  104. package/esm/generated-sdk/trellis-core/mod.d.ts +1 -1
  105. package/esm/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  106. package/esm/generated-sdk/trellis-core/owned_api.d.ts +4 -4
  107. package/esm/generated-sdk/trellis-core/schemas.d.ts +113 -0
  108. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  109. package/esm/generated-sdk/trellis-core/schemas.js +81 -0
  110. package/esm/generated-sdk/trellis-core/types.d.ts +54 -7
  111. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  112. package/esm/generated-sdk/trellis-core/types.js +1 -1
  113. package/esm/health.d.ts +1 -1
  114. package/esm/health.d.ts.map +1 -1
  115. package/esm/health.js +1 -1
  116. package/esm/index.d.ts +4 -4
  117. package/esm/index.d.ts.map +1 -1
  118. package/esm/index.js +2 -2
  119. package/esm/jobs.d.ts +69 -3
  120. package/esm/jobs.d.ts.map +1 -1
  121. package/esm/jobs.js +92 -3
  122. package/esm/server/health.d.ts +2 -6
  123. package/esm/server/health.d.ts.map +1 -1
  124. package/esm/server/health_schemas.d.ts +0 -8
  125. package/esm/server/health_schemas.d.ts.map +1 -1
  126. package/esm/server/health_schemas.js +0 -5
  127. package/esm/server/internal_jobs/bindings.d.ts +11 -0
  128. package/esm/server/internal_jobs/bindings.d.ts.map +1 -1
  129. package/esm/server/internal_jobs/job-manager.d.ts +58 -2
  130. package/esm/server/internal_jobs/job-manager.d.ts.map +1 -1
  131. package/esm/server/internal_jobs/job-manager.js +429 -55
  132. package/esm/server/internal_jobs/key-coordinator.d.ts +269 -0
  133. package/esm/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  134. package/esm/server/internal_jobs/key-coordinator.js +677 -0
  135. package/esm/server/internal_jobs/projection.d.ts.map +1 -1
  136. package/esm/server/internal_jobs/projection.js +2 -0
  137. package/esm/server/internal_jobs/runtime-worker.d.ts +5 -1
  138. package/esm/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  139. package/esm/server/internal_jobs/runtime-worker.js +14 -2
  140. package/esm/server/internal_jobs/types.d.ts +5 -5
  141. package/esm/server/internal_jobs/types.d.ts.map +1 -1
  142. package/esm/server/internal_jobs/types.js +6 -0
  143. package/esm/server/runtime.d.ts.map +1 -1
  144. package/esm/server/service.d.ts +81 -112
  145. package/esm/server/service.d.ts.map +1 -1
  146. package/esm/server/service.js +372 -130
  147. package/esm/server.d.ts +3 -3
  148. package/esm/server.d.ts.map +1 -1
  149. package/esm/service/deno.d.ts +1 -1
  150. package/esm/service/deno.d.ts.map +1 -1
  151. package/esm/service/drizzle.d.ts +52 -0
  152. package/esm/service/drizzle.d.ts.map +1 -0
  153. package/esm/service/drizzle.js +108 -0
  154. package/esm/service/mod.d.ts +3 -3
  155. package/esm/service/mod.d.ts.map +1 -1
  156. package/esm/service/mod.js +2 -2
  157. package/esm/service/node.d.ts +1 -1
  158. package/esm/service/node.d.ts.map +1 -1
  159. package/esm/service/outbox_inbox.d.ts +76 -22
  160. package/esm/service/outbox_inbox.d.ts.map +1 -1
  161. package/esm/service/outbox_inbox.js +231 -70
  162. package/esm/telemetry/metrics.d.ts +55 -0
  163. package/esm/telemetry/metrics.d.ts.map +1 -1
  164. package/esm/telemetry/metrics.js +86 -0
  165. package/esm/telemetry/mod.d.ts +2 -1
  166. package/esm/telemetry/mod.d.ts.map +1 -1
  167. package/esm/telemetry/mod.js +1 -1
  168. package/esm/trellis.d.ts +62 -30
  169. package/esm/trellis.d.ts.map +1 -1
  170. package/esm/trellis.js +125 -42
  171. package/package.json +14 -2
  172. package/script/auth/mod.d.ts +1 -1
  173. package/script/auth/mod.d.ts.map +1 -1
  174. package/script/auth/mod.js +11 -4
  175. package/script/auth/protocol.d.ts +55 -0
  176. package/script/auth/protocol.d.ts.map +1 -1
  177. package/script/browser.d.ts +3 -3
  178. package/script/browser.d.ts.map +1 -1
  179. package/script/browser.js +3 -2
  180. package/script/client_connect.d.ts +12 -3
  181. package/script/client_connect.d.ts.map +1 -1
  182. package/script/client_connect.js +111 -6
  183. package/script/codec.d.ts +7 -6
  184. package/script/codec.d.ts.map +1 -1
  185. package/script/codec.js +124 -5
  186. package/script/contract_support/canonical.d.ts +3 -0
  187. package/script/contract_support/canonical.d.ts.map +1 -1
  188. package/script/contract_support/canonical.js +3 -0
  189. package/script/contract_support/mod.d.ts +125 -10
  190. package/script/contract_support/mod.d.ts.map +1 -1
  191. package/script/contract_support/mod.js +165 -5
  192. package/script/contract_support/protocol.d.ts +92 -7
  193. package/script/contract_support/protocol.d.ts.map +1 -1
  194. package/script/contract_support/protocol.js +42 -8
  195. package/script/contract_support/runtime.d.ts +4 -1
  196. package/script/contract_support/runtime.d.ts.map +1 -1
  197. package/script/errors/SchemaValidationError.d.ts +49 -0
  198. package/script/errors/SchemaValidationError.d.ts.map +1 -0
  199. package/script/errors/SchemaValidationError.js +74 -0
  200. package/script/errors/index.d.ts +38 -9
  201. package/script/errors/index.d.ts.map +1 -1
  202. package/script/errors/index.js +20 -1
  203. package/script/generated-sdk/auth/api.d.ts +33 -605
  204. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  205. package/script/generated-sdk/auth/api.js +6 -1
  206. package/script/generated-sdk/auth/client.d.ts +129 -134
  207. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  208. package/script/generated-sdk/auth/contract.d.ts +2 -601
  209. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  210. package/script/generated-sdk/auth/contract.js +310 -93
  211. package/script/generated-sdk/auth/mod.d.ts +1 -1
  212. package/script/generated-sdk/auth/mod.d.ts.map +1 -1
  213. package/script/generated-sdk/auth/owned_api.d.ts +88 -86
  214. package/script/generated-sdk/auth/owned_api.d.ts.map +1 -1
  215. package/script/generated-sdk/auth/owned_api.js +6 -0
  216. package/script/generated-sdk/auth/schemas.d.ts +284 -136
  217. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  218. package/script/generated-sdk/auth/schemas.js +231 -92
  219. package/script/generated-sdk/auth/types.d.ts +565 -89
  220. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  221. package/script/generated-sdk/auth/types.js +1 -1
  222. package/script/generated-sdk/health/api.d.ts +29 -18
  223. package/script/generated-sdk/health/api.d.ts.map +1 -1
  224. package/script/generated-sdk/health/client.d.ts +7 -21
  225. package/script/generated-sdk/health/client.d.ts.map +1 -1
  226. package/script/generated-sdk/health/contract.d.ts +2 -15
  227. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  228. package/script/generated-sdk/health/contract.js +2 -10
  229. package/script/generated-sdk/health/mod.d.ts +1 -1
  230. package/script/generated-sdk/health/mod.d.ts.map +1 -1
  231. package/script/generated-sdk/health/owned_api.d.ts +2 -2
  232. package/script/generated-sdk/health/schemas.d.ts +1 -14
  233. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  234. package/script/generated-sdk/health/schemas.js +1 -9
  235. package/script/generated-sdk/health/types.d.ts +10 -5
  236. package/script/generated-sdk/health/types.d.ts.map +1 -1
  237. package/script/generated-sdk/health/types.js +1 -2
  238. package/script/generated-sdk/jobs/api.d.ts +29 -109
  239. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  240. package/script/generated-sdk/jobs/client.d.ts +21 -33
  241. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  242. package/script/generated-sdk/jobs/contract.d.ts +2 -106
  243. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  244. package/script/generated-sdk/jobs/contract.js +268 -1
  245. package/script/generated-sdk/jobs/mod.d.ts +1 -1
  246. package/script/generated-sdk/jobs/mod.d.ts.map +1 -1
  247. package/script/generated-sdk/jobs/owned_api.d.ts +22 -9
  248. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  249. package/script/generated-sdk/jobs/owned_api.js +19 -0
  250. package/script/generated-sdk/jobs/schemas.d.ts +437 -0
  251. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  252. package/script/generated-sdk/jobs/schemas.js +212 -1
  253. package/script/generated-sdk/jobs/types.d.ts +195 -12
  254. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  255. package/script/generated-sdk/jobs/types.js +1 -1
  256. package/script/generated-sdk/state/api.d.ts +29 -68
  257. package/script/generated-sdk/state/api.d.ts.map +1 -1
  258. package/script/generated-sdk/state/client.d.ts +17 -31
  259. package/script/generated-sdk/state/client.d.ts.map +1 -1
  260. package/script/generated-sdk/state/contract.d.ts +1 -64
  261. package/script/generated-sdk/state/contract.d.ts.map +1 -1
  262. package/script/generated-sdk/state/mod.d.ts +1 -1
  263. package/script/generated-sdk/state/mod.d.ts.map +1 -1
  264. package/script/generated-sdk/state/owned_api.d.ts +7 -7
  265. package/script/generated-sdk/state/types.d.ts +52 -9
  266. package/script/generated-sdk/state/types.d.ts.map +1 -1
  267. package/script/generated-sdk/trellis-core/api.d.ts +33 -45
  268. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  269. package/script/generated-sdk/trellis-core/api.js +6 -1
  270. package/script/generated-sdk/trellis-core/client.d.ts +31 -20
  271. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  272. package/script/generated-sdk/trellis-core/contract.d.ts +2 -41
  273. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  274. package/script/generated-sdk/trellis-core/contract.js +91 -1
  275. package/script/generated-sdk/trellis-core/mod.d.ts +1 -1
  276. package/script/generated-sdk/trellis-core/mod.d.ts.map +1 -1
  277. package/script/generated-sdk/trellis-core/owned_api.d.ts +4 -4
  278. package/script/generated-sdk/trellis-core/schemas.d.ts +113 -0
  279. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  280. package/script/generated-sdk/trellis-core/schemas.js +81 -0
  281. package/script/generated-sdk/trellis-core/types.d.ts +54 -7
  282. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  283. package/script/generated-sdk/trellis-core/types.js +1 -1
  284. package/script/health.d.ts +1 -1
  285. package/script/health.d.ts.map +1 -1
  286. package/script/health.js +1 -2
  287. package/script/index.d.ts +4 -4
  288. package/script/index.d.ts.map +1 -1
  289. package/script/index.js +2 -2
  290. package/script/jobs.d.ts +69 -3
  291. package/script/jobs.d.ts.map +1 -1
  292. package/script/jobs.js +93 -3
  293. package/script/server/health.d.ts +2 -6
  294. package/script/server/health.d.ts.map +1 -1
  295. package/script/server/health_schemas.d.ts +0 -8
  296. package/script/server/health_schemas.d.ts.map +1 -1
  297. package/script/server/health_schemas.js +1 -6
  298. package/script/server/internal_jobs/bindings.d.ts +11 -0
  299. package/script/server/internal_jobs/bindings.d.ts.map +1 -1
  300. package/script/server/internal_jobs/job-manager.d.ts +58 -2
  301. package/script/server/internal_jobs/job-manager.d.ts.map +1 -1
  302. package/script/server/internal_jobs/job-manager.js +429 -54
  303. package/script/server/internal_jobs/key-coordinator.d.ts +269 -0
  304. package/script/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  305. package/script/server/internal_jobs/key-coordinator.js +690 -0
  306. package/script/server/internal_jobs/projection.d.ts.map +1 -1
  307. package/script/server/internal_jobs/projection.js +2 -0
  308. package/script/server/internal_jobs/runtime-worker.d.ts +5 -1
  309. package/script/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  310. package/script/server/internal_jobs/runtime-worker.js +14 -2
  311. package/script/server/internal_jobs/types.d.ts +5 -5
  312. package/script/server/internal_jobs/types.d.ts.map +1 -1
  313. package/script/server/internal_jobs/types.js +6 -0
  314. package/script/server/runtime.d.ts.map +1 -1
  315. package/script/server/service.d.ts +81 -112
  316. package/script/server/service.d.ts.map +1 -1
  317. package/script/server/service.js +369 -127
  318. package/script/server.d.ts +3 -3
  319. package/script/server.d.ts.map +1 -1
  320. package/script/service/deno.d.ts +1 -1
  321. package/script/service/deno.d.ts.map +1 -1
  322. package/script/service/drizzle.d.ts +52 -0
  323. package/script/service/drizzle.d.ts.map +1 -0
  324. package/script/service/drizzle.js +113 -0
  325. package/script/service/mod.d.ts +3 -3
  326. package/script/service/mod.d.ts.map +1 -1
  327. package/script/service/mod.js +4 -3
  328. package/script/service/node.d.ts +1 -1
  329. package/script/service/node.d.ts.map +1 -1
  330. package/script/service/outbox_inbox.d.ts +76 -22
  331. package/script/service/outbox_inbox.d.ts.map +1 -1
  332. package/script/service/outbox_inbox.js +233 -70
  333. package/script/telemetry/metrics.d.ts +55 -0
  334. package/script/telemetry/metrics.d.ts.map +1 -1
  335. package/script/telemetry/metrics.js +88 -0
  336. package/script/telemetry/mod.d.ts +2 -1
  337. package/script/telemetry/mod.d.ts.map +1 -1
  338. package/script/telemetry/mod.js +3 -1
  339. package/script/trellis.d.ts +62 -30
  340. package/script/trellis.d.ts.map +1 -1
  341. package/script/trellis.js +124 -41
  342. package/src/auth/mod.ts +7 -0
  343. package/src/browser.ts +5 -7
  344. package/src/client_connect.ts +200 -12
  345. package/src/codec.ts +186 -11
  346. package/src/contract_support/canonical.ts +3 -0
  347. package/src/contract_support/mod.ts +380 -9
  348. package/src/contract_support/protocol.ts +57 -10
  349. package/src/contract_support/runtime.ts +7 -0
  350. package/src/errors/SchemaValidationError.ts +67 -0
  351. package/src/errors/index.ts +28 -0
  352. package/src/health.ts +0 -1
  353. package/src/index.ts +7 -8
  354. package/src/jobs.ts +138 -1
  355. package/src/sdk/_generated/auth/api.ts +38 -7
  356. package/src/sdk/_generated/auth/client.ts +168 -530
  357. package/src/sdk/_generated/auth/contract.ts +310 -93
  358. package/src/sdk/_generated/auth/mod.ts +0 -1
  359. package/src/sdk/_generated/auth/owned_api.ts +92 -86
  360. package/src/sdk/_generated/auth/schemas.ts +231 -92
  361. package/src/sdk/_generated/auth/types.ts +1069 -273
  362. package/src/sdk/_generated/core/api.ts +38 -7
  363. package/src/sdk/_generated/core/client.ts +47 -73
  364. package/src/sdk/_generated/core/contract.ts +91 -1
  365. package/src/sdk/_generated/core/mod.ts +0 -1
  366. package/src/sdk/_generated/core/owned_api.ts +4 -4
  367. package/src/sdk/_generated/core/schemas.ts +81 -0
  368. package/src/sdk/_generated/core/types.ts +79 -15
  369. package/src/sdk/_generated/health/api.ts +29 -5
  370. package/src/sdk/_generated/health/client.ts +11 -58
  371. package/src/sdk/_generated/health/contract.ts +2 -10
  372. package/src/sdk/_generated/health/mod.ts +0 -1
  373. package/src/sdk/_generated/health/owned_api.ts +2 -2
  374. package/src/sdk/_generated/health/schemas.ts +1 -9
  375. package/src/sdk/_generated/health/types.ts +23 -2
  376. package/src/sdk/_generated/jobs/api.ts +29 -5
  377. package/src/sdk/_generated/jobs/client.ts +25 -109
  378. package/src/sdk/_generated/jobs/contract.ts +269 -1
  379. package/src/sdk/_generated/jobs/mod.ts +0 -1
  380. package/src/sdk/_generated/jobs/owned_api.ts +30 -9
  381. package/src/sdk/_generated/jobs/schemas.ts +213 -0
  382. package/src/sdk/_generated/jobs/types.ts +252 -18
  383. package/src/sdk/_generated/state/api.ts +29 -5
  384. package/src/sdk/_generated/state/client.ts +18 -95
  385. package/src/sdk/_generated/state/mod.ts +0 -1
  386. package/src/sdk/_generated/state/owned_api.ts +7 -7
  387. package/src/sdk/_generated/state/types.ts +91 -15
  388. package/src/server/health.ts +2 -6
  389. package/src/server/health_schemas.ts +0 -6
  390. package/src/server/internal_jobs/bindings.ts +11 -0
  391. package/src/server/internal_jobs/job-manager.ts +553 -24
  392. package/src/server/internal_jobs/key-coordinator.ts +1080 -0
  393. package/src/server/internal_jobs/projection.ts +2 -0
  394. package/src/server/internal_jobs/runtime-worker.ts +17 -1
  395. package/src/server/internal_jobs/types.ts +6 -0
  396. package/src/server/runtime.ts +4 -0
  397. package/src/server/service.ts +645 -625
  398. package/src/server.ts +14 -7
  399. package/src/service/deno.ts +0 -5
  400. package/src/service/drizzle.ts +184 -0
  401. package/src/service/mod.ts +17 -7
  402. package/src/service/node.ts +0 -5
  403. package/src/service/outbox_inbox.ts +354 -88
  404. package/src/telemetry/metrics.ts +198 -1
  405. package/src/telemetry/mod.ts +6 -0
  406. package/src/trellis.ts +286 -105
package/esm/server.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { NatsConnection } from "@nats-io/nats-core";
2
2
  import type { TrellisAPI } from "./contracts.js";
3
- import { AsyncResult } from "@qlever-llc/result";
3
+ import { AsyncResult, BaseError } from "@qlever-llc/result";
4
4
  import { TransferError } from "./errors/index.js";
5
5
  import { type AnyTrellisAPI, type HandlerFn, type MethodsOf, type OperationInputOf, type OperationOutputOf, type OperationProgressOf, type OperationRegistration, type OperationsOf, type OperationTransferContextOf, type OperationTransferHandle, type RuntimeOperationController, Trellis, type TrellisAuth, type TrellisMode, type TrellisOpts } from "./trellis.js";
6
6
  import type { SendTransferGrant } from "./transfer.js";
@@ -11,7 +11,7 @@ type TrellisServiceRuntimeOpts<TA extends AnyTrellisAPI> = Omit<TrellisOpts<TA>,
11
11
  };
12
12
  export type TrellisServiceRuntimeFor<TA extends AnyTrellisAPI = TrellisAPI> = Omit<TrellisServiceRuntime, "mount" | "operationHandle"> & {
13
13
  mount<M extends MethodsOf<TA>>(method: M, fn: HandlerFn<TA, M>): Promise<void>;
14
- operationHandle<O extends OperationsOf<TA>>(operation: O): OperationRegistration<OperationInputOf<TA, O>, OperationProgressOf<TA, O>, OperationOutputOf<TA, O>, OperationTransferContextOf<TA, O>>;
14
+ operationHandle<O extends OperationsOf<TA>>(operation: O): OperationRegistration<OperationInputOf<TA, O>, OperationProgressOf<TA, O>, OperationOutputOf<TA, O>, OperationTransferContextOf<TA, O>, BaseError>;
15
15
  };
16
16
  type RuntimeOperationTransferSession = {
17
17
  grant: SendTransferGrant;
@@ -34,7 +34,7 @@ export declare class TrellisServiceRuntime extends Trellis<TrellisAPI, TrellisMo
34
34
  private constructor();
35
35
  mountRuntime(method: string, fn: Parameters<Trellis<TrellisAPI, TrellisMode>["mount"]>[1]): Promise<void>;
36
36
  static create<TA extends AnyTrellisAPI>(name: string, nats: NatsConnection, auth: TrellisAuth, opts: TrellisServiceRuntimeOpts<TA>): TrellisServiceRuntimeFor<TA>;
37
- operationHandle(operation: string): OperationRegistration<unknown, unknown, unknown>;
37
+ operationHandle(operation: string): OperationRegistration<unknown, unknown, unknown, undefined, BaseError>;
38
38
  stop(): Promise<void>;
39
39
  }
40
40
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import "../_dnt.polyfills.js";
2
- export { type BoundTrellisService, type FeedHandler, type HealthCheckHandler, type HealthInfoHandler, type JobArgs, type JobHandler, type JobQueue, type JobResult, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, } from "../server/service.js";
2
+ export { type HealthCheckHandler, type HealthInfoHandler, type JobQueue, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, } from "../server/service.js";
3
3
  //# sourceMappingURL=deno.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/service/deno.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,GACxC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"deno.d.ts","sourceRoot":"","sources":["../../src/service/deno.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,GACxC,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import "../_dnt.polyfills.js";
2
+ import { type SQL } from "drizzle-orm";
3
+ import type { SqlExecutor, SqlRow } from "./outbox_inbox.js";
4
+ /**
5
+ * Structural Drizzle database or transaction shape accepted by Trellis SQL
6
+ * outbox helpers.
7
+ */
8
+ export type DrizzleSqlDatabase = {
9
+ /** Runs a SQL statement that returns rows. */
10
+ all(query: SQL): Promise<readonly SqlRow[]>;
11
+ /** Runs a SQL statement that does not return rows. */
12
+ run(query: SQL): Promise<unknown>;
13
+ };
14
+ /**
15
+ * Structural transaction runner used by Drizzle-backed Trellis SQL outbox
16
+ * integrations.
17
+ */
18
+ export type DrizzleSqlTransactionRunner<TDb extends DrizzleSqlDatabase, TTx extends DrizzleSqlDatabase> = (database: TDb, work: (transaction: TTx) => Promise<unknown>) => Promise<unknown>;
19
+ /** Options for Drizzle-backed Trellis SQL outbox integration. */
20
+ export type DrizzleSqlOutboxOptions<TDb extends DrizzleSqlDatabase, TTx extends DrizzleSqlDatabase> = {
21
+ /** Caller-owned base Drizzle database used for non-transactional outbox work. */
22
+ readonly db: TDb;
23
+ /** Caller-owned transaction runner used to scope service work and enqueues. */
24
+ readonly transaction: DrizzleSqlTransactionRunner<TDb, TTx>;
25
+ };
26
+ /**
27
+ * Adapts a caller-owned Drizzle database or transaction to Trellis'
28
+ * generic `SqlExecutor` interface.
29
+ *
30
+ * This helper is cheap: it creates a small closure object only. It does not open
31
+ * connections, prepare statements, or inspect schema. Service authors can use it
32
+ * when adapting Drizzle databases or transactions to the generic
33
+ * `withSqlOutbox(...)` SQL executor options.
34
+ */
35
+ export declare function createDrizzleSqlExecutor(database: DrizzleSqlDatabase): SqlExecutor;
36
+ /**
37
+ * Runs work inside a caller-owned Drizzle transaction and provides the
38
+ * transaction plus a Trellis SQL executor bound to that transaction.
39
+ */
40
+ export declare function runDrizzleSqlTransaction<TDb extends DrizzleSqlDatabase, TTx extends DrizzleSqlDatabase, TResult>(options: DrizzleSqlOutboxOptions<TDb, TTx>, work: (context: {
41
+ tx: TTx;
42
+ executor: SqlExecutor;
43
+ }) => Promise<TResult> | TResult): Promise<TResult>;
44
+ /**
45
+ * Converts a Trellis SQL statement with positional placeholders into a Drizzle
46
+ * `SQL` object with parameters bound in order.
47
+ *
48
+ * Supports SQLite-style `?` placeholders and PostgreSQL-style `$1`, `$2`, ...
49
+ * placeholders. A single statement must not mix both styles.
50
+ */
51
+ export declare function bindDrizzleSqlStatement(statement: string, params: readonly unknown[]): SQL;
52
+ //# sourceMappingURL=drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../src/service/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,GAAG,EAAO,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,8CAA8C;IAC9C,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5C,sDAAsD;IACtD,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,2BAA2B,CACrC,GAAG,SAAS,kBAAkB,EAC9B,GAAG,SAAS,kBAAkB,IAC5B,CACF,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,KACzC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,iEAAiE;AACjE,MAAM,MAAM,uBAAuB,CACjC,GAAG,SAAS,kBAAkB,EAC9B,GAAG,SAAS,kBAAkB,IAC5B;IACF,iFAAiF;IACjF,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,CAAC,WAAW,EAAE,2BAA2B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC7D,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,GAC3B,WAAW,CASb;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,SAAS,kBAAkB,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,OAAO,EAEP,OAAO,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,EAC1C,IAAI,EAAE,CACJ,OAAO,EAAE;IAAE,EAAE,EAAE,GAAG,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,KACxC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,GAC9B,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,GAAG,CAyCL"}
@@ -0,0 +1,108 @@
1
+ import "../_dnt.polyfills.js";
2
+ import { sql } from "drizzle-orm";
3
+ /**
4
+ * Adapts a caller-owned Drizzle database or transaction to Trellis'
5
+ * generic `SqlExecutor` interface.
6
+ *
7
+ * This helper is cheap: it creates a small closure object only. It does not open
8
+ * connections, prepare statements, or inspect schema. Service authors can use it
9
+ * when adapting Drizzle databases or transactions to the generic
10
+ * `withSqlOutbox(...)` SQL executor options.
11
+ */
12
+ export function createDrizzleSqlExecutor(database) {
13
+ return {
14
+ query(statement, params) {
15
+ return database.all(bindDrizzleSqlStatement(statement, params));
16
+ },
17
+ async execute(statement, params) {
18
+ await database.run(bindDrizzleSqlStatement(statement, params));
19
+ },
20
+ };
21
+ }
22
+ /**
23
+ * Runs work inside a caller-owned Drizzle transaction and provides the
24
+ * transaction plus a Trellis SQL executor bound to that transaction.
25
+ */
26
+ export async function runDrizzleSqlTransaction(options, work) {
27
+ let result;
28
+ await options.transaction(options.db, async (tx) => {
29
+ const value = await work({
30
+ tx,
31
+ executor: createDrizzleSqlExecutor(tx),
32
+ });
33
+ result = { value };
34
+ return value;
35
+ });
36
+ if (result === undefined) {
37
+ throw new Error("Drizzle SQL transaction runner did not invoke work");
38
+ }
39
+ return result.value;
40
+ }
41
+ /**
42
+ * Converts a Trellis SQL statement with positional placeholders into a Drizzle
43
+ * `SQL` object with parameters bound in order.
44
+ *
45
+ * Supports SQLite-style `?` placeholders and PostgreSQL-style `$1`, `$2`, ...
46
+ * placeholders. A single statement must not mix both styles.
47
+ */
48
+ export function bindDrizzleSqlStatement(statement, params) {
49
+ const matches = [...statement.matchAll(/\?|\$(\d+)/g)];
50
+ const hasQuestionPlaceholders = matches.some((match) => match[0] === "?");
51
+ const hasNumberedPlaceholders = matches.some((match) => match[1] !== undefined);
52
+ if (hasQuestionPlaceholders && hasNumberedPlaceholders) {
53
+ throw new Error("SQL statement cannot mix ? and $n placeholders for Drizzle binding");
54
+ }
55
+ if (hasQuestionPlaceholders) {
56
+ validateQuestionPlaceholders(matches.length, params.length);
57
+ }
58
+ else if (hasNumberedPlaceholders) {
59
+ validateNumberedPlaceholders(matches, params.length);
60
+ }
61
+ else if (params.length !== 0) {
62
+ throw new Error(`SQL statement has no placeholders but received ${params.length} parameters`);
63
+ }
64
+ const chunks = [];
65
+ let cursor = 0;
66
+ let nextQuestionParam = 0;
67
+ for (const match of matches) {
68
+ const matchIndex = match.index;
69
+ chunks.push(sql.raw(statement.slice(cursor, matchIndex)));
70
+ if (match[0] === "?") {
71
+ chunks.push(sql `${params[nextQuestionParam]}`);
72
+ nextQuestionParam += 1;
73
+ }
74
+ else {
75
+ const index = Number(match[1]) - 1;
76
+ chunks.push(sql `${params[index]}`);
77
+ }
78
+ cursor = matchIndex + match[0].length;
79
+ }
80
+ chunks.push(sql.raw(statement.slice(cursor)));
81
+ return sql.join(chunks);
82
+ }
83
+ function validateQuestionPlaceholders(placeholders, paramCount) {
84
+ if (placeholders !== paramCount) {
85
+ throw new Error(`SQL statement expected ${placeholders} parameters for ? placeholders, received ${paramCount}`);
86
+ }
87
+ }
88
+ function validateNumberedPlaceholders(matches, paramCount) {
89
+ const referenced = new Set();
90
+ for (const match of matches) {
91
+ if (match[1] === undefined)
92
+ continue;
93
+ const index = Number(match[1]);
94
+ if (index < 1) {
95
+ throw new Error("PostgreSQL SQL placeholder indexes must start at $1");
96
+ }
97
+ referenced.add(index);
98
+ }
99
+ const maxIndex = Math.max(...referenced);
100
+ if (maxIndex !== paramCount) {
101
+ throw new Error(`SQL statement expected ${maxIndex} parameters for $n placeholders, received ${paramCount}`);
102
+ }
103
+ for (let index = 1; index <= maxIndex; index += 1) {
104
+ if (!referenced.has(index)) {
105
+ throw new Error(`SQL statement is missing PostgreSQL placeholder $${index}`);
106
+ }
107
+ }
108
+ }
@@ -9,8 +9,8 @@
9
9
  import "../_dnt.polyfills.js";
10
10
  export { createHealthHeartbeat, type HealthCheckFn, type HealthCheckResult, type HealthHeartbeat, type HealthResponse, runAllHealthChecks, runAllServiceHealthChecks, runHealthCheck, runServiceHealthCheck, ServiceHealth, type ServiceHealthCheck, type ServiceHealthCheckFn, type ServiceHealthInfo, type ServiceHealthInfoFn, } from "../server/health.js";
11
11
  export { mountStandardHealthRpc } from "../server/health_rpc.js";
12
- export { HealthCheckResultSchema, HealthHeartbeatHeaderSchema, HealthHeartbeatSchema, HealthHeartbeatServiceSchema, HealthInfoSchema, HealthResponseSchema, HealthRpcSchema, } from "../server/health_schemas.js";
13
- export { type BoundTrellisService, type FeedHandler, type HealthCheckHandler, type HealthInfoHandler, type JobArgs, type JobHandler, type JobQueue, type JobResult, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, StoreHandle, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, } from "../server/service.js";
14
- export { createPostgresOutboxSchema, createSqliteOutboxSchema, createSqlOutboxAdapter, defaultSqlOutboxTables, dispatchOutbox, type InboxRepository, type KvOutboxRecord, KvOutboxRecordSchema, MemoryInboxRepository, MemoryOutboxRepository, NatsKvInboxRepository, NatsKvOutboxRepository, OutboxDispatcher, type OutboxDispatcherOptions, type OutboxDispatchResult, type OutboxKvEntry, type OutboxKvStore, type OutboxMessage, type OutboxMessageState, outboxMessageToPrepared, type OutboxRepository, type SqlDialect, type SqlExecutor, SqlInboxRepository, type SqlOutboxAdapter, SqlOutboxRepository, type SqlOutboxTables, type SqlRow, } from "./outbox_inbox.js";
12
+ export { HealthCheckResultSchema, HealthHeartbeatSchema, HealthHeartbeatServiceSchema, HealthInfoSchema, HealthResponseSchema, HealthRpcSchema, } from "../server/health_schemas.js";
13
+ export { type HealthCheckHandler, type HealthInfoHandler, type JobQueue, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, type SqlOutbox, type SqlOutboxEventEnqueueFacade, type SqlOutboxJobEnqueueFacade, type SqlOutboxJobSubmission, type SqlOutboxTransactionContext, type SqlOutboxTransactionRunner, StoreHandle, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, type TrellisServiceSqlOutboxCommonOptions, type TrellisServiceSqlOutboxExecutorOptions, type TrellisServiceSqlOutboxOptions, } from "../server/service.js";
14
+ export { createPostgresOutboxSchema, createSqliteOutboxSchema, createSqlOutboxAdapter, defaultSqlOutboxTables, dispatchOutbox, getSqlOutboxMigrations, type InboxRepository, type KvOutboxRecord, KvOutboxRecordSchema, MemoryInboxRepository, MemoryOutboxRepository, NatsKvInboxRepository, NatsKvOutboxRepository, OutboxDispatcher, type OutboxDispatcherOptions, type OutboxDispatchResult, type OutboxDispatchRuntime, type OutboxKvEntry, type OutboxKvStore, type OutboxMessage, type OutboxMessageState, outboxMessageToPreparedEvent, type OutboxRecordKind, type OutboxRepository, type PreparedOutboxRecord, preparedTrellisEventToOutboxRecord, type SqlDialect, type SqlExecutor, SqlInboxRepository, type SqlOutboxAdapter, type SqlOutboxMigration, type SqlOutboxMigrationOptions, SqlOutboxRepository, type SqlOutboxTables, type SqlRow, } from "./outbox_inbox.js";
15
15
  export { createEventContext, type EventContext, type EventHandler, type GroupedSubscription, isGroupedSubscription, type MultiEventSubscription, type MultiSubscribeOpts, type OrderingGroup, type SingleSubscription, type SubscribeOpts, } from "../server/subscription.js";
16
16
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/service/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,WAAW,EACX,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,GACxC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,uBAAuB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,MAAM,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/service/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EACL,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,WAAW,EACX,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,oCAAoC,EACzC,KAAK,sCAAsC,EAC3C,KAAK,8BAA8B,GACpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,kCAAkC,EAClC,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,MAAM,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,2BAA2B,CAAC"}
@@ -9,7 +9,7 @@
9
9
  import "../_dnt.polyfills.js";
10
10
  export { createHealthHeartbeat, runAllHealthChecks, runAllServiceHealthChecks, runHealthCheck, runServiceHealthCheck, ServiceHealth, } from "../server/health.js";
11
11
  export { mountStandardHealthRpc } from "../server/health_rpc.js";
12
- export { HealthCheckResultSchema, HealthHeartbeatHeaderSchema, HealthHeartbeatSchema, HealthHeartbeatServiceSchema, HealthInfoSchema, HealthResponseSchema, HealthRpcSchema, } from "../server/health_schemas.js";
12
+ export { HealthCheckResultSchema, HealthHeartbeatSchema, HealthHeartbeatServiceSchema, HealthInfoSchema, HealthResponseSchema, HealthRpcSchema, } from "../server/health_schemas.js";
13
13
  export { StoreHandle, TrellisService, } from "../server/service.js";
14
- export { createPostgresOutboxSchema, createSqliteOutboxSchema, createSqlOutboxAdapter, defaultSqlOutboxTables, dispatchOutbox, KvOutboxRecordSchema, MemoryInboxRepository, MemoryOutboxRepository, NatsKvInboxRepository, NatsKvOutboxRepository, OutboxDispatcher, outboxMessageToPrepared, SqlInboxRepository, SqlOutboxRepository, } from "./outbox_inbox.js";
14
+ export { createPostgresOutboxSchema, createSqliteOutboxSchema, createSqlOutboxAdapter, defaultSqlOutboxTables, dispatchOutbox, getSqlOutboxMigrations, KvOutboxRecordSchema, MemoryInboxRepository, MemoryOutboxRepository, NatsKvInboxRepository, NatsKvOutboxRepository, OutboxDispatcher, outboxMessageToPreparedEvent, preparedTrellisEventToOutboxRecord, SqlInboxRepository, SqlOutboxRepository, } from "./outbox_inbox.js";
15
15
  export { createEventContext, isGroupedSubscription, } from "../server/subscription.js";
@@ -1,3 +1,3 @@
1
1
  import "../_dnt.polyfills.js";
2
- export { type BoundTrellisService, type FeedHandler, type HealthCheckHandler, type HealthInfoHandler, type JobArgs, type JobHandler, type JobQueue, type JobResult, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, } from "../server/service.js";
2
+ export { type HealthCheckHandler, type HealthInfoHandler, type JobQueue, type JobsFacadeOf, type OperationHandler, type OperationRegistration, type RpcHandler, type ServiceContract, type ServiceEventHandler, type Trellis, TrellisService, type TrellisServiceConnectOpts, type TrellisServiceConnectTelemetryOpts, } from "../server/service.js";
3
3
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/service/node.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,GACxC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/service/node.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,GACxC,MAAM,sBAAsB,CAAC"}
@@ -1,11 +1,21 @@
1
- import { type AsyncResult, type BaseError } from "@qlever-llc/result";
1
+ import { type AsyncResult, type BaseError, UnexpectedError } from "@qlever-llc/result";
2
2
  import { type StaticDecode, Type } from "typebox";
3
- import type { PreparedTrellisEvent, Trellis } from "../trellis.js";
3
+ import type { PreparedTrellisEvent } from "../trellis.js";
4
4
  import { TypedKV } from "../kv.js";
5
5
  export type OutboxMessageState = "pending" | "dispatched" | "failed";
6
+ export type OutboxRecordKind = "event.publish" | "job.create" | "job.submit";
7
+ export type PreparedOutboxRecord = {
8
+ readonly id: string;
9
+ readonly kind: OutboxRecordKind;
10
+ readonly name: string;
11
+ readonly subject: string;
12
+ readonly payload: string;
13
+ readonly headers: Readonly<Record<string, string>>;
14
+ };
6
15
  export type OutboxMessage = {
7
16
  id: string;
8
- event: string;
17
+ kind: OutboxRecordKind;
18
+ name: string;
9
19
  subject: string;
10
20
  payload: string;
11
21
  headers: Record<string, string>;
@@ -15,6 +25,7 @@ export type OutboxMessage = {
15
25
  updatedAt: string;
16
26
  nextAttemptAt?: string;
17
27
  lastError?: string;
28
+ outcome?: unknown;
18
29
  };
19
30
  export type OutboxDispatchResult = {
20
31
  dispatched: number;
@@ -33,10 +44,16 @@ export type OutboxDispatcherOptions = {
33
44
  /** Receives repository or publish errors raised by background dispatch. */
34
45
  onError?: (error: unknown) => void;
35
46
  };
47
+ export type OutboxDispatchRuntime = {
48
+ /** Dispatches an event-publish outbox record. Returns Void on success, err on transient failure. */
49
+ publishPreparedEvent(event: PreparedTrellisEvent): AsyncResult<void, UnexpectedError>;
50
+ /** Dispatches a job create/submit outbox record. Stub until Phase 3. */
51
+ dispatchJobSubmission?(message: OutboxMessage): AsyncResult<void, BaseError>;
52
+ };
36
53
  export type OutboxRepository = {
37
- enqueue(event: PreparedTrellisEvent): Promise<OutboxMessage>;
54
+ enqueue(record: PreparedOutboxRecord): Promise<OutboxMessage>;
38
55
  claimDue(limit: number, now: Date): Promise<OutboxMessage[]>;
39
- markDispatched(id: string, now: Date): Promise<void>;
56
+ markDispatched(id: string, now: Date, outcome?: unknown): Promise<void>;
40
57
  markFailed(id: string, failure: {
41
58
  error: string;
42
59
  nextAttemptAt: Date;
@@ -46,21 +63,48 @@ export type OutboxRepository = {
46
63
  export type InboxRepository = {
47
64
  record(messageId: string, now?: Date): Promise<boolean>;
48
65
  };
66
+ /** SQL dialects supported by Trellis SQL outbox helpers. */
49
67
  export type SqlDialect = "sqlite" | "postgres";
68
+ /** Table names used by Trellis SQL outbox and inbox helper tables. */
50
69
  export type SqlOutboxTables = {
51
70
  outbox: string;
52
71
  inbox: string;
53
72
  };
73
+ /** Minimal SQL execution surface used by Trellis SQL outbox repositories. */
54
74
  export type SqlExecutor = {
55
75
  query(sql: string, params: readonly unknown[]): Promise<readonly SqlRow[]>;
56
76
  execute(sql: string, params: readonly unknown[]): Promise<void>;
57
77
  };
78
+ /** Row shape returned by a {@link SqlExecutor}. */
58
79
  export type SqlRow = Record<string, unknown>;
80
+ /** SQL outbox adapter bundle over caller-owned SQL execution. */
59
81
  export type SqlOutboxAdapter = {
60
82
  outbox: SqlOutboxRepository;
61
83
  inbox: SqlInboxRepository;
62
84
  ddl: readonly string[];
63
85
  };
86
+ /** Versioned Trellis-owned SQL outbox/inbox migration artifact. */
87
+ export type SqlOutboxMigration = {
88
+ /** Stable migration identifier for the dialect and schema version. */
89
+ readonly id: string;
90
+ /** Monotonic Trellis helper-table schema version. */
91
+ readonly version: number;
92
+ /** SQL dialect targeted by this migration artifact. */
93
+ readonly dialect: SqlDialect;
94
+ /** SQL statements that apply this migration. */
95
+ readonly up: readonly string[];
96
+ /** SQL statements that revert this migration when supported by the runner. */
97
+ readonly down?: readonly string[];
98
+ /** Deterministic checksum over the canonical migration SQL. */
99
+ readonly checksum: string;
100
+ };
101
+ /** Options for generating Trellis SQL outbox/inbox migration artifacts. */
102
+ export type SqlOutboxMigrationOptions = {
103
+ /** SQL dialect targeted by the generated migration artifacts. */
104
+ readonly dialect: SqlDialect;
105
+ /** Optional helper-table names; omitted names use Trellis defaults. */
106
+ readonly tables?: Partial<SqlOutboxTables>;
107
+ };
64
108
  type KvAsyncResult<T> = Pick<AsyncResult<T, BaseError>, "take">;
65
109
  export type OutboxKvEntry = {
66
110
  readonly key: string;
@@ -73,16 +117,22 @@ export type OutboxKvStore = {
73
117
  get(key: string): KvAsyncResult<OutboxKvEntry>;
74
118
  keys(filter?: string | string[]): KvAsyncResult<AsyncIterable<string>>;
75
119
  };
120
+ /** Default Trellis helper-table names for SQL outbox and inbox storage. */
76
121
  export declare const defaultSqlOutboxTables: SqlOutboxTables;
77
122
  /**
78
- * Creates SQL outbox/inbox repositories plus DDL for caller-owned migrations.
123
+ * Creates SQL outbox/inbox repositories plus current helper-table DDL.
79
124
  *
80
- * Trellis does not import Drizzle here to avoid making every service depend on a
81
- * specific migration library. Services should include the returned DDL, or an
82
- * equivalent Drizzle table definition using these table and column names, in
83
- * their own Drizzle-managed migration flow.
125
+ * Use {@link getSqlOutboxMigrations} when services need versioned Trellis-owned
126
+ * migration artifacts for their normal database migration tooling.
84
127
  */
85
128
  export declare function createSqlOutboxAdapter(executor: SqlExecutor, dialect: SqlDialect, tables?: SqlOutboxTables): SqlOutboxAdapter;
129
+ /**
130
+ * Returns Trellis-owned SQL outbox/inbox migration artifacts for a dialect.
131
+ *
132
+ * Trellis generates the helper-table SQL, but services remain responsible for
133
+ * running these artifacts through their normal database migration tooling.
134
+ */
135
+ export declare function getSqlOutboxMigrations(options: SqlOutboxMigrationOptions): readonly SqlOutboxMigration[];
86
136
  /** Returns SQLite DDL for Trellis outbox and inbox tables. */
87
137
  export declare function createSqliteOutboxSchema(tables?: SqlOutboxTables): readonly string[];
88
138
  /** Returns Postgres DDL for Trellis outbox and inbox tables. */
@@ -90,9 +140,9 @@ export declare function createPostgresOutboxSchema(tables?: SqlOutboxTables): re
90
140
  /** In-memory outbox repository intended for tests and local process adapters. */
91
141
  export declare class MemoryOutboxRepository implements OutboxRepository {
92
142
  #private;
93
- enqueue(event: PreparedTrellisEvent): Promise<OutboxMessage>;
143
+ enqueue(record: PreparedOutboxRecord): Promise<OutboxMessage>;
94
144
  claimDue(limit: number, now: Date): Promise<OutboxMessage[]>;
95
- markDispatched(id: string, now: Date): Promise<void>;
145
+ markDispatched(id: string, now: Date, outcome?: unknown): Promise<void>;
96
146
  markFailed(id: string, failure: {
97
147
  error: string;
98
148
  nextAttemptAt: Date;
@@ -111,9 +161,9 @@ export declare class SqlOutboxRepository implements OutboxRepository {
111
161
  readonly dialect: SqlDialect;
112
162
  readonly tables: SqlOutboxTables;
113
163
  constructor(executor: SqlExecutor, dialect: SqlDialect, tables?: SqlOutboxTables);
114
- enqueue(event: PreparedTrellisEvent): Promise<OutboxMessage>;
164
+ enqueue(record: PreparedOutboxRecord): Promise<OutboxMessage>;
115
165
  claimDue(limit: number, now: Date): Promise<OutboxMessage[]>;
116
- markDispatched(id: string, now: Date): Promise<void>;
166
+ markDispatched(id: string, now: Date, outcome?: unknown): Promise<void>;
117
167
  markFailed(id: string, failure: {
118
168
  error: string;
119
169
  nextAttemptAt: Date;
@@ -134,7 +184,8 @@ declare const KvInboxRecordSchema: Type.TObject<{
134
184
  }>;
135
185
  export declare const KvOutboxRecordSchema: Type.TObject<{
136
186
  id: Type.TString;
137
- event: Type.TString;
187
+ kind: Type.TString;
188
+ name: Type.TString;
138
189
  subject: Type.TString;
139
190
  payload: Type.TString;
140
191
  headers: Type.TRecord<"^.*$", Type.TString>;
@@ -144,15 +195,16 @@ export declare const KvOutboxRecordSchema: Type.TObject<{
144
195
  updatedAt: Type.TString;
145
196
  nextAttemptAt: Type.TOptional<Type.TString>;
146
197
  lastError: Type.TOptional<Type.TString>;
198
+ outcome: Type.TOptional<Type.TString>;
147
199
  }>;
148
200
  export type KvOutboxRecord = StaticDecode<typeof KvOutboxRecordSchema>;
149
201
  /** Durable NATS KV outbox repository for services without SQL state. */
150
202
  export declare class NatsKvOutboxRepository implements OutboxRepository {
151
203
  readonly kv: OutboxKvStore;
152
204
  constructor(kv: OutboxKvStore);
153
- enqueue(event: PreparedTrellisEvent): Promise<OutboxMessage>;
205
+ enqueue(rec: PreparedOutboxRecord): Promise<OutboxMessage>;
154
206
  claimDue(limit: number, now: Date): Promise<OutboxMessage[]>;
155
- markDispatched(id: string, now: Date): Promise<void>;
207
+ markDispatched(id: string, now: Date, outcome?: unknown): Promise<void>;
156
208
  markFailed(id: string, failure: {
157
209
  error: string;
158
210
  nextAttemptAt: Date;
@@ -175,19 +227,21 @@ export declare class NatsKvInboxRepository implements InboxRepository {
175
227
  export declare class OutboxDispatcher {
176
228
  #private;
177
229
  /** Creates a dispatcher over an existing outbox repository and runtime. */
178
- constructor(repository: OutboxRepository, runtime: Pick<Trellis, "publishPrepared">, options?: OutboxDispatcherOptions);
230
+ constructor(repository: OutboxRepository, runtime: OutboxDispatchRuntime, options?: OutboxDispatcherOptions);
179
231
  /** Signals that outbox work may be available and schedules a drain soon. */
180
232
  notify(): void;
181
233
  /** Cancels pending wakeups and prevents future dispatch work. */
182
234
  stop(): void;
183
235
  }
184
- /** Dispatches due outbox messages through a Trellis runtime publisher. */
185
- export declare function dispatchOutbox(repository: OutboxRepository, runtime: Pick<Trellis, "publishPrepared">, options?: {
236
+ /** Dispatches due outbox messages through a dispatch runtime. */
237
+ export declare function dispatchOutbox(repository: OutboxRepository, runtime: OutboxDispatchRuntime, options?: {
186
238
  limit?: number;
187
239
  now?: Date;
188
240
  retryDelayMs?: number;
189
241
  }): Promise<OutboxDispatchResult>;
190
- /** Rehydrates a persisted outbox row into a prepared event. */
191
- export declare function outboxMessageToPrepared(message: OutboxMessage): PreparedTrellisEvent;
242
+ /** Rehydrates a persisted outbox event row into a prepared event. */
243
+ export declare function outboxMessageToPreparedEvent(message: OutboxMessage): PreparedTrellisEvent;
244
+ /** Adapts a prepared Trellis event into a generic outbox record. */
245
+ export declare function preparedTrellisEventToOutboxRecord(event: PreparedTrellisEvent): PreparedOutboxRecord;
192
246
  export {};
193
247
  //# sourceMappingURL=outbox_inbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outbox_inbox.d.ts","sourceRoot":"","sources":["../../src/service/outbox_inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox_inbox.d.ts","sourceRoot":"","sources":["../../src/service/outbox_inbox.ts"],"names":[],"mappings":"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"}