@qlever-llc/trellis 0.10.17 → 0.19.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 (283) 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 +416 -398
  5. package/esm/auth/protocol.d.ts.map +1 -1
  6. package/esm/auth/protocol.js +35 -33
  7. package/esm/codec.d.ts +1 -0
  8. package/esm/codec.d.ts.map +1 -1
  9. package/esm/codec.js +1 -0
  10. package/esm/contract_support/canonical.d.ts +3 -0
  11. package/esm/contract_support/canonical.d.ts.map +1 -1
  12. package/esm/contract_support/canonical.js +3 -0
  13. package/esm/contract_support/mod.d.ts +28 -4
  14. package/esm/contract_support/mod.d.ts.map +1 -1
  15. package/esm/contract_support/mod.js +85 -4
  16. package/esm/contract_support/protocol.d.ts +92 -7
  17. package/esm/contract_support/protocol.d.ts.map +1 -1
  18. package/esm/contract_support/protocol.js +40 -6
  19. package/esm/errors/index.d.ts +9 -9
  20. package/esm/generated-sdk/auth/api.d.ts +4 -1
  21. package/esm/generated-sdk/auth/api.d.ts.map +1 -1
  22. package/esm/generated-sdk/auth/api.js +6 -1
  23. package/esm/generated-sdk/auth/client.d.ts +47 -32
  24. package/esm/generated-sdk/auth/client.d.ts.map +1 -1
  25. package/esm/generated-sdk/auth/contract.d.ts +1 -1
  26. package/esm/generated-sdk/auth/contract.d.ts.map +1 -1
  27. package/esm/generated-sdk/auth/contract.js +1570 -1202
  28. package/esm/generated-sdk/auth/schemas.d.ts +1757 -1759
  29. package/esm/generated-sdk/auth/schemas.d.ts.map +1 -1
  30. package/esm/generated-sdk/auth/schemas.js +963 -768
  31. package/esm/generated-sdk/auth/types.d.ts +292 -302
  32. package/esm/generated-sdk/auth/types.d.ts.map +1 -1
  33. package/esm/generated-sdk/auth/types.js +1 -1
  34. package/esm/generated-sdk/health/client.d.ts +4 -4
  35. package/esm/generated-sdk/health/client.d.ts.map +1 -1
  36. package/esm/generated-sdk/health/contract.d.ts +1 -1
  37. package/esm/generated-sdk/health/contract.d.ts.map +1 -1
  38. package/esm/generated-sdk/health/contract.js +2 -10
  39. package/esm/generated-sdk/health/schemas.d.ts +1 -14
  40. package/esm/generated-sdk/health/schemas.d.ts.map +1 -1
  41. package/esm/generated-sdk/health/schemas.js +1 -9
  42. package/esm/generated-sdk/health/types.d.ts +3 -5
  43. package/esm/generated-sdk/health/types.d.ts.map +1 -1
  44. package/esm/generated-sdk/health/types.js +1 -2
  45. package/esm/generated-sdk/jobs/api.d.ts +13 -0
  46. package/esm/generated-sdk/jobs/api.d.ts.map +1 -1
  47. package/esm/generated-sdk/jobs/client.d.ts +6 -4
  48. package/esm/generated-sdk/jobs/client.d.ts.map +1 -1
  49. package/esm/generated-sdk/jobs/contract.d.ts +14 -1
  50. package/esm/generated-sdk/jobs/contract.d.ts.map +1 -1
  51. package/esm/generated-sdk/jobs/contract.js +268 -1
  52. package/esm/generated-sdk/jobs/owned_api.d.ts +13 -0
  53. package/esm/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  54. package/esm/generated-sdk/jobs/owned_api.js +20 -1
  55. package/esm/generated-sdk/jobs/schemas.d.ts +437 -0
  56. package/esm/generated-sdk/jobs/schemas.d.ts.map +1 -1
  57. package/esm/generated-sdk/jobs/schemas.js +211 -0
  58. package/esm/generated-sdk/jobs/types.d.ts +123 -1
  59. package/esm/generated-sdk/jobs/types.d.ts.map +1 -1
  60. package/esm/generated-sdk/jobs/types.js +1 -1
  61. package/esm/generated-sdk/state/client.d.ts +4 -4
  62. package/esm/generated-sdk/state/client.d.ts.map +1 -1
  63. package/esm/generated-sdk/trellis-core/api.d.ts +4 -1
  64. package/esm/generated-sdk/trellis-core/api.d.ts.map +1 -1
  65. package/esm/generated-sdk/trellis-core/api.js +6 -1
  66. package/esm/generated-sdk/trellis-core/client.d.ts +28 -3
  67. package/esm/generated-sdk/trellis-core/client.d.ts.map +1 -1
  68. package/esm/generated-sdk/trellis-core/contract.d.ts +1 -1
  69. package/esm/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  70. package/esm/generated-sdk/trellis-core/contract.js +91 -1
  71. package/esm/generated-sdk/trellis-core/schemas.d.ts +113 -0
  72. package/esm/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  73. package/esm/generated-sdk/trellis-core/schemas.js +81 -0
  74. package/esm/generated-sdk/trellis-core/types.d.ts +23 -1
  75. package/esm/generated-sdk/trellis-core/types.d.ts.map +1 -1
  76. package/esm/generated-sdk/trellis-core/types.js +1 -1
  77. package/esm/health.d.ts +1 -1
  78. package/esm/health.d.ts.map +1 -1
  79. package/esm/health.js +1 -1
  80. package/esm/index.d.ts +2 -2
  81. package/esm/index.d.ts.map +1 -1
  82. package/esm/index.js +1 -1
  83. package/esm/jobs.d.ts +69 -3
  84. package/esm/jobs.d.ts.map +1 -1
  85. package/esm/jobs.js +92 -3
  86. package/esm/server/health.d.ts +2 -6
  87. package/esm/server/health.d.ts.map +1 -1
  88. package/esm/server/health_schemas.d.ts +0 -8
  89. package/esm/server/health_schemas.d.ts.map +1 -1
  90. package/esm/server/health_schemas.js +0 -5
  91. package/esm/server/internal_jobs/bindings.d.ts +11 -0
  92. package/esm/server/internal_jobs/bindings.d.ts.map +1 -1
  93. package/esm/server/internal_jobs/job-manager.d.ts +44 -1
  94. package/esm/server/internal_jobs/job-manager.d.ts.map +1 -1
  95. package/esm/server/internal_jobs/job-manager.js +361 -51
  96. package/esm/server/internal_jobs/key-coordinator.d.ts +260 -0
  97. package/esm/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  98. package/esm/server/internal_jobs/key-coordinator.js +580 -0
  99. package/esm/server/internal_jobs/projection.d.ts.map +1 -1
  100. package/esm/server/internal_jobs/projection.js +2 -0
  101. package/esm/server/internal_jobs/runtime-worker.d.ts +5 -1
  102. package/esm/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  103. package/esm/server/internal_jobs/runtime-worker.js +14 -2
  104. package/esm/server/internal_jobs/types.d.ts +5 -5
  105. package/esm/server/internal_jobs/types.d.ts.map +1 -1
  106. package/esm/server/internal_jobs/types.js +6 -0
  107. package/esm/server/service.d.ts +8 -3
  108. package/esm/server/service.d.ts.map +1 -1
  109. package/esm/server/service.js +127 -6
  110. package/esm/service/drizzle.d.ts +27 -0
  111. package/esm/service/drizzle.d.ts.map +1 -0
  112. package/esm/service/drizzle.js +84 -0
  113. package/esm/service/mod.d.ts +1 -1
  114. package/esm/service/mod.d.ts.map +1 -1
  115. package/esm/service/mod.js +1 -1
  116. package/esm/service/outbox_inbox.d.ts.map +1 -1
  117. package/esm/service/outbox_inbox.js +13 -2
  118. package/esm/trellis.d.ts +24 -8
  119. package/esm/trellis.d.ts.map +1 -1
  120. package/esm/trellis.js +44 -22
  121. package/package.json +14 -2
  122. package/script/auth/mod.d.ts +1 -1
  123. package/script/auth/mod.d.ts.map +1 -1
  124. package/script/auth/mod.js +22 -6
  125. package/script/auth/protocol.d.ts +416 -398
  126. package/script/auth/protocol.d.ts.map +1 -1
  127. package/script/auth/protocol.js +40 -37
  128. package/script/codec.d.ts +1 -0
  129. package/script/codec.d.ts.map +1 -1
  130. package/script/codec.js +1 -0
  131. package/script/contract_support/canonical.d.ts +3 -0
  132. package/script/contract_support/canonical.d.ts.map +1 -1
  133. package/script/contract_support/canonical.js +3 -0
  134. package/script/contract_support/mod.d.ts +28 -4
  135. package/script/contract_support/mod.d.ts.map +1 -1
  136. package/script/contract_support/mod.js +90 -4
  137. package/script/contract_support/protocol.d.ts +92 -7
  138. package/script/contract_support/protocol.d.ts.map +1 -1
  139. package/script/contract_support/protocol.js +41 -7
  140. package/script/errors/index.d.ts +9 -9
  141. package/script/generated-sdk/auth/api.d.ts +4 -1
  142. package/script/generated-sdk/auth/api.d.ts.map +1 -1
  143. package/script/generated-sdk/auth/api.js +6 -1
  144. package/script/generated-sdk/auth/client.d.ts +47 -32
  145. package/script/generated-sdk/auth/client.d.ts.map +1 -1
  146. package/script/generated-sdk/auth/contract.d.ts +1 -1
  147. package/script/generated-sdk/auth/contract.d.ts.map +1 -1
  148. package/script/generated-sdk/auth/contract.js +1570 -1202
  149. package/script/generated-sdk/auth/schemas.d.ts +1757 -1759
  150. package/script/generated-sdk/auth/schemas.d.ts.map +1 -1
  151. package/script/generated-sdk/auth/schemas.js +963 -768
  152. package/script/generated-sdk/auth/types.d.ts +292 -302
  153. package/script/generated-sdk/auth/types.d.ts.map +1 -1
  154. package/script/generated-sdk/auth/types.js +1 -1
  155. package/script/generated-sdk/health/client.d.ts +4 -4
  156. package/script/generated-sdk/health/client.d.ts.map +1 -1
  157. package/script/generated-sdk/health/contract.d.ts +1 -1
  158. package/script/generated-sdk/health/contract.d.ts.map +1 -1
  159. package/script/generated-sdk/health/contract.js +2 -10
  160. package/script/generated-sdk/health/schemas.d.ts +1 -14
  161. package/script/generated-sdk/health/schemas.d.ts.map +1 -1
  162. package/script/generated-sdk/health/schemas.js +1 -9
  163. package/script/generated-sdk/health/types.d.ts +3 -5
  164. package/script/generated-sdk/health/types.d.ts.map +1 -1
  165. package/script/generated-sdk/health/types.js +1 -2
  166. package/script/generated-sdk/jobs/api.d.ts +13 -0
  167. package/script/generated-sdk/jobs/api.d.ts.map +1 -1
  168. package/script/generated-sdk/jobs/client.d.ts +6 -4
  169. package/script/generated-sdk/jobs/client.d.ts.map +1 -1
  170. package/script/generated-sdk/jobs/contract.d.ts +14 -1
  171. package/script/generated-sdk/jobs/contract.d.ts.map +1 -1
  172. package/script/generated-sdk/jobs/contract.js +268 -1
  173. package/script/generated-sdk/jobs/owned_api.d.ts +13 -0
  174. package/script/generated-sdk/jobs/owned_api.d.ts.map +1 -1
  175. package/script/generated-sdk/jobs/owned_api.js +19 -0
  176. package/script/generated-sdk/jobs/schemas.d.ts +437 -0
  177. package/script/generated-sdk/jobs/schemas.d.ts.map +1 -1
  178. package/script/generated-sdk/jobs/schemas.js +212 -1
  179. package/script/generated-sdk/jobs/types.d.ts +123 -1
  180. package/script/generated-sdk/jobs/types.d.ts.map +1 -1
  181. package/script/generated-sdk/jobs/types.js +1 -1
  182. package/script/generated-sdk/state/client.d.ts +4 -4
  183. package/script/generated-sdk/state/client.d.ts.map +1 -1
  184. package/script/generated-sdk/trellis-core/api.d.ts +4 -1
  185. package/script/generated-sdk/trellis-core/api.d.ts.map +1 -1
  186. package/script/generated-sdk/trellis-core/api.js +6 -1
  187. package/script/generated-sdk/trellis-core/client.d.ts +28 -3
  188. package/script/generated-sdk/trellis-core/client.d.ts.map +1 -1
  189. package/script/generated-sdk/trellis-core/contract.d.ts +1 -1
  190. package/script/generated-sdk/trellis-core/contract.d.ts.map +1 -1
  191. package/script/generated-sdk/trellis-core/contract.js +91 -1
  192. package/script/generated-sdk/trellis-core/schemas.d.ts +113 -0
  193. package/script/generated-sdk/trellis-core/schemas.d.ts.map +1 -1
  194. package/script/generated-sdk/trellis-core/schemas.js +81 -0
  195. package/script/generated-sdk/trellis-core/types.d.ts +23 -1
  196. package/script/generated-sdk/trellis-core/types.d.ts.map +1 -1
  197. package/script/generated-sdk/trellis-core/types.js +1 -1
  198. package/script/health.d.ts +1 -1
  199. package/script/health.d.ts.map +1 -1
  200. package/script/health.js +1 -2
  201. package/script/index.d.ts +2 -2
  202. package/script/index.d.ts.map +1 -1
  203. package/script/index.js +2 -3
  204. package/script/jobs.d.ts +69 -3
  205. package/script/jobs.d.ts.map +1 -1
  206. package/script/jobs.js +93 -3
  207. package/script/server/health.d.ts +2 -6
  208. package/script/server/health.d.ts.map +1 -1
  209. package/script/server/health_schemas.d.ts +0 -8
  210. package/script/server/health_schemas.d.ts.map +1 -1
  211. package/script/server/health_schemas.js +1 -6
  212. package/script/server/internal_jobs/bindings.d.ts +11 -0
  213. package/script/server/internal_jobs/bindings.d.ts.map +1 -1
  214. package/script/server/internal_jobs/job-manager.d.ts +44 -1
  215. package/script/server/internal_jobs/job-manager.d.ts.map +1 -1
  216. package/script/server/internal_jobs/job-manager.js +361 -51
  217. package/script/server/internal_jobs/key-coordinator.d.ts +260 -0
  218. package/script/server/internal_jobs/key-coordinator.d.ts.map +1 -0
  219. package/script/server/internal_jobs/key-coordinator.js +593 -0
  220. package/script/server/internal_jobs/projection.d.ts.map +1 -1
  221. package/script/server/internal_jobs/projection.js +2 -0
  222. package/script/server/internal_jobs/runtime-worker.d.ts +5 -1
  223. package/script/server/internal_jobs/runtime-worker.d.ts.map +1 -1
  224. package/script/server/internal_jobs/runtime-worker.js +14 -2
  225. package/script/server/internal_jobs/types.d.ts +5 -5
  226. package/script/server/internal_jobs/types.d.ts.map +1 -1
  227. package/script/server/internal_jobs/types.js +6 -0
  228. package/script/server/service.d.ts +8 -3
  229. package/script/server/service.d.ts.map +1 -1
  230. package/script/server/service.js +126 -5
  231. package/script/service/drizzle.d.ts +27 -0
  232. package/script/service/drizzle.d.ts.map +1 -0
  233. package/script/service/drizzle.js +88 -0
  234. package/script/service/mod.d.ts +1 -1
  235. package/script/service/mod.d.ts.map +1 -1
  236. package/script/service/mod.js +1 -2
  237. package/script/service/outbox_inbox.d.ts.map +1 -1
  238. package/script/service/outbox_inbox.js +13 -2
  239. package/script/trellis.d.ts +24 -8
  240. package/script/trellis.d.ts.map +1 -1
  241. package/script/trellis.js +44 -22
  242. package/src/auth/mod.ts +28 -2
  243. package/src/auth/protocol.ts +72 -37
  244. package/src/codec.ts +1 -0
  245. package/src/contract_support/canonical.ts +3 -0
  246. package/src/contract_support/mod.ts +158 -5
  247. package/src/contract_support/protocol.ts +56 -9
  248. package/src/health.ts +0 -1
  249. package/src/index.ts +2 -1
  250. package/src/jobs.ts +138 -1
  251. package/src/sdk/_generated/auth/api.ts +9 -2
  252. package/src/sdk/_generated/auth/client.ts +85 -78
  253. package/src/sdk/_generated/auth/contract.ts +1803 -1435
  254. package/src/sdk/_generated/auth/schemas.ts +1166 -971
  255. package/src/sdk/_generated/auth/types.ts +330 -314
  256. package/src/sdk/_generated/core/api.ts +9 -2
  257. package/src/sdk/_generated/core/client.ts +41 -2
  258. package/src/sdk/_generated/core/contract.ts +91 -1
  259. package/src/sdk/_generated/core/schemas.ts +81 -0
  260. package/src/sdk/_generated/core/types.ts +23 -1
  261. package/src/sdk/_generated/health/client.ts +6 -6
  262. package/src/sdk/_generated/health/contract.ts +2 -10
  263. package/src/sdk/_generated/health/schemas.ts +1 -9
  264. package/src/sdk/_generated/health/types.ts +6 -2
  265. package/src/sdk/_generated/jobs/client.ts +17 -6
  266. package/src/sdk/_generated/jobs/contract.ts +269 -1
  267. package/src/sdk/_generated/jobs/owned_api.ts +21 -0
  268. package/src/sdk/_generated/jobs/schemas.ts +213 -0
  269. package/src/sdk/_generated/jobs/types.ts +116 -1
  270. package/src/sdk/_generated/state/client.ts +6 -6
  271. package/src/server/health.ts +2 -6
  272. package/src/server/health_schemas.ts +0 -6
  273. package/src/server/internal_jobs/bindings.ts +11 -0
  274. package/src/server/internal_jobs/job-manager.ts +436 -16
  275. package/src/server/internal_jobs/key-coordinator.ts +955 -0
  276. package/src/server/internal_jobs/projection.ts +2 -0
  277. package/src/server/internal_jobs/runtime-worker.ts +17 -1
  278. package/src/server/internal_jobs/types.ts +6 -0
  279. package/src/server/service.ts +168 -9
  280. package/src/service/drizzle.ts +125 -0
  281. package/src/service/mod.ts +0 -1
  282. package/src/service/outbox_inbox.ts +16 -6
  283. package/src/trellis.ts +76 -27
@@ -65,7 +65,7 @@ function toWorkerConsumer(consumer) {
65
65
  },
66
66
  };
67
67
  }
68
- async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cancellation, heartbeat, handler, validation, runtime) {
68
+ async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cancellation, heartbeat, handler, validation, runtime, instanceId) {
69
69
  const event = parseWorkPayloadEvent(payload);
70
70
  if (!event) {
71
71
  return undefined;
@@ -86,7 +86,9 @@ async function processWorkPayloadWithContextAndHeartbeat(manager, payload, cance
86
86
  }
87
87
  return await handler(activeJob);
88
88
  }, {
89
+ latestState: runtime?.latestState,
89
90
  redeliveryCount: runtime?.redeliveryCount,
91
+ instanceId,
90
92
  }, {
91
93
  validateResult: validation?.validateResult
92
94
  ? (result, resultJob) => validation.validateResult({
@@ -116,6 +118,7 @@ function ackActionForOutcome(outcome) {
116
118
  switch (outcome.outcome) {
117
119
  case "retry":
118
120
  case "interrupted":
121
+ case "deferred":
119
122
  return "nak";
120
123
  default:
121
124
  return "ack";
@@ -170,6 +173,7 @@ async function startQueueWorkerLoop(options) {
170
173
  continue;
171
174
  }
172
175
  if (lifecycleWorkDecision(latestLifecycle) === "skip-ack") {
176
+ await options.manager.cleanupQueuedKeyedJob(job);
173
177
  registry.clearPending(key);
174
178
  await msg.ack();
175
179
  continue;
@@ -183,6 +187,7 @@ async function startQueueWorkerLoop(options) {
183
187
  continue;
184
188
  }
185
189
  if (projectedWorkDecision(projected, job) === "skip-ack") {
190
+ await options.manager.cleanupQueuedKeyedJob(job);
186
191
  registry.clearPending(key);
187
192
  await msg.ack();
188
193
  continue;
@@ -203,11 +208,15 @@ async function startQueueWorkerLoop(options) {
203
208
  resultSchema: options.resultSchema,
204
209
  validateResult: options.validateResult,
205
210
  }, {
211
+ latestState: latestLifecycle?.state,
206
212
  redeliveryCount: msg.info?.redeliveryCount,
207
- });
213
+ }, options.instanceId);
208
214
  if (ackActionForOutcome(outcome) === "ack") {
209
215
  await msg.ack();
210
216
  }
217
+ else if (outcome?.outcome === "deferred") {
218
+ await msg.nak(options.deferralBackoffMs ?? 1_000);
219
+ }
211
220
  else {
212
221
  await msg.nak();
213
222
  }
@@ -280,6 +289,8 @@ async function startNatsQueueWorker(options) {
280
289
  resultSchema: queue.result,
281
290
  validateResult: options.validateResult,
282
291
  handler: options.handler,
292
+ instanceId: options.instanceId,
293
+ deferralBackoffMs: queue.backoffMs[0] ?? 1_000,
283
294
  });
284
295
  }
285
296
  async function startWorkerHostFromBinding(binding, options) {
@@ -369,6 +380,7 @@ async function startNatsWorkerHostFromBinding(binding, options) {
369
380
  validatePayload: options.validatePayload,
370
381
  validateResult: options.validateResult,
371
382
  handler: options.handler,
383
+ instanceId: options.instanceId,
372
384
  };
373
385
  return await (isCustomNatsRuntimeDeps(options)
374
386
  ? startNatsQueueWorker({
@@ -6,7 +6,7 @@ export declare const JobContextSchema: Type.TObject<{
6
6
  tracestate: Type.TOptional<Type.TString>;
7
7
  }>;
8
8
  export type JobContext = StaticDecode<typeof JobContextSchema>;
9
- export declare const JobStateSchema: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
9
+ export declare const JobStateSchema: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
10
10
  export type JobState = StaticDecode<typeof JobStateSchema>;
11
11
  export declare const JobLogEntrySchema: Type.TObject<{
12
12
  timestamp: Type.TString;
@@ -25,7 +25,7 @@ export declare const JobSchema: Type.TObject<{
25
25
  id: Type.TString;
26
26
  service: Type.TString;
27
27
  type: Type.TString;
28
- state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
28
+ state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
29
29
  context: Type.TObject<{
30
30
  requestId: Type.TString;
31
31
  traceId: Type.TString;
@@ -62,9 +62,9 @@ export declare const JobEventSchema: Type.TObject<{
62
62
  jobId: Type.TString;
63
63
  service: Type.TString;
64
64
  jobType: Type.TString;
65
- eventType: Type.TUnion<[Type.TLiteral<"created">, Type.TLiteral<"started">, Type.TLiteral<"retry">, Type.TLiteral<"progress">, Type.TLiteral<"logged">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"retried">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
66
- state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
67
- previousState: Type.TOptional<Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>>;
65
+ eventType: Type.TUnion<[Type.TLiteral<"created">, Type.TLiteral<"started">, Type.TLiteral<"retry">, Type.TLiteral<"progress">, Type.TLiteral<"logged">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"heartbeat">, Type.TLiteral<"staleCompletionIgnored">, Type.TLiteral<"retried">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
66
+ state: Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>;
67
+ previousState: Type.TOptional<Type.TUnion<[Type.TLiteral<"pending">, Type.TLiteral<"active">, Type.TLiteral<"retry">, Type.TLiteral<"completed">, Type.TLiteral<"failed">, Type.TLiteral<"cancelled">, Type.TLiteral<"expired">, Type.TLiteral<"skipped">, Type.TLiteral<"stale">, Type.TLiteral<"dead">, Type.TLiteral<"dismissed">]>>;
68
68
  context: Type.TObject<{
69
69
  requestId: Type.TString;
70
70
  traceId: Type.TString;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,gBAAgB;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,wPAUzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;EAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBpB,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACjD,IAAI,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC1D;IACA,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BzB,CAAC;AAEH,MAAM,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACtD,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC/D;IACA,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/internal_jobs/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElD,eAAO,MAAM,gBAAgB;;;;;EAO3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE/D,eAAO,MAAM,cAAc,0SAYzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,eAAO,MAAM,iBAAiB;;;;EAQ5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBpB,CAAC;AAEH,MAAM,MAAM,GAAG,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACjD,IAAI,CAAC,YAAY,CAAC,OAAO,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC1D;IACA,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCzB,CAAC;AAEH,MAAM,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IACtD,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,GAC/D;IACA,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,qBAAqB;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -18,6 +18,8 @@ exports.JobStateSchema = typebox_1.Type.Union([
18
18
  typebox_1.Type.Literal("failed"),
19
19
  typebox_1.Type.Literal("cancelled"),
20
20
  typebox_1.Type.Literal("expired"),
21
+ typebox_1.Type.Literal("skipped"),
22
+ typebox_1.Type.Literal("stale"),
21
23
  typebox_1.Type.Literal("dead"),
22
24
  typebox_1.Type.Literal("dismissed"),
23
25
  ]);
@@ -69,6 +71,10 @@ exports.JobEventSchema = typebox_1.Type.Object({
69
71
  typebox_1.Type.Literal("failed"),
70
72
  typebox_1.Type.Literal("cancelled"),
71
73
  typebox_1.Type.Literal("expired"),
74
+ typebox_1.Type.Literal("skipped"),
75
+ typebox_1.Type.Literal("stale"),
76
+ typebox_1.Type.Literal("heartbeat"),
77
+ typebox_1.Type.Literal("staleCompletionIgnored"),
72
78
  typebox_1.Type.Literal("retried"),
73
79
  typebox_1.Type.Literal("dead"),
74
80
  typebox_1.Type.Literal("dismissed"),
@@ -15,7 +15,8 @@ import type { NatsConnectOpts } from "./runtime.js";
15
15
  import { type LoggerLike } from "../globals.js";
16
16
  import { TransferError, TransportError, UnexpectedError, ValidationError } from "../errors/index.js";
17
17
  import type { ReceiveTransferGrant } from "../transfer.js";
18
- import { ActiveJob as PublicActiveJob, JobRef } from "../jobs.js";
18
+ import { ActiveJob as PublicActiveJob, JobRef, type JobSubmitOutcome } from "../jobs.js";
19
+ import type { JobKeyConcurrencyBinding, JobQueuePolicyBinding } from "./internal_jobs/key-coordinator.js";
19
20
  import { type TrellisConnection } from "../connection.js";
20
21
  type ExtraNatsConnectOpts = Omit<NatsConnectOpts, "servers" | "token" | "inboxPrefix" | "authenticator">;
21
22
  type ResourceBindingJobsQueue = {
@@ -37,6 +38,8 @@ type ResourceBindingJobsQueue = {
37
38
  logs: boolean;
38
39
  dlq: boolean;
39
40
  concurrency: number;
41
+ keyConcurrency?: JobKeyConcurrencyBinding;
42
+ queue?: JobQueuePolicyBinding;
40
43
  };
41
44
  type ResourceBindingJobs = {
42
45
  namespace: string;
@@ -235,6 +238,7 @@ export type HealthInfoHandler<TDeps = undefined> = (args: WithDeps<TDeps>) => Se
235
238
  export type HealthCheckHandler<TDeps = undefined> = (args: WithDeps<TDeps>) => ServiceHealthCheck | Promise<ServiceHealthCheck>;
236
239
  export type JobQueue<TPayload, TResult, TTrellisApi extends TrellisAPI, TKv extends ContractKvMetadata = ContractKvMetadata, TJobs extends ContractJobsMetadata = {}> = {
237
240
  create(payload: TPayload): AsyncResult<JobRef<TPayload, TResult>, BaseError>;
241
+ submit(payload: TPayload): AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError>;
238
242
  handle(handler: (args: {
239
243
  job: PublicActiveJob<TPayload, TResult>;
240
244
  client: Trellis<TTrellisApi, TKv, TJobs>;
@@ -245,9 +249,9 @@ export type JobsFacadeOf<TJobs extends ContractJobsMetadata, TTrellisApi extends
245
249
  };
246
250
  type ServiceEventName<TA extends TrellisAPI> = keyof TA["events"] & string;
247
251
  type ServiceEventOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> = TA["events"][E] extends EventDesc<infer TEvent> ? InferSchemaType<TEvent> : never;
248
- type ServiceEventPayloadOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> = Omit<ServiceEventOf<TA, E>, "header">;
252
+ type ServiceEventPayloadOf<TA extends TrellisAPI, E extends ServiceEventName<TA>> = ServiceEventOf<TA, E> & Record<string, unknown>;
249
253
  type BoundEventHandleFn<TEventApi extends TrellisAPI, TTrellisApi extends TrellisAPI, E extends ServiceEventName<TEventApi>, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = (args: {
250
- event: ServiceEventOf<TEventApi, E>;
254
+ event: ServiceEventPayloadOf<TEventApi, E>;
251
255
  context: EventListenerContext;
252
256
  client: Trellis<TTrellisApi, TKv, TJobs>;
253
257
  deps: TDeps;
@@ -298,6 +302,7 @@ type BoundTypedServiceHandleFacade<TOwnedApi extends TrellisAPI, TTrellisApi ext
298
302
  };
299
303
  type BoundJobQueue<TPayload, TResult, TTrellisApi extends TrellisAPI, TKv extends ContractKvMetadata, TJobs extends ContractJobsMetadata, TDeps> = {
300
304
  create(payload: TPayload): AsyncResult<JobRef<TPayload, TResult>, BaseError>;
305
+ submit(payload: TPayload): AsyncResult<JobSubmitOutcome<TPayload, TResult>, BaseError>;
301
306
  handle(handler: (args: {
302
307
  job: PublicActiveJob<TPayload, TResult>;
303
308
  client: Trellis<TTrellisApi, TKv, TJobs>;
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EACL,KAAK,gBAAgB,EACrB,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAKL,KAAK,WAAW,IAAI,WAAW,EAChC,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,EAEV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,WAAW,EACX,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,MAAM,EACP,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAEjB,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,WAAW,EACX,gBAAgB,IAAI,oBAAoB,EACxC,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EAEnB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAKvB,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAQtE,OAAO,EACL,aAAa,EACb,cAAc,EACd,eAAe,EACf,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,SAAS,IAAI,eAAe,EAI5B,MAAM,EAIP,MAAM,YAAY,CAAC;AAapB,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAG1B,KAAK,oBAAoB,GAAG,IAAI,CAC9B,eAAe,EACf,SAAS,GAAG,OAAO,GAAG,aAAa,GAAG,eAAe,CACtD,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;CAClD,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAsFF,KAAK,aAAa,CAAC,EAAE,SAAS,UAAU,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AACrE,KAAK,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC,SAAS,aAAa,CAAC,EAAE,CAAC,IACpE,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,KAAK,eAAe,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC,SAAS,aAAa,CAAC,EAAE,CAAC,IACrE,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,KAAK,+BAA+B,CAClC,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,GAAG,SAAS,GAAG,SAAS,IACpD;IACF,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC9C,CAAC;AAuCF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC5C,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAC;CAC/D,CAAC;AA+YF,8BAAsB,WAAW;IAC/B,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IAEhD,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,OAAO,CACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GACzB,WAAW,CAAC,eAAe,EAAE,UAAU,CAAC;CAC5C;AAmFD,KAAK,gCAAgC,CACnC,SAAS,SAAS,UAAU,GAAG,UAAU,EACzC,WAAW,SAAS,UAAU,GAAG,SAAS,IACxC;IACF;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAE3B;;;WAGG;QACH,aAAa,CAAC,EAAE,UAAU,CAAC;QAE3B;;;WAGG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAE3B;;WAEG;QACH,aAAa,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;QAEjD;;;WAGG;QACH,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,CAAC;IAEF,MAAM,EAAE,+BAA+B,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;CACjE,CAAC;AAEF,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,UAAU,GAAG,UAAU,EACzC,WAAW,SAAS,UAAU,GAAG,SAAS,GAAG,SAAS,IACpD;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,kCAAkC,CAAC;IAC/C,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,kCAAkC,GAAG,KAAK,GAAG;IACvD,iFAAiF;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,CAAC,GAAG,SAAS,kBAAkB,IAAI;KACpD,CAAC,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,KAAK,GAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,SAAS,GACrC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,uBAAuB,CAC1B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,WAAW,SAAS,UAAU,IAC5B;IACF,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,OAAO,CACjB,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,EACnD,KAAK,SAAS,oBAAoB,GAAG,EAAE,IAErC,cAAc,CAAC,WAAW,CAAC,GAC3B,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,MAAM,eAAe,CACzB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,GAAG,SAAS,EAC1C,KAAK,SAAS,oBAAoB,GAAG,EAAE,EACvC,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,IACjD;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,EAAE;QACH,KAAK,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,WAAW,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC;IAC1C,QAAQ,CAAC,CAAC,oBAAoB,CAAC,CAAC,EAAE,GAAG,CAAC;CACvC,CAAC;AAEF,KAAK,gBAAgB,CACnB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9B,KAAK,kBAAkB,CACrB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,UAAU,GAC3D,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GACxC,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEhC,KAAK,cAAc,CACjB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,IACC,WAAW,CAAC,SAAS,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAC;AAE1D,KAAK,YAAY,CACf,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,IACC,WAAW,CAAC,SAAS,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC;AAExD,KAAK,eAAe,CAClB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;AAE7C,KAAK,iBAAiB,CACpB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,gBAAgB,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;AAEpD,KAAK,gBAAgB,CACnB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAExD,KAAK,qBAAqB,CACxB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,IACC,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;AAE7D,KAAK,kBAAkB,CACrB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,EACD,IAAI,SAAS,eAAe,CAAC,SAAS,CAAC,IACrC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC;AAE/C,KAAK,iBAAiB,CACpB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,CACrB,EACD,IAAI,SAAS,eAAe,CAAC,SAAS,CAAC,IACrC,cAAc,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,MAAM,OAAO,CACjB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,IAAI,SAAS,eAAe,CAAC,SAAS,CAAC,EACvC,KAAK,GAAG,SAAS,IACf;IACF,GAAG,EAAE,eAAe,CAClB,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,EACnC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CACnC,CAAC;IACF,MAAM,EAAE,OAAO,CACb,kBAAkB,CAAC,SAAS,CAAC,EAC7B,YAAY,CAAC,SAAS,CAAC,EACvB,cAAc,CAAC,SAAS,CAAC,CAC1B,CAAC;CACH,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,MAAM,SAAS,CACnB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,IAAI,SAAS,eAAe,CAAC,SAAS,CAAC,IACrC,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;AAE1D,KAAK,QAAQ,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC;AAE1E,2EAA2E;AAC3E,MAAM,MAAM,UAAU,CACpB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,CAAC,SAAS,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EACpD,KAAK,GAAG,SAAS,IACf,CAAC,EACH,KAAK,EACL,OAAO,EACP,MAAM,GACP,EAAE;IACD,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,OAAO,CACb,kBAAkB,CAAC,SAAS,CAAC,EAC7B,YAAY,CAAC,SAAS,CAAC,EACvB,cAAc,CAAC,SAAS,CAAC,CAC1B,CAAC;CACH,GAAG,QAAQ,CAAC,KAAK,CAAC,KACf,OAAO,CACP,MAAM,CACJ,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAC/C,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAClD,CACF,GACC,MAAM,CACN,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAC/C,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAClD,CAAC;AAEJ,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,CAC7B,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,CAAC,SAAS,iBAAiB,CAAC,SAAS,CAAC,EACtC,KAAK,GAAG,SAAS,IACf,CACF,IAAI,EAAE;IACJ,KAAK,EAAE,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,OAAO,CACb,kBAAkB,CAAC,SAAS,CAAC,EAC7B,YAAY,CAAC,SAAS,CAAC,EACvB,cAAc,CAAC,SAAS,CAAC,CAC1B,CAAC;CACH,GAAG,QAAQ,CAAC,KAAK,CAAC,KAChB,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAEjC,4EAA4E;AAC5E,MAAM,MAAM,WAAW,CACrB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,EACrC,KAAK,GAAG,SAAS,IACf,CACF,OAAO,EAAE;IACP,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CACF,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GACjD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;IACxD,MAAM,EAAE,OAAO,CACb,kBAAkB,CAAC,SAAS,CAAC,EAC7B,YAAY,CAAC,SAAS,CAAC,EACvB,cAAc,CAAC,SAAS,CAAC,CAC1B,CAAC;CACH,GAAG,QAAQ,CAAC,KAAK,CAAC,KAChB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,+EAA+E;AAC/E,MAAM,MAAM,UAAU,CACpB,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,IAAI,SAAS,eAAe,CAAC,SAAS,CAAC,EACvC,KAAK,GAAG,SAAS,IACf,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,OAAO,CACpD,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,CAC3B,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,gBAAgB,CAC1B,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EACD,CAAC,SAAS,qBAAqB,CAAC,SAAS,CAAC,EAC1C,KAAK,GAAG,SAAS,IACf,CACF,IAAI,EACA,uBAAuB,CACvB,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACtE,mBAAmB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EACnD,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EACjD,0BAA0B,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAC3D,GACC;IACA,MAAM,EAAE,OAAO,CACb,kBAAkB,CAAC,SAAS,CAAC,EAC7B,YAAY,CAAC,SAAS,CAAC,EACvB,cAAc,CAAC,SAAS,CAAC,CAC1B,CAAC;CACH,GACC,QAAQ,CAAC,KAAK,CAAC,KAChB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,CAAC,KAAK,GAAG,SAAS,IAAI,CACjD,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAClB,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;AAE5E,iFAAiF;AACjF,MAAM,MAAM,kBAAkB,CAAC,KAAK,GAAG,SAAS,IAAI,CAClD,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,KAClB,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEtD,MAAM,MAAM,QAAQ,CAClB,QAAQ,EACR,OAAO,EACP,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,EACnD,KAAK,SAAS,oBAAoB,GAAG,EAAE,IACrC;IACF,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7E,MAAM,CACJ,OAAO,EAAE,CAAC,IAAI,EAAE;QACd,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KAC1C,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,GACxC,IAAI,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,YAAY,CACtB,KAAK,SAAS,oBAAoB,EAClC,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,IACjD;KACD,CAAC,IAAI,MAAM,KAAK,GAAG,QAAQ,CAC1B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACnB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClB,WAAW,EACX,GAAG,EACH,KAAK,CACN;CACF,CAAC;AAEF,KAAK,gBAAgB,CAAC,EAAE,SAAS,UAAU,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;AAC3E,KAAK,cAAc,CACjB,EAAE,SAAS,UAAU,EACrB,CAAC,SAAS,gBAAgB,CAAC,EAAE,CAAC,IAC5B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,MAAM,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,GACzE,KAAK,CAAC;AACV,KAAK,qBAAqB,CACxB,EAAE,SAAS,UAAU,EACrB,CAAC,SAAS,gBAAgB,CAAC,EAAE,CAAC,IAC5B,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAE1C,KAAK,kBAAkB,CACrB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,gBAAgB,CAAC,SAAS,CAAC,EACrC,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH,CAAC,IAAI,EAAE;IACT,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC;CACb,KAAK,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAElC,KAAK,sBAAsB,CACzB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH;IACF,QAAQ,EAAE,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,GAAG;QAClE,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,gBAAgB,CAAC,SAAS,CAAC,EAC3B,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB;YACD,OAAO,CACL,KAAK,EAAE,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,GACzC,MAAM,CACP,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EACzD,eAAe,GAAG,eAAe,CAClC,CAAC;YACF,OAAO,CACL,KAAK,EAAE,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,GACzC,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;YACxD,MAAM,CACJ,OAAO,EAAE,kBAAkB,CACzB,SAAS,EACT,WAAW,EACX,CAAC,EACD,GAAG,EACH,KAAK,EACL,KAAK,CACN,EACD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,CAAC,EAAE,SAAS,GACf,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;SACzD;KACF;CACF,CAAC;AAEF,KAAK,gBAAgB,CACnB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,EAClC,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH,CAAC,IAAI,EAAE;IACT,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC;CACb,KACG,OAAO,CACP,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CACvE,GACC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAE3E,KAAK,iBAAiB,CACpB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,EAC3C,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH,CAAC,OAAO,EAAE;IACZ,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CACF,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;IACxD,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC;CACb,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjC,KAAK,sBAAsB,CACzB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,EAChD,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IAEH,CAAC,CACD,OAAO,EAAE,CACP,OAAO,EACH,uBAAuB,CACvB,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACpD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAC/B,0BAA0B,CAAC,SAAS,EAAE,CAAC,CAAC,CACzC,GACC;IACA,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACzC,IAAI,EAAE,KAAK,CAAC;CACb,KACA,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,GACjB,IAAI,CACJ,iBAAiB,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EACxD,QAAQ,GAAG,SAAS,CACrB,CAAC;AAEJ,KAAK,6BAA6B,CAChC,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH;IACF,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,EAAE,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG;YAC/D,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,aAAa,CAAC,SAAS,CAAC,EACxB,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,CACD,OAAO,EAAE,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KACpE,OAAO,CAAC,IAAI,CAAC;SACnB;KACF,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,EAAE,MAAM,IAAI,gBAAgB,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG;YACxE,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,EACjC,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,CACD,OAAO,EAAE,iBAAiB,CACxB,SAAS,EACT,WAAW,EACX,CAAC,EACD,GAAG,EACH,KAAK,EACL,KAAK,CACN,KACE,OAAO,CAAC,IAAI,CAAC;SACnB;KACF,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,EACN,MAAM,IAAI,gBAAgB,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GACjE;YACD,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,EACtC,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,sBAAsB,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC;SACxE;KACF,CAAC;CACH,CAAC;AAEF,KAAK,aAAa,CAChB,QAAQ,EACR,OAAO,EACP,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,EAClC,KAAK,IACH;IACF,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;IAC7E,MAAM,CACJ,OAAO,EAAE,CAAC,IAAI,EAAE;QACd,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC;KACb,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,GACxC,IAAI,CAAC;CACT,CAAC;AAEF,KAAK,iBAAiB,CACpB,KAAK,SAAS,oBAAoB,EAClC,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,IACH;KACD,CAAC,IAAI,MAAM,KAAK,GAAG,aAAa,CAC/B,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACnB,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClB,WAAW,EACX,GAAG,EACH,KAAK,EACL,KAAK,CACN;CACF,CAAC;AAEF,KAAK,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG;IACxE,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAClE,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAC/B,MAAM,IAAI,CAAC;CACf,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,CAC7B,SAAS,SAAS,UAAU,GAAG,UAAU,EACzC,WAAW,SAAS,UAAU,GAAG,SAAS,EAC1C,KAAK,SAAS,oBAAoB,GAAG,EAAE,EACvC,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,EACnD,KAAK,GAAG,OAAO,IAEb,IAAI,CACJ,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,EAChD,MAAM,GACN,MAAM,GACN,IAAI,GACJ,OAAO,GACP,YAAY,GACZ,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,MAAM,GACN,MAAM,CACT,GACC;IACA,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CACpC,WAAW,EACX,WAAW,EACX,GAAG,EACH,KAAK,EACL,KAAK,CACN,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACjE,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAC5C,SAAS,EACT,WAAW,EACX,GAAG,EACH,KAAK,EACL,KAAK,CACN,CAAC;IACF,0EAA0E;IAC1E,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,mBAAmB,CACnD,SAAS,EACT,WAAW,EACX,KAAK,EACL,GAAG,EACH,SAAS,CACV,CAAC;CACH,CAAC;AAiGJ,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAC1C,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GAC3B,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAC/C,UAAU,CAAC,CAAC,CAAC,CAAC;AAClB,KAAK,qBAAqB,CAAC,CAAC,SAAS,MAAM,IAAI,YAAY,CACzD,iBAAiB,CAAC,CAAC,CAAC,CACrB,CAAC;AACF,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,GACzE,qBAAqB,CAAC,IAAI,CAAC,GAC3B,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7B,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,EAAE,GACxE,qBAAqB,CAAC,IAAI,CAAC,GAC3B,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAC7B,KAAK,mBAAmB,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,IAClE,KAAK,SAAS,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,SAAS,MAAM,GAAG,KAAK,GAAG,KAAK,GACzE,KAAK,CAAC;AAEZ,KAAK,wBAAwB,CAC3B,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,IAChC;IACF,QAAQ,CAAC,GAAG,EAAE;QACZ,QAAQ,EAAE,MAAM,IAAI,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG;YAC/D,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,aAAa,CAAC,SAAS,CAAC,EACxB,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,CACD,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,KACxD,OAAO,CAAC,IAAI,CAAC;SACnB;KACF,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,EAAE,MAAM,IAAI,gBAAgB,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG;YACxE,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,EACjC,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,CACD,OAAO,EAAE,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,KACzD,OAAO,CAAC,IAAI,CAAC;SACnB;KACF,CAAC;IACF,QAAQ,CAAC,SAAS,EAAE;QAClB,QAAQ,EACN,MAAM,IAAI,gBAAgB,CAAC,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,GACjE;YACD,QAAQ,EACN,CAAC,IAAI,mBAAmB,CACtB,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,EACtC,MAAM,CACP,IAAI,eAAe,CAAC,CAAC,CAAC,GACtB,iBAAiB,CAClB,SAAS,EACT,WAAW,EACX,CAAC,EACD,GAAG,EACH,KAAK,CACN;SACF;KACF,CAAC;CACH,CAAC;AAEF,KAAK,WAAW,CACd,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,aAAa,CAAC,SAAS,CAAC,EAClC,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,IAChC,CAAC,IAAI,EAAE;IACT,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CAC1C,KACG,OAAO,CACP,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CACvE,GACC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAE3E,KAAK,YAAY,CACf,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,EAC3C,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,IAChC,CAAC,OAAO,EAAE;IACZ,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CACF,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC,CAAC;IACxD,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;CAC1C,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjC,KAAK,iBAAiB,CACpB,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,EAChD,GAAG,SAAS,kBAAkB,EAC9B,KAAK,SAAS,oBAAoB,IAEhC,CAAC,CACD,OAAO,EAAE,CACP,OAAO,EACH,uBAAuB,CACvB,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACpD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAC/B,0BAA0B,CAAC,SAAS,EAAE,CAAC,CAAC,CACzC,GACC;IAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;CAAE,KAC7C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,GACjB;IACA,MAAM,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,CAC/C,iBAAiB,CACf,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAChC,EACD,eAAe,CAChB,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,CACvC,sBAAsB,CACpB,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAChC,EACD,SAAS,CACV,CAAC;CACH,CAAC;AAEJ,MAAM,MAAM,qBAAqB,CAC/B,SAAS,SAAS,UAAU,EAC5B,WAAW,SAAS,UAAU,EAC9B,CAAC,SAAS,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,MAAM,EAChD,GAAG,SAAS,kBAAkB,GAAG,kBAAkB,EACnD,KAAK,SAAS,oBAAoB,GAAG,EAAE,IACrC;IACF,MAAM,CAAC,IAAI,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,WAAW,CACb,iBAAiB,CACf,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAChC,EACD,eAAe,CAChB,CAAC;IACF;;;OAGG;IACH,OAAO,CACL,WAAW,EAAE,MAAM,GAClB,WAAW,CACZ,sBAAsB,CACpB,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAChC,EACD,SAAS,CACV,CAAC;IACF,MAAM,CACJ,OAAO,EAAE,CACP,IAAI,EACA,uBAAuB,CACvB,eAAe,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EACpD,mBAAmB,CAAC,SAAS,EAAE,CAAC,CAAC,EACjC,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,EAC/B,0BAA0B,CAAC,SAAS,EAAE,CAAC,CAAC,CACzC,GACC;QAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;KAAE,KAC7C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAC1B,SAAS,SAAS,UAAU,EAC5B,CAAC,SAAS,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,IACzC,oBAAoB,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,eAAe,CAC/B,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,IACC;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,SAAS,CAAC,EAAE,kCAAkC,CAAC;IAC/C,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iCAAiC,CAC3C,SAAS,SAAS,UAAU,GAAG,UAAU,EACzC,WAAW,SAAS,UAAU,GAAG,SAAS,EAC1C,GAAG,SAAS,kBAAkB,GAAG,EAAE,IACjC,gCAAgC,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AA8kCF,qBAAa,cAAc,CACzB,SAAS,SAAS,UAAU,GAAG,UAAU,EACzC,WAAW,SAAS,UAAU,GAAG,SAAS,EAC1C,KAAK,SAAS,oBAAoB,GAAG,EAAE,EACvC,GAAG,SAAS,kBAAkB,GAAG,kBAAkB;;IAEnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAI3B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9E,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IAOvC,OAAO;IAgEP;;;OAGG;IACH,IAAI,CAAC,KAAK,EACR,IAAI,EAAE,KAAK,GACV,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC;IAqBjE,yEAAyE;IACzE,eAAe,CACb,KAAK,EAAE,oBAAoB,GAC1B,WAAW,CAAC,IAAI,EAAE,eAAe,CAAC;IAwNrC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE;QACnB,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,WAAW,CAAC,oBAAoB,EAAE,aAAa,CAAC;IA8CpD,MAAM,CAAC,OAAO,CACZ,KAAK,CAAC,SAAS,SAAS,eAAe,CACrC,UAAU,EACV,UAAU,GAAG,SAAS,EACtB,oBAAoB,EACpB,kBAAkB,CACnB,EAED,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,GACzC,WAAW,CACZ,cAAc,CACZ,gBAAgB,CAAC,SAAS,CAAC,EAC3B,kBAAkB,CAAC,SAAS,CAAC,EAC7B,cAAc,CAAC,SAAS,CAAC,EACzB,YAAY,CAAC,SAAS,CAAC,CACxB,EACD,cAAc,GAAG,eAAe,CACjC;IAIK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA+D5B"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/server/service.ts"],"names":[],"mappings":"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"}
@@ -70,9 +70,65 @@ const index_js_1 = require("../errors/index.js");
70
70
  const jobs_js_1 = require("../jobs.js");
71
71
  const job_manager_js_1 = require("./internal_jobs/job-manager.js");
72
72
  const runtime_worker_js_1 = require("./internal_jobs/runtime-worker.js");
73
+ const key_coordinator_js_1 = require("./internal_jobs/key-coordinator.js");
73
74
  const types_js_1 = require("./internal_jobs/types.js");
74
75
  const connection_js_1 = require("../connection.js");
75
76
  const init_js_1 = require("../telemetry/init.js");
77
+ function normalizeResourceJobsBinding(binding) {
78
+ const queues = {};
79
+ for (const [name, queue] of Object.entries(binding.queues)) {
80
+ const baseQueue = baseJobsQueueBinding(queue);
81
+ if (!queue.keyConcurrency) {
82
+ queues[name] = {
83
+ ...baseQueue,
84
+ ...(queue.queue ? { queue: normalizeQueuePolicy(queue.queue) } : {}),
85
+ };
86
+ continue;
87
+ }
88
+ const policy = (0, key_coordinator_js_1.normalizeJobKeyPolicy)({
89
+ keyConcurrency: queue.keyConcurrency,
90
+ queue: queue.queue,
91
+ });
92
+ queues[name] = {
93
+ ...baseQueue,
94
+ keyConcurrency: {
95
+ key: policy.key,
96
+ maxActive: policy.maxActive,
97
+ heartbeatIntervalMs: policy.heartbeatIntervalMs,
98
+ heartbeatTtlMs: policy.heartbeatTtlMs,
99
+ stalePolicy: policy.stalePolicy,
100
+ },
101
+ queue: policy.queue,
102
+ };
103
+ }
104
+ return { namespace: binding.namespace, queues };
105
+ }
106
+ function baseJobsQueueBinding(queue) {
107
+ return {
108
+ queueType: queue.queueType,
109
+ publishPrefix: queue.publishPrefix,
110
+ workSubject: queue.workSubject,
111
+ consumerName: queue.consumerName,
112
+ payload: queue.payload,
113
+ ...(queue.result ? { result: queue.result } : {}),
114
+ maxDeliver: queue.maxDeliver,
115
+ backoffMs: queue.backoffMs,
116
+ ackWaitMs: queue.ackWaitMs,
117
+ ...(queue.defaultDeadlineMs !== undefined
118
+ ? { defaultDeadlineMs: queue.defaultDeadlineMs }
119
+ : {}),
120
+ progress: queue.progress,
121
+ logs: queue.logs,
122
+ dlq: queue.dlq,
123
+ concurrency: queue.concurrency,
124
+ };
125
+ }
126
+ function normalizeQueuePolicy(queue) {
127
+ return {
128
+ maxQueuedPerKey: queue.maxQueuedPerKey ?? 0,
129
+ whenFull: queue.whenFull ?? "reject",
130
+ };
131
+ }
76
132
  const ClientTransportEndpointsSchema = typebox_1.Type.Object({
77
133
  natsServers: typebox_1.Type.Array(typebox_1.Type.String({ minLength: 1 }), { minItems: 1 }),
78
134
  });
@@ -573,6 +629,7 @@ async function createConnectedService(args) {
573
629
  prepare: (event, data) => outbound.prepare(event, data),
574
630
  publish: (event, data) => outbound.publish(event, data),
575
631
  publishPrepared: (event) => outbound.publishPrepared(event),
632
+ stopEventListeners: () => outbound.stopEventListeners(),
576
633
  get kv() {
577
634
  return getHandlerResources().kv;
578
635
  },
@@ -700,7 +757,8 @@ function wrapVoidTask(task) {
700
757
  }
701
758
  function isTerminalJobState(state) {
702
759
  return state === "completed" || state === "failed" || state === "cancelled" ||
703
- state === "expired" || state === "dead" || state === "dismissed";
760
+ state === "expired" || state === "skipped" || state === "stale" ||
761
+ state === "dead" || state === "dismissed";
704
762
  }
705
763
  function isTerminalJobSnapshot(snapshot) {
706
764
  return isTerminalJobState(snapshot.state);
@@ -798,6 +856,9 @@ function snapshotFromLifecycleEvent(current, event) {
798
856
  case "failed":
799
857
  case "cancelled":
800
858
  case "expired":
859
+ case "skipped":
860
+ case "stale":
861
+ case "staleCompletionIgnored":
801
862
  case "dead":
802
863
  case "dismissed":
803
864
  return event.error === undefined ? base : {
@@ -974,17 +1035,20 @@ function createJobsFacade(args) {
974
1035
  const handlers = new Map();
975
1036
  const jobsFacade = {};
976
1037
  const lifecycle = createJobLifecycleTracker(args.nc);
1038
+ const keyCoordinator = (0, key_coordinator_js_1.createNatsJobKeyCoordinator)(args.nc);
1039
+ const jobsBinding = args.jobsBinding
1040
+ ? normalizeResourceJobsBinding(args.jobsBinding)
1041
+ : undefined;
977
1042
  let activeHost;
978
1043
  let startupPromise;
979
1044
  let stopPromise;
980
1045
  for (const queueType of Object.keys(args.contractJobs ?? {})) {
981
- const queueBinding = args.jobsBinding?.queues[queueType];
1046
+ const queueBinding = jobsBinding?.queues[queueType];
982
1047
  if (queueBinding)
983
1048
  lifecycle.watch(queueBinding);
984
1049
  jobsFacade[queueType] = {
985
1050
  create: (payload) => result_1.AsyncResult.from((async () => {
986
1051
  try {
987
- const jobsBinding = args.jobsBinding;
988
1052
  if (!jobsBinding) {
989
1053
  return result_1.Result.err(toUnexpectedError(new Error("Jobs bindings are unavailable")));
990
1054
  }
@@ -995,6 +1059,7 @@ function createJobsFacade(args) {
995
1059
  const manager = new job_manager_js_1.JobManager({
996
1060
  nc: args.nc,
997
1061
  jobs: jobsBinding,
1062
+ keyCoordinator,
998
1063
  });
999
1064
  await args.nc.flush();
1000
1065
  const created = await manager.create(queueType, payload);
@@ -1007,6 +1072,60 @@ function createJobsFacade(args) {
1007
1072
  lifecycle,
1008
1073
  }));
1009
1074
  }
1075
+ catch (cause) {
1076
+ if (cause instanceof jobs_js_1.JobNotEnqueuedError) {
1077
+ return result_1.Result.err(cause);
1078
+ }
1079
+ return result_1.Result.err(toUnexpectedError(cause));
1080
+ }
1081
+ })()),
1082
+ submit: (payload) => result_1.AsyncResult.from((async () => {
1083
+ try {
1084
+ if (!jobsBinding) {
1085
+ return result_1.Result.err(toUnexpectedError(new Error("Jobs bindings are unavailable")));
1086
+ }
1087
+ const queueBinding = jobsBinding.queues[queueType];
1088
+ if (!queueBinding) {
1089
+ return result_1.Result.err(toUnexpectedError(new Error(`Jobs binding for queue '${queueType}' is unavailable`)));
1090
+ }
1091
+ const manager = new job_manager_js_1.JobManager({
1092
+ nc: args.nc,
1093
+ jobs: jobsBinding,
1094
+ keyCoordinator,
1095
+ });
1096
+ await args.nc.flush();
1097
+ const outcome = await manager.submit(queueType, payload);
1098
+ if (outcome.kind === "accepted") {
1099
+ return result_1.Result.ok({
1100
+ kind: "accepted",
1101
+ key: outcome.key,
1102
+ ref: createJobRef({
1103
+ nc: args.nc,
1104
+ queueType,
1105
+ jobsBinding,
1106
+ queueBinding,
1107
+ seed: outcome.job,
1108
+ lifecycle,
1109
+ }),
1110
+ });
1111
+ }
1112
+ if (outcome.kind === "replaced") {
1113
+ return result_1.Result.ok({
1114
+ kind: "replaced",
1115
+ key: outcome.key,
1116
+ replaced: outcome.replaced,
1117
+ ref: createJobRef({
1118
+ nc: args.nc,
1119
+ queueType,
1120
+ jobsBinding,
1121
+ queueBinding,
1122
+ seed: outcome.job,
1123
+ lifecycle,
1124
+ }),
1125
+ });
1126
+ }
1127
+ return result_1.Result.ok(outcome);
1128
+ }
1010
1129
  catch (cause) {
1011
1130
  return result_1.Result.err(toUnexpectedError(cause));
1012
1131
  }
@@ -1040,10 +1159,9 @@ function createJobsFacade(args) {
1040
1159
  activeHost = host;
1041
1160
  return result_1.Result.ok(host);
1042
1161
  }
1043
- if (!args.jobsBinding || !args.workStream) {
1162
+ if (!jobsBinding || !args.workStream) {
1044
1163
  return result_1.Result.err(toUnexpectedError(new Error("Jobs infrastructure bindings are unavailable for this service")));
1045
1164
  }
1046
- const jobsBinding = args.jobsBinding;
1047
1165
  const workStream = args.workStream;
1048
1166
  const hosts = [];
1049
1167
  try {
@@ -1059,6 +1177,7 @@ function createJobsFacade(args) {
1059
1177
  const manager = new job_manager_js_1.JobManager({
1060
1178
  nc: args.nc,
1061
1179
  jobs: jobsBinding,
1180
+ keyCoordinator,
1062
1181
  });
1063
1182
  const host = await (0, runtime_worker_js_1.startNatsWorkerHostFromBinding)({
1064
1183
  jobs: jobsBinding,
@@ -1185,6 +1304,7 @@ function createBoundJobsFacade(args) {
1185
1304
  continue;
1186
1305
  boundJobs[queueType] = {
1187
1306
  create: (payload) => queue.create(payload),
1307
+ submit: (payload) => queue.submit(payload),
1188
1308
  handle: (handler) => queue.handle(({ job, client }) => handler({
1189
1309
  job,
1190
1310
  client,
@@ -1472,6 +1592,7 @@ class TrellisService {
1472
1592
  async stop() {
1473
1593
  __classPrivateFieldSet(this, _TrellisService_stopPromise, __classPrivateFieldGet(this, _TrellisService_stopPromise, "f") ?? (async () => {
1474
1594
  this.connection.stopObserving();
1595
+ __classPrivateFieldGet(this, _TrellisService_handlerTrellis, "f").stopEventListeners();
1475
1596
  try {
1476
1597
  await __classPrivateFieldGet(this, _TrellisService_stopHealthPublishing, "f").call(this);
1477
1598
  }
@@ -0,0 +1,27 @@
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 SQLite database or transaction shape accepted by Trellis
6
+ * SQL 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
+ * Adapts a caller-owned Drizzle SQLite database or transaction to Trellis'
16
+ * generic `SqlExecutor` interface.
17
+ */
18
+ export declare function createDrizzleSqlExecutor(database: DrizzleSqlDatabase): SqlExecutor;
19
+ /**
20
+ * Converts a Trellis SQL statement with positional placeholders into a Drizzle
21
+ * `SQL` object with parameters bound in order.
22
+ *
23
+ * Supports SQLite-style `?` placeholders and PostgreSQL-style `$1`, `$2`, ...
24
+ * placeholders. A single statement must not mix both styles.
25
+ */
26
+ export declare function bindDrizzleSqlStatement(statement: string, params: readonly unknown[]): SQL;
27
+ //# 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,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,GAC3B,WAAW,CASb;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,OAAO,EAAE,GACzB,GAAG,CAyCL"}