velocious 1.0.449 → 1.0.451

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 (636) hide show
  1. package/README.md +1 -1
  2. package/build/application.js +4 -4
  3. package/build/authorization/ability.js +8 -8
  4. package/build/authorization/base-resource.js +4 -4
  5. package/build/background-jobs/cron-expression.js +1 -1
  6. package/build/background-jobs/forked-runner-child.js +1 -1
  7. package/build/background-jobs/job-registry.js +1 -1
  8. package/build/background-jobs/job-runner.js +1 -1
  9. package/build/background-jobs/job.js +1 -1
  10. package/build/background-jobs/json-socket.js +4 -4
  11. package/build/background-jobs/main.js +21 -21
  12. package/build/background-jobs/scheduler.js +7 -7
  13. package/build/background-jobs/store.js +7 -7
  14. package/build/background-jobs/web/controller.js +2 -2
  15. package/build/background-jobs/worker.js +12 -12
  16. package/build/beacon/client.js +11 -8
  17. package/build/beacon/in-process-broker.js +2 -2
  18. package/build/beacon/in-process-client.js +2 -2
  19. package/build/beacon/server.js +3 -3
  20. package/build/cli/browser-cli.js +1 -1
  21. package/build/cli/commands/db/base-command.js +2 -2
  22. package/build/cli/index.js +2 -2
  23. package/build/cli/tenant-database-command-helper.js +3 -3
  24. package/build/cli/use-browser-cli.js +1 -1
  25. package/build/configuration-types.js +3 -1
  26. package/build/configuration.js +38 -38
  27. package/build/controller.js +8 -8
  28. package/build/current-configuration.js +1 -1
  29. package/build/database/annotations-async-hooks.js +2 -2
  30. package/build/database/annotations.js +3 -3
  31. package/build/database/drivers/base-column.js +1 -1
  32. package/build/database/drivers/base-foreign-key.js +1 -1
  33. package/build/database/drivers/base-table.js +1 -1
  34. package/build/database/drivers/base.js +10 -10
  35. package/build/database/drivers/mssql/index.js +1 -1
  36. package/build/database/drivers/mssql/table.js +1 -1
  37. package/build/database/drivers/mysql/index.js +3 -3
  38. package/build/database/drivers/mysql/query.js +1 -1
  39. package/build/database/drivers/mysql/table.js +1 -1
  40. package/build/database/drivers/pgsql/index.js +2 -2
  41. package/build/database/drivers/sqlite/base.js +16 -16
  42. package/build/database/drivers/sqlite/index.js +11 -11
  43. package/build/database/drivers/sqlite/index.native.js +1 -1
  44. package/build/database/drivers/sqlite/index.web.js +3 -3
  45. package/build/database/drivers/sqlite/query.js +1 -1
  46. package/build/database/drivers/sqlite/query.web.js +1 -1
  47. package/build/database/drivers/sqlite/sql/alter-table.js +2 -2
  48. package/build/database/drivers/sqlite/table.js +1 -1
  49. package/build/database/migrator/files-finder.js +1 -1
  50. package/build/database/migrator.js +6 -6
  51. package/build/database/pool/async-tracked-multi-connection.js +27 -27
  52. package/build/database/pool/base-methods-forward.js +4 -4
  53. package/build/database/pool/base.js +8 -8
  54. package/build/database/query/from-base.js +1 -1
  55. package/build/database/query/index.js +10 -10
  56. package/build/database/query/join-object.js +3 -3
  57. package/build/database/query/model-class-query.js +39 -39
  58. package/build/database/query/preloader/belongs-to.js +22 -22
  59. package/build/database/query/preloader/has-many.js +20 -20
  60. package/build/database/query/preloader/has-one.js +8 -8
  61. package/build/database/query/preloader/selection.js +3 -3
  62. package/build/database/query/preloader.js +8 -8
  63. package/build/database/query/query-data.js +9 -9
  64. package/build/database/query/where-model-class-hash.js +7 -7
  65. package/build/database/query/with-count.js +9 -9
  66. package/build/database/record/acts-as-list.js +15 -15
  67. package/build/database/record/attachments/handle.js +2 -2
  68. package/build/database/record/attachments/normalize-input.js +12 -12
  69. package/build/database/record/attachments/storage-drivers/s3.js +6 -6
  70. package/build/database/record/attachments/store.js +13 -13
  71. package/build/database/record/index.js +115 -121
  72. package/build/database/record/instance-relationships/base.js +11 -11
  73. package/build/database/record/instance-relationships/belongs-to.js +3 -3
  74. package/build/database/record/instance-relationships/has-many.js +8 -8
  75. package/build/database/record/instance-relationships/has-one.js +7 -7
  76. package/build/database/record/relationships/base.js +2 -2
  77. package/build/database/record/state-machine.js +7 -7
  78. package/build/database/record/validators/presence.js +1 -1
  79. package/build/database/record/validators/uniqueness.js +5 -5
  80. package/build/database/table-data/index.js +4 -4
  81. package/build/environment-handlers/base.js +2 -2
  82. package/build/environment-handlers/browser.js +7 -7
  83. package/build/environment-handlers/node/cli/commands/cli-command-context.js +1 -1
  84. package/build/environment-handlers/node/cli/commands/console.js +4 -4
  85. package/build/environment-handlers/node/cli/commands/db/schema/dump.js +1 -1
  86. package/build/environment-handlers/node/cli/commands/db/schema/load.js +3 -3
  87. package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +836 -60
  88. package/build/environment-handlers/node.js +6 -6
  89. package/build/frontend-model-controller.js +81 -82
  90. package/build/frontend-model-resource/base-resource.js +78 -115
  91. package/build/frontend-models/base.js +162 -149
  92. package/build/frontend-models/clear-pending-debounced-callback.js +1 -1
  93. package/build/frontend-models/event-hook-models.js +2 -2
  94. package/build/frontend-models/outgoing-event-buffer.js +2 -2
  95. package/build/frontend-models/preloader.js +5 -5
  96. package/build/frontend-models/query.js +43 -38
  97. package/build/frontend-models/resource-definition.js +6 -6
  98. package/build/frontend-models/transport-serialization.js +11 -11
  99. package/build/frontend-models/use-destroyed-event.js +10 -10
  100. package/build/frontend-models/use-model-class-event.js +11 -11
  101. package/build/frontend-models/use-updated-event.js +11 -11
  102. package/build/frontend-models/websocket-channel.js +26 -17
  103. package/build/frontend-models/websocket-publishers.js +9 -9
  104. package/build/http-client/response.js +2 -2
  105. package/build/http-server/client/index.js +8 -8
  106. package/build/http-server/client/params-to-object.js +10 -10
  107. package/build/http-server/client/request-buffer/form-data-part.js +2 -2
  108. package/build/http-server/client/request-buffer/index.js +8 -8
  109. package/build/http-server/client/request-parser.js +3 -3
  110. package/build/http-server/client/request-runner.js +6 -6
  111. package/build/http-server/client/request-timing.js +5 -5
  112. package/build/http-server/client/request.js +1 -1
  113. package/build/http-server/client/response.js +5 -5
  114. package/build/http-server/client/websocket-request.js +4 -4
  115. package/build/http-server/client/websocket-session.js +18 -18
  116. package/build/http-server/development-reloader.js +5 -5
  117. package/build/http-server/index.js +12 -12
  118. package/build/http-server/remote-address.js +4 -4
  119. package/build/http-server/server-client.js +3 -3
  120. package/build/http-server/server-lock.js +4 -4
  121. package/build/http-server/websocket-channel-subscribers.js +3 -3
  122. package/build/http-server/websocket-channel.js +1 -1
  123. package/build/http-server/websocket-connection.js +1 -1
  124. package/build/http-server/websocket-event-log-store.js +6 -6
  125. package/build/http-server/websocket-events-host.js +2 -2
  126. package/build/http-server/worker-handler/in-process.js +7 -7
  127. package/build/http-server/worker-handler/index.js +4 -4
  128. package/build/http-server/worker-handler/worker-thread.js +3 -3
  129. package/build/logger/outputs/array-output.js +3 -3
  130. package/build/logger/outputs/console-output.js +1 -1
  131. package/build/logger/outputs/file-output.js +4 -4
  132. package/build/logger/outputs/stdout-output.js +1 -1
  133. package/build/logger.js +10 -10
  134. package/build/mailer/backends/smtp.js +3 -3
  135. package/build/mailer/base.js +8 -8
  136. package/build/mailer/delivery.js +4 -4
  137. package/build/plugins/sqljs-wasm-route-controller.js +1 -1
  138. package/build/routes/base-route.js +6 -6
  139. package/build/routes/basic-route.js +1 -1
  140. package/build/routes/hooks/frontend-model-command-route-hook.js +1 -1
  141. package/build/routes/index.js +1 -1
  142. package/build/routes/plugin-routes.js +1 -1
  143. package/build/routes/resolver.js +11 -11
  144. package/build/routes/resource-route.js +1 -1
  145. package/build/src/application.d.ts +3 -3
  146. package/build/src/application.d.ts.map +1 -1
  147. package/build/src/application.js +5 -5
  148. package/build/src/authorization/ability.d.ts +7 -7
  149. package/build/src/authorization/ability.d.ts.map +1 -1
  150. package/build/src/authorization/ability.js +9 -9
  151. package/build/src/authorization/base-resource.d.ts +1 -1
  152. package/build/src/authorization/base-resource.d.ts.map +1 -1
  153. package/build/src/authorization/base-resource.js +5 -5
  154. package/build/src/background-jobs/cron-expression.js +2 -2
  155. package/build/src/background-jobs/forked-runner-child.js +2 -2
  156. package/build/src/background-jobs/job-registry.d.ts +1 -1
  157. package/build/src/background-jobs/job-registry.d.ts.map +1 -1
  158. package/build/src/background-jobs/job-registry.js +2 -2
  159. package/build/src/background-jobs/job-runner.js +2 -2
  160. package/build/src/background-jobs/job.js +2 -2
  161. package/build/src/background-jobs/json-socket.d.ts +4 -4
  162. package/build/src/background-jobs/json-socket.d.ts.map +1 -1
  163. package/build/src/background-jobs/json-socket.js +5 -5
  164. package/build/src/background-jobs/main.d.ts +18 -18
  165. package/build/src/background-jobs/main.d.ts.map +1 -1
  166. package/build/src/background-jobs/main.js +22 -22
  167. package/build/src/background-jobs/scheduler.d.ts +5 -5
  168. package/build/src/background-jobs/scheduler.d.ts.map +1 -1
  169. package/build/src/background-jobs/scheduler.js +8 -8
  170. package/build/src/background-jobs/store.js +8 -8
  171. package/build/src/background-jobs/web/controller.js +3 -3
  172. package/build/src/background-jobs/worker.d.ts +6 -6
  173. package/build/src/background-jobs/worker.d.ts.map +1 -1
  174. package/build/src/background-jobs/worker.js +13 -13
  175. package/build/src/beacon/client.d.ts +4 -4
  176. package/build/src/beacon/client.d.ts.map +1 -1
  177. package/build/src/beacon/client.js +12 -9
  178. package/build/src/beacon/in-process-broker.d.ts.map +1 -1
  179. package/build/src/beacon/in-process-broker.js +3 -3
  180. package/build/src/beacon/in-process-client.d.ts +1 -1
  181. package/build/src/beacon/in-process-client.d.ts.map +1 -1
  182. package/build/src/beacon/in-process-client.js +3 -3
  183. package/build/src/beacon/server.d.ts +2 -2
  184. package/build/src/beacon/server.d.ts.map +1 -1
  185. package/build/src/beacon/server.js +4 -4
  186. package/build/src/cli/browser-cli.js +2 -2
  187. package/build/src/cli/commands/db/base-command.d.ts +2 -2
  188. package/build/src/cli/commands/db/base-command.d.ts.map +1 -1
  189. package/build/src/cli/commands/db/base-command.js +3 -3
  190. package/build/src/cli/index.js +3 -3
  191. package/build/src/cli/tenant-database-command-helper.d.ts +1 -1
  192. package/build/src/cli/tenant-database-command-helper.d.ts.map +1 -1
  193. package/build/src/cli/tenant-database-command-helper.js +4 -4
  194. package/build/src/cli/use-browser-cli.js +2 -2
  195. package/build/src/configuration-types.d.ts +12 -2
  196. package/build/src/configuration-types.d.ts.map +1 -1
  197. package/build/src/configuration-types.js +4 -2
  198. package/build/src/configuration.d.ts +14 -14
  199. package/build/src/configuration.d.ts.map +1 -1
  200. package/build/src/configuration.js +39 -39
  201. package/build/src/controller.js +10 -10
  202. package/build/src/current-configuration.js +2 -2
  203. package/build/src/database/annotations-async-hooks.js +3 -3
  204. package/build/src/database/annotations.d.ts.map +1 -1
  205. package/build/src/database/annotations.js +4 -4
  206. package/build/src/database/drivers/base-column.d.ts +1 -1
  207. package/build/src/database/drivers/base-column.d.ts.map +1 -1
  208. package/build/src/database/drivers/base-column.js +2 -2
  209. package/build/src/database/drivers/base-foreign-key.d.ts +1 -1
  210. package/build/src/database/drivers/base-foreign-key.d.ts.map +1 -1
  211. package/build/src/database/drivers/base-foreign-key.js +2 -2
  212. package/build/src/database/drivers/base-table.d.ts +1 -1
  213. package/build/src/database/drivers/base-table.d.ts.map +1 -1
  214. package/build/src/database/drivers/base-table.js +2 -2
  215. package/build/src/database/drivers/base.d.ts +6 -6
  216. package/build/src/database/drivers/base.d.ts.map +1 -1
  217. package/build/src/database/drivers/base.js +11 -11
  218. package/build/src/database/drivers/mssql/index.js +2 -2
  219. package/build/src/database/drivers/mssql/table.js +2 -2
  220. package/build/src/database/drivers/mysql/index.js +4 -4
  221. package/build/src/database/drivers/mysql/query.js +2 -2
  222. package/build/src/database/drivers/mysql/table.js +2 -2
  223. package/build/src/database/drivers/pgsql/index.js +3 -3
  224. package/build/src/database/drivers/sqlite/base.d.ts +3 -3
  225. package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
  226. package/build/src/database/drivers/sqlite/base.js +17 -17
  227. package/build/src/database/drivers/sqlite/index.d.ts +4 -4
  228. package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
  229. package/build/src/database/drivers/sqlite/index.js +12 -12
  230. package/build/src/database/drivers/sqlite/index.native.js +2 -2
  231. package/build/src/database/drivers/sqlite/index.web.d.ts +2 -2
  232. package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
  233. package/build/src/database/drivers/sqlite/index.web.js +4 -4
  234. package/build/src/database/drivers/sqlite/query.js +2 -2
  235. package/build/src/database/drivers/sqlite/query.web.js +2 -2
  236. package/build/src/database/drivers/sqlite/sql/alter-table.js +3 -3
  237. package/build/src/database/drivers/sqlite/table.js +2 -2
  238. package/build/src/database/migrator/files-finder.js +2 -2
  239. package/build/src/database/migrator.d.ts +1 -1
  240. package/build/src/database/migrator.d.ts.map +1 -1
  241. package/build/src/database/migrator.js +7 -7
  242. package/build/src/database/pool/async-tracked-multi-connection.d.ts +9 -9
  243. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  244. package/build/src/database/pool/async-tracked-multi-connection.js +28 -28
  245. package/build/src/database/pool/base-methods-forward.js +7 -7
  246. package/build/src/database/pool/base.d.ts +1 -1
  247. package/build/src/database/pool/base.d.ts.map +1 -1
  248. package/build/src/database/pool/base.js +9 -9
  249. package/build/src/database/query/from-base.d.ts +1 -1
  250. package/build/src/database/query/from-base.d.ts.map +1 -1
  251. package/build/src/database/query/from-base.js +2 -2
  252. package/build/src/database/query/index.d.ts +4 -4
  253. package/build/src/database/query/index.d.ts.map +1 -1
  254. package/build/src/database/query/index.js +11 -11
  255. package/build/src/database/query/join-object.js +4 -4
  256. package/build/src/database/query/model-class-query.d.ts +4 -4
  257. package/build/src/database/query/model-class-query.d.ts.map +1 -1
  258. package/build/src/database/query/model-class-query.js +40 -40
  259. package/build/src/database/query/preloader/belongs-to.js +23 -23
  260. package/build/src/database/query/preloader/has-many.js +21 -21
  261. package/build/src/database/query/preloader/has-one.js +9 -9
  262. package/build/src/database/query/preloader/selection.js +4 -4
  263. package/build/src/database/query/preloader.js +9 -9
  264. package/build/src/database/query/query-data.js +10 -10
  265. package/build/src/database/query/where-model-class-hash.js +8 -8
  266. package/build/src/database/query/with-count.js +10 -10
  267. package/build/src/database/record/acts-as-list.js +20 -20
  268. package/build/src/database/record/attachments/handle.d.ts +1 -1
  269. package/build/src/database/record/attachments/handle.d.ts.map +1 -1
  270. package/build/src/database/record/attachments/handle.js +3 -3
  271. package/build/src/database/record/attachments/normalize-input.js +15 -15
  272. package/build/src/database/record/attachments/storage-drivers/s3.js +7 -7
  273. package/build/src/database/record/attachments/store.d.ts +2 -2
  274. package/build/src/database/record/attachments/store.d.ts.map +1 -1
  275. package/build/src/database/record/attachments/store.js +14 -14
  276. package/build/src/database/record/index.d.ts +18 -25
  277. package/build/src/database/record/index.d.ts.map +1 -1
  278. package/build/src/database/record/index.js +135 -141
  279. package/build/src/database/record/instance-relationships/base.d.ts +3 -3
  280. package/build/src/database/record/instance-relationships/base.d.ts.map +1 -1
  281. package/build/src/database/record/instance-relationships/base.js +13 -13
  282. package/build/src/database/record/instance-relationships/belongs-to.js +4 -4
  283. package/build/src/database/record/instance-relationships/has-many.js +9 -9
  284. package/build/src/database/record/instance-relationships/has-one.d.ts +1 -1
  285. package/build/src/database/record/instance-relationships/has-one.d.ts.map +1 -1
  286. package/build/src/database/record/instance-relationships/has-one.js +8 -8
  287. package/build/src/database/record/relationships/base.js +4 -4
  288. package/build/src/database/record/state-machine.js +8 -8
  289. package/build/src/database/record/validators/presence.js +2 -2
  290. package/build/src/database/record/validators/uniqueness.js +6 -6
  291. package/build/src/database/table-data/index.d.ts +4 -4
  292. package/build/src/database/table-data/index.d.ts.map +1 -1
  293. package/build/src/database/table-data/index.js +5 -5
  294. package/build/src/environment-handlers/base.js +3 -3
  295. package/build/src/environment-handlers/browser.d.ts +3 -3
  296. package/build/src/environment-handlers/browser.d.ts.map +1 -1
  297. package/build/src/environment-handlers/browser.js +8 -8
  298. package/build/src/environment-handlers/node/cli/commands/cli-command-context.js +2 -2
  299. package/build/src/environment-handlers/node/cli/commands/console.d.ts.map +1 -1
  300. package/build/src/environment-handlers/node/cli/commands/console.js +5 -5
  301. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts +1 -1
  302. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.d.ts.map +1 -1
  303. package/build/src/environment-handlers/node/cli/commands/db/schema/dump.js +2 -2
  304. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts +1 -1
  305. package/build/src/environment-handlers/node/cli/commands/db/schema/load.d.ts.map +1 -1
  306. package/build/src/environment-handlers/node/cli/commands/db/schema/load.js +4 -4
  307. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +285 -12
  308. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
  309. package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +712 -61
  310. package/build/src/environment-handlers/node.d.ts +2 -2
  311. package/build/src/environment-handlers/node.d.ts.map +1 -1
  312. package/build/src/environment-handlers/node.js +7 -7
  313. package/build/src/frontend-model-controller.d.ts +5 -6
  314. package/build/src/frontend-model-controller.d.ts.map +1 -1
  315. package/build/src/frontend-model-controller.js +88 -89
  316. package/build/src/frontend-model-resource/base-resource.d.ts +36 -27
  317. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  318. package/build/src/frontend-model-resource/base-resource.js +67 -120
  319. package/build/src/frontend-models/base.d.ts +67 -59
  320. package/build/src/frontend-models/base.d.ts.map +1 -1
  321. package/build/src/frontend-models/base.js +171 -158
  322. package/build/src/frontend-models/clear-pending-debounced-callback.js +2 -2
  323. package/build/src/frontend-models/event-hook-models.d.ts.map +1 -1
  324. package/build/src/frontend-models/event-hook-models.js +3 -3
  325. package/build/src/frontend-models/outgoing-event-buffer.d.ts +1 -1
  326. package/build/src/frontend-models/outgoing-event-buffer.d.ts.map +1 -1
  327. package/build/src/frontend-models/outgoing-event-buffer.js +3 -3
  328. package/build/src/frontend-models/preloader.js +6 -6
  329. package/build/src/frontend-models/query.d.ts +16 -8
  330. package/build/src/frontend-models/query.d.ts.map +1 -1
  331. package/build/src/frontend-models/query.js +43 -39
  332. package/build/src/frontend-models/resource-definition.js +7 -7
  333. package/build/src/frontend-models/transport-serialization.js +12 -12
  334. package/build/src/frontend-models/use-destroyed-event.d.ts.map +1 -1
  335. package/build/src/frontend-models/use-destroyed-event.js +11 -11
  336. package/build/src/frontend-models/use-model-class-event.d.ts.map +1 -1
  337. package/build/src/frontend-models/use-model-class-event.js +12 -12
  338. package/build/src/frontend-models/use-updated-event.d.ts.map +1 -1
  339. package/build/src/frontend-models/use-updated-event.js +12 -12
  340. package/build/src/frontend-models/websocket-channel.d.ts +6 -1
  341. package/build/src/frontend-models/websocket-channel.d.ts.map +1 -1
  342. package/build/src/frontend-models/websocket-channel.js +26 -18
  343. package/build/src/frontend-models/websocket-publishers.js +11 -11
  344. package/build/src/http-client/response.d.ts +2 -2
  345. package/build/src/http-client/response.d.ts.map +1 -1
  346. package/build/src/http-client/response.js +3 -3
  347. package/build/src/http-server/client/index.d.ts +1 -1
  348. package/build/src/http-server/client/index.d.ts.map +1 -1
  349. package/build/src/http-server/client/index.js +9 -9
  350. package/build/src/http-server/client/params-to-object.js +11 -11
  351. package/build/src/http-server/client/request-buffer/form-data-part.d.ts +2 -2
  352. package/build/src/http-server/client/request-buffer/form-data-part.d.ts.map +1 -1
  353. package/build/src/http-server/client/request-buffer/form-data-part.js +3 -3
  354. package/build/src/http-server/client/request-buffer/index.d.ts +4 -4
  355. package/build/src/http-server/client/request-buffer/index.d.ts.map +1 -1
  356. package/build/src/http-server/client/request-buffer/index.js +9 -9
  357. package/build/src/http-server/client/request-parser.d.ts +1 -1
  358. package/build/src/http-server/client/request-parser.d.ts.map +1 -1
  359. package/build/src/http-server/client/request-parser.js +4 -4
  360. package/build/src/http-server/client/request-runner.js +7 -7
  361. package/build/src/http-server/client/request-timing.d.ts +5 -5
  362. package/build/src/http-server/client/request-timing.d.ts.map +1 -1
  363. package/build/src/http-server/client/request-timing.js +6 -6
  364. package/build/src/http-server/client/request.js +2 -2
  365. package/build/src/http-server/client/response.d.ts +3 -3
  366. package/build/src/http-server/client/response.d.ts.map +1 -1
  367. package/build/src/http-server/client/response.js +6 -6
  368. package/build/src/http-server/client/websocket-request.d.ts +3 -3
  369. package/build/src/http-server/client/websocket-request.d.ts.map +1 -1
  370. package/build/src/http-server/client/websocket-request.js +5 -5
  371. package/build/src/http-server/client/websocket-session.d.ts +6 -6
  372. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  373. package/build/src/http-server/client/websocket-session.js +19 -19
  374. package/build/src/http-server/development-reloader.d.ts +3 -3
  375. package/build/src/http-server/development-reloader.d.ts.map +1 -1
  376. package/build/src/http-server/development-reloader.js +6 -6
  377. package/build/src/http-server/index.d.ts +7 -7
  378. package/build/src/http-server/index.d.ts.map +1 -1
  379. package/build/src/http-server/index.js +13 -13
  380. package/build/src/http-server/remote-address.js +6 -6
  381. package/build/src/http-server/server-client.js +4 -4
  382. package/build/src/http-server/server-lock.js +5 -5
  383. package/build/src/http-server/websocket-channel-subscribers.d.ts +1 -1
  384. package/build/src/http-server/websocket-channel-subscribers.d.ts.map +1 -1
  385. package/build/src/http-server/websocket-channel-subscribers.js +4 -4
  386. package/build/src/http-server/websocket-channel.d.ts +1 -1
  387. package/build/src/http-server/websocket-channel.d.ts.map +1 -1
  388. package/build/src/http-server/websocket-channel.js +2 -2
  389. package/build/src/http-server/websocket-connection.d.ts +1 -1
  390. package/build/src/http-server/websocket-connection.d.ts.map +1 -1
  391. package/build/src/http-server/websocket-connection.js +2 -2
  392. package/build/src/http-server/websocket-event-log-store.d.ts +1 -1
  393. package/build/src/http-server/websocket-event-log-store.d.ts.map +1 -1
  394. package/build/src/http-server/websocket-event-log-store.js +7 -7
  395. package/build/src/http-server/websocket-events-host.d.ts +1 -1
  396. package/build/src/http-server/websocket-events-host.d.ts.map +1 -1
  397. package/build/src/http-server/websocket-events-host.js +3 -3
  398. package/build/src/http-server/worker-handler/in-process.d.ts +3 -3
  399. package/build/src/http-server/worker-handler/in-process.d.ts.map +1 -1
  400. package/build/src/http-server/worker-handler/in-process.js +9 -9
  401. package/build/src/http-server/worker-handler/index.d.ts +4 -4
  402. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  403. package/build/src/http-server/worker-handler/index.js +5 -5
  404. package/build/src/http-server/worker-handler/worker-thread.d.ts +2 -2
  405. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  406. package/build/src/http-server/worker-handler/worker-thread.js +4 -4
  407. package/build/src/logger/outputs/array-output.d.ts +3 -3
  408. package/build/src/logger/outputs/array-output.d.ts.map +1 -1
  409. package/build/src/logger/outputs/array-output.js +4 -4
  410. package/build/src/logger/outputs/console-output.d.ts +1 -1
  411. package/build/src/logger/outputs/console-output.d.ts.map +1 -1
  412. package/build/src/logger/outputs/console-output.js +2 -2
  413. package/build/src/logger/outputs/file-output.d.ts +4 -4
  414. package/build/src/logger/outputs/file-output.d.ts.map +1 -1
  415. package/build/src/logger/outputs/file-output.js +5 -5
  416. package/build/src/logger/outputs/stdout-output.d.ts.map +1 -1
  417. package/build/src/logger/outputs/stdout-output.js +2 -2
  418. package/build/src/logger.d.ts.map +1 -1
  419. package/build/src/logger.js +11 -11
  420. package/build/src/mailer/backends/smtp.d.ts.map +1 -1
  421. package/build/src/mailer/backends/smtp.js +5 -5
  422. package/build/src/mailer/base.js +11 -11
  423. package/build/src/mailer/delivery.d.ts +3 -3
  424. package/build/src/mailer/delivery.d.ts.map +1 -1
  425. package/build/src/mailer/delivery.js +5 -5
  426. package/build/src/plugins/sqljs-wasm-route-controller.js +2 -2
  427. package/build/src/routes/base-route.d.ts +6 -6
  428. package/build/src/routes/base-route.d.ts.map +1 -1
  429. package/build/src/routes/base-route.js +7 -7
  430. package/build/src/routes/basic-route.js +2 -2
  431. package/build/src/routes/hooks/frontend-model-command-route-hook.js +2 -2
  432. package/build/src/routes/index.js +2 -2
  433. package/build/src/routes/plugin-routes.js +2 -2
  434. package/build/src/routes/resolver.d.ts +1 -1
  435. package/build/src/routes/resolver.d.ts.map +1 -1
  436. package/build/src/routes/resolver.js +13 -13
  437. package/build/src/routes/resource-route.d.ts +1 -1
  438. package/build/src/routes/resource-route.d.ts.map +1 -1
  439. package/build/src/routes/resource-route.js +2 -2
  440. package/build/src/testing/browser-frontend-model-event-hook-scenarios.d.ts.map +1 -1
  441. package/build/src/testing/browser-frontend-model-event-hook-scenarios.js +8 -8
  442. package/build/src/testing/expect-utils.js +13 -13
  443. package/build/src/testing/expect.d.ts +1 -1
  444. package/build/src/testing/expect.d.ts.map +1 -1
  445. package/build/src/testing/expect.js +9 -9
  446. package/build/src/testing/test-files-finder.d.ts +8 -8
  447. package/build/src/testing/test-files-finder.d.ts.map +1 -1
  448. package/build/src/testing/test-files-finder.js +9 -9
  449. package/build/src/testing/test-filter-parser.js +3 -3
  450. package/build/src/testing/test-runner.d.ts +2 -2
  451. package/build/src/testing/test-runner.d.ts.map +1 -1
  452. package/build/src/testing/test-runner.js +17 -17
  453. package/build/src/testing/test-suite-splitter.js +2 -2
  454. package/build/src/testing/test.d.ts +2 -2
  455. package/build/src/testing/test.d.ts.map +1 -1
  456. package/build/src/testing/test.js +16 -16
  457. package/build/src/utils/backtrace-cleaner.d.ts +1 -1
  458. package/build/src/utils/backtrace-cleaner.d.ts.map +1 -1
  459. package/build/src/utils/backtrace-cleaner.js +2 -2
  460. package/build/src/utils/format-value.js +2 -2
  461. package/build/src/utils/model-scope.js +2 -2
  462. package/build/src/utils/ransack.js +27 -27
  463. package/build/src/utils/with-tracked-stack-async-hooks.js +8 -8
  464. package/build/src/utils/with-tracked-stack.js +4 -4
  465. package/build/testing/browser-frontend-model-event-hook-scenarios.js +7 -7
  466. package/build/testing/expect-utils.js +11 -11
  467. package/build/testing/expect.js +7 -7
  468. package/build/testing/test-files-finder.js +8 -8
  469. package/build/testing/test-filter-parser.js +2 -2
  470. package/build/testing/test-runner.js +16 -16
  471. package/build/testing/test-suite-splitter.js +1 -1
  472. package/build/testing/test.js +15 -15
  473. package/build/utils/backtrace-cleaner.js +1 -1
  474. package/build/utils/format-value.js +1 -1
  475. package/build/utils/model-scope.js +1 -1
  476. package/build/utils/ransack.js +26 -26
  477. package/build/utils/with-tracked-stack-async-hooks.js +7 -7
  478. package/build/utils/with-tracked-stack.js +3 -3
  479. package/package.json +2 -1
  480. package/src/application.js +4 -4
  481. package/src/authorization/ability.js +8 -8
  482. package/src/authorization/base-resource.js +4 -4
  483. package/src/background-jobs/cron-expression.js +1 -1
  484. package/src/background-jobs/forked-runner-child.js +1 -1
  485. package/src/background-jobs/job-registry.js +1 -1
  486. package/src/background-jobs/job-runner.js +1 -1
  487. package/src/background-jobs/job.js +1 -1
  488. package/src/background-jobs/json-socket.js +4 -4
  489. package/src/background-jobs/main.js +21 -21
  490. package/src/background-jobs/scheduler.js +7 -7
  491. package/src/background-jobs/store.js +7 -7
  492. package/src/background-jobs/web/controller.js +2 -2
  493. package/src/background-jobs/worker.js +12 -12
  494. package/src/beacon/client.js +11 -8
  495. package/src/beacon/in-process-broker.js +2 -2
  496. package/src/beacon/in-process-client.js +2 -2
  497. package/src/beacon/server.js +3 -3
  498. package/src/cli/browser-cli.js +1 -1
  499. package/src/cli/commands/db/base-command.js +2 -2
  500. package/src/cli/index.js +2 -2
  501. package/src/cli/tenant-database-command-helper.js +3 -3
  502. package/src/cli/use-browser-cli.js +1 -1
  503. package/src/configuration-types.js +3 -1
  504. package/src/configuration.js +38 -38
  505. package/src/controller.js +8 -8
  506. package/src/current-configuration.js +1 -1
  507. package/src/database/annotations-async-hooks.js +2 -2
  508. package/src/database/annotations.js +3 -3
  509. package/src/database/drivers/base-column.js +1 -1
  510. package/src/database/drivers/base-foreign-key.js +1 -1
  511. package/src/database/drivers/base-table.js +1 -1
  512. package/src/database/drivers/base.js +10 -10
  513. package/src/database/drivers/mssql/index.js +1 -1
  514. package/src/database/drivers/mssql/table.js +1 -1
  515. package/src/database/drivers/mysql/index.js +3 -3
  516. package/src/database/drivers/mysql/query.js +1 -1
  517. package/src/database/drivers/mysql/table.js +1 -1
  518. package/src/database/drivers/pgsql/index.js +2 -2
  519. package/src/database/drivers/sqlite/base.js +16 -16
  520. package/src/database/drivers/sqlite/index.js +11 -11
  521. package/src/database/drivers/sqlite/index.native.js +1 -1
  522. package/src/database/drivers/sqlite/index.web.js +3 -3
  523. package/src/database/drivers/sqlite/query.js +1 -1
  524. package/src/database/drivers/sqlite/query.web.js +1 -1
  525. package/src/database/drivers/sqlite/sql/alter-table.js +2 -2
  526. package/src/database/drivers/sqlite/table.js +1 -1
  527. package/src/database/migrator/files-finder.js +1 -1
  528. package/src/database/migrator.js +6 -6
  529. package/src/database/pool/async-tracked-multi-connection.js +27 -27
  530. package/src/database/pool/base-methods-forward.js +4 -4
  531. package/src/database/pool/base.js +8 -8
  532. package/src/database/query/from-base.js +1 -1
  533. package/src/database/query/index.js +10 -10
  534. package/src/database/query/join-object.js +3 -3
  535. package/src/database/query/model-class-query.js +39 -39
  536. package/src/database/query/preloader/belongs-to.js +22 -22
  537. package/src/database/query/preloader/has-many.js +20 -20
  538. package/src/database/query/preloader/has-one.js +8 -8
  539. package/src/database/query/preloader/selection.js +3 -3
  540. package/src/database/query/preloader.js +8 -8
  541. package/src/database/query/query-data.js +9 -9
  542. package/src/database/query/where-model-class-hash.js +7 -7
  543. package/src/database/query/with-count.js +9 -9
  544. package/src/database/record/acts-as-list.js +15 -15
  545. package/src/database/record/attachments/handle.js +2 -2
  546. package/src/database/record/attachments/normalize-input.js +12 -12
  547. package/src/database/record/attachments/storage-drivers/s3.js +6 -6
  548. package/src/database/record/attachments/store.js +13 -13
  549. package/src/database/record/index.js +115 -121
  550. package/src/database/record/instance-relationships/base.js +11 -11
  551. package/src/database/record/instance-relationships/belongs-to.js +3 -3
  552. package/src/database/record/instance-relationships/has-many.js +8 -8
  553. package/src/database/record/instance-relationships/has-one.js +7 -7
  554. package/src/database/record/relationships/base.js +2 -2
  555. package/src/database/record/state-machine.js +7 -7
  556. package/src/database/record/validators/presence.js +1 -1
  557. package/src/database/record/validators/uniqueness.js +5 -5
  558. package/src/database/table-data/index.js +4 -4
  559. package/src/environment-handlers/base.js +2 -2
  560. package/src/environment-handlers/browser.js +7 -7
  561. package/src/environment-handlers/node/cli/commands/cli-command-context.js +1 -1
  562. package/src/environment-handlers/node/cli/commands/console.js +4 -4
  563. package/src/environment-handlers/node/cli/commands/db/schema/dump.js +1 -1
  564. package/src/environment-handlers/node/cli/commands/db/schema/load.js +3 -3
  565. package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +836 -60
  566. package/src/environment-handlers/node.js +6 -6
  567. package/src/frontend-model-controller.js +81 -82
  568. package/src/frontend-model-resource/base-resource.js +78 -115
  569. package/src/frontend-models/base.js +162 -149
  570. package/src/frontend-models/clear-pending-debounced-callback.js +1 -1
  571. package/src/frontend-models/event-hook-models.js +2 -2
  572. package/src/frontend-models/outgoing-event-buffer.js +2 -2
  573. package/src/frontend-models/preloader.js +5 -5
  574. package/src/frontend-models/query.js +43 -38
  575. package/src/frontend-models/resource-definition.js +6 -6
  576. package/src/frontend-models/transport-serialization.js +11 -11
  577. package/src/frontend-models/use-destroyed-event.js +10 -10
  578. package/src/frontend-models/use-model-class-event.js +11 -11
  579. package/src/frontend-models/use-updated-event.js +11 -11
  580. package/src/frontend-models/websocket-channel.js +26 -17
  581. package/src/frontend-models/websocket-publishers.js +9 -9
  582. package/src/http-client/response.js +2 -2
  583. package/src/http-server/client/index.js +8 -8
  584. package/src/http-server/client/params-to-object.js +10 -10
  585. package/src/http-server/client/request-buffer/form-data-part.js +2 -2
  586. package/src/http-server/client/request-buffer/index.js +8 -8
  587. package/src/http-server/client/request-parser.js +3 -3
  588. package/src/http-server/client/request-runner.js +6 -6
  589. package/src/http-server/client/request-timing.js +5 -5
  590. package/src/http-server/client/request.js +1 -1
  591. package/src/http-server/client/response.js +5 -5
  592. package/src/http-server/client/websocket-request.js +4 -4
  593. package/src/http-server/client/websocket-session.js +18 -18
  594. package/src/http-server/development-reloader.js +5 -5
  595. package/src/http-server/index.js +12 -12
  596. package/src/http-server/remote-address.js +4 -4
  597. package/src/http-server/server-client.js +3 -3
  598. package/src/http-server/server-lock.js +4 -4
  599. package/src/http-server/websocket-channel-subscribers.js +3 -3
  600. package/src/http-server/websocket-channel.js +1 -1
  601. package/src/http-server/websocket-connection.js +1 -1
  602. package/src/http-server/websocket-event-log-store.js +6 -6
  603. package/src/http-server/websocket-events-host.js +2 -2
  604. package/src/http-server/worker-handler/in-process.js +7 -7
  605. package/src/http-server/worker-handler/index.js +4 -4
  606. package/src/http-server/worker-handler/worker-thread.js +3 -3
  607. package/src/logger/outputs/array-output.js +3 -3
  608. package/src/logger/outputs/console-output.js +1 -1
  609. package/src/logger/outputs/file-output.js +4 -4
  610. package/src/logger/outputs/stdout-output.js +1 -1
  611. package/src/logger.js +10 -10
  612. package/src/mailer/backends/smtp.js +3 -3
  613. package/src/mailer/base.js +8 -8
  614. package/src/mailer/delivery.js +4 -4
  615. package/src/plugins/sqljs-wasm-route-controller.js +1 -1
  616. package/src/routes/base-route.js +6 -6
  617. package/src/routes/basic-route.js +1 -1
  618. package/src/routes/hooks/frontend-model-command-route-hook.js +1 -1
  619. package/src/routes/index.js +1 -1
  620. package/src/routes/plugin-routes.js +1 -1
  621. package/src/routes/resolver.js +11 -11
  622. package/src/routes/resource-route.js +1 -1
  623. package/src/testing/browser-frontend-model-event-hook-scenarios.js +7 -7
  624. package/src/testing/expect-utils.js +11 -11
  625. package/src/testing/expect.js +7 -7
  626. package/src/testing/test-files-finder.js +8 -8
  627. package/src/testing/test-filter-parser.js +2 -2
  628. package/src/testing/test-runner.js +16 -16
  629. package/src/testing/test-suite-splitter.js +1 -1
  630. package/src/testing/test.js +15 -15
  631. package/src/utils/backtrace-cleaner.js +1 -1
  632. package/src/utils/format-value.js +1 -1
  633. package/src/utils/model-scope.js +1 -1
  634. package/src/utils/ransack.js +26 -26
  635. package/src/utils/with-tracked-stack-async-hooks.js +7 -7
  636. package/src/utils/with-tracked-stack.js +3 -3
@@ -41,7 +41,7 @@ export const POOL_CONFIGURATION_KEY = Symbol("velociousPoolConfigurationKey")
41
41
 
42
42
  /**
43
43
  * Shared.
44
- @type {{currentPool: VelociousDatabasePoolBase | null}} */
44
+ * @type {{currentPool: VelociousDatabasePoolBase | null}} */
45
45
  const shared = {
46
46
  currentPool: null
47
47
  }
@@ -60,11 +60,11 @@ function stableStringify(value) {
60
60
  const entries = Object
61
61
  .keys(/**
62
62
  * Narrows the runtime value to the documented type.
63
- @type {Record<string, ?>} */ (value))
63
+ * @type {Record<string, ?>} */ (value))
64
64
  .sort()
65
65
  .map((key) => `${JSON.stringify(key)}:${stableStringify(/**
66
66
  * Narrows the runtime value to the documented type.
67
- @type {Record<string, ?>} */ (value)[key])}`)
67
+ * @type {Record<string, ?>} */ (value)[key])}`)
68
68
 
69
69
  return `{${entries.join(",")}}`
70
70
  }
@@ -75,7 +75,7 @@ function stableStringify(value) {
75
75
  class VelociousDatabasePoolBase {
76
76
  /**
77
77
  * Without current connection context.
78
- @type {undefined | ((callback: () => ?) => ?)} */
78
+ * @type {undefined | ((callback: () => ?) => ?)} */
79
79
  _withoutCurrentConnectionContext = undefined
80
80
 
81
81
  /**
@@ -154,7 +154,7 @@ class VelociousDatabasePoolBase {
154
154
  * @returns {T} - Callback result.
155
155
  */
156
156
  withoutCurrentConnectionContext(callback) {
157
- if (this._withoutCurrentConnectionContext) return /** Narrows the runtime value to the documented type. @type {T} */ (this._withoutCurrentConnectionContext(callback))
157
+ if (this._withoutCurrentConnectionContext) return /** @type {T} */ (this._withoutCurrentConnectionContext(callback))
158
158
 
159
159
  return callback()
160
160
  }
@@ -196,7 +196,7 @@ class VelociousDatabasePoolBase {
196
196
  connectionMatchesCurrentConfiguration(connection) {
197
197
  const connectionWithPoolKey = /**
198
198
  * Narrows the runtime value to the documented type.
199
- @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
199
+ * @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
200
200
 
201
201
  return connectionWithPoolKey[POOL_CONFIGURATION_KEY] === this.getConfigurationReuseKey()
202
202
  }
@@ -257,7 +257,7 @@ class VelociousDatabasePoolBase {
257
257
 
258
258
  const connectionWithPoolKey = /**
259
259
  * Narrows the runtime value to the documented type.
260
- @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
260
+ * @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
261
261
  connectionWithPoolKey[POOL_CONFIGURATION_KEY] = this.getConfigurationReuseKey()
262
262
  connection.setSchemaCacheInvalidator(() => {
263
263
  this.clearSchemaCache()
@@ -372,7 +372,7 @@ class VelociousDatabasePoolBase {
372
372
  debugConnectionSnapshot(connection, details = {}) {
373
373
  const connectionWithPoolKey = /**
374
374
  * Narrows the runtime value to the documented type.
375
- @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
375
+ * @type {import("../drivers/base.js").default & {[POOL_CONFIGURATION_KEY]?: string}} */ (connection)
376
376
 
377
377
  return {
378
378
  ...connection.getDebugSnapshot(),
@@ -3,7 +3,7 @@
3
3
  export default class VelociousDatabaseQueryFromBase {
4
4
  /**
5
5
  * Query.
6
- @type {import("./index.js").default | null} */
6
+ * @type {import("./index.js").default | null} */
7
7
  query = null
8
8
 
9
9
  /**
@@ -37,7 +37,7 @@ function normalizeJoinObject(join) {
37
37
  if (Array.isArray(join)) {
38
38
  /**
39
39
  * Result.
40
- @type {import("./join-object.js").JoinObject} */
40
+ * @type {import("./join-object.js").JoinObject} */
41
41
  const result = {}
42
42
 
43
43
  for (const entry of join) {
@@ -69,7 +69,7 @@ function normalizeJoinObject(join) {
69
69
 
70
70
  /**
71
71
  * Result.
72
- @type {import("./join-object.js").JoinObject} */
72
+ * @type {import("./join-object.js").JoinObject} */
73
73
  const result = {}
74
74
 
75
75
  for (const [key, value] of Object.entries(join)) {
@@ -157,7 +157,7 @@ export default class VelociousDatabaseQuery {
157
157
 
158
158
  /**
159
159
  * Narrows the runtime value to the documented type.
160
- @type {() => import("../drivers/base.js").default} */
160
+ * @type {() => import("../drivers/base.js").default} */
161
161
  this._driverFn = typeof driver === "function" ? driver : () => driver
162
162
  this.handler = handler
163
163
  this.logger = new Logger(this)
@@ -173,24 +173,24 @@ export default class VelociousDatabaseQuery {
173
173
 
174
174
  /**
175
175
  * Narrows the runtime value to the documented type.
176
- @type {Record<string, string[]>} */
176
+ * @type {Record<string, string[]>} */
177
177
  this._preloadSelects = preloadSelects
178
178
 
179
179
  /**
180
180
  * Narrows the runtime value to the documented type.
181
- @type {Record<string, string[]>} */
181
+ * @type {Record<string, string[]>} */
182
182
  this._preloadSelectsExtra = preloadSelectsExtra
183
183
  this._distinct = distinct
184
184
  this._selects = selects
185
185
 
186
186
  /**
187
187
  * Narrows the runtime value to the documented type.
188
- @type {import("./where-base.js").default[]} */
188
+ * @type {import("./where-base.js").default[]} */
189
189
  this._wheres = wheres
190
190
 
191
191
  const boundWhere = /**
192
192
  * Narrows the runtime value to the documented type.
193
- @type {?} */ (this.where.bind(this))
193
+ * @type {?} */ (this.where.bind(this))
194
194
  boundWhere.not = this.whereNot.bind(this)
195
195
  this.where = boundWhere
196
196
  }
@@ -202,7 +202,7 @@ export default class VelociousDatabaseQuery {
202
202
  clone() {
203
203
  const QueryClass = /**
204
204
  * Narrows the runtime value to the documented type.
205
- @type {new (args: QueryArgsType) => this} */ (this.constructor)
205
+ * @type {new (args: QueryArgsType) => this} */ (this.constructor)
206
206
  const newQuery = new QueryClass({
207
207
  driver: this._driverFn,
208
208
  froms: [...this._froms],
@@ -496,7 +496,7 @@ export default class VelociousDatabaseQuery {
496
496
  } else if (typeof where == "object" && (where.constructor.name == "object" || where.constructor.name == "Object")) {
497
497
  this._wheres.push(new WhereHash(this, /**
498
498
  * Narrows the runtime value to the documented type.
499
- @type {import("./where-hash.js").WhereHash} */ (where)))
499
+ * @type {import("./where-hash.js").WhereHash} */ (where)))
500
500
  } else {
501
501
  throw new Error(`Invalid type of where: ${typeof where} (${where.constructor.name})`)
502
502
  }
@@ -515,7 +515,7 @@ export default class VelociousDatabaseQuery {
515
515
  } else if (typeof where == "object" && (where.constructor.name == "object" || where.constructor.name == "Object")) {
516
516
  this._wheres.push(new WhereNot(new WhereHash(this, /**
517
517
  * Narrows the runtime value to the documented type.
518
- @type {import("./where-hash.js").WhereHash} */ (where))))
518
+ * @type {import("./where-hash.js").WhereHash} */ (where))))
519
519
  } else {
520
520
  throw new Error(`Invalid type of where: ${typeof where} (${where.constructor.name})`)
521
521
  }
@@ -31,10 +31,10 @@ export default class VelociousDatabaseQueryJoinObject extends JoinBase {
31
31
 
32
32
  const modelQuery = /**
33
33
  * Narrows the runtime value to the documented type.
34
- @type {import("./model-class-query.js").default} */ (query)
34
+ * @type {import("./model-class-query.js").default} */ (query)
35
35
  const ModelClass = /**
36
36
  * Narrows the runtime value to the documented type.
37
- @type {typeof import("../record/index.js").default} */ (
37
+ * @type {typeof import("../record/index.js").default} */ (
38
38
  this.basePath.length > 0 ? modelQuery._resolveModelClassForJoinPath(this.basePath) : modelQuery.modelClass
39
39
  )
40
40
 
@@ -55,7 +55,7 @@ export default class VelociousDatabaseQueryJoinObject extends JoinBase {
55
55
  const conn = this.getQuery().driver
56
56
  const query = /**
57
57
  * Narrows the runtime value to the documented type.
58
- @type {import("./model-class-query.js").default} */ (this.getQuery())
58
+ * @type {import("./model-class-query.js").default} */ (this.getQuery())
59
59
 
60
60
  for (const joinKey in join) {
61
61
  const joinValue = join[joinKey]
@@ -90,7 +90,7 @@ function normalizeScopePath(path) {
90
90
  function clonePreloadSelectMap(map) {
91
91
  /**
92
92
  * Result.
93
- @type {Record<string, string[]>} */
93
+ * @type {Record<string, string[]>} */
94
94
  const result = {}
95
95
 
96
96
  for (const [modelName, attributes] of Object.entries(map)) {
@@ -115,7 +115,7 @@ function normalizePreloadRecord(preload) {
115
115
  if (Array.isArray(preload)) {
116
116
  /**
117
117
  * Result.
118
- @type {import("./index.js").NestedPreloadRecord} */
118
+ * @type {import("./index.js").NestedPreloadRecord} */
119
119
  const result = {}
120
120
 
121
121
  for (const entry of preload) {
@@ -141,7 +141,7 @@ function normalizePreloadRecord(preload) {
141
141
 
142
142
  /**
143
143
  * Result.
144
- @type {import("./index.js").NestedPreloadRecord} */
144
+ * @type {import("./index.js").NestedPreloadRecord} */
145
145
  const result = {}
146
146
 
147
147
  for (const [key, value] of Object.entries(preload)) {
@@ -190,24 +190,24 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
190
190
 
191
191
  /**
192
192
  * Narrows the runtime value to the documented type.
193
- @type {MC} */
193
+ * @type {MC} */
194
194
  this.modelClass = modelClass
195
195
 
196
196
  /**
197
197
  * Narrows the runtime value to the documented type.
198
- @type {string[]} */
198
+ * @type {string[]} */
199
199
  this._joinBasePath = args.joinBasePath || []
200
200
  this._joinTracker = args.joinTracker || new JoinTracker({modelClass: this.modelClass})
201
201
  this._forceQualifyBaseTable = Boolean(args.forceQualifyBaseTable)
202
202
 
203
203
  /**
204
204
  * Narrows the runtime value to the documented type.
205
- @type {import("./with-count.js").WithCountEntry[]} */
205
+ * @type {import("./with-count.js").WithCountEntry[]} */
206
206
  this._withCount = args.withCount ? [...args.withCount] : []
207
207
 
208
208
  /**
209
209
  * Narrows the runtime value to the documented type.
210
- @type {import("./query-data.js").QueryDataEntry[]} */
210
+ * @type {import("./query-data.js").QueryDataEntry[]} */
211
211
  this._queryData = args.queryData ? [...args.queryData] : []
212
212
  }
213
213
 
@@ -218,7 +218,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
218
218
  clone() {
219
219
  const newQuery = /**
220
220
  * Narrows the runtime value to the documented type.
221
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (new VelociousDatabaseQueryModelClassQuery({
221
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (new VelociousDatabaseQueryModelClassQuery({
222
222
  driver: this._driverFn,
223
223
  froms: [...this._froms],
224
224
  handler: this.handler.clone(),
@@ -340,7 +340,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
340
340
 
341
341
  const results = /**
342
342
  * Narrows the runtime value to the documented type.
343
- @type {{count: number}[]} */ (await countQuery._executeQuery({
343
+ * @type {{count: number}[]} */ (await countQuery._executeQuery({
344
344
  logName: countQuery.queryLogName("Count")
345
345
  }))
346
346
 
@@ -376,7 +376,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
376
376
  ].join(" ")
377
377
  const results = /**
378
378
  * Narrows the runtime value to the documented type.
379
- @type {{count: number}[]} */ (await this.driver.query(
379
+ * @type {{count: number}[]} */ (await this.driver.query(
380
380
  sql,
381
381
  {logName: this.queryLogName("Count")}
382
382
  ))
@@ -472,16 +472,16 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
472
472
 
473
473
  if (lastFrom && typeof /**
474
474
  * Narrows the runtime value to the documented type.
475
- @type {?} */ (lastFrom).tableName === "string") {
476
- return /** Narrows the runtime value to the documented type. @type {?} */ (lastFrom).tableName
475
+ * @type {?} */ (lastFrom).tableName === "string") {
476
+ return /** @type {?} */ (lastFrom).tableName
477
477
  }
478
478
 
479
479
  if (lastFrom && typeof /**
480
480
  * Narrows the runtime value to the documented type.
481
- @type {?} */ (lastFrom).plain === "string") {
481
+ * @type {?} */ (lastFrom).plain === "string") {
482
482
  const parsedReference = parseFromPlainTableReference(/**
483
483
  * Narrows the runtime value to the documented type.
484
- @type {?} */ (lastFrom).plain)
484
+ * @type {?} */ (lastFrom).plain)
485
485
 
486
486
  if (parsedReference) return parsedReference
487
487
  }
@@ -541,7 +541,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
541
541
  withJoinPath(joinBasePath) {
542
542
  const scopedQuery = /**
543
543
  * Narrows the runtime value to the documented type.
544
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
544
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
545
545
 
546
546
  scopedQuery._joinBasePath = joinBasePath
547
547
  scopedQuery._joinTracker = this._joinTracker
@@ -640,7 +640,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
640
640
  return this._applyJoinPathScope({
641
641
  joinPath: normalizeScopePath(/**
642
642
  * Narrows the runtime value to the documented type.
643
- @type {string | string[]} */ (pathOrScopeDescriptor)),
643
+ * @type {string | string[]} */ (pathOrScopeDescriptor)),
644
644
  scopeDescriptor: maybeScopeDescriptor
645
645
  })
646
646
  }
@@ -661,7 +661,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
661
661
 
662
662
  const scopedQuery = /**
663
663
  * Narrows the runtime value to the documented type.
664
- @type {this | void} */ (scopeDescriptor.callback({
664
+ * @type {this | void} */ (scopeDescriptor.callback({
665
665
  driver: this.driver,
666
666
  modelClass: this.getModelClass(),
667
667
  query: this,
@@ -695,7 +695,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
695
695
  const originalWhereCount = scopedQuery._wheres.length
696
696
  const appliedQuery = /**
697
697
  * Narrows the runtime value to the documented type.
698
- @type {typeof scopedQuery | void} */ (scopeDescriptor.callback({
698
+ * @type {typeof scopedQuery | void} */ (scopeDescriptor.callback({
699
699
  driver: scopedQuery.driver,
700
700
  modelClass: targetModelClass,
701
701
  path: [...fullJoinPath],
@@ -744,7 +744,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
744
744
  buildJoinScopeQuery(targetModelClass, joinPath) {
745
745
  const scopedQuery = /**
746
746
  * Narrows the runtime value to the documented type.
747
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (targetModelClass._newQuery())
747
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (targetModelClass._newQuery())
748
748
 
749
749
  scopedQuery._joinTracker = this._joinTracker
750
750
  scopedQuery._joinBasePath = joinPath
@@ -812,14 +812,14 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
812
812
  async find(recordId) {
813
813
  /**
814
814
  * Conditions.
815
- @type {{[key: string]: number | string}} */
815
+ * @type {{[key: string]: number | string}} */
816
816
  const conditions = {}
817
817
 
818
818
  conditions[this.getModelClass().primaryKey()] = recordId
819
819
 
820
820
  const newQuery = /**
821
821
  * Narrows the runtime value to the documented type.
822
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
822
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
823
823
 
824
824
  newQuery.where(conditions)
825
825
 
@@ -840,7 +840,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
840
840
  async findBy(conditions) {
841
841
  const newQuery = /**
842
842
  * Narrows the runtime value to the documented type.
843
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
843
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
844
844
 
845
845
  newQuery.where(conditions)
846
846
 
@@ -892,7 +892,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
892
892
  const ModelClass = this.getModelClass()
893
893
  const newRecord = /**
894
894
  * Narrows the runtime value to the documented type.
895
- @type {InstanceType<MC>} */ (new ModelClass(conditions))
895
+ * @type {InstanceType<MC>} */ (new ModelClass(conditions))
896
896
 
897
897
  if (callback) {
898
898
  callback(newRecord)
@@ -947,7 +947,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
947
947
  const ModelClass = this.getModelClass()
948
948
  const model = /**
949
949
  * Narrows the runtime value to the documented type.
950
- @type {InstanceType<MC>} */ (new ModelClass())
950
+ * @type {InstanceType<MC>} */ (new ModelClass())
951
951
 
952
952
  model.loadExistingRecord(result)
953
953
  models.push(model)
@@ -1015,7 +1015,7 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
1015
1015
 
1016
1016
  const query = /**
1017
1017
  * Narrows the runtime value to the documented type.
1018
- @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
1018
+ * @type {VelociousDatabaseQueryModelClassQuery<MC>} */ (this.clone())
1019
1019
 
1020
1020
  query._preload = {}
1021
1021
  query._selects = []
@@ -1032,13 +1032,13 @@ export default class VelociousDatabaseQueryModelClassQuery extends DatabaseQuery
1032
1032
  const [columnName] = columnNames
1033
1033
  return rows.map((row) => /**
1034
1034
  * Narrows the runtime value to the documented type.
1035
- @type {Record<string, ?>} */ (row)[columnName])
1035
+ * @type {Record<string, ?>} */ (row)[columnName])
1036
1036
  }
1037
1037
 
1038
1038
  return rows.map((row) => {
1039
1039
  const rowHash = /**
1040
1040
  * Narrows the runtime value to the documented type.
1041
- @type {Record<string, ?>} */ (row)
1041
+ * @type {Record<string, ?>} */ (row)
1042
1042
 
1043
1043
  return columnNames.map((columnName) => rowHash[columnName])
1044
1044
  })
@@ -1177,7 +1177,7 @@ function applyRansackGroup({group, query}) {
1177
1177
  function buildRansackGroupWhere({group, query}) {
1178
1178
  /**
1179
1179
  * Wheres.
1180
- @type {import("./where-base.js").default[]} */
1180
+ * @type {import("./where-base.js").default[]} */
1181
1181
  const wheres = []
1182
1182
 
1183
1183
  for (const condition of group.conditions) {
@@ -1212,7 +1212,7 @@ function buildRansackGroupWhere({group, query}) {
1212
1212
  function buildRansackConditionWhere({condition, query}) {
1213
1213
  /**
1214
1214
  * Wheres.
1215
- @type {import("./where-base.js").default[]} */
1215
+ * @type {import("./where-base.js").default[]} */
1216
1216
  const wheres = []
1217
1217
 
1218
1218
  for (const attribute of condition.attributes) {
@@ -1296,7 +1296,7 @@ function buildRansackAttributeHash({attribute, condition}) {
1296
1296
  function buildNestedRansackHash({attribute, value}) {
1297
1297
  /**
1298
1298
  * Hash.
1299
- @type {Record<string, ?>} */
1299
+ * @type {Record<string, ?>} */
1300
1300
  let hash = {[attribute.attributeName]: value}
1301
1301
 
1302
1302
  for (let index = attribute.path.length - 1; index >= 0; index -= 1) {
@@ -1317,7 +1317,7 @@ function buildNestedRansackHash({attribute, value}) {
1317
1317
  function buildNestedRansackTupleHash({attribute, operator, value}) {
1318
1318
  /**
1319
1319
  * Hash.
1320
- @type {Record<string, ?>} */
1320
+ * @type {Record<string, ?>} */
1321
1321
  let hash = {
1322
1322
  [attribute.attributeName]: [[attribute.attributeName, operator, value]]
1323
1323
  }
@@ -1392,11 +1392,11 @@ function resolveColumnName(modelClass, key) {
1392
1392
  function splitWhereHash({hash, modelClass}) {
1393
1393
  /**
1394
1394
  * Resolved hash.
1395
- @type {Record<string, ?>} */
1395
+ * @type {Record<string, ?>} */
1396
1396
  const resolvedHash = {}
1397
1397
  /**
1398
1398
  * Fallback hash.
1399
- @type {Record<string, ?>} */
1399
+ * @type {Record<string, ?>} */
1400
1400
  const fallbackHash = {}
1401
1401
 
1402
1402
  for (const key in hash) {
@@ -1454,7 +1454,7 @@ function splitWhereHash({hash, modelClass}) {
1454
1454
  function buildJoinObjectFromWhereHash({hash, modelClass}) {
1455
1455
  /**
1456
1456
  * Join object.
1457
- @type {Record<string, ?>} */
1457
+ * @type {Record<string, ?>} */
1458
1458
  const joinObject = {}
1459
1459
 
1460
1460
  for (const key in hash) {
@@ -1495,10 +1495,10 @@ function normalizeRelationshipWhereOperator(operator) {
1495
1495
  ">=": "gteq"
1496
1496
  }
1497
1497
 
1498
- return /** Narrows the runtime value to the documented type. @type {"eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like"} */ (
1498
+ return /** @type {"eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like"} */ (
1499
1499
  operatorAliases[/**
1500
1500
  * Narrows the runtime value to the documented type.
1501
- @type {"<" | "<=" | ">" | ">="} */ (operator)] || operator
1501
+ * @type {"<" | "<=" | ">" | ">="} */ (operator)] || operator
1502
1502
  )
1503
1503
  }
1504
1504
 
@@ -1529,7 +1529,7 @@ function normalizeRelationshipWhereOperatorTuples(value) {
1529
1529
 
1530
1530
  /**
1531
1531
  * Normalized.
1532
- @type {Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>} */
1532
+ * @type {Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>} */
1533
1533
  const normalized = []
1534
1534
  /**
1535
1535
  * Add condition.
@@ -1539,7 +1539,7 @@ function normalizeRelationshipWhereOperatorTuples(value) {
1539
1539
  if (isRelationshipWhereOperatorTuple(conditionValue)) {
1540
1540
  const tuple = /**
1541
1541
  * Narrows the runtime value to the documented type.
1542
- @type {[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like" | ">" | ">=" | "<" | "<=", unknown, ...Array<unknown>]} */ (conditionValue)
1542
+ * @type {[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like" | ">" | ">=" | "<" | "<=", unknown, ...Array<unknown>]} */ (conditionValue)
1543
1543
  const normalizedOperator = normalizeRelationshipWhereOperator(tuple[1])
1544
1544
 
1545
1545
  normalized.push([
@@ -1563,7 +1563,7 @@ function normalizeRelationshipWhereOperatorTuples(value) {
1563
1563
 
1564
1564
  /**
1565
1565
  * Narrows the runtime value to the documented type.
1566
- @type {Array<?>} */ (conditionValue).forEach((nestedConditionValue) => {
1566
+ * @type {Array<?>} */ (conditionValue).forEach((nestedConditionValue) => {
1567
1567
  addCondition(nestedConditionValue)
1568
1568
  })
1569
1569
  }
@@ -35,11 +35,11 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
35
35
 
36
36
  /**
37
37
  * Satisfied targets.
38
- @type {import("../../record/index.js").default[]} */
38
+ * @type {import("../../record/index.js").default[]} */
39
39
  const satisfiedTargets = []
40
40
  /**
41
41
  * Models to load.
42
- @type {import("../../record/index.js").default[]} */
42
+ * @type {import("../../record/index.js").default[]} */
43
43
  const modelsToLoad = []
44
44
 
45
45
  for (const model of this.models) {
@@ -48,7 +48,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
48
48
  if (this.selection.isSatisfied({instanceRelationship, targetModelClass, mappingColumns: [primaryKey]})) {
49
49
  const loaded = /**
50
50
  * Narrows the runtime value to the documented type.
51
- @type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined())
51
+ * @type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined())
52
52
 
53
53
  if (loaded) satisfiedTargets.push(loaded)
54
54
  } else {
@@ -60,13 +60,13 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
60
60
 
61
61
  /**
62
62
  * Foreign key values.
63
- @type {Array<number | string>} */
63
+ * @type {Array<number | string>} */
64
64
  const foreignKeyValues = []
65
65
 
66
66
  for (const model of modelsToLoad) {
67
67
  const foreignKeyValue = /**
68
68
  * Narrows the runtime value to the documented type.
69
- @type {string | number | null | undefined} */ (model.readColumn(foreignKey))
69
+ * @type {string | number | null | undefined} */ (model.readColumn(foreignKey))
70
70
 
71
71
  // Skip null/undefined foreign keys: a belongsTo with no foreign key has no
72
72
  // target, and including them would serialize to e.g. `IN (null)` which
@@ -78,12 +78,12 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
78
78
 
79
79
  /**
80
80
  * Target models by id.
81
- @type {Record<string, import("../../record/index.js").default>} */
81
+ * @type {Record<string, import("../../record/index.js").default>} */
82
82
  const targetModelsById = {}
83
83
 
84
84
  /**
85
85
  * Target models.
86
- @type {import("../../record/index.js").default[]} */
86
+ * @type {import("../../record/index.js").default[]} */
87
87
  let targetModels = []
88
88
 
89
89
  // Only query when at least one model has a non-null foreign key.
@@ -92,7 +92,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
92
92
 
93
93
  /**
94
94
  * Where args.
95
- @type {Record<string, string | number | Array<string | number>>} */
95
+ * @type {Record<string, string | number | Array<string | number>>} */
96
96
  const whereArgs = {}
97
97
 
98
98
  whereArgs[primaryKey] = foreignKeyValues
@@ -108,7 +108,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
108
108
  for (const targetModel of targetModels) {
109
109
  const primaryKeyValue = /**
110
110
  * Narrows the runtime value to the documented type.
111
- @type {string | number} */ (targetModel.readColumn(primaryKey))
111
+ * @type {string | number} */ (targetModel.readColumn(primaryKey))
112
112
 
113
113
  targetModelsById[primaryKeyValue] = targetModel
114
114
  }
@@ -118,7 +118,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
118
118
  for (const model of modelsToLoad) {
119
119
  const foreignKeyValue = /**
120
120
  * Narrows the runtime value to the documented type.
121
- @type {string | number} */ (model.readColumn(foreignKey))
121
+ * @type {string | number} */ (model.readColumn(foreignKey))
122
122
  const targetModel = targetModelsById[foreignKeyValue]
123
123
  const modelRelationship = model.getRelationshipByName(relationshipName)
124
124
 
@@ -144,37 +144,37 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
144
144
 
145
145
  /**
146
146
  * Model meta.
147
- @type {{foreignKeyValue: number | string | undefined, model: import("../../record/index.js").default, targetType: string | undefined}[]} */
147
+ * @type {{foreignKeyValue: number | string | undefined, model: import("../../record/index.js").default, targetType: string | undefined}[]} */
148
148
  const modelMeta = []
149
149
 
150
150
  /**
151
151
  * Satisfied targets.
152
- @type {import("../../record/index.js").default[]} */
152
+ * @type {import("../../record/index.js").default[]} */
153
153
  const satisfiedTargets = []
154
154
 
155
155
  /**
156
156
  * Target models by class name.
157
- @type {Record<string, import("../../record/index.js").default[]>} */
157
+ * @type {Record<string, import("../../record/index.js").default[]>} */
158
158
  const targetModelsByClassName = {}
159
159
 
160
160
  for (const model of this.models) {
161
161
  const targetType = /**
162
162
  * Narrows the runtime value to the documented type.
163
- @type {string | undefined} */ (model.readColumn(typeColumn))
163
+ * @type {string | undefined} */ (model.readColumn(typeColumn))
164
164
  const instanceRelationship = model.getRelationshipByName(relationshipName)
165
165
  const targetModelClass = targetType ? configuration.getModelClass(targetType) : undefined
166
166
 
167
167
  if (targetModelClass && this.selection.isSatisfied({instanceRelationship, targetModelClass, mappingColumns: [primaryKey]})) {
168
168
  const loaded = /**
169
169
  * Narrows the runtime value to the documented type.
170
- @type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined())
170
+ * @type {import("../../record/index.js").default | undefined} */ (instanceRelationship.getLoadedOrUndefined())
171
171
 
172
172
  if (loaded) {
173
173
  satisfiedTargets.push(loaded)
174
174
 
175
175
  const className = /**
176
176
  * Narrows the runtime value to the documented type.
177
- @type {typeof import("../../record/index.js").default} */ (loaded.constructor).getModelName()
177
+ * @type {typeof import("../../record/index.js").default} */ (loaded.constructor).getModelName()
178
178
 
179
179
  if (!targetModelsByClassName[className]) targetModelsByClassName[className] = []
180
180
  targetModelsByClassName[className].push(loaded)
@@ -186,7 +186,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
186
186
  modelMeta.push({
187
187
  foreignKeyValue: /**
188
188
  * Narrows the runtime value to the documented type.
189
- @type {string | number | undefined} */ (model.readColumn(foreignKey)),
189
+ * @type {string | number | undefined} */ (model.readColumn(foreignKey)),
190
190
  model,
191
191
  targetType
192
192
  })
@@ -194,7 +194,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
194
194
 
195
195
  /**
196
196
  * Foreign key values by type.
197
- @type {Record<string, Array<number | string>>} */
197
+ * @type {Record<string, Array<number | string>>} */
198
198
  const foreignKeyValuesByType = {}
199
199
 
200
200
  for (const meta of modelMeta) {
@@ -207,12 +207,12 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
207
207
 
208
208
  /**
209
209
  * Target models by type and id.
210
- @type {Record<string, Record<number | string, import("../../record/index.js").default>>} */
210
+ * @type {Record<string, Record<number | string, import("../../record/index.js").default>>} */
211
211
  const targetModelsByTypeAndId = {}
212
212
 
213
213
  /**
214
214
  * Target models.
215
- @type {import("../../record/index.js").default[]} */
215
+ * @type {import("../../record/index.js").default[]} */
216
216
  const targetModels = []
217
217
 
218
218
  for (const targetType in foreignKeyValuesByType) {
@@ -222,7 +222,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
222
222
 
223
223
  /**
224
224
  * Where args.
225
- @type {Record<string, string | number | Array<string | number>>} */
225
+ * @type {Record<string, string | number | Array<string | number>>} */
226
226
  const whereArgs = {}
227
227
 
228
228
  whereArgs[primaryKey] = foreignKeyValuesByType[targetType]
@@ -246,7 +246,7 @@ export default class VelociousDatabaseQueryPreloaderBelongsTo {
246
246
  for (const targetModel of foundTargetModels) {
247
247
  const primaryKeyValue = /**
248
248
  * Narrows the runtime value to the documented type.
249
- @type {string | number} */ (targetModel.readColumn(primaryKey))
249
+ * @type {string | number} */ (targetModel.readColumn(primaryKey))
250
250
 
251
251
  targetModelsByTypeAndId[targetType][primaryKeyValue] = targetModel
252
252
  }