@nest-batch/core 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +368 -0
  3. package/dist/src/adapters/in-process.adapter.d.ts +140 -0
  4. package/dist/src/adapters/in-process.adapter.d.ts.map +1 -0
  5. package/dist/src/adapters/in-process.adapter.js +86 -0
  6. package/dist/src/adapters/in-process.adapter.js.map +1 -0
  7. package/dist/src/adapters/index.d.ts +18 -0
  8. package/dist/src/adapters/index.d.ts.map +1 -0
  9. package/dist/src/adapters/index.js +35 -0
  10. package/dist/src/adapters/index.js.map +1 -0
  11. package/dist/src/builder/batch-builder.d.ts +26 -0
  12. package/dist/src/builder/batch-builder.d.ts.map +1 -0
  13. package/dist/src/builder/batch-builder.js +25 -0
  14. package/dist/src/builder/batch-builder.js.map +1 -0
  15. package/dist/src/builder/flow-builder.d.ts +59 -0
  16. package/dist/src/builder/flow-builder.d.ts.map +1 -0
  17. package/dist/src/builder/flow-builder.js +115 -0
  18. package/dist/src/builder/flow-builder.js.map +1 -0
  19. package/dist/src/builder/index.d.ts +5 -0
  20. package/dist/src/builder/index.d.ts.map +1 -0
  21. package/dist/src/builder/index.js +23 -0
  22. package/dist/src/builder/index.js.map +1 -0
  23. package/dist/src/builder/job-builder.d.ts +76 -0
  24. package/dist/src/builder/job-builder.d.ts.map +1 -0
  25. package/dist/src/builder/job-builder.js +166 -0
  26. package/dist/src/builder/job-builder.js.map +1 -0
  27. package/dist/src/builder/step-builder.d.ts +74 -0
  28. package/dist/src/builder/step-builder.d.ts.map +1 -0
  29. package/dist/src/builder/step-builder.js +144 -0
  30. package/dist/src/builder/step-builder.js.map +1 -0
  31. package/dist/src/compiler/builder-types.d.ts +20 -0
  32. package/dist/src/compiler/builder-types.d.ts.map +1 -0
  33. package/dist/src/compiler/builder-types.js +6 -0
  34. package/dist/src/compiler/builder-types.js.map +1 -0
  35. package/dist/src/compiler/definition-compiler.d.ts +99 -0
  36. package/dist/src/compiler/definition-compiler.d.ts.map +1 -0
  37. package/dist/src/compiler/definition-compiler.js +257 -0
  38. package/dist/src/compiler/definition-compiler.js.map +1 -0
  39. package/dist/src/compiler/index.d.ts +3 -0
  40. package/dist/src/compiler/index.d.ts.map +1 -0
  41. package/dist/src/compiler/index.js +21 -0
  42. package/dist/src/compiler/index.js.map +1 -0
  43. package/dist/src/core/errors.d.ts +77 -0
  44. package/dist/src/core/errors.d.ts.map +1 -0
  45. package/dist/src/core/errors.js +170 -0
  46. package/dist/src/core/errors.js.map +1 -0
  47. package/dist/src/core/execution-context/index.d.ts +4 -0
  48. package/dist/src/core/execution-context/index.d.ts.map +1 -0
  49. package/dist/src/core/execution-context/index.js +22 -0
  50. package/dist/src/core/execution-context/index.js.map +1 -0
  51. package/dist/src/core/execution-context/json-value.d.ts +5 -0
  52. package/dist/src/core/execution-context/json-value.d.ts.map +1 -0
  53. package/dist/src/core/execution-context/json-value.js +6 -0
  54. package/dist/src/core/execution-context/json-value.js.map +1 -0
  55. package/dist/src/core/execution-context/serializer.d.ts +4 -0
  56. package/dist/src/core/execution-context/serializer.d.ts.map +1 -0
  57. package/dist/src/core/execution-context/serializer.js +34 -0
  58. package/dist/src/core/execution-context/serializer.js.map +1 -0
  59. package/dist/src/core/execution-context/validator.d.ts +18 -0
  60. package/dist/src/core/execution-context/validator.d.ts.map +1 -0
  61. package/dist/src/core/execution-context/validator.js +90 -0
  62. package/dist/src/core/execution-context/validator.js.map +1 -0
  63. package/dist/src/core/index.d.ts +8 -0
  64. package/dist/src/core/index.d.ts.map +1 -0
  65. package/dist/src/core/index.js +26 -0
  66. package/dist/src/core/index.js.map +1 -0
  67. package/dist/src/core/ir/decider-definition.d.ts +20 -0
  68. package/dist/src/core/ir/decider-definition.d.ts.map +1 -0
  69. package/dist/src/core/ir/decider-definition.js +6 -0
  70. package/dist/src/core/ir/decider-definition.js.map +1 -0
  71. package/dist/src/core/ir/index.d.ts +8 -0
  72. package/dist/src/core/ir/index.d.ts.map +1 -0
  73. package/dist/src/core/ir/index.js +26 -0
  74. package/dist/src/core/ir/index.js.map +1 -0
  75. package/dist/src/core/ir/job-definition.d.ts +15 -0
  76. package/dist/src/core/ir/job-definition.d.ts.map +1 -0
  77. package/dist/src/core/ir/job-definition.js +6 -0
  78. package/dist/src/core/ir/job-definition.js.map +1 -0
  79. package/dist/src/core/ir/listener-definition.d.ts +10 -0
  80. package/dist/src/core/ir/listener-definition.d.ts.map +1 -0
  81. package/dist/src/core/ir/listener-definition.js +6 -0
  82. package/dist/src/core/ir/listener-definition.js.map +1 -0
  83. package/dist/src/core/ir/policy-config.d.ts +24 -0
  84. package/dist/src/core/ir/policy-config.d.ts.map +1 -0
  85. package/dist/src/core/ir/policy-config.js +6 -0
  86. package/dist/src/core/ir/policy-config.js.map +1 -0
  87. package/dist/src/core/ir/refs.d.ts +42 -0
  88. package/dist/src/core/ir/refs.d.ts.map +1 -0
  89. package/dist/src/core/ir/refs.js +18 -0
  90. package/dist/src/core/ir/refs.js.map +1 -0
  91. package/dist/src/core/ir/step-definition.d.ts +59 -0
  92. package/dist/src/core/ir/step-definition.d.ts.map +1 -0
  93. package/dist/src/core/ir/step-definition.js +6 -0
  94. package/dist/src/core/ir/step-definition.js.map +1 -0
  95. package/dist/src/core/ir/transition-definition.d.ts +8 -0
  96. package/dist/src/core/ir/transition-definition.d.ts.map +1 -0
  97. package/dist/src/core/ir/transition-definition.js +6 -0
  98. package/dist/src/core/ir/transition-definition.js.map +1 -0
  99. package/dist/src/core/item/index.d.ts +2 -0
  100. package/dist/src/core/item/index.d.ts.map +1 -0
  101. package/dist/src/core/item/index.js +20 -0
  102. package/dist/src/core/item/index.js.map +1 -0
  103. package/dist/src/core/item/interfaces.d.ts +64 -0
  104. package/dist/src/core/item/interfaces.d.ts.map +1 -0
  105. package/dist/src/core/item/interfaces.js +6 -0
  106. package/dist/src/core/item/interfaces.js.map +1 -0
  107. package/dist/src/core/repository/index.d.ts +3 -0
  108. package/dist/src/core/repository/index.d.ts.map +1 -0
  109. package/dist/src/core/repository/index.js +21 -0
  110. package/dist/src/core/repository/index.js.map +1 -0
  111. package/dist/src/core/repository/job-repository.d.ts +60 -0
  112. package/dist/src/core/repository/job-repository.d.ts.map +1 -0
  113. package/dist/src/core/repository/job-repository.js +27 -0
  114. package/dist/src/core/repository/job-repository.js.map +1 -0
  115. package/dist/src/core/repository/types.d.ts +84 -0
  116. package/dist/src/core/repository/types.d.ts.map +1 -0
  117. package/dist/src/core/repository/types.js +6 -0
  118. package/dist/src/core/repository/types.js.map +1 -0
  119. package/dist/src/core/status.d.ts +29 -0
  120. package/dist/src/core/status.d.ts.map +1 -0
  121. package/dist/src/core/status.js +58 -0
  122. package/dist/src/core/status.js.map +1 -0
  123. package/dist/src/core/transaction/index.d.ts +2 -0
  124. package/dist/src/core/transaction/index.d.ts.map +1 -0
  125. package/dist/src/core/transaction/index.js +20 -0
  126. package/dist/src/core/transaction/index.js.map +1 -0
  127. package/dist/src/core/transaction/transaction-manager.d.ts +8 -0
  128. package/dist/src/core/transaction/transaction-manager.d.ts.map +1 -0
  129. package/dist/src/core/transaction/transaction-manager.js +14 -0
  130. package/dist/src/core/transaction/transaction-manager.js.map +1 -0
  131. package/dist/src/core/validation/definition-validator.d.ts +46 -0
  132. package/dist/src/core/validation/definition-validator.d.ts.map +1 -0
  133. package/dist/src/core/validation/definition-validator.js +177 -0
  134. package/dist/src/core/validation/definition-validator.js.map +1 -0
  135. package/dist/src/core/validation/index.d.ts +2 -0
  136. package/dist/src/core/validation/index.d.ts.map +1 -0
  137. package/dist/src/core/validation/index.js +20 -0
  138. package/dist/src/core/validation/index.js.map +1 -0
  139. package/dist/src/decorators/constants.d.ts +10 -0
  140. package/dist/src/decorators/constants.d.ts.map +1 -0
  141. package/dist/src/decorators/constants.js +50 -0
  142. package/dist/src/decorators/constants.js.map +1 -0
  143. package/dist/src/decorators/flow.decorator.d.ts +25 -0
  144. package/dist/src/decorators/flow.decorator.d.ts.map +1 -0
  145. package/dist/src/decorators/flow.decorator.js +19 -0
  146. package/dist/src/decorators/flow.decorator.js.map +1 -0
  147. package/dist/src/decorators/index.d.ts +8 -0
  148. package/dist/src/decorators/index.d.ts.map +1 -0
  149. package/dist/src/decorators/index.js +26 -0
  150. package/dist/src/decorators/index.js.map +1 -0
  151. package/dist/src/decorators/item.decorators.d.ts +32 -0
  152. package/dist/src/decorators/item.decorators.d.ts.map +1 -0
  153. package/dist/src/decorators/item.decorators.js +40 -0
  154. package/dist/src/decorators/item.decorators.js.map +1 -0
  155. package/dist/src/decorators/job.decorator.d.ts +11 -0
  156. package/dist/src/decorators/job.decorator.d.ts.map +1 -0
  157. package/dist/src/decorators/job.decorator.js +17 -0
  158. package/dist/src/decorators/job.decorator.js.map +1 -0
  159. package/dist/src/decorators/listener.decorators.d.ts +56 -0
  160. package/dist/src/decorators/listener.decorators.d.ts.map +1 -0
  161. package/dist/src/decorators/listener.decorators.js +157 -0
  162. package/dist/src/decorators/listener.decorators.js.map +1 -0
  163. package/dist/src/decorators/step.decorator.d.ts +25 -0
  164. package/dist/src/decorators/step.decorator.d.ts.map +1 -0
  165. package/dist/src/decorators/step.decorator.js +21 -0
  166. package/dist/src/decorators/step.decorator.js.map +1 -0
  167. package/dist/src/decorators/tasklet.decorator.d.ts +7 -0
  168. package/dist/src/decorators/tasklet.decorator.d.ts.map +1 -0
  169. package/dist/src/decorators/tasklet.decorator.js +21 -0
  170. package/dist/src/decorators/tasklet.decorator.js.map +1 -0
  171. package/dist/src/execution/batch-worker-runner.d.ts +27 -0
  172. package/dist/src/execution/batch-worker-runner.d.ts.map +1 -0
  173. package/dist/src/execution/batch-worker-runner.js +147 -0
  174. package/dist/src/execution/batch-worker-runner.js.map +1 -0
  175. package/dist/src/execution/chunk-step-executor.d.ts +86 -0
  176. package/dist/src/execution/chunk-step-executor.d.ts.map +1 -0
  177. package/dist/src/execution/chunk-step-executor.js +482 -0
  178. package/dist/src/execution/chunk-step-executor.js.map +1 -0
  179. package/dist/src/execution/execution-strategy.d.ts +110 -0
  180. package/dist/src/execution/execution-strategy.d.ts.map +1 -0
  181. package/dist/src/execution/execution-strategy.js +13 -0
  182. package/dist/src/execution/execution-strategy.js.map +1 -0
  183. package/dist/src/execution/external-task-execution-strategy.d.ts +36 -0
  184. package/dist/src/execution/external-task-execution-strategy.d.ts.map +1 -0
  185. package/dist/src/execution/external-task-execution-strategy.js +97 -0
  186. package/dist/src/execution/external-task-execution-strategy.js.map +1 -0
  187. package/dist/src/execution/in-process-execution-strategy.d.ts +129 -0
  188. package/dist/src/execution/in-process-execution-strategy.d.ts.map +1 -0
  189. package/dist/src/execution/in-process-execution-strategy.js +141 -0
  190. package/dist/src/execution/in-process-execution-strategy.js.map +1 -0
  191. package/dist/src/execution/index.d.ts +14 -0
  192. package/dist/src/execution/index.d.ts.map +1 -0
  193. package/dist/src/execution/index.js +32 -0
  194. package/dist/src/execution/index.js.map +1 -0
  195. package/dist/src/execution/job-executor.d.ts +145 -0
  196. package/dist/src/execution/job-executor.d.ts.map +1 -0
  197. package/dist/src/execution/job-executor.js +475 -0
  198. package/dist/src/execution/job-executor.js.map +1 -0
  199. package/dist/src/execution/job-explorer.d.ts +15 -0
  200. package/dist/src/execution/job-explorer.d.ts.map +1 -0
  201. package/dist/src/execution/job-explorer.js +84 -0
  202. package/dist/src/execution/job-explorer.js.map +1 -0
  203. package/dist/src/execution/job-key.d.ts +3 -0
  204. package/dist/src/execution/job-key.d.ts.map +1 -0
  205. package/dist/src/execution/job-key.js +43 -0
  206. package/dist/src/execution/job-key.js.map +1 -0
  207. package/dist/src/execution/job-launcher.d.ts +75 -0
  208. package/dist/src/execution/job-launcher.d.ts.map +1 -0
  209. package/dist/src/execution/job-launcher.js +112 -0
  210. package/dist/src/execution/job-launcher.js.map +1 -0
  211. package/dist/src/execution/job-operator.d.ts +22 -0
  212. package/dist/src/execution/job-operator.d.ts.map +1 -0
  213. package/dist/src/execution/job-operator.js +125 -0
  214. package/dist/src/execution/job-operator.js.map +1 -0
  215. package/dist/src/execution/listener-invoker.d.ts +164 -0
  216. package/dist/src/execution/listener-invoker.d.ts.map +1 -0
  217. package/dist/src/execution/listener-invoker.js +246 -0
  218. package/dist/src/execution/listener-invoker.js.map +1 -0
  219. package/dist/src/execution/ref-resolver.d.ts +40 -0
  220. package/dist/src/execution/ref-resolver.d.ts.map +1 -0
  221. package/dist/src/execution/ref-resolver.js +41 -0
  222. package/dist/src/execution/ref-resolver.js.map +1 -0
  223. package/dist/src/execution/tasklet-step-executor.d.ts +79 -0
  224. package/dist/src/execution/tasklet-step-executor.d.ts.map +1 -0
  225. package/dist/src/execution/tasklet-step-executor.js +138 -0
  226. package/dist/src/execution/tasklet-step-executor.js.map +1 -0
  227. package/dist/src/explorer/batch-explorer.d.ts +138 -0
  228. package/dist/src/explorer/batch-explorer.d.ts.map +1 -0
  229. package/dist/src/explorer/batch-explorer.js +167 -0
  230. package/dist/src/explorer/batch-explorer.js.map +1 -0
  231. package/dist/src/explorer/index.d.ts +2 -0
  232. package/dist/src/explorer/index.d.ts.map +1 -0
  233. package/dist/src/explorer/index.js +20 -0
  234. package/dist/src/explorer/index.js.map +1 -0
  235. package/dist/src/flow/flow-evaluator.d.ts +30 -0
  236. package/dist/src/flow/flow-evaluator.d.ts.map +1 -0
  237. package/dist/src/flow/flow-evaluator.js +80 -0
  238. package/dist/src/flow/flow-evaluator.js.map +1 -0
  239. package/dist/src/flow/index.d.ts +2 -0
  240. package/dist/src/flow/index.d.ts.map +1 -0
  241. package/dist/src/flow/index.js +20 -0
  242. package/dist/src/flow/index.js.map +1 -0
  243. package/dist/src/index.d.ts +18 -0
  244. package/dist/src/index.d.ts.map +1 -0
  245. package/dist/src/index.js +90 -0
  246. package/dist/src/index.js.map +1 -0
  247. package/dist/src/io/checkpoint.d.ts +7 -0
  248. package/dist/src/io/checkpoint.d.ts.map +1 -0
  249. package/dist/src/io/checkpoint.js +56 -0
  250. package/dist/src/io/checkpoint.js.map +1 -0
  251. package/dist/src/io/database.d.ts +50 -0
  252. package/dist/src/io/database.d.ts.map +1 -0
  253. package/dist/src/io/database.js +108 -0
  254. package/dist/src/io/database.js.map +1 -0
  255. package/dist/src/io/file-readers.d.ts +54 -0
  256. package/dist/src/io/file-readers.d.ts.map +1 -0
  257. package/dist/src/io/file-readers.js +167 -0
  258. package/dist/src/io/file-readers.js.map +1 -0
  259. package/dist/src/io/file-writers.d.ts +31 -0
  260. package/dist/src/io/file-writers.d.ts.map +1 -0
  261. package/dist/src/io/file-writers.js +80 -0
  262. package/dist/src/io/file-writers.js.map +1 -0
  263. package/dist/src/io/index.d.ts +6 -0
  264. package/dist/src/io/index.d.ts.map +1 -0
  265. package/dist/src/io/index.js +24 -0
  266. package/dist/src/io/index.js.map +1 -0
  267. package/dist/src/io/s3.d.ts +50 -0
  268. package/dist/src/io/s3.d.ts.map +1 -0
  269. package/dist/src/io/s3.js +96 -0
  270. package/dist/src/io/s3.js.map +1 -0
  271. package/dist/src/listeners/builtin-listeners.d.ts +77 -0
  272. package/dist/src/listeners/builtin-listeners.d.ts.map +1 -0
  273. package/dist/src/listeners/builtin-listeners.js +108 -0
  274. package/dist/src/listeners/builtin-listeners.js.map +1 -0
  275. package/dist/src/listeners/index.d.ts +8 -0
  276. package/dist/src/listeners/index.d.ts.map +1 -0
  277. package/dist/src/listeners/index.js +25 -0
  278. package/dist/src/listeners/index.js.map +1 -0
  279. package/dist/src/module/adapter-options.d.ts +39 -0
  280. package/dist/src/module/adapter-options.d.ts.map +1 -0
  281. package/dist/src/module/adapter-options.js +34 -0
  282. package/dist/src/module/adapter-options.js.map +1 -0
  283. package/dist/src/module/adapter.d.ts +157 -0
  284. package/dist/src/module/adapter.d.ts.map +1 -0
  285. package/dist/src/module/adapter.js +80 -0
  286. package/dist/src/module/adapter.js.map +1 -0
  287. package/dist/src/module/batch-schedule-registry.d.ts +110 -0
  288. package/dist/src/module/batch-schedule-registry.d.ts.map +1 -0
  289. package/dist/src/module/batch-schedule-registry.js +0 -0
  290. package/dist/src/module/batch-schedule-registry.js.map +1 -0
  291. package/dist/src/module/index.d.ts +14 -0
  292. package/dist/src/module/index.d.ts.map +1 -0
  293. package/dist/src/module/index.js +31 -0
  294. package/dist/src/module/index.js.map +1 -0
  295. package/dist/src/module/nest-batch.module.d.ts +236 -0
  296. package/dist/src/module/nest-batch.module.d.ts.map +1 -0
  297. package/dist/src/module/nest-batch.module.js +475 -0
  298. package/dist/src/module/nest-batch.module.js.map +1 -0
  299. package/dist/src/module/tokens.d.ts +83 -0
  300. package/dist/src/module/tokens.d.ts.map +1 -0
  301. package/dist/src/module/tokens.js +58 -0
  302. package/dist/src/module/tokens.js.map +1 -0
  303. package/dist/src/observability/event-types.d.ts +55 -0
  304. package/dist/src/observability/event-types.d.ts.map +1 -0
  305. package/dist/src/observability/event-types.js +36 -0
  306. package/dist/src/observability/event-types.js.map +1 -0
  307. package/dist/src/observability/exporters.d.ts +35 -0
  308. package/dist/src/observability/exporters.d.ts.map +1 -0
  309. package/dist/src/observability/exporters.js +93 -0
  310. package/dist/src/observability/exporters.js.map +1 -0
  311. package/dist/src/observability/index.d.ts +3 -0
  312. package/dist/src/observability/index.d.ts.map +1 -0
  313. package/dist/src/observability/index.js +21 -0
  314. package/dist/src/observability/index.js.map +1 -0
  315. package/dist/src/partition-helpers.d.ts +127 -0
  316. package/dist/src/partition-helpers.d.ts.map +1 -0
  317. package/dist/src/partition-helpers.js +136 -0
  318. package/dist/src/partition-helpers.js.map +1 -0
  319. package/dist/src/policies/backoff.d.ts +3 -0
  320. package/dist/src/policies/backoff.d.ts.map +1 -0
  321. package/dist/src/policies/backoff.js +34 -0
  322. package/dist/src/policies/backoff.js.map +1 -0
  323. package/dist/src/policies/index.d.ts +4 -0
  324. package/dist/src/policies/index.d.ts.map +1 -0
  325. package/dist/src/policies/index.js +22 -0
  326. package/dist/src/policies/index.js.map +1 -0
  327. package/dist/src/policies/retry-policy.d.ts +13 -0
  328. package/dist/src/policies/retry-policy.d.ts.map +1 -0
  329. package/dist/src/policies/retry-policy.js +55 -0
  330. package/dist/src/policies/retry-policy.js.map +1 -0
  331. package/dist/src/policies/skip-policy.d.ts +12 -0
  332. package/dist/src/policies/skip-policy.d.ts.map +1 -0
  333. package/dist/src/policies/skip-policy.js +44 -0
  334. package/dist/src/policies/skip-policy.js.map +1 -0
  335. package/dist/src/registry/index.d.ts +2 -0
  336. package/dist/src/registry/index.d.ts.map +1 -0
  337. package/dist/src/registry/index.js +20 -0
  338. package/dist/src/registry/index.js.map +1 -0
  339. package/dist/src/registry/job-registry.d.ts +16 -0
  340. package/dist/src/registry/job-registry.d.ts.map +1 -0
  341. package/dist/src/registry/job-registry.js +50 -0
  342. package/dist/src/registry/job-registry.js.map +1 -0
  343. package/dist/src/repository/id-generator.d.ts +18 -0
  344. package/dist/src/repository/id-generator.d.ts.map +1 -0
  345. package/dist/src/repository/id-generator.js +37 -0
  346. package/dist/src/repository/id-generator.js.map +1 -0
  347. package/dist/src/repository/in-memory/in-memory-job-repository.d.ts +49 -0
  348. package/dist/src/repository/in-memory/in-memory-job-repository.d.ts.map +1 -0
  349. package/dist/src/repository/in-memory/in-memory-job-repository.js +291 -0
  350. package/dist/src/repository/in-memory/in-memory-job-repository.js.map +1 -0
  351. package/dist/src/repository/in-memory/index.d.ts +2 -0
  352. package/dist/src/repository/in-memory/index.d.ts.map +1 -0
  353. package/dist/src/repository/in-memory/index.js +20 -0
  354. package/dist/src/repository/in-memory/index.js.map +1 -0
  355. package/dist/src/repository/index.d.ts +4 -0
  356. package/dist/src/repository/index.d.ts.map +1 -0
  357. package/dist/src/repository/index.js +22 -0
  358. package/dist/src/repository/index.js.map +1 -0
  359. package/dist/src/repository/uuid-v7.d.ts +20 -0
  360. package/dist/src/repository/uuid-v7.d.ts.map +1 -0
  361. package/dist/src/repository/uuid-v7.js +31 -0
  362. package/dist/src/repository/uuid-v7.js.map +1 -0
  363. package/dist/src/scheduling/batch-scheduled.d.ts +87 -0
  364. package/dist/src/scheduling/batch-scheduled.d.ts.map +1 -0
  365. package/dist/src/scheduling/batch-scheduled.js +170 -0
  366. package/dist/src/scheduling/batch-scheduled.js.map +1 -0
  367. package/dist/src/transaction/in-memory-transaction-manager.d.ts +16 -0
  368. package/dist/src/transaction/in-memory-transaction-manager.d.ts.map +1 -0
  369. package/dist/src/transaction/in-memory-transaction-manager.js +33 -0
  370. package/dist/src/transaction/in-memory-transaction-manager.js.map +1 -0
  371. package/dist/src/transaction/index.d.ts +2 -0
  372. package/dist/src/transaction/index.d.ts.map +1 -0
  373. package/dist/src/transaction/index.js +20 -0
  374. package/dist/src/transaction/index.js.map +1 -0
  375. package/dist/tests/contracts/index.d.ts +26 -0
  376. package/dist/tests/contracts/index.d.ts.map +1 -0
  377. package/dist/tests/contracts/index.js +37 -0
  378. package/dist/tests/contracts/index.js.map +1 -0
  379. package/dist/tests/contracts/job-repository.contract.d.ts +46 -0
  380. package/dist/tests/contracts/job-repository.contract.d.ts.map +1 -0
  381. package/dist/tests/contracts/job-repository.contract.js +644 -0
  382. package/dist/tests/contracts/job-repository.contract.js.map +1 -0
  383. package/package.json +80 -0
  384. package/src/adapters/in-process.adapter.ts +182 -0
  385. package/src/adapters/index.ts +17 -0
  386. package/src/builder/batch-builder.ts +32 -0
  387. package/src/builder/flow-builder.ts +141 -0
  388. package/src/builder/index.ts +4 -0
  389. package/src/builder/job-builder.ts +206 -0
  390. package/src/builder/step-builder.ts +190 -0
  391. package/src/compiler/builder-types.ts +27 -0
  392. package/src/compiler/definition-compiler.ts +325 -0
  393. package/src/compiler/index.ts +2 -0
  394. package/src/core/errors.ts +125 -0
  395. package/src/core/execution-context/index.ts +3 -0
  396. package/src/core/execution-context/json-value.ts +3 -0
  397. package/src/core/execution-context/serializer.ts +21 -0
  398. package/src/core/execution-context/validator.ts +103 -0
  399. package/src/core/index.ts +7 -0
  400. package/src/core/ir/decider-definition.ts +25 -0
  401. package/src/core/ir/index.ts +7 -0
  402. package/src/core/ir/job-definition.ts +15 -0
  403. package/src/core/ir/listener-definition.ts +19 -0
  404. package/src/core/ir/policy-config.ts +19 -0
  405. package/src/core/ir/refs.ts +42 -0
  406. package/src/core/ir/step-definition.ts +62 -0
  407. package/src/core/ir/transition-definition.ts +9 -0
  408. package/src/core/item/index.ts +1 -0
  409. package/src/core/item/interfaces.ts +70 -0
  410. package/src/core/repository/index.ts +2 -0
  411. package/src/core/repository/job-repository.ts +100 -0
  412. package/src/core/repository/types.ts +91 -0
  413. package/src/core/status.ts +31 -0
  414. package/src/core/transaction/index.ts +1 -0
  415. package/src/core/transaction/transaction-manager.ts +8 -0
  416. package/src/core/validation/definition-validator.ts +215 -0
  417. package/src/core/validation/index.ts +1 -0
  418. package/src/decorators/constants.ts +9 -0
  419. package/src/decorators/flow.decorator.ts +31 -0
  420. package/src/decorators/index.ts +7 -0
  421. package/src/decorators/item.decorators.ts +51 -0
  422. package/src/decorators/job.decorator.ts +16 -0
  423. package/src/decorators/listener.decorators.ts +142 -0
  424. package/src/decorators/step.decorator.ts +33 -0
  425. package/src/decorators/tasklet.decorator.ts +14 -0
  426. package/src/execution/batch-worker-runner.ts +142 -0
  427. package/src/execution/chunk-step-executor.ts +594 -0
  428. package/src/execution/execution-strategy.ts +115 -0
  429. package/src/execution/external-task-execution-strategy.ts +104 -0
  430. package/src/execution/in-process-execution-strategy.ts +207 -0
  431. package/src/execution/index.ts +13 -0
  432. package/src/execution/job-executor.ts +553 -0
  433. package/src/execution/job-explorer.ts +73 -0
  434. package/src/execution/job-key.ts +35 -0
  435. package/src/execution/job-launcher.ts +132 -0
  436. package/src/execution/job-operator.ts +127 -0
  437. package/src/execution/listener-invoker.ts +389 -0
  438. package/src/execution/ref-resolver.ts +64 -0
  439. package/src/execution/tasklet-step-executor.ts +182 -0
  440. package/src/explorer/batch-explorer.ts +251 -0
  441. package/src/explorer/index.ts +1 -0
  442. package/src/flow/flow-evaluator.ts +89 -0
  443. package/src/flow/index.ts +1 -0
  444. package/src/index.ts +24 -0
  445. package/src/io/checkpoint.ts +47 -0
  446. package/src/io/database.ts +114 -0
  447. package/src/io/file-readers.ts +191 -0
  448. package/src/io/file-writers.ts +99 -0
  449. package/src/io/index.ts +5 -0
  450. package/src/io/s3.ts +117 -0
  451. package/src/listeners/builtin-listeners.ts +151 -0
  452. package/src/listeners/index.ts +7 -0
  453. package/src/module/adapter-options.ts +38 -0
  454. package/src/module/adapter.ts +160 -0
  455. package/src/module/batch-schedule-registry.ts +0 -0
  456. package/src/module/index.ts +13 -0
  457. package/src/module/nest-batch.module.ts +674 -0
  458. package/src/module/tokens.ts +95 -0
  459. package/src/observability/event-types.ts +61 -0
  460. package/src/observability/exporters.ts +96 -0
  461. package/src/observability/index.ts +2 -0
  462. package/src/partition-helpers.ts +204 -0
  463. package/src/policies/backoff.ts +22 -0
  464. package/src/policies/index.ts +3 -0
  465. package/src/policies/retry-policy.ts +57 -0
  466. package/src/policies/skip-policy.ts +51 -0
  467. package/src/registry/index.ts +1 -0
  468. package/src/registry/job-registry.ts +42 -0
  469. package/src/repository/id-generator.ts +25 -0
  470. package/src/repository/in-memory/in-memory-job-repository.ts +334 -0
  471. package/src/repository/in-memory/index.ts +1 -0
  472. package/src/repository/index.ts +3 -0
  473. package/src/repository/uuid-v7.ts +40 -0
  474. package/src/scheduling/batch-scheduled.ts +257 -0
  475. package/src/transaction/in-memory-transaction-manager.ts +23 -0
  476. package/src/transaction/index.ts +1 -0
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get BatchWorkerRunner () {
13
+ return BatchWorkerRunner;
14
+ },
15
+ get parseBatchWorkerArgs () {
16
+ return parseBatchWorkerArgs;
17
+ }
18
+ });
19
+ const _nodecrypto = require("node:crypto");
20
+ const _common = require("@nestjs/common");
21
+ const _errors = require("../core/errors");
22
+ const _repository = require("../core/repository");
23
+ const _status = require("../core/status");
24
+ const _jobregistry = require("../registry/job-registry");
25
+ const _jobexecutor = require("./job-executor");
26
+ const _jobkey = require("./job-key");
27
+ function _ts_decorate(decorators, target, key, desc) {
28
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
29
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
31
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
32
+ }
33
+ function _ts_metadata(k, v) {
34
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
35
+ }
36
+ let BatchWorkerRunner = class BatchWorkerRunner {
37
+ registry;
38
+ repository;
39
+ jobExecutor;
40
+ constructor(registry, repository, jobExecutor){
41
+ this.registry = registry;
42
+ this.repository = repository;
43
+ this.jobExecutor = jobExecutor;
44
+ }
45
+ async run(options) {
46
+ const executionId = options.jobExecutionId ?? options.executionId;
47
+ const params = options.params ?? {};
48
+ let jobId = options.jobId;
49
+ let execution;
50
+ if (executionId !== undefined) {
51
+ const existing = await this.repository.getJobExecution(executionId);
52
+ if (existing === null) {
53
+ throw new _errors.JobExecutionNotFoundError(executionId);
54
+ }
55
+ execution = existing;
56
+ if (jobId === undefined) {
57
+ const instance = await this.repository.getJobInstance(existing.jobInstanceId);
58
+ if (instance === null) {
59
+ throw new _errors.JobInstanceNotFoundError(existing.jobInstanceId);
60
+ }
61
+ jobId = instance.jobName;
62
+ }
63
+ } else {
64
+ if (jobId === undefined) {
65
+ throw new _errors.InvalidJobOperationError('worker-run', 'BatchWorkerRunner requires either jobExecutionId or jobId');
66
+ }
67
+ const jobDef = this.registry.get(jobId);
68
+ const canonical = (0, _jobkey.canonicalJobKey)(params);
69
+ const jobKey = jobDef.allowDuplicateInstances ? `${canonical}::${(0, _nodecrypto.randomUUID)()}` : canonical;
70
+ execution = await this.repository.createExecutionAtomic(jobId, jobKey, params);
71
+ }
72
+ const jobDef = this.registry.get(jobId);
73
+ const jobExecution = await this.jobExecutor.execute(execution, jobDef, {
74
+ ...options.partitionIndex !== undefined ? {
75
+ partitionIndex: options.partitionIndex
76
+ } : {},
77
+ ...options.partitionCount !== undefined ? {
78
+ partitionCount: options.partitionCount
79
+ } : {}
80
+ });
81
+ return {
82
+ jobExecution,
83
+ status: jobExecution.status,
84
+ processExitCode: jobExecution.status === _status.JobStatus.COMPLETED ? 0 : 1
85
+ };
86
+ }
87
+ };
88
+ BatchWorkerRunner = _ts_decorate([
89
+ (0, _common.Injectable)(),
90
+ _ts_metadata("design:type", Function),
91
+ _ts_metadata("design:paramtypes", [
92
+ typeof _jobregistry.JobRegistry === "undefined" ? Object : _jobregistry.JobRegistry,
93
+ typeof _repository.JobRepository === "undefined" ? Object : _repository.JobRepository,
94
+ typeof _jobexecutor.JobExecutor === "undefined" ? Object : _jobexecutor.JobExecutor
95
+ ])
96
+ ], BatchWorkerRunner);
97
+ function parseBatchWorkerArgs(argv) {
98
+ const args = argv[0] === 'batch-worker' ? argv.slice(1) : argv;
99
+ const out = {};
100
+ for(let i = 0; i < args.length; i += 1){
101
+ const arg = args[i];
102
+ if (!arg.startsWith('--')) continue;
103
+ const eq = arg.indexOf('=');
104
+ if (eq >= 0) {
105
+ out[arg.slice(2, eq)] = arg.slice(eq + 1);
106
+ continue;
107
+ }
108
+ const key = arg.slice(2);
109
+ const next = args[i + 1];
110
+ if (next === undefined || next.startsWith('--')) {
111
+ out[key] = 'true';
112
+ continue;
113
+ }
114
+ out[key] = next;
115
+ i += 1;
116
+ }
117
+ let params;
118
+ if (out['params-json'] !== undefined) {
119
+ const parsed = JSON.parse(out['params-json']);
120
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
121
+ throw new _errors.InvalidJobOperationError('worker-args', '--params-json must be a JSON object');
122
+ }
123
+ params = parsed;
124
+ }
125
+ return {
126
+ ...out['execution-id'] !== undefined ? {
127
+ jobExecutionId: out['execution-id']
128
+ } : {},
129
+ ...out['job-execution-id'] !== undefined ? {
130
+ jobExecutionId: out['job-execution-id']
131
+ } : {},
132
+ ...out['job-id'] !== undefined ? {
133
+ jobId: out['job-id']
134
+ } : {},
135
+ ...params !== undefined ? {
136
+ params
137
+ } : {},
138
+ ...out['partition-index'] !== undefined ? {
139
+ partitionIndex: Number(out['partition-index'])
140
+ } : {},
141
+ ...out['partition-count'] !== undefined ? {
142
+ partitionCount: Number(out['partition-count'])
143
+ } : {}
144
+ };
145
+ }
146
+
147
+ //# sourceMappingURL=batch-worker-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/execution/batch-worker-runner.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport { Injectable } from '@nestjs/common';\n\nimport {\n InvalidJobOperationError,\n JobExecutionNotFoundError,\n JobInstanceNotFoundError,\n} from '../core/errors';\nimport type { JobParameters, JobExecution } from '../core/repository';\nimport { JobRepository } from '../core/repository';\nimport { JobStatus } from '../core/status';\nimport { JobRegistry } from '../registry/job-registry';\n\nimport { JobExecutor } from './job-executor';\nimport { canonicalJobKey } from './job-key';\n\nexport interface BatchWorkerRunOptions {\n readonly jobExecutionId?: string;\n readonly executionId?: string;\n readonly jobId?: string;\n readonly params?: JobParameters;\n readonly partitionIndex?: number;\n readonly partitionCount?: number;\n}\n\nexport interface BatchWorkerRunResult {\n readonly jobExecution: JobExecution;\n readonly status: JobStatus;\n readonly processExitCode: number;\n}\n\n@Injectable()\nexport class BatchWorkerRunner {\n constructor(\n private readonly registry: JobRegistry,\n private readonly repository: JobRepository,\n private readonly jobExecutor: JobExecutor,\n ) {}\n\n async run(options: BatchWorkerRunOptions): Promise<BatchWorkerRunResult> {\n const executionId = options.jobExecutionId ?? options.executionId;\n const params = options.params ?? {};\n\n let jobId = options.jobId;\n let execution: JobExecution;\n\n if (executionId !== undefined) {\n const existing = await this.repository.getJobExecution(executionId);\n if (existing === null) {\n throw new JobExecutionNotFoundError(executionId);\n }\n execution = existing;\n if (jobId === undefined) {\n const instance = await this.repository.getJobInstance(existing.jobInstanceId);\n if (instance === null) {\n throw new JobInstanceNotFoundError(existing.jobInstanceId);\n }\n jobId = instance.jobName;\n }\n } else {\n if (jobId === undefined) {\n throw new InvalidJobOperationError(\n 'worker-run',\n 'BatchWorkerRunner requires either jobExecutionId or jobId',\n );\n }\n const jobDef = this.registry.get(jobId);\n const canonical = canonicalJobKey(params);\n const jobKey = jobDef.allowDuplicateInstances\n ? `${canonical}::${randomUUID()}`\n : canonical;\n execution = await this.repository.createExecutionAtomic(jobId, jobKey, params);\n }\n\n const jobDef = this.registry.get(jobId);\n const jobExecution = await this.jobExecutor.execute(execution, jobDef, {\n ...(options.partitionIndex !== undefined\n ? { partitionIndex: options.partitionIndex }\n : {}),\n ...(options.partitionCount !== undefined\n ? { partitionCount: options.partitionCount }\n : {}),\n });\n\n return {\n jobExecution,\n status: jobExecution.status,\n processExitCode: jobExecution.status === JobStatus.COMPLETED ? 0 : 1,\n };\n }\n}\n\nexport function parseBatchWorkerArgs(argv: readonly string[]): BatchWorkerRunOptions {\n const args = argv[0] === 'batch-worker' ? argv.slice(1) : argv;\n const out: Record<string, string> = {};\n\n for (let i = 0; i < args.length; i += 1) {\n const arg = args[i]!;\n if (!arg.startsWith('--')) continue;\n const eq = arg.indexOf('=');\n if (eq >= 0) {\n out[arg.slice(2, eq)] = arg.slice(eq + 1);\n continue;\n }\n const key = arg.slice(2);\n const next = args[i + 1];\n if (next === undefined || next.startsWith('--')) {\n out[key] = 'true';\n continue;\n }\n out[key] = next;\n i += 1;\n }\n\n let params: JobParameters | undefined;\n if (out['params-json'] !== undefined) {\n const parsed = JSON.parse(out['params-json']) as unknown;\n if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {\n throw new InvalidJobOperationError(\n 'worker-args',\n '--params-json must be a JSON object',\n );\n }\n params = parsed as JobParameters;\n }\n\n return {\n ...(out['execution-id'] !== undefined ? { jobExecutionId: out['execution-id'] } : {}),\n ...(out['job-execution-id'] !== undefined\n ? { jobExecutionId: out['job-execution-id'] }\n : {}),\n ...(out['job-id'] !== undefined ? { jobId: out['job-id'] } : {}),\n ...(params !== undefined ? { params } : {}),\n ...(out['partition-index'] !== undefined\n ? { partitionIndex: Number(out['partition-index']) }\n : {}),\n ...(out['partition-count'] !== undefined\n ? { partitionCount: Number(out['partition-count']) }\n : {}),\n };\n}\n"],"names":["BatchWorkerRunner","parseBatchWorkerArgs","registry","repository","jobExecutor","run","options","executionId","jobExecutionId","params","jobId","execution","undefined","existing","getJobExecution","JobExecutionNotFoundError","instance","getJobInstance","jobInstanceId","JobInstanceNotFoundError","jobName","InvalidJobOperationError","jobDef","get","canonical","canonicalJobKey","jobKey","allowDuplicateInstances","randomUUID","createExecutionAtomic","jobExecution","execute","partitionIndex","partitionCount","status","processExitCode","JobStatus","COMPLETED","argv","args","slice","out","i","length","arg","startsWith","eq","indexOf","key","next","parsed","JSON","parse","Array","isArray","Number"],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import type { ChunkStepDefinition } from '../core/ir';
2
+ import type { JobRepository } from '../core/repository';
3
+ import type { TransactionManager } from '../core/transaction';
4
+ import { StepStatus } from '../core/status';
5
+ import type { ResolverMap } from './listener-invoker';
6
+ import { ListenerInvoker } from './listener-invoker';
7
+ import { type ProviderResolvers } from './ref-resolver';
8
+ export interface ChunkExecutionContext {
9
+ jobExecutionId: string;
10
+ /** Step execution id, used to scope the chunk-progress checkpoint in the
11
+ * step's ExecutionContext (saved as `{ lastChunkIndex }`). */
12
+ stepExecutionId: string;
13
+ jobRepository: JobRepository;
14
+ transactionManager: TransactionManager;
15
+ listenerInvoker: ListenerInvoker;
16
+ /** Map of resolved reader/processor/writer functions by name. */
17
+ resolvers: Map<string, (...args: unknown[]) => unknown | Promise<unknown>>;
18
+ jobExecutionId2: string;
19
+ /** Optional skip listener resolver map. Keys follow the `on-skip:<kind>:<name>` shape. */
20
+ skipListenerResolvers?: ResolverMap;
21
+ /**
22
+ * Optional map of provider-token id → already-resolved provider instance.
23
+ * Populated by the JobExecutor (or test fixtures) so that
24
+ * `RefKind.ProviderToken` refs on the reader/processor/writer slots can
25
+ * be looked up without coupling the executor to the Nest DI container.
26
+ */
27
+ providerResolvers?: ProviderResolvers;
28
+ /**
29
+ * When set, the executor skips any chunk whose 0-based index is less
30
+ * than or equal to this value. The reader is still advanced by
31
+ * `chunkSize` calls per skipped chunk (so the data stream position
32
+ * stays correct), but no read/process/write happens and `commitCount`
33
+ * is not incremented. The checkpoint value is loaded from the prior
34
+ * FAILED step execution's ExecutionContext by `JobExecutor`.
35
+ */
36
+ resumeFromChunkIndex?: number;
37
+ /**
38
+ * Partition ordinal for this chunk execution. Set by the transport
39
+ * (BullMQ / Kafka) when the step declares `partitions.count >= 2`;
40
+ * `undefined` means "non-partitioned" (the 0.1.0 path). The executor
41
+ * uses this together with `partitionCount` and the step's
42
+ * `partitions.range` to bound the read loop to the partition's
43
+ * `[from, to)` range — see `packages/core/src/partition-helpers.ts`
44
+ * and `docs/RELEASE-0.2.0.md §6`.
45
+ */
46
+ partitionIndex?: number;
47
+ /**
48
+ * Mirror of the step's `partitions.count`. Carried on the context
49
+ * (rather than read from the step) so the executor does not have to
50
+ * reason about which step is being executed when it consults the
51
+ * partition range.
52
+ */
53
+ partitionCount?: number;
54
+ }
55
+ export interface ChunkExecutionResult {
56
+ status: StepStatus;
57
+ exitCode: string;
58
+ exitMessage: string;
59
+ readCount: number;
60
+ writeCount: number;
61
+ skipCount: number;
62
+ commitCount: number;
63
+ }
64
+ export declare class ChunkStepExecutor {
65
+ execute(step: ChunkStepDefinition, context: ChunkExecutionContext): Promise<ChunkExecutionResult>;
66
+ private updateStreams;
67
+ private closeStreams;
68
+ /**
69
+ * Run a single per-phase operation (one read, one process, or one write) with
70
+ * skip/retry policy consultation. Throws when the operation cannot be
71
+ * skipped (either non-skippable error or skip-limit exceeded) or when
72
+ * retries are exhausted.
73
+ *
74
+ * The contract on budget accounting:
75
+ * - The caller's `skipCount` accumulator is consulted *before* a skip is
76
+ * honored. If the post-skip count would exceed the limit, the error
77
+ * becomes a `SkipLimitExceededError` instead of a skip.
78
+ * - The caller's `onSkip` callback is responsible for incrementing the
79
+ * skipCount; it runs only when a skip is actually honored.
80
+ */
81
+ private runPhase;
82
+ private resolveReader;
83
+ private resolveProcessor;
84
+ private resolveWriter;
85
+ }
86
+ //# sourceMappingURL=chunk-step-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-step-executor.d.ts","sourceRoot":"","sources":["../../../src/execution/chunk-step-executor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAsC,MAAM,YAAY,CAAC;AAG1F,OAAO,KAAK,EAAoB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAO5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB;mEAC+D;IAC/D,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,eAAe,EAAE,eAAe,CAAC;IACjC,iEAAiE;IACjE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,eAAe,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAwDD,qBACa,iBAAiB;IACtB,OAAO,CACX,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC;YAoRlB,aAAa;YAcb,YAAY;IAM1B;;;;;;;;;;;;OAYG;YACW,QAAQ;IAkFtB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;CAsBtB"}