@adonis-agora/durable 1.0.0-rc.2 → 1.0.0-rc.20

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 (398) hide show
  1. package/CHANGELOG.md +198 -0
  2. package/dist/assets/spa/assets/index-BgoNV3TR.css +1 -0
  3. package/dist/assets/spa/assets/index-DzXygyDm.js +57 -0
  4. package/dist/assets/spa/assets/index-DzXygyDm.js.map +1 -0
  5. package/dist/assets/spa/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  6. package/dist/assets/spa/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  7. package/dist/assets/spa/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  8. package/dist/assets/spa/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  9. package/dist/assets/spa/assets/jetbrains-mono-latin-600-normal-BfsvjouI.woff +0 -0
  10. package/dist/assets/spa/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  11. package/dist/assets/spa/assets/sora-latin-400-normal-CRt88UEn.woff2 +0 -0
  12. package/dist/assets/spa/assets/sora-latin-400-normal-OW7qkl5a.woff +0 -0
  13. package/dist/assets/spa/assets/sora-latin-500-normal-01eiPEn0.woff2 +0 -0
  14. package/dist/assets/spa/assets/sora-latin-500-normal-w58xtEt9.woff +0 -0
  15. package/dist/assets/spa/assets/sora-latin-600-normal-1_7fyUAY.woff +0 -0
  16. package/dist/assets/spa/assets/sora-latin-600-normal-Cdg4DaK0.woff2 +0 -0
  17. package/dist/assets/spa/assets/sora-latin-700-normal-9waGdLWo.woff2 +0 -0
  18. package/dist/assets/spa/assets/sora-latin-700-normal-BKPfQAnC.woff +0 -0
  19. package/dist/assets/spa/index.html +2 -8
  20. package/dist/commands/agora_doctor.d.ts +23 -0
  21. package/dist/commands/agora_doctor.d.ts.map +1 -0
  22. package/dist/commands/agora_doctor.js +110 -0
  23. package/dist/commands/agora_doctor.js.map +1 -0
  24. package/dist/commands/durable_doctor.d.ts +8 -0
  25. package/dist/commands/durable_doctor.d.ts.map +1 -0
  26. package/dist/commands/durable_doctor.js +8 -0
  27. package/dist/commands/durable_doctor.js.map +1 -0
  28. package/dist/commands/durable_worker.d.ts +3 -3
  29. package/dist/commands/durable_worker.js +7 -7
  30. package/dist/commands/durable_worker.js.map +1 -1
  31. package/dist/commands/health.d.ts +12 -0
  32. package/dist/commands/health.d.ts.map +1 -0
  33. package/dist/commands/health.js +34 -0
  34. package/dist/commands/health.js.map +1 -0
  35. package/dist/commands/lifecycle_republish.d.ts +8 -9
  36. package/dist/commands/lifecycle_republish.d.ts.map +1 -1
  37. package/dist/commands/lifecycle_republish.js +29 -16
  38. package/dist/commands/lifecycle_republish.js.map +1 -1
  39. package/dist/commands/main.d.ts +25 -5
  40. package/dist/commands/main.d.ts.map +1 -1
  41. package/dist/commands/main.js +54 -7
  42. package/dist/commands/main.js.map +1 -1
  43. package/dist/commands/runs.d.ts +9 -16
  44. package/dist/commands/runs.d.ts.map +1 -1
  45. package/dist/commands/runs.js +60 -47
  46. package/dist/commands/runs.js.map +1 -1
  47. package/dist/commands/runs_bulk.d.ts +17 -0
  48. package/dist/commands/runs_bulk.d.ts.map +1 -0
  49. package/dist/commands/runs_bulk.js +74 -0
  50. package/dist/commands/runs_bulk.js.map +1 -0
  51. package/dist/commands/runs_cancel.d.ts +15 -0
  52. package/dist/commands/runs_cancel.d.ts.map +1 -0
  53. package/dist/commands/runs_cancel.js +39 -0
  54. package/dist/commands/runs_cancel.js.map +1 -0
  55. package/dist/commands/runs_continue.d.ts +12 -0
  56. package/dist/commands/runs_continue.d.ts.map +1 -0
  57. package/dist/commands/runs_continue.js +28 -0
  58. package/dist/commands/runs_continue.js.map +1 -0
  59. package/dist/commands/runs_event.d.ts +13 -0
  60. package/dist/commands/runs_event.d.ts.map +1 -0
  61. package/dist/commands/runs_event.js +28 -0
  62. package/dist/commands/runs_event.js.map +1 -0
  63. package/dist/commands/runs_fan.d.ts +16 -0
  64. package/dist/commands/runs_fan.d.ts.map +1 -0
  65. package/dist/commands/runs_fan.js +58 -0
  66. package/dist/commands/runs_fan.js.map +1 -0
  67. package/dist/commands/runs_redispatch.d.ts +14 -0
  68. package/dist/commands/runs_redispatch.d.ts.map +1 -0
  69. package/dist/commands/runs_redispatch.js +35 -0
  70. package/dist/commands/runs_redispatch.js.map +1 -0
  71. package/dist/commands/runs_replay.d.ts +14 -0
  72. package/dist/commands/runs_replay.d.ts.map +1 -0
  73. package/dist/commands/runs_replay.js +38 -0
  74. package/dist/commands/runs_replay.js.map +1 -0
  75. package/dist/commands/runs_retry.d.ts +13 -0
  76. package/dist/commands/runs_retry.d.ts.map +1 -0
  77. package/dist/commands/runs_retry.js +29 -0
  78. package/dist/commands/runs_retry.js.map +1 -0
  79. package/dist/commands/runs_show.d.ts +14 -0
  80. package/dist/commands/runs_show.d.ts.map +1 -0
  81. package/dist/commands/runs_show.js +96 -0
  82. package/dist/commands/runs_show.js.map +1 -0
  83. package/dist/commands/runs_signal.d.ts +17 -0
  84. package/dist/commands/runs_signal.d.ts.map +1 -0
  85. package/dist/commands/runs_signal.js +49 -0
  86. package/dist/commands/runs_signal.js.map +1 -0
  87. package/dist/commands/runs_update.d.ts +15 -0
  88. package/dist/commands/runs_update.d.ts.map +1 -0
  89. package/dist/commands/runs_update.js +39 -0
  90. package/dist/commands/runs_update.js.map +1 -0
  91. package/dist/commands/runs_values.d.ts +15 -0
  92. package/dist/commands/runs_values.d.ts.map +1 -0
  93. package/dist/commands/runs_values.js +45 -0
  94. package/dist/commands/runs_values.js.map +1 -0
  95. package/dist/commands/schedules.d.ts +18 -0
  96. package/dist/commands/schedules.d.ts.map +1 -0
  97. package/dist/commands/schedules.js +70 -0
  98. package/dist/commands/schedules.js.map +1 -0
  99. package/dist/commands/schedules_pause.d.ts +16 -0
  100. package/dist/commands/schedules_pause.d.ts.map +1 -0
  101. package/dist/commands/schedules_pause.js +40 -0
  102. package/dist/commands/schedules_pause.js.map +1 -0
  103. package/dist/commands/schedules_resume.d.ts +8 -0
  104. package/dist/commands/schedules_resume.d.ts.map +1 -0
  105. package/dist/commands/schedules_resume.js +8 -0
  106. package/dist/commands/schedules_resume.js.map +1 -0
  107. package/dist/commands/schedules_trigger.d.ts +13 -0
  108. package/dist/commands/schedules_trigger.d.ts.map +1 -0
  109. package/dist/commands/schedules_trigger.js +32 -0
  110. package/dist/commands/schedules_trigger.js.map +1 -0
  111. package/dist/commands/tasks_complete.d.ts +15 -0
  112. package/dist/commands/tasks_complete.d.ts.map +1 -0
  113. package/dist/commands/tasks_complete.js +41 -0
  114. package/dist/commands/tasks_complete.js.map +1 -0
  115. package/dist/commands/tasks_fail.d.ts +16 -0
  116. package/dist/commands/tasks_fail.d.ts.map +1 -0
  117. package/dist/commands/tasks_fail.js +47 -0
  118. package/dist/commands/tasks_fail.js.map +1 -0
  119. package/dist/commands/workers.d.ts +11 -0
  120. package/dist/commands/workers.d.ts.map +1 -0
  121. package/dist/commands/workers.js +35 -0
  122. package/dist/commands/workers.js.map +1 -0
  123. package/dist/commands/workflows_lifecycle.d.ts +12 -0
  124. package/dist/commands/workflows_lifecycle.d.ts.map +1 -0
  125. package/dist/commands/workflows_lifecycle.js +37 -0
  126. package/dist/commands/workflows_lifecycle.js.map +1 -0
  127. package/dist/configure.d.ts +1 -1
  128. package/dist/configure.js +1 -1
  129. package/dist/providers/dashboard_provider.d.ts +57 -54
  130. package/dist/providers/dashboard_provider.d.ts.map +1 -1
  131. package/dist/providers/dashboard_provider.js +399 -288
  132. package/dist/providers/dashboard_provider.js.map +1 -1
  133. package/dist/providers/durable_provider.d.ts.map +1 -1
  134. package/dist/providers/durable_provider.js +67 -37
  135. package/dist/providers/durable_provider.js.map +1 -1
  136. package/dist/src/commands/console_command.d.ts +82 -0
  137. package/dist/src/commands/console_command.d.ts.map +1 -0
  138. package/dist/src/commands/console_command.js +238 -0
  139. package/dist/src/commands/console_command.js.map +1 -0
  140. package/dist/src/commands/runs.js +2 -2
  141. package/dist/src/commands/runs.js.map +1 -1
  142. package/dist/src/concurrency.d.ts.map +1 -1
  143. package/dist/src/concurrency.js +1 -0
  144. package/dist/src/concurrency.js.map +1 -1
  145. package/dist/src/config_types.d.ts +79 -26
  146. package/dist/src/config_types.d.ts.map +1 -1
  147. package/dist/src/dashboard/access_denied_page.d.ts +5 -7
  148. package/dist/src/dashboard/access_denied_page.d.ts.map +1 -1
  149. package/dist/src/dashboard/access_denied_page.js +2 -6
  150. package/dist/src/dashboard/access_denied_page.js.map +1 -1
  151. package/dist/src/dashboard/audit.d.ts +14 -0
  152. package/dist/src/dashboard/audit.d.ts.map +1 -0
  153. package/dist/src/dashboard/audit.js +36 -0
  154. package/dist/src/dashboard/audit.js.map +1 -0
  155. package/dist/src/dashboard/console_authorize.d.ts +98 -0
  156. package/dist/src/dashboard/console_authorize.d.ts.map +1 -0
  157. package/dist/src/dashboard/console_authorize.js +163 -0
  158. package/dist/src/dashboard/console_authorize.js.map +1 -0
  159. package/dist/src/dashboard/console_shell.d.ts +45 -0
  160. package/dist/src/dashboard/console_shell.d.ts.map +1 -0
  161. package/dist/src/dashboard/console_shell.js +125 -0
  162. package/dist/src/dashboard/console_shell.js.map +1 -0
  163. package/dist/src/dashboard/console_switcher.d.ts +132 -0
  164. package/dist/src/dashboard/console_switcher.d.ts.map +1 -0
  165. package/dist/src/dashboard/console_switcher.js +201 -0
  166. package/dist/src/dashboard/console_switcher.js.map +1 -0
  167. package/dist/src/dashboard/define_config.d.ts +68 -81
  168. package/dist/src/dashboard/define_config.d.ts.map +1 -1
  169. package/dist/src/dashboard/define_config.js +18 -112
  170. package/dist/src/dashboard/define_config.js.map +1 -1
  171. package/dist/src/dashboard/dev_tools.d.ts +102 -0
  172. package/dist/src/dashboard/dev_tools.d.ts.map +1 -0
  173. package/dist/src/dashboard/dev_tools.js +502 -0
  174. package/dist/src/dashboard/dev_tools.js.map +1 -0
  175. package/dist/src/dashboard/diagnostics-recorder.d.ts +1 -1
  176. package/dist/src/dashboard/diagnostics-recorder.js +1 -1
  177. package/dist/src/dashboard/gateway-adapter.d.ts +6 -6
  178. package/dist/src/dashboard/gateway-adapter.d.ts.map +1 -1
  179. package/dist/src/dashboard/gateway-adapter.js +5 -5
  180. package/dist/src/dashboard/gateway-adapter.js.map +1 -1
  181. package/dist/src/dashboard/handlers.d.ts +48 -39
  182. package/dist/src/dashboard/handlers.d.ts.map +1 -1
  183. package/dist/src/dashboard/handlers.js +181 -83
  184. package/dist/src/dashboard/handlers.js.map +1 -1
  185. package/dist/src/dashboard/index.d.ts +12 -9
  186. package/dist/src/dashboard/index.d.ts.map +1 -1
  187. package/dist/src/dashboard/index.js +10 -7
  188. package/dist/src/dashboard/index.js.map +1 -1
  189. package/dist/src/dashboard/list-filters.d.ts +27 -0
  190. package/dist/src/dashboard/list-filters.d.ts.map +1 -0
  191. package/dist/src/dashboard/list-filters.js +69 -0
  192. package/dist/src/dashboard/list-filters.js.map +1 -0
  193. package/dist/src/dashboard/openapi.d.ts.map +1 -1
  194. package/dist/src/dashboard/openapi.js +127 -52
  195. package/dist/src/dashboard/openapi.js.map +1 -1
  196. package/dist/src/dashboard/run-filter.d.ts +18 -15
  197. package/dist/src/dashboard/run-filter.d.ts.map +1 -1
  198. package/dist/src/dashboard/run-filter.js +30 -22
  199. package/dist/src/dashboard/run-filter.js.map +1 -1
  200. package/dist/src/dashboard/spa.d.ts +26 -1
  201. package/dist/src/dashboard/spa.d.ts.map +1 -1
  202. package/dist/src/dashboard/spa.js +9 -2
  203. package/dist/src/dashboard/spa.js.map +1 -1
  204. package/dist/src/dashboard/tenant_scope.d.ts +38 -0
  205. package/dist/src/dashboard/tenant_scope.d.ts.map +1 -0
  206. package/dist/src/dashboard/tenant_scope.js +166 -0
  207. package/dist/src/dashboard/tenant_scope.js.map +1 -0
  208. package/dist/src/define_config.d.ts +27 -12
  209. package/dist/src/define_config.d.ts.map +1 -1
  210. package/dist/src/define_config.js +9 -4
  211. package/dist/src/define_config.js.map +1 -1
  212. package/dist/src/diagnostics/index.d.ts +11 -0
  213. package/dist/src/diagnostics/index.d.ts.map +1 -0
  214. package/dist/src/diagnostics/index.js +6 -0
  215. package/dist/src/diagnostics/index.js.map +1 -0
  216. package/dist/src/diagnostics/transport.d.ts +71 -0
  217. package/dist/src/diagnostics/transport.d.ts.map +1 -0
  218. package/dist/src/diagnostics/transport.js +188 -0
  219. package/dist/src/diagnostics/transport.js.map +1 -0
  220. package/dist/src/diagnostics-bridge.d.ts +2 -1
  221. package/dist/src/diagnostics-bridge.d.ts.map +1 -1
  222. package/dist/src/diagnostics-bridge.js +7 -1
  223. package/dist/src/diagnostics-bridge.js.map +1 -1
  224. package/dist/src/doctor/agora_doctor.d.ts +116 -0
  225. package/dist/src/doctor/agora_doctor.d.ts.map +1 -0
  226. package/dist/src/doctor/agora_doctor.js +685 -0
  227. package/dist/src/doctor/agora_doctor.js.map +1 -0
  228. package/dist/src/doctor/checks.d.ts +28 -0
  229. package/dist/src/doctor/checks.d.ts.map +1 -0
  230. package/dist/src/doctor/checks.js +288 -0
  231. package/dist/src/doctor/checks.js.map +1 -0
  232. package/dist/src/doctor/index.d.ts +9 -0
  233. package/dist/src/doctor/index.d.ts.map +1 -0
  234. package/dist/src/doctor/index.js +16 -0
  235. package/dist/src/doctor/index.js.map +1 -0
  236. package/dist/src/engine.d.ts +55 -9
  237. package/dist/src/engine.d.ts.map +1 -1
  238. package/dist/src/engine.js +333 -84
  239. package/dist/src/engine.js.map +1 -1
  240. package/dist/src/errors.d.ts +9 -0
  241. package/dist/src/errors.d.ts.map +1 -1
  242. package/dist/src/errors.js +13 -0
  243. package/dist/src/errors.js.map +1 -1
  244. package/dist/src/event-trigger-bridge.d.ts +5 -14
  245. package/dist/src/event-trigger-bridge.d.ts.map +1 -1
  246. package/dist/src/event-trigger-bridge.js +11 -99
  247. package/dist/src/event-trigger-bridge.js.map +1 -1
  248. package/dist/src/index.d.ts +8 -5
  249. package/dist/src/index.d.ts.map +1 -1
  250. package/dist/src/index.js +6 -4
  251. package/dist/src/index.js.map +1 -1
  252. package/dist/src/interfaces.d.ts +53 -9
  253. package/dist/src/interfaces.d.ts.map +1 -1
  254. package/dist/src/interfaces.js +8 -0
  255. package/dist/src/interfaces.js.map +1 -1
  256. package/dist/src/origin.js +3 -3
  257. package/dist/src/role_bindings.d.ts +8 -8
  258. package/dist/src/role_bindings.js +8 -8
  259. package/dist/src/run-gateway/interface.d.ts +4 -3
  260. package/dist/src/run-gateway/interface.d.ts.map +1 -1
  261. package/dist/src/run-gateway/proxy-run-gateway.d.ts +4 -2
  262. package/dist/src/run-gateway/proxy-run-gateway.d.ts.map +1 -1
  263. package/dist/src/run-gateway/proxy-run-gateway.js +21 -6
  264. package/dist/src/run-gateway/proxy-run-gateway.js.map +1 -1
  265. package/dist/src/run-gateway/run-request-responder.d.ts +6 -1
  266. package/dist/src/run-gateway/run-request-responder.d.ts.map +1 -1
  267. package/dist/src/run-gateway/run-request-responder.js +30 -3
  268. package/dist/src/run-gateway/run-request-responder.js.map +1 -1
  269. package/dist/src/run-gateway/store-run-gateway.d.ts +4 -4
  270. package/dist/src/run-gateway/store-run-gateway.d.ts.map +1 -1
  271. package/dist/src/run-gateway/store-run-gateway.js +4 -4
  272. package/dist/src/run-gateway/store-run-gateway.js.map +1 -1
  273. package/dist/src/run-gateway/tenant-auth.d.ts +19 -1
  274. package/dist/src/run-gateway/tenant-auth.d.ts.map +1 -1
  275. package/dist/src/run-gateway/tenant-auth.js +133 -0
  276. package/dist/src/run-gateway/tenant-auth.js.map +1 -1
  277. package/dist/src/run-gateway/tenant-scoped-gateway.d.ts +10 -0
  278. package/dist/src/run-gateway/tenant-scoped-gateway.d.ts.map +1 -0
  279. package/dist/src/run-gateway/tenant-scoped-gateway.js +107 -0
  280. package/dist/src/run-gateway/tenant-scoped-gateway.js.map +1 -0
  281. package/dist/src/run-value-facets.d.ts +1 -1
  282. package/dist/src/run-value-facets.d.ts.map +1 -1
  283. package/dist/src/run-value-facets.js +5 -1
  284. package/dist/src/run-value-facets.js.map +1 -1
  285. package/dist/src/scheduler.d.ts.map +1 -1
  286. package/dist/src/scheduler.js +2 -1
  287. package/dist/src/scheduler.js.map +1 -1
  288. package/dist/src/schedules.d.ts +16 -1
  289. package/dist/src/schedules.d.ts.map +1 -1
  290. package/dist/src/schedules.js +29 -4
  291. package/dist/src/schedules.js.map +1 -1
  292. package/dist/src/services/main.d.ts +3 -3
  293. package/dist/src/services/main.js +6 -6
  294. package/dist/src/services/main.js.map +1 -1
  295. package/dist/src/singleton-admission.d.ts.map +1 -1
  296. package/dist/src/singleton-admission.js +2 -0
  297. package/dist/src/singleton-admission.js.map +1 -1
  298. package/dist/src/singleton-gate.d.ts +1 -1
  299. package/dist/src/singleton-gate.d.ts.map +1 -1
  300. package/dist/src/singleton-gate.js +4 -3
  301. package/dist/src/singleton-gate.js.map +1 -1
  302. package/dist/src/sql-schema.d.ts +54 -0
  303. package/dist/src/sql-schema.d.ts.map +1 -0
  304. package/dist/src/sql-schema.js +145 -0
  305. package/dist/src/sql-schema.js.map +1 -0
  306. package/dist/src/stores/factory.d.ts +6 -0
  307. package/dist/src/stores/factory.d.ts.map +1 -1
  308. package/dist/src/stores/factory.js +3 -0
  309. package/dist/src/stores/factory.js.map +1 -1
  310. package/dist/src/stores/lucid-mappers.d.ts +3 -0
  311. package/dist/src/stores/lucid-mappers.d.ts.map +1 -1
  312. package/dist/src/stores/lucid-mappers.js +12 -0
  313. package/dist/src/stores/lucid-mappers.js.map +1 -1
  314. package/dist/src/stores/lucid-pg-hot-path.d.ts +6 -2
  315. package/dist/src/stores/lucid-pg-hot-path.d.ts.map +1 -1
  316. package/dist/src/stores/lucid-pg-hot-path.js +7 -3
  317. package/dist/src/stores/lucid-pg-hot-path.js.map +1 -1
  318. package/dist/src/stores/lucid-schema.d.ts +18 -4
  319. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  320. package/dist/src/stores/lucid-schema.js +106 -61
  321. package/dist/src/stores/lucid-schema.js.map +1 -1
  322. package/dist/src/stores/lucid.d.ts +42 -2
  323. package/dist/src/stores/lucid.d.ts.map +1 -1
  324. package/dist/src/stores/lucid.js +450 -231
  325. package/dist/src/stores/lucid.js.map +1 -1
  326. package/dist/src/tenancy.d.ts +104 -0
  327. package/dist/src/tenancy.d.ts.map +1 -0
  328. package/dist/src/tenancy.js +91 -0
  329. package/dist/src/tenancy.js.map +1 -0
  330. package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
  331. package/dist/src/testing/in-memory-state-store.js +9 -3
  332. package/dist/src/testing/in-memory-state-store.js.map +1 -1
  333. package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
  334. package/dist/src/testing-kit/state-store-conformance.js +59 -0
  335. package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
  336. package/dist/src/testing-kit/transport-conformance.d.ts.map +1 -1
  337. package/dist/src/testing-kit/transport-conformance.js +5 -1
  338. package/dist/src/testing-kit/transport-conformance.js.map +1 -1
  339. package/dist/src/transports/bullmq/bullmq-transport.d.ts +1 -1
  340. package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
  341. package/dist/src/transports/bullmq/bullmq-transport.js +14 -3
  342. package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
  343. package/dist/src/transports/db-schema.d.ts +13 -5
  344. package/dist/src/transports/db-schema.d.ts.map +1 -1
  345. package/dist/src/transports/db-schema.js +52 -27
  346. package/dist/src/transports/db-schema.js.map +1 -1
  347. package/dist/src/transports/db.d.ts +6 -0
  348. package/dist/src/transports/db.d.ts.map +1 -1
  349. package/dist/src/transports/db.js +91 -42
  350. package/dist/src/transports/db.js.map +1 -1
  351. package/dist/src/transports/factory.d.ts +16 -0
  352. package/dist/src/transports/factory.d.ts.map +1 -1
  353. package/dist/src/transports/factory.js +6 -1
  354. package/dist/src/transports/factory.js.map +1 -1
  355. package/dist/src/transports/queue.d.ts +2 -2
  356. package/dist/src/transports/queue.d.ts.map +1 -1
  357. package/dist/src/transports/queue.js +49 -8
  358. package/dist/src/transports/queue.js.map +1 -1
  359. package/dist/src/transports/worker-keys-db.d.ts +5 -0
  360. package/dist/src/transports/worker-keys-db.d.ts.map +1 -1
  361. package/dist/src/transports/worker-keys-db.js +10 -8
  362. package/dist/src/transports/worker-keys-db.js.map +1 -1
  363. package/dist/src/workflow-discovery.d.ts +1 -1
  364. package/dist/src/workflow-discovery.d.ts.map +1 -1
  365. package/dist/src/workflow-discovery.js +4 -7
  366. package/dist/src/workflow-discovery.js.map +1 -1
  367. package/dist/src/workflow-events.d.ts +20 -51
  368. package/dist/src/workflow-events.d.ts.map +1 -1
  369. package/dist/src/workflow-events.js +12 -30
  370. package/dist/src/workflow-events.js.map +1 -1
  371. package/dist/src/workflow-ref.d.ts +1 -1
  372. package/dist/stubs/config/durable_dashboard.stub +9 -29
  373. package/dist/stubs/database/migrations/create_durable_tables.stub +12 -2
  374. package/dist/stubs/database/migrations/create_durable_transport_messages.stub +34 -5
  375. package/dist/stubs/database/migrations/create_durable_transport_tables.stub +30 -8
  376. package/dist/stubs/database/migrations/create_durable_transport_worker_keys.stub +24 -2
  377. package/package.json +25 -7
  378. package/skills/durable-cluster/SKILL.md +43 -23
  379. package/skills/durable-reliability/SKILL.md +13 -7
  380. package/dist/assets/spa/assets/index-70hGzOnT.css +0 -1
  381. package/dist/assets/spa/assets/index-CJjMAUau.js +0 -16
  382. package/dist/assets/spa/assets/index-CJjMAUau.js.map +0 -1
  383. package/dist/commands/retry.d.ts +0 -16
  384. package/dist/commands/retry.d.ts.map +0 -1
  385. package/dist/commands/retry.js +0 -34
  386. package/dist/commands/retry.js.map +0 -1
  387. package/dist/src/dashboard/auth.d.ts +0 -134
  388. package/dist/src/dashboard/auth.d.ts.map +0 -1
  389. package/dist/src/dashboard/auth.js +0 -156
  390. package/dist/src/dashboard/auth.js.map +0 -1
  391. package/dist/src/dashboard/login_page.d.ts +0 -36
  392. package/dist/src/dashboard/login_page.d.ts.map +0 -1
  393. package/dist/src/dashboard/login_page.js +0 -158
  394. package/dist/src/dashboard/login_page.js.map +0 -1
  395. package/dist/src/dashboard/session_cookie.d.ts +0 -45
  396. package/dist/src/dashboard/session_cookie.d.ts.map +0 -1
  397. package/dist/src/dashboard/session_cookie.js +0 -97
  398. package/dist/src/dashboard/session_cookie.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { createHash } from 'node:crypto';
2
+ import { assertSchemaSupported, ensureSchemaExists, hasColumn, mysqlLockName, qualify, schemaBuilder, schemaLockKey, validateSchemaName, whereSchema, } from '../sql-schema.js';
2
3
  /**
3
4
  * The canonical durable table names. They match the cross-adapter snake_case contract the other
4
5
  * Agora/aviary stores use (Drizzle is the reference), so a dashboard or migration can be pointed at
@@ -27,7 +28,7 @@ export const DURABLE_SCHEMA_META_TABLE = 'durable_schema_meta';
27
28
  * once on its next boot and then goes back to the one-row read. A test pins the SQLite DDL to this
28
29
  * number, so a schema change without a bump fails CI.
29
30
  */
30
- export const DURABLE_SCHEMA_REVISION = 5;
31
+ export const DURABLE_SCHEMA_REVISION = 6;
31
32
  const SCHEMA_META_ROW = 'durable';
32
33
  /** Advisory-lock key for the Postgres heal (`pg_advisory_xact_lock`): "dura" "ble" as a bigint. */
33
34
  const PG_SCHEMA_LOCK_KEY = 7_310_315_633_779_045;
@@ -65,12 +66,12 @@ function schemaFingerprint(collation) {
65
66
  .update(`rev=${DURABLE_SCHEMA_REVISION}|collation=${collation ?? ''}`)
66
67
  .digest('hex');
67
68
  }
68
- async function readSchemaFingerprint(client) {
69
- if (!(await client.schema.hasTable(DURABLE_SCHEMA_META_TABLE)))
69
+ async function readSchemaFingerprint(client, schema) {
70
+ if (!(await schemaBuilder(client, schema).hasTable(DURABLE_SCHEMA_META_TABLE)))
70
71
  return undefined;
71
72
  const q = client
72
73
  .query()
73
- .from(DURABLE_SCHEMA_META_TABLE)
74
+ .from(qualify(schema, DURABLE_SCHEMA_META_TABLE))
74
75
  .select('fingerprint')
75
76
  .where('id', SCHEMA_META_ROW);
76
77
  // A locking read on MySQL: under REPEATABLE READ a plain read could answer from a snapshot older
@@ -80,9 +81,9 @@ async function readSchemaFingerprint(client) {
80
81
  const row = (await q.first());
81
82
  return row?.fingerprint ?? undefined;
82
83
  }
83
- async function writeSchemaFingerprint(client, fingerprint) {
84
- if (!(await client.schema.hasTable(DURABLE_SCHEMA_META_TABLE))) {
85
- await client.schema.createTable(DURABLE_SCHEMA_META_TABLE, (table) => {
84
+ async function writeSchemaFingerprint(client, schema, fingerprint) {
85
+ if (!(await schemaBuilder(client, schema).hasTable(DURABLE_SCHEMA_META_TABLE))) {
86
+ await schemaBuilder(client, schema).createTable(DURABLE_SCHEMA_META_TABLE, (table) => {
86
87
  table.string('id', 32).primary();
87
88
  table.string('fingerprint', 64).notNullable();
88
89
  table.bigInteger('applied_at').notNullable();
@@ -90,7 +91,7 @@ async function writeSchemaFingerprint(client, fingerprint) {
90
91
  }
91
92
  await client
92
93
  .insertQuery()
93
- .table(DURABLE_SCHEMA_META_TABLE)
94
+ .table(qualify(schema, DURABLE_SCHEMA_META_TABLE))
94
95
  .knexQuery.insert({ id: SCHEMA_META_ROW, fingerprint, applied_at: Date.now() })
95
96
  .onConflict('id')
96
97
  .merge();
@@ -102,17 +103,29 @@ async function writeSchemaFingerprint(client, fingerprint) {
102
103
  * (its DDL commits implicitly, the lock is the session's) and releases it after. SQLite, and any
103
104
  * other dialect, runs `work` without a lock.
104
105
  */
105
- async function withSchemaLock(connection, logger, work) {
106
+ async function withSchemaLock(connection, schema, logger, work) {
107
+ // With a schema, the lock is that schema's: two installs in two schemas of one database heal
108
+ // independently. Without one, the keys are unchanged.
106
109
  switch (connection.dialect.name) {
107
110
  case 'postgres':
108
111
  await connection.transaction(async (trx) => {
109
- await trx.rawQuery('select pg_advisory_xact_lock(?)', [PG_SCHEMA_LOCK_KEY]);
112
+ await trx.rawQuery('select pg_advisory_xact_lock(?)', [
113
+ schemaLockKey(PG_SCHEMA_LOCK_KEY, schema),
114
+ ]);
110
115
  await work(trx);
111
116
  });
112
117
  return;
113
118
  case 'mysql':
114
119
  await connection.transaction(async (trx) => {
115
- const result = (await trx.rawQuery("select get_lock(concat('durable_schema:', database()), ?) as got", [MYSQL_SCHEMA_LOCK_TIMEOUT_S]));
120
+ // The lock is named after the database the tables are in: the configured one, else the
121
+ // connection's.
122
+ const lockName = schema
123
+ ? { sql: '?', bindings: [mysqlLockName('durable_schema:', schema)] }
124
+ : { sql: "concat('durable_schema:', database())", bindings: [] };
125
+ const result = (await trx.rawQuery(`select get_lock(${lockName.sql}, ?) as got`, [
126
+ ...lockName.bindings,
127
+ MYSQL_SCHEMA_LOCK_TIMEOUT_S,
128
+ ]));
116
129
  const got = Number(result[0]?.[0]?.got) === 1;
117
130
  if (!got) {
118
131
  logger.warn(`@adonis-agora/durable: waited ${MYSQL_SCHEMA_LOCK_TIMEOUT_S}s for the durable schema lock; checking the schema without it.`);
@@ -123,7 +136,7 @@ async function withSchemaLock(connection, logger, work) {
123
136
  finally {
124
137
  if (got) {
125
138
  await trx
126
- .rawQuery("select release_lock(concat('durable_schema:', database()))")
139
+ .rawQuery(`select release_lock(${lockName.sql})`, lockName.bindings)
127
140
  .catch(() => undefined);
128
141
  }
129
142
  }
@@ -155,7 +168,7 @@ function repairWarning(repairs) {
155
168
  ].join(' ');
156
169
  }
157
170
  /**
158
- * Does an index with this name exist in the connection's current schema? Returns `null` for
171
+ * Does an index with this name exist in `schema` (the connection's current schema when unset)? Returns `null` for
159
172
  * dialects outside the store's three declared targets (SQLite / Postgres / MySQL), which the
160
173
  * caller handles by falling back to the legacy best-effort create.
161
174
  *
@@ -167,15 +180,11 @@ function repairWarning(repairs) {
167
180
  * catalog `SELECT` can never fail that way, so the repair never touches the database unless the
168
181
  * index is genuinely missing.
169
182
  */
170
- async function indexExists(connection, indexName) {
183
+ async function indexExists(connection, schema, indexName) {
171
184
  switch (connection.dialect.name) {
172
185
  case 'postgres': {
173
- const rows = await connection
174
- .query()
175
- .from('pg_indexes')
176
- .where('indexname', indexName)
177
- .andWhereRaw('schemaname = current_schema()')
178
- .limit(1);
186
+ const q = connection.query().from('pg_indexes').where('indexname', indexName);
187
+ const rows = await whereSchema(q, connection, 'schemaname', schema).limit(1);
179
188
  return rows.length > 0;
180
189
  }
181
190
  case 'sqlite3':
@@ -190,12 +199,11 @@ async function indexExists(connection, indexName) {
190
199
  return rows.length > 0;
191
200
  }
192
201
  case 'mysql': {
193
- const rows = await connection
202
+ const q = connection
194
203
  .query()
195
204
  .from('information_schema.statistics')
196
- .where('index_name', indexName)
197
- .andWhereRaw('table_schema = database()')
198
- .limit(1);
205
+ .where('index_name', indexName);
206
+ const rows = await whereSchema(q, connection, 'table_schema', schema).limit(1);
199
207
  return rows.length > 0;
200
208
  }
201
209
  default:
@@ -222,6 +230,9 @@ async function indexExists(connection, indexName) {
222
230
  * prefer the published migration (`node ace configure @adonis-agora/durable`); this helper is for standalone
223
231
  * use, tests, and `ensureSchema`.
224
232
  *
233
+ * Pass `options.schema` to put the tables in their own database schema (created when missing): every
234
+ * statement names it, on any connection. It must match the store's `schema`.
235
+ *
225
236
  * Pass `connectionName` to provision the tables on a dedicated Lucid connection — it must match the
226
237
  * connection the store reads/writes on, or `ensureSchema` would create the tables where the store
227
238
  * never looks. Omit it to use the `Database` default connection.
@@ -233,26 +244,31 @@ async function indexExists(connection, indexName) {
233
244
  */
234
245
  export async function createDurableTables(db, connectionName, options = {}) {
235
246
  const connection = db.connection(connectionName);
247
+ const schema = validateSchemaName(options.schema, 'createDurableTables');
248
+ assertSchemaSupported(connection, schema, 'createDurableTables');
236
249
  const logger = options.logger ?? console;
237
250
  const collation = connection.dialect.name === 'mysql' ? configuredCollation(connection, options) : undefined;
238
251
  const expected = schemaFingerprint(collation);
239
252
  // The steady-state boot: one catalog probe and one PK read, no per-table checks.
240
- if (!options.force && (await readSchemaFingerprint(connection)) === expected)
253
+ if (!options.force && (await readSchemaFingerprint(connection, schema)) === expected)
241
254
  return;
242
- await withSchemaLock(connection, logger, async (client) => {
255
+ // Outside the lock's transaction: a failed CREATE SCHEMA would abort it.
256
+ await ensureSchemaExists(connection, schema);
257
+ await withSchemaLock(connection, schema, logger, async (client) => {
243
258
  // A sibling may have healed while this process waited for the lock.
244
- if (!options.force && (await readSchemaFingerprint(client)) === expected)
259
+ if (!options.force && (await readSchemaFingerprint(client, schema)) === expected)
245
260
  return;
246
- await healDurableTables(client, collation, logger);
247
- await writeSchemaFingerprint(client, expected);
261
+ await healDurableTables(client, schema, collation, logger);
262
+ await writeSchemaFingerprint(client, schema, expected);
248
263
  });
249
264
  }
250
265
  /** The additive check-and-repair behind {@link createDurableTables}, on one client (or transaction). */
251
- async function healDurableTables(client, collation, logger) {
266
+ async function healDurableTables(client, schema, collation, logger) {
252
267
  // Knex's schema builder is stateful — operations chained on one instance run together. Take a FRESH
253
268
  // `client.schema` for every hasTable/createTable so each DDL statement executes exactly once, all on
254
- // the store's own connection (or the lock-holding transaction).
255
- const conn = () => client.schema;
269
+ // the store's own connection (or the lock-holding transaction), scoped to the configured schema.
270
+ const conn = () => schemaBuilder(client, schema);
271
+ const columnExists = (table, column) => hasColumn(client, schema, table, column);
256
272
  const isMysql = client.dialect.name === 'mysql';
257
273
  // MySQL: create new tables with the configured collation (CONVERT below aligns existing ones).
258
274
  const charset = collation?.split('_')[0];
@@ -271,7 +287,7 @@ async function healDurableTables(client, collation, logger) {
271
287
  // best-effort path stays — still transaction-unsafe, but only outside the store's declared
272
288
  // targets.
273
289
  const ensureIndex = async (table, columns, indexName) => {
274
- const known = await indexExists(client, indexName);
290
+ const known = await indexExists(client, schema, indexName);
275
291
  if (known === true)
276
292
  return;
277
293
  if (known === null) {
@@ -307,9 +323,13 @@ async function healDurableTables(client, collation, logger) {
307
323
  table.integer('priority');
308
324
  table.text('awaiting_decision_task_id');
309
325
  table.bigInteger('wake_requested_at');
326
+ table.string('tenant_id');
327
+ table.string('tenant_kind');
310
328
  table.bigInteger('created_at').notNullable();
311
329
  table.bigInteger('updated_at').notNullable();
312
330
  table.index(['status'], 'durable_runs_status_idx');
331
+ // Tenancy: a tenant's runs, newest first.
332
+ table.index(['tenant_id', 'created_at'], 'durable_runs_tenant_idx');
313
333
  table.index(['status', 'wake_at'], 'durable_runs_due_idx');
314
334
  table.index(['status', 'wake_requested_at'], 'durable_runs_wake_requested_idx');
315
335
  // Worker-pool partition: scopes the poll/recovery queries (namespace + status + createdAt).
@@ -323,14 +343,14 @@ async function healDurableTables(client, collation, logger) {
323
343
  // Auto-migrate an older runs table by adding any columns introduced after its creation. Each is
324
344
  // applied independently so a table missing several catches up. Mirrors the in-place pattern other
325
345
  // adapters use; new columns are nullable / carry a DEFAULT so existing rows read back unchanged.
326
- if (!(await conn().hasColumn(DURABLE_TABLES.runs, 'priority'))) {
346
+ if (!(await columnExists(DURABLE_TABLES.runs, 'priority'))) {
327
347
  // Nullable (no default) so existing rows read back as "unprioritised" and the FIFO path is unchanged.
328
348
  await conn().alterTable(DURABLE_TABLES.runs, (table) => {
329
349
  table.integer('priority');
330
350
  });
331
351
  repairs.push(`${DURABLE_TABLES.runs}.priority`);
332
352
  }
333
- if (!(await conn().hasColumn(DURABLE_TABLES.runs, 'namespace'))) {
353
+ if (!(await columnExists(DURABLE_TABLES.runs, 'namespace'))) {
334
354
  // DEFAULT 'default' so every pre-namespace row reads back in the reserved 'default' partition —
335
355
  // byte-identical behavior for a single-pool deploy that adds the column.
336
356
  await conn().alterTable(DURABLE_TABLES.runs, (table) => {
@@ -339,14 +359,14 @@ async function healDurableTables(client, collation, logger) {
339
359
  });
340
360
  repairs.push(`${DURABLE_TABLES.runs}.namespace`);
341
361
  }
342
- if (!(await conn().hasColumn(DURABLE_TABLES.runs, 'origin'))) {
362
+ if (!(await columnExists(DURABLE_TABLES.runs, 'origin'))) {
343
363
  // Origin attribution wave: nullable, so an app-own/legacy run reads back with no origin.
344
364
  await conn().alterTable(DURABLE_TABLES.runs, (table) => {
345
365
  table.string('origin');
346
366
  });
347
367
  repairs.push(`${DURABLE_TABLES.runs}.origin`);
348
368
  }
349
- if (!(await conn().hasColumn(DURABLE_TABLES.runs, 'awaiting_decision_task_id'))) {
369
+ if (!(await columnExists(DURABLE_TABLES.runs, 'awaiting_decision_task_id'))) {
350
370
  // Remote-turn decision marker (multi-instance decisions): nullable, so an existing run reads back
351
371
  // as "not awaiting a dispatched turn". TEXT: it embeds the run id plus a UUID.
352
372
  await conn().alterTable(DURABLE_TABLES.runs, (table) => {
@@ -354,7 +374,7 @@ async function healDurableTables(client, collation, logger) {
354
374
  });
355
375
  repairs.push(`${DURABLE_TABLES.runs}.awaiting_decision_task_id`);
356
376
  }
357
- if (!(await conn().hasColumn(DURABLE_TABLES.runs, 'wake_requested_at'))) {
377
+ if (!(await columnExists(DURABLE_TABLES.runs, 'wake_requested_at'))) {
358
378
  // Refused-wake marker (a wake that found another instance's lease): nullable, so an existing
359
379
  // run reads back as "no turn requested".
360
380
  await conn().alterTable(DURABLE_TABLES.runs, (table) => {
@@ -363,6 +383,15 @@ async function healDurableTables(client, collation, logger) {
363
383
  });
364
384
  repairs.push(`${DURABLE_TABLES.runs}.wake_requested_at`);
365
385
  }
386
+ if (!(await columnExists(DURABLE_TABLES.runs, 'tenant_id'))) {
387
+ // Tenancy: nullable, so an existing run reads back with no tenant.
388
+ await conn().alterTable(DURABLE_TABLES.runs, (table) => {
389
+ table.string('tenant_id');
390
+ table.string('tenant_kind');
391
+ table.index(['tenant_id', 'created_at'], 'durable_runs_tenant_idx');
392
+ });
393
+ repairs.push(`${DURABLE_TABLES.runs}.tenant_id`);
394
+ }
366
395
  // Index-only repair: the dashboard's default (unfiltered) listing orders by created_at DESC —
367
396
  // without this a page load over a large table is a full sort.
368
397
  await ensureIndex(DURABLE_TABLES.runs, ['created_at'], 'durable_runs_created_idx');
@@ -397,7 +426,7 @@ async function healDurableTables(client, collation, logger) {
397
426
  });
398
427
  }
399
428
  else {
400
- if (!(await conn().hasColumn(DURABLE_TABLES.checkpoints, 'parallel_group'))) {
429
+ if (!(await columnExists(DURABLE_TABLES.checkpoints, 'parallel_group'))) {
401
430
  // Auto-migrate an older checkpoints table: add the nullable `parallel_group` column in place.
402
431
  // Nullable (no default) so a legacy (non-parallel) checkpoint reads back untagged.
403
432
  await conn().alterTable(DURABLE_TABLES.checkpoints, (table) => {
@@ -405,7 +434,7 @@ async function healDurableTables(client, collation, logger) {
405
434
  });
406
435
  repairs.push(`${DURABLE_TABLES.checkpoints}.parallel_group`);
407
436
  }
408
- if (!(await conn().hasColumn(DURABLE_TABLES.checkpoints, 'last_heartbeat_at'))) {
437
+ if (!(await columnExists(DURABLE_TABLES.checkpoints, 'last_heartbeat_at'))) {
409
438
  // Heartbeat-persistence wave: nullable, so a step whose handler never beats reads back with
410
439
  // no liveness claim (absent ≠ silent-since-epoch).
411
440
  await conn().alterTable(DURABLE_TABLES.checkpoints, (table) => {
@@ -416,7 +445,7 @@ async function healDurableTables(client, collation, logger) {
416
445
  // not the statement count.
417
446
  repairs.push(`${DURABLE_TABLES.checkpoints}.last_heartbeat_at`, `${DURABLE_TABLES.checkpoints}.heartbeat_progress`);
418
447
  }
419
- if (!(await conn().hasColumn(DURABLE_TABLES.checkpoints, 'queue'))) {
448
+ if (!(await columnExists(DURABLE_TABLES.checkpoints, 'queue'))) {
420
449
  // Durable flow-control release: the admitted queue is persisted on the pending checkpoint so
421
450
  // ANY instance receiving the result can free the slot. Nullable — a non-queued step reads back
422
451
  // with no slot to release.
@@ -456,7 +485,7 @@ async function healDurableTables(client, collation, logger) {
456
485
  });
457
486
  }
458
487
  else {
459
- if (!(await conn().hasColumn(DURABLE_TABLES.signalWaiters, 'parallel_group'))) {
488
+ if (!(await columnExists(DURABLE_TABLES.signalWaiters, 'parallel_group'))) {
460
489
  // Auto-migrate an older signal_waiters table: add the nullable `parallel_group` column in
461
490
  // place. Nullable (no default) so a legacy (non-fan) waiter reads back untagged and the await
462
491
  // is unchanged.
@@ -486,11 +515,12 @@ async function healDurableTables(client, collation, logger) {
486
515
  [DURABLE_TABLES.signalWaiters, 'durable_signal_waiters_token_prefix_idx'],
487
516
  [DURABLE_TABLES.bufferedSignals, 'durable_buffered_signals_token_prefix_idx'],
488
517
  ]) {
489
- if (await indexExists(client, indexName))
518
+ if (await indexExists(client, schema, indexName))
490
519
  continue;
520
+ // The index lands in its table's schema: `create index "i" on "s"."t"`.
491
521
  await client.rawQuery('create index ?? on ?? (?? varchar_pattern_ops)', [
492
522
  indexName,
493
- table,
523
+ qualify(schema, table),
494
524
  'token',
495
525
  ]);
496
526
  if (!created.has(table))
@@ -525,19 +555,29 @@ async function healDurableTables(client, collation, logger) {
525
555
  table.text('tags', 'longtext');
526
556
  table.text('spec', 'longtext').notNullable();
527
557
  table.text('state', 'longtext').notNullable();
558
+ table.string('tenant_id');
559
+ table.string('tenant_kind');
528
560
  table.bigInteger('created_at').notNullable();
529
561
  table.bigInteger('updated_at').notNullable();
530
562
  // The worker tick's "due by T" scan: `paused = false AND next_fire_at <= T`.
531
563
  table.index(['paused', 'next_fire_at'], 'durable_schedules_due_idx');
532
564
  });
533
565
  }
566
+ else if (!(await columnExists(DURABLE_TABLES.schedules, 'tenant_id'))) {
567
+ // Tenancy: nullable, so an existing schedule (and every run it fires) has no tenant.
568
+ await conn().alterTable(DURABLE_TABLES.schedules, (table) => {
569
+ table.string('tenant_id');
570
+ table.string('tenant_kind');
571
+ });
572
+ repairs.push(`${DURABLE_TABLES.schedules}.tenant_id`);
573
+ }
534
574
  // ONE warning for the whole call, listing every column added, or none at all. Not one per ALTER:
535
575
  // an operator needs to know their schema was behind and by what, and a burst of lines is easier to
536
576
  // lose than a single one.
537
577
  if (isMysql) {
538
- repairs.push(...(await widenMysqlJsonColumns(client)));
578
+ repairs.push(...(await widenMysqlJsonColumns(client, schema)));
539
579
  if (collation && charset) {
540
- repairs.push(...(await alignMysqlCollation(client, charset, collation, logger)));
580
+ repairs.push(...(await alignMysqlCollation(client, schema, charset, collation, logger)));
541
581
  }
542
582
  }
543
583
  if (repairs.length > 0) {
@@ -550,22 +590,22 @@ async function healDurableTables(client, collation, logger) {
550
590
  * since MySQL rebuilds the table for each; a table already widened is not touched. Returns the
551
591
  * columns it changed.
552
592
  */
553
- async function widenMysqlJsonColumns(client) {
554
- return widenMysqlLongtextColumns(client, DURABLE_JSON_COLUMNS);
593
+ async function widenMysqlJsonColumns(client, schema) {
594
+ return widenMysqlLongtextColumns(client, DURABLE_JSON_COLUMNS, schema);
555
595
  }
556
596
  /**
557
597
  * MySQL: `MODIFY` to `longtext` every column of `spec` that exists and isn't `longtext` yet, one
558
598
  * `ALTER` per table. Shared by the store schema and the db transport's (`createDurableTransportTables`).
559
599
  * Returns the columns it changed.
560
600
  */
561
- export async function widenMysqlLongtextColumns(client, spec) {
601
+ export async function widenMysqlLongtextColumns(client, spec, schema) {
562
602
  const tables = Object.keys(spec);
563
- const rows = (await client
603
+ const q = client
564
604
  .query()
565
605
  .from('information_schema.columns')
566
606
  .select('table_name as t', 'column_name as c', 'data_type as d')
567
- .whereRaw('table_schema = database()')
568
- .whereIn('table_name', tables));
607
+ .whereIn('table_name', tables);
608
+ const rows = (await whereSchema(q, client, 'table_schema', schema));
569
609
  const widened = [];
570
610
  for (const [table, columns] of Object.entries(spec)) {
571
611
  const narrow = columns.columns.filter((column) => {
@@ -577,7 +617,7 @@ export async function widenMysqlLongtextColumns(client, spec) {
577
617
  const modify = narrow
578
618
  .map((column) => `modify \`${column}\` longtext ${columns.notNull?.includes(column) ? 'not null' : 'null'}`)
579
619
  .join(', ');
580
- await client.rawQuery(`alter table \`${table}\` ${modify}`);
620
+ await client.rawQuery(`alter table ?? ${modify}`, [qualify(schema, table)]);
581
621
  widened.push(...narrow.map((column) => `${table}.${column} (longtext)`));
582
622
  }
583
623
  return widened;
@@ -587,20 +627,20 @@ export async function widenMysqlLongtextColumns(client, spec) {
587
627
  * version, or before the option was set, carry the server default). A failed `CONVERT` is warned and
588
628
  * left for the next forced check rather than failing the boot. Returns the tables it converted.
589
629
  */
590
- async function alignMysqlCollation(client, charset, collation, logger) {
630
+ async function alignMysqlCollation(client, schema, charset, collation, logger) {
591
631
  const tables = [...Object.values(DURABLE_TABLES), DURABLE_SCHEMA_META_TABLE];
592
- const rows = (await client
632
+ const q = client
593
633
  .query()
594
634
  .from('information_schema.tables')
595
635
  .select('table_name as t', 'table_collation as c')
596
- .whereRaw('table_schema = database()')
597
- .whereIn('table_name', tables));
636
+ .whereIn('table_name', tables);
637
+ const rows = (await whereSchema(q, client, 'table_schema', schema));
598
638
  const converted = [];
599
639
  for (const row of rows) {
600
640
  if (row.c == null || row.c === collation)
601
641
  continue;
602
642
  try {
603
- await client.rawQuery(`alter table \`${row.t}\` convert to character set ${charset} collate ${collation}`);
643
+ await client.rawQuery(`alter table ?? convert to character set ${charset} collate ${collation}`, [qualify(schema, row.t)]);
604
644
  converted.push(`${row.t} (collation ${collation})`);
605
645
  }
606
646
  catch (err) {
@@ -609,9 +649,14 @@ async function alignMysqlCollation(client, charset, collation, logger) {
609
649
  }
610
650
  return converted;
611
651
  }
612
- /** Drop every durable table (reverse FK order). Used by tests and migration `down`. */
613
- export async function dropDurableTables(db, connectionName) {
614
- const conn = () => db.connection(connectionName).schema;
652
+ /**
653
+ * Drop every durable table (reverse FK order), in `options.schema` when set (the schema itself is
654
+ * left). Used by tests and migration `down`.
655
+ */
656
+ export async function dropDurableTables(db, connectionName, options = {}) {
657
+ const schema = validateSchemaName(options.schema, 'dropDurableTables');
658
+ assertSchemaSupported(db.connection(connectionName), schema, 'dropDurableTables');
659
+ const conn = () => schemaBuilder(db.connection(connectionName), schema);
615
660
  await conn().dropTableIfExists(DURABLE_SCHEMA_META_TABLE);
616
661
  await conn().dropTableIfExists(DURABLE_TABLES.schedules);
617
662
  await conn().dropTableIfExists(DURABLE_TABLES.bufferedEvents);
@@ -1 +1 @@
1
- {"version":3,"file":"lucid-schema.js","sourceRoot":"","sources":["../../../src/stores/lucid-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucid-schema.js","sourceRoot":"","sources":["../../../src/stores/lucid-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,EACT,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EAAE,0BAA0B;IACvC,UAAU,EAAE,wBAAwB;IACpC,aAAa,EAAE,wBAAwB;IACvC,eAAe,EAAE,0BAA0B;IAC3C,cAAc,EAAE,yBAAyB;IACzC,SAAS,EAAE,mBAAmB;CACtB,CAAC;AAoCX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAEzC,MAAM,eAAe,GAAG,SAAS,CAAC;AAElC,mGAAmG;AACnG,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,qGAAqG;AACrG,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA8D;IAC7F,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE;IAC7F,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;QAC5B,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,oBAAoB,CAAC;KACtE;IACD,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1D,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;IACzD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;CAC/F,CAAC;AAEF,qDAAqD;AACrD,SAAS,aAAa,CAAC,KAAyB;IAC9C,OAAO,KAAK,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAClF,CAAC;AAED,yGAAyG;AACzG,SAAS,mBAAmB,CAC1B,MAA2B,EAC3B,OAAmC;IAEnC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7E,MAAM,QAAQ,GACZ,MAAM,CAAC,cAAc,EAGtB,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC7B,OAAO,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,sEAAsE;AACtE,SAAS,iBAAiB,CAAC,SAA6B;IACtD,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,OAAO,uBAAuB,cAAc,SAAS,IAAI,EAAE,EAAE,CAAC;SACrE,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,MAA2B,EAC3B,MAA0B;IAE1B,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjG,MAAM,CAAC,GAAG,MAAM;SACb,KAAK,EAAE;SACP,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;SAChD,MAAM,CAAC,aAAa,CAAC;SACrB,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAChC,iGAAiG;IACjG,qDAAqD;IACrD,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,CAAC,CAAC,SAAS,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAA2C,CAAC;IACxE,OAAO,GAAG,EAAE,WAAW,IAAI,SAAS,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,MAA2B,EAC3B,MAA0B,EAC1B,WAAmB;IAEnB,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnF,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,MAAM;SACT,WAAW,EAAE;SACb,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;SACjD,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;SAC9E,UAAU,CAAC,IAAI,CAAC;SAChB,KAAK,EAAE,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,cAAc,CAC3B,UAA+B,EAC/B,MAA0B,EAC1B,MAA2B,EAC3B,IAAoD;IAEpD,6FAA6F;IAC7F,sDAAsD;IACtD,QAAQ,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK,UAAU;YACb,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACzC,MAAM,GAAG,CAAC,QAAQ,CAAC,iCAAiC,EAAE;oBACpD,aAAa,CAAC,kBAAkB,EAAE,MAAM,CAAC;iBAC1C,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,OAAO;QACT,KAAK,OAAO;YACV,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACzC,uFAAuF;gBACvF,gBAAgB;gBAChB,MAAM,QAAQ,GAAwC,MAAM;oBAC1D,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,EAAE;oBACpE,CAAC,CAAC,EAAE,GAAG,EAAE,uCAAuC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;gBACnE,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,GAAG,aAAa,EAAE;oBAC/E,GAAG,QAAQ,CAAC,QAAQ;oBACpB,2BAA2B;iBAC5B,CAAC,CAAsD,CAAC;gBACzD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,IAAI,CACT,iCAAiC,2BAA2B,gEAAgE,CAC7H,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;wBAAS,CAAC;oBACT,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,GAAG;6BACN,QAAQ,CAAC,uBAAuB,QAAQ,CAAC,GAAG,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC;6BACnE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,OAAO;QACT;YACE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,aAAa,CAAC,OAAiB;IACtC,OAAO;QACL,kFAAkF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACvG,uFAAuF;QACvF,+FAA+F;QAC/F,+FAA+F;QAC/F,4EAA4E;QAC5E,6FAA6F;QAC7F,yDAAyD;KAC1D,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,WAAW,CACxB,UAA+B,EAC/B,MAA0B,EAC1B,SAAiB;IAEjB,QAAQ,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,SAAS,CAAC;QACf,KAAK,gBAAgB,CAAC;QACtB,KAAK,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,UAAU;iBAC1B,KAAK,EAAE;iBACP,IAAI,CAAC,eAAe,CAAC;iBACrB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;iBACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;iBAC3B,KAAK,CAAC,CAAC,CAAC,CAAC;YACZ,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,KAAK,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,GAAG,UAAU;iBACjB,KAAK,EAAE;iBACP,IAAI,CAAC,+BAA+B,CAAC;iBACrC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,CAAC;QACD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAY,EACZ,cAAuB,EACvB,OAAO,GAA+B,EAAE;IAExC,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACzE,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC;IACzC,MAAM,SAAS,GACb,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC9C,iFAAiF;IACjF,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO;IAC7F,yEAAyE;IACzE,MAAM,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAChE,oEAAoE;QACpE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO;QACzF,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,wGAAwG;AACxG,KAAK,UAAU,iBAAiB,CAC9B,MAA2B,EAC3B,MAA0B,EAC1B,SAA6B,EAC7B,MAA2B;IAE3B,oGAAoG;IACpG,qGAAqG;IACrG,iGAAiG;IACjG,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACjG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IAChD,+FAA+F;IAC/F,MAAM,OAAO,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,CAAC,KAA6D,EAAE,EAAE;QACvF,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO;QAC/C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC;IAEF,wFAAwF;IACxF,gGAAgG;IAChG,sGAAsG;IACtG,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,0FAA0F;IAC1F,8FAA8F;IAC9F,2FAA2F;IAC3F,WAAW;IACX,MAAM,WAAW,GAAG,KAAK,EACvB,KAAa,EACb,OAAiB,EACjB,SAAiB,EACF,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAC3B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACvF,CAAC;YAAC,MAAM,CAAC;gBACP,uEAAuE;YACzE,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACtD,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;YAC5C,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACxC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5B,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,CAAC;YACnD,0CAA0C;YAC1C,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,yBAAyB,CAAC,CAAC;YACpE,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC;YAC3D,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,iCAAiC,CAAC,CAAC;YAChF,4FAA4F;YAC5F,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACjF,0FAA0F;YAC1F,+CAA+C;YAC/C,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,gGAAgG;QAChG,kGAAkG;QAClG,iGAAiG;QACjG,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC3D,sGAAsG;YACtG,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC5D,gGAAgG;YAChG,yEAAyE;YACzE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAC7D,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,4BAA4B,CAAC,CAAC;YACnF,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACzD,yFAAyF;YACzF,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC;YAC5E,kGAAkG;YAClG,+EAA+E;YAC/E,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,4BAA4B,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;YACpE,6FAA6F;YAC7F,yCAAyC;YACzC,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBACtC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,iCAAiC,CAAC,CAAC;YAClF,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YAC5D,mEAAmE;YACnE,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACrD,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC1B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAC5B,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,yBAAyB,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,YAAY,CAAC,CAAC;QACnD,CAAC;QACD,8FAA8F;QAC9F,8DAA8D;QAC9D,MAAM,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7D,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/B,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAChC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAC7C,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,8BAA8B,CAAC,CAAC;YAChE,0FAA0F;YAC1F,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,oCAAoC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACxE,8FAA8F;YAC9F,mFAAmF;YACnF,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5D,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,iBAAiB,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC;YAC3E,4FAA4F;YAC5F,mDAAmD;YACnD,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5D,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,6FAA6F;YAC7F,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CACV,GAAG,cAAc,CAAC,WAAW,oBAAoB,EACjD,GAAG,cAAc,CAAC,WAAW,qBAAqB,CACnD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;YAC/D,6FAA6F;YAC7F,+FAA+F;YAC/F,2BAA2B;YAC3B,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5D,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,WAAW,QAAQ,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,WAAW,CACf,cAAc,CAAC,WAAW,EAC1B,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,EACnC,oCAAoC,CACrC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YAC5D,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,gCAAgC,CAAC,CAAC;YACpE,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,gCAAgC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4FAA4F;IAC5F,yBAAyB;IACzB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/D,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAChC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/B,qFAAqF;YACrF,oFAAoF;YACpF,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAC1E,0FAA0F;YAC1F,8FAA8F;YAC9F,gBAAgB;YAChB,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC9D,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,aAAa,iBAAiB,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,oCAAoC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,4FAA4F;IAC5F,6FAA6F;IAC7F,2FAA2F;IAC3F,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI;YAC/B,CAAC,cAAc,CAAC,aAAa,EAAE,yCAAyC,CAAC;YACzE,CAAC,cAAc,CAAC,eAAe,EAAE,2CAA2C,CAAC;SACrE,EAAE,CAAC;YACX,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;gBAAE,SAAS;YAC3D,wEAAwE;YACxE,MAAM,MAAM,CAAC,QAAQ,CAAC,gDAAgD,EAAE;gBACtE,SAAS;gBACT,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;gBACtB,OAAO;aACR,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,kGAAkG;IAClG,oGAAoG;IACpG,2FAA2F;IAC3F,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YAChE,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,gGAAgG;IAChG,2FAA2F;IAC3F,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3D,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC7B,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC7D,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvD,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC5B,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7C,6EAA6E;YAC7E,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACxE,qFAAqF;QACrF,MAAM,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1D,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,SAAS,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,iGAAiG;IACjG,mGAAmG;IACnG,0BAA0B;IAC1B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAA2B,EAC3B,MAA0B;IAE1B,OAAO,yBAAyB,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAA2B,EAC3B,IAA+D,EAC/D,MAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,MAAM;SACb,KAAK,EAAE;SACP,IAAI,CAAC,4BAA4B,CAAC;SAClC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;SAC/D,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAIhE,CAAC;IACH,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;YAC9D,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAClC,MAAM,MAAM,GAAG,MAAM;aAClB,GAAG,CACF,CAAC,MAAM,EAAE,EAAE,CACT,YAAY,MAAM,eAAe,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAC7F;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,MAAM,aAAa,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAA2B,EAC3B,MAA0B,EAC1B,OAAe,EACf,SAAiB,EACjB,MAA2B;IAE3B,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC,CAAC;IAC7E,MAAM,CAAC,GAAG,MAAM;SACb,KAAK,EAAE;SACP,IAAI,CAAC,2BAA2B,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;SACjD,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAGhE,CAAC;IACH,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,KAAK,SAAS;YAAE,SAAS;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CACnB,2CAA2C,OAAO,YAAY,SAAS,EAAE,EACzE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CACzB,CAAC;YACF,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,SAAS,GAAG,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT,8CAA8C,GAAG,CAAC,CAAC,mBAAmB,SAAS,kBAC7E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAY,EACZ,cAAuB,EACvB,OAAO,GAAoC,EAAE;IAE7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACvE,qBAAqB,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAC1D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IAC/D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,IAAI,EAAE,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC"}
@@ -27,6 +27,12 @@ export interface LucidStateStoreOptions {
27
27
  * Default off. Ignored on other dialects.
28
28
  */
29
29
  preparedStatements?: boolean | undefined;
30
+ /**
31
+ * The database schema the durable tables live in (a database on MySQL). Every statement the store
32
+ * issues names it, so the connection's own default is left alone; `ensureSchema` creates it. Omit
33
+ * for the connection's current schema. Not supported on SQLite (the constructor throws).
34
+ */
35
+ schema?: string | undefined;
30
36
  }
31
37
  /**
32
38
  * A production-grade, persistent `StateStore` backed by AdonisJS **Lucid** (Knex). Runs, checkpoints,
@@ -45,6 +51,12 @@ export declare class LucidStateStore implements StateStore {
45
51
  private readonly options;
46
52
  /** The namespace run reads are fenced to, or undefined for the operator view. */
47
53
  private readonly scopeNamespace;
54
+ /** The schema the tables live in, or undefined for the connection's current one. */
55
+ private readonly schema;
56
+ /** The durable table names, qualified with {@link schema}, for the query builder. */
57
+ private readonly t;
58
+ /** The Postgres hot path's statements over {@link t}. */
59
+ private readonly sql;
48
60
  constructor(db: Database, options?: LucidStateStoreOptions);
49
61
  /**
50
62
  * A store over the same `Database` whose run reads are confined to `scope.namespace` (see
@@ -59,12 +71,40 @@ export declare class LucidStateStore implements StateStore {
59
71
  private client;
60
72
  /**
61
73
  * The Postgres hot path (see `lucid-pg-hot-path.ts`): the statements a turn and a step result run
62
- * on every step, as constant SQL. `undefined` on any other dialect, or with Lucid's `debug` on.
63
- * Resolved per call, like {@link client}: under a global transaction it is the transaction's.
74
+ * on every step, as constant SQL. `undefined` on any other dialect, with Lucid's `debug` on, or
75
+ * under a (global) transaction. Resolved per call, like {@link client}.
64
76
  */
65
77
  private hot;
78
+ /**
79
+ * The hot reads with explicit column lists: each table's base columns plus the later-wave ones it
80
+ * has, probed once (an older schema without them keeps working) and again after this store's own
81
+ * {@link ensureSchema}. A column another process adds later is not read until the next probe, and a
82
+ * statement already prepared keeps its shape.
83
+ */
84
+ private hotReadStatements;
85
+ private hotReads;
66
86
  /** Idempotently provision the durable tables (called on boot when `autoSchema` is on). */
67
87
  ensureSchema(): Promise<void>;
88
+ /** The database schema the store's tables live in, or `undefined` for the connection's current one. */
89
+ get schemaName(): string | undefined;
90
+ /**
91
+ * What `agora:doctor` reports for a store with a `schema`: whether the schema exists, which durable
92
+ * tables are missing from it, which of `optionalTables` (tables other pieces create when they first
93
+ * run, like the db transport's) are in it, and whether the connection can write there (a probe row
94
+ * inserted into the schema marker table, in a transaction that is rolled back).
95
+ */
96
+ inspectSchema(optionalTables?: string[]): Promise<{
97
+ schema: string | undefined;
98
+ schemaExists: boolean;
99
+ missingTables: string[];
100
+ optionalPresent: string[];
101
+ writeError: string | undefined;
102
+ }>;
103
+ /**
104
+ * Insert the run, or reject with {@link RunAlreadyExistsError} when its id is taken. The insert
105
+ * writes nothing on a conflict instead of failing, so a run that already exists never aborts a
106
+ * surrounding transaction (an app's test `wrapInGlobalTransaction`, on Postgres).
107
+ */
68
108
  createRun(run: WorkflowRun): Promise<void>;
69
109
  /**
70
110
  * Run `write` in a transaction only when `patch` needs one: a terminal settle reads the run's tags