velocious 1.0.577 → 1.0.579

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 (1676) hide show
  1. package/README.md +12 -6
  2. package/build/application.js +3 -3
  3. package/build/authorization/ability.js +6 -6
  4. package/build/authorization/base-resource.js +1 -1
  5. package/build/background-jobs/client.js +2 -2
  6. package/build/background-jobs/forked-runner-child.js +4 -4
  7. package/build/background-jobs/job-runner.js +2 -2
  8. package/build/background-jobs/job.js +6 -6
  9. package/build/background-jobs/json-socket.js +1 -1
  10. package/build/background-jobs/main.js +13 -13
  11. package/build/background-jobs/normalize-error.js +2 -2
  12. package/build/background-jobs/pooled-runner-child.js +3 -3
  13. package/build/background-jobs/scheduler.js +1 -1
  14. package/build/background-jobs/status-reporter.js +2 -2
  15. package/build/background-jobs/store.js +23 -23
  16. package/build/background-jobs/types.js +6 -6
  17. package/build/background-jobs/web/controller.js +6 -6
  18. package/build/background-jobs/web/counts-channel.js +1 -1
  19. package/build/background-jobs/worker.js +8 -8
  20. package/build/beacon/client.js +3 -3
  21. package/build/beacon/in-process-client.js +3 -3
  22. package/build/beacon/types.js +1 -1
  23. package/build/cli/base-command.js +1 -1
  24. package/build/cli/commands/console.js +1 -1
  25. package/build/cli/commands/db/schema/dump.js +1 -1
  26. package/build/cli/commands/db/schema/load.js +1 -1
  27. package/build/cli/commands/db/seed.js +1 -1
  28. package/build/cli/commands/generate/frontend-models.js +1 -1
  29. package/build/cli/commands/lint/relationships.js +1 -1
  30. package/build/cli/commands/run-script.js +1 -1
  31. package/build/cli/commands/runner.js +1 -1
  32. package/build/cli/index.js +2 -2
  33. package/build/cli/tenant-database-command-helper.js +2 -2
  34. package/build/configuration-types.js +48 -47
  35. package/build/configuration.js +150 -65
  36. package/build/controller.js +11 -8
  37. package/build/current.js +2 -2
  38. package/build/database/annotations-async-hooks.js +3 -3
  39. package/build/database/annotations.js +1 -1
  40. package/build/database/drivers/base-column.js +1 -1
  41. package/build/database/drivers/base-foreign-key.js +1 -1
  42. package/build/database/drivers/base-table.js +1 -1
  43. package/build/database/drivers/base.js +18 -18
  44. package/build/database/drivers/mssql/column.js +1 -1
  45. package/build/database/drivers/mssql/index.js +2 -2
  46. package/build/database/drivers/mssql/options.js +1 -1
  47. package/build/database/drivers/mssql/structure-sql.js +1 -1
  48. package/build/database/drivers/mssql/table.js +1 -1
  49. package/build/database/drivers/mysql/column.js +1 -1
  50. package/build/database/drivers/mysql/index.js +4 -4
  51. package/build/database/drivers/mysql/options.js +1 -1
  52. package/build/database/drivers/mysql/query.js +7 -7
  53. package/build/database/drivers/mysql/structure-sql.js +71 -10
  54. package/build/database/drivers/pgsql/column.js +1 -1
  55. package/build/database/drivers/pgsql/index.js +6 -6
  56. package/build/database/drivers/pgsql/structure-sql.js +1 -1
  57. package/build/database/drivers/sqlite/base.js +7 -7
  58. package/build/database/drivers/sqlite/column.js +1 -1
  59. package/build/database/drivers/sqlite/connection-sql-js.js +1 -1
  60. package/build/database/drivers/sqlite/foreign-key.js +1 -1
  61. package/build/database/drivers/sqlite/index.js +1 -1
  62. package/build/database/drivers/sqlite/index.native.js +2 -2
  63. package/build/database/drivers/sqlite/index.web.js +2 -2
  64. package/build/database/drivers/sqlite/query.js +2 -2
  65. package/build/database/drivers/sqlite/query.native.js +2 -2
  66. package/build/database/drivers/sqlite/query.web.js +2 -2
  67. package/build/database/drivers/sqlite/table-rebuilder.js +1 -1
  68. package/build/database/migration/index.js +2 -2
  69. package/build/database/migrator/types.js +2 -2
  70. package/build/database/operation.js +59 -6
  71. package/build/database/pool/async-tracked-multi-connection.js +75 -24
  72. package/build/database/pool/base-methods-forward.js +2 -2
  73. package/build/database/pool/base.js +48 -17
  74. package/build/database/pool/single-multi-use.js +501 -103
  75. package/build/database/query/delete-base.js +1 -1
  76. package/build/database/query/index.js +3 -3
  77. package/build/database/query/insert-base.js +4 -4
  78. package/build/database/query/model-class-query.js +39 -39
  79. package/build/database/query/preloader/belongs-to.js +2 -2
  80. package/build/database/query/preloader/ensure-model-class-initialized.js +3 -2
  81. package/build/database/query/preloader/has-many.js +3 -3
  82. package/build/database/query/preloader/has-one.js +1 -1
  83. package/build/database/query/preloader.js +9 -2
  84. package/build/database/query/query-data.js +7 -7
  85. package/build/database/query/update-base.js +3 -3
  86. package/build/database/query/upsert-base.js +2 -2
  87. package/build/database/query/where-model-class-hash.js +13 -13
  88. package/build/database/query/with-count.js +12 -12
  89. package/build/database/query-parser/options.js +2 -2
  90. package/build/database/query-parser/select-parser.js +1 -1
  91. package/build/database/record/acts-as-list.js +2 -2
  92. package/build/database/record/attachments/handle.js +6 -6
  93. package/build/database/record/attachments/normalize-input.js +11 -11
  94. package/build/database/record/attachments/storage-drivers/filesystem.js +1 -1
  95. package/build/database/record/attachments/storage-drivers/native.js +5 -5
  96. package/build/database/record/attachments/storage-drivers/s3.js +10 -10
  97. package/build/database/record/attachments/store.js +24 -20
  98. package/build/database/record/auditing.js +123 -29
  99. package/build/database/record/counter-cache-magnitude.js +11 -11
  100. package/build/database/record/index.js +227 -174
  101. package/build/database/record/instance-relationships/base.js +4 -4
  102. package/build/database/record/instance-relationships/belongs-to.js +1 -1
  103. package/build/database/record/instance-relationships/has-many.js +3 -3
  104. package/build/database/record/instance-relationships/has-one.js +1 -1
  105. package/build/database/record/record-not-found-error.js +1 -0
  106. package/build/database/record/relationships/base.js +22 -0
  107. package/build/database/record/state-machine.js +6 -6
  108. package/build/database/record/validators/base.js +1 -1
  109. package/build/database/structure-sql-loader.js +3 -3
  110. package/build/database/table-data/table-column.js +3 -3
  111. package/build/database/use-live-query.js +3 -3
  112. package/build/environment-handlers/base.js +56 -37
  113. package/build/environment-handlers/browser.js +1 -1
  114. package/build/environment-handlers/node/cli/commands/console.js +4 -4
  115. package/build/environment-handlers/node/cli/commands/db/seed.js +2 -2
  116. package/build/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
  117. package/build/environment-handlers/node/cli/commands/run-script.js +2 -2
  118. package/build/environment-handlers/node/cli/commands/runner.js +2 -2
  119. package/build/environment-handlers/node/cli/commands/server.js +1 -1
  120. package/build/environment-handlers/node.js +36 -36
  121. package/build/error-logger.js +2 -2
  122. package/build/error-reporting/request-details.js +32 -32
  123. package/build/frontend-model-controller.js +215 -213
  124. package/build/frontend-model-resource/base-resource.js +44 -44
  125. package/build/frontend-model-resource/velocious-attachment-resource.js +1 -1
  126. package/build/frontend-models/base.js +146 -142
  127. package/build/frontend-models/clear-pending-debounced-callback.js +2 -2
  128. package/build/frontend-models/model-registry.js +4 -4
  129. package/build/frontend-models/outgoing-event-buffer.js +1 -1
  130. package/build/frontend-models/preloader.js +1 -1
  131. package/build/frontend-models/query.js +60 -60
  132. package/build/frontend-models/resource-definition.js +9 -9
  133. package/build/frontend-models/transport-serialization.js +27 -27
  134. package/build/frontend-models/websocket-channel.js +4 -4
  135. package/build/frontend-models/websocket-publishers.js +1 -1
  136. package/build/http-client/request.js +1 -1
  137. package/build/http-client/response.js +1 -1
  138. package/build/http-server/client/index.js +4 -4
  139. package/build/http-server/client/params-to-object.js +16 -16
  140. package/build/http-server/client/request-buffer/index.js +5 -2
  141. package/build/http-server/client/request-parser.js +2 -2
  142. package/build/http-server/client/request-runner.js +2 -2
  143. package/build/http-server/client/request.js +2 -2
  144. package/build/http-server/client/websocket-request.js +6 -6
  145. package/build/http-server/client/websocket-session.js +28 -28
  146. package/build/http-server/cookie.js +2 -2
  147. package/build/http-server/development-reloader.js +1 -1
  148. package/build/http-server/index.js +5 -5
  149. package/build/http-server/remote-address.js +1 -1
  150. package/build/http-server/server-lock.js +4 -4
  151. package/build/http-server/websocket-channel-subscribers.js +4 -4
  152. package/build/http-server/websocket-channel.js +1 -1
  153. package/build/http-server/websocket-connection.js +3 -3
  154. package/build/http-server/websocket-event-log-store.js +9 -9
  155. package/build/http-server/websocket-events-host.js +7 -7
  156. package/build/http-server/websocket-events.js +4 -4
  157. package/build/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
  158. package/build/http-server/worker-handler/in-process.js +5 -5
  159. package/build/http-server/worker-handler/index.js +10 -10
  160. package/build/http-server/worker-handler/worker-thread.js +8 -8
  161. package/build/index.d.ts.map +1 -1
  162. package/build/logger/base-logger.js +1 -1
  163. package/build/logger.js +12 -12
  164. package/build/mailer/backends/smtp.js +3 -3
  165. package/build/mailer/base.js +14 -14
  166. package/build/mailer/delivery.js +3 -3
  167. package/build/mailer/index.js +1 -1
  168. package/build/mailer.js +1 -1
  169. package/build/plugins/sqljs-wasm-route-controller.js +1 -1
  170. package/build/record-payload-values.js +3 -3
  171. package/build/routes/base-route.js +5 -5
  172. package/build/routes/basic-route.js +4 -4
  173. package/build/routes/get-route.js +2 -2
  174. package/build/routes/hooks/frontend-model-command-route-hook.js +1 -1
  175. package/build/routes/index.js +3 -3
  176. package/build/routes/namespace-route.js +1 -1
  177. package/build/routes/plugin-routes.js +1 -1
  178. package/build/routes/post-route.js +2 -2
  179. package/build/routes/resolver.js +5 -5
  180. package/build/routes/resource-route.js +1 -1
  181. package/build/src/application.d.ts +26 -29
  182. package/build/src/application.d.ts.map +1 -1
  183. package/build/src/application.js +4 -4
  184. package/build/src/authorization/ability.d.ts +47 -53
  185. package/build/src/authorization/ability.d.ts.map +1 -1
  186. package/build/src/authorization/ability.js +7 -7
  187. package/build/src/authorization/base-resource.d.ts +13 -13
  188. package/build/src/authorization/base-resource.d.ts.map +1 -1
  189. package/build/src/authorization/base-resource.js +2 -2
  190. package/build/src/background-jobs/client.d.ts +9 -9
  191. package/build/src/background-jobs/client.d.ts.map +1 -1
  192. package/build/src/background-jobs/client.js +3 -3
  193. package/build/src/background-jobs/cron-expression.d.ts +25 -16
  194. package/build/src/background-jobs/cron-expression.d.ts.map +1 -1
  195. package/build/src/background-jobs/forked-runner-child.js +5 -5
  196. package/build/src/background-jobs/job-record.d.ts +4 -3
  197. package/build/src/background-jobs/job-record.d.ts.map +1 -1
  198. package/build/src/background-jobs/job-registry.d.ts +6 -6
  199. package/build/src/background-jobs/job-registry.d.ts.map +1 -1
  200. package/build/src/background-jobs/job-runner.d.ts +9 -9
  201. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  202. package/build/src/background-jobs/job-runner.js +3 -3
  203. package/build/src/background-jobs/job.d.ts +14 -14
  204. package/build/src/background-jobs/job.d.ts.map +1 -1
  205. package/build/src/background-jobs/job.js +7 -7
  206. package/build/src/background-jobs/json-socket.d.ts +9 -10
  207. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  208. package/build/src/background-jobs/json-socket.js +2 -2
  209. package/build/src/background-jobs/main.d.ts +56 -59
  210. package/build/src/background-jobs/main.d.ts.map +1 -1
  211. package/build/src/background-jobs/main.js +14 -14
  212. package/build/src/background-jobs/normalize-error.d.ts +2 -2
  213. package/build/src/background-jobs/normalize-error.d.ts.map +1 -1
  214. package/build/src/background-jobs/normalize-error.js +3 -3
  215. package/build/src/background-jobs/pooled-runner-child.js +4 -4
  216. package/build/src/background-jobs/runner-graceful-shutdown.d.ts +7 -12
  217. package/build/src/background-jobs/runner-graceful-shutdown.d.ts.map +1 -1
  218. package/build/src/background-jobs/runner-process-title.d.ts.map +1 -1
  219. package/build/src/background-jobs/scheduler.d.ts +41 -41
  220. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  221. package/build/src/background-jobs/scheduler.js +2 -2
  222. package/build/src/background-jobs/socket-request.d.ts +14 -14
  223. package/build/src/background-jobs/socket-request.d.ts.map +1 -1
  224. package/build/src/background-jobs/status-reporter.d.ts +28 -28
  225. package/build/src/background-jobs/status-reporter.d.ts.map +1 -1
  226. package/build/src/background-jobs/status-reporter.js +3 -3
  227. package/build/src/background-jobs/store.d.ts +100 -103
  228. package/build/src/background-jobs/store.d.ts.map +1 -1
  229. package/build/src/background-jobs/store.js +24 -24
  230. package/build/src/background-jobs/types.d.ts +124 -124
  231. package/build/src/background-jobs/types.d.ts.map +1 -1
  232. package/build/src/background-jobs/types.js +7 -7
  233. package/build/src/background-jobs/web/authorization.d.ts +2 -2
  234. package/build/src/background-jobs/web/authorization.d.ts.map +1 -1
  235. package/build/src/background-jobs/web/controller.d.ts +13 -13
  236. package/build/src/background-jobs/web/controller.d.ts.map +1 -1
  237. package/build/src/background-jobs/web/controller.js +7 -7
  238. package/build/src/background-jobs/web/counts-channel.d.ts +8 -8
  239. package/build/src/background-jobs/web/counts-channel.d.ts.map +1 -1
  240. package/build/src/background-jobs/web/counts-channel.js +2 -2
  241. package/build/src/background-jobs/web/index.d.ts +4 -4
  242. package/build/src/background-jobs/web/index.d.ts.map +1 -1
  243. package/build/src/background-jobs/web/path-matcher.d.ts +18 -13
  244. package/build/src/background-jobs/web/path-matcher.d.ts.map +1 -1
  245. package/build/src/background-jobs/web/registry.d.ts +21 -24
  246. package/build/src/background-jobs/web/registry.d.ts.map +1 -1
  247. package/build/src/background-jobs/worker.d.ts +74 -77
  248. package/build/src/background-jobs/worker.d.ts.map +1 -1
  249. package/build/src/background-jobs/worker.js +9 -9
  250. package/build/src/beacon/client.d.ts +30 -34
  251. package/build/src/beacon/client.d.ts.map +1 -1
  252. package/build/src/beacon/client.js +4 -4
  253. package/build/src/beacon/in-process-broker.d.ts +6 -9
  254. package/build/src/beacon/in-process-broker.d.ts.map +1 -1
  255. package/build/src/beacon/in-process-client.d.ts +17 -21
  256. package/build/src/beacon/in-process-client.d.ts.map +1 -1
  257. package/build/src/beacon/in-process-client.js +4 -4
  258. package/build/src/beacon/server.d.ts +15 -15
  259. package/build/src/beacon/server.d.ts.map +1 -1
  260. package/build/src/beacon/types.d.ts +21 -46
  261. package/build/src/beacon/types.d.ts.map +1 -1
  262. package/build/src/beacon/types.js +2 -2
  263. package/build/src/cli/base-command.d.ts +25 -28
  264. package/build/src/cli/base-command.d.ts.map +1 -1
  265. package/build/src/cli/base-command.js +2 -2
  266. package/build/src/cli/browser-cli.d.ts +1 -1
  267. package/build/src/cli/browser-cli.d.ts.map +1 -1
  268. package/build/src/cli/commands/background-jobs-main.d.ts +2 -1
  269. package/build/src/cli/commands/background-jobs-main.d.ts.map +1 -1
  270. package/build/src/cli/commands/background-jobs-runner.d.ts +2 -1
  271. package/build/src/cli/commands/background-jobs-runner.d.ts.map +1 -1
  272. package/build/src/cli/commands/background-jobs-worker.d.ts +2 -1
  273. package/build/src/cli/commands/background-jobs-worker.d.ts.map +1 -1
  274. package/build/src/cli/commands/beacon.d.ts +2 -1
  275. package/build/src/cli/commands/beacon.d.ts.map +1 -1
  276. package/build/src/cli/commands/console.d.ts +6 -1
  277. package/build/src/cli/commands/console.d.ts.map +1 -1
  278. package/build/src/cli/commands/console.js +2 -2
  279. package/build/src/cli/commands/db/base-command.d.ts +1 -1
  280. package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
  281. package/build/src/cli/commands/db/create.d.ts +1 -1
  282. package/build/src/cli/commands/db/create.d.ts.map +1 -1
  283. package/build/src/cli/commands/db/drop.d.ts +1 -1
  284. package/build/src/cli/commands/db/drop.d.ts.map +1 -1
  285. package/build/src/cli/commands/db/migrate.d.ts +1 -1
  286. package/build/src/cli/commands/db/migrate.d.ts.map +1 -1
  287. package/build/src/cli/commands/db/reset.d.ts +1 -1
  288. package/build/src/cli/commands/db/reset.d.ts.map +1 -1
  289. package/build/src/cli/commands/db/rollback.d.ts +1 -1
  290. package/build/src/cli/commands/db/rollback.d.ts.map +1 -1
  291. package/build/src/cli/commands/db/schema/dump.d.ts +6 -1
  292. package/build/src/cli/commands/db/schema/dump.d.ts.map +1 -1
  293. package/build/src/cli/commands/db/schema/dump.js +2 -2
  294. package/build/src/cli/commands/db/schema/load.d.ts +6 -1
  295. package/build/src/cli/commands/db/schema/load.d.ts.map +1 -1
  296. package/build/src/cli/commands/db/schema/load.js +2 -2
  297. package/build/src/cli/commands/db/seed.d.ts +6 -1
  298. package/build/src/cli/commands/db/seed.d.ts.map +1 -1
  299. package/build/src/cli/commands/db/seed.js +2 -2
  300. package/build/src/cli/commands/db/tenants/check.d.ts +1 -1
  301. package/build/src/cli/commands/db/tenants/check.d.ts.map +1 -1
  302. package/build/src/cli/commands/db/tenants/create.d.ts +1 -1
  303. package/build/src/cli/commands/db/tenants/create.d.ts.map +1 -1
  304. package/build/src/cli/commands/db/tenants/drop.d.ts +1 -1
  305. package/build/src/cli/commands/db/tenants/drop.d.ts.map +1 -1
  306. package/build/src/cli/commands/db/tenants/migrate.d.ts +1 -1
  307. package/build/src/cli/commands/db/tenants/migrate.d.ts.map +1 -1
  308. package/build/src/cli/commands/destroy/migration.d.ts +2 -1
  309. package/build/src/cli/commands/destroy/migration.d.ts.map +1 -1
  310. package/build/src/cli/commands/generate/base-models.d.ts +2 -1
  311. package/build/src/cli/commands/generate/base-models.d.ts.map +1 -1
  312. package/build/src/cli/commands/generate/frontend-models.d.ts +6 -1
  313. package/build/src/cli/commands/generate/frontend-models.d.ts.map +1 -1
  314. package/build/src/cli/commands/generate/frontend-models.js +2 -2
  315. package/build/src/cli/commands/generate/migration.d.ts +2 -1
  316. package/build/src/cli/commands/generate/migration.d.ts.map +1 -1
  317. package/build/src/cli/commands/generate/model.d.ts +2 -1
  318. package/build/src/cli/commands/generate/model.d.ts.map +1 -1
  319. package/build/src/cli/commands/init.d.ts +4 -2
  320. package/build/src/cli/commands/init.d.ts.map +1 -1
  321. package/build/src/cli/commands/lint/relationships.d.ts +6 -1
  322. package/build/src/cli/commands/lint/relationships.d.ts.map +1 -1
  323. package/build/src/cli/commands/lint/relationships.js +2 -2
  324. package/build/src/cli/commands/routes.d.ts +2 -1
  325. package/build/src/cli/commands/routes.d.ts.map +1 -1
  326. package/build/src/cli/commands/run-script.d.ts +6 -1
  327. package/build/src/cli/commands/run-script.d.ts.map +1 -1
  328. package/build/src/cli/commands/run-script.js +2 -2
  329. package/build/src/cli/commands/runner.d.ts +6 -1
  330. package/build/src/cli/commands/runner.d.ts.map +1 -1
  331. package/build/src/cli/commands/runner.js +2 -2
  332. package/build/src/cli/commands/server.d.ts +2 -1
  333. package/build/src/cli/commands/server.d.ts.map +1 -1
  334. package/build/src/cli/commands/test.d.ts +2 -1
  335. package/build/src/cli/commands/test.d.ts.map +1 -1
  336. package/build/src/cli/index.d.ts +20 -20
  337. package/build/src/cli/index.d.ts.map +1 -1
  338. package/build/src/cli/index.js +3 -3
  339. package/build/src/cli/tenant-database-command-helper.d.ts +13 -13
  340. package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
  341. package/build/src/cli/tenant-database-command-helper.js +3 -3
  342. package/build/src/cli/use-browser-cli.d.ts +1 -1
  343. package/build/src/cli/use-browser-cli.d.ts.map +1 -1
  344. package/build/src/configuration-resolver.d.ts +1 -1
  345. package/build/src/configuration-resolver.d.ts.map +1 -1
  346. package/build/src/configuration-types.d.ts +947 -1038
  347. package/build/src/configuration-types.d.ts.map +1 -1
  348. package/build/src/configuration-types.js +49 -48
  349. package/build/src/configuration.d.ts +145 -139
  350. package/build/src/configuration.d.ts.map +1 -1
  351. package/build/src/configuration.js +149 -66
  352. package/build/src/controller.d.ts +37 -35
  353. package/build/src/controller.d.ts.map +1 -1
  354. package/build/src/controller.js +11 -9
  355. package/build/src/current-configuration.d.ts +5 -4
  356. package/build/src/current-configuration.d.ts.map +1 -1
  357. package/build/src/current.d.ts +3 -3
  358. package/build/src/current.d.ts.map +1 -1
  359. package/build/src/current.js +3 -3
  360. package/build/src/database/advisory-lock-runner.d.ts +61 -60
  361. package/build/src/database/advisory-lock-runner.d.ts.map +1 -1
  362. package/build/src/database/annotations-async-hooks.js +4 -4
  363. package/build/src/database/annotations.d.ts +4 -6
  364. package/build/src/database/annotations.d.ts.map +1 -1
  365. package/build/src/database/annotations.js +2 -2
  366. package/build/src/database/column-types.d.ts +1 -1
  367. package/build/src/database/column-types.d.ts.map +1 -1
  368. package/build/src/database/datetime-storage.d.ts +6 -6
  369. package/build/src/database/datetime-storage.d.ts.map +1 -1
  370. package/build/src/database/drivers/base-column.d.ts +3 -3
  371. package/build/src/database/drivers/base-column.d.ts.map +1 -1
  372. package/build/src/database/drivers/base-column.js +2 -2
  373. package/build/src/database/drivers/base-columns-index.d.ts +2 -2
  374. package/build/src/database/drivers/base-columns-index.d.ts.map +1 -1
  375. package/build/src/database/drivers/base-foreign-key.d.ts +7 -7
  376. package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
  377. package/build/src/database/drivers/base-foreign-key.js +2 -2
  378. package/build/src/database/drivers/base-table.d.ts +3 -3
  379. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  380. package/build/src/database/drivers/base-table.js +2 -2
  381. package/build/src/database/drivers/base.d.ts +297 -342
  382. package/build/src/database/drivers/base.d.ts.map +1 -1
  383. package/build/src/database/drivers/base.js +19 -19
  384. package/build/src/database/drivers/index-metadata.d.ts +15 -18
  385. package/build/src/database/drivers/index-metadata.d.ts.map +1 -1
  386. package/build/src/database/drivers/mssql/column.d.ts +10 -5
  387. package/build/src/database/drivers/mssql/column.d.ts.map +1 -1
  388. package/build/src/database/drivers/mssql/column.js +2 -2
  389. package/build/src/database/drivers/mssql/columns-index.d.ts +30 -22
  390. package/build/src/database/drivers/mssql/columns-index.d.ts.map +1 -1
  391. package/build/src/database/drivers/mssql/connect-connection.d.ts.map +1 -1
  392. package/build/src/database/drivers/mssql/foreign-key.d.ts +1 -1
  393. package/build/src/database/drivers/mssql/foreign-key.d.ts.map +1 -1
  394. package/build/src/database/drivers/mssql/index.d.ts +250 -9
  395. package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
  396. package/build/src/database/drivers/mssql/index.js +3 -3
  397. package/build/src/database/drivers/mssql/options.d.ts +31 -1
  398. package/build/src/database/drivers/mssql/options.d.ts.map +1 -1
  399. package/build/src/database/drivers/mssql/options.js +2 -2
  400. package/build/src/database/drivers/mssql/query-parser.d.ts +1 -1
  401. package/build/src/database/drivers/mssql/query-parser.d.ts.map +1 -1
  402. package/build/src/database/drivers/mssql/sql/alter-table.d.ts +1 -1
  403. package/build/src/database/drivers/mssql/sql/alter-table.d.ts.map +1 -1
  404. package/build/src/database/drivers/mssql/sql/create-database.d.ts +3 -2
  405. package/build/src/database/drivers/mssql/sql/create-database.d.ts.map +1 -1
  406. package/build/src/database/drivers/mssql/sql/create-index.d.ts +1 -1
  407. package/build/src/database/drivers/mssql/sql/create-index.d.ts.map +1 -1
  408. package/build/src/database/drivers/mssql/sql/create-table.d.ts +1 -1
  409. package/build/src/database/drivers/mssql/sql/create-table.d.ts.map +1 -1
  410. package/build/src/database/drivers/mssql/sql/delete.d.ts +1 -1
  411. package/build/src/database/drivers/mssql/sql/delete.d.ts.map +1 -1
  412. package/build/src/database/drivers/mssql/sql/drop-database.d.ts +14 -1
  413. package/build/src/database/drivers/mssql/sql/drop-database.d.ts.map +1 -1
  414. package/build/src/database/drivers/mssql/sql/drop-table.d.ts +1 -1
  415. package/build/src/database/drivers/mssql/sql/drop-table.d.ts.map +1 -1
  416. package/build/src/database/drivers/mssql/sql/insert.d.ts +1 -1
  417. package/build/src/database/drivers/mssql/sql/insert.d.ts.map +1 -1
  418. package/build/src/database/drivers/mssql/sql/remove-index.d.ts +1 -1
  419. package/build/src/database/drivers/mssql/sql/remove-index.d.ts.map +1 -1
  420. package/build/src/database/drivers/mssql/sql/update.d.ts +1 -1
  421. package/build/src/database/drivers/mssql/sql/update.d.ts.map +1 -1
  422. package/build/src/database/drivers/mssql/sql/upsert.d.ts +1 -1
  423. package/build/src/database/drivers/mssql/sql/upsert.d.ts.map +1 -1
  424. package/build/src/database/drivers/mssql/structure-sql.d.ts +3 -3
  425. package/build/src/database/drivers/mssql/structure-sql.d.ts.map +1 -1
  426. package/build/src/database/drivers/mssql/structure-sql.js +2 -2
  427. package/build/src/database/drivers/mssql/table.d.ts +39 -29
  428. package/build/src/database/drivers/mssql/table.d.ts.map +1 -1
  429. package/build/src/database/drivers/mssql/table.js +2 -2
  430. package/build/src/database/drivers/mysql/column.d.ts +10 -6
  431. package/build/src/database/drivers/mysql/column.d.ts.map +1 -1
  432. package/build/src/database/drivers/mysql/column.js +2 -2
  433. package/build/src/database/drivers/mysql/columns-index.d.ts +3 -1
  434. package/build/src/database/drivers/mysql/columns-index.d.ts.map +1 -1
  435. package/build/src/database/drivers/mysql/foreign-key.d.ts +1 -1
  436. package/build/src/database/drivers/mysql/foreign-key.d.ts.map +1 -1
  437. package/build/src/database/drivers/mysql/index.d.ts +225 -6
  438. package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
  439. package/build/src/database/drivers/mysql/index.js +5 -5
  440. package/build/src/database/drivers/mysql/options.d.ts +7 -1
  441. package/build/src/database/drivers/mysql/options.d.ts.map +1 -1
  442. package/build/src/database/drivers/mysql/options.js +2 -2
  443. package/build/src/database/drivers/mysql/query-parser.d.ts +1 -1
  444. package/build/src/database/drivers/mysql/query-parser.d.ts.map +1 -1
  445. package/build/src/database/drivers/mysql/query-stream.d.ts.map +1 -1
  446. package/build/src/database/drivers/mysql/query.d.ts +2 -2
  447. package/build/src/database/drivers/mysql/query.d.ts.map +1 -1
  448. package/build/src/database/drivers/mysql/query.js +8 -8
  449. package/build/src/database/drivers/mysql/sql/alter-table.d.ts +12 -1
  450. package/build/src/database/drivers/mysql/sql/alter-table.d.ts.map +1 -1
  451. package/build/src/database/drivers/mysql/sql/create-database.d.ts +6 -1
  452. package/build/src/database/drivers/mysql/sql/create-database.d.ts.map +1 -1
  453. package/build/src/database/drivers/mysql/sql/create-index.d.ts +1 -1
  454. package/build/src/database/drivers/mysql/sql/create-index.d.ts.map +1 -1
  455. package/build/src/database/drivers/mysql/sql/create-table.d.ts +1 -1
  456. package/build/src/database/drivers/mysql/sql/create-table.d.ts.map +1 -1
  457. package/build/src/database/drivers/mysql/sql/delete.d.ts +1 -1
  458. package/build/src/database/drivers/mysql/sql/delete.d.ts.map +1 -1
  459. package/build/src/database/drivers/mysql/sql/drop-database.d.ts +1 -1
  460. package/build/src/database/drivers/mysql/sql/drop-database.d.ts.map +1 -1
  461. package/build/src/database/drivers/mysql/sql/drop-table.d.ts +1 -1
  462. package/build/src/database/drivers/mysql/sql/drop-table.d.ts.map +1 -1
  463. package/build/src/database/drivers/mysql/sql/insert.d.ts +1 -1
  464. package/build/src/database/drivers/mysql/sql/insert.d.ts.map +1 -1
  465. package/build/src/database/drivers/mysql/sql/remove-index.d.ts +1 -1
  466. package/build/src/database/drivers/mysql/sql/remove-index.d.ts.map +1 -1
  467. package/build/src/database/drivers/mysql/sql/update.d.ts +1 -1
  468. package/build/src/database/drivers/mysql/sql/update.d.ts.map +1 -1
  469. package/build/src/database/drivers/mysql/sql/upsert.d.ts +1 -1
  470. package/build/src/database/drivers/mysql/sql/upsert.d.ts.map +1 -1
  471. package/build/src/database/drivers/mysql/structure-sql.d.ts +14 -3
  472. package/build/src/database/drivers/mysql/structure-sql.d.ts.map +1 -1
  473. package/build/src/database/drivers/mysql/structure-sql.js +62 -11
  474. package/build/src/database/drivers/mysql/table.d.ts +11 -6
  475. package/build/src/database/drivers/mysql/table.d.ts.map +1 -1
  476. package/build/src/database/drivers/pgsql/column.d.ts +10 -5
  477. package/build/src/database/drivers/pgsql/column.d.ts.map +1 -1
  478. package/build/src/database/drivers/pgsql/column.js +2 -2
  479. package/build/src/database/drivers/pgsql/columns-index.d.ts +30 -22
  480. package/build/src/database/drivers/pgsql/columns-index.d.ts.map +1 -1
  481. package/build/src/database/drivers/pgsql/foreign-key.d.ts +1 -1
  482. package/build/src/database/drivers/pgsql/foreign-key.d.ts.map +1 -1
  483. package/build/src/database/drivers/pgsql/index.d.ts +157 -6
  484. package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
  485. package/build/src/database/drivers/pgsql/index.js +7 -7
  486. package/build/src/database/drivers/pgsql/options.d.ts +1 -1
  487. package/build/src/database/drivers/pgsql/options.d.ts.map +1 -1
  488. package/build/src/database/drivers/pgsql/query-parser.d.ts +1 -1
  489. package/build/src/database/drivers/pgsql/query-parser.d.ts.map +1 -1
  490. package/build/src/database/drivers/pgsql/sql/alter-table.d.ts +1 -1
  491. package/build/src/database/drivers/pgsql/sql/alter-table.d.ts.map +1 -1
  492. package/build/src/database/drivers/pgsql/sql/create-database.d.ts +2 -1
  493. package/build/src/database/drivers/pgsql/sql/create-database.d.ts.map +1 -1
  494. package/build/src/database/drivers/pgsql/sql/create-index.d.ts +1 -1
  495. package/build/src/database/drivers/pgsql/sql/create-index.d.ts.map +1 -1
  496. package/build/src/database/drivers/pgsql/sql/create-table.d.ts +1 -1
  497. package/build/src/database/drivers/pgsql/sql/create-table.d.ts.map +1 -1
  498. package/build/src/database/drivers/pgsql/sql/delete.d.ts +1 -1
  499. package/build/src/database/drivers/pgsql/sql/delete.d.ts.map +1 -1
  500. package/build/src/database/drivers/pgsql/sql/drop-database.d.ts +1 -1
  501. package/build/src/database/drivers/pgsql/sql/drop-database.d.ts.map +1 -1
  502. package/build/src/database/drivers/pgsql/sql/drop-table.d.ts +1 -1
  503. package/build/src/database/drivers/pgsql/sql/drop-table.d.ts.map +1 -1
  504. package/build/src/database/drivers/pgsql/sql/insert.d.ts +1 -1
  505. package/build/src/database/drivers/pgsql/sql/insert.d.ts.map +1 -1
  506. package/build/src/database/drivers/pgsql/sql/remove-index.d.ts +1 -1
  507. package/build/src/database/drivers/pgsql/sql/remove-index.d.ts.map +1 -1
  508. package/build/src/database/drivers/pgsql/sql/update.d.ts +1 -1
  509. package/build/src/database/drivers/pgsql/sql/update.d.ts.map +1 -1
  510. package/build/src/database/drivers/pgsql/sql/upsert.d.ts +1 -1
  511. package/build/src/database/drivers/pgsql/sql/upsert.d.ts.map +1 -1
  512. package/build/src/database/drivers/pgsql/structure-sql.d.ts +3 -3
  513. package/build/src/database/drivers/pgsql/structure-sql.d.ts.map +1 -1
  514. package/build/src/database/drivers/pgsql/structure-sql.js +2 -2
  515. package/build/src/database/drivers/pgsql/table.d.ts +33 -31
  516. package/build/src/database/drivers/pgsql/table.d.ts.map +1 -1
  517. package/build/src/database/drivers/sqlite/base.d.ts +162 -12
  518. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  519. package/build/src/database/drivers/sqlite/base.js +8 -8
  520. package/build/src/database/drivers/sqlite/column.d.ts +12 -6
  521. package/build/src/database/drivers/sqlite/column.d.ts.map +1 -1
  522. package/build/src/database/drivers/sqlite/column.js +2 -2
  523. package/build/src/database/drivers/sqlite/columns-index.d.ts +5 -1
  524. package/build/src/database/drivers/sqlite/columns-index.d.ts.map +1 -1
  525. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +9 -9
  526. package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
  527. package/build/src/database/drivers/sqlite/connection-sql-js.js +2 -2
  528. package/build/src/database/drivers/sqlite/foreign-key.d.ts +5 -4
  529. package/build/src/database/drivers/sqlite/foreign-key.d.ts.map +1 -1
  530. package/build/src/database/drivers/sqlite/foreign-key.js +2 -2
  531. package/build/src/database/drivers/sqlite/index.d.ts +53 -3
  532. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  533. package/build/src/database/drivers/sqlite/index.js +2 -2
  534. package/build/src/database/drivers/sqlite/index.native.d.ts +13 -5
  535. package/build/src/database/drivers/sqlite/index.native.d.ts.map +1 -1
  536. package/build/src/database/drivers/sqlite/index.native.js +3 -3
  537. package/build/src/database/drivers/sqlite/index.web.d.ts +48 -14
  538. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  539. package/build/src/database/drivers/sqlite/index.web.js +3 -3
  540. package/build/src/database/drivers/sqlite/options.d.ts +1 -1
  541. package/build/src/database/drivers/sqlite/options.d.ts.map +1 -1
  542. package/build/src/database/drivers/sqlite/query-parser.d.ts +1 -1
  543. package/build/src/database/drivers/sqlite/query-parser.d.ts.map +1 -1
  544. package/build/src/database/drivers/sqlite/query.d.ts +2 -2
  545. package/build/src/database/drivers/sqlite/query.d.ts.map +1 -1
  546. package/build/src/database/drivers/sqlite/query.js +3 -3
  547. package/build/src/database/drivers/sqlite/query.native.d.ts +4 -4
  548. package/build/src/database/drivers/sqlite/query.native.d.ts.map +1 -1
  549. package/build/src/database/drivers/sqlite/query.native.js +3 -3
  550. package/build/src/database/drivers/sqlite/query.web.d.ts +2 -2
  551. package/build/src/database/drivers/sqlite/query.web.d.ts.map +1 -1
  552. package/build/src/database/drivers/sqlite/query.web.js +3 -3
  553. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts +19 -4
  554. package/build/src/database/drivers/sqlite/sql/alter-table.d.ts.map +1 -1
  555. package/build/src/database/drivers/sqlite/sql/create-index.d.ts +1 -1
  556. package/build/src/database/drivers/sqlite/sql/create-index.d.ts.map +1 -1
  557. package/build/src/database/drivers/sqlite/sql/create-table.d.ts +1 -1
  558. package/build/src/database/drivers/sqlite/sql/create-table.d.ts.map +1 -1
  559. package/build/src/database/drivers/sqlite/sql/delete.d.ts +1 -1
  560. package/build/src/database/drivers/sqlite/sql/delete.d.ts.map +1 -1
  561. package/build/src/database/drivers/sqlite/sql/drop-table.d.ts +1 -1
  562. package/build/src/database/drivers/sqlite/sql/drop-table.d.ts.map +1 -1
  563. package/build/src/database/drivers/sqlite/sql/insert.d.ts +1 -1
  564. package/build/src/database/drivers/sqlite/sql/insert.d.ts.map +1 -1
  565. package/build/src/database/drivers/sqlite/sql/remove-index.d.ts +1 -1
  566. package/build/src/database/drivers/sqlite/sql/remove-index.d.ts.map +1 -1
  567. package/build/src/database/drivers/sqlite/sql/update.d.ts +1 -1
  568. package/build/src/database/drivers/sqlite/sql/update.d.ts.map +1 -1
  569. package/build/src/database/drivers/sqlite/sql/upsert.d.ts +1 -1
  570. package/build/src/database/drivers/sqlite/sql/upsert.d.ts.map +1 -1
  571. package/build/src/database/drivers/sqlite/structure-sql.d.ts +1 -1
  572. package/build/src/database/drivers/sqlite/structure-sql.d.ts.map +1 -1
  573. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts +5 -5
  574. package/build/src/database/drivers/sqlite/table-rebuilder.d.ts.map +1 -1
  575. package/build/src/database/drivers/sqlite/table-rebuilder.js +2 -2
  576. package/build/src/database/drivers/sqlite/table.d.ts +15 -5
  577. package/build/src/database/drivers/sqlite/table.d.ts.map +1 -1
  578. package/build/src/database/drivers/sqlite/web-persistence.d.ts +28 -34
  579. package/build/src/database/drivers/sqlite/web-persistence.d.ts.map +1 -1
  580. package/build/src/database/drivers/structure-sql/utils.d.ts +2 -2
  581. package/build/src/database/drivers/structure-sql/utils.d.ts.map +1 -1
  582. package/build/src/database/handler.d.ts.map +1 -1
  583. package/build/src/database/initializer-from-require-context.d.ts +18 -16
  584. package/build/src/database/initializer-from-require-context.d.ts.map +1 -1
  585. package/build/src/database/live-query.d.ts +13 -24
  586. package/build/src/database/live-query.d.ts.map +1 -1
  587. package/build/src/database/migration/index.d.ts +146 -169
  588. package/build/src/database/migration/index.d.ts.map +1 -1
  589. package/build/src/database/migration/index.js +3 -3
  590. package/build/src/database/migrations-ledger.d.ts.map +1 -1
  591. package/build/src/database/migrator/files-finder.d.ts +1 -1
  592. package/build/src/database/migrator/files-finder.d.ts.map +1 -1
  593. package/build/src/database/migrator/types.d.ts +26 -2
  594. package/build/src/database/migrator/types.d.ts.map +1 -1
  595. package/build/src/database/migrator/types.js +24 -1
  596. package/build/src/database/migrator.d.ts +10 -10
  597. package/build/src/database/migrator.d.ts.map +1 -1
  598. package/build/src/database/operation-connection.d.ts +3 -3
  599. package/build/src/database/operation-connection.d.ts.map +1 -1
  600. package/build/src/database/operation-lease.d.ts +4 -4
  601. package/build/src/database/operation-lease.d.ts.map +1 -1
  602. package/build/src/database/operation.d.ts +38 -7
  603. package/build/src/database/operation.d.ts.map +1 -1
  604. package/build/src/database/operation.js +55 -8
  605. package/build/src/database/pool/async-tracked-multi-connection.d.ts +174 -79
  606. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  607. package/build/src/database/pool/async-tracked-multi-connection.js +70 -25
  608. package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
  609. package/build/src/database/pool/base-methods-forward.js +3 -3
  610. package/build/src/database/pool/base.d.ts +93 -71
  611. package/build/src/database/pool/base.d.ts.map +1 -1
  612. package/build/src/database/pool/base.js +47 -17
  613. package/build/src/database/pool/single-multi-use.d.ts +243 -10
  614. package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
  615. package/build/src/database/pool/single-multi-use.js +467 -103
  616. package/build/src/database/query/alter-table-base.d.ts +8 -3
  617. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  618. package/build/src/database/query/base.d.ts +3 -3
  619. package/build/src/database/query/base.d.ts.map +1 -1
  620. package/build/src/database/query/create-database-base.d.ts +28 -22
  621. package/build/src/database/query/create-database-base.d.ts.map +1 -1
  622. package/build/src/database/query/create-index-base.d.ts +32 -30
  623. package/build/src/database/query/create-index-base.d.ts.map +1 -1
  624. package/build/src/database/query/create-table-base.d.ts +7 -7
  625. package/build/src/database/query/create-table-base.d.ts.map +1 -1
  626. package/build/src/database/query/delete-base.d.ts +5 -5
  627. package/build/src/database/query/delete-base.d.ts.map +1 -1
  628. package/build/src/database/query/delete-base.js +2 -2
  629. package/build/src/database/query/drop-database-base.d.ts +22 -18
  630. package/build/src/database/query/drop-database-base.d.ts.map +1 -1
  631. package/build/src/database/query/drop-table-base.d.ts +11 -6
  632. package/build/src/database/query/drop-table-base.d.ts.map +1 -1
  633. package/build/src/database/query/from-base.d.ts.map +1 -1
  634. package/build/src/database/query/from-plain.d.ts +3 -2
  635. package/build/src/database/query/from-plain.d.ts.map +1 -1
  636. package/build/src/database/query/from-table.d.ts +3 -2
  637. package/build/src/database/query/from-table.d.ts.map +1 -1
  638. package/build/src/database/query/index.d.ts +92 -107
  639. package/build/src/database/query/index.d.ts.map +1 -1
  640. package/build/src/database/query/index.js +4 -4
  641. package/build/src/database/query/insert-base.d.ts +18 -18
  642. package/build/src/database/query/insert-base.d.ts.map +1 -1
  643. package/build/src/database/query/insert-base.js +5 -5
  644. package/build/src/database/query/join-base.d.ts +1 -1
  645. package/build/src/database/query/join-base.d.ts.map +1 -1
  646. package/build/src/database/query/join-object.d.ts +9 -15
  647. package/build/src/database/query/join-object.d.ts.map +1 -1
  648. package/build/src/database/query/join-plain.d.ts +2 -2
  649. package/build/src/database/query/join-plain.d.ts.map +1 -1
  650. package/build/src/database/query/join-tracker.d.ts +3 -3
  651. package/build/src/database/query/join-tracker.d.ts.map +1 -1
  652. package/build/src/database/query/model-class-query.d.ts +39 -36
  653. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  654. package/build/src/database/query/model-class-query.js +40 -40
  655. package/build/src/database/query/order-base.d.ts +1 -1
  656. package/build/src/database/query/order-base.d.ts.map +1 -1
  657. package/build/src/database/query/order-column.d.ts +19 -22
  658. package/build/src/database/query/order-column.d.ts.map +1 -1
  659. package/build/src/database/query/order-plain.d.ts +3 -3
  660. package/build/src/database/query/order-plain.d.ts.map +1 -1
  661. package/build/src/database/query/preloader/belongs-to.d.ts +5 -5
  662. package/build/src/database/query/preloader/belongs-to.d.ts.map +1 -1
  663. package/build/src/database/query/preloader/belongs-to.js +3 -3
  664. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts +2 -1
  665. package/build/src/database/query/preloader/ensure-model-class-initialized.d.ts.map +1 -1
  666. package/build/src/database/query/preloader/ensure-model-class-initialized.js +4 -3
  667. package/build/src/database/query/preloader/has-many.d.ts +6 -6
  668. package/build/src/database/query/preloader/has-many.d.ts.map +1 -1
  669. package/build/src/database/query/preloader/has-many.js +4 -4
  670. package/build/src/database/query/preloader/has-one.d.ts +5 -5
  671. package/build/src/database/query/preloader/has-one.d.ts.map +1 -1
  672. package/build/src/database/query/preloader/has-one.js +2 -2
  673. package/build/src/database/query/preloader/query-for-model.d.ts.map +1 -1
  674. package/build/src/database/query/preloader/selection.d.ts +6 -6
  675. package/build/src/database/query/preloader/selection.d.ts.map +1 -1
  676. package/build/src/database/query/preloader.d.ts +8 -8
  677. package/build/src/database/query/preloader.d.ts.map +1 -1
  678. package/build/src/database/query/preloader.js +9 -3
  679. package/build/src/database/query/query-data.d.ts +43 -55
  680. package/build/src/database/query/query-data.d.ts.map +1 -1
  681. package/build/src/database/query/query-data.js +8 -8
  682. package/build/src/database/query/remove-index-base.d.ts +21 -19
  683. package/build/src/database/query/remove-index-base.d.ts.map +1 -1
  684. package/build/src/database/query/select-base.d.ts +1 -1
  685. package/build/src/database/query/select-base.d.ts.map +1 -1
  686. package/build/src/database/query/select-plain.d.ts +3 -2
  687. package/build/src/database/query/select-plain.d.ts.map +1 -1
  688. package/build/src/database/query/select-table-and-column.d.ts +4 -3
  689. package/build/src/database/query/select-table-and-column.d.ts.map +1 -1
  690. package/build/src/database/query/update-base.d.ts +10 -10
  691. package/build/src/database/query/update-base.d.ts.map +1 -1
  692. package/build/src/database/query/update-base.js +4 -4
  693. package/build/src/database/query/upsert-base.d.ts +9 -9
  694. package/build/src/database/query/upsert-base.d.ts.map +1 -1
  695. package/build/src/database/query/upsert-base.js +3 -3
  696. package/build/src/database/query/where-base.d.ts +1 -1
  697. package/build/src/database/query/where-base.d.ts.map +1 -1
  698. package/build/src/database/query/where-combinator.d.ts +9 -4
  699. package/build/src/database/query/where-combinator.d.ts.map +1 -1
  700. package/build/src/database/query/where-hash.d.ts +11 -9
  701. package/build/src/database/query/where-hash.d.ts.map +1 -1
  702. package/build/src/database/query/where-model-class-hash.d.ts +28 -26
  703. package/build/src/database/query/where-model-class-hash.d.ts.map +1 -1
  704. package/build/src/database/query/where-model-class-hash.js +14 -14
  705. package/build/src/database/query/where-not.d.ts +8 -3
  706. package/build/src/database/query/where-not.d.ts.map +1 -1
  707. package/build/src/database/query/where-plain.d.ts +4 -3
  708. package/build/src/database/query/where-plain.d.ts.map +1 -1
  709. package/build/src/database/query/with-count.d.ts +22 -28
  710. package/build/src/database/query/with-count.d.ts.map +1 -1
  711. package/build/src/database/query/with-count.js +12 -12
  712. package/build/src/database/query-aborted-error.d.ts +5 -5
  713. package/build/src/database/query-aborted-error.d.ts.map +1 -1
  714. package/build/src/database/query-parser/base-query-parser.d.ts +3 -3
  715. package/build/src/database/query-parser/base-query-parser.d.ts.map +1 -1
  716. package/build/src/database/query-parser/from-parser.d.ts +2 -2
  717. package/build/src/database/query-parser/from-parser.d.ts.map +1 -1
  718. package/build/src/database/query-parser/group-parser.d.ts +2 -2
  719. package/build/src/database/query-parser/group-parser.d.ts.map +1 -1
  720. package/build/src/database/query-parser/joins-parser.d.ts +3 -3
  721. package/build/src/database/query-parser/joins-parser.d.ts.map +1 -1
  722. package/build/src/database/query-parser/limit-parser.d.ts +2 -2
  723. package/build/src/database/query-parser/limit-parser.d.ts.map +1 -1
  724. package/build/src/database/query-parser/options.d.ts +31 -34
  725. package/build/src/database/query-parser/options.d.ts.map +1 -1
  726. package/build/src/database/query-parser/options.js +3 -3
  727. package/build/src/database/query-parser/order-parser.d.ts +2 -2
  728. package/build/src/database/query-parser/order-parser.d.ts.map +1 -1
  729. package/build/src/database/query-parser/select-parser.d.ts +2 -2
  730. package/build/src/database/query-parser/select-parser.d.ts.map +1 -1
  731. package/build/src/database/query-parser/select-parser.js +2 -2
  732. package/build/src/database/query-parser/where-parser.d.ts +2 -2
  733. package/build/src/database/query-parser/where-parser.d.ts.map +1 -1
  734. package/build/src/database/record/acts-as-list.d.ts.map +1 -1
  735. package/build/src/database/record/acts-as-list.js +3 -3
  736. package/build/src/database/record/attachments/attachment-record.d.ts +7 -3
  737. package/build/src/database/record/attachments/attachment-record.d.ts.map +1 -1
  738. package/build/src/database/record/attachments/download.d.ts +9 -9
  739. package/build/src/database/record/attachments/download.d.ts.map +1 -1
  740. package/build/src/database/record/attachments/handle.d.ts +12 -12
  741. package/build/src/database/record/attachments/handle.d.ts.map +1 -1
  742. package/build/src/database/record/attachments/handle.js +7 -7
  743. package/build/src/database/record/attachments/normalize-input.d.ts +16 -22
  744. package/build/src/database/record/attachments/normalize-input.d.ts.map +1 -1
  745. package/build/src/database/record/attachments/normalize-input.js +12 -12
  746. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts +4 -4
  747. package/build/src/database/record/attachments/storage-drivers/filesystem.d.ts.map +1 -1
  748. package/build/src/database/record/attachments/storage-drivers/filesystem.js +2 -2
  749. package/build/src/database/record/attachments/storage-drivers/native.d.ts +12 -12
  750. package/build/src/database/record/attachments/storage-drivers/native.d.ts.map +1 -1
  751. package/build/src/database/record/attachments/storage-drivers/native.js +6 -6
  752. package/build/src/database/record/attachments/storage-drivers/s3.d.ts +17 -17
  753. package/build/src/database/record/attachments/storage-drivers/s3.d.ts.map +1 -1
  754. package/build/src/database/record/attachments/storage-drivers/s3.js +11 -11
  755. package/build/src/database/record/attachments/store.d.ts +38 -41
  756. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  757. package/build/src/database/record/attachments/store.js +24 -21
  758. package/build/src/database/record/auditing.d.ts +67 -87
  759. package/build/src/database/record/auditing.d.ts.map +1 -1
  760. package/build/src/database/record/auditing.js +109 -30
  761. package/build/src/database/record/counter-cache-magnitude.d.ts +15 -35
  762. package/build/src/database/record/counter-cache-magnitude.d.ts.map +1 -1
  763. package/build/src/database/record/counter-cache-magnitude.js +12 -12
  764. package/build/src/database/record/index.d.ts +2390 -488
  765. package/build/src/database/record/index.d.ts.map +1 -1
  766. package/build/src/database/record/index.js +222 -172
  767. package/build/src/database/record/instance-relationships/base.d.ts +20 -23
  768. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  769. package/build/src/database/record/instance-relationships/base.js +5 -5
  770. package/build/src/database/record/instance-relationships/belongs-to.d.ts +9 -1
  771. package/build/src/database/record/instance-relationships/belongs-to.d.ts.map +1 -1
  772. package/build/src/database/record/instance-relationships/belongs-to.js +2 -2
  773. package/build/src/database/record/instance-relationships/has-many.d.ts +15 -3
  774. package/build/src/database/record/instance-relationships/has-many.d.ts.map +1 -1
  775. package/build/src/database/record/instance-relationships/has-many.js +4 -4
  776. package/build/src/database/record/instance-relationships/has-one.d.ts +19 -1
  777. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  778. package/build/src/database/record/instance-relationships/has-one.js +2 -2
  779. package/build/src/database/record/record-not-found-error.d.ts +1 -0
  780. package/build/src/database/record/record-not-found-error.d.ts.map +1 -1
  781. package/build/src/database/record/record-not-found-error.js +2 -1
  782. package/build/src/database/record/relationships/base.d.ts +83 -71
  783. package/build/src/database/record/relationships/base.d.ts.map +1 -1
  784. package/build/src/database/record/relationships/base.js +21 -1
  785. package/build/src/database/record/relationships/belongs-to.d.ts +11 -1
  786. package/build/src/database/record/relationships/belongs-to.d.ts.map +1 -1
  787. package/build/src/database/record/relationships/has-many.d.ts +11 -1
  788. package/build/src/database/record/relationships/has-many.d.ts.map +1 -1
  789. package/build/src/database/record/relationships/has-one.d.ts +11 -1
  790. package/build/src/database/record/relationships/has-one.d.ts.map +1 -1
  791. package/build/src/database/record/state-machine.d.ts +20 -29
  792. package/build/src/database/record/state-machine.d.ts.map +1 -1
  793. package/build/src/database/record/state-machine.js +7 -7
  794. package/build/src/database/record/user-module.d.ts +1 -1
  795. package/build/src/database/record/user-module.d.ts.map +1 -1
  796. package/build/src/database/record/validation-messages.d.ts +19 -22
  797. package/build/src/database/record/validation-messages.d.ts.map +1 -1
  798. package/build/src/database/record/validators/base.d.ts +4 -4
  799. package/build/src/database/record/validators/base.d.ts.map +1 -1
  800. package/build/src/database/record/validators/base.js +2 -2
  801. package/build/src/database/record/validators/format.d.ts +12 -1
  802. package/build/src/database/record/validators/format.d.ts.map +1 -1
  803. package/build/src/database/record/validators/length.d.ts +14 -1
  804. package/build/src/database/record/validators/length.d.ts.map +1 -1
  805. package/build/src/database/record/validators/presence.d.ts +11 -1
  806. package/build/src/database/record/validators/presence.d.ts.map +1 -1
  807. package/build/src/database/record/validators/uniqueness.d.ts +12 -1
  808. package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
  809. package/build/src/database/record-changes.d.ts +7 -18
  810. package/build/src/database/record-changes.d.ts.map +1 -1
  811. package/build/src/database/structure-sql-loader.d.ts +2 -2
  812. package/build/src/database/structure-sql-loader.d.ts.map +1 -1
  813. package/build/src/database/structure-sql-loader.js +4 -4
  814. package/build/src/database/table-data/index.d.ts +21 -24
  815. package/build/src/database/table-data/index.d.ts.map +1 -1
  816. package/build/src/database/table-data/table-column.d.ts +74 -80
  817. package/build/src/database/table-data/table-column.d.ts.map +1 -1
  818. package/build/src/database/table-data/table-column.js +4 -4
  819. package/build/src/database/table-data/table-foreign-key.d.ts +10 -10
  820. package/build/src/database/table-data/table-foreign-key.d.ts.map +1 -1
  821. package/build/src/database/table-data/table-index.d.ts +12 -15
  822. package/build/src/database/table-data/table-index.d.ts.map +1 -1
  823. package/build/src/database/table-data/table-reference.d.ts +2 -2
  824. package/build/src/database/table-data/table-reference.d.ts.map +1 -1
  825. package/build/src/database/tenants/data-copier.d.ts +7 -7
  826. package/build/src/database/tenants/data-copier.d.ts.map +1 -1
  827. package/build/src/database/tenants/schema-cloner.d.ts +3 -3
  828. package/build/src/database/tenants/schema-cloner.d.ts.map +1 -1
  829. package/build/src/database/tenants/tenant-table-plan.d.ts +20 -14
  830. package/build/src/database/tenants/tenant-table-plan.d.ts.map +1 -1
  831. package/build/src/database/tenants/tenant-table-plan.js +17 -1
  832. package/build/src/database/use-database.d.ts.map +1 -1
  833. package/build/src/database/use-live-query.d.ts +17 -29
  834. package/build/src/database/use-live-query.d.ts.map +1 -1
  835. package/build/src/database/use-live-query.js +4 -4
  836. package/build/src/environment-handlers/base.d.ts +112 -103
  837. package/build/src/environment-handlers/base.d.ts.map +1 -1
  838. package/build/src/environment-handlers/base.js +54 -38
  839. package/build/src/environment-handlers/browser.d.ts +63 -56
  840. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  841. package/build/src/environment-handlers/browser.js +2 -2
  842. package/build/src/environment-handlers/node/attachment-path-source.d.ts +9 -9
  843. package/build/src/environment-handlers/node/attachment-path-source.d.ts.map +1 -1
  844. package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts +1 -1
  845. package/build/src/environment-handlers/node/cli/commands/background-jobs-main.d.ts.map +1 -1
  846. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts +1 -1
  847. package/build/src/environment-handlers/node/cli/commands/background-jobs-runner.d.ts.map +1 -1
  848. package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts +1 -1
  849. package/build/src/environment-handlers/node/cli/commands/background-jobs-worker.d.ts.map +1 -1
  850. package/build/src/environment-handlers/node/cli/commands/beacon.d.ts +1 -1
  851. package/build/src/environment-handlers/node/cli/commands/beacon.d.ts.map +1 -1
  852. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts +7 -10
  853. package/build/src/environment-handlers/node/cli/commands/cli-command-context.d.ts.map +1 -1
  854. package/build/src/environment-handlers/node/cli/commands/console.d.ts +9 -7
  855. package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
  856. package/build/src/environment-handlers/node/cli/commands/console.js +5 -5
  857. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +1 -1
  858. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
  859. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +1 -1
  860. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
  861. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts +7 -5
  862. package/build/src/environment-handlers/node/cli/commands/db/seed.d.ts.map +1 -1
  863. package/build/src/environment-handlers/node/cli/commands/db/seed.js +3 -3
  864. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts +4 -7
  865. package/build/src/environment-handlers/node/cli/commands/destroy/migration.d.ts.map +1 -1
  866. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +1 -1
  867. package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
  868. package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +2 -2
  869. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +93 -108
  870. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  871. package/build/src/environment-handlers/node/cli/commands/generate/generated-file-banner.d.ts.map +1 -1
  872. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts +9 -12
  873. package/build/src/environment-handlers/node/cli/commands/generate/migration.d.ts.map +1 -1
  874. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts +8 -11
  875. package/build/src/environment-handlers/node/cli/commands/generate/model.d.ts.map +1 -1
  876. package/build/src/environment-handlers/node/cli/commands/init.d.ts +7 -9
  877. package/build/src/environment-handlers/node/cli/commands/init.d.ts.map +1 -1
  878. package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts +7 -7
  879. package/build/src/environment-handlers/node/cli/commands/lint/relationships.d.ts.map +1 -1
  880. package/build/src/environment-handlers/node/cli/commands/routes.d.ts +1 -1
  881. package/build/src/environment-handlers/node/cli/commands/routes.d.ts.map +1 -1
  882. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts +7 -5
  883. package/build/src/environment-handlers/node/cli/commands/run-script.d.ts.map +1 -1
  884. package/build/src/environment-handlers/node/cli/commands/run-script.js +3 -3
  885. package/build/src/environment-handlers/node/cli/commands/runner.d.ts +9 -7
  886. package/build/src/environment-handlers/node/cli/commands/runner.d.ts.map +1 -1
  887. package/build/src/environment-handlers/node/cli/commands/runner.js +3 -3
  888. package/build/src/environment-handlers/node/cli/commands/server.d.ts +24 -30
  889. package/build/src/environment-handlers/node/cli/commands/server.d.ts.map +1 -1
  890. package/build/src/environment-handlers/node/cli/commands/server.js +2 -2
  891. package/build/src/environment-handlers/node/cli/commands/test.d.ts +5 -5
  892. package/build/src/environment-handlers/node/cli/commands/test.d.ts.map +1 -1
  893. package/build/src/environment-handlers/node/source-peer-package.d.ts +5 -7
  894. package/build/src/environment-handlers/node/source-peer-package.d.ts.map +1 -1
  895. package/build/src/environment-handlers/node/source-peer-package.js +1 -1
  896. package/build/src/environment-handlers/node.d.ts +362 -13
  897. package/build/src/environment-handlers/node.d.ts.map +1 -1
  898. package/build/src/environment-handlers/node.js +37 -37
  899. package/build/src/error-logger.d.ts +3 -3
  900. package/build/src/error-logger.d.ts.map +1 -1
  901. package/build/src/error-logger.js +3 -3
  902. package/build/src/error-reporting/request-details.d.ts +1 -1
  903. package/build/src/error-reporting/request-details.d.ts.map +1 -1
  904. package/build/src/error-reporting/request-details.js +33 -33
  905. package/build/src/frontend-model-controller.d.ts +216 -230
  906. package/build/src/frontend-model-controller.d.ts.map +1 -1
  907. package/build/src/frontend-model-controller.js +217 -211
  908. package/build/src/frontend-model-resource/base-resource.d.ts +315 -365
  909. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  910. package/build/src/frontend-model-resource/base-resource.js +45 -45
  911. package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts +11 -5
  912. package/build/src/frontend-model-resource/velocious-attachment-resource.d.ts.map +1 -1
  913. package/build/src/frontend-model-resource/velocious-attachment-resource.js +2 -2
  914. package/build/src/frontend-models/base.d.ts +632 -726
  915. package/build/src/frontend-models/base.d.ts.map +1 -1
  916. package/build/src/frontend-models/base.js +147 -143
  917. package/build/src/frontend-models/built-in-resources.d.ts +2 -2
  918. package/build/src/frontend-models/built-in-resources.d.ts.map +1 -1
  919. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts +2 -2
  920. package/build/src/frontend-models/clear-pending-debounced-callback.d.ts.map +1 -1
  921. package/build/src/frontend-models/clear-pending-debounced-callback.js +3 -3
  922. package/build/src/frontend-models/event-hook-models.d.ts +3 -6
  923. package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
  924. package/build/src/frontend-models/model-registry.d.ts +5 -5
  925. package/build/src/frontend-models/model-registry.d.ts.map +1 -1
  926. package/build/src/frontend-models/model-registry.js +5 -5
  927. package/build/src/frontend-models/outgoing-event-buffer.d.ts +20 -17
  928. package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
  929. package/build/src/frontend-models/outgoing-event-buffer.js +2 -2
  930. package/build/src/frontend-models/preloader.d.ts.map +1 -1
  931. package/build/src/frontend-models/preloader.js +2 -2
  932. package/build/src/frontend-models/query.d.ts +286 -331
  933. package/build/src/frontend-models/query.d.ts.map +1 -1
  934. package/build/src/frontend-models/query.js +61 -61
  935. package/build/src/frontend-models/resource-config-validation.d.ts +2 -2
  936. package/build/src/frontend-models/resource-config-validation.d.ts.map +1 -1
  937. package/build/src/frontend-models/resource-definition.d.ts +30 -33
  938. package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
  939. package/build/src/frontend-models/resource-definition.js +10 -10
  940. package/build/src/frontend-models/transport-deadline.d.ts.map +1 -1
  941. package/build/src/frontend-models/transport-serialization.d.ts +26 -32
  942. package/build/src/frontend-models/transport-serialization.d.ts.map +1 -1
  943. package/build/src/frontend-models/transport-serialization.js +28 -28
  944. package/build/src/frontend-models/use-created-event.d.ts +4 -4
  945. package/build/src/frontend-models/use-created-event.d.ts.map +1 -1
  946. package/build/src/frontend-models/use-destroyed-event.d.ts +8 -29
  947. package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
  948. package/build/src/frontend-models/use-model-class-event.d.ts +9 -33
  949. package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
  950. package/build/src/frontend-models/use-updated-event.d.ts +8 -29
  951. package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
  952. package/build/src/frontend-models/websocket-channel.d.ts +30 -34
  953. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  954. package/build/src/frontend-models/websocket-channel.js +5 -5
  955. package/build/src/frontend-models/websocket-publishers.d.ts +4 -4
  956. package/build/src/frontend-models/websocket-publishers.d.ts.map +1 -1
  957. package/build/src/frontend-models/websocket-publishers.js +2 -2
  958. package/build/src/http-client/header.d.ts +2 -2
  959. package/build/src/http-client/header.d.ts.map +1 -1
  960. package/build/src/http-client/index.d.ts +23 -23
  961. package/build/src/http-client/index.d.ts.map +1 -1
  962. package/build/src/http-client/request.d.ts +9 -9
  963. package/build/src/http-client/request.d.ts.map +1 -1
  964. package/build/src/http-client/request.js +2 -2
  965. package/build/src/http-client/response.d.ts +12 -12
  966. package/build/src/http-client/response.d.ts.map +1 -1
  967. package/build/src/http-client/response.js +2 -2
  968. package/build/src/http-client/websocket-client.d.ts +20 -4
  969. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  970. package/build/src/http-server/client/index.d.ts +26 -26
  971. package/build/src/http-server/client/index.d.ts.map +1 -1
  972. package/build/src/http-server/client/index.js +5 -5
  973. package/build/src/http-server/client/params-to-object.d.ts +11 -11
  974. package/build/src/http-server/client/params-to-object.d.ts.map +1 -1
  975. package/build/src/http-server/client/params-to-object.js +17 -17
  976. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +9 -9
  977. package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
  978. package/build/src/http-server/client/request-buffer/header.d.ts +3 -3
  979. package/build/src/http-server/client/request-buffer/header.d.ts.map +1 -1
  980. package/build/src/http-server/client/request-buffer/index.d.ts +28 -30
  981. package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
  982. package/build/src/http-server/client/request-buffer/index.js +5 -3
  983. package/build/src/http-server/client/request-parser.d.ts +11 -11
  984. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  985. package/build/src/http-server/client/request-parser.js +3 -3
  986. package/build/src/http-server/client/request-runner.d.ts +11 -11
  987. package/build/src/http-server/client/request-runner.d.ts.map +1 -1
  988. package/build/src/http-server/client/request-runner.js +3 -3
  989. package/build/src/http-server/client/request-timing.d.ts +5 -11
  990. package/build/src/http-server/client/request-timing.d.ts.map +1 -1
  991. package/build/src/http-server/client/request.d.ts +10 -10
  992. package/build/src/http-server/client/request.d.ts.map +1 -1
  993. package/build/src/http-server/client/request.js +3 -3
  994. package/build/src/http-server/client/response-compression.d.ts +5 -5
  995. package/build/src/http-server/client/response-compression.d.ts.map +1 -1
  996. package/build/src/http-server/client/response.d.ts +13 -13
  997. package/build/src/http-server/client/response.d.ts.map +1 -1
  998. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts +8 -2
  999. package/build/src/http-server/client/uploaded-file/memory-uploaded-file.d.ts.map +1 -1
  1000. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts +8 -2
  1001. package/build/src/http-server/client/uploaded-file/temporary-uploaded-file.d.ts.map +1 -1
  1002. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts +4 -4
  1003. package/build/src/http-server/client/uploaded-file/uploaded-file.d.ts.map +1 -1
  1004. package/build/src/http-server/client/websocket-request.d.ts +26 -26
  1005. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  1006. package/build/src/http-server/client/websocket-request.js +7 -7
  1007. package/build/src/http-server/client/websocket-session.d.ts +105 -108
  1008. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  1009. package/build/src/http-server/client/websocket-session.js +29 -29
  1010. package/build/src/http-server/client-delivery-queue.d.ts +30 -30
  1011. package/build/src/http-server/client-delivery-queue.d.ts.map +1 -1
  1012. package/build/src/http-server/cookie.d.ts +80 -108
  1013. package/build/src/http-server/cookie.d.ts.map +1 -1
  1014. package/build/src/http-server/cookie.js +3 -3
  1015. package/build/src/http-server/development-reloader.d.ts +24 -24
  1016. package/build/src/http-server/development-reloader.d.ts.map +1 -1
  1017. package/build/src/http-server/development-reloader.js +2 -2
  1018. package/build/src/http-server/index.d.ts +66 -72
  1019. package/build/src/http-server/index.d.ts.map +1 -1
  1020. package/build/src/http-server/index.js +6 -6
  1021. package/build/src/http-server/remote-address.d.ts.map +1 -1
  1022. package/build/src/http-server/remote-address.js +2 -2
  1023. package/build/src/http-server/server-client.d.ts +9 -9
  1024. package/build/src/http-server/server-client.d.ts.map +1 -1
  1025. package/build/src/http-server/server-lock.d.ts +11 -11
  1026. package/build/src/http-server/server-lock.d.ts.map +1 -1
  1027. package/build/src/http-server/server-lock.js +5 -5
  1028. package/build/src/http-server/websocket-channel-subscribers.d.ts +11 -10
  1029. package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
  1030. package/build/src/http-server/websocket-channel-subscribers.js +6 -6
  1031. package/build/src/http-server/websocket-channel.d.ts +8 -14
  1032. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  1033. package/build/src/http-server/websocket-channel.js +2 -2
  1034. package/build/src/http-server/websocket-connection.d.ts +10 -10
  1035. package/build/src/http-server/websocket-connection.d.ts.map +1 -1
  1036. package/build/src/http-server/websocket-connection.js +4 -4
  1037. package/build/src/http-server/websocket-event-log-store.d.ts +58 -64
  1038. package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
  1039. package/build/src/http-server/websocket-event-log-store.js +10 -10
  1040. package/build/src/http-server/websocket-events-host.d.ts +17 -16
  1041. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  1042. package/build/src/http-server/websocket-events-host.js +8 -8
  1043. package/build/src/http-server/websocket-events.d.ts +9 -9
  1044. package/build/src/http-server/websocket-events.d.ts.map +1 -1
  1045. package/build/src/http-server/websocket-events.js +5 -5
  1046. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts +2 -2
  1047. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.d.ts.map +1 -1
  1048. package/build/src/http-server/worker-handler/channel-subscriber-dispatch.js +2 -2
  1049. package/build/src/http-server/worker-handler/in-process.d.ts +22 -22
  1050. package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
  1051. package/build/src/http-server/worker-handler/in-process.js +6 -6
  1052. package/build/src/http-server/worker-handler/index.d.ts +50 -50
  1053. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  1054. package/build/src/http-server/worker-handler/index.js +11 -11
  1055. package/build/src/http-server/worker-handler/worker-thread.d.ts +61 -61
  1056. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  1057. package/build/src/http-server/worker-handler/worker-thread.js +9 -9
  1058. package/build/src/initializer.d.ts +2 -2
  1059. package/build/src/initializer.d.ts.map +1 -1
  1060. package/build/src/jobs/mail-delivery.d.ts +7 -2
  1061. package/build/src/jobs/mail-delivery.d.ts.map +1 -1
  1062. package/build/src/jobs/prune-terminal-background-jobs.d.ts +15 -2
  1063. package/build/src/jobs/prune-terminal-background-jobs.d.ts.map +1 -1
  1064. package/build/src/jobs/prune-terminal-background-jobs.js +1 -1
  1065. package/build/src/logger/base-logger.d.ts.map +1 -1
  1066. package/build/src/logger/base-logger.js +2 -2
  1067. package/build/src/logger/console-logger.d.ts +3 -3
  1068. package/build/src/logger/console-logger.d.ts.map +1 -1
  1069. package/build/src/logger/file-logger.d.ts +4 -4
  1070. package/build/src/logger/file-logger.d.ts.map +1 -1
  1071. package/build/src/logger/outputs/array-output.d.ts +9 -12
  1072. package/build/src/logger/outputs/array-output.d.ts.map +1 -1
  1073. package/build/src/logger/outputs/console-output.d.ts +1 -4
  1074. package/build/src/logger/outputs/console-output.d.ts.map +1 -1
  1075. package/build/src/logger/outputs/file-output.d.ts +13 -16
  1076. package/build/src/logger/outputs/file-output.d.ts.map +1 -1
  1077. package/build/src/logger/outputs/stdout-output.d.ts +1 -4
  1078. package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
  1079. package/build/src/logger.d.ts +30 -29
  1080. package/build/src/logger.d.ts.map +1 -1
  1081. package/build/src/logger.js +13 -13
  1082. package/build/src/mailer/backends/smtp.d.ts +8 -11
  1083. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  1084. package/build/src/mailer/backends/smtp.js +4 -4
  1085. package/build/src/mailer/base.d.ts +61 -61
  1086. package/build/src/mailer/base.d.ts.map +1 -1
  1087. package/build/src/mailer/base.js +15 -15
  1088. package/build/src/mailer/delivery.d.ts +16 -16
  1089. package/build/src/mailer/delivery.d.ts.map +1 -1
  1090. package/build/src/mailer/delivery.js +4 -4
  1091. package/build/src/mailer/index.d.ts +8 -13
  1092. package/build/src/mailer/index.d.ts.map +1 -1
  1093. package/build/src/mailer/index.js +2 -2
  1094. package/build/src/mailer.d.ts +9 -7
  1095. package/build/src/mailer.d.ts.map +1 -1
  1096. package/build/src/mailer.js +2 -2
  1097. package/build/src/packages/velocious-package.d.ts +5 -5
  1098. package/build/src/packages/velocious-package.d.ts.map +1 -1
  1099. package/build/src/plugins/sqljs-wasm-route-controller.d.ts +1 -1
  1100. package/build/src/plugins/sqljs-wasm-route-controller.d.ts.map +1 -1
  1101. package/build/src/plugins/sqljs-wasm-route-controller.js +2 -2
  1102. package/build/src/plugins/sqljs-wasm-route.d.ts +14 -20
  1103. package/build/src/plugins/sqljs-wasm-route.d.ts.map +1 -1
  1104. package/build/src/plugins/sqljs-wasm-route.js +1 -1
  1105. package/build/src/record-payload-values.d.ts +14 -14
  1106. package/build/src/record-payload-values.d.ts.map +1 -1
  1107. package/build/src/record-payload-values.js +4 -4
  1108. package/build/src/routes/app-routes.d.ts.map +1 -1
  1109. package/build/src/routes/base-route.d.ts +11 -10
  1110. package/build/src/routes/base-route.d.ts.map +1 -1
  1111. package/build/src/routes/base-route.js +6 -6
  1112. package/build/src/routes/basic-route.d.ts +36 -3
  1113. package/build/src/routes/basic-route.d.ts.map +1 -1
  1114. package/build/src/routes/basic-route.js +5 -5
  1115. package/build/src/routes/built-in/api-manifest/controller.d.ts +1 -1
  1116. package/build/src/routes/built-in/api-manifest/controller.d.ts.map +1 -1
  1117. package/build/src/routes/built-in/debug/controller.d.ts +1 -1
  1118. package/build/src/routes/built-in/debug/controller.d.ts.map +1 -1
  1119. package/build/src/routes/built-in/errors/controller.d.ts +1 -1
  1120. package/build/src/routes/built-in/errors/controller.d.ts.map +1 -1
  1121. package/build/src/routes/get-route.d.ts +19 -4
  1122. package/build/src/routes/get-route.d.ts.map +1 -1
  1123. package/build/src/routes/get-route.js +3 -3
  1124. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts +1 -1
  1125. package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
  1126. package/build/src/routes/hooks/frontend-model-command-route-hook.js +2 -2
  1127. package/build/src/routes/index.d.ts +5 -5
  1128. package/build/src/routes/index.d.ts.map +1 -1
  1129. package/build/src/routes/index.js +4 -4
  1130. package/build/src/routes/namespace-route.d.ts +19 -4
  1131. package/build/src/routes/namespace-route.d.ts.map +1 -1
  1132. package/build/src/routes/namespace-route.js +2 -2
  1133. package/build/src/routes/plugin-routes.d.ts +16 -19
  1134. package/build/src/routes/plugin-routes.d.ts.map +1 -1
  1135. package/build/src/routes/plugin-routes.js +2 -2
  1136. package/build/src/routes/post-route.d.ts +19 -4
  1137. package/build/src/routes/post-route.d.ts.map +1 -1
  1138. package/build/src/routes/post-route.js +3 -3
  1139. package/build/src/routes/resolver.d.ts +16 -16
  1140. package/build/src/routes/resolver.d.ts.map +1 -1
  1141. package/build/src/routes/resolver.js +6 -6
  1142. package/build/src/routes/resource-route.d.ts +23 -8
  1143. package/build/src/routes/resource-route.d.ts.map +1 -1
  1144. package/build/src/routes/resource-route.js +2 -2
  1145. package/build/src/routes/root-route.d.ts +1 -1
  1146. package/build/src/routes/root-route.d.ts.map +1 -1
  1147. package/build/src/sync/conflict-strategy.d.ts +50 -35
  1148. package/build/src/sync/conflict-strategy.d.ts.map +1 -1
  1149. package/build/src/sync/conflict-strategy.js +2 -2
  1150. package/build/src/sync/device-identity.d.ts +109 -79
  1151. package/build/src/sync/device-identity.d.ts.map +1 -1
  1152. package/build/src/sync/local-mutation-log.d.ts +115 -92
  1153. package/build/src/sync/local-mutation-log.d.ts.map +1 -1
  1154. package/build/src/sync/offline-grant.d.ts +80 -63
  1155. package/build/src/sync/offline-grant.d.ts.map +1 -1
  1156. package/build/src/sync/peer-mutation-bundle.d.ts +33 -39
  1157. package/build/src/sync/peer-mutation-bundle.d.ts.map +1 -1
  1158. package/build/src/sync/query-scope.d.ts +3 -3
  1159. package/build/src/sync/query-scope.d.ts.map +1 -1
  1160. package/build/src/sync/query-scope.js +8 -8
  1161. package/build/src/sync/server-change-feed.d.ts +129 -129
  1162. package/build/src/sync/server-change-feed.d.ts.map +1 -1
  1163. package/build/src/sync/server-change-feed.js +14 -14
  1164. package/build/src/sync/server-sequence-allocator.d.ts +36 -36
  1165. package/build/src/sync/server-sequence-allocator.d.ts.map +1 -1
  1166. package/build/src/sync/server-sequence-allocator.js +6 -6
  1167. package/build/src/sync/signed-sync-envelope-replay-service.d.ts +60 -48
  1168. package/build/src/sync/signed-sync-envelope-replay-service.d.ts.map +1 -1
  1169. package/build/src/sync/signed-sync-envelope-replay-service.js +21 -21
  1170. package/build/src/sync/stable-json.d.ts +2 -2
  1171. package/build/src/sync/stable-json.d.ts.map +1 -1
  1172. package/build/src/sync/stable-json.js +5 -5
  1173. package/build/src/sync/sync-api-client-types.d.ts +98 -25
  1174. package/build/src/sync/sync-api-client-types.d.ts.map +1 -1
  1175. package/build/src/sync/sync-api-client-types.js +73 -1
  1176. package/build/src/sync/sync-api-client.d.ts +71 -71
  1177. package/build/src/sync/sync-api-client.d.ts.map +1 -1
  1178. package/build/src/sync/sync-api-client.js +30 -30
  1179. package/build/src/sync/sync-api-controller.d.ts +23 -23
  1180. package/build/src/sync/sync-api-controller.d.ts.map +1 -1
  1181. package/build/src/sync/sync-change-fanout.d.ts +32 -38
  1182. package/build/src/sync/sync-change-fanout.d.ts.map +1 -1
  1183. package/build/src/sync/sync-change-fanout.js +7 -7
  1184. package/build/src/sync/sync-channel-name.d.ts +1 -1
  1185. package/build/src/sync/sync-channel-name.d.ts.map +1 -1
  1186. package/build/src/sync/sync-client-registry.d.ts +4 -4
  1187. package/build/src/sync/sync-client-registry.d.ts.map +1 -1
  1188. package/build/src/sync/sync-client-registry.js +4 -4
  1189. package/build/src/sync/sync-client-types.d.ts +130 -82
  1190. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  1191. package/build/src/sync/sync-client-types.js +89 -1
  1192. package/build/src/sync/sync-client.d.ts +76 -76
  1193. package/build/src/sync/sync-client.d.ts.map +1 -1
  1194. package/build/src/sync/sync-client.js +19 -19
  1195. package/build/src/sync/sync-envelope-replay-service.d.ts +266 -298
  1196. package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
  1197. package/build/src/sync/sync-envelope-replay-service.js +77 -77
  1198. package/build/src/sync/sync-model-change-feed-service.d.ts +23 -23
  1199. package/build/src/sync/sync-model-change-feed-service.d.ts.map +1 -1
  1200. package/build/src/sync/sync-model-change-feed-service.js +8 -8
  1201. package/build/src/sync/sync-publish-suppression.d.ts +5 -5
  1202. package/build/src/sync/sync-publish-suppression.d.ts.map +1 -1
  1203. package/build/src/sync/sync-publish-suppression.js +3 -3
  1204. package/build/src/sync/sync-publisher-types.d.ts +98 -55
  1205. package/build/src/sync/sync-publisher-types.d.ts.map +1 -1
  1206. package/build/src/sync/sync-publisher-types.js +75 -1
  1207. package/build/src/sync/sync-publisher.d.ts +43 -43
  1208. package/build/src/sync/sync-publisher.d.ts.map +1 -1
  1209. package/build/src/sync/sync-publisher.js +20 -20
  1210. package/build/src/sync/sync-realtime-bridge.d.ts +23 -23
  1211. package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
  1212. package/build/src/sync/sync-realtime-bridge.js +9 -9
  1213. package/build/src/sync/sync-replay-upsert-applier.d.ts +70 -70
  1214. package/build/src/sync/sync-replay-upsert-applier.d.ts.map +1 -1
  1215. package/build/src/sync/sync-replay-upsert-applier.js +17 -17
  1216. package/build/src/sync/sync-resource-base.d.ts +52 -51
  1217. package/build/src/sync/sync-resource-base.d.ts.map +1 -1
  1218. package/build/src/sync/sync-resource-base.js +15 -15
  1219. package/build/src/sync/sync-scope-attributes.d.ts +2 -2
  1220. package/build/src/sync/sync-scope-attributes.d.ts.map +1 -1
  1221. package/build/src/sync/sync-scope-attributes.js +2 -2
  1222. package/build/src/sync/sync-scope-store.d.ts +36 -36
  1223. package/build/src/sync/sync-scope-store.d.ts.map +1 -1
  1224. package/build/src/sync/sync-scope-store.js +6 -6
  1225. package/build/src/sync/sync-websocket-channel.d.ts +11 -6
  1226. package/build/src/sync/sync-websocket-channel.d.ts.map +1 -1
  1227. package/build/src/sync/sync-websocket-channel.js +6 -6
  1228. package/build/src/tenants/default-tenant-database-provisioning.d.ts +4 -4
  1229. package/build/src/tenants/default-tenant-database-provisioning.d.ts.map +1 -1
  1230. package/build/src/tenants/default-tenant-database-provisioning.js +2 -2
  1231. package/build/src/tenants/tenant-aggregator.d.ts +81 -81
  1232. package/build/src/tenants/tenant-aggregator.d.ts.map +1 -1
  1233. package/build/src/tenants/tenant-aggregator.js +13 -13
  1234. package/build/src/tenants/tenant-handle.d.ts +64 -0
  1235. package/build/src/tenants/tenant-handle.d.ts.map +1 -0
  1236. package/build/src/tenants/tenant-handle.js +221 -0
  1237. package/build/src/tenants/tenant-iterator.d.ts +17 -17
  1238. package/build/src/tenants/tenant-iterator.d.ts.map +1 -1
  1239. package/build/src/tenants/tenant-iterator.js +7 -7
  1240. package/build/src/tenants/tenant-model-scope.d.ts +73 -0
  1241. package/build/src/tenants/tenant-model-scope.d.ts.map +1 -0
  1242. package/build/src/tenants/tenant-model-scope.js +115 -0
  1243. package/build/src/tenants/tenant.d.ts +16 -6
  1244. package/build/src/tenants/tenant.d.ts.map +1 -1
  1245. package/build/src/tenants/tenant.js +15 -3
  1246. package/build/src/testing/base-expect.d.ts.map +1 -1
  1247. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts +19 -31
  1248. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
  1249. package/build/src/testing/browser-test-app.js +6 -6
  1250. package/build/src/testing/expect-to-change.d.ts +9 -7
  1251. package/build/src/testing/expect-to-change.d.ts.map +1 -1
  1252. package/build/src/testing/expect-to-change.js +2 -2
  1253. package/build/src/testing/expect-utils.d.ts +30 -29
  1254. package/build/src/testing/expect-utils.d.ts.map +1 -1
  1255. package/build/src/testing/expect-utils.js +30 -30
  1256. package/build/src/testing/expect.d.ts +30 -30
  1257. package/build/src/testing/expect.d.ts.map +1 -1
  1258. package/build/src/testing/expect.js +19 -19
  1259. package/build/src/testing/factory/association-declaration.d.ts +16 -16
  1260. package/build/src/testing/factory/association-declaration.d.ts.map +1 -1
  1261. package/build/src/testing/factory/association-declaration.js +3 -3
  1262. package/build/src/testing/factory/declarations.d.ts +90 -115
  1263. package/build/src/testing/factory/declarations.d.ts.map +1 -1
  1264. package/build/src/testing/factory/declarations.js +6 -6
  1265. package/build/src/testing/factory/definition-builder.d.ts +72 -70
  1266. package/build/src/testing/factory/definition-builder.d.ts.map +1 -1
  1267. package/build/src/testing/factory/definition-builder.js +40 -40
  1268. package/build/src/testing/factory/errors.d.ts +30 -29
  1269. package/build/src/testing/factory/errors.d.ts.map +1 -1
  1270. package/build/src/testing/factory/evaluation-context.d.ts +29 -29
  1271. package/build/src/testing/factory/evaluation-context.d.ts.map +1 -1
  1272. package/build/src/testing/factory/evaluation-context.js +17 -17
  1273. package/build/src/testing/factory/events.d.ts +4 -5
  1274. package/build/src/testing/factory/events.d.ts.map +1 -1
  1275. package/build/src/testing/factory/factory-definition.d.ts +14 -14
  1276. package/build/src/testing/factory/factory-definition.d.ts.map +1 -1
  1277. package/build/src/testing/factory/factory-definition.js +3 -3
  1278. package/build/src/testing/factory/factory-registry.d.ts +56 -54
  1279. package/build/src/testing/factory/factory-registry.d.ts.map +1 -1
  1280. package/build/src/testing/factory/factory-registry.js +35 -35
  1281. package/build/src/testing/factory/factory-runner.d.ts +67 -73
  1282. package/build/src/testing/factory/factory-runner.d.ts.map +1 -1
  1283. package/build/src/testing/factory/factory-runner.js +9 -9
  1284. package/build/src/testing/factory/index.d.ts +7 -7
  1285. package/build/src/testing/factory/index.d.ts.map +1 -1
  1286. package/build/src/testing/factory/linter.d.ts +7 -7
  1287. package/build/src/testing/factory/linter.d.ts.map +1 -1
  1288. package/build/src/testing/factory/linter.js +3 -3
  1289. package/build/src/testing/factory/model-contract.d.ts +3 -3
  1290. package/build/src/testing/factory/model-contract.d.ts.map +1 -1
  1291. package/build/src/testing/factory/model-contract.js +4 -4
  1292. package/build/src/testing/factory/node/load-definitions.d.ts +2 -2
  1293. package/build/src/testing/factory/node/load-definitions.d.ts.map +1 -1
  1294. package/build/src/testing/factory/sequence.d.ts +19 -23
  1295. package/build/src/testing/factory/sequence.d.ts.map +1 -1
  1296. package/build/src/testing/factory/sequence.js +3 -3
  1297. package/build/src/testing/factory/strategies/attributes-for.d.ts +3 -3
  1298. package/build/src/testing/factory/strategies/attributes-for.d.ts.map +1 -1
  1299. package/build/src/testing/factory/strategies/attributes-for.js +2 -2
  1300. package/build/src/testing/factory/strategies/base.d.ts +32 -32
  1301. package/build/src/testing/factory/strategies/base.d.ts.map +1 -1
  1302. package/build/src/testing/factory/strategies/base.js +25 -25
  1303. package/build/src/testing/factory/strategies/build.d.ts +3 -3
  1304. package/build/src/testing/factory/strategies/build.d.ts.map +1 -1
  1305. package/build/src/testing/factory/strategies/build.js +3 -3
  1306. package/build/src/testing/factory/strategies/create.d.ts +6 -6
  1307. package/build/src/testing/factory/strategies/create.d.ts.map +1 -1
  1308. package/build/src/testing/factory/strategies/create.js +5 -5
  1309. package/build/src/testing/factory/trait-definition.d.ts +4 -4
  1310. package/build/src/testing/factory/trait-definition.d.ts.map +1 -1
  1311. package/build/src/testing/request-client.d.ts +19 -19
  1312. package/build/src/testing/request-client.d.ts.map +1 -1
  1313. package/build/src/testing/test-files-finder.d.ts +15 -15
  1314. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  1315. package/build/src/testing/test-files-finder.js +2 -2
  1316. package/build/src/testing/test-filter-parser.d.ts +19 -12
  1317. package/build/src/testing/test-filter-parser.d.ts.map +1 -1
  1318. package/build/src/testing/test-runner.d.ts +204 -251
  1319. package/build/src/testing/test-runner.d.ts.map +1 -1
  1320. package/build/src/testing/test-runner.js +15 -15
  1321. package/build/src/testing/test-suite-splitter.d.ts +25 -31
  1322. package/build/src/testing/test-suite-splitter.d.ts.map +1 -1
  1323. package/build/src/testing/test.d.ts +51 -55
  1324. package/build/src/testing/test.d.ts.map +1 -1
  1325. package/build/src/testing/test.js +20 -18
  1326. package/build/src/testing/wait-for-event.d.ts +25 -25
  1327. package/build/src/testing/wait-for-event.d.ts.map +1 -1
  1328. package/build/src/testing/wait-for-event.js +6 -6
  1329. package/build/src/time-zone.d.ts +3 -3
  1330. package/build/src/time-zone.d.ts.map +1 -1
  1331. package/build/src/utils/backtrace-cleaner-node.d.ts +35 -2
  1332. package/build/src/utils/backtrace-cleaner-node.d.ts.map +1 -1
  1333. package/build/src/utils/backtrace-cleaner-node.js +1 -1
  1334. package/build/src/utils/backtrace-cleaner.d.ts +33 -28
  1335. package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
  1336. package/build/src/utils/bearer-token.d.ts +2 -2
  1337. package/build/src/utils/bearer-token.d.ts.map +1 -1
  1338. package/build/src/utils/deburr-column-name.d.ts.map +1 -1
  1339. package/build/src/utils/event-emitter.d.ts +1 -1
  1340. package/build/src/utils/event-emitter.d.ts.map +1 -1
  1341. package/build/src/utils/event-emitter.js +2 -2
  1342. package/build/src/utils/file-exists.d.ts.map +1 -1
  1343. package/build/src/utils/format-value.d.ts +9 -8
  1344. package/build/src/utils/format-value.d.ts.map +1 -1
  1345. package/build/src/utils/format-value.js +7 -7
  1346. package/build/src/utils/is-date.d.ts +2 -2
  1347. package/build/src/utils/is-date.d.ts.map +1 -1
  1348. package/build/src/utils/is-date.js +2 -2
  1349. package/build/src/utils/model-scope.d.ts +29 -24
  1350. package/build/src/utils/model-scope.d.ts.map +1 -1
  1351. package/build/src/utils/model-scope.js +11 -11
  1352. package/build/src/utils/mount-prefix.d.ts +2 -2
  1353. package/build/src/utils/mount-prefix.d.ts.map +1 -1
  1354. package/build/src/utils/nest-callbacks.d.ts.map +1 -1
  1355. package/build/src/utils/plain-object.d.ts +3 -3
  1356. package/build/src/utils/plain-object.d.ts.map +1 -1
  1357. package/build/src/utils/plain-object.js +3 -3
  1358. package/build/src/utils/ransack.d.ts +69 -90
  1359. package/build/src/utils/ransack.d.ts.map +1 -1
  1360. package/build/src/utils/ransack.js +36 -36
  1361. package/build/src/utils/rest-args-error.d.ts.map +1 -1
  1362. package/build/src/utils/sha256-hex.d.ts.map +1 -1
  1363. package/build/src/utils/shutdown-lifecycle.d.ts +1 -1
  1364. package/build/src/utils/shutdown-lifecycle.d.ts.map +1 -1
  1365. package/build/src/utils/singularize-model-name.d.ts.map +1 -1
  1366. package/build/src/utils/split-sql-statements.d.ts.map +1 -1
  1367. package/build/src/utils/to-import-specifier.d.ts.map +1 -1
  1368. package/build/src/utils/with-tracked-stack-async-hooks.d.ts +6 -5
  1369. package/build/src/utils/with-tracked-stack-async-hooks.d.ts.map +1 -1
  1370. package/build/src/utils/with-tracked-stack-async-hooks.js +9 -9
  1371. package/build/src/utils/with-tracked-stack.d.ts +6 -5
  1372. package/build/src/utils/with-tracked-stack.d.ts.map +1 -1
  1373. package/build/src/utils/with-tracked-stack.js +7 -7
  1374. package/build/src/velocious-error.d.ts +27 -17
  1375. package/build/src/velocious-error.d.ts.map +1 -1
  1376. package/build/src/velocious-error.js +10 -4
  1377. package/build/sync/conflict-strategy.js +1 -1
  1378. package/build/sync/query-scope.js +7 -7
  1379. package/build/sync/server-change-feed.js +13 -13
  1380. package/build/sync/server-sequence-allocator.js +5 -5
  1381. package/build/sync/signed-sync-envelope-replay-service.js +20 -20
  1382. package/build/sync/stable-json.js +4 -4
  1383. package/build/sync/sync-api-client-types.js +7 -7
  1384. package/build/sync/sync-api-client.js +26 -26
  1385. package/build/sync/sync-change-fanout.js +6 -6
  1386. package/build/sync/sync-client-registry.js +3 -3
  1387. package/build/sync/sync-client-types.js +10 -10
  1388. package/build/sync/sync-client.js +18 -18
  1389. package/build/sync/sync-envelope-replay-service.js +76 -76
  1390. package/build/sync/sync-model-change-feed-service.js +7 -7
  1391. package/build/sync/sync-publish-suppression.js +2 -2
  1392. package/build/sync/sync-publisher-types.js +11 -11
  1393. package/build/sync/sync-publisher.js +19 -19
  1394. package/build/sync/sync-realtime-bridge.js +8 -8
  1395. package/build/sync/sync-replay-upsert-applier.js +16 -16
  1396. package/build/sync/sync-resource-base.js +14 -14
  1397. package/build/sync/sync-scope-attributes.js +1 -1
  1398. package/build/sync/sync-scope-store.js +5 -5
  1399. package/build/sync/sync-websocket-channel.js +5 -5
  1400. package/build/tenants/default-tenant-database-provisioning.js +1 -1
  1401. package/build/tenants/tenant-aggregator.js +13 -13
  1402. package/build/tenants/tenant-handle.js +252 -0
  1403. package/build/tenants/tenant-iterator.js +6 -6
  1404. package/build/tenants/tenant-model-scope.js +132 -0
  1405. package/build/tenants/tenant.js +15 -2
  1406. package/build/testing/browser-test-app.js +2 -2
  1407. package/build/testing/expect-to-change.js +1 -1
  1408. package/build/testing/expect-utils.js +29 -29
  1409. package/build/testing/expect.js +18 -18
  1410. package/build/testing/factory/association-declaration.js +2 -2
  1411. package/build/testing/factory/declarations.js +5 -5
  1412. package/build/testing/factory/definition-builder.js +39 -39
  1413. package/build/testing/factory/evaluation-context.js +16 -16
  1414. package/build/testing/factory/factory-definition.js +2 -2
  1415. package/build/testing/factory/factory-registry.js +34 -34
  1416. package/build/testing/factory/factory-runner.js +8 -8
  1417. package/build/testing/factory/linter.js +2 -2
  1418. package/build/testing/factory/model-contract.js +3 -3
  1419. package/build/testing/factory/sequence.js +2 -2
  1420. package/build/testing/factory/strategies/attributes-for.js +1 -1
  1421. package/build/testing/factory/strategies/base.js +24 -24
  1422. package/build/testing/factory/strategies/build.js +2 -2
  1423. package/build/testing/factory/strategies/create.js +4 -4
  1424. package/build/testing/test-files-finder.js +1 -1
  1425. package/build/testing/test-runner.js +14 -14
  1426. package/build/testing/test.js +19 -17
  1427. package/build/testing/wait-for-event.js +5 -5
  1428. package/build/tsconfig.tsbuildinfo +1 -1
  1429. package/build/utils/event-emitter.js +1 -1
  1430. package/build/utils/format-value.js +6 -6
  1431. package/build/utils/is-date.js +1 -1
  1432. package/build/utils/model-scope.js +10 -10
  1433. package/build/utils/plain-object.js +2 -2
  1434. package/build/utils/ransack.js +35 -35
  1435. package/build/utils/with-tracked-stack-async-hooks.js +8 -8
  1436. package/build/utils/with-tracked-stack.js +6 -6
  1437. package/build/velocious-error.js +9 -3
  1438. package/package.json +3 -3
  1439. package/src/application.js +3 -3
  1440. package/src/authorization/ability.js +6 -6
  1441. package/src/authorization/base-resource.js +1 -1
  1442. package/src/background-jobs/client.js +2 -2
  1443. package/src/background-jobs/forked-runner-child.js +4 -4
  1444. package/src/background-jobs/job-runner.js +2 -2
  1445. package/src/background-jobs/job.js +6 -6
  1446. package/src/background-jobs/json-socket.js +1 -1
  1447. package/src/background-jobs/main.js +13 -13
  1448. package/src/background-jobs/normalize-error.js +2 -2
  1449. package/src/background-jobs/pooled-runner-child.js +3 -3
  1450. package/src/background-jobs/scheduler.js +1 -1
  1451. package/src/background-jobs/status-reporter.js +2 -2
  1452. package/src/background-jobs/store.js +23 -23
  1453. package/src/background-jobs/types.js +6 -6
  1454. package/src/background-jobs/web/controller.js +6 -6
  1455. package/src/background-jobs/web/counts-channel.js +1 -1
  1456. package/src/background-jobs/worker.js +8 -8
  1457. package/src/beacon/client.js +3 -3
  1458. package/src/beacon/in-process-client.js +3 -3
  1459. package/src/beacon/types.js +1 -1
  1460. package/src/cli/base-command.js +1 -1
  1461. package/src/cli/commands/console.js +1 -1
  1462. package/src/cli/commands/db/schema/dump.js +1 -1
  1463. package/src/cli/commands/db/schema/load.js +1 -1
  1464. package/src/cli/commands/db/seed.js +1 -1
  1465. package/src/cli/commands/generate/frontend-models.js +1 -1
  1466. package/src/cli/commands/lint/relationships.js +1 -1
  1467. package/src/cli/commands/run-script.js +1 -1
  1468. package/src/cli/commands/runner.js +1 -1
  1469. package/src/cli/index.js +2 -2
  1470. package/src/cli/tenant-database-command-helper.js +2 -2
  1471. package/src/configuration-types.js +48 -47
  1472. package/src/configuration.js +150 -65
  1473. package/src/controller.js +11 -8
  1474. package/src/current.js +2 -2
  1475. package/src/database/annotations-async-hooks.js +3 -3
  1476. package/src/database/annotations.js +1 -1
  1477. package/src/database/drivers/base-column.js +1 -1
  1478. package/src/database/drivers/base-foreign-key.js +1 -1
  1479. package/src/database/drivers/base-table.js +1 -1
  1480. package/src/database/drivers/base.js +18 -18
  1481. package/src/database/drivers/mssql/column.js +1 -1
  1482. package/src/database/drivers/mssql/index.js +2 -2
  1483. package/src/database/drivers/mssql/options.js +1 -1
  1484. package/src/database/drivers/mssql/structure-sql.js +1 -1
  1485. package/src/database/drivers/mssql/table.js +1 -1
  1486. package/src/database/drivers/mysql/column.js +1 -1
  1487. package/src/database/drivers/mysql/index.js +4 -4
  1488. package/src/database/drivers/mysql/options.js +1 -1
  1489. package/src/database/drivers/mysql/query.js +7 -7
  1490. package/src/database/drivers/mysql/structure-sql.js +71 -10
  1491. package/src/database/drivers/pgsql/column.js +1 -1
  1492. package/src/database/drivers/pgsql/index.js +6 -6
  1493. package/src/database/drivers/pgsql/structure-sql.js +1 -1
  1494. package/src/database/drivers/sqlite/base.js +7 -7
  1495. package/src/database/drivers/sqlite/column.js +1 -1
  1496. package/src/database/drivers/sqlite/connection-sql-js.js +1 -1
  1497. package/src/database/drivers/sqlite/foreign-key.js +1 -1
  1498. package/src/database/drivers/sqlite/index.js +1 -1
  1499. package/src/database/drivers/sqlite/index.native.js +2 -2
  1500. package/src/database/drivers/sqlite/index.web.js +2 -2
  1501. package/src/database/drivers/sqlite/query.js +2 -2
  1502. package/src/database/drivers/sqlite/query.native.js +2 -2
  1503. package/src/database/drivers/sqlite/query.web.js +2 -2
  1504. package/src/database/drivers/sqlite/table-rebuilder.js +1 -1
  1505. package/src/database/migration/index.js +2 -2
  1506. package/src/database/migrator/types.js +2 -2
  1507. package/src/database/operation.js +59 -6
  1508. package/src/database/pool/async-tracked-multi-connection.js +75 -24
  1509. package/src/database/pool/base-methods-forward.js +2 -2
  1510. package/src/database/pool/base.js +48 -17
  1511. package/src/database/pool/single-multi-use.js +501 -103
  1512. package/src/database/query/delete-base.js +1 -1
  1513. package/src/database/query/index.js +3 -3
  1514. package/src/database/query/insert-base.js +4 -4
  1515. package/src/database/query/model-class-query.js +39 -39
  1516. package/src/database/query/preloader/belongs-to.js +2 -2
  1517. package/src/database/query/preloader/ensure-model-class-initialized.js +3 -2
  1518. package/src/database/query/preloader/has-many.js +3 -3
  1519. package/src/database/query/preloader/has-one.js +1 -1
  1520. package/src/database/query/preloader.js +9 -2
  1521. package/src/database/query/query-data.js +7 -7
  1522. package/src/database/query/update-base.js +3 -3
  1523. package/src/database/query/upsert-base.js +2 -2
  1524. package/src/database/query/where-model-class-hash.js +13 -13
  1525. package/src/database/query/with-count.js +12 -12
  1526. package/src/database/query-parser/options.js +2 -2
  1527. package/src/database/query-parser/select-parser.js +1 -1
  1528. package/src/database/record/acts-as-list.js +2 -2
  1529. package/src/database/record/attachments/handle.js +6 -6
  1530. package/src/database/record/attachments/normalize-input.js +11 -11
  1531. package/src/database/record/attachments/storage-drivers/filesystem.js +1 -1
  1532. package/src/database/record/attachments/storage-drivers/native.js +5 -5
  1533. package/src/database/record/attachments/storage-drivers/s3.js +10 -10
  1534. package/src/database/record/attachments/store.js +24 -20
  1535. package/src/database/record/auditing.js +123 -29
  1536. package/src/database/record/counter-cache-magnitude.js +11 -11
  1537. package/src/database/record/index.js +227 -174
  1538. package/src/database/record/instance-relationships/base.js +4 -4
  1539. package/src/database/record/instance-relationships/belongs-to.js +1 -1
  1540. package/src/database/record/instance-relationships/has-many.js +3 -3
  1541. package/src/database/record/instance-relationships/has-one.js +1 -1
  1542. package/src/database/record/record-not-found-error.js +1 -0
  1543. package/src/database/record/relationships/base.js +22 -0
  1544. package/src/database/record/state-machine.js +6 -6
  1545. package/src/database/record/validators/base.js +1 -1
  1546. package/src/database/structure-sql-loader.js +3 -3
  1547. package/src/database/table-data/table-column.js +3 -3
  1548. package/src/database/use-live-query.js +3 -3
  1549. package/src/environment-handlers/base.js +56 -37
  1550. package/src/environment-handlers/browser.js +1 -1
  1551. package/src/environment-handlers/node/cli/commands/console.js +4 -4
  1552. package/src/environment-handlers/node/cli/commands/db/seed.js +2 -2
  1553. package/src/environment-handlers/node/cli/commands/generate/base-models.js +1 -1
  1554. package/src/environment-handlers/node/cli/commands/run-script.js +2 -2
  1555. package/src/environment-handlers/node/cli/commands/runner.js +2 -2
  1556. package/src/environment-handlers/node/cli/commands/server.js +1 -1
  1557. package/src/environment-handlers/node.js +36 -36
  1558. package/src/error-logger.js +2 -2
  1559. package/src/error-reporting/request-details.js +32 -32
  1560. package/src/frontend-model-controller.js +215 -213
  1561. package/src/frontend-model-resource/base-resource.js +44 -44
  1562. package/src/frontend-model-resource/velocious-attachment-resource.js +1 -1
  1563. package/src/frontend-models/base.js +146 -142
  1564. package/src/frontend-models/clear-pending-debounced-callback.js +2 -2
  1565. package/src/frontend-models/model-registry.js +4 -4
  1566. package/src/frontend-models/outgoing-event-buffer.js +1 -1
  1567. package/src/frontend-models/preloader.js +1 -1
  1568. package/src/frontend-models/query.js +60 -60
  1569. package/src/frontend-models/resource-definition.js +9 -9
  1570. package/src/frontend-models/transport-serialization.js +27 -27
  1571. package/src/frontend-models/websocket-channel.js +4 -4
  1572. package/src/frontend-models/websocket-publishers.js +1 -1
  1573. package/src/http-client/request.js +1 -1
  1574. package/src/http-client/response.js +1 -1
  1575. package/src/http-server/client/index.js +4 -4
  1576. package/src/http-server/client/params-to-object.js +16 -16
  1577. package/src/http-server/client/request-buffer/index.js +5 -2
  1578. package/src/http-server/client/request-parser.js +2 -2
  1579. package/src/http-server/client/request-runner.js +2 -2
  1580. package/src/http-server/client/request.js +2 -2
  1581. package/src/http-server/client/websocket-request.js +6 -6
  1582. package/src/http-server/client/websocket-session.js +28 -28
  1583. package/src/http-server/cookie.js +2 -2
  1584. package/src/http-server/development-reloader.js +1 -1
  1585. package/src/http-server/index.js +5 -5
  1586. package/src/http-server/remote-address.js +1 -1
  1587. package/src/http-server/server-lock.js +4 -4
  1588. package/src/http-server/websocket-channel-subscribers.js +4 -4
  1589. package/src/http-server/websocket-channel.js +1 -1
  1590. package/src/http-server/websocket-connection.js +3 -3
  1591. package/src/http-server/websocket-event-log-store.js +9 -9
  1592. package/src/http-server/websocket-events-host.js +7 -7
  1593. package/src/http-server/websocket-events.js +4 -4
  1594. package/src/http-server/worker-handler/channel-subscriber-dispatch.js +1 -1
  1595. package/src/http-server/worker-handler/in-process.js +5 -5
  1596. package/src/http-server/worker-handler/index.js +10 -10
  1597. package/src/http-server/worker-handler/worker-thread.js +8 -8
  1598. package/src/logger/base-logger.js +1 -1
  1599. package/src/logger.js +12 -12
  1600. package/src/mailer/backends/smtp.js +3 -3
  1601. package/src/mailer/base.js +14 -14
  1602. package/src/mailer/delivery.js +3 -3
  1603. package/src/mailer/index.js +1 -1
  1604. package/src/mailer.js +1 -1
  1605. package/src/plugins/sqljs-wasm-route-controller.js +1 -1
  1606. package/src/record-payload-values.js +3 -3
  1607. package/src/routes/base-route.js +5 -5
  1608. package/src/routes/basic-route.js +4 -4
  1609. package/src/routes/get-route.js +2 -2
  1610. package/src/routes/hooks/frontend-model-command-route-hook.js +1 -1
  1611. package/src/routes/index.js +3 -3
  1612. package/src/routes/namespace-route.js +1 -1
  1613. package/src/routes/plugin-routes.js +1 -1
  1614. package/src/routes/post-route.js +2 -2
  1615. package/src/routes/resolver.js +5 -5
  1616. package/src/routes/resource-route.js +1 -1
  1617. package/src/sync/conflict-strategy.js +1 -1
  1618. package/src/sync/query-scope.js +7 -7
  1619. package/src/sync/server-change-feed.js +13 -13
  1620. package/src/sync/server-sequence-allocator.js +5 -5
  1621. package/src/sync/signed-sync-envelope-replay-service.js +20 -20
  1622. package/src/sync/stable-json.js +4 -4
  1623. package/src/sync/sync-api-client-types.js +7 -7
  1624. package/src/sync/sync-api-client.js +26 -26
  1625. package/src/sync/sync-change-fanout.js +6 -6
  1626. package/src/sync/sync-client-registry.js +3 -3
  1627. package/src/sync/sync-client-types.js +10 -10
  1628. package/src/sync/sync-client.js +18 -18
  1629. package/src/sync/sync-envelope-replay-service.js +76 -76
  1630. package/src/sync/sync-model-change-feed-service.js +7 -7
  1631. package/src/sync/sync-publish-suppression.js +2 -2
  1632. package/src/sync/sync-publisher-types.js +11 -11
  1633. package/src/sync/sync-publisher.js +19 -19
  1634. package/src/sync/sync-realtime-bridge.js +8 -8
  1635. package/src/sync/sync-replay-upsert-applier.js +16 -16
  1636. package/src/sync/sync-resource-base.js +14 -14
  1637. package/src/sync/sync-scope-attributes.js +1 -1
  1638. package/src/sync/sync-scope-store.js +5 -5
  1639. package/src/sync/sync-websocket-channel.js +5 -5
  1640. package/src/tenants/default-tenant-database-provisioning.js +1 -1
  1641. package/src/tenants/tenant-aggregator.js +13 -13
  1642. package/src/tenants/tenant-handle.js +252 -0
  1643. package/src/tenants/tenant-iterator.js +6 -6
  1644. package/src/tenants/tenant-model-scope.js +132 -0
  1645. package/src/tenants/tenant.js +15 -2
  1646. package/src/testing/browser-test-app.js +2 -2
  1647. package/src/testing/expect-to-change.js +1 -1
  1648. package/src/testing/expect-utils.js +29 -29
  1649. package/src/testing/expect.js +18 -18
  1650. package/src/testing/factory/association-declaration.js +2 -2
  1651. package/src/testing/factory/declarations.js +5 -5
  1652. package/src/testing/factory/definition-builder.js +39 -39
  1653. package/src/testing/factory/evaluation-context.js +16 -16
  1654. package/src/testing/factory/factory-definition.js +2 -2
  1655. package/src/testing/factory/factory-registry.js +34 -34
  1656. package/src/testing/factory/factory-runner.js +8 -8
  1657. package/src/testing/factory/linter.js +2 -2
  1658. package/src/testing/factory/model-contract.js +3 -3
  1659. package/src/testing/factory/sequence.js +2 -2
  1660. package/src/testing/factory/strategies/attributes-for.js +1 -1
  1661. package/src/testing/factory/strategies/base.js +24 -24
  1662. package/src/testing/factory/strategies/build.js +2 -2
  1663. package/src/testing/factory/strategies/create.js +4 -4
  1664. package/src/testing/test-files-finder.js +1 -1
  1665. package/src/testing/test-runner.js +14 -14
  1666. package/src/testing/test.js +19 -17
  1667. package/src/testing/wait-for-event.js +5 -5
  1668. package/src/utils/event-emitter.js +1 -1
  1669. package/src/utils/format-value.js +6 -6
  1670. package/src/utils/is-date.js +1 -1
  1671. package/src/utils/model-scope.js +10 -10
  1672. package/src/utils/plain-object.js +2 -2
  1673. package/src/utils/ransack.js +35 -35
  1674. package/src/utils/with-tracked-stack-async-hooks.js +8 -8
  1675. package/src/utils/with-tracked-stack.js +6 -6
  1676. package/src/velocious-error.js +9 -3
@@ -55,11 +55,12 @@ import ValidatorsLength from "./validators/length.js"
55
55
  import ValidatorsPresence from "./validators/presence.js"
56
56
  import ValidatorsUniqueness from "./validators/uniqueness.js"
57
57
  import registerActsAsListCallbacks from "./acts-as-list.js"
58
+ import TenantModelScope from "../../tenants/tenant-model-scope.js"
58
59
  import UUID from "pure-uuid"
59
60
 
60
61
  /**
61
62
  * Translation record shape used by translated attributes.
62
- * @typedef {VelociousDatabaseRecord & {locale: function(): string}} TranslationBase
63
+ * @typedef {VelociousDatabaseRecord & {locale: () => string}} TranslationBase
63
64
  */
64
65
  /**
65
66
  * AttachmentDriverConstructor type.
@@ -75,7 +76,7 @@ const declaredBooleanFalsyValues = new Set([0, false, "0"])
75
76
  class ValidationError extends Error {
76
77
  /**
77
78
  * Narrows the runtime value to the documented type.
78
- * @type {Record<string, ?> | undefined} - Velocious metadata for frontend-model error reporting.
79
+ * @type {Record<string, ReturnType<typeof JSON.parse>> | undefined} - Velocious metadata for frontend-model error reporting.
79
80
  */
80
81
  velocious
81
82
 
@@ -150,9 +151,9 @@ function applyBuiltRecordInverseRelationship({allowHasMany, inverseOf, parent, r
150
151
  * Build a related record and wire its inverse relationship to the parent.
151
152
  * @param {VelociousDatabaseRecord} parent - Parent record building the relationship.
152
153
  * @param {string} relationshipName - Relationship name being built.
153
- * @param {Record<string, ?>} attributes - Attributes for the new related record.
154
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} attributes - Attributes for the new related record.
154
155
  * @param {boolean} allowHasMany - Whether has-many inverse relationships should append the parent.
155
- * @returns {Record<string, ?>} - Built related record.
156
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} - Built related record.
156
157
  */
157
158
  function buildRelatedRecordWithInverse(parent, relationshipName, attributes, allowHasMany) {
158
159
  const instanceRelationship = parent.getRelationshipByName(relationshipName)
@@ -184,9 +185,38 @@ class TenantDatabaseScopeError extends Error {
184
185
 
185
186
  /**
186
187
  * Base database record.
187
- * @template {Record<string, ?>} [WriteAttributes=Record<string, ?>]
188
+ * @template {Record<string, ReturnType<typeof JSON.parse>>} [WriteAttributes=Record<string, ReturnType<typeof JSON.parse>>]
188
189
  */
189
190
  class VelociousDatabaseRecord {
191
+ /** @type {Record<string, string> | undefined} */
192
+ static _attributeNameToColumnName = undefined
193
+ /** @type {Record<string, string> | undefined} */
194
+ static _columnNameToAttributeName = undefined
195
+ /** @type {Record<string, object> | undefined} */
196
+ static _translations = undefined
197
+ /** @type {Record<string, import("./validators/base.js").default[]> | undefined} */
198
+ static _validators = undefined
199
+ /** @type {Record<string, LifecycleCallbackType[]> | undefined} */
200
+ static _lifecycleCallbacks = undefined
201
+ /** @type {Record<string, typeof import("./validators/base.js").default> | undefined} */
202
+ static _validatorTypes = undefined
203
+ /** @type {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>, type: "hasOne" | "hasMany"}> | undefined} */
204
+ static _attachmentsMap = undefined
205
+ /** @type {Record<string, import("./relationships/base.js").default> | undefined} */
206
+ static _relationships = undefined
207
+ /** @type {Record<string, import("../query/query-data.js").QueryDataFn> | undefined} */
208
+ static _queryDataRegistrations = undefined
209
+ /** @type {Record<string, {allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ReturnType<typeof JSON.parse>>) => boolean}> | undefined} */
210
+ static _acceptedNestedAttributes = undefined
211
+ /** @type {Record<string, string> | undefined} */
212
+ static _attributeCasts = undefined
213
+ /** @type {Record<string, import("../drivers/base-column.js").default> | undefined} */
214
+ static _columnsAsHash = undefined
215
+ /** @type {Array<string> | undefined} */
216
+ static _columnNames = undefined
217
+ /** @type {Record<string, string> | undefined} */
218
+ static _columnTypeByName = undefined
219
+
190
220
  /**
191
221
  * Narrows the runtime value to the documented type.
192
222
  * @type {string | undefined} */
@@ -323,8 +353,8 @@ class VelociousDatabaseRecord {
323
353
 
324
354
  /**
325
355
  * Runs define scope.
326
- * @param {(...args: Array<?>) => ?} callback - Scope callback.
327
- * @returns {((...args: Array<?>) => import("../query/model-class-query.js").default<typeof VelociousDatabaseRecord>) & {scope: (...args: Array<?>) => import("../../utils/model-scope.js").ModelScopeDescriptor}} - Scope helper.
356
+ * @param {(...args: Array<ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>} callback - Scope callback.
357
+ * @returns {((...args: Array<ReturnType<typeof JSON.parse>>) => import("../query/model-class-query.js").default<typeof VelociousDatabaseRecord>) & {scope: (...args: Array<ReturnType<typeof JSON.parse>>) => import("../../utils/model-scope.js").ModelScopeDescriptor}} - Scope helper.
328
358
  */
329
359
  static defineScope(callback) {
330
360
  return defineModelScope({
@@ -395,13 +425,13 @@ class VelociousDatabaseRecord {
395
425
 
396
426
  /**
397
427
  * Runs get attachments map.
398
- * @returns {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ?>, type: "hasOne" | "hasMany"}>} - Attachment definitions keyed by name.
428
+ * @returns {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>, type: "hasOne" | "hasMany"}>} - Attachment definitions keyed by name.
399
429
  */
400
430
  static getAttachmentsMap() {
401
431
  if (!this._attachmentsMap) {
402
432
  /**
403
433
  * Narrows the runtime value to the documented type.
404
- * @type {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ?>, type: "hasOne" | "hasMany"}>} */
434
+ * @type {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>, type: "hasOne" | "hasMany"}>} */
405
435
  this._attachmentsMap = {}
406
436
  }
407
437
 
@@ -410,12 +440,12 @@ class VelociousDatabaseRecord {
410
440
 
411
441
  /**
412
442
  * Attributes.
413
- * @type {Record<string, ?>} */
443
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
414
444
  _attributes = {}
415
445
 
416
446
  /**
417
447
  * Changes.
418
- * @type {Record<string, ?>} */
448
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
419
449
  _changes = {}
420
450
 
421
451
  /**
@@ -759,7 +789,7 @@ class VelociousDatabaseRecord {
759
789
  }
760
790
 
761
791
  let relationship
762
- const prototype = /** @type {Record<string, ?>} */ (/** @type {?} */ (this.prototype))
792
+ const prototype = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this.prototype))
763
793
 
764
794
  if (actualData.type == "belongsTo") {
765
795
  relationship = new BelongsToRelationship(actualData)
@@ -770,7 +800,7 @@ class VelociousDatabaseRecord {
770
800
  return relationship.loaded()
771
801
  }
772
802
 
773
- prototype[`build${inflection.camelize(relationshipName)}`] = function(/** @type {Record<string, ?>} */ attributes) {
803
+ prototype[`build${inflection.camelize(relationshipName)}`] = function(/** @type {Record<string, ReturnType<typeof JSON.parse>>} */ attributes) {
774
804
  return buildRelatedRecordWithInverse(/** @type {VelociousDatabaseRecord} */ (this), relationshipName, attributes, true)
775
805
  }
776
806
 
@@ -795,7 +825,7 @@ class VelociousDatabaseRecord {
795
825
  relationship = new HasManyRelationship(actualData)
796
826
 
797
827
  prototype[relationshipName] = function() {
798
- return /** @type {import("./instance-relationships/has-many.js").default<?, ?>} */ (this.getRelationshipByName(relationshipName))
828
+ return /** @type {import("./instance-relationships/has-many.js").default<ReturnType<typeof JSON.parse>, ReturnType<typeof JSON.parse>>} */ (this.getRelationshipByName(relationshipName))
799
829
  }
800
830
 
801
831
  prototype[`${relationshipName}Loaded`] = function() {
@@ -816,7 +846,7 @@ class VelociousDatabaseRecord {
816
846
  return this.getRelationshipByName(relationshipName).loaded()
817
847
  }
818
848
 
819
- prototype[`build${inflection.camelize(relationshipName)}`] = function(/** @type {Record<string, ?>} */ attributes) {
849
+ prototype[`build${inflection.camelize(relationshipName)}`] = function(/** @type {Record<string, ReturnType<typeof JSON.parse>>} */ attributes) {
820
850
  return buildRelatedRecordWithInverse(/** @type {VelociousDatabaseRecord} */ (this), relationshipName, attributes, false)
821
851
  }
822
852
 
@@ -898,8 +928,8 @@ class VelociousDatabaseRecord {
898
928
 
899
929
  /**
900
930
  * Runs read fk attribute.
901
- * @param {?} record - Child record instance.
902
- * @returns {?} - Current foreign-key attribute value.
931
+ * @param {ReturnType<typeof JSON.parse>} record - Child record instance.
932
+ * @returns {ReturnType<typeof JSON.parse>} - Current foreign-key attribute value.
903
933
  */
904
934
  function readFkAttribute(record) {
905
935
  const relationship = ChildModel.getRelationshipByName(relationshipName)
@@ -917,7 +947,7 @@ class VelociousDatabaseRecord {
917
947
  })
918
948
 
919
949
  ChildModel.beforeSave(async (record) => {
920
- const model = /** @type {?} */ (record)
950
+ const model = /** @type {ReturnType<typeof JSON.parse>} */ (record)
921
951
 
922
952
  if (model.isNewRecord()) return
923
953
 
@@ -934,7 +964,7 @@ class VelociousDatabaseRecord {
934
964
  })
935
965
 
936
966
  ChildModel.afterSave(async (record) => {
937
- const model = /** @type {?} */ (record)
967
+ const model = /** @type {ReturnType<typeof JSON.parse>} */ (record)
938
968
  const prevKey = `_counterCachePrev_${relationshipName}`
939
969
  const previousParentId = model[prevKey]
940
970
 
@@ -972,7 +1002,7 @@ class VelociousDatabaseRecord {
972
1002
  * @returns {Record<string, import("./relationships/base.js").default>} - Relationship definitions keyed by name.
973
1003
  */
974
1004
  static getRelationshipsMap() {
975
- if (!Object.hasOwn(this, "_relationships")) {
1005
+ if (!Object.hasOwn(this, "_relationships") || !this._relationships) {
976
1006
  /**
977
1007
  * Narrows the runtime value to the documented type.
978
1008
  * @type {Record<string, import("./relationships/base.js").default>} */
@@ -1037,7 +1067,7 @@ class VelociousDatabaseRecord {
1037
1067
  * @returns {Record<string, import("../query/query-data.js").QueryDataFn>} - queryData registrations keyed by name.
1038
1068
  */
1039
1069
  static getQueryDataMap() {
1040
- if (!Object.hasOwn(this, "_queryDataRegistrations")) {
1070
+ if (!Object.hasOwn(this, "_queryDataRegistrations") || !this._queryDataRegistrations) {
1041
1071
  // Prototype-less map so bracket access can only ever surface
1042
1072
  // registrations actually made on this class — never inherited
1043
1073
  // Object.prototype members.
@@ -1066,7 +1096,7 @@ class VelociousDatabaseRecord {
1066
1096
 
1067
1097
  /**
1068
1098
  * Runs get attachments.
1069
- * @returns {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ?>, type: "hasOne" | "hasMany"}>} - Attachment definitions.
1099
+ * @returns {Record<string, {driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>, type: "hasOne" | "hasMany"}>} - Attachment definitions.
1070
1100
  */
1071
1101
  static getAttachments() {
1072
1102
  return this.getAttachmentsMap()
@@ -1075,7 +1105,7 @@ class VelociousDatabaseRecord {
1075
1105
  /**
1076
1106
  * Runs get attachment by name.
1077
1107
  * @param {string} attachmentName - Attachment name.
1078
- * @returns {{driver?: string | AttachmentDriverConstructor | Record<string, ?>, type: "hasOne" | "hasMany"}} - Attachment definition.
1108
+ * @returns {{driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>, type: "hasOne" | "hasMany"}} - Attachment definition.
1079
1109
  */
1080
1110
  static getAttachmentByName(attachmentName) {
1081
1111
  const definition = this.getAttachmentsMap()[attachmentName]
@@ -1092,7 +1122,9 @@ class VelociousDatabaseRecord {
1092
1122
  */
1093
1123
  getRelationshipByName(relationshipName) {
1094
1124
  if (!(relationshipName in this._instanceRelationships)) {
1095
- const modelClassRelationship = this.getModelClass().getRelationshipByName(relationshipName)
1125
+ const modelClassRelationship = this.getModelClass()
1126
+ .getRelationshipByName(relationshipName)
1127
+ .resolveForRecord(this)
1096
1128
  const relationshipType = modelClassRelationship.getType()
1097
1129
  let instanceRelationship
1098
1130
 
@@ -1130,7 +1162,7 @@ class VelociousDatabaseRecord {
1130
1162
  /**
1131
1163
  * Runs load relationship.
1132
1164
  * @param {string} relationshipName - Relationship name.
1133
- * @returns {Promise<?>} - Loaded relationship value.
1165
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Loaded relationship value.
1134
1166
  */
1135
1167
  async loadRelationship(relationshipName) {
1136
1168
  const relationship = this.getRelationshipByName(relationshipName)
@@ -1144,7 +1176,7 @@ class VelociousDatabaseRecord {
1144
1176
  * Runs relationship or load.
1145
1177
  * @param {string} relationshipName - Relationship name.
1146
1178
  * @param {{preloadTranslations?: boolean}} [options] - Load options.
1147
- * @returns {Promise<?>} - Loaded relationship value.
1179
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Loaded relationship value.
1148
1180
  */
1149
1181
  async relationshipOrLoad(relationshipName, options = {}) {
1150
1182
  const relationship = this.getRelationshipByName(relationshipName)
@@ -1159,8 +1191,8 @@ class VelociousDatabaseRecord {
1159
1191
 
1160
1192
  /**
1161
1193
  * Preloads translations on a loaded relationship target when explicitly requested.
1162
- * @param {?} loaded - Loaded relationship value.
1163
- * @returns {Promise<?>} - Relationship value after translation preload.
1194
+ * @param {ReturnType<typeof JSON.parse>} loaded - Loaded relationship value.
1195
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Relationship value after translation preload.
1164
1196
  */
1165
1197
  async _preloadLoadedRelationshipTranslations(loaded) {
1166
1198
  if (!loaded || !loaded.isPersisted() || !await loaded.getModelClass().hasTranslationsTable()) return loaded
@@ -1204,7 +1236,7 @@ class VelociousDatabaseRecord {
1204
1236
 
1205
1237
  this._defineRelationship(relationshipName, Object.assign({type: "belongsTo", scope}, relationshipOptions))
1206
1238
 
1207
- if (/** @type {?} */ (relationshipOptions)?.counterCache) {
1239
+ if (/** @type {ReturnType<typeof JSON.parse>} */ (relationshipOptions)?.counterCache) {
1208
1240
  this._registerCounterCacheCallbacks(relationshipName)
1209
1241
  }
1210
1242
  }
@@ -1228,7 +1260,7 @@ class VelociousDatabaseRecord {
1228
1260
 
1229
1261
  /**
1230
1262
  * Runs create.
1231
- * @template {Record<string, ?>} CreateAttributes
1263
+ * @template {Record<string, ReturnType<typeof JSON.parse>>} CreateAttributes
1232
1264
  * @template {VelociousDatabaseRecord<CreateAttributes>} Model
1233
1265
  * @this {{new (changes?: CreateAttributes): Model} & typeof VelociousDatabaseRecord}
1234
1266
  * @param {CreateAttributes} [attributes] - Attributes.
@@ -1297,7 +1329,7 @@ class VelociousDatabaseRecord {
1297
1329
  * Project.hasMany("tasks")
1298
1330
  * Project.acceptsNestedAttributesFor("tasks", {allowDestroy: true})
1299
1331
  * @param {string} relationshipName - Relationship name on this model.
1300
- * @param {{allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ?>) => boolean}} [options] - Policy options.
1332
+ * @param {{allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ReturnType<typeof JSON.parse>>) => boolean}} [options] - Policy options.
1301
1333
  * @returns {void}
1302
1334
  */
1303
1335
  static acceptsNestedAttributesFor(relationshipName, options = {}) {
@@ -1308,17 +1340,17 @@ class VelociousDatabaseRecord {
1308
1340
  if (!Object.prototype.hasOwnProperty.call(this, "_acceptedNestedAttributes")) {
1309
1341
  /**
1310
1342
  * Narrows the runtime value to the documented type.
1311
- * @type {Record<string, {allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ?>) => boolean}>} */
1343
+ * @type {Record<string, {allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ReturnType<typeof JSON.parse>>) => boolean}>} */
1312
1344
  this._acceptedNestedAttributes = {}
1313
1345
  }
1314
1346
 
1315
- /** @type {Record<string, {allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ?>) => boolean}>} */ (this._acceptedNestedAttributes)[relationshipName] = {...options}
1347
+ /** @type {Record<string, {allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ReturnType<typeof JSON.parse>>) => boolean}>} */ (this._acceptedNestedAttributes)[relationshipName] = {...options}
1316
1348
  }
1317
1349
 
1318
1350
  /**
1319
1351
  * Runs accepted nested attributes for.
1320
1352
  * @param {string} relationshipName - Relationship name.
1321
- * @returns {{allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ?>) => boolean} | null} - Policy declared via `acceptsNestedAttributesFor`, or null when not accepted.
1353
+ * @returns {{allowDestroy?: boolean, limit?: number, rejectIf?: (attributes: Record<string, ReturnType<typeof JSON.parse>>) => boolean} | null} - Policy declared via `acceptsNestedAttributesFor`, or null when not accepted.
1322
1354
  */
1323
1355
  static acceptedNestedAttributesFor(relationshipName) {
1324
1356
  return this._acceptedNestedAttributes?.[relationshipName] || null
@@ -1341,7 +1373,7 @@ class VelociousDatabaseRecord {
1341
1373
  * Runs define attachment.
1342
1374
  * @param {string} attachmentName - Attachment name.
1343
1375
  * @param {object} args - Attachment args.
1344
- * @param {string | AttachmentDriverConstructor | Record<string, ?>} [args.driver] - Attachment driver name, class, or instance.
1376
+ * @param {string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>} [args.driver] - Attachment driver name, class, or instance.
1345
1377
  * @param {"hasOne" | "hasMany"} args.type - Attachment type.
1346
1378
  * @returns {void} - No return value.
1347
1379
  */
@@ -1351,13 +1383,13 @@ class VelociousDatabaseRecord {
1351
1383
 
1352
1384
  this.getAttachmentsMap()[attachmentName] = {driver, type}
1353
1385
 
1354
- const prototype = /** @type {Record<string, ?>} */ (/** @type {?} */ (this.prototype))
1386
+ const prototype = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this.prototype))
1355
1387
 
1356
1388
  prototype[attachmentName] = function() {
1357
1389
  return this.getAttachmentByName(attachmentName)
1358
1390
  }
1359
1391
 
1360
- prototype[`set${inflection.camelize(attachmentName)}`] = function(/** @type {?} */ newValue) {
1392
+ prototype[`set${inflection.camelize(attachmentName)}`] = function(/** @type {ReturnType<typeof JSON.parse>} */ newValue) {
1361
1393
  this.getAttachmentByName(attachmentName).queueAttach(newValue)
1362
1394
  return newValue
1363
1395
  }
@@ -1366,7 +1398,7 @@ class VelociousDatabaseRecord {
1366
1398
  /**
1367
1399
  * Adds a single attachment helper to the model.
1368
1400
  * @param {string} attachmentName - Attachment name.
1369
- * @param {{driver?: string | AttachmentDriverConstructor | Record<string, ?>}} [args] - Attachment options.
1401
+ * @param {{driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>}} [args] - Attachment options.
1370
1402
  * @returns {void} - No return value.
1371
1403
  */
1372
1404
  static hasOneAttachment(attachmentName, args = {}) {
@@ -1376,7 +1408,7 @@ class VelociousDatabaseRecord {
1376
1408
  /**
1377
1409
  * Adds a collection attachment helper to the model.
1378
1410
  * @param {string} attachmentName - Attachment name.
1379
- * @param {{driver?: string | AttachmentDriverConstructor | Record<string, ?>}} [args] - Attachment options.
1411
+ * @param {{driver?: string | AttachmentDriverConstructor | Record<string, ReturnType<typeof JSON.parse>>}} [args] - Attachment options.
1380
1412
  * @returns {void} - No return value.
1381
1413
  */
1382
1414
  static hasManyAttachments(attachmentName, args = {}) {
@@ -1483,7 +1515,7 @@ class VelociousDatabaseRecord {
1483
1515
 
1484
1516
  const columnNameToAttributeName = this.getColumnNameToAttributeNameMap()
1485
1517
  const attributeNameToColumnName = this.getAttributeNameToColumnNameMap()
1486
- const prototype = /** @type {Record<string, ?>} */ (/** @type {?} */ (this.prototype))
1518
+ const prototype = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this.prototype))
1487
1519
 
1488
1520
  for (const column of this._columns) {
1489
1521
  this._columnsAsHash[column.getName()] = column
@@ -1502,14 +1534,14 @@ class VelociousDatabaseRecord {
1502
1534
  }
1503
1535
 
1504
1536
  if (!(`set${camelizedColumnNameBigFirst}` in prototype)) {
1505
- prototype[`set${camelizedColumnNameBigFirst}`] = function(/** @type {?} */ newValue) {
1537
+ prototype[`set${camelizedColumnNameBigFirst}`] = function(/** @type {ReturnType<typeof JSON.parse>} */ newValue) {
1506
1538
  return this._setColumnAttribute(camelizedColumnName, newValue)
1507
1539
  }
1508
1540
  }
1509
1541
 
1510
1542
  if (!(`has${camelizedColumnNameBigFirst}` in prototype)) {
1511
1543
  prototype[`has${camelizedColumnNameBigFirst}`] = function() {
1512
- const dynamicThis = /** @type {Record<string, (...args: Array<?>) => ?>} */ (/** @type {?} */ (this))
1544
+ const dynamicThis = /** @type {Record<string, (...args: Array<ReturnType<typeof JSON.parse>>) => ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
1513
1545
  const value = dynamicThis[camelizedColumnName]()
1514
1546
 
1515
1547
  return this._hasAttribute(value)
@@ -1517,7 +1549,7 @@ class VelociousDatabaseRecord {
1517
1549
  }
1518
1550
  }
1519
1551
 
1520
- await this._defineTranslationMethods()
1552
+ await this._defineTranslationMethods(connection)
1521
1553
  await initializeAuditing(this)
1522
1554
  this._initialized = true
1523
1555
  }
@@ -1526,11 +1558,11 @@ class VelociousDatabaseRecord {
1526
1558
  * Initializes the model class the first time an async record API needs table
1527
1559
  * metadata. Concurrent callers share the same initialization promise, and a
1528
1560
  * failed initialization can be retried by a later call.
1529
- * @param {{configuration?: import("../../configuration.js").default}} [args] - Optional configuration override.
1561
+ * @param {{configuration?: import("../../configuration.js").default, connection?: import("../drivers/base.js").default}} [args] - Optional configuration and explicit metadata connection.
1530
1562
  * @returns {Promise<void>} - Resolves when the model class is initialized.
1531
1563
  */
1532
1564
  static async ensureInitialized(args = {}) {
1533
- const {configuration, ...restArgs} = args
1565
+ const {configuration, connection, ...restArgs} = args
1534
1566
 
1535
1567
  restArgsError(restArgs)
1536
1568
 
@@ -1543,7 +1575,7 @@ class VelociousDatabaseRecord {
1543
1575
 
1544
1576
  const resolvedConfiguration = configuration || this._configuration || Configuration.current()
1545
1577
 
1546
- const initializeRecordPromise = this.initializeRecord({configuration: resolvedConfiguration})
1578
+ const initializeRecordPromise = this.initializeRecord({configuration: resolvedConfiguration, connection})
1547
1579
 
1548
1580
  this._initializeRecordPromise = initializeRecordPromise
1549
1581
 
@@ -1558,7 +1590,7 @@ class VelociousDatabaseRecord {
1558
1590
 
1559
1591
  /**
1560
1592
  * Runs has attribute.
1561
- * @param {?} value - Value to use.
1593
+ * @param {ReturnType<typeof JSON.parse>} value - Value to use.
1562
1594
  * @returns {boolean} - Whether attribute.
1563
1595
  */
1564
1596
  _hasAttribute(value) {
@@ -1593,18 +1625,27 @@ class VelociousDatabaseRecord {
1593
1625
  throw new Error(`${this.name} used before initialization. Call ${this.name}.initializeRecord(...) or configuration.initialize().`)
1594
1626
  }
1595
1627
 
1596
- static async _defineTranslationMethods() {
1628
+ /**
1629
+ * Defines translation accessors and initializes the generated translation
1630
+ * class through the same metadata connection as the translated model.
1631
+ * @param {import("../drivers/base.js").default} connection - Metadata connection.
1632
+ * @returns {Promise<void>} - Resolves when translation metadata is ready.
1633
+ */
1634
+ static async _defineTranslationMethods(connection) {
1597
1635
  if (this._translations && Object.keys(this._translations).length > 0) {
1598
1636
  const locales = this._getConfiguration().getLocales()
1599
1637
 
1600
1638
  if (!locales) throw new Error("Locales hasn't been set in the configuration")
1601
1639
 
1602
- await this.getTranslationClass().initializeRecord({configuration: this._getConfiguration()})
1640
+ await this.getTranslationClass().initializeRecord({
1641
+ configuration: this._getConfiguration(),
1642
+ connection
1643
+ })
1603
1644
 
1604
1645
  for (const name in this._translations) {
1605
1646
  const nameCamelized = inflection.camelize(name)
1606
1647
  const setterMethodName = `set${nameCamelized}`
1607
- const prototype = /** @type {Record<string, ?>} */ (/** @type {?} */ (this.prototype))
1648
+ const prototype = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this.prototype))
1608
1649
 
1609
1650
  prototype[name] = function getTranslatedAttribute() {
1610
1651
  const locale = this._getConfiguration().getLocale()
@@ -1613,7 +1654,7 @@ class VelociousDatabaseRecord {
1613
1654
  }
1614
1655
 
1615
1656
  prototype[`has${nameCamelized}`] = function hasTranslatedAttribute() {
1616
- const dynamicThis = /** @type {Record<string, ?>} */ (/** @type {?} */ (this))
1657
+ const dynamicThis = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
1617
1658
  const candidate = dynamicThis[name]
1618
1659
 
1619
1660
  if (typeof candidate == "function") {
@@ -1625,7 +1666,7 @@ class VelociousDatabaseRecord {
1625
1666
  }
1626
1667
  }
1627
1668
 
1628
- prototype[setterMethodName] = function setTranslatedAttribute(/** @type {?} */ newValue) {
1669
+ prototype[setterMethodName] = function setTranslatedAttribute(/** @type {ReturnType<typeof JSON.parse>} */ newValue) {
1629
1670
  const locale = this._getConfiguration().getLocale()
1630
1671
 
1631
1672
  return this._setTranslatedAttribute(name, locale, newValue)
@@ -1641,12 +1682,12 @@ class VelociousDatabaseRecord {
1641
1682
  return this._getTranslatedAttribute(name, locale)
1642
1683
  }
1643
1684
 
1644
- prototype[setterMethodNameLocalized] = function setTranslatedAttributeWithLocale(/** @type {?} */ newValue) {
1685
+ prototype[setterMethodNameLocalized] = function setTranslatedAttributeWithLocale(/** @type {ReturnType<typeof JSON.parse>} */ newValue) {
1645
1686
  return this._setTranslatedAttribute(name, locale, newValue)
1646
1687
  }
1647
1688
 
1648
1689
  prototype[hasMethodNameLocalized] = function hasTranslatedAttribute() {
1649
- const dynamicThis = /** @type {Record<string, ?>} */ (/** @type {?} */ (this))
1690
+ const dynamicThis = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
1650
1691
  const candidate = dynamicThis[getterMethodNameLocalized]
1651
1692
 
1652
1693
  if (typeof candidate == "function") {
@@ -1674,12 +1715,12 @@ class VelociousDatabaseRecord {
1674
1715
  * Runs get database identifier.
1675
1716
  * @param {object} [args] - Options.
1676
1717
  * @param {boolean} [args.enforceTenantDatabaseScope] - Whether tenant-switched models must resolve a tenant database identifier.
1718
+ * @param {object} [args.tenant] - Explicit tenant descriptor instead of the ambient tenant.
1677
1719
  * @returns {string} - The database identifier.
1678
1720
  */
1679
- static getDatabaseIdentifier({enforceTenantDatabaseScope = true, ...restArgs} = {}) {
1721
+ static getDatabaseIdentifier({enforceTenantDatabaseScope = true, tenant = Current.tenant(), ...restArgs} = {}) {
1680
1722
  restArgsError(restArgs)
1681
1723
 
1682
- const tenant = Current.tenant()
1683
1724
  const tenantDatabaseIdentifier = this.getTenantDatabaseIdentifier(tenant)
1684
1725
 
1685
1726
  if (tenantDatabaseIdentifier) {
@@ -1741,7 +1782,7 @@ class VelociousDatabaseRecord {
1741
1782
 
1742
1783
  /**
1743
1784
  * Runs get tenant database identifier.
1744
- * @param {?} [tenant] - Tenant override.
1785
+ * @param {ReturnType<typeof JSON.parse>} [tenant] - Tenant override.
1745
1786
  * @returns {string | undefined} - Tenant-scoped database identifier when configured.
1746
1787
  */
1747
1788
  static getTenantDatabaseIdentifier(tenant = Current.tenant()) {
@@ -1764,7 +1805,7 @@ class VelociousDatabaseRecord {
1764
1805
  /**
1765
1806
  * Runs get attribute.
1766
1807
  * @param {string} name - Name.
1767
- * @returns {?} - The attribute.
1808
+ * @returns {ReturnType<typeof JSON.parse>} - The attribute.
1768
1809
  */
1769
1810
  getAttribute(name) {
1770
1811
  const columnName = inflection.underscore(name)
@@ -1790,7 +1831,7 @@ class VelociousDatabaseRecord {
1790
1831
  /**
1791
1832
  * Runs set attribute.
1792
1833
  * @param {string} name - Name.
1793
- * @param {?} newValue - New value.
1834
+ * @param {ReturnType<typeof JSON.parse>} newValue - New value.
1794
1835
  * @returns {void} - No return value.
1795
1836
  */
1796
1837
  setAttribute(name, newValue) {
@@ -1799,7 +1840,7 @@ class VelociousDatabaseRecord {
1799
1840
  const canonicalName = this.getModelClass().resolveAttributeName(name) ?? name
1800
1841
  const requestedSetterName = `set${inflection.camelize(canonicalName)}`
1801
1842
  const setterName = this.getModelClass().findMemberNameInsensitive(this, requestedSetterName)
1802
- const dynamicThis = /** @type {Record<string, (value: ?) => void>} */ (/** @type {?} */ (this))
1843
+ const dynamicThis = /** @type {Record<string, (value: ReturnType<typeof JSON.parse>) => void>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
1803
1844
 
1804
1845
  this.getModelClass()._assertHasBeenInitialized()
1805
1846
  if (!this.getModelClass().isInitialized()) throw new Error(`${this.constructor.name} model isn't initialized yet`)
@@ -1811,7 +1852,7 @@ class VelociousDatabaseRecord {
1811
1852
  /**
1812
1853
  * Runs set column attribute.
1813
1854
  * @param {string} name - Name.
1814
- * @param {?} newValue - New value.
1855
+ * @param {ReturnType<typeof JSON.parse>} newValue - New value.
1815
1856
  */
1816
1857
  _setColumnAttribute(name, newValue) {
1817
1858
  this.getModelClass()._assertHasBeenInitialized()
@@ -1840,7 +1881,7 @@ class VelociousDatabaseRecord {
1840
1881
  /**
1841
1882
  * Clears loaded belongs-to caches when callers assign the foreign key directly.
1842
1883
  * @param {string} columnName - Changed database column name.
1843
- * @param {?} normalizedValue - New normalized column value.
1884
+ * @param {ReturnType<typeof JSON.parse>} normalizedValue - New normalized column value.
1844
1885
  * @returns {void} - No return value.
1845
1886
  */
1846
1887
  _clearBelongsToRelationshipForChangedForeignKey(columnName, normalizedValue) {
@@ -1854,7 +1895,7 @@ class VelociousDatabaseRecord {
1854
1895
  /**
1855
1896
  * Runs belongs to relationships for foreign key.
1856
1897
  * @param {string} columnName - Changed database column name.
1857
- * @returns {Array<?>} - Loaded relationship instances that use the changed foreign key.
1898
+ * @returns {Array<ReturnType<typeof JSON.parse>>} - Loaded relationship instances that use the changed foreign key.
1858
1899
  */
1859
1900
  _belongsToRelationshipsForForeignKey(columnName) {
1860
1901
  if (!this._instanceRelationships) return []
@@ -1868,7 +1909,7 @@ class VelociousDatabaseRecord {
1868
1909
  * Runs belongs to relationship uses foreign key.
1869
1910
  * @param {object} args - Relationship match arguments.
1870
1911
  * @param {string} args.columnName - Changed database column name.
1871
- * @param {?} args.relationship - Relationship instance.
1912
+ * @param {ReturnType<typeof JSON.parse>} args.relationship - Relationship instance.
1872
1913
  * @returns {boolean} - Whether the relationship is a belongs-to using the changed foreign key.
1873
1914
  */
1874
1915
  _belongsToRelationshipUsesForeignKey({columnName, relationship}) {
@@ -1883,8 +1924,8 @@ class VelociousDatabaseRecord {
1883
1924
  /**
1884
1925
  * Runs belongs to relationship matches foreign key value.
1885
1926
  * @param {object} args - Relationship cache arguments.
1886
- * @param {?} args.normalizedValue - New normalized column value.
1887
- * @param {?} args.relationship - Relationship instance.
1927
+ * @param {ReturnType<typeof JSON.parse>} args.normalizedValue - New normalized column value.
1928
+ * @param {ReturnType<typeof JSON.parse>} args.relationship - Relationship instance.
1888
1929
  * @returns {boolean} - Whether the loaded related record still matches the changed foreign key.
1889
1930
  */
1890
1931
  _belongsToRelationshipMatchesForeignKeyValue({normalizedValue, relationship}) {
@@ -1913,7 +1954,7 @@ class VelociousDatabaseRecord {
1913
1954
 
1914
1955
  /**
1915
1956
  * Runs clear loaded belongs to relationship.
1916
- * @param {?} relationship - Relationship instance.
1957
+ * @param {ReturnType<typeof JSON.parse>} relationship - Relationship instance.
1917
1958
  * @returns {void} - No return value.
1918
1959
  */
1919
1960
  _clearLoadedBelongsToRelationship(relationship) {
@@ -1924,8 +1965,8 @@ class VelociousDatabaseRecord {
1924
1965
 
1925
1966
  /**
1926
1967
  * Runs normalize date value.
1927
- * @param {?} value - Value to use.
1928
- * @returns {?} - The date value.
1968
+ * @param {ReturnType<typeof JSON.parse>} value - Value to use.
1969
+ * @returns {ReturnType<typeof JSON.parse>} - The date value.
1929
1970
  */
1930
1971
  _normalizeDateValue(value) {
1931
1972
  return normalizeDateValueForWrite(value, {timeZone: this.getModelClass()._timeZoneForDateWrite()})
@@ -1935,8 +1976,8 @@ class VelociousDatabaseRecord {
1935
1976
  * Runs normalize sqlite boolean value.
1936
1977
  * @param {object} args - Options object.
1937
1978
  * @param {string | undefined} args.columnType - Column type.
1938
- * @param {?} args.value - Value to normalize.
1939
- * @returns {?} - Normalized value.
1979
+ * @param {ReturnType<typeof JSON.parse>} args.value - Value to normalize.
1980
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
1940
1981
  */
1941
1982
  _normalizeSqliteBooleanValue({columnType, value}) {
1942
1983
  if (this.getModelClass().getDatabaseType() != "sqlite") return value
@@ -1956,8 +1997,8 @@ class VelociousDatabaseRecord {
1956
1997
  * @param {object} args - Options object.
1957
1998
  * @param {string} args.attributeName - Attribute name being written.
1958
1999
  * @param {string | undefined} args.columnType - Column type.
1959
- * @param {?} args.value - Value to normalize.
1960
- * @returns {?} - Normalized value.
2000
+ * @param {ReturnType<typeof JSON.parse>} args.value - Value to normalize.
2001
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
1961
2002
  */
1962
2003
  _normalizeBooleanValueForWrite({attributeName, columnType, value}) {
1963
2004
  if (!this.getModelClass()._declaredBooleanStoresAsInteger(attributeName)) {
@@ -2084,12 +2125,12 @@ class VelociousDatabaseRecord {
2084
2125
  /**
2085
2126
  * Runs insert multiple.
2086
2127
  * @param {Array<string>} columns - Column names.
2087
- * @param {Array<Array<?>>} rows - Rows to insert.
2128
+ * @param {Array<Array<ReturnType<typeof JSON.parse>>>} rows - Rows to insert.
2088
2129
  * @param {object} [args] - Options object.
2089
2130
  * @param {boolean} [args.cast] - Whether to cast values based on column types.
2090
2131
  * @param {boolean} [args.retryIndividuallyOnFailure] - Retry rows individually if a batch insert fails.
2091
2132
  * @param {boolean} [args.returnResults] - Return succeeded/failed rows instead of throwing when retries fail.
2092
- * @returns {Promise<void | {succeededRows: Array<Array<?>>, failedRows: Array<Array<?>>, errors: Array<{row: Array<?>, error: ?}>}>} - Resolves when complete.
2133
+ * @returns {Promise<void | {succeededRows: Array<Array<ReturnType<typeof JSON.parse>>>, failedRows: Array<Array<ReturnType<typeof JSON.parse>>>, errors: Array<{row: Array<ReturnType<typeof JSON.parse>>, error: ReturnType<typeof JSON.parse>}>}>} - Resolves when complete.
2093
2134
  */
2094
2135
  static async insertMultiple(columns, rows, args = {}) {
2095
2136
  const {cast = true, retryIndividuallyOnFailure = false, returnResults = false, ...restArgs} = args
@@ -2123,7 +2164,7 @@ class VelociousDatabaseRecord {
2123
2164
  } catch {
2124
2165
  /**
2125
2166
  * Results.
2126
- * @type {{succeededRows: Array<?>[], failedRows: Array<?>[], errors: Array<{row: Array<?>, error: ?}>}} */
2167
+ * @type {{succeededRows: Array<ReturnType<typeof JSON.parse>>[], failedRows: Array<ReturnType<typeof JSON.parse>>[], errors: Array<{row: Array<ReturnType<typeof JSON.parse>>, error: ReturnType<typeof JSON.parse>}>}} */
2127
2168
  const results = {
2128
2169
  succeededRows: [],
2129
2170
  failedRows: [],
@@ -2164,8 +2205,8 @@ class VelociousDatabaseRecord {
2164
2205
  * Runs normalize insert multiple rows.
2165
2206
  * @param {object} args - Options object.
2166
2207
  * @param {Array<string>} args.columns - Column names.
2167
- * @param {Array<Array<?>>} args.rows - Rows to insert.
2168
- * @returns {Array<Array<?>>} - Normalized rows.
2208
+ * @param {Array<Array<ReturnType<typeof JSON.parse>>>} args.rows - Rows to insert.
2209
+ * @returns {Array<Array<ReturnType<typeof JSON.parse>>>} - Normalized rows.
2169
2210
  */
2170
2211
  static _normalizeInsertMultipleRows({columns, rows}) {
2171
2212
  return rows.map((row) => {
@@ -2190,7 +2231,7 @@ class VelociousDatabaseRecord {
2190
2231
 
2191
2232
  /**
2192
2233
  * Runs safe serialize insert row.
2193
- * @param {Array<?>} row - Row to serialize.
2234
+ * @param {Array<ReturnType<typeof JSON.parse>>} row - Row to serialize.
2194
2235
  * @returns {string} - Safe row representation.
2195
2236
  */
2196
2237
  static _safeSerializeInsertRow(row) {
@@ -2201,8 +2242,8 @@ class VelociousDatabaseRecord {
2201
2242
  * Runs normalize insert value for column.
2202
2243
  * @param {object} args - Options object.
2203
2244
  * @param {string} args.columnName - Column name.
2204
- * @param {?} args.value - Column value.
2205
- * @returns {?} - Normalized value.
2245
+ * @param {ReturnType<typeof JSON.parse>} args.value - Column value.
2246
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
2206
2247
  */
2207
2248
  static _normalizeInsertValueForColumn({columnName, value}) {
2208
2249
  const column = this.getColumnsHash()[columnName]
@@ -2263,8 +2304,8 @@ class VelociousDatabaseRecord {
2263
2304
  * Runs normalize numeric value.
2264
2305
  * @param {object} args - Options object.
2265
2306
  * @param {string} args.columnType - Column type.
2266
- * @param {?} args.value - Value to normalize.
2267
- * @returns {?} - Normalized value.
2307
+ * @param {ReturnType<typeof JSON.parse>} args.value - Value to normalize.
2308
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
2268
2309
  */
2269
2310
  static _normalizeNumericValue({columnType, value}) {
2270
2311
  if (value === "" || value === null || value === undefined) return value
@@ -2288,8 +2329,8 @@ class VelociousDatabaseRecord {
2288
2329
 
2289
2330
  /**
2290
2331
  * Runs normalize date value for insert.
2291
- * @param {?} value - Value to normalize.
2292
- * @returns {?} - Normalized value.
2332
+ * @param {ReturnType<typeof JSON.parse>} value - Value to normalize.
2333
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
2293
2334
  */
2294
2335
  static _normalizeDateValueForInsert(value) {
2295
2336
  return normalizeDateValueForWrite(value, {timeZone: this._timeZoneForDateWrite()})
@@ -2318,8 +2359,8 @@ class VelociousDatabaseRecord {
2318
2359
  * Runs normalize sqlite boolean value for insert.
2319
2360
  * @param {object} args - Options object.
2320
2361
  * @param {string | undefined} args.columnType - Column type.
2321
- * @param {?} args.value - Value to normalize.
2322
- * @returns {?} - Normalized value.
2362
+ * @param {ReturnType<typeof JSON.parse>} args.value - Value to normalize.
2363
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
2323
2364
  */
2324
2365
  static _normalizeSqliteBooleanValueForInsert({columnType, value}) {
2325
2366
  if (this.getDatabaseType() != "sqlite") return value
@@ -2432,7 +2473,7 @@ class VelociousDatabaseRecord {
2432
2473
  const isNewRecord = this.isNewRecord()
2433
2474
  let result
2434
2475
 
2435
- await this._getConfiguration().ensureConnections({name: `${this.getModelClass().name} save`}, async () => {
2476
+ const save = async () => {
2436
2477
  await this._runLifecycleCallbacks("beforeValidation")
2437
2478
  await this._runValidations()
2438
2479
 
@@ -2470,7 +2511,13 @@ class VelociousDatabaseRecord {
2470
2511
  } else {
2471
2512
  await this.getModelClass().transaction(saveInTransaction)
2472
2513
  }
2473
- })
2514
+ }
2515
+
2516
+ if (this._databaseOperation) {
2517
+ await save()
2518
+ } else {
2519
+ await this._getConfiguration().ensureConnections({name: `${this.getModelClass().name} save`}, save)
2520
+ }
2474
2521
 
2475
2522
  this._assignedAttributeNames = undefined
2476
2523
 
@@ -2660,8 +2707,8 @@ class VelociousDatabaseRecord {
2660
2707
 
2661
2708
  /**
2662
2709
  * Runs transaction.
2663
- * @param {function() : Promise<void>} callback - Callback function.
2664
- * @returns {Promise<?>} - Resolves with the transaction.
2710
+ * @param {() => Promise<void>} callback - Callback function.
2711
+ * @returns {Promise<ReturnType<typeof JSON.parse>>} - Resolves with the transaction.
2665
2712
  */
2666
2713
  static async transaction(callback) {
2667
2714
  await this.ensureInitialized()
@@ -2884,13 +2931,13 @@ class VelociousDatabaseRecord {
2884
2931
  /**
2885
2932
  * Adds a validation to an attribute.
2886
2933
  * @param {string} attributeName The name of the attribute to validate.
2887
- * @param {Record<string, boolean | Record<string, ?>>} validators The validators to add. Key is the validator name, value is the validator arguments.
2934
+ * @param {Record<string, boolean | Record<string, ReturnType<typeof JSON.parse>>>} validators The validators to add. Key is the validator name, value is the validator arguments.
2888
2935
  */
2889
2936
  static async validates(attributeName, validators) {
2890
2937
  for (const validatorName in validators) {
2891
2938
  /**
2892
2939
  * Defines validatorArgs.
2893
- * @type {Record<string, ?>} */
2940
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
2894
2941
  let validatorArgs
2895
2942
 
2896
2943
  /**
@@ -2964,10 +3011,10 @@ class VelociousDatabaseRecord {
2964
3011
  if (translation) {
2965
3012
  /**
2966
3013
  * Dict.
2967
- * @type {Record<string, ?>} */
3014
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
2968
3015
  const dict = translation
2969
3016
 
2970
- const attributeMethod = /** @type {function() : string | undefined} */ (dict[name])
3017
+ const attributeMethod = /** @type {() => string | undefined} */ (dict[name])
2971
3018
 
2972
3019
  if (typeof attributeMethod == "function") {
2973
3020
  return attributeMethod.bind(translation)()
@@ -3010,7 +3057,7 @@ class VelociousDatabaseRecord {
3010
3057
  * Runs set translated attribute.
3011
3058
  * @param {string} name - Name.
3012
3059
  * @param {string} locale - Locale.
3013
- * @param {?} newValue - New value.
3060
+ * @param {ReturnType<typeof JSON.parse>} newValue - New value.
3014
3061
  * @returns {void} - No return value.
3015
3062
  */
3016
3063
  _setTranslatedAttribute(name, locale, newValue) {
@@ -3029,7 +3076,7 @@ class VelociousDatabaseRecord {
3029
3076
 
3030
3077
  /**
3031
3078
  * Assignments.
3032
- * @type {Record<string, ?>} */
3079
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
3033
3080
  const assignments = {}
3034
3081
 
3035
3082
  assignments[name] = newValue
@@ -3044,7 +3091,8 @@ class VelociousDatabaseRecord {
3044
3091
  * @param {{driver?: import("../drivers/base.js").default | (() => import("../drivers/base.js").default), operation?: import("../operation.js").default}} [args] - Explicit query ownership.
3045
3092
  * @returns {ModelClassQuery<MC>} - The new query.
3046
3093
  */
3047
- static _newQuery({driver = () => this.connection(), operation, ...restArgs} = {}) {
3094
+ static _newQuery(args = {}) {
3095
+ const {driver = () => this.connection(), operation, ...restArgs} = args
3048
3096
  restArgsError(restArgs)
3049
3097
  this._assertHasBeenInitialized()
3050
3098
  const handler = new Handler()
@@ -3159,7 +3207,7 @@ class VelociousDatabaseRecord {
3159
3207
  * @template {typeof VelociousDatabaseRecord} MC
3160
3208
  * @this {MC}
3161
3209
  * @param {...string|string[]} columns - Column names.
3162
- * @returns {Promise<Array<?>>} - Resolves with the pluck.
3210
+ * @returns {Promise<Array<ReturnType<typeof JSON.parse>>>} - Resolves with the pluck.
3163
3211
  */
3164
3212
  static async pluck(...columns) {
3165
3213
  await this.ensureInitialized()
@@ -3207,47 +3255,20 @@ class VelociousDatabaseRecord {
3207
3255
  }
3208
3256
 
3209
3257
  /**
3210
- * Returns a scope whose eager finders run against an explicit `tenant` (and
3211
- * therefore its database) instead of whatever tenant is ambient in
3212
- * `Current.tenant()`. Use it to read a model that may live in a specific
3213
- * tenant or in the default database from another tenant context — for example
3214
- * `GithubWebhook.usingTenant(tenant).findBy({id})` — without depending on
3215
- * which tenant happens to be active. The target tenant's connections are
3216
- * ensured for the duration of each query.
3258
+ * Returns an immutable tenant-bound model scope. Eager helpers and explicit
3259
+ * databaseOperation/transaction callbacks execute from a captured physical
3260
+ * database configuration instead of ambient tenant state.
3217
3261
  * @template {typeof VelociousDatabaseRecord} MC
3218
3262
  * @this {MC}
3219
- * @param {?} tenant - Tenant descriptor to scope the queries to (as accepted by `configuration.runWithTenant`).
3220
- * @returns {{find: (recordId: ?) => Promise<InstanceType<MC> | null>, findBy: (conditions: {[key: string]: string | number}) => Promise<InstanceType<MC> | null>, findByOrFail: (conditions: {[key: string]: string | number}) => Promise<InstanceType<MC>>}} - Eager finders scoped to the given tenant.
3263
+ * @param {object} tenant - Ordinary or null-prototype JSON-compatible tenant descriptor to scope the model to.
3264
+ * @returns {TenantModelScope<MC>} - Model scope bound to the captured tenant database.
3221
3265
  */
3222
3266
  static usingTenant(tenant) {
3223
- const ModelClass = this
3224
-
3225
- return {
3226
- find: (recordId) => ModelClass._runUsingTenant(tenant, () => ModelClass.find(recordId)),
3227
- findBy: (conditions) => ModelClass._runUsingTenant(tenant, () => ModelClass.findBy(conditions)),
3228
- findByOrFail: (conditions) => ModelClass._runUsingTenant(tenant, () => ModelClass.findByOrFail(conditions))
3229
- }
3230
- }
3231
-
3232
- /**
3233
- * Runs `callback` with the tenant switched to `tenant` and that tenant's
3234
- * connections ensured. Backs `usingTenant`.
3235
- * @template T
3236
- * @param {?} tenant - Tenant descriptor.
3237
- * @param {() => Promise<T>} callback - Query to run under the tenant.
3238
- * @returns {Promise<T>} - Resolves with the callback's result.
3239
- */
3240
- static async _runUsingTenant(tenant, callback) {
3241
- const configuration = this._getConfiguration()
3242
-
3243
- // Do NOT ensureInitialized() out here: for a tenant-switched model whose
3244
- // first initialization would resolve metadata from the ambient tenant's
3245
- // database, that must happen under the requested tenant. The finders inside
3246
- // `callback` call ensureInitialized() themselves, now within this scope.
3247
- return await configuration.runWithTenant(tenant, () => configuration.ensureConnections({
3248
- databaseIdentifiers: [this.getDatabaseIdentifier()],
3249
- name: `usingTenant: ${this.getModelName()}`
3250
- }, callback))
3267
+ return new TenantModelScope({
3268
+ configuration: this._getConfiguration(),
3269
+ modelClass: this,
3270
+ tenant
3271
+ })
3251
3272
  }
3252
3273
 
3253
3274
  /**
@@ -3255,7 +3276,7 @@ class VelociousDatabaseRecord {
3255
3276
  * @template {typeof VelociousDatabaseRecord} MC
3256
3277
  * @this {MC}
3257
3278
  * @param {{[key: string]: string | number}} conditions - Conditions hash keyed by attribute name.
3258
- * @param {function() : void} [callback] - Callback function.
3279
+ * @param {() => void} [callback] - Callback function.
3259
3280
  * @returns {Promise<InstanceType<MC>>} - Resolves with the or create by.
3260
3281
  */
3261
3282
  static async findOrCreateBy(conditions, callback) {
@@ -3269,7 +3290,7 @@ class VelociousDatabaseRecord {
3269
3290
  * @template {typeof VelociousDatabaseRecord} MC
3270
3291
  * @this {MC}
3271
3292
  * @param {Record<string, string | number>} conditions - Conditions.
3272
- * @param {function(InstanceType<MC>) : void} [callback] - Callback function.
3293
+ * @param {(arg: InstanceType<MC>) => void} [callback] - Callback function.
3273
3294
  * @returns {Promise<InstanceType<MC>>} - Resolves with the or initialize by.
3274
3295
  */
3275
3296
  static async findOrInitializeBy(conditions, callback) {
@@ -3417,7 +3438,7 @@ class VelociousDatabaseRecord {
3417
3438
  * Runs ransack.
3418
3439
  * @template {typeof VelociousDatabaseRecord} MC
3419
3440
  * @this {MC}
3420
- * @param {Record<string, ?>} params - Ransack-style params hash.
3441
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} params - Ransack-style params hash.
3421
3442
  * @returns {ModelClassQuery<MC>} - Query with Ransack filters applied.
3422
3443
  */
3423
3444
  static ransack(params) {
@@ -3454,6 +3475,22 @@ class VelociousDatabaseRecord {
3454
3475
  return this
3455
3476
  }
3456
3477
 
3478
+ /**
3479
+ * Releases this record from a completed eager-helper operation while
3480
+ * preserving the legacy ambient follow-up behavior of `usingTenant` finders.
3481
+ * @param {import("../operation.js").default} operation - Releasing operation.
3482
+ * @returns {this} - Record.
3483
+ */
3484
+ releaseDatabaseOperation(operation) {
3485
+ if (this._databaseOperation !== operation) {
3486
+ throw new Error("Record is not bound to the releasing database operation")
3487
+ }
3488
+
3489
+ this._databaseOperation = undefined
3490
+
3491
+ return this
3492
+ }
3493
+
3457
3494
  /**
3458
3495
  * Returns the explicit operation owning this record, if any.
3459
3496
  * @returns {import("../operation.js").default | undefined} - Owning operation.
@@ -3486,6 +3523,22 @@ class VelociousDatabaseRecord {
3486
3523
  return ModelClass._newQuery()
3487
3524
  }
3488
3525
 
3526
+ /**
3527
+ * Initializes a relationship/preload target without dropping this record's
3528
+ * explicit operation connection.
3529
+ * @param {typeof VelociousDatabaseRecord} ModelClass - Target model class.
3530
+ * @param {import("../../configuration.js").default} configuration - Owning configuration.
3531
+ * @returns {Promise<void>} - Resolves when initialized.
3532
+ */
3533
+ async ensureModelClassInitialized(ModelClass, configuration) {
3534
+ if (this._databaseOperation) {
3535
+ await this._databaseOperation.ensureModelInitialized(ModelClass)
3536
+ return
3537
+ }
3538
+
3539
+ await ModelClass.ensureInitialized({configuration})
3540
+ }
3541
+
3489
3542
  /**
3490
3543
  * Runs load existing record.
3491
3544
  * @param {object} attributes - Attributes.
@@ -3498,7 +3551,7 @@ class VelociousDatabaseRecord {
3498
3551
 
3499
3552
  /**
3500
3553
  * Assigns the given attributes to the record.
3501
- * @param {Record<string, ?>} attributesToAssign - Attributes to assign.
3554
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} attributesToAssign - Attributes to assign.
3502
3555
  * @returns {void} - No return value.
3503
3556
  */
3504
3557
  assign(attributesToAssign) {
@@ -3511,14 +3564,14 @@ class VelociousDatabaseRecord {
3511
3564
 
3512
3565
  /**
3513
3566
  * Returns a the current attributes of the record (original attributes from database plus changes)
3514
- * @returns {Record<string, ?>} - The attributes.
3567
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} - The attributes.
3515
3568
  */
3516
3569
  attributes() {
3517
3570
  const data = this.rawAttributes()
3518
3571
  const columnNameToAttributeName = this.getModelClass().getColumnNameToAttributeNameMap()
3519
3572
  /**
3520
3573
  * Attributes.
3521
- * @type {Record<string, ?>} */
3574
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
3522
3575
  const attributes = {}
3523
3576
 
3524
3577
  for (const columnName in data) {
@@ -3532,7 +3585,7 @@ class VelociousDatabaseRecord {
3532
3585
 
3533
3586
  /**
3534
3587
  * Returns column-name keyed data (original attributes from database plus changes)
3535
- * @returns {Record<string, ?>} - The raw attributes.
3588
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} - The raw attributes.
3536
3589
  */
3537
3590
  rawAttributes() {
3538
3591
  return Object.assign({}, this._attributes, this._changes)
@@ -3670,7 +3723,7 @@ class VelociousDatabaseRecord {
3670
3723
  * @param {typeof VelociousDatabaseRecord} TargetModelClass - Related model class.
3671
3724
  * @param {string} identifier - Tenant database identifier.
3672
3725
  * @param {TenantDatabaseProviderType} provider - Tenant database provider.
3673
- * @returns {Promise<Array<?>>} - Listed tenant objects.
3726
+ * @returns {Promise<Array<ReturnType<typeof JSON.parse>>>} - Listed tenant objects.
3674
3727
  */
3675
3728
  async _dependentRestrictProviderTenants(instanceRelationship, TargetModelClass, identifier, provider) {
3676
3729
  const configuration = this.getModelClass()._getConfiguration()
@@ -3766,7 +3819,7 @@ class VelociousDatabaseRecord {
3766
3819
 
3767
3820
  /**
3768
3821
  * Conditions.
3769
- * @type {Record<string, ?>} */
3822
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
3770
3823
  const conditions = {}
3771
3824
 
3772
3825
  conditions[this.getModelClass().primaryKey()] = this.id()
@@ -3866,7 +3919,7 @@ class VelociousDatabaseRecord {
3866
3919
  if (callback == callbackName) {
3867
3920
  callbackNameRegisteredAsString = true
3868
3921
  }
3869
- const dynamicThis = /** @type {Record<string, ?>} */ (/** @type {?} */ (this))
3922
+ const dynamicThis = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
3870
3923
  const methodCallback = dynamicThis[callback]
3871
3924
 
3872
3925
  if (typeof methodCallback != "function") {
@@ -3879,7 +3932,7 @@ class VelociousDatabaseRecord {
3879
3932
  }
3880
3933
  }
3881
3934
 
3882
- const dynamicThis = /** @type {Record<string, ?>} */ (/** @type {?} */ (this))
3935
+ const dynamicThis = /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
3883
3936
  const instanceCallback = dynamicThis[callbackName]
3884
3937
 
3885
3938
  if (!callbackNameRegisteredAsString && typeof instanceCallback === "function") {
@@ -3928,12 +3981,12 @@ class VelociousDatabaseRecord {
3928
3981
 
3929
3982
  /**
3930
3983
  * Returns the changes that have been made to this record since it was loaded from the database.
3931
- * @returns {Record<string, Array<?>>} - The changes.
3984
+ * @returns {Record<string, Array<ReturnType<typeof JSON.parse>>>} - The changes.
3932
3985
  */
3933
3986
  changes() {
3934
3987
  /**
3935
3988
  * Changes.
3936
- * @type {Record<string, Array<?>>} */
3989
+ * @type {Record<string, Array<ReturnType<typeof JSON.parse>>>} */
3937
3990
  const changes = {}
3938
3991
 
3939
3992
  for (const changeKey in this._changes) {
@@ -3983,7 +4036,7 @@ class VelociousDatabaseRecord {
3983
4036
  * @returns {number} - Attached association count, or zero when absent.
3984
4037
  */
3985
4038
  readCount(attributeName) {
3986
- return readPayloadAssociationCount(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), attributeName)
4039
+ return readPayloadAssociationCount(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), attributeName)
3987
4040
  }
3988
4041
 
3989
4042
  /**
@@ -3994,7 +4047,7 @@ class VelociousDatabaseRecord {
3994
4047
  * @returns {void}
3995
4048
  */
3996
4049
  _setAssociationCount(attributeName, value) {
3997
- setPayloadAssociationCount(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), attributeName, value)
4050
+ setPayloadAssociationCount(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), attributeName, value)
3998
4051
  }
3999
4052
 
4000
4053
  /**
@@ -4009,7 +4062,7 @@ class VelociousDatabaseRecord {
4009
4062
  * @type {Record<string, number>} */
4010
4063
  const result = {}
4011
4064
 
4012
- const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this))
4065
+ const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
4013
4066
 
4014
4067
  if (!target._associationCounts) return result
4015
4068
 
@@ -4028,10 +4081,10 @@ class VelociousDatabaseRecord {
4028
4081
  * registered fn for this record (e.g. no child rows matched the
4029
4082
  * aggregate).
4030
4083
  * @param {string} name - queryData attribute name (matches a SELECT alias from the registered fn).
4031
- * @returns {?} - Attached query-data value.
4084
+ * @returns {ReturnType<typeof JSON.parse>} - Attached query-data value.
4032
4085
  */
4033
4086
  queryData(name) {
4034
- return readPayloadQueryData(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), name)
4087
+ return readPayloadQueryData(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), name)
4035
4088
  }
4036
4089
 
4037
4090
  /**
@@ -4039,26 +4092,26 @@ class VelociousDatabaseRecord {
4039
4092
  * the `queryData` runner and by frontend-model hydration; outside
4040
4093
  * code should not call this directly.
4041
4094
  * @param {string} name - queryData attribute name.
4042
- * @param {?} value - Value to attach.
4095
+ * @param {ReturnType<typeof JSON.parse>} value - Value to attach.
4043
4096
  * @returns {void}
4044
4097
  */
4045
4098
  _setQueryData(name, value) {
4046
- setPayloadQueryData(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), name, value)
4099
+ setPayloadQueryData(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), name, value)
4047
4100
  }
4048
4101
 
4049
4102
  /**
4050
4103
  * All attached queryData values as a plain object. Used by the
4051
4104
  * frontend-model serializer to ship queryData alongside the record
4052
4105
  * attributes on the wire.
4053
- * @returns {Record<string, ?>} - Query-data values keyed by name.
4106
+ * @returns {Record<string, ReturnType<typeof JSON.parse>>} - Query-data values keyed by name.
4054
4107
  */
4055
4108
  queryDataValues() {
4056
4109
  /**
4057
4110
  * Result.
4058
- * @type {Record<string, ?>} */
4111
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
4059
4112
  const result = {}
4060
4113
 
4061
- const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this))
4114
+ const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
4062
4115
 
4063
4116
  if (!target._queryDataValues) return result
4064
4117
 
@@ -4081,7 +4134,7 @@ class VelociousDatabaseRecord {
4081
4134
  * @returns {boolean} - Whether the requested ability is allowed.
4082
4135
  */
4083
4136
  can(action) {
4084
- return readPayloadComputedAbility(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), action)
4137
+ return readPayloadComputedAbility(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), action)
4085
4138
  }
4086
4139
 
4087
4140
  /**
@@ -4093,7 +4146,7 @@ class VelociousDatabaseRecord {
4093
4146
  * @returns {void}
4094
4147
  */
4095
4148
  _setComputedAbility(action, value) {
4096
- setPayloadComputedAbility(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this)), action, value)
4149
+ setPayloadComputedAbility(/** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this)), action, value)
4097
4150
  }
4098
4151
 
4099
4152
  /**
@@ -4108,7 +4161,7 @@ class VelociousDatabaseRecord {
4108
4161
  * @type {Record<string, boolean>} */
4109
4162
  const result = {}
4110
4163
 
4111
- const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {?} */ (this))
4164
+ const target = /** @type {import("../../record-payload-values.js").RecordPayloadValuesTarget} */ (/** @type {ReturnType<typeof JSON.parse>} */ (this))
4112
4165
 
4113
4166
  if (!target._computedAbilities) return result
4114
4167
 
@@ -4122,7 +4175,7 @@ class VelociousDatabaseRecord {
4122
4175
  /**
4123
4176
  * Reads a column value from the record.
4124
4177
  * @param {string} attributeName The name of the column to read. This is the column name, not the attribute name.
4125
- * @returns {?} - The column.
4178
+ * @returns {ReturnType<typeof JSON.parse>} - The column.
4126
4179
  */
4127
4180
  readColumn(attributeName) {
4128
4181
  this.getModelClass()._assertHasBeenInitialized()
@@ -4166,8 +4219,8 @@ class VelociousDatabaseRecord {
4166
4219
  /**
4167
4220
  * Converts a stored value to a real boolean for a declared `"boolean"` cast.
4168
4221
  * Leaves null/undefined untouched; treats 1/true/"1" as true and 0/false/"0" as false.
4169
- * @param {?} value - Stored database value.
4170
- * @returns {?} - Converted boolean, or the original value when not recognized.
4222
+ * @param {ReturnType<typeof JSON.parse>} value - Stored database value.
4223
+ * @returns {ReturnType<typeof JSON.parse>} - Converted boolean, or the original value when not recognized.
4171
4224
  */
4172
4225
  _castDeclaredBooleanForRead(value) {
4173
4226
  if (value === null || value === undefined) return value
@@ -4195,8 +4248,8 @@ class VelociousDatabaseRecord {
4195
4248
  * @param {object} args - Options object.
4196
4249
  * @param {string} args.columnName - Database column name being read.
4197
4250
  * @param {string | undefined} args.columnType - Column type.
4198
- * @param {?} args.value - Value to normalize.
4199
- * @returns {?} - Normalized value.
4251
+ * @param {ReturnType<typeof JSON.parse>} args.value - Value to normalize.
4252
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
4200
4253
  */
4201
4254
  _normalizeBooleanValueForRead({columnName, columnType, value}) {
4202
4255
  if (this._declaredAttributeCastForColumn(columnName) === "boolean") {
@@ -4213,8 +4266,8 @@ class VelociousDatabaseRecord {
4213
4266
 
4214
4267
  /**
4215
4268
  * Runs normalize date value for read.
4216
- * @param {?} value - Value from database.
4217
- * @returns {?} - Normalized value.
4269
+ * @param {ReturnType<typeof JSON.parse>} value - Value from database.
4270
+ * @returns {ReturnType<typeof JSON.parse>} - Normalized value.
4218
4271
  */
4219
4272
  _normalizeDateValueForRead(value) {
4220
4273
  return normalizeDateValueForRead(value, {databaseType: this.getModelClass().getDatabaseType()})
@@ -4223,7 +4276,7 @@ class VelociousDatabaseRecord {
4223
4276
  _belongsToChanges() {
4224
4277
  /**
4225
4278
  * Belongs to changes.
4226
- * @type {Record<string, ?>} */
4279
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
4227
4280
  const belongsToChanges = {}
4228
4281
 
4229
4282
  if (this._instanceRelationships) {
@@ -4344,7 +4397,7 @@ class VelociousDatabaseRecord {
4344
4397
 
4345
4398
  /**
4346
4399
  * Sets timestamp defaults for a new record insert.
4347
- * @param {Record<string, ?>} data - Column-keyed data.
4400
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} data - Column-keyed data.
4348
4401
  * @returns {void} - No return value.
4349
4402
  */
4350
4403
  _setDefaultTimestampValues(data) {
@@ -4362,7 +4415,7 @@ class VelociousDatabaseRecord {
4362
4415
 
4363
4416
  /**
4364
4417
  * Runs normalize date values for write.
4365
- * @param {Record<string, ?>} data - Column-keyed data.
4418
+ * @param {Record<string, ReturnType<typeof JSON.parse>>} data - Column-keyed data.
4366
4419
  * @returns {void} - No return value.
4367
4420
  */
4368
4421
  _normalizeDateValuesForWrite(data) {
@@ -4384,7 +4437,7 @@ class VelociousDatabaseRecord {
4384
4437
  async _updateRecordWithChanges() {
4385
4438
  /**
4386
4439
  * Conditions.
4387
- * @type {Record<string, ?>} */
4440
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
4388
4441
  const conditions = {}
4389
4442
 
4390
4443
  conditions[this.getModelClass().primaryKey()] = this.id()
@@ -4460,7 +4513,7 @@ class VelociousDatabaseRecord {
4460
4513
 
4461
4514
  /**
4462
4515
  * Where object.
4463
- * @type {Record<string, ?>} */
4516
+ * @type {Record<string, ReturnType<typeof JSON.parse>>} */
4464
4517
  const whereObject = {}
4465
4518
 
4466
4519
  whereObject[primaryKey] = id