joist-core 2.3.0 → 2.4.0-next.10

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 (1548) hide show
  1. package/build/BaseEntity.cjs +112 -0
  2. package/build/BaseEntity.cjs.map +1 -0
  3. package/build/BaseEntity.d.cts +73 -0
  4. package/build/BaseEntity.d.cts.map +1 -0
  5. package/build/BaseEntity.d.mts +73 -0
  6. package/build/BaseEntity.d.mts.map +1 -0
  7. package/build/BaseEntity.js +99 -110
  8. package/build/BaseEntity.js.map +1 -1
  9. package/build/Entity.cjs +12 -0
  10. package/build/Entity.cjs.map +1 -0
  11. package/build/Entity.d.cts +42 -0
  12. package/build/Entity.d.cts.map +1 -0
  13. package/build/Entity.d.mts +42 -0
  14. package/build/Entity.d.mts.map +1 -0
  15. package/build/Entity.js +8 -5
  16. package/build/Entity.js.map +1 -1
  17. package/build/EntityFields.cjs +1 -0
  18. package/build/EntityFields.d.cts +36 -0
  19. package/build/EntityFields.d.cts.map +1 -0
  20. package/build/EntityFields.d.mts +36 -0
  21. package/build/EntityFields.d.mts.map +1 -0
  22. package/build/EntityFields.js +1 -3
  23. package/build/EntityManager.cjs +1935 -0
  24. package/build/EntityManager.cjs.map +1 -0
  25. package/build/EntityManager.d.cts +835 -0
  26. package/build/EntityManager.d.cts.map +1 -0
  27. package/build/EntityManager.d.mts +835 -0
  28. package/build/EntityManager.d.mts.map +1 -0
  29. package/build/EntityManager.js +1812 -2211
  30. package/build/EntityManager.js.map +1 -1
  31. package/build/EntityMetadata.cjs +75 -0
  32. package/build/EntityMetadata.cjs.map +1 -0
  33. package/build/EntityMetadata.d.cts +262 -0
  34. package/build/EntityMetadata.d.cts.map +1 -0
  35. package/build/EntityMetadata.d.mts +262 -0
  36. package/build/EntityMetadata.d.mts.map +1 -0
  37. package/build/EntityMetadata.js +31 -48
  38. package/build/EntityMetadata.js.map +1 -1
  39. package/build/EnumMetadata.cjs +1 -0
  40. package/build/EnumMetadata.d.cts +18 -0
  41. package/build/EnumMetadata.d.cts.map +1 -0
  42. package/build/EnumMetadata.d.mts +18 -0
  43. package/build/EnumMetadata.d.mts.map +1 -0
  44. package/build/EnumMetadata.js +1 -3
  45. package/build/IndexManager.cjs +178 -0
  46. package/build/IndexManager.cjs.map +1 -0
  47. package/build/IndexManager.d.cts +36 -0
  48. package/build/IndexManager.d.cts.map +1 -0
  49. package/build/IndexManager.d.mts +36 -0
  50. package/build/IndexManager.d.mts.map +1 -0
  51. package/build/IndexManager.js +169 -218
  52. package/build/IndexManager.js.map +1 -1
  53. package/build/InstanceData.cjs +218 -0
  54. package/build/InstanceData.cjs.map +1 -0
  55. package/build/InstanceData.d.cts +98 -0
  56. package/build/InstanceData.d.cts.map +1 -0
  57. package/build/InstanceData.d.mts +98 -0
  58. package/build/InstanceData.d.mts.map +1 -0
  59. package/build/InstanceData.js +215 -222
  60. package/build/InstanceData.js.map +1 -1
  61. package/build/PluginManager.cjs +89 -0
  62. package/build/PluginManager.cjs.map +1 -0
  63. package/build/PluginManager.d.cts +112 -0
  64. package/build/PluginManager.d.cts.map +1 -0
  65. package/build/PluginManager.d.mts +112 -0
  66. package/build/PluginManager.d.mts.map +1 -0
  67. package/build/PluginManager.js +80 -106
  68. package/build/PluginManager.js.map +1 -1
  69. package/build/RowData.cjs +37 -0
  70. package/build/RowData.cjs.map +1 -0
  71. package/build/RowData.d.cts +53 -0
  72. package/build/RowData.d.cts.map +1 -0
  73. package/build/RowData.d.mts +53 -0
  74. package/build/RowData.d.mts.map +1 -0
  75. package/build/RowData.js +35 -0
  76. package/build/RowData.js.map +1 -0
  77. package/build/_virtual/_rolldown/runtime.cjs +23 -0
  78. package/build/batchloaders/BatchLoader.cjs +49 -0
  79. package/build/batchloaders/BatchLoader.cjs.map +1 -0
  80. package/build/batchloaders/BatchLoader.d.cts +17 -0
  81. package/build/batchloaders/BatchLoader.d.cts.map +1 -0
  82. package/build/batchloaders/BatchLoader.d.mts +17 -0
  83. package/build/batchloaders/BatchLoader.d.mts.map +1 -0
  84. package/build/batchloaders/BatchLoader.js +45 -54
  85. package/build/batchloaders/BatchLoader.js.map +1 -1
  86. package/build/batchloaders/enumCollectionBatchLoader.cjs +66 -0
  87. package/build/batchloaders/enumCollectionBatchLoader.cjs.map +1 -0
  88. package/build/batchloaders/enumCollectionBatchLoader.d.cts +11 -0
  89. package/build/batchloaders/enumCollectionBatchLoader.d.cts.map +1 -0
  90. package/build/batchloaders/enumCollectionBatchLoader.d.mts +11 -0
  91. package/build/batchloaders/enumCollectionBatchLoader.d.mts.map +1 -0
  92. package/build/batchloaders/enumCollectionBatchLoader.js +58 -48
  93. package/build/batchloaders/enumCollectionBatchLoader.js.map +1 -1
  94. package/build/batchloaders/loadBatchLoader.cjs +78 -0
  95. package/build/batchloaders/loadBatchLoader.cjs.map +1 -0
  96. package/build/batchloaders/loadBatchLoader.d.cts +20 -0
  97. package/build/batchloaders/loadBatchLoader.d.cts.map +1 -0
  98. package/build/batchloaders/loadBatchLoader.d.mts +20 -0
  99. package/build/batchloaders/loadBatchLoader.d.mts.map +1 -0
  100. package/build/batchloaders/loadBatchLoader.js +72 -51
  101. package/build/batchloaders/loadBatchLoader.js.map +1 -1
  102. package/build/batchloaders/manyToManyBatchLoader.cjs +78 -0
  103. package/build/batchloaders/manyToManyBatchLoader.cjs.map +1 -0
  104. package/build/batchloaders/manyToManyBatchLoader.d.cts +11 -0
  105. package/build/batchloaders/manyToManyBatchLoader.d.cts.map +1 -0
  106. package/build/batchloaders/manyToManyBatchLoader.d.mts +11 -0
  107. package/build/batchloaders/manyToManyBatchLoader.d.mts.map +1 -0
  108. package/build/batchloaders/manyToManyBatchLoader.js +70 -61
  109. package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
  110. package/build/batchloaders/oneToManyBatchLoader.cjs +63 -0
  111. package/build/batchloaders/oneToManyBatchLoader.cjs.map +1 -0
  112. package/build/batchloaders/oneToManyBatchLoader.d.cts +11 -0
  113. package/build/batchloaders/oneToManyBatchLoader.d.cts.map +1 -0
  114. package/build/batchloaders/oneToManyBatchLoader.d.mts +11 -0
  115. package/build/batchloaders/oneToManyBatchLoader.d.mts.map +1 -0
  116. package/build/batchloaders/oneToManyBatchLoader.js +58 -48
  117. package/build/batchloaders/oneToManyBatchLoader.js.map +1 -1
  118. package/build/batchloaders/oneToOneBatchLoader.cjs +64 -0
  119. package/build/batchloaders/oneToOneBatchLoader.cjs.map +1 -0
  120. package/build/batchloaders/oneToOneBatchLoader.d.cts +10 -0
  121. package/build/batchloaders/oneToOneBatchLoader.d.cts.map +1 -0
  122. package/build/batchloaders/oneToOneBatchLoader.d.mts +10 -0
  123. package/build/batchloaders/oneToOneBatchLoader.d.mts.map +1 -0
  124. package/build/batchloaders/oneToOneBatchLoader.js +59 -50
  125. package/build/batchloaders/oneToOneBatchLoader.js.map +1 -1
  126. package/build/batchloaders/populateBatchLoader.cjs +155 -0
  127. package/build/batchloaders/populateBatchLoader.cjs.map +1 -0
  128. package/build/batchloaders/populateBatchLoader.d.cts +17 -0
  129. package/build/batchloaders/populateBatchLoader.d.cts.map +1 -0
  130. package/build/batchloaders/populateBatchLoader.d.mts +17 -0
  131. package/build/batchloaders/populateBatchLoader.d.mts.map +1 -0
  132. package/build/batchloaders/populateBatchLoader.js +147 -203
  133. package/build/batchloaders/populateBatchLoader.js.map +1 -1
  134. package/build/batchloaders/recursiveChildrenBatchLoader.cjs +78 -0
  135. package/build/batchloaders/recursiveChildrenBatchLoader.cjs.map +1 -0
  136. package/build/batchloaders/recursiveChildrenBatchLoader.d.cts +10 -0
  137. package/build/batchloaders/recursiveChildrenBatchLoader.d.cts.map +1 -0
  138. package/build/batchloaders/recursiveChildrenBatchLoader.d.mts +10 -0
  139. package/build/batchloaders/recursiveChildrenBatchLoader.d.mts.map +1 -0
  140. package/build/batchloaders/recursiveChildrenBatchLoader.js +71 -72
  141. package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -1
  142. package/build/batchloaders/recursiveM2mBatchLoader.cjs +83 -0
  143. package/build/batchloaders/recursiveM2mBatchLoader.cjs.map +1 -0
  144. package/build/batchloaders/recursiveM2mBatchLoader.d.cts +10 -0
  145. package/build/batchloaders/recursiveM2mBatchLoader.d.cts.map +1 -0
  146. package/build/batchloaders/recursiveM2mBatchLoader.d.mts +10 -0
  147. package/build/batchloaders/recursiveM2mBatchLoader.d.mts.map +1 -0
  148. package/build/batchloaders/recursiveM2mBatchLoader.js +76 -79
  149. package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
  150. package/build/batchloaders/recursiveParentsBatchLoader.cjs +65 -0
  151. package/build/batchloaders/recursiveParentsBatchLoader.cjs.map +1 -0
  152. package/build/batchloaders/recursiveParentsBatchLoader.d.cts +10 -0
  153. package/build/batchloaders/recursiveParentsBatchLoader.d.cts.map +1 -0
  154. package/build/batchloaders/recursiveParentsBatchLoader.d.mts +10 -0
  155. package/build/batchloaders/recursiveParentsBatchLoader.d.mts.map +1 -0
  156. package/build/batchloaders/recursiveParentsBatchLoader.js +58 -55
  157. package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -1
  158. package/build/changes.cjs +221 -0
  159. package/build/changes.cjs.map +1 -0
  160. package/build/changes.d.cts +95 -0
  161. package/build/changes.d.cts.map +1 -0
  162. package/build/changes.d.mts +95 -0
  163. package/build/changes.d.mts.map +1 -0
  164. package/build/changes.js +208 -285
  165. package/build/changes.js.map +1 -1
  166. package/build/config.cjs +295 -0
  167. package/build/config.cjs.map +1 -0
  168. package/build/config.d.cts +277 -0
  169. package/build/config.d.cts.map +1 -0
  170. package/build/config.d.mts +277 -0
  171. package/build/config.d.mts.map +1 -0
  172. package/build/config.js +255 -301
  173. package/build/config.js.map +1 -1
  174. package/build/configure.cjs +324 -0
  175. package/build/configure.cjs.map +1 -0
  176. package/build/configure.d.cts +19 -0
  177. package/build/configure.d.cts.map +1 -0
  178. package/build/configure.d.mts +19 -0
  179. package/build/configure.d.mts.map +1 -0
  180. package/build/configure.js +265 -348
  181. package/build/configure.js.map +1 -1
  182. package/build/dataloaders/fastWhereFilterHash.cjs +140 -0
  183. package/build/dataloaders/fastWhereFilterHash.cjs.map +1 -0
  184. package/build/dataloaders/fastWhereFilterHash.d.cts +18 -0
  185. package/build/dataloaders/fastWhereFilterHash.d.cts.map +1 -0
  186. package/build/dataloaders/fastWhereFilterHash.d.mts +18 -0
  187. package/build/dataloaders/fastWhereFilterHash.d.mts.map +1 -0
  188. package/build/dataloaders/fastWhereFilterHash.js +108 -133
  189. package/build/dataloaders/fastWhereFilterHash.js.map +1 -1
  190. package/build/dataloaders/findByUniqueDataLoader.cjs +58 -0
  191. package/build/dataloaders/findByUniqueDataLoader.cjs.map +1 -0
  192. package/build/dataloaders/findByUniqueDataLoader.d.cts +10 -0
  193. package/build/dataloaders/findByUniqueDataLoader.d.cts.map +1 -0
  194. package/build/dataloaders/findByUniqueDataLoader.d.mts +10 -0
  195. package/build/dataloaders/findByUniqueDataLoader.d.mts.map +1 -0
  196. package/build/dataloaders/findByUniqueDataLoader.js +53 -44
  197. package/build/dataloaders/findByUniqueDataLoader.js.map +1 -1
  198. package/build/dataloaders/findCountDataLoader.cjs +123 -0
  199. package/build/dataloaders/findCountDataLoader.cjs.map +1 -0
  200. package/build/dataloaders/findCountDataLoader.d.cts +19 -0
  201. package/build/dataloaders/findCountDataLoader.d.cts.map +1 -0
  202. package/build/dataloaders/findCountDataLoader.d.mts +19 -0
  203. package/build/dataloaders/findCountDataLoader.d.mts.map +1 -0
  204. package/build/dataloaders/findCountDataLoader.js +112 -109
  205. package/build/dataloaders/findCountDataLoader.js.map +1 -1
  206. package/build/dataloaders/findDataLoader.cjs +365 -0
  207. package/build/dataloaders/findDataLoader.cjs.map +1 -0
  208. package/build/dataloaders/findDataLoader.d.cts +79 -0
  209. package/build/dataloaders/findDataLoader.d.cts.map +1 -0
  210. package/build/dataloaders/findDataLoader.d.mts +79 -0
  211. package/build/dataloaders/findDataLoader.d.mts.map +1 -0
  212. package/build/dataloaders/findDataLoader.js +298 -382
  213. package/build/dataloaders/findDataLoader.js.map +1 -1
  214. package/build/dataloaders/findIdsDataLoader.cjs +82 -0
  215. package/build/dataloaders/findIdsDataLoader.cjs.map +1 -0
  216. package/build/dataloaders/findIdsDataLoader.d.cts +9 -0
  217. package/build/dataloaders/findIdsDataLoader.d.cts.map +1 -0
  218. package/build/dataloaders/findIdsDataLoader.d.mts +9 -0
  219. package/build/dataloaders/findIdsDataLoader.d.mts.map +1 -0
  220. package/build/dataloaders/findIdsDataLoader.js +77 -74
  221. package/build/dataloaders/findIdsDataLoader.js.map +1 -1
  222. package/build/dataloaders/findOrCreateDataLoader.cjs +120 -0
  223. package/build/dataloaders/findOrCreateDataLoader.cjs.map +1 -0
  224. package/build/dataloaders/findOrCreateDataLoader.d.cts +15 -0
  225. package/build/dataloaders/findOrCreateDataLoader.d.cts.map +1 -0
  226. package/build/dataloaders/findOrCreateDataLoader.d.mts +15 -0
  227. package/build/dataloaders/findOrCreateDataLoader.d.mts.map +1 -0
  228. package/build/dataloaders/findOrCreateDataLoader.js +102 -164
  229. package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
  230. package/build/dataloaders/findPaginatedDataLoader.cjs +98 -0
  231. package/build/dataloaders/findPaginatedDataLoader.cjs.map +1 -0
  232. package/build/dataloaders/findPaginatedDataLoader.d.cts +10 -0
  233. package/build/dataloaders/findPaginatedDataLoader.d.cts.map +1 -0
  234. package/build/dataloaders/findPaginatedDataLoader.d.mts +10 -0
  235. package/build/dataloaders/findPaginatedDataLoader.d.mts.map +1 -0
  236. package/build/dataloaders/findPaginatedDataLoader.js +93 -80
  237. package/build/dataloaders/findPaginatedDataLoader.js.map +1 -1
  238. package/build/dataloaders/lensDataLoader.cjs +178 -0
  239. package/build/dataloaders/lensDataLoader.cjs.map +1 -0
  240. package/build/dataloaders/lensDataLoader.d.cts +15 -0
  241. package/build/dataloaders/lensDataLoader.d.cts.map +1 -0
  242. package/build/dataloaders/lensDataLoader.d.mts +15 -0
  243. package/build/dataloaders/lensDataLoader.d.mts.map +1 -0
  244. package/build/dataloaders/lensDataLoader.js +172 -176
  245. package/build/dataloaders/lensDataLoader.js.map +1 -1
  246. package/build/dataloaders/manyToManyFindDataLoader.cjs +84 -0
  247. package/build/dataloaders/manyToManyFindDataLoader.cjs.map +1 -0
  248. package/build/dataloaders/manyToManyFindDataLoader.d.cts +12 -0
  249. package/build/dataloaders/manyToManyFindDataLoader.d.cts.map +1 -0
  250. package/build/dataloaders/manyToManyFindDataLoader.d.mts +12 -0
  251. package/build/dataloaders/manyToManyFindDataLoader.d.mts.map +1 -0
  252. package/build/dataloaders/manyToManyFindDataLoader.js +76 -70
  253. package/build/dataloaders/manyToManyFindDataLoader.js.map +1 -1
  254. package/build/dataloaders/oneToManyFindDataLoader.cjs +77 -0
  255. package/build/dataloaders/oneToManyFindDataLoader.cjs.map +1 -0
  256. package/build/dataloaders/oneToManyFindDataLoader.d.cts +12 -0
  257. package/build/dataloaders/oneToManyFindDataLoader.d.cts.map +1 -0
  258. package/build/dataloaders/oneToManyFindDataLoader.d.mts +12 -0
  259. package/build/dataloaders/oneToManyFindDataLoader.d.mts.map +1 -0
  260. package/build/dataloaders/oneToManyFindDataLoader.js +71 -67
  261. package/build/dataloaders/oneToManyFindDataLoader.js.map +1 -1
  262. package/build/defaults.cjs +195 -0
  263. package/build/defaults.cjs.map +1 -0
  264. package/build/defaults.d.cts +56 -0
  265. package/build/defaults.d.cts.map +1 -0
  266. package/build/defaults.d.mts +56 -0
  267. package/build/defaults.d.mts.map +1 -0
  268. package/build/defaults.js +171 -271
  269. package/build/defaults.js.map +1 -1
  270. package/build/drivers/Driver.cjs +3 -0
  271. package/build/drivers/Driver.d.cts +51 -0
  272. package/build/drivers/Driver.d.cts.map +1 -0
  273. package/build/drivers/Driver.d.mts +51 -0
  274. package/build/drivers/Driver.d.mts.map +1 -0
  275. package/build/drivers/Driver.js +3 -3
  276. package/build/drivers/EntityWriter.cjs +208 -0
  277. package/build/drivers/EntityWriter.cjs.map +1 -0
  278. package/build/drivers/EntityWriter.d.cts +66 -0
  279. package/build/drivers/EntityWriter.d.cts.map +1 -0
  280. package/build/drivers/EntityWriter.d.mts +66 -0
  281. package/build/drivers/EntityWriter.d.mts.map +1 -0
  282. package/build/drivers/EntityWriter.js +183 -219
  283. package/build/drivers/EntityWriter.js.map +1 -1
  284. package/build/drivers/IdAssigner.cjs +89 -0
  285. package/build/drivers/IdAssigner.cjs.map +1 -0
  286. package/build/drivers/IdAssigner.d.cts +50 -0
  287. package/build/drivers/IdAssigner.d.cts.map +1 -0
  288. package/build/drivers/IdAssigner.d.mts +50 -0
  289. package/build/drivers/IdAssigner.d.mts.map +1 -0
  290. package/build/drivers/IdAssigner.js +80 -124
  291. package/build/drivers/IdAssigner.js.map +1 -1
  292. package/build/drivers/driverApi.cjs +19 -0
  293. package/build/drivers/driverApi.cjs.map +1 -0
  294. package/build/drivers/driverApi.d.cts +22 -0
  295. package/build/drivers/driverApi.d.cts.map +1 -0
  296. package/build/drivers/driverApi.d.mts +22 -0
  297. package/build/drivers/driverApi.d.mts.map +1 -0
  298. package/build/drivers/driverApi.js +18 -0
  299. package/build/drivers/driverApi.js.map +1 -0
  300. package/build/drivers/index.cjs +7 -0
  301. package/build/drivers/index.d.cts +4 -0
  302. package/build/drivers/index.d.mts +4 -0
  303. package/build/drivers/index.js +3 -22
  304. package/build/fields.cjs +127 -0
  305. package/build/fields.cjs.map +1 -0
  306. package/build/fields.d.cts +29 -0
  307. package/build/fields.d.cts.map +1 -0
  308. package/build/fields.d.mts +29 -0
  309. package/build/fields.d.mts.map +1 -0
  310. package/build/fields.js +98 -160
  311. package/build/fields.js.map +1 -1
  312. package/build/flush/FlushLock.cjs +51 -0
  313. package/build/flush/FlushLock.cjs.map +1 -0
  314. package/build/flush/FlushLock.d.cts +29 -0
  315. package/build/flush/FlushLock.d.cts.map +1 -0
  316. package/build/flush/FlushLock.d.mts +29 -0
  317. package/build/flush/FlushLock.d.mts.map +1 -0
  318. package/build/flush/FlushLock.js +51 -0
  319. package/build/flush/FlushLock.js.map +1 -0
  320. package/build/flush/JoinRows.cjs +263 -0
  321. package/build/flush/JoinRows.cjs.map +1 -0
  322. package/build/flush/JoinRows.d.cts +120 -0
  323. package/build/flush/JoinRows.d.cts.map +1 -0
  324. package/build/flush/JoinRows.d.mts +120 -0
  325. package/build/flush/JoinRows.d.mts.map +1 -0
  326. package/build/flush/JoinRows.js +261 -0
  327. package/build/flush/JoinRows.js.map +1 -0
  328. package/build/flush/PendingChanges.cjs +1 -0
  329. package/build/flush/PendingChanges.d.cts +29 -0
  330. package/build/flush/PendingChanges.d.cts.map +1 -0
  331. package/build/flush/PendingChanges.d.mts +29 -0
  332. package/build/flush/PendingChanges.d.mts.map +1 -0
  333. package/build/flush/PendingChanges.js +1 -0
  334. package/build/flush/Todo.cjs +71 -0
  335. package/build/flush/Todo.cjs.map +1 -0
  336. package/build/flush/Todo.d.cts +38 -0
  337. package/build/flush/Todo.d.cts.map +1 -0
  338. package/build/flush/Todo.d.mts +38 -0
  339. package/build/flush/Todo.d.mts.map +1 -0
  340. package/build/flush/Todo.js +67 -0
  341. package/build/flush/Todo.js.map +1 -0
  342. package/build/getProperties.cjs +87 -0
  343. package/build/getProperties.cjs.map +1 -0
  344. package/build/getProperties.d.cts +30 -0
  345. package/build/getProperties.d.cts.map +1 -0
  346. package/build/getProperties.d.mts +30 -0
  347. package/build/getProperties.d.mts.map +1 -0
  348. package/build/getProperties.js +71 -128
  349. package/build/getProperties.js.map +1 -1
  350. package/build/index.cjs +524 -0
  351. package/build/index.cjs.map +1 -0
  352. package/build/index.d.cts +180 -0
  353. package/build/index.d.cts.map +1 -0
  354. package/build/index.d.mts +180 -0
  355. package/build/index.d.mts.map +1 -0
  356. package/build/index.js +171 -292
  357. package/build/index.js.map +1 -1
  358. package/build/json.cjs +79 -0
  359. package/build/json.cjs.map +1 -0
  360. package/build/json.d.cts +76 -0
  361. package/build/json.d.cts.map +1 -0
  362. package/build/json.d.mts +76 -0
  363. package/build/json.d.mts.map +1 -0
  364. package/build/json.js +68 -106
  365. package/build/json.js.map +1 -1
  366. package/build/k.cjs +9 -0
  367. package/build/k.cjs.map +1 -0
  368. package/build/k.d.cts +1 -0
  369. package/build/k.d.mts +1 -0
  370. package/build/k.js +6 -6
  371. package/build/k.js.map +1 -1
  372. package/build/keys.cjs +181 -0
  373. package/build/keys.cjs.map +1 -0
  374. package/build/keys.d.cts +55 -0
  375. package/build/keys.d.cts.map +1 -0
  376. package/build/keys.d.mts +55 -0
  377. package/build/keys.d.mts.map +1 -0
  378. package/build/keys.js +129 -162
  379. package/build/keys.js.map +1 -1
  380. package/build/loading/HintTree.cjs +67 -0
  381. package/build/loading/HintTree.cjs.map +1 -0
  382. package/build/loading/HintTree.d.cts +45 -0
  383. package/build/loading/HintTree.d.cts.map +1 -0
  384. package/build/loading/HintTree.d.mts +45 -0
  385. package/build/loading/HintTree.d.mts.map +1 -0
  386. package/build/loading/HintTree.js +66 -0
  387. package/build/loading/HintTree.js.map +1 -0
  388. package/build/loading/IsLoadedCache.cjs +58 -0
  389. package/build/loading/IsLoadedCache.cjs.map +1 -0
  390. package/build/loading/IsLoadedCache.d.cts +35 -0
  391. package/build/loading/IsLoadedCache.d.cts.map +1 -0
  392. package/build/loading/IsLoadedCache.d.mts +35 -0
  393. package/build/loading/IsLoadedCache.d.mts.map +1 -0
  394. package/build/loading/IsLoadedCache.js +57 -0
  395. package/build/loading/IsLoadedCache.js.map +1 -0
  396. package/build/loading/loadHints.cjs +95 -0
  397. package/build/loading/loadHints.cjs.map +1 -0
  398. package/build/loading/loadHints.d.cts +116 -0
  399. package/build/loading/loadHints.d.cts.map +1 -0
  400. package/build/loading/loadHints.d.mts +116 -0
  401. package/build/loading/loadHints.d.mts.map +1 -0
  402. package/build/loading/loadHints.js +88 -0
  403. package/build/loading/loadHints.js.map +1 -0
  404. package/build/loading/loadLens.cjs +212 -0
  405. package/build/loading/loadLens.cjs.map +1 -0
  406. package/build/loading/loadLens.d.cts +77 -0
  407. package/build/loading/loadLens.d.cts.map +1 -0
  408. package/build/loading/loadLens.d.mts +77 -0
  409. package/build/loading/loadLens.d.mts.map +1 -0
  410. package/build/loading/loadLens.js +201 -0
  411. package/build/loading/loadLens.js.map +1 -0
  412. package/build/loading/withLoaded.cjs +64 -0
  413. package/build/loading/withLoaded.cjs.map +1 -0
  414. package/build/loading/withLoaded.d.cts +65 -0
  415. package/build/loading/withLoaded.d.cts.map +1 -0
  416. package/build/loading/withLoaded.d.mts +65 -0
  417. package/build/loading/withLoaded.d.mts.map +1 -0
  418. package/build/loading/withLoaded.js +61 -0
  419. package/build/loading/withLoaded.js.map +1 -0
  420. package/build/logging/FactoryLogger.cjs +66 -0
  421. package/build/logging/FactoryLogger.cjs.map +1 -0
  422. package/build/logging/FactoryLogger.d.cts +27 -0
  423. package/build/logging/FactoryLogger.d.cts.map +1 -0
  424. package/build/logging/FactoryLogger.d.mts +27 -0
  425. package/build/logging/FactoryLogger.d.mts.map +1 -0
  426. package/build/logging/FactoryLogger.js +58 -73
  427. package/build/logging/FactoryLogger.js.map +1 -1
  428. package/build/logging/FieldLogger.cjs +57 -0
  429. package/build/logging/FieldLogger.cjs.map +1 -0
  430. package/build/logging/FieldLogger.d.cts +32 -0
  431. package/build/logging/FieldLogger.d.cts.map +1 -0
  432. package/build/logging/FieldLogger.d.mts +32 -0
  433. package/build/logging/FieldLogger.d.mts.map +1 -0
  434. package/build/logging/FieldLogger.js +51 -67
  435. package/build/logging/FieldLogger.js.map +1 -1
  436. package/build/logging/ReactionLogger.cjs +93 -0
  437. package/build/logging/ReactionLogger.cjs.map +1 -0
  438. package/build/logging/ReactionLogger.d.cts +37 -0
  439. package/build/logging/ReactionLogger.d.cts.map +1 -0
  440. package/build/logging/ReactionLogger.d.mts +37 -0
  441. package/build/logging/ReactionLogger.d.mts.map +1 -0
  442. package/build/logging/ReactionLogger.js +76 -66
  443. package/build/logging/ReactionLogger.js.map +1 -1
  444. package/build/newEntity.cjs +89 -0
  445. package/build/newEntity.cjs.map +1 -0
  446. package/build/newEntity.d.cts +48 -0
  447. package/build/newEntity.d.cts.map +1 -0
  448. package/build/newEntity.d.mts +48 -0
  449. package/build/newEntity.d.mts.map +1 -0
  450. package/build/newEntity.js +71 -94
  451. package/build/newEntity.js.map +1 -1
  452. package/build/newTestInstance.cjs +539 -0
  453. package/build/newTestInstance.cjs.map +1 -0
  454. package/build/newTestInstance.d.cts +207 -0
  455. package/build/newTestInstance.d.cts.map +1 -0
  456. package/build/newTestInstance.d.mts +207 -0
  457. package/build/newTestInstance.d.mts.map +1 -0
  458. package/build/newTestInstance.js +459 -721
  459. package/build/newTestInstance.js.map +1 -1
  460. package/build/normalizeHints.cjs +58 -0
  461. package/build/normalizeHints.cjs.map +1 -0
  462. package/build/normalizeHints.d.cts +24 -0
  463. package/build/normalizeHints.d.cts.map +1 -0
  464. package/build/normalizeHints.d.mts +24 -0
  465. package/build/normalizeHints.d.mts.map +1 -0
  466. package/build/normalizeHints.js +40 -55
  467. package/build/normalizeHints.js.map +1 -1
  468. package/build/nowUTC.cjs +15 -0
  469. package/build/nowUTC.cjs.map +1 -0
  470. package/build/nowUTC.d.cts +10 -0
  471. package/build/nowUTC.d.cts.map +1 -0
  472. package/build/nowUTC.d.mts +10 -0
  473. package/build/nowUTC.d.mts.map +1 -0
  474. package/build/nowUTC.js +14 -0
  475. package/build/nowUTC.js.map +1 -0
  476. package/build/plugins/ImmutableEntitiesPlugin.cjs +21 -0
  477. package/build/plugins/ImmutableEntitiesPlugin.cjs.map +1 -0
  478. package/build/plugins/ImmutableEntitiesPlugin.d.cts +12 -0
  479. package/build/plugins/ImmutableEntitiesPlugin.d.cts.map +1 -0
  480. package/build/plugins/ImmutableEntitiesPlugin.d.mts +12 -0
  481. package/build/plugins/ImmutableEntitiesPlugin.d.mts.map +1 -0
  482. package/build/plugins/ImmutableEntitiesPlugin.js +19 -20
  483. package/build/plugins/ImmutableEntitiesPlugin.js.map +1 -1
  484. package/build/plugins/PreloadPlugin.cjs +3 -0
  485. package/build/plugins/PreloadPlugin.d.cts +77 -0
  486. package/build/plugins/PreloadPlugin.d.cts.map +1 -0
  487. package/build/plugins/PreloadPlugin.d.mts +77 -0
  488. package/build/plugins/PreloadPlugin.d.mts.map +1 -0
  489. package/build/plugins/PreloadPlugin.js +3 -3
  490. package/build/preloading/JsonAggregatePreloader.cjs +280 -0
  491. package/build/preloading/JsonAggregatePreloader.cjs.map +1 -0
  492. package/build/preloading/JsonAggregatePreloader.d.cts +19 -0
  493. package/build/preloading/JsonAggregatePreloader.d.cts.map +1 -0
  494. package/build/preloading/JsonAggregatePreloader.d.mts +19 -0
  495. package/build/preloading/JsonAggregatePreloader.d.mts.map +1 -0
  496. package/build/preloading/JsonAggregatePreloader.js +270 -320
  497. package/build/preloading/JsonAggregatePreloader.js.map +1 -1
  498. package/build/preloading/canPreload.cjs +19 -0
  499. package/build/preloading/canPreload.cjs.map +1 -0
  500. package/build/preloading/canPreload.d.cts +6 -0
  501. package/build/preloading/canPreload.d.cts.map +1 -0
  502. package/build/preloading/canPreload.d.mts +6 -0
  503. package/build/preloading/canPreload.d.mts.map +1 -0
  504. package/build/preloading/canPreload.js +15 -21
  505. package/build/preloading/canPreload.js.map +1 -1
  506. package/build/preloading/partitionHint.cjs +43 -0
  507. package/build/preloading/partitionHint.cjs.map +1 -0
  508. package/build/preloading/partitionHint.d.cts +8 -0
  509. package/build/preloading/partitionHint.d.cts.map +1 -0
  510. package/build/preloading/partitionHint.d.mts +8 -0
  511. package/build/preloading/partitionHint.d.mts.map +1 -0
  512. package/build/preloading/partitionHint.js +36 -56
  513. package/build/preloading/partitionHint.js.map +1 -1
  514. package/build/queries/ConditionBuilder.cjs +106 -0
  515. package/build/queries/ConditionBuilder.cjs.map +1 -0
  516. package/build/queries/ConditionBuilder.d.cts +31 -0
  517. package/build/queries/ConditionBuilder.d.cts.map +1 -0
  518. package/build/queries/ConditionBuilder.d.mts +31 -0
  519. package/build/queries/ConditionBuilder.d.mts.map +1 -0
  520. package/build/queries/ConditionBuilder.js +105 -0
  521. package/build/queries/ConditionBuilder.js.map +1 -0
  522. package/build/queries/conditions.cjs +15 -0
  523. package/build/queries/conditions.cjs.map +1 -0
  524. package/build/queries/conditions.d.cts +38 -0
  525. package/build/queries/conditions.d.cts.map +1 -0
  526. package/build/queries/conditions.d.mts +38 -0
  527. package/build/queries/conditions.d.mts.map +1 -0
  528. package/build/queries/conditions.js +13 -0
  529. package/build/queries/conditions.js.map +1 -0
  530. package/build/queries/entityQueryUtils.cjs +60 -0
  531. package/build/queries/entityQueryUtils.cjs.map +1 -0
  532. package/build/queries/entityQueryUtils.d.cts +19 -0
  533. package/build/queries/entityQueryUtils.d.cts.map +1 -0
  534. package/build/queries/entityQueryUtils.d.mts +19 -0
  535. package/build/queries/entityQueryUtils.d.mts.map +1 -0
  536. package/build/queries/entityQueryUtils.js +56 -0
  537. package/build/queries/entityQueryUtils.js.map +1 -0
  538. package/build/queries/find/Aliases.cjs +301 -0
  539. package/build/queries/find/Aliases.cjs.map +1 -0
  540. package/build/queries/find/Aliases.d.cts +122 -0
  541. package/build/queries/find/Aliases.d.cts.map +1 -0
  542. package/build/queries/find/Aliases.d.mts +122 -0
  543. package/build/queries/find/Aliases.d.mts.map +1 -0
  544. package/build/queries/find/Aliases.js +293 -0
  545. package/build/queries/find/Aliases.js.map +1 -0
  546. package/build/queries/find/DeferredAlias.cjs +25 -0
  547. package/build/queries/find/DeferredAlias.cjs.map +1 -0
  548. package/build/queries/find/DeferredAlias.d.cts +22 -0
  549. package/build/queries/find/DeferredAlias.d.cts.map +1 -0
  550. package/build/queries/find/DeferredAlias.d.mts +22 -0
  551. package/build/queries/find/DeferredAlias.d.mts.map +1 -0
  552. package/build/queries/find/DeferredAlias.js +22 -0
  553. package/build/queries/find/DeferredAlias.js.map +1 -0
  554. package/build/queries/find/EntityFilter.cjs +27 -0
  555. package/build/queries/find/EntityFilter.cjs.map +1 -0
  556. package/build/queries/find/EntityFilter.d.cts +127 -0
  557. package/build/queries/find/EntityFilter.d.cts.map +1 -0
  558. package/build/queries/find/EntityFilter.d.mts +127 -0
  559. package/build/queries/find/EntityFilter.d.mts.map +1 -0
  560. package/build/queries/find/EntityFilter.js +26 -0
  561. package/build/queries/find/EntityFilter.js.map +1 -0
  562. package/build/queries/find/EntityGraphQLFilter.cjs +52 -0
  563. package/build/queries/find/EntityGraphQLFilter.cjs.map +1 -0
  564. package/build/queries/find/EntityGraphQLFilter.d.cts +59 -0
  565. package/build/queries/find/EntityGraphQLFilter.d.cts.map +1 -0
  566. package/build/queries/find/EntityGraphQLFilter.d.mts +59 -0
  567. package/build/queries/find/EntityGraphQLFilter.d.mts.map +1 -0
  568. package/build/queries/find/EntityGraphQLFilter.js +50 -0
  569. package/build/queries/find/EntityGraphQLFilter.js.map +1 -0
  570. package/build/queries/find/QueryParser.cjs +553 -0
  571. package/build/queries/find/QueryParser.cjs.map +1 -0
  572. package/build/queries/find/QueryParser.collectionJoins.cjs +353 -0
  573. package/build/queries/find/QueryParser.collectionJoins.cjs.map +1 -0
  574. package/build/queries/find/QueryParser.collectionJoins.d.cts +30 -0
  575. package/build/queries/find/QueryParser.collectionJoins.d.cts.map +1 -0
  576. package/build/queries/find/QueryParser.collectionJoins.d.mts +30 -0
  577. package/build/queries/find/QueryParser.collectionJoins.d.mts.map +1 -0
  578. package/build/queries/find/QueryParser.collectionJoins.js +352 -0
  579. package/build/queries/find/QueryParser.collectionJoins.js.map +1 -0
  580. package/build/queries/find/QueryParser.d.cts +192 -0
  581. package/build/queries/find/QueryParser.d.cts.map +1 -0
  582. package/build/queries/find/QueryParser.d.mts +192 -0
  583. package/build/queries/find/QueryParser.d.mts.map +1 -0
  584. package/build/queries/find/QueryParser.js +546 -0
  585. package/build/queries/find/QueryParser.js.map +1 -0
  586. package/build/queries/find/QueryParser.pruning.cjs +115 -0
  587. package/build/queries/find/QueryParser.pruning.cjs.map +1 -0
  588. package/build/queries/find/QueryParser.pruning.d.cts +8 -0
  589. package/build/queries/find/QueryParser.pruning.d.cts.map +1 -0
  590. package/build/queries/find/QueryParser.pruning.d.mts +8 -0
  591. package/build/queries/find/QueryParser.pruning.d.mts.map +1 -0
  592. package/build/queries/find/QueryParser.pruning.js +113 -0
  593. package/build/queries/find/QueryParser.pruning.js.map +1 -0
  594. package/build/queries/find/QueryVisitor.cjs +77 -0
  595. package/build/queries/find/QueryVisitor.cjs.map +1 -0
  596. package/build/queries/find/QueryVisitor.d.cts +24 -0
  597. package/build/queries/find/QueryVisitor.d.cts.map +1 -0
  598. package/build/queries/find/QueryVisitor.d.mts +24 -0
  599. package/build/queries/find/QueryVisitor.d.mts.map +1 -0
  600. package/build/queries/find/QueryVisitor.js +74 -0
  601. package/build/queries/find/QueryVisitor.js.map +1 -0
  602. package/build/queries/find/buildFindQuery.cjs +112 -0
  603. package/build/queries/find/buildFindQuery.cjs.map +1 -0
  604. package/build/queries/find/buildFindQuery.d.cts +24 -0
  605. package/build/queries/find/buildFindQuery.d.cts.map +1 -0
  606. package/build/queries/find/buildFindQuery.d.mts +24 -0
  607. package/build/queries/find/buildFindQuery.d.mts.map +1 -0
  608. package/build/queries/find/buildFindQuery.js +110 -0
  609. package/build/queries/find/buildFindQuery.js.map +1 -0
  610. package/build/queries/find/scopes.cjs +301 -0
  611. package/build/queries/find/scopes.cjs.map +1 -0
  612. package/build/queries/find/scopes.d.cts +188 -0
  613. package/build/queries/find/scopes.d.cts.map +1 -0
  614. package/build/queries/find/scopes.d.mts +188 -0
  615. package/build/queries/find/scopes.d.mts.map +1 -0
  616. package/build/queries/find/scopes.js +296 -0
  617. package/build/queries/find/scopes.js.map +1 -0
  618. package/build/queries/parsedConditions.cjs +21 -0
  619. package/build/queries/parsedConditions.cjs.map +1 -0
  620. package/build/queries/parsedConditions.d.cts +127 -0
  621. package/build/queries/parsedConditions.d.cts.map +1 -0
  622. package/build/queries/parsedConditions.d.mts +127 -0
  623. package/build/queries/parsedConditions.d.mts.map +1 -0
  624. package/build/queries/parsedConditions.js +20 -0
  625. package/build/queries/parsedConditions.js.map +1 -0
  626. package/build/queries/renderConditions.cjs +66 -0
  627. package/build/queries/renderConditions.cjs.map +1 -0
  628. package/build/queries/renderConditions.d.cts +15 -0
  629. package/build/queries/renderConditions.d.cts.map +1 -0
  630. package/build/queries/renderConditions.d.mts +15 -0
  631. package/build/queries/renderConditions.d.mts.map +1 -0
  632. package/build/queries/renderConditions.js +64 -0
  633. package/build/queries/renderConditions.js.map +1 -0
  634. package/build/queries/skipCondition.cjs +14 -0
  635. package/build/queries/skipCondition.cjs.map +1 -0
  636. package/build/queries/skipCondition.d.cts +7 -0
  637. package/build/queries/skipCondition.d.cts.map +1 -0
  638. package/build/queries/skipCondition.d.mts +7 -0
  639. package/build/queries/skipCondition.d.mts.map +1 -0
  640. package/build/queries/skipCondition.js +13 -0
  641. package/build/queries/skipCondition.js.map +1 -0
  642. package/build/queries/sql/AliasAssigner.cjs +35 -0
  643. package/build/queries/sql/AliasAssigner.cjs.map +1 -0
  644. package/build/queries/sql/AliasAssigner.d.cts +13 -0
  645. package/build/queries/sql/AliasAssigner.d.cts.map +1 -0
  646. package/build/queries/sql/AliasAssigner.d.mts +13 -0
  647. package/build/queries/sql/AliasAssigner.d.mts.map +1 -0
  648. package/build/queries/sql/AliasAssigner.js +34 -0
  649. package/build/queries/sql/AliasAssigner.js.map +1 -0
  650. package/build/queries/sql/Expr.cjs +529 -0
  651. package/build/queries/sql/Expr.cjs.map +1 -0
  652. package/build/queries/sql/Expr.d.cts +284 -0
  653. package/build/queries/sql/Expr.d.cts.map +1 -0
  654. package/build/queries/sql/Expr.d.mts +284 -0
  655. package/build/queries/sql/Expr.d.mts.map +1 -0
  656. package/build/queries/sql/Expr.js +512 -0
  657. package/build/queries/sql/Expr.js.map +1 -0
  658. package/build/queries/sql/JoinTree.cjs +72 -0
  659. package/build/queries/sql/JoinTree.cjs.map +1 -0
  660. package/build/queries/sql/JoinTree.d.cts +107 -0
  661. package/build/queries/sql/JoinTree.d.cts.map +1 -0
  662. package/build/queries/sql/JoinTree.d.mts +107 -0
  663. package/build/queries/sql/JoinTree.d.mts.map +1 -0
  664. package/build/queries/sql/JoinTree.js +71 -0
  665. package/build/queries/sql/JoinTree.js.map +1 -0
  666. package/build/queries/sql/Tables.cjs +803 -0
  667. package/build/queries/sql/Tables.cjs.map +1 -0
  668. package/build/queries/sql/Tables.d.cts +322 -0
  669. package/build/queries/sql/Tables.d.cts.map +1 -0
  670. package/build/queries/sql/Tables.d.mts +322 -0
  671. package/build/queries/sql/Tables.d.mts.map +1 -0
  672. package/build/queries/sql/Tables.js +786 -0
  673. package/build/queries/sql/Tables.js.map +1 -0
  674. package/build/queries/sql/custom.cjs +52 -0
  675. package/build/queries/sql/custom.cjs.map +1 -0
  676. package/build/queries/sql/custom.d.cts +85 -0
  677. package/build/queries/sql/custom.d.cts.map +1 -0
  678. package/build/queries/sql/custom.d.mts +85 -0
  679. package/build/queries/sql/custom.d.mts.map +1 -0
  680. package/build/queries/sql/custom.js +49 -0
  681. package/build/queries/sql/custom.js.map +1 -0
  682. package/build/queries/sql/execute.cjs +255 -0
  683. package/build/queries/sql/execute.cjs.map +1 -0
  684. package/build/queries/sql/execute.d.cts +311 -0
  685. package/build/queries/sql/execute.d.cts.map +1 -0
  686. package/build/queries/sql/execute.d.mts +311 -0
  687. package/build/queries/sql/execute.d.mts.map +1 -0
  688. package/build/queries/sql/execute.js +252 -0
  689. package/build/queries/sql/execute.js.map +1 -0
  690. package/build/queries/sql/expressions/arrayAgg.cjs +63 -0
  691. package/build/queries/sql/expressions/arrayAgg.cjs.map +1 -0
  692. package/build/queries/sql/expressions/arrayAgg.d.cts +24 -0
  693. package/build/queries/sql/expressions/arrayAgg.d.cts.map +1 -0
  694. package/build/queries/sql/expressions/arrayAgg.d.mts +24 -0
  695. package/build/queries/sql/expressions/arrayAgg.d.mts.map +1 -0
  696. package/build/queries/sql/expressions/arrayAgg.js +61 -0
  697. package/build/queries/sql/expressions/arrayAgg.js.map +1 -0
  698. package/build/queries/sql/expressions/case.cjs +71 -0
  699. package/build/queries/sql/expressions/case.cjs.map +1 -0
  700. package/build/queries/sql/expressions/case.d.cts +57 -0
  701. package/build/queries/sql/expressions/case.d.cts.map +1 -0
  702. package/build/queries/sql/expressions/case.d.mts +57 -0
  703. package/build/queries/sql/expressions/case.d.mts.map +1 -0
  704. package/build/queries/sql/expressions/case.js +68 -0
  705. package/build/queries/sql/expressions/case.js.map +1 -0
  706. package/build/queries/sql/expressions/coalesce.cjs +25 -0
  707. package/build/queries/sql/expressions/coalesce.cjs.map +1 -0
  708. package/build/queries/sql/expressions/coalesce.d.cts +21 -0
  709. package/build/queries/sql/expressions/coalesce.d.cts.map +1 -0
  710. package/build/queries/sql/expressions/coalesce.d.mts +21 -0
  711. package/build/queries/sql/expressions/coalesce.d.mts.map +1 -0
  712. package/build/queries/sql/expressions/coalesce.js +22 -0
  713. package/build/queries/sql/expressions/coalesce.js.map +1 -0
  714. package/build/queries/sql/expressions/codecs.cjs +126 -0
  715. package/build/queries/sql/expressions/codecs.cjs.map +1 -0
  716. package/build/queries/sql/expressions/codecs.d.cts +11 -0
  717. package/build/queries/sql/expressions/codecs.d.cts.map +1 -0
  718. package/build/queries/sql/expressions/codecs.d.mts +11 -0
  719. package/build/queries/sql/expressions/codecs.d.mts.map +1 -0
  720. package/build/queries/sql/expressions/codecs.js +125 -0
  721. package/build/queries/sql/expressions/codecs.js.map +1 -0
  722. package/build/queries/sql/expressions/expression.cjs +102 -0
  723. package/build/queries/sql/expressions/expression.cjs.map +1 -0
  724. package/build/queries/sql/expressions/expression.d.cts +23 -0
  725. package/build/queries/sql/expressions/expression.d.cts.map +1 -0
  726. package/build/queries/sql/expressions/expression.d.mts +23 -0
  727. package/build/queries/sql/expressions/expression.d.mts.map +1 -0
  728. package/build/queries/sql/expressions/expression.js +97 -0
  729. package/build/queries/sql/expressions/expression.js.map +1 -0
  730. package/build/queries/sql/expressions/greatest.cjs +25 -0
  731. package/build/queries/sql/expressions/greatest.cjs.map +1 -0
  732. package/build/queries/sql/expressions/greatest.d.cts +21 -0
  733. package/build/queries/sql/expressions/greatest.d.cts.map +1 -0
  734. package/build/queries/sql/expressions/greatest.d.mts +21 -0
  735. package/build/queries/sql/expressions/greatest.d.mts.map +1 -0
  736. package/build/queries/sql/expressions/greatest.js +22 -0
  737. package/build/queries/sql/expressions/greatest.js.map +1 -0
  738. package/build/queries/sql/expressions/least.cjs +25 -0
  739. package/build/queries/sql/expressions/least.cjs.map +1 -0
  740. package/build/queries/sql/expressions/least.d.cts +21 -0
  741. package/build/queries/sql/expressions/least.d.cts.map +1 -0
  742. package/build/queries/sql/expressions/least.d.mts +21 -0
  743. package/build/queries/sql/expressions/least.d.mts.map +1 -0
  744. package/build/queries/sql/expressions/least.js +22 -0
  745. package/build/queries/sql/expressions/least.js.map +1 -0
  746. package/build/queries/sql/expressions/nullIf.cjs +27 -0
  747. package/build/queries/sql/expressions/nullIf.cjs.map +1 -0
  748. package/build/queries/sql/expressions/nullIf.d.cts +22 -0
  749. package/build/queries/sql/expressions/nullIf.d.cts.map +1 -0
  750. package/build/queries/sql/expressions/nullIf.d.mts +22 -0
  751. package/build/queries/sql/expressions/nullIf.d.mts.map +1 -0
  752. package/build/queries/sql/expressions/nullIf.js +24 -0
  753. package/build/queries/sql/expressions/nullIf.js.map +1 -0
  754. package/build/queries/sql/expressions/parseExpression.cjs +75 -0
  755. package/build/queries/sql/expressions/parseExpression.cjs.map +1 -0
  756. package/build/queries/sql/expressions/parseExpression.d.cts +19 -0
  757. package/build/queries/sql/expressions/parseExpression.d.cts.map +1 -0
  758. package/build/queries/sql/expressions/parseExpression.d.mts +19 -0
  759. package/build/queries/sql/expressions/parseExpression.d.mts.map +1 -0
  760. package/build/queries/sql/expressions/parseExpression.js +70 -0
  761. package/build/queries/sql/expressions/parseExpression.js.map +1 -0
  762. package/build/queries/sql/expressions/types.cjs +1 -0
  763. package/build/queries/sql/expressions/types.d.cts +114 -0
  764. package/build/queries/sql/expressions/types.d.cts.map +1 -0
  765. package/build/queries/sql/expressions/types.d.mts +114 -0
  766. package/build/queries/sql/expressions/types.d.mts.map +1 -0
  767. package/build/queries/sql/expressions/types.js +1 -0
  768. package/build/queries/sql/keywords.cjs +136 -0
  769. package/build/queries/sql/keywords.cjs.map +1 -0
  770. package/build/queries/sql/keywords.d.cts +18 -0
  771. package/build/queries/sql/keywords.d.cts.map +1 -0
  772. package/build/queries/sql/keywords.d.mts +18 -0
  773. package/build/queries/sql/keywords.d.mts.map +1 -0
  774. package/build/queries/sql/keywords.js +132 -0
  775. package/build/queries/sql/keywords.js.map +1 -0
  776. package/build/queries/sql/query.cjs +1657 -0
  777. package/build/queries/sql/query.cjs.map +1 -0
  778. package/build/queries/sql/query.d.cts +887 -0
  779. package/build/queries/sql/query.d.cts.map +1 -0
  780. package/build/queries/sql/query.d.mts +887 -0
  781. package/build/queries/sql/query.d.mts.map +1 -0
  782. package/build/queries/sql/query.js +1637 -0
  783. package/build/queries/sql/query.js.map +1 -0
  784. package/build/queries/unnest.cjs +62 -0
  785. package/build/queries/unnest.cjs.map +1 -0
  786. package/build/queries/unnest.d.cts +16 -0
  787. package/build/queries/unnest.d.cts.map +1 -0
  788. package/build/queries/unnest.d.mts +16 -0
  789. package/build/queries/unnest.d.mts.map +1 -0
  790. package/build/queries/unnest.js +60 -0
  791. package/build/queries/unnest.js.map +1 -0
  792. package/build/queries/valueFilters.cjs +240 -0
  793. package/build/queries/valueFilters.cjs.map +1 -0
  794. package/build/queries/valueFilters.d.cts +26 -0
  795. package/build/queries/valueFilters.d.cts.map +1 -0
  796. package/build/queries/valueFilters.d.mts +26 -0
  797. package/build/queries/valueFilters.d.mts.map +1 -0
  798. package/build/queries/valueFilters.js +236 -0
  799. package/build/queries/valueFilters.js.map +1 -0
  800. package/build/reactivity/ReactionsManager.cjs +264 -0
  801. package/build/reactivity/ReactionsManager.cjs.map +1 -0
  802. package/build/reactivity/ReactionsManager.d.cts +98 -0
  803. package/build/reactivity/ReactionsManager.d.cts.map +1 -0
  804. package/build/reactivity/ReactionsManager.d.mts +98 -0
  805. package/build/reactivity/ReactionsManager.d.mts.map +1 -0
  806. package/build/reactivity/ReactionsManager.js +263 -0
  807. package/build/reactivity/ReactionsManager.js.map +1 -0
  808. package/build/reactivity/reactiveHints.cjs +328 -0
  809. package/build/reactivity/reactiveHints.cjs.map +1 -0
  810. package/build/reactivity/reactiveHints.d.cts +143 -0
  811. package/build/reactivity/reactiveHints.d.cts.map +1 -0
  812. package/build/reactivity/reactiveHints.d.mts +143 -0
  813. package/build/reactivity/reactiveHints.d.mts.map +1 -0
  814. package/build/reactivity/reactiveHints.js +321 -0
  815. package/build/reactivity/reactiveHints.js.map +1 -0
  816. package/build/relations/AbstractPropertyImpl.cjs +16 -0
  817. package/build/relations/AbstractPropertyImpl.cjs.map +1 -0
  818. package/build/relations/AbstractPropertyImpl.d.cts +11 -0
  819. package/build/relations/AbstractPropertyImpl.d.cts.map +1 -0
  820. package/build/relations/AbstractPropertyImpl.d.mts +11 -0
  821. package/build/relations/AbstractPropertyImpl.d.mts.map +1 -0
  822. package/build/relations/AbstractPropertyImpl.js +13 -13
  823. package/build/relations/AbstractPropertyImpl.js.map +1 -1
  824. package/build/relations/AbstractRelationImpl.cjs +15 -0
  825. package/build/relations/AbstractRelationImpl.cjs.map +1 -0
  826. package/build/relations/AbstractRelationImpl.d.cts +43 -0
  827. package/build/relations/AbstractRelationImpl.d.cts.map +1 -0
  828. package/build/relations/AbstractRelationImpl.d.mts +43 -0
  829. package/build/relations/AbstractRelationImpl.d.mts.map +1 -0
  830. package/build/relations/AbstractRelationImpl.js +12 -17
  831. package/build/relations/AbstractRelationImpl.js.map +1 -1
  832. package/build/relations/AsyncProperty.cjs +75 -0
  833. package/build/relations/AsyncProperty.cjs.map +1 -0
  834. package/build/relations/AsyncProperty.d.cts +40 -0
  835. package/build/relations/AsyncProperty.d.cts.map +1 -0
  836. package/build/relations/AsyncProperty.d.mts +40 -0
  837. package/build/relations/AsyncProperty.d.mts.map +1 -0
  838. package/build/relations/AsyncProperty.js +61 -70
  839. package/build/relations/AsyncProperty.js.map +1 -1
  840. package/build/relations/AsyncReactiveField.cjs +110 -0
  841. package/build/relations/AsyncReactiveField.cjs.map +1 -0
  842. package/build/relations/AsyncReactiveField.d.cts +50 -0
  843. package/build/relations/AsyncReactiveField.d.cts.map +1 -0
  844. package/build/relations/AsyncReactiveField.d.mts +50 -0
  845. package/build/relations/AsyncReactiveField.d.mts.map +1 -0
  846. package/build/relations/AsyncReactiveField.js +97 -116
  847. package/build/relations/AsyncReactiveField.js.map +1 -1
  848. package/build/relations/Collection.cjs +23 -0
  849. package/build/relations/Collection.cjs.map +1 -0
  850. package/build/relations/Collection.d.cts +37 -0
  851. package/build/relations/Collection.d.cts.map +1 -0
  852. package/build/relations/Collection.d.mts +37 -0
  853. package/build/relations/Collection.d.mts.map +1 -0
  854. package/build/relations/Collection.js +14 -11
  855. package/build/relations/Collection.js.map +1 -1
  856. package/build/relations/CustomCollection.cjs +144 -0
  857. package/build/relations/CustomCollection.cjs.map +1 -0
  858. package/build/relations/CustomCollection.d.cts +74 -0
  859. package/build/relations/CustomCollection.d.cts.map +1 -0
  860. package/build/relations/CustomCollection.d.mts +74 -0
  861. package/build/relations/CustomCollection.d.mts.map +1 -0
  862. package/build/relations/CustomCollection.js +138 -162
  863. package/build/relations/CustomCollection.js.map +1 -1
  864. package/build/relations/CustomReference.cjs +142 -0
  865. package/build/relations/CustomReference.cjs.map +1 -0
  866. package/build/relations/CustomReference.d.cts +76 -0
  867. package/build/relations/CustomReference.d.cts.map +1 -0
  868. package/build/relations/CustomReference.d.mts +76 -0
  869. package/build/relations/CustomReference.d.mts.map +1 -0
  870. package/build/relations/CustomReference.js +135 -147
  871. package/build/relations/CustomReference.js.map +1 -1
  872. package/build/relations/EnumCollection.cjs +178 -0
  873. package/build/relations/EnumCollection.cjs.map +1 -0
  874. package/build/relations/EnumCollection.d.cts +86 -0
  875. package/build/relations/EnumCollection.d.cts.map +1 -0
  876. package/build/relations/EnumCollection.d.mts +86 -0
  877. package/build/relations/EnumCollection.d.mts.map +1 -0
  878. package/build/relations/EnumCollection.js +172 -207
  879. package/build/relations/EnumCollection.js.map +1 -1
  880. package/build/relations/LargeCollection.cjs +4 -0
  881. package/build/relations/LargeCollection.d.cts +22 -0
  882. package/build/relations/LargeCollection.d.cts.map +1 -0
  883. package/build/relations/LargeCollection.d.mts +22 -0
  884. package/build/relations/LargeCollection.d.mts.map +1 -0
  885. package/build/relations/LargeCollection.js +4 -3
  886. package/build/relations/LazyField.cjs +140 -0
  887. package/build/relations/LazyField.cjs.map +1 -0
  888. package/build/relations/LazyField.d.cts +51 -0
  889. package/build/relations/LazyField.d.cts.map +1 -0
  890. package/build/relations/LazyField.d.mts +51 -0
  891. package/build/relations/LazyField.d.mts.map +1 -0
  892. package/build/relations/LazyField.js +134 -0
  893. package/build/relations/LazyField.js.map +1 -0
  894. package/build/relations/ManyToManyCollection.cjs +421 -0
  895. package/build/relations/ManyToManyCollection.cjs.map +1 -0
  896. package/build/relations/ManyToManyCollection.d.cts +59 -0
  897. package/build/relations/ManyToManyCollection.d.cts.map +1 -0
  898. package/build/relations/ManyToManyCollection.d.mts +59 -0
  899. package/build/relations/ManyToManyCollection.d.mts.map +1 -0
  900. package/build/relations/ManyToManyCollection.js +411 -471
  901. package/build/relations/ManyToManyCollection.js.map +1 -1
  902. package/build/relations/ManyToManyLargeCollection.cjs +91 -0
  903. package/build/relations/ManyToManyLargeCollection.cjs.map +1 -0
  904. package/build/relations/ManyToManyLargeCollection.d.cts +34 -0
  905. package/build/relations/ManyToManyLargeCollection.d.cts.map +1 -0
  906. package/build/relations/ManyToManyLargeCollection.d.mts +34 -0
  907. package/build/relations/ManyToManyLargeCollection.d.mts.map +1 -0
  908. package/build/relations/ManyToManyLargeCollection.js +85 -118
  909. package/build/relations/ManyToManyLargeCollection.js.map +1 -1
  910. package/build/relations/ManyToOneReference.cjs +364 -0
  911. package/build/relations/ManyToOneReference.cjs.map +1 -0
  912. package/build/relations/ManyToOneReference.d.cts +121 -0
  913. package/build/relations/ManyToOneReference.d.cts.map +1 -0
  914. package/build/relations/ManyToOneReference.d.mts +121 -0
  915. package/build/relations/ManyToOneReference.d.mts.map +1 -0
  916. package/build/relations/ManyToOneReference.js +344 -411
  917. package/build/relations/ManyToOneReference.js.map +1 -1
  918. package/build/relations/OneToManyCollection.cjs +492 -0
  919. package/build/relations/OneToManyCollection.cjs.map +1 -0
  920. package/build/relations/OneToManyCollection.d.cts +69 -0
  921. package/build/relations/OneToManyCollection.d.cts.map +1 -0
  922. package/build/relations/OneToManyCollection.d.mts +69 -0
  923. package/build/relations/OneToManyCollection.d.mts.map +1 -0
  924. package/build/relations/OneToManyCollection.js +480 -579
  925. package/build/relations/OneToManyCollection.js.map +1 -1
  926. package/build/relations/OneToManyLargeCollection.cjs +85 -0
  927. package/build/relations/OneToManyLargeCollection.cjs.map +1 -0
  928. package/build/relations/OneToManyLargeCollection.d.cts +29 -0
  929. package/build/relations/OneToManyLargeCollection.d.cts.map +1 -0
  930. package/build/relations/OneToManyLargeCollection.d.mts +29 -0
  931. package/build/relations/OneToManyLargeCollection.d.mts.map +1 -0
  932. package/build/relations/OneToManyLargeCollection.js +79 -99
  933. package/build/relations/OneToManyLargeCollection.js.map +1 -1
  934. package/build/relations/OneToOneReference.cjs +209 -0
  935. package/build/relations/OneToOneReference.cjs.map +1 -0
  936. package/build/relations/OneToOneReference.d.cts +97 -0
  937. package/build/relations/OneToOneReference.d.cts.map +1 -0
  938. package/build/relations/OneToOneReference.d.mts +97 -0
  939. package/build/relations/OneToOneReference.d.mts.map +1 -0
  940. package/build/relations/OneToOneReference.js +193 -221
  941. package/build/relations/OneToOneReference.js.map +1 -1
  942. package/build/relations/PolymorphicReference.cjs +210 -0
  943. package/build/relations/PolymorphicReference.cjs.map +1 -0
  944. package/build/relations/PolymorphicReference.d.cts +93 -0
  945. package/build/relations/PolymorphicReference.d.cts.map +1 -0
  946. package/build/relations/PolymorphicReference.d.mts +93 -0
  947. package/build/relations/PolymorphicReference.d.mts.map +1 -0
  948. package/build/relations/PolymorphicReference.js +200 -237
  949. package/build/relations/PolymorphicReference.js.map +1 -1
  950. package/build/relations/PropertySymbols.cjs +7 -0
  951. package/build/relations/PropertySymbols.cjs.map +1 -0
  952. package/build/relations/PropertySymbols.d.cts +5 -0
  953. package/build/relations/PropertySymbols.d.cts.map +1 -0
  954. package/build/relations/PropertySymbols.d.mts +5 -0
  955. package/build/relations/PropertySymbols.d.mts.map +1 -0
  956. package/build/relations/PropertySymbols.js +6 -0
  957. package/build/relations/PropertySymbols.js.map +1 -0
  958. package/build/relations/ReactiveField.cjs +114 -0
  959. package/build/relations/ReactiveField.cjs.map +1 -0
  960. package/build/relations/ReactiveField.d.cts +88 -0
  961. package/build/relations/ReactiveField.d.cts.map +1 -0
  962. package/build/relations/ReactiveField.d.mts +88 -0
  963. package/build/relations/ReactiveField.d.mts.map +1 -0
  964. package/build/relations/ReactiveField.js +104 -137
  965. package/build/relations/ReactiveField.js.map +1 -1
  966. package/build/relations/ReactiveGetter.cjs +40 -0
  967. package/build/relations/ReactiveGetter.cjs.map +1 -0
  968. package/build/relations/ReactiveGetter.d.cts +33 -0
  969. package/build/relations/ReactiveGetter.d.cts.map +1 -0
  970. package/build/relations/ReactiveGetter.d.mts +33 -0
  971. package/build/relations/ReactiveGetter.d.mts.map +1 -0
  972. package/build/relations/ReactiveGetter.js +30 -31
  973. package/build/relations/ReactiveGetter.js.map +1 -1
  974. package/build/relations/ReactiveManyToMany.cjs +198 -0
  975. package/build/relations/ReactiveManyToMany.cjs.map +1 -0
  976. package/build/relations/ReactiveManyToMany.d.cts +63 -0
  977. package/build/relations/ReactiveManyToMany.d.cts.map +1 -0
  978. package/build/relations/ReactiveManyToMany.d.mts +63 -0
  979. package/build/relations/ReactiveManyToMany.d.mts.map +1 -0
  980. package/build/relations/ReactiveManyToMany.js +187 -238
  981. package/build/relations/ReactiveManyToMany.js.map +1 -1
  982. package/build/relations/ReactiveManyToManyOtherSide.cjs +148 -0
  983. package/build/relations/ReactiveManyToManyOtherSide.cjs.map +1 -0
  984. package/build/relations/ReactiveManyToManyOtherSide.d.cts +53 -0
  985. package/build/relations/ReactiveManyToManyOtherSide.d.cts.map +1 -0
  986. package/build/relations/ReactiveManyToManyOtherSide.d.mts +53 -0
  987. package/build/relations/ReactiveManyToManyOtherSide.d.mts.map +1 -0
  988. package/build/relations/ReactiveManyToManyOtherSide.js +139 -152
  989. package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
  990. package/build/relations/ReactiveReference.cjs +336 -0
  991. package/build/relations/ReactiveReference.cjs.map +1 -0
  992. package/build/relations/ReactiveReference.d.cts +124 -0
  993. package/build/relations/ReactiveReference.d.cts.map +1 -0
  994. package/build/relations/ReactiveReference.d.mts +124 -0
  995. package/build/relations/ReactiveReference.d.mts.map +1 -0
  996. package/build/relations/ReactiveReference.js +321 -385
  997. package/build/relations/ReactiveReference.js.map +1 -1
  998. package/build/relations/ReadOnlyCollection.cjs +18 -0
  999. package/build/relations/ReadOnlyCollection.cjs.map +1 -0
  1000. package/build/relations/ReadOnlyCollection.d.cts +22 -0
  1001. package/build/relations/ReadOnlyCollection.d.cts.map +1 -0
  1002. package/build/relations/ReadOnlyCollection.d.mts +22 -0
  1003. package/build/relations/ReadOnlyCollection.d.mts.map +1 -0
  1004. package/build/relations/ReadOnlyCollection.js +9 -9
  1005. package/build/relations/ReadOnlyCollection.js.map +1 -1
  1006. package/build/relations/RecursiveCollection.cjs +386 -0
  1007. package/build/relations/RecursiveCollection.cjs.map +1 -0
  1008. package/build/relations/RecursiveCollection.d.cts +112 -0
  1009. package/build/relations/RecursiveCollection.d.cts.map +1 -0
  1010. package/build/relations/RecursiveCollection.d.mts +112 -0
  1011. package/build/relations/RecursiveCollection.d.mts.map +1 -0
  1012. package/build/relations/RecursiveCollection.js +367 -427
  1013. package/build/relations/RecursiveCollection.js.map +1 -1
  1014. package/build/relations/RecursiveCycleError.cjs +17 -0
  1015. package/build/relations/RecursiveCycleError.cjs.map +1 -0
  1016. package/build/relations/RecursiveCycleError.d.cts +15 -0
  1017. package/build/relations/RecursiveCycleError.d.cts.map +1 -0
  1018. package/build/relations/RecursiveCycleError.d.mts +15 -0
  1019. package/build/relations/RecursiveCycleError.d.mts.map +1 -0
  1020. package/build/relations/RecursiveCycleError.js +14 -13
  1021. package/build/relations/RecursiveCycleError.js.map +1 -1
  1022. package/build/relations/Reference.cjs +25 -0
  1023. package/build/relations/Reference.cjs.map +1 -0
  1024. package/build/relations/Reference.d.cts +39 -0
  1025. package/build/relations/Reference.d.cts.map +1 -0
  1026. package/build/relations/Reference.d.mts +39 -0
  1027. package/build/relations/Reference.d.mts.map +1 -0
  1028. package/build/relations/Reference.js +15 -14
  1029. package/build/relations/Reference.js.map +1 -1
  1030. package/build/relations/ReferenceSymbols.cjs +7 -0
  1031. package/build/relations/ReferenceSymbols.cjs.map +1 -0
  1032. package/build/relations/ReferenceSymbols.d.cts +5 -0
  1033. package/build/relations/ReferenceSymbols.d.cts.map +1 -0
  1034. package/build/relations/ReferenceSymbols.d.mts +5 -0
  1035. package/build/relations/ReferenceSymbols.d.mts.map +1 -0
  1036. package/build/relations/ReferenceSymbols.js +6 -0
  1037. package/build/relations/ReferenceSymbols.js.map +1 -0
  1038. package/build/relations/Relation.cjs +17 -0
  1039. package/build/relations/Relation.cjs.map +1 -0
  1040. package/build/relations/Relation.d.cts +16 -0
  1041. package/build/relations/Relation.d.cts.map +1 -0
  1042. package/build/relations/Relation.d.mts +16 -0
  1043. package/build/relations/Relation.d.mts.map +1 -0
  1044. package/build/relations/Relation.js +10 -8
  1045. package/build/relations/Relation.js.map +1 -1
  1046. package/build/relations/RelationSymbols.cjs +9 -0
  1047. package/build/relations/RelationSymbols.cjs.map +1 -0
  1048. package/build/relations/RelationSymbols.d.cts +6 -0
  1049. package/build/relations/RelationSymbols.d.cts.map +1 -0
  1050. package/build/relations/RelationSymbols.d.mts +6 -0
  1051. package/build/relations/RelationSymbols.d.mts.map +1 -0
  1052. package/build/relations/RelationSymbols.js +7 -0
  1053. package/build/relations/RelationSymbols.js.map +1 -0
  1054. package/build/relations/hasAsyncMethod.cjs +47 -0
  1055. package/build/relations/hasAsyncMethod.cjs.map +1 -0
  1056. package/build/relations/hasAsyncMethod.d.cts +29 -0
  1057. package/build/relations/hasAsyncMethod.d.cts.map +1 -0
  1058. package/build/relations/hasAsyncMethod.d.mts +29 -0
  1059. package/build/relations/hasAsyncMethod.d.mts.map +1 -0
  1060. package/build/relations/hasAsyncMethod.js +40 -43
  1061. package/build/relations/hasAsyncMethod.js.map +1 -1
  1062. package/build/relations/hasManyDerived.cjs +35 -0
  1063. package/build/relations/hasManyDerived.cjs.map +1 -0
  1064. package/build/relations/hasManyDerived.d.cts +25 -0
  1065. package/build/relations/hasManyDerived.d.cts.map +1 -0
  1066. package/build/relations/hasManyDerived.d.mts +25 -0
  1067. package/build/relations/hasManyDerived.d.mts.map +1 -0
  1068. package/build/relations/hasManyDerived.js +30 -28
  1069. package/build/relations/hasManyDerived.js.map +1 -1
  1070. package/build/relations/hasManyThrough.cjs +29 -0
  1071. package/build/relations/hasManyThrough.cjs.map +1 -0
  1072. package/build/relations/hasManyThrough.d.cts +16 -0
  1073. package/build/relations/hasManyThrough.d.cts.map +1 -0
  1074. package/build/relations/hasManyThrough.d.mts +16 -0
  1075. package/build/relations/hasManyThrough.d.mts.map +1 -0
  1076. package/build/relations/hasManyThrough.js +24 -20
  1077. package/build/relations/hasManyThrough.js.map +1 -1
  1078. package/build/relations/hasOneDerived.cjs +32 -0
  1079. package/build/relations/hasOneDerived.cjs.map +1 -0
  1080. package/build/relations/hasOneDerived.d.cts +15 -0
  1081. package/build/relations/hasOneDerived.d.cts.map +1 -0
  1082. package/build/relations/hasOneDerived.d.mts +15 -0
  1083. package/build/relations/hasOneDerived.d.mts.map +1 -0
  1084. package/build/relations/hasOneDerived.js +27 -20
  1085. package/build/relations/hasOneDerived.js.map +1 -1
  1086. package/build/relations/hasOneThrough.cjs +31 -0
  1087. package/build/relations/hasOneThrough.cjs.map +1 -0
  1088. package/build/relations/hasOneThrough.d.cts +16 -0
  1089. package/build/relations/hasOneThrough.d.cts.map +1 -0
  1090. package/build/relations/hasOneThrough.d.mts +16 -0
  1091. package/build/relations/hasOneThrough.d.mts.map +1 -0
  1092. package/build/relations/hasOneThrough.js +26 -22
  1093. package/build/relations/hasOneThrough.js.map +1 -1
  1094. package/build/relations/hasProperty.cjs +109 -0
  1095. package/build/relations/hasProperty.cjs.map +1 -0
  1096. package/build/relations/hasProperty.d.cts +53 -0
  1097. package/build/relations/hasProperty.d.cts.map +1 -0
  1098. package/build/relations/hasProperty.d.mts +53 -0
  1099. package/build/relations/hasProperty.d.mts.map +1 -0
  1100. package/build/relations/hasProperty.js +90 -95
  1101. package/build/relations/hasProperty.js.map +1 -1
  1102. package/build/relations/index.cjs +99 -0
  1103. package/build/relations/index.d.cts +32 -0
  1104. package/build/relations/index.d.mts +32 -0
  1105. package/build/relations/index.js +31 -97
  1106. package/build/relations/isCascadeDelete.cjs +11 -0
  1107. package/build/relations/isCascadeDelete.cjs.map +1 -0
  1108. package/build/relations/isCascadeDelete.d.cts +7 -0
  1109. package/build/relations/isCascadeDelete.d.cts.map +1 -0
  1110. package/build/relations/isCascadeDelete.d.mts +7 -0
  1111. package/build/relations/isCascadeDelete.d.mts.map +1 -0
  1112. package/build/relations/isCascadeDelete.js +10 -0
  1113. package/build/relations/isCascadeDelete.js.map +1 -0
  1114. package/build/resurrection.cjs +74 -0
  1115. package/build/resurrection.cjs.map +1 -0
  1116. package/build/resurrection.d.cts +13 -0
  1117. package/build/resurrection.d.cts.map +1 -0
  1118. package/build/resurrection.d.mts +13 -0
  1119. package/build/resurrection.d.mts.map +1 -0
  1120. package/build/resurrection.js +48 -69
  1121. package/build/resurrection.js.map +1 -1
  1122. package/build/rules.cjs +227 -0
  1123. package/build/rules.cjs.map +1 -0
  1124. package/build/rules.d.cts +145 -0
  1125. package/build/rules.d.cts.map +1 -0
  1126. package/build/rules.d.mts +145 -0
  1127. package/build/rules.d.mts.map +1 -0
  1128. package/build/rules.js +189 -204
  1129. package/build/rules.js.map +1 -1
  1130. package/build/runtimeConfig.cjs +25 -0
  1131. package/build/runtimeConfig.cjs.map +1 -0
  1132. package/build/runtimeConfig.d.cts +24 -0
  1133. package/build/runtimeConfig.d.cts.map +1 -0
  1134. package/build/runtimeConfig.d.mts +24 -0
  1135. package/build/runtimeConfig.d.mts.map +1 -0
  1136. package/build/runtimeConfig.js +16 -12
  1137. package/build/runtimeConfig.js.map +1 -1
  1138. package/build/serde/TypeInfo.cjs +80 -0
  1139. package/build/serde/TypeInfo.cjs.map +1 -0
  1140. package/build/serde/TypeInfo.d.cts +57 -0
  1141. package/build/serde/TypeInfo.d.cts.map +1 -0
  1142. package/build/serde/TypeInfo.d.mts +57 -0
  1143. package/build/serde/TypeInfo.d.mts.map +1 -0
  1144. package/build/serde/TypeInfo.js +78 -0
  1145. package/build/serde/TypeInfo.js.map +1 -0
  1146. package/build/serde/columns.cjs +63 -0
  1147. package/build/serde/columns.cjs.map +1 -0
  1148. package/build/serde/columns.d.cts +38 -0
  1149. package/build/serde/columns.d.cts.map +1 -0
  1150. package/build/serde/columns.d.mts +38 -0
  1151. package/build/serde/columns.d.mts.map +1 -0
  1152. package/build/serde/columns.js +62 -0
  1153. package/build/serde/columns.js.map +1 -0
  1154. package/build/serde/fieldSerde.cjs +188 -0
  1155. package/build/serde/fieldSerde.cjs.map +1 -0
  1156. package/build/serde/fieldSerde.d.cts +87 -0
  1157. package/build/serde/fieldSerde.d.cts.map +1 -0
  1158. package/build/serde/fieldSerde.d.mts +87 -0
  1159. package/build/serde/fieldSerde.d.mts.map +1 -0
  1160. package/build/serde/fieldSerde.js +182 -0
  1161. package/build/serde/fieldSerde.js.map +1 -0
  1162. package/build/serde/serde.cjs +499 -0
  1163. package/build/serde/serde.cjs.map +1 -0
  1164. package/build/serde/serde.d.cts +248 -0
  1165. package/build/serde/serde.d.cts.map +1 -0
  1166. package/build/serde/serde.d.mts +248 -0
  1167. package/build/serde/serde.d.mts.map +1 -0
  1168. package/build/serde/serde.js +485 -0
  1169. package/build/serde/serde.js.map +1 -0
  1170. package/build/serde/temporal.cjs +57 -0
  1171. package/build/serde/temporal.cjs.map +1 -0
  1172. package/build/serde/temporal.d.cts +44 -0
  1173. package/build/serde/temporal.d.cts.map +1 -0
  1174. package/build/serde/temporal.d.mts +44 -0
  1175. package/build/serde/temporal.d.mts.map +1 -0
  1176. package/build/serde/temporal.js +55 -0
  1177. package/build/serde/temporal.js.map +1 -0
  1178. package/build/serde/temporalMappers.cjs +62 -0
  1179. package/build/serde/temporalMappers.cjs.map +1 -0
  1180. package/build/serde/temporalMappers.d.cts +36 -0
  1181. package/build/serde/temporalMappers.d.cts.map +1 -0
  1182. package/build/serde/temporalMappers.d.mts +36 -0
  1183. package/build/serde/temporalMappers.d.mts.map +1 -0
  1184. package/build/serde/temporalMappers.js +58 -0
  1185. package/build/serde/temporalMappers.js.map +1 -0
  1186. package/build/trusted.cjs +16 -0
  1187. package/build/trusted.cjs.map +1 -0
  1188. package/build/trusted.d.cts +8 -0
  1189. package/build/trusted.d.cts.map +1 -0
  1190. package/build/trusted.d.mts +8 -0
  1191. package/build/trusted.d.mts.map +1 -0
  1192. package/build/trusted.js +8 -8
  1193. package/build/trusted.js.map +1 -1
  1194. package/build/typeMap.cjs +3 -0
  1195. package/build/typeMap.d.cts +88 -0
  1196. package/build/typeMap.d.cts.map +1 -0
  1197. package/build/typeMap.d.mts +88 -0
  1198. package/build/typeMap.d.mts.map +1 -0
  1199. package/build/typeMap.js +3 -3
  1200. package/build/upsert.cjs +175 -0
  1201. package/build/upsert.cjs.map +1 -0
  1202. package/build/upsert.d.cts +42 -0
  1203. package/build/upsert.d.cts.map +1 -0
  1204. package/build/upsert.d.mts +42 -0
  1205. package/build/upsert.d.mts.map +1 -0
  1206. package/build/upsert.js +159 -274
  1207. package/build/upsert.js.map +1 -1
  1208. package/build/utils.cjs +204 -0
  1209. package/build/utils.cjs.map +1 -0
  1210. package/build/utils.d.cts +65 -0
  1211. package/build/utils.d.cts.map +1 -0
  1212. package/build/utils.d.mts +65 -0
  1213. package/build/utils.d.mts.map +1 -0
  1214. package/build/utils.js +123 -192
  1215. package/build/utils.js.map +1 -1
  1216. package/package.json +34 -14
  1217. package/build/AliasAssigner.d.ts +0 -10
  1218. package/build/AliasAssigner.d.ts.map +0 -1
  1219. package/build/AliasAssigner.js +0 -39
  1220. package/build/AliasAssigner.js.map +0 -1
  1221. package/build/Aliases.d.ts +0 -117
  1222. package/build/Aliases.d.ts.map +0 -1
  1223. package/build/Aliases.js +0 -457
  1224. package/build/Aliases.js.map +0 -1
  1225. package/build/BaseEntity.d.ts +0 -68
  1226. package/build/BaseEntity.d.ts.map +0 -1
  1227. package/build/ConditionBuilder.d.ts +0 -29
  1228. package/build/ConditionBuilder.d.ts.map +0 -1
  1229. package/build/ConditionBuilder.js +0 -112
  1230. package/build/ConditionBuilder.js.map +0 -1
  1231. package/build/Entity.d.ts +0 -39
  1232. package/build/Entity.d.ts.map +0 -1
  1233. package/build/EntityFields.d.ts +0 -37
  1234. package/build/EntityFields.d.ts.map +0 -1
  1235. package/build/EntityFields.js.map +0 -1
  1236. package/build/EntityFilter.d.ts +0 -134
  1237. package/build/EntityFilter.d.ts.map +0 -1
  1238. package/build/EntityFilter.js +0 -21
  1239. package/build/EntityFilter.js.map +0 -1
  1240. package/build/EntityGraphQLFilter.d.ts +0 -56
  1241. package/build/EntityGraphQLFilter.d.ts.map +0 -1
  1242. package/build/EntityGraphQLFilter.js +0 -53
  1243. package/build/EntityGraphQLFilter.js.map +0 -1
  1244. package/build/EntityManager.d.ts +0 -740
  1245. package/build/EntityManager.d.ts.map +0 -1
  1246. package/build/EntityMetadata.d.ts +0 -233
  1247. package/build/EntityMetadata.d.ts.map +0 -1
  1248. package/build/EnumMetadata.d.ts +0 -15
  1249. package/build/EnumMetadata.d.ts.map +0 -1
  1250. package/build/EnumMetadata.js.map +0 -1
  1251. package/build/FlushLock.d.ts +0 -26
  1252. package/build/FlushLock.d.ts.map +0 -1
  1253. package/build/FlushLock.js +0 -57
  1254. package/build/FlushLock.js.map +0 -1
  1255. package/build/HintTree.d.ts +0 -42
  1256. package/build/HintTree.d.ts.map +0 -1
  1257. package/build/HintTree.js +0 -64
  1258. package/build/HintTree.js.map +0 -1
  1259. package/build/IndexManager.d.ts +0 -31
  1260. package/build/IndexManager.d.ts.map +0 -1
  1261. package/build/InstanceData.d.ts +0 -79
  1262. package/build/InstanceData.d.ts.map +0 -1
  1263. package/build/IsLoadedCache.d.ts +0 -32
  1264. package/build/IsLoadedCache.d.ts.map +0 -1
  1265. package/build/IsLoadedCache.js +0 -91
  1266. package/build/IsLoadedCache.js.map +0 -1
  1267. package/build/JoinRows.d.ts +0 -117
  1268. package/build/JoinRows.d.ts.map +0 -1
  1269. package/build/JoinRows.js +0 -320
  1270. package/build/JoinRows.js.map +0 -1
  1271. package/build/PendingChanges.d.ts +0 -26
  1272. package/build/PendingChanges.d.ts.map +0 -1
  1273. package/build/PendingChanges.js +0 -3
  1274. package/build/PendingChanges.js.map +0 -1
  1275. package/build/PluginManager.d.ts +0 -102
  1276. package/build/PluginManager.d.ts.map +0 -1
  1277. package/build/QueryParser.collectionJoins.d.ts +0 -27
  1278. package/build/QueryParser.collectionJoins.d.ts.map +0 -1
  1279. package/build/QueryParser.collectionJoins.js +0 -466
  1280. package/build/QueryParser.collectionJoins.js.map +0 -1
  1281. package/build/QueryParser.collectionJoins.test.d.ts +0 -2
  1282. package/build/QueryParser.collectionJoins.test.d.ts.map +0 -1
  1283. package/build/QueryParser.collectionJoins.test.js +0 -772
  1284. package/build/QueryParser.collectionJoins.test.js.map +0 -1
  1285. package/build/QueryParser.d.ts +0 -336
  1286. package/build/QueryParser.d.ts.map +0 -1
  1287. package/build/QueryParser.js +0 -965
  1288. package/build/QueryParser.js.map +0 -1
  1289. package/build/QueryParser.pruning.d.ts +0 -7
  1290. package/build/QueryParser.pruning.d.ts.map +0 -1
  1291. package/build/QueryParser.pruning.js +0 -195
  1292. package/build/QueryParser.pruning.js.map +0 -1
  1293. package/build/QueryParser.pruning.test.d.ts +0 -2
  1294. package/build/QueryParser.pruning.test.d.ts.map +0 -1
  1295. package/build/QueryParser.pruning.test.js +0 -106
  1296. package/build/QueryParser.pruning.test.js.map +0 -1
  1297. package/build/QueryParser.test.d.ts +0 -2
  1298. package/build/QueryParser.test.d.ts.map +0 -1
  1299. package/build/QueryParser.test.js +0 -27
  1300. package/build/QueryParser.test.js.map +0 -1
  1301. package/build/QueryVisitor.d.ts +0 -19
  1302. package/build/QueryVisitor.d.ts.map +0 -1
  1303. package/build/QueryVisitor.js +0 -106
  1304. package/build/QueryVisitor.js.map +0 -1
  1305. package/build/ReactionsManager.d.ts +0 -85
  1306. package/build/ReactionsManager.d.ts.map +0 -1
  1307. package/build/ReactionsManager.js +0 -315
  1308. package/build/ReactionsManager.js.map +0 -1
  1309. package/build/Todo.d.ts +0 -35
  1310. package/build/Todo.d.ts.map +0 -1
  1311. package/build/Todo.js +0 -73
  1312. package/build/Todo.js.map +0 -1
  1313. package/build/batchloaders/BatchLoader.d.ts +0 -14
  1314. package/build/batchloaders/BatchLoader.d.ts.map +0 -1
  1315. package/build/batchloaders/enumCollectionBatchLoader.d.ts +0 -7
  1316. package/build/batchloaders/enumCollectionBatchLoader.d.ts.map +0 -1
  1317. package/build/batchloaders/loadBatchLoader.d.ts +0 -17
  1318. package/build/batchloaders/loadBatchLoader.d.ts.map +0 -1
  1319. package/build/batchloaders/manyToManyBatchLoader.d.ts +0 -7
  1320. package/build/batchloaders/manyToManyBatchLoader.d.ts.map +0 -1
  1321. package/build/batchloaders/oneToManyBatchLoader.d.ts +0 -7
  1322. package/build/batchloaders/oneToManyBatchLoader.d.ts.map +0 -1
  1323. package/build/batchloaders/oneToOneBatchLoader.d.ts +0 -7
  1324. package/build/batchloaders/oneToOneBatchLoader.d.ts.map +0 -1
  1325. package/build/batchloaders/populateBatchLoader.d.ts +0 -13
  1326. package/build/batchloaders/populateBatchLoader.d.ts.map +0 -1
  1327. package/build/batchloaders/recursiveChildrenBatchLoader.d.ts +0 -7
  1328. package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +0 -1
  1329. package/build/batchloaders/recursiveM2mBatchLoader.d.ts +0 -7
  1330. package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +0 -1
  1331. package/build/batchloaders/recursiveParentsBatchLoader.d.ts +0 -7
  1332. package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +0 -1
  1333. package/build/changes.d.ts +0 -92
  1334. package/build/changes.d.ts.map +0 -1
  1335. package/build/config.d.ts +0 -250
  1336. package/build/config.d.ts.map +0 -1
  1337. package/build/config.test.d.ts +0 -2
  1338. package/build/config.test.d.ts.map +0 -1
  1339. package/build/config.test.js +0 -53
  1340. package/build/config.test.js.map +0 -1
  1341. package/build/configure.d.ts +0 -15
  1342. package/build/configure.d.ts.map +0 -1
  1343. package/build/dataloaders/fastWhereFilterHash.d.ts +0 -15
  1344. package/build/dataloaders/fastWhereFilterHash.d.ts.map +0 -1
  1345. package/build/dataloaders/fastWhereFilterHash.test.d.ts +0 -2
  1346. package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +0 -1
  1347. package/build/dataloaders/fastWhereFilterHash.test.js +0 -59
  1348. package/build/dataloaders/fastWhereFilterHash.test.js.map +0 -1
  1349. package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
  1350. package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
  1351. package/build/dataloaders/findCountDataLoader.d.ts +0 -16
  1352. package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
  1353. package/build/dataloaders/findDataLoader.d.ts +0 -76
  1354. package/build/dataloaders/findDataLoader.d.ts.map +0 -1
  1355. package/build/dataloaders/findIdsDataLoader.d.ts +0 -6
  1356. package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
  1357. package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
  1358. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
  1359. package/build/dataloaders/findPaginatedDataLoader.d.ts +0 -7
  1360. package/build/dataloaders/findPaginatedDataLoader.d.ts.map +0 -1
  1361. package/build/dataloaders/lensDataLoader.d.ts +0 -12
  1362. package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
  1363. package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
  1364. package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
  1365. package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
  1366. package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
  1367. package/build/defaults.d.ts +0 -54
  1368. package/build/defaults.d.ts.map +0 -1
  1369. package/build/driverApi.d.ts +0 -19
  1370. package/build/driverApi.d.ts.map +0 -1
  1371. package/build/driverApi.js +0 -17
  1372. package/build/driverApi.js.map +0 -1
  1373. package/build/drivers/Driver.d.ts +0 -26
  1374. package/build/drivers/Driver.d.ts.map +0 -1
  1375. package/build/drivers/Driver.js.map +0 -1
  1376. package/build/drivers/EntityWriter.d.ts +0 -64
  1377. package/build/drivers/EntityWriter.d.ts.map +0 -1
  1378. package/build/drivers/IdAssigner.d.ts +0 -48
  1379. package/build/drivers/IdAssigner.d.ts.map +0 -1
  1380. package/build/drivers/buildRawQuery.d.ts +0 -22
  1381. package/build/drivers/buildRawQuery.d.ts.map +0 -1
  1382. package/build/drivers/buildRawQuery.js +0 -153
  1383. package/build/drivers/buildRawQuery.js.map +0 -1
  1384. package/build/drivers/buildUtils.d.ts +0 -9
  1385. package/build/drivers/buildUtils.d.ts.map +0 -1
  1386. package/build/drivers/buildUtils.js +0 -88
  1387. package/build/drivers/buildUtils.js.map +0 -1
  1388. package/build/drivers/index.d.ts +0 -6
  1389. package/build/drivers/index.d.ts.map +0 -1
  1390. package/build/drivers/index.js.map +0 -1
  1391. package/build/fields.d.ts +0 -26
  1392. package/build/fields.d.ts.map +0 -1
  1393. package/build/getProperties.d.ts +0 -28
  1394. package/build/getProperties.d.ts.map +0 -1
  1395. package/build/index.d.ts +0 -133
  1396. package/build/index.d.ts.map +0 -1
  1397. package/build/json.d.ts +0 -77
  1398. package/build/json.d.ts.map +0 -1
  1399. package/build/k.d.ts +0 -2
  1400. package/build/k.d.ts.map +0 -1
  1401. package/build/keys.d.ts +0 -49
  1402. package/build/keys.d.ts.map +0 -1
  1403. package/build/keywords.d.ts +0 -5
  1404. package/build/keywords.d.ts.map +0 -1
  1405. package/build/keywords.js +0 -124
  1406. package/build/keywords.js.map +0 -1
  1407. package/build/loadHints.d.ts +0 -121
  1408. package/build/loadHints.d.ts.map +0 -1
  1409. package/build/loadHints.js +0 -129
  1410. package/build/loadHints.js.map +0 -1
  1411. package/build/loadLens.d.ts +0 -77
  1412. package/build/loadLens.d.ts.map +0 -1
  1413. package/build/loadLens.js +0 -320
  1414. package/build/loadLens.js.map +0 -1
  1415. package/build/logging/FactoryLogger.d.ts +0 -24
  1416. package/build/logging/FactoryLogger.d.ts.map +0 -1
  1417. package/build/logging/FieldLogger.d.ts +0 -27
  1418. package/build/logging/FieldLogger.d.ts.map +0 -1
  1419. package/build/logging/ReactionLogger.d.ts +0 -27
  1420. package/build/logging/ReactionLogger.d.ts.map +0 -1
  1421. package/build/newEntity.d.ts +0 -45
  1422. package/build/newEntity.d.ts.map +0 -1
  1423. package/build/newTestInstance.d.ts +0 -208
  1424. package/build/newTestInstance.d.ts.map +0 -1
  1425. package/build/normalizeHints.d.ts +0 -23
  1426. package/build/normalizeHints.d.ts.map +0 -1
  1427. package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
  1428. package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
  1429. package/build/plugins/PreloadPlugin.d.ts +0 -69
  1430. package/build/plugins/PreloadPlugin.d.ts.map +0 -1
  1431. package/build/plugins/PreloadPlugin.js.map +0 -1
  1432. package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
  1433. package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
  1434. package/build/preloading/canPreload.d.ts +0 -3
  1435. package/build/preloading/canPreload.d.ts.map +0 -1
  1436. package/build/preloading/partitionHint.d.ts +0 -5
  1437. package/build/preloading/partitionHint.d.ts.map +0 -1
  1438. package/build/reactiveHints.d.ts +0 -146
  1439. package/build/reactiveHints.d.ts.map +0 -1
  1440. package/build/reactiveHints.js +0 -509
  1441. package/build/reactiveHints.js.map +0 -1
  1442. package/build/relations/AbstractPropertyImpl.d.ts +0 -8
  1443. package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
  1444. package/build/relations/AbstractRelationImpl.d.ts +0 -41
  1445. package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
  1446. package/build/relations/AsyncProperty.d.ts +0 -36
  1447. package/build/relations/AsyncProperty.d.ts.map +0 -1
  1448. package/build/relations/AsyncReactiveField.d.ts +0 -41
  1449. package/build/relations/AsyncReactiveField.d.ts.map +0 -1
  1450. package/build/relations/Collection.d.ts +0 -33
  1451. package/build/relations/Collection.d.ts.map +0 -1
  1452. package/build/relations/CustomCollection.d.ts +0 -69
  1453. package/build/relations/CustomCollection.d.ts.map +0 -1
  1454. package/build/relations/CustomReference.d.ts +0 -71
  1455. package/build/relations/CustomReference.d.ts.map +0 -1
  1456. package/build/relations/EnumCollection.d.ts +0 -81
  1457. package/build/relations/EnumCollection.d.ts.map +0 -1
  1458. package/build/relations/LargeCollection.d.ts +0 -19
  1459. package/build/relations/LargeCollection.d.ts.map +0 -1
  1460. package/build/relations/LargeCollection.js.map +0 -1
  1461. package/build/relations/ManyToManyCollection.d.ts +0 -52
  1462. package/build/relations/ManyToManyCollection.d.ts.map +0 -1
  1463. package/build/relations/ManyToManyLargeCollection.d.ts +0 -31
  1464. package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
  1465. package/build/relations/ManyToOneReference.d.ts +0 -117
  1466. package/build/relations/ManyToOneReference.d.ts.map +0 -1
  1467. package/build/relations/OneToManyCollection.d.ts +0 -62
  1468. package/build/relations/OneToManyCollection.d.ts.map +0 -1
  1469. package/build/relations/OneToManyLargeCollection.d.ts +0 -26
  1470. package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
  1471. package/build/relations/OneToOneReference.d.ts +0 -93
  1472. package/build/relations/OneToOneReference.d.ts.map +0 -1
  1473. package/build/relations/PolymorphicReference.d.ts +0 -89
  1474. package/build/relations/PolymorphicReference.d.ts.map +0 -1
  1475. package/build/relations/ReactiveField.d.ts +0 -85
  1476. package/build/relations/ReactiveField.d.ts.map +0 -1
  1477. package/build/relations/ReactiveGetter.d.ts +0 -30
  1478. package/build/relations/ReactiveGetter.d.ts.map +0 -1
  1479. package/build/relations/ReactiveManyToMany.d.ts +0 -57
  1480. package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
  1481. package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -48
  1482. package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
  1483. package/build/relations/ReactiveReference.d.ts +0 -119
  1484. package/build/relations/ReactiveReference.d.ts.map +0 -1
  1485. package/build/relations/ReadOnlyCollection.d.ts +0 -19
  1486. package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
  1487. package/build/relations/RecursiveCollection.d.ts +0 -108
  1488. package/build/relations/RecursiveCollection.d.ts.map +0 -1
  1489. package/build/relations/RecursiveCycleError.d.ts +0 -13
  1490. package/build/relations/RecursiveCycleError.d.ts.map +0 -1
  1491. package/build/relations/Reference.d.ts +0 -35
  1492. package/build/relations/Reference.d.ts.map +0 -1
  1493. package/build/relations/Relation.d.ts +0 -14
  1494. package/build/relations/Relation.d.ts.map +0 -1
  1495. package/build/relations/hasAsyncMethod.d.ts +0 -27
  1496. package/build/relations/hasAsyncMethod.d.ts.map +0 -1
  1497. package/build/relations/hasManyDerived.d.ts +0 -22
  1498. package/build/relations/hasManyDerived.d.ts.map +0 -1
  1499. package/build/relations/hasManyThrough.d.ts +0 -10
  1500. package/build/relations/hasManyThrough.d.ts.map +0 -1
  1501. package/build/relations/hasOneDerived.d.ts +0 -12
  1502. package/build/relations/hasOneDerived.d.ts.map +0 -1
  1503. package/build/relations/hasOneThrough.d.ts +0 -10
  1504. package/build/relations/hasOneThrough.d.ts.map +0 -1
  1505. package/build/relations/hasProperty.d.ts +0 -50
  1506. package/build/relations/hasProperty.d.ts.map +0 -1
  1507. package/build/relations/index.d.ts +0 -30
  1508. package/build/relations/index.d.ts.map +0 -1
  1509. package/build/relations/index.js.map +0 -1
  1510. package/build/resurrection.d.ts +0 -10
  1511. package/build/resurrection.d.ts.map +0 -1
  1512. package/build/rules.d.ts +0 -123
  1513. package/build/rules.d.ts.map +0 -1
  1514. package/build/runtimeConfig.d.ts +0 -17
  1515. package/build/runtimeConfig.d.ts.map +0 -1
  1516. package/build/scopes.d.ts +0 -185
  1517. package/build/scopes.d.ts.map +0 -1
  1518. package/build/scopes.js +0 -302
  1519. package/build/scopes.js.map +0 -1
  1520. package/build/serde.d.ts +0 -277
  1521. package/build/serde.d.ts.map +0 -1
  1522. package/build/serde.js +0 -517
  1523. package/build/serde.js.map +0 -1
  1524. package/build/temporal.d.ts +0 -46
  1525. package/build/temporal.d.ts.map +0 -1
  1526. package/build/temporal.js +0 -66
  1527. package/build/temporal.js.map +0 -1
  1528. package/build/temporalMappers.d.ts +0 -25
  1529. package/build/temporalMappers.d.ts.map +0 -1
  1530. package/build/temporalMappers.js +0 -59
  1531. package/build/temporalMappers.js.map +0 -1
  1532. package/build/trusted.d.ts +0 -5
  1533. package/build/trusted.d.ts.map +0 -1
  1534. package/build/typeMap.d.ts +0 -68
  1535. package/build/typeMap.d.ts.map +0 -1
  1536. package/build/typeMap.js.map +0 -1
  1537. package/build/unnest.d.ts +0 -13
  1538. package/build/unnest.d.ts.map +0 -1
  1539. package/build/unnest.js +0 -85
  1540. package/build/unnest.js.map +0 -1
  1541. package/build/upsert.d.ts +0 -42
  1542. package/build/upsert.d.ts.map +0 -1
  1543. package/build/utils.d.ts +0 -60
  1544. package/build/utils.d.ts.map +0 -1
  1545. package/build/withLoaded.d.ts +0 -56
  1546. package/build/withLoaded.d.ts.map +0 -1
  1547. package/build/withLoaded.js +0 -76
  1548. package/build/withLoaded.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tables.cjs","names":["isCustomTableDefinition","safeKq","kq","getMetadata","RefExpr","fail","getCustomTableDefinition","BaseExpr","selectKeyBrand","kqDot","toIdOf","mapToDb","deferredCondition","buildValueCondition","isExpr","skipCondition","makeLike","taggedIdPrefix","groupBy","getConstructorFromTaggedId","maybeResolveReferenceToId","asNode","getBaseAndSelfMetas","getBaseSelfAndSubMetas","getBaseMeta","parseEntityFilter","parseValueFilter","isEntity"],"sources":["../../../src/queries/sql/Tables.ts"],"sourcesContent":["import { groupBy } from \"joist-utils\";\n// Load configure first: otherwise the built cjs/esm module graph evaluates relations/* before their\n// base classes exist (\"Class extends value undefined\").\nimport { getConstructorFromTaggedId } from \"src/configure.ts\";\nimport { type Entity, isEntity } from \"src/Entity.ts\";\nimport type { IdOf, MaybeAbstractEntityConstructor, TaggedId } from \"src/EntityManager.ts\";\nimport {\n type EntityMetadata,\n type Field,\n type LargeOneToManyField,\n type ManyToManyField,\n type OneToManyField,\n type OneToOneField,\n type PolymorphicField,\n type PolymorphicFieldComponent,\n getBaseAndSelfMetas,\n getBaseMeta,\n getBaseSelfAndSubMetas,\n getMetadata,\n} from \"src/EntityMetadata.ts\";\nimport { maybeResolveReferenceToId, taggedIdPrefix, toIdOf } from \"src/keys.ts\";\nimport type { SqlCondition } from \"src/queries/conditions.ts\";\nimport type { ParsedValueFilter } from \"src/queries/parsedConditions.ts\";\nimport { buildValueCondition } from \"src/queries/renderConditions.ts\";\nimport { skipCondition } from \"src/queries/skipCondition.ts\";\nimport {\n type CustomColumnInputs,\n type CustomTable,\n type CustomTableDefinition,\n type CustomTableFor,\n type CustomTableMgmt,\n getCustomTableDefinition,\n isCustomTableDefinition,\n} from \"src/queries/sql/custom.ts\";\nimport {\n BaseExpr,\n type Expr,\n type ExprContext,\n type ExprLike,\n type InnerJoin,\n type LeftJoin,\n RefExpr,\n type SqlFragment,\n asNode,\n deferredCondition,\n isExpr,\n selectKeyBrand,\n} from \"src/queries/sql/Expr.ts\";\nimport { kq, kqDot, safeKq } from \"src/queries/sql/keywords.ts\";\nimport type { QueryArg, QueryJoinInput, QuerySource } from \"src/queries/sql/query.ts\";\nimport { makeLike, mapToDb, parseEntityFilter, parseValueFilter } from \"src/queries/valueFilters.ts\";\nimport type { Column } from \"src/serde/columns.ts\";\nimport type { TypeInfo } from \"src/serde/TypeInfo.ts\";\nimport type { ColumnsOf, FieldsOf, FilterOf, TypeMap, TypeNameOf } from \"src/typeMap.ts\";\nimport { fail } from \"src/utils.ts\";\n\n/** Creates physical column expressions and relationship joins for `T`. */\nexport function table<T extends Entity>(cstr: MaybeAbstractEntityConstructor<T>): Table<T>;\n/** Creates a typed physical handle for a table declared with `declareTable`. */\nexport function table<TableName extends string, C extends CustomColumnInputs>(\n definition: CustomTableDefinition<TableName, C>,\n): CustomTable<C, TableName>;\n/**\n * Creates a table with an explicit type-level name, i.e. `table(Author, \"m\")` for a self-join.\n *\n * The name is the table's source key in `em.query`: two bare `table(Author)`s share the key `\"Author\"`,\n * so a left-joined mentor would also mark the mentee's columns nullable; a named alias has its own key.\n */\nexport function table<T extends Entity, Name extends string>(\n cstr: MaybeAbstractEntityConstructor<T>,\n name: Name,\n): Table<T, Name>;\n/** Creates a named custom-table handle for joins and self-joins. */\nexport function table<C extends CustomColumnInputs, TableName extends string, Name extends string>(\n definition: CustomTableDefinition<TableName, C>,\n name: Name,\n): CustomTable<C, Name>;\nexport function table<T extends Entity>(\n cstr: MaybeAbstractEntityConstructor<T> | CustomTableDefinition<string, CustomColumnInputs>,\n _name?: string,\n): unknown {\n // The name only exists at the type level; the SQL alias is still assigned by the query parser\n return isCustomTableDefinition(cstr) ? newCustomTableProxy(cstr) : newTableProxy(cstr);\n}\n\n/** Creates multiple physical table handles. */\nexport function tables<T extends readonly MaybeAbstractEntityConstructor<any>[]>(\n ...type: T\n): { [P in keyof T]: T[P] extends MaybeAbstractEntityConstructor<infer E extends Entity> ? Table<E> : never } {\n return type.map((t) => newTableProxy(t)) as any;\n}\n\n/**\n * The runtime management interface plus phantom type information for `em.query`.\n *\n * `__entity` lets `QueryRow` recover `T` for entity mode (you cannot `infer T` back out of a mapped\n * type), and `__name` is the table's source key (see `Expr`).\n */\nexport interface TableSourceBrand<Name extends string> extends TableSourceMgmt {\n readonly __name: Name;\n}\n\n/** A modeled table source that can hydrate its generated entity type. */\nexport interface TableBrand<T, Name extends string> extends TableSourceBrand<Name>, TableMgmt {\n readonly __entity: T;\n}\n\n/**\n * A physical table for `T`: one expression per SQL column, with relationship names as join factories.\n * Selecting the table itself retains entity hydration; selecting columns returns decoded SQL values.\n *\n * Unlike an Alias, a Table is an explicit SQL source, not a place to bind in an em.find relationship\n * tree. I.e. with `a = table(Author)`, `{ from: a }` registers that handle in the query's scope.\n * Its columns already know their physical column and codec, but their SQL name still depends on the\n * query: the same Author handle might be `a` in one query and `a1` in a nested query.\n *\n * Each predicate occurrence renders through ExprContext.aliasFor using the current scope (or an\n * enclosing scope for a correlation). Rendering returns SQL, ordered bindings, and source references\n * together. A comparison records both sides' references; templates and subqueries carry their\n * references too. Join pruning follows these references and join dependencies, rather than guessing\n * which tables a SQL string mentions. It also accounts for select/order/group expressions and keep.\n *\n * I.e. if a joined Author is used only by `a.firstName.eq(name)`, supplying undefined removes that\n * predicate and lets the unused join prune. Both APIs share this undefined-condition pruning rule;\n * they differ in how they get the references: Alias resolves domain conditions against a relationship\n * tree, while Table renders SQL expressions against explicit sources. Neither caches SQL names on\n * the reusable handle or predicate, so one parse cannot overwrite another parse's bindings.\n *\n * `Name` is the table's type-level source key, defaulting to the entity's own type name, so a\n * LEFT-joined SmallPublisher does not make Publisher columns nullable. `table(Author, \"m\")`\n * gives a self-join table its own key.\n */\nexport type Table<T extends Entity, Name extends string = TableNameOf<T>> = TableShape<T, Name> &\n (\"where\" extends keyof TableShape<T, Name>\n ? {}\n : {\n /** Builds an AND condition from local domain fields, without implicit joins. */\n where(filter: TableFilter<T>): SqlCondition;\n }) &\n (\"column\" extends keyof TableShape<T, Name>\n ? {}\n : {\n /**\n * References a column Joist does not model, i.e. `a.column<string>(\"ts_search\")`.\n *\n * The expression keeps this table's source key, so it is scope-checked and nullified by a\n * LEFT join like any modeled column. `R` is unchecked: it asserts what the database returns,\n * and the value is not decoded through a codec.\n *\n * A schema that has its own `column` column or relation keeps that meaning, and then has no\n * escape hatch for unmodeled columns.\n */\n column<R = unknown>(column: string): Expr<R, Name>;\n });\n\n/** Domain filters for fields stored on this physical table, without relationship traversal. */\nexport type TableFilter<T extends Entity> = {\n [K in LocalFieldNames<T> & keyof FieldsOf<T>]?: FieldsOf<T>[K] extends {\n kind: \"m2o\";\n type: infer U extends Entity;\n nullable: infer N;\n }\n ? TableReferenceFilter<U, N extends undefined ? null : never>\n : FilterOf<T>[K];\n};\n\n/** Generated column ownership excludes CTI base fields and polymorphic components. */\ntype LocalFieldNames<T> = ColumnsOf<T>[keyof ColumnsOf<T>] extends { fieldName: infer F }\n ? Extract<F, keyof FilterOf<T>>\n : never;\n\n/** The owning-reference subset of find filters that only compares a foreign key. */\ntype TableReferenceFilter<T extends Entity, N> =\n | T\n | IdOf<T>\n | readonly (T | IdOf<T>)[]\n | boolean\n | N\n | undefined\n | { ne: T | IdOf<T> | N | undefined };\n\n/** Maps an entity's columns and relationships to expressions and joins for one typed table handle. */\ntype TableShape<T extends Entity, Name extends string> = {\n readonly [tableMgmt]: TableBrand<T, Name>;\n} & {\n // Add typed expressions for each physical column, including its property name for array selects.\n [P in keyof ColumnsOf<T> & string]: P extends \"id\"\n ? EntityColumn<T, never, Name, P>\n : ColumnsOf<T>[P] extends { entity: infer U extends Entity; nullable: infer N }\n ? ReferenceColumn<U, N extends true ? null : never, Name, P>\n : ColumnsOf<T>[P] extends { type: infer V; nullable: infer N }\n ? PrimitiveColumn<V, N extends true ? null : never, Name, P>\n : never;\n} & {\n // Add relation join sugar such as `a.books.as(b)` for fields that are not physical columns.\n [\n P in keyof FieldsOf<T> as P extends keyof ColumnsOf<T>\n ? never\n : FieldsOf<T>[P] extends { kind: \"m2o\" | \"poly\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\" }\n ? P\n : never\n ]: FieldsOf<T>[P] extends { kind: \"m2o\"; type: infer U extends Entity; nullable: infer N }\n ? ReferenceJoin<U, N extends undefined ? null : never, Name>\n : FieldsOf<T>[P] extends { kind: \"poly\"; type: infer U extends Entity; nullable: infer N }\n ? PolyReference<U, N extends undefined ? null : never, Name>\n : FieldsOf<T>[P] extends { kind: \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\"; type: infer U extends Entity }\n ? CollectionJoin<U>\n : never;\n} & {\n // Add subtype join sugar such as `p.smallPublisher(sp)` for entities whose __type root is T.\n // CTI joins the physical tables by ID; STI self-joins the shared table by ID plus its discriminator.\n [\n K in keyof TypeMap as TypeMap[K] extends {\n entityType: infer U extends Entity & { __type: { 0: TypeNameOf<T>; 1: string } };\n }\n ? Uncapitalize<TypeNameOf<U> & string>\n : never\n ]: TypeMap[K] extends { entityType: infer U extends Entity } ? SubtypeJoin<U> : never;\n};\n\n/** Keeps explicit base and subtype sources independent, with generic entities untracked. */\ntype TableNameOf<T> = T extends { __type: { 0: string } } ? TypeNameOf<T> & string : string;\n\n/** Provides fluent methods for creating joins through an owning reference relationship. */\nexport interface ReferenceJoin<U extends Entity, N extends null | never, Src extends string = string> {\n /**\n * Required reference joins like `b.author.as(a)` are INNER unless `b` is already a LEFT-joined alias.\n * Nullable references are always LEFT joined.\n */\n as<A extends TableFor<U>>(other: A): [N] extends [never] ? DefaultReferenceJoin<A, Src> : LeftJoin<A>;\n inner<A extends TableFor<U>>(other: A): InnerJoin<A>;\n left<A extends TableFor<U>>(other: A): LeftJoin<A>;\n}\n\n/** The source of a default reference join, used to inherit optional paths within each query. */\nexport const referenceJoinSource: unique symbol = Symbol(\"joist.referenceJoinSource\");\n\n/** A required reference defaults to INNER unless its source was LEFT joined. */\nexport type DefaultReferenceJoin<A, Src extends string> = InnerJoin<A> & {\n readonly [referenceJoinSource]: Src;\n};\n\n/** Any table whose entity is (a subtype of) `U`, i.e. what a relation join factory accepts. */\nexport type TableFor<U> = { readonly [tableMgmt]: TableBrand<U, string> };\n\n/**\n * A collection relation (o2m/o2o/m2m) as a join factory: `a.books.as(b)` returns the same\n * `{ left: b, on: ... }` entry the expanded form writes, with the FK condition built from metadata, so\n * join-list inference, nullability, scope checking, and pruning are unchanged and both forms mix freely.\n *\n * `as` binds the joined alias, the same way em.find's `{ books: { as: b } }` does. The default is LEFT\n * (a collection may be empty, and a LEFT join never filters rows, so pruning it is always safe);\n * `.inner(b)` opts into filtering. An m2m entry carries a hidden second join through the join table,\n * which the parser expands; the pair prunes together.\n */\nexport interface CollectionJoin<U extends Entity> {\n as<A extends TableFor<U>>(other: A): LeftJoin<A>;\n inner<A extends TableFor<U>>(other: A): InnerJoin<A>;\n left<A extends TableFor<U>>(other: A): LeftJoin<A>;\n}\n\n/** A named subtype join, defaulting to LEFT because a root row may belong to another subtype. */\ninterface SubtypeJoin<U extends Entity> extends CollectionJoin<U> {\n <A extends TableFor<U>>(other: A): LeftJoin<A>;\n}\n\n/**\n * A physical FK column expression (`b.authorId` selects/compares the `author_id` FK) plus a join factory\n * (`b.authorId.as(a)` joins). The default join kind follows physical column nullability:\n * a NOT NULL FK is INNER unless its source was LEFT joined, a nullable one is LEFT, and the row type reflects it.\n */\nexport interface ReferenceColumn<\n U extends Entity,\n N extends null | never,\n Src extends string,\n Key extends string = string,\n>\n extends EntityColumn<U, N, Src, Key>, ReferenceJoin<U, N, Src> {}\n\n/**\n * A polymorphic reference: condition methods (each resolving the component column from the value), plus\n * a join factory that picks the component from the argument's entity, i.e. `c.parent.as(a)` joins\n * through `parent_author_id`, like an explicit join with `on: c.parent.eq(a.id)`.\n */\nexport interface PolyReference<\n U extends Entity,\n N extends null | never,\n Src extends string = string,\n> extends ReferenceJoin<U, N, Src> {\n eq(value: U | TaggedId | ExprLike<IdOf<U> | null> | null | undefined): SqlCondition;\n ne(value: U | TaggedId | ExprLike<IdOf<U> | null> | null | undefined): SqlCondition;\n in(values: readonly (U | TaggedId)[] | ExprLike<IdOf<U> | null> | undefined): SqlCondition;\n /** Applies an IN condition unless the list is empty or undefined. */\n inNonEmpty(values: readonly (U | TaggedId)[] | undefined): SqlCondition;\n}\n\nexport interface PrimitiveColumn<\n V,\n N extends null | never,\n Src extends string = string,\n Key extends string = string,\n> extends Expr<V | N, Src> {\n readonly [selectKeyBrand]: Key;\n eq(value: V | ExprLike<V | N> | N | undefined): SqlCondition;\n ne(value: V | ExprLike<V | N> | N | undefined): SqlCondition;\n in(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition;\n /** Applies an IN condition unless the list is empty or undefined. */\n inNonEmpty(values: readonly (V | null)[] | undefined): SqlCondition;\n nin(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition;\n gt(value: V | ExprLike<V | N> | undefined): SqlCondition;\n gte(value: V | ExprLike<V | N> | undefined): SqlCondition;\n lt(value: V | ExprLike<V | N> | undefined): SqlCondition;\n lte(value: V | ExprLike<V | N> | undefined): SqlCondition;\n like(value: V | undefined): SqlCondition;\n ilike(value: V | undefined): SqlCondition;\n search(value: V | undefined): SqlCondition;\n between(v1: V | undefined, v2: V | undefined): SqlCondition;\n // need to move to ArrayColumn\n // ...added the `string` to support jsonb contains like `WHERE profile @> '{\"age\": 25}'`\n // Ideally this would go in a JsonbColumn\n contains(value: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;\n ncontains(value: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;\n overlaps(value: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;\n noverlaps(value: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;\n\n /**\n * Adds a JSON path existence condition, using the `@?` operator.\n *\n * Any values should be embedded directly within the `jsonPath`, because postgres does not\n * support parameterized JSON path expressions. The entire `jsonPath` is treated as a parameter,\n * so this is safe from SQL injection.\n */\n pathExists(jsonPath: string | undefined): SqlCondition;\n\n /**\n * Adds a JSON path predicate condition, using the `@@` operator.\n *\n * Any values should be embedded directly within the `jsonPath`, because postgres does not\n * support parameterized JSON path expressions. The entire `jsonPath` is treated as a parameter,\n * so this is safe from SQL injection.\n */\n pathIsTrue(jsonPath: string | undefined): SqlCondition;\n\n /**\n * Add `exp` to the query, which should include the operator & expression and any\n * bound parameters (but not include the column name).\n *\n * We use knex-style placeholders, i.e. `?` and `\\\\?` to escape question marks, i.e.\n *\n * ```ts\n * a.address.raw(\"@\\\\? ?\", ['$.street ? (@ == \"rr2\")'])`\n * ```\n */\n raw(exp: string, bindings: readonly any[] | undefined): SqlCondition;\n}\n\nexport interface EntityColumn<\n T,\n N extends null | never = never,\n Src extends string = string,\n Key extends string = string,\n> extends Expr<IdOf<T> | N, Src> {\n readonly [selectKeyBrand]: Key;\n /** Produces the tagged ID as SQL text, preserving NULL and the column's source. */\n taggedId(): Expr<string | N, Src>;\n eq(value: T | IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n ne(value: T | IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n // Adding `| null` for GraphQL support\n in<\n F extends QuerySource,\n const S extends ExprLike<IdOf<T> | null>,\n J extends QueryJoinInput = [],\n Name extends string = \"?\",\n >(\n value: QueryArg<F, S, J, Name>,\n ): SqlCondition;\n in(value: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n /** Applies an IN condition unless the list is empty, null, or undefined. */\n inNonEmpty(value: readonly (T | IdOf<T> | null)[] | null | undefined): SqlCondition;\n nin(value: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n gt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n gte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n lt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n lte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n raw(exp: string, bindings: readonly any[] | undefined): SqlCondition;\n}\n\nexport const tableMgmt = Symbol(\"tableMgmt\");\nexport const inQueryCondition: unique symbol = Symbol(\"joist.inQueryCondition\");\n\n/** Defers a direct IN query literal to query.ts, which owns query pruning and SQL generation. */\nexport interface InQueryCondition {\n readonly [inQueryCondition]: { column: BaseExpr; query: object };\n}\n\nexport function getTableMgmt<T extends Entity>(table: TableFor<T>): TableMgmt;\nexport function getTableMgmt(table: CustomTableFor): CustomTableMgmt;\nexport function getTableMgmt(table: TableFor<Entity> | CustomTableFor): TableSourceMgmt;\nexport function getTableMgmt(table: TableFor<Entity> | CustomTableFor): TableSourceMgmt {\n return table[tableMgmt];\n}\n\n/** The identity SQL queries bind a table by, plus its original entity metadata. */\nexport interface TableSourceMgmt {\n tableName: string;\n schema?: string;\n}\n\n/** Qualifies custom tables without changing SQL for tables on the default search path. */\nexport function tableSqlName(table: TableSourceMgmt): string {\n return table.schema ? `${safeKq(table.schema)}.${kq(table.tableName)}` : kq(table.tableName);\n}\n\n/** The identity and generated metadata of a modeled entity table. */\nexport interface TableMgmt extends TableSourceMgmt {\n /**\n * The metadata this table was created with, i.e. `table(TaskNew)` keeps `taskNewMeta`.\n *\n * It cannot be re-derived from `tableName`: STI subtypes share their base's table (`Task`, `TaskNew`,\n * and `TaskOld` are all `tasks`), so a `getMetadataForTable(\"tasks\")` lookup can only return the base\n * `Task`, and the alias would lose its subtype identity for explicit subtype joins and entity hydration.\n */\n meta: EntityMetadata;\n}\n\n/** Returns the metadata for the entity that `table` is bound to. */\nexport function getTableMetadata<T extends Entity>(table: TableFor<T>): EntityMetadata<T> {\n const mgmt = table[tableMgmt];\n return mgmt.meta as EntityMetadata<T>;\n}\n\nexport function newTableProxy<T extends Entity>(cstr: MaybeAbstractEntityConstructor<T>): Table<T> {\n const meta = getMetadata(cstr);\n // The identity SQL queries bind to a source, retaining STI subtype metadata.\n const mgmt: TableMgmt = { tableName: meta.tableName, meta };\n const subtypes = new Map(meta.subTypes.map((m) => [m.type[0].toLowerCase() + m.type.slice(1), m]));\n const proxy: any = new Proxy(cstr, {\n /** Create a physical column expression or a relation join factory. */\n get(_, key: PropertyKey): any {\n if (key === tableMgmt) {\n return mgmt;\n }\n if (typeof key !== \"string\") return undefined;\n const descriptor = Object.hasOwn(meta.columns, key) ? meta.columns[key] : undefined;\n if (descriptor) {\n return descriptor.idMetadata\n ? new EntityColumnImpl(meta, descriptor, mgmt, key)\n : new PrimitiveColumnImpl(meta, descriptor, mgmt, key);\n }\n const subtype = subtypes.get(key);\n if (subtype) {\n const join = new SubtypeJoinImpl(proxy, subtype);\n return Object.assign(join.as.bind(join), {\n as: join.as.bind(join),\n inner: join.inner.bind(join),\n left: join.left.bind(join),\n });\n }\n const relation = physicalRelation(meta, key);\n if (key === \"where\" && !isRelation(meta.allFields[key])) {\n return (filter: TableFilter<T>) => tableWhere(mgmt, filter);\n }\n if (key === \"column\" && !isRelation(meta.allFields[key])) {\n return (column: string) => new RefExpr(mgmt, column);\n }\n const field = relation ?? fail(`No physical field ${key} on ${cstr.name}; join its base table explicitly`);\n switch (field.kind) {\n case \"m2o\":\n return new ReferenceJoinImpl(new EntityColumnImpl(meta, field.serde.columns[0].column, mgmt));\n case \"poly\":\n return new PolyReferenceImpl(meta, mgmt, field);\n case \"o2m\":\n case \"o2o\":\n case \"lo2m\":\n return new OneToManyJoinImpl(proxy, field);\n case \"m2m\":\n return new ManyToManyJoinImpl(proxy, field);\n default:\n throw new Error(`Unsupported table field kind ${field.kind}`);\n }\n },\n\n has(_, key) {\n return (\n key === tableMgmt ||\n (typeof key === \"string\" &&\n (key === \"where\" ||\n key === \"column\" ||\n Object.hasOwn(meta.columns, key) ||\n !!physicalRelation(meta, key) ||\n subtypes.has(key)))\n );\n },\n });\n return proxy;\n}\n\n/** Creates a typed handle for primitive columns declared outside Joist codegen. */\nfunction newCustomTableProxy<TableName extends string, C extends CustomColumnInputs>(\n definition: CustomTableDefinition<TableName, C>,\n): CustomTable<C, TableName> {\n const { tableName, schema, columns } = getCustomTableDefinition(definition);\n const mgmt: CustomTableMgmt = { tableName, schema, columns };\n return new Proxy(\n {},\n {\n get(_, key: PropertyKey): unknown {\n if (key === tableMgmt) return mgmt;\n if (typeof key !== \"string\") return undefined;\n const descriptor = Object.hasOwn(columns, key) ? columns[key] : undefined;\n if (descriptor) return new PrimitiveColumnImpl(undefined, descriptor, mgmt, key);\n if (key === \"column\") return (column: string) => new RefExpr(mgmt, column);\n return fail(`Custom table ${tableName} has no declared column ${key}; use .column(\"${key}\")`);\n },\n has(_, key): boolean {\n return key === tableMgmt || key === \"column\" || (typeof key === \"string\" && Object.hasOwn(columns, key));\n },\n },\n ) as CustomTable<C, TableName>;\n}\n\nexport function isTable(obj: unknown): obj is Table<any, any> | CustomTableFor {\n return (typeof obj === \"function\" || (typeof obj === \"object\" && obj !== null)) && tableMgmt in obj;\n}\n\n/** Whether a physical table has generated entity metadata. */\nexport function isEntityTable(obj: unknown): obj is Table<any, any> {\n return isTable(obj) && \"meta\" in obj[tableMgmt];\n}\n\n/** Whether a physical table has columns declared through `declareTable`. */\nexport function isCustomTable(obj: unknown): obj is CustomTableFor {\n return isTable(obj) && \"columns\" in obj[tableMgmt];\n}\n\n/**\n * A physical table column implements `Expr`: it renders as `alias.\"column\"`, decodes result\n * values through the column's shared scalar codec, and inherits aggregate methods from `BaseExpr`.\n */\nclass TableColumn extends BaseExpr {\n public constructor(\n readonly meta: EntityMetadata | undefined,\n readonly column: Column,\n readonly mgmt: TableSourceMgmt,\n private readonly selectKey: string = column.columnName,\n ) {\n super();\n }\n\n get [selectKeyBrand](): string {\n return this.selectKey;\n }\n\n /** Author.id, Book.authorId, and Comment.parentAuthorId use the same Author ID domain. */\n get outputType(): TypeInfo | undefined {\n return this.column.outputType;\n }\n\n get sqlNullable(): boolean | undefined {\n return this.column.sqlNullable;\n }\n\n get sqlSource(): object {\n return this.mgmt;\n }\n\n toSql(ctx: ExprContext): SqlFragment {\n const alias = ctx.aliasFor(this.mgmt);\n return { sql: kqDot(alias, this.column.columnName), bindings: [], refs: [alias] };\n }\n\n /** Decodes result-set values with public PK/FK ids, while hydration keeps internal tagged ids. */\n decode(value: unknown): unknown {\n if (value === null || value === undefined) return value;\n const idMeta = this.idMetadata;\n if (idMeta) return toIdOf(idMeta, this.column.mapFromDb(value) as TaggedId | undefined);\n return this.column.mapFromDb(value);\n }\n\n encode(value: unknown): unknown {\n return this.column.mapToDb(value);\n }\n\n /** Identifies the ID domain of a primary key, FK, or physical polymorphic component. */\n get idMetadata(): EntityMetadata | undefined {\n return this.column.idMetadata?.();\n }\n\n /** Encodes literals when the condition is created and renders with each query's aliases. */\n addCondition(value: ParsedValueFilter<unknown>): SqlCondition {\n const encoded = mapToDb(this.column, value);\n return deferredCondition((ctx) => {\n const left = this.toSql(ctx);\n const [sql, bindings] = buildValueCondition(left.sql, encoded);\n return { sql, bindings: [...left.bindings, ...bindings], refs: left.refs };\n });\n }\n\n /** Renders raw operators against the same quoted column SQL as other expressions. */\n protected addRawCondition(exp: string, bindings: readonly any[]): SqlCondition {\n return deferredCondition((ctx) => {\n const left = this.toSql(ctx);\n return { sql: `${left.sql} ${exp}`, bindings: [...left.bindings, ...bindings], refs: left.refs };\n });\n }\n\n /** Uses column filter conversions for literals and shared comparisons for expressions and null equality. */\n protected compare(op: string, value: unknown): SqlCondition {\n if (value === undefined || isExpr(value) || (value === null && (op === \"=\" || op === \"!=\"))) {\n return super.compare(op, value);\n }\n // Primitive relational comparisons historically bind null through mapToDb.\n const kind = ({ \"=\": \"eq\", \"!=\": \"ne\", \">\": \"gt\", \">=\": \"gte\", \"<\": \"lt\", \"<=\": \"lte\" } as const)[op];\n if (!kind) return fail(`Invalid operator ${op}`);\n return this.addCondition({ kind, value });\n }\n\n /**\n * Compares this column to another expression.\n *\n * Table columns, aggregates, subquery columns, and `sql` templates use the expression context\n * to render their complete SQL.\n * Negated array operators wrap the complete comparison in NOT.\n */\n protected compareToExpr(op: string, value: ExprLike<any>, negate = false): SqlCondition {\n if (negate) {\n return deferredCondition((ctx) => {\n const comparison = ctx.conditionToSql(this.compareToExpr(op, value))!;\n return { ...comparison, sql: `NOT (${comparison.sql})` };\n });\n }\n return super.compare(op, value);\n }\n}\n\nclass PrimitiveColumnImpl<V, N extends null | never> extends TableColumn implements PrimitiveColumn<V, N> {\n between(v1: V | undefined, v2: V | undefined): SqlCondition {\n if (v1 === undefined || v2 === undefined) return skipCondition;\n return this.addCondition({ kind: \"between\", value: [v1, v2] });\n }\n\n like(value: V | undefined): SqlCondition {\n if (value === undefined) return skipCondition;\n return this.addCondition({ kind: \"like\", value });\n }\n\n ilike(value: V | undefined): SqlCondition {\n if (value === undefined) return skipCondition;\n return this.addCondition({ kind: \"ilike\", value });\n }\n\n search(value: V | undefined): SqlCondition {\n // Check !value so that empty strings are pruned\n if (!value) return skipCondition;\n return this.addCondition({ kind: \"ilike\", value: makeLike(value) });\n }\n\n in(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition {\n if (values === undefined) return skipCondition;\n if (isExpr(values)) return this.inList(\"IN\", values);\n if (values.includes(null)) {\n const isNull = this.addCondition({ kind: \"is-null\" });\n const hasValue = this.addCondition({ kind: \"in\", value: values.filter((v) => v !== null) });\n return { or: [isNull, hasValue] };\n } else {\n return this.addCondition({ kind: \"in\", value: values as V[] });\n }\n }\n\n /** Applies an IN condition unless the list is empty or undefined. */\n inNonEmpty(values: readonly (V | null)[] | undefined): SqlCondition {\n return values === undefined || values.length === 0 ? skipCondition : this.in(values);\n }\n\n nin(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition {\n if (values === undefined) return skipCondition;\n if (isExpr(values)) return this.inList(\"NOT IN\", values);\n return this.addCondition({ kind: \"nin\", value: values.filter((v) => v !== null) as V[] });\n }\n\n // V will already be an array\n contains(v1: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition {\n if (v1 === undefined) return skipCondition;\n if (isExpr(v1)) return this.compareToExpr(\"@>\", v1);\n return this.addCondition({ kind: \"contains\", value: v1 as any });\n }\n\n // V will already be an array\n ncontains(v1: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition {\n if (v1 === undefined) return skipCondition;\n if (isExpr(v1)) return this.compareToExpr(\"@>\", v1, true);\n return this.addCondition({ kind: \"ncontains\", value: v1 as any });\n }\n\n // V will already be an array\n overlaps(v1: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition {\n if (v1 === undefined) return skipCondition;\n if (isExpr(v1)) return this.compareToExpr(\"&&\", v1);\n return this.addCondition({ kind: \"overlaps\", value: v1 as any });\n }\n\n noverlaps(v1: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition {\n if (v1 === undefined) return skipCondition;\n if (isExpr(v1)) return this.compareToExpr(\"&&\", v1, true);\n return this.addCondition({ kind: \"noverlaps\", value: v1 as any });\n }\n\n pathExists(jsonPath: string | undefined): SqlCondition {\n if (jsonPath === undefined) return skipCondition;\n return this.addCondition({ kind: \"jsonPathExists\", value: jsonPath });\n }\n\n pathIsTrue(jsonPath: string | undefined): SqlCondition {\n if (jsonPath === undefined) return skipCondition;\n return this.addCondition({ kind: \"jsonPathPredicate\", value: jsonPath });\n }\n\n raw(exp: string, bindings: readonly any[] | undefined): SqlCondition {\n if (bindings === undefined) return skipCondition;\n return this.addRawCondition(exp, bindings);\n }\n}\n\nclass EntityColumnImpl<T> extends TableColumn implements EntityColumn<T> {\n /** Uses the ID target's tag, including for foreign keys and polymorphic components. */\n taggedId(): Expr<string, string> {\n return new TaggedIdExpr(this) as unknown as Expr<string, string>;\n }\n\n in<\n F extends QuerySource,\n const S extends ExprLike<IdOf<T> | null>,\n J extends QueryJoinInput = [],\n Name extends string = \"?\",\n >(values: QueryArg<F, S, J, Name>): SqlCondition;\n in(values: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;\n in(values: object | readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n if (values === undefined) {\n return skipCondition;\n } else if (values === null) {\n throw new Error(\"Unsupported\");\n } else if (isExpr(values)) {\n return this.inList(\"IN\", values);\n } else if (!Array.isArray(values)) {\n return { [inQueryCondition]: { column: this, query: values } } as unknown as SqlCondition;\n } else if (values.includes(null)) {\n // Like `PrimitiveColumn.in`, split `[a1, null]` into `IS NULL OR IN (...)`\n const isNull = this.addCondition({ kind: \"is-null\" });\n const hasValue = this.addCondition({ kind: \"in\", value: values.filter((v) => v !== null) as any });\n return { or: [isNull, hasValue] };\n } else {\n return this.addCondition({ kind: \"in\", value: values as any });\n }\n }\n\n /** Applies an IN condition unless the list is empty, null, or undefined. */\n inNonEmpty(values: readonly (T | IdOf<T> | null)[] | null | undefined): SqlCondition {\n return values === null || values === undefined || values.length === 0 ? skipCondition : this.in(values);\n }\n\n nin(values: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n if (values === undefined) {\n return skipCondition;\n } else if (values === null) {\n throw new Error(\"Unsupported\");\n } else if (isExpr(values)) {\n return this.inList(\"NOT IN\", values);\n } else {\n return this.addCondition({ kind: \"nin\", value: values.filter((v) => v !== null) as any });\n }\n }\n\n gt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.compareId(\">\", \"gt\", value);\n }\n\n gte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.compareId(\">=\", \"gte\", value);\n }\n\n lt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.compareId(\"<\", \"lt\", value);\n }\n\n lte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.compareId(\"<=\", \"lte\", value);\n }\n\n raw(exp: string, bindings: readonly any[] | undefined): SqlCondition {\n if (bindings === undefined) return skipCondition;\n return this.addRawCondition(exp, bindings);\n }\n\n /** Joins via this FK, inheriting the source's LEFT join for otherwise required references. */\n as(other: object): object {\n return {\n ...this.joinEntry(this.sqlNullable === false ? \"inner\" : \"left\", other),\n [referenceJoinSource]: this.mgmt,\n };\n }\n\n inner(other: object): object {\n return this.joinEntry(\"inner\", other);\n }\n\n left(other: object): object {\n return this.joinEntry(\"left\", other);\n }\n\n private joinEntry(kind: JoinKind, other: object): object {\n return { [kind]: requireTable(other), on: this.eq(idColumnOf(other)) };\n }\n\n private compareId(op: string, kind: \"gt\" | \"gte\" | \"lt\" | \"lte\", value: unknown): SqlCondition {\n if (value === undefined) return skipCondition;\n if (value === null) throw new Error(\"Unsupported\");\n if (isExpr(value)) return this.compareToExpr(op, value);\n return this.addCondition({ kind, value: value as any });\n }\n}\n\n/** Converts a physical ID to SQL text so nested SQL expressions also receive the tag. */\nclass TaggedIdExpr extends BaseExpr {\n constructor(private column: TableColumn) {\n super();\n }\n\n toSql(ctx: ExprContext): SqlFragment {\n const fragment = this.column.toSql(ctx);\n const meta = this.column.idMetadata ?? fail(\"Tagged IDs require an ID column\");\n return {\n ...fragment,\n sql: `(? || ${fragment.sql}::text)`,\n bindings: [taggedIdPrefix(meta), ...fragment.bindings],\n };\n }\n\n get outputType(): TypeInfo {\n return { dbType: \"text\", domain: String, arrayElementSafe: true };\n }\n\n get sqlNullable(): boolean | undefined {\n return this.column.sqlNullable;\n }\n\n get sqlSource(): object {\n return this.column.sqlSource;\n }\n}\n\nclass PolyReferenceImpl<T extends Entity> {\n public constructor(\n private meta: EntityMetadata,\n private mgmt: TableMgmt,\n private field: PolymorphicField,\n ) {}\n\n /** Compares to a tagged id, an entity, or another table's id column, which picks the component (`c.parent.eq(a.id)`). */\n eq(value: T | TaggedId | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.addEqOrNe(\"eq\", value);\n }\n\n ne(value: T | TaggedId | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition {\n return this.addEqOrNe(\"ne\", value);\n }\n\n // We required tagged ids for polys\n in(values: readonly (T | TaggedId)[] | ExprLike<IdOf<T> | null> | undefined): SqlCondition {\n if (values === undefined) return skipCondition;\n if (isExpr(values)) return this.inSubquery(values);\n // Split up the ids by constructor\n const idsByConstructor = groupBy(values, (id) => getConstructorFromTaggedId(maybeResolveReferenceToId(id)!).name);\n // Or together `parent_book_id in (1,2,3) OR parent_author_id IN (4,5,6)`\n return {\n or: Object.entries(idsByConstructor).map(([cstrName, ids]) => {\n const comp =\n this.field.components.find((p) => p.otherMetadata().cstr.name === cstrName) ??\n fail(`No component for ${cstrName}`);\n return this.componentColumn(comp).addCondition({ kind: \"in\", value: ids });\n }),\n };\n }\n\n /** Applies an IN condition unless the list is empty or undefined. */\n inNonEmpty(values: readonly (T | TaggedId)[] | undefined): SqlCondition {\n return values === undefined || values.length === 0 ? skipCondition : this.in(values);\n }\n\n /** Joins via this poly's component, inheriting the source's LEFT join when the poly is required. */\n as(other: object): object {\n return { ...this.joinEntry(this.field.required ? \"inner\" : \"left\", other), [referenceJoinSource]: this.mgmt };\n }\n\n inner(other: object): object {\n return this.joinEntry(\"inner\", other);\n }\n\n left(other: object): object {\n return this.joinEntry(\"left\", other);\n }\n\n private joinEntry(kind: JoinKind, other: object): object {\n return { [kind]: requireTable(other), on: this.eq(idColumnOf(other) as any) };\n }\n\n /**\n * i.e. `c.parent.in(query({ from: a, ..., select: a.id }))`: like `eq` against a table column, the\n * subquery's agreed ID domain picks the component, i.e. authors pick `parent_author_id`.\n */\n private inSubquery(values: ExprLike<any>): SqlCondition {\n // Only actual subqueries expose this getter; importing query.ts would create a load-order cycle.\n const selected = asNode(values).subquerySelect;\n const outputType = selected?.outputType;\n let otherMeta = outputType?.idMeta;\n if (!otherMeta) {\n // Ordinary reads can select an unknown key serde. Compounds validate codecs before exposing a select.\n if (!outputType && selected instanceof TableColumn) {\n otherMeta = selected.idMetadata;\n }\n if (!otherMeta) {\n return fail(\n selected instanceof TableColumn\n ? `${this.field.fieldName} \\`in\\` needs an id or FK column, got ${selected.column.columnName}`\n : `${this.field.fieldName} is polymorphic, so \\`in\\` needs a subquery selecting an id or FK column`,\n );\n }\n }\n const comp =\n this.field.components.find((p) => getBaseAndSelfMetas(otherMeta).includes(p.otherMetadata())) ??\n fail(`${this.field.fieldName} has no component for ${otherMeta.type}`);\n return this.componentColumn(comp).in(values);\n }\n\n private addEqOrNe(\n kind: \"eq\" | \"ne\",\n value: T | TaggedId | ExprLike<IdOf<T> | null> | null | undefined,\n ): SqlCondition {\n if (value === undefined) {\n return skipCondition;\n } else if (value instanceof TableColumn) {\n // Joining through the poly, i.e. `c.parent.eq(a.id)`: the other table column's ID domain picks the component\n const otherMeta = value.idMetadata ?? fail(`${this.field.fieldName} needs an id or FK column`);\n const comp =\n this.field.components.find((p) => getBaseAndSelfMetas(otherMeta).includes(p.otherMetadata())) ??\n fail(`${this.field.fieldName} has no component for ${otherMeta.type}`);\n return this.componentColumn(comp)[kind](value);\n } else if (isExpr(value)) {\n return fail(\n `${this.field.fieldName} is polymorphic, so it can only be compared to tagged ids or entity table columns`,\n );\n } else if (value === null) {\n // We can AND each of the components as many conditions\n const value = kind === \"eq\" ? ({ kind: \"is-null\" } as const) : ({ kind: \"not-null\" } as const);\n return {\n and: this.field.components.map((p) => this.componentColumn(p).addCondition(value)),\n };\n } else {\n // If we have a value, we can find the component\n const comp =\n this.field.components.find(\n (p) => p.otherMetadata().cstr === getConstructorFromTaggedId(maybeResolveReferenceToId(value) as string),\n ) || fail(`Could not find component for ${value}`);\n return this.componentColumn(comp)[kind](value);\n }\n }\n\n /** Returns the physical FK expression for one polymorphic target. */\n private componentColumn(comp: PolymorphicFieldComponent): EntityColumnImpl<T> {\n const descriptor = comp.column;\n return new EntityColumnImpl<T>(this.meta, descriptor, this.mgmt);\n }\n}\n\n/**\n * Marks a sugar join entry whose target is a *collection* (o2m/m2m), which filter soft-deletes like\n * em.find's \"collections filter out soft-deletes, but m2o/o2o references still return them\"; see\n * `QueryParser.addSoftDeleteCondition`'s call site. Reference joins and explicit joins are unmarked.\n */\nexport const collectionJoin: unique symbol = Symbol(\"joist.collectionJoin\");\n\n/** Marks a sugar m2m join entry (`a.tags.as(t)`) with its hidden join-table join; `parseQuery` expands it. */\nexport const m2mJoinTable: unique symbol = Symbol(\"joist.m2mJoinTable\");\n\nexport interface M2mJoinTable {\n handle: JoinTableHandle;\n on: SqlCondition;\n}\n\n/** The runtime identity of an m2m join table in a query, i.e. `authors_to_tags`; it has no entity. */\nexport class JoinTableHandle {\n constructor(readonly joinTableName: string) {}\n}\n\ntype JoinKind = \"inner\" | \"left\";\n\n/**\n * The `as`/`inner`/`left` join factory for collection relations, i.e. `a.books.as(b)` joins with the\n * relation's default kind (LEFT: a collection may be empty) and `.inner`/`.left` override. m2o/poly\n * relations implement the same three methods on their join factories. Physical FKs such as\n * `b.author_id` are expressions that also expose a join factory.\n */\nabstract class CollectionJoinImpl {\n as(other: object): object {\n return this.joinEntry(\"left\", requireTable(other));\n }\n\n inner(other: object): object {\n return this.joinEntry(\"inner\", requireTable(other));\n }\n\n left(other: object): object {\n return this.joinEntry(\"left\", requireTable(other));\n }\n\n protected abstract joinEntry(kind: JoinKind, other: TableFor<Entity>): object;\n}\n\n/** Joins a named subtype explicitly; only STI subtype sugar adds a discriminator to its ON. */\nclass SubtypeJoinImpl extends CollectionJoinImpl {\n constructor(\n private proxy: TableFor<Entity>,\n private subtype: EntityMetadata,\n ) {\n super();\n }\n\n protected joinEntry(kind: JoinKind, other: TableFor<Entity>): object {\n if (getTableMetadata(other) !== this.subtype) {\n return fail(`Expected table(${this.subtype.type}) for the explicit subtype join`);\n }\n const on = idColumnOf(this.proxy).eq(idColumnOf(other));\n if (this.subtype.inheritanceType !== \"sti\" || this.subtype.stiDiscriminatorValue === undefined) {\n return { [kind]: other, on };\n }\n const base = this.subtype.baseTypes.find((m) => m.stiDiscriminatorField !== undefined)!;\n const columnName = base.fields[base.stiDiscriminatorField!].serde!.columns[0].columnName;\n // Discriminator values are database enum ids, not domain enum values to pass through the field codec.\n const discriminator = deferredCondition((ctx) => {\n const alias = ctx.aliasFor(other[tableMgmt]);\n return {\n sql: `${kqDot(alias, columnName)} = ?`,\n bindings: [this.subtype.stiDiscriminatorValue],\n refs: [alias],\n };\n });\n return { [kind]: other, on: { and: [on, discriminator] } };\n }\n}\n\n/** An o2m/lo2m/o2o relation: the ON is the other side's FK (an m2o or a poly component) back to our id. */\nclass OneToManyJoinImpl extends CollectionJoinImpl {\n constructor(\n private proxy: any,\n private field: OneToManyField | LargeOneToManyField | OneToOneField,\n ) {\n super();\n }\n\n protected joinEntry(kind: JoinKind, other: TableFor<Entity>): object {\n const { field } = this;\n const otherMeta = getTableMetadata(other);\n const descriptor = Object.values(otherMeta.columns).find((column) => column.columnName === field.otherColumnName);\n if (!descriptor) {\n return fail(\n `Cannot join ${getTableMetadata(this.proxy).type}.${field.fieldName} to ${otherMeta.type}: ` +\n `${field.otherColumnName} is not physically present on ${otherMeta.tableName}; join the base table explicitly`,\n );\n }\n const column = new EntityColumnImpl(otherMeta, descriptor, other[tableMgmt]);\n const on = column.eq(this.proxy.id);\n // Collections (o2m/lo2m) filter soft-deletes like em.find; o2o references resolve them\n const filtered = field.kind === \"o2m\" ? field.softDeletes !== \"include\" : field.kind === \"lo2m\";\n return { [kind]: other, on, [collectionJoin]: filtered };\n }\n}\n\n/**\n * An m2m relation, i.e. `a.tags.as(t)`.\n *\n * The entry's own ON is `t.id = att.tag_id`, and the hidden `[m2mJoinTable]` half is\n * `att.author_id = a.id`; only the target's ON references the join table, so reference pruning keeps\n * or drops the pair together. Both are deferred conditions: the join table has no entity metadata, so\n * its alias only exists once the parser registers it.\n */\nclass ManyToManyJoinImpl extends CollectionJoinImpl {\n constructor(\n private proxy: any,\n private field: ManyToManyField,\n ) {\n super();\n }\n\n protected joinEntry(kind: JoinKind, other: TableFor<Entity>): object {\n const { joinTableName, columnNames } = this.field;\n const [ourColumn, otherColumn] = columnNames;\n const jt = new JoinTableHandle(joinTableName);\n const ourId = idColumnOf(this.proxy);\n const otherId = idColumnOf(other);\n const jtOn = deferredCondition((ctx) => {\n const jtAlias = ctx.aliasFor(jt);\n const id = ourId.toSql(ctx);\n return { sql: `${kqDot(jtAlias, ourColumn)} = ${id.sql}`, bindings: id.bindings, refs: id.refs };\n });\n const on = deferredCondition((ctx) => {\n const jtAlias = ctx.aliasFor(jt);\n const id = otherId.toSql(ctx);\n return { sql: `${id.sql} = ${kqDot(jtAlias, otherColumn)}`, bindings: id.bindings, refs: [...id.refs, jtAlias] };\n });\n const filtered = this.field.softDeletes !== \"include\";\n return {\n [kind]: other,\n on,\n [collectionJoin]: filtered,\n [m2mJoinTable]: { handle: jt, on: jtOn } satisfies M2mJoinTable,\n };\n }\n}\n\n/** Fails fast when a join factory is passed something other than a table. */\nfunction requireTable(other: object): TableFor<Entity> {\n if (!isEntityTable(other)) return fail(`Expected an entity table to join, got ${other}`);\n return other;\n}\n\n/** The id column of a joined table, for building sugar ON conditions. */\nfunction idColumnOf(other: object): TableColumn {\n return (other as any).id;\n}\n\n/** Keeps relation names join-only; physical FK columns retain expression methods. */\nclass ReferenceJoinImpl {\n constructor(private column: EntityColumnImpl<unknown>) {}\n\n as(other: object): object {\n return this.column.as(other);\n }\n\n inner(other: object): object {\n return this.column.inner(other);\n }\n\n left(other: object): object {\n return this.column.left(other);\n }\n}\n\n/** Identifies domain relationship keys exposed alongside physical columns. */\nfunction isRelation(field: Field | undefined): boolean {\n return field !== undefined && [\"m2o\", \"poly\", \"o2m\", \"lo2m\", \"m2m\", \"o2o\"].includes(field.kind);\n}\n\n/** Resolves relationship sugar only from domain fields owned by this physical table. */\nfunction physicalRelation(meta: EntityMetadata, key: string): Field | undefined {\n const owners = [meta, ...getBaseSelfAndSubMetas(getBaseMeta(meta))];\n const owner = owners.find((owner) => owner.tableName === meta.tableName && Object.hasOwn(owner.fields, key));\n const field = owner?.fields[key];\n if (!isRelation(field)) return undefined;\n // I.e. TaskNew.copiedFrom uses Task's original FK domain, not its specialized TaskNew target.\n if (field?.kind === \"m2o\" || field?.kind === \"poly\") {\n if (!field.serde.columns.every((binding) => Object.values(meta.columns).includes(binding.column))) return undefined;\n return field.kind === \"poly\"\n ? {\n ...field,\n components: field.components.map((component) => ({\n column: component.column,\n columnName: component.columnName,\n otherFieldName: component.otherFieldName,\n otherMetadata: component.column.idMetadata!,\n })),\n }\n : field;\n }\n return field;\n}\n\n/**\n * Maps local domain fields to table-bound conditions, encoding each leaf once.\n * I.e. Author.firstName uses the first_name column but resolves its alias in each query scope.\n * Collections, polymorphic references, and inherited nonlocal fields require explicit expressions.\n */\nexport function tableWhere(mgmt: TableMgmt, filter: object): SqlCondition {\n const { meta } = mgmt;\n const conditions: SqlCondition[] = [];\n if (!filter || typeof filter !== \"object\" || Array.isArray(filter)) {\n throw new Error(`Expected a domain field filter for ${meta.type}`);\n }\n for (const [key, value] of Object.entries(filter)) {\n // CTI allFields.id points at the base key; the subtype has its own physical key.\n const field = key === \"id\" ? meta.fields.id : Object.hasOwn(meta.allFields, key) ? meta.allFields[key] : undefined;\n if (\n !field ||\n ![\"primaryKey\", \"primitive\", \"enum\", \"m2o\"].includes(field.kind) ||\n !field.serde ||\n field.serde.columns.length !== 1 ||\n !field.serde.columns.every((binding) => Object.values(meta.columns).includes(binding.column))\n ) {\n throw new Error(`Unsupported table filter field ${meta.type}.${key}; use an explicit join`);\n }\n const column = new TableColumn(meta, field.serde.columns[0].column, mgmt);\n let leaves: ParsedValueFilter<unknown>[];\n if (field.kind === \"m2o\") {\n if (!isTableReferenceFilter(value)) {\n throw new Error(`Unsupported table reference filter ${meta.type}.${key}; use an entity or ID`);\n }\n const parsed = parseEntityFilter(field.otherMetadata(), value);\n if (parsed?.kind === \"join\") {\n throw new Error(`Unsupported table reference filter ${meta.type}.${key}; use an entity or ID`);\n }\n leaves = parsed ? [parsed] : [];\n } else {\n leaves = parseValueFilter(value);\n }\n for (const leaf of leaves) {\n if (leaf.kind === \"between\" && leaf.value.some((v) => v === undefined)) {\n if (leaf.value[0] !== undefined) conditions.push(column.addCondition({ kind: \"gte\", value: leaf.value[0] }));\n if (leaf.value[1] !== undefined) conditions.push(column.addCondition({ kind: \"lte\", value: leaf.value[1] }));\n } else if (leaf.kind === \"in\" && !column.column.isArray && leaf.value.includes(null)) {\n conditions.push({\n or: [\n column.addCondition({ kind: \"is-null\" }),\n column.addCondition({ kind: \"in\", value: leaf.value.filter((v) => v !== null) }),\n ],\n });\n } else {\n conditions.push(column.addCondition(leaf));\n }\n }\n }\n return conditions.length === 0 ? skipCondition : { and: conditions };\n}\n\n/**\n * Converts relationship filters into conditions on the joined table's id column.\n * I.e. Author's `join: { books: \"b:1\" }` filters Book.id to 1; `{ books: book }` uses book.id.\n * Lists match any supplied ID, `true` requires a Book, and `null` or `false` requires no Book.\n */\nexport function tableEntityWhere(mgmt: TableMgmt, value: unknown): SqlCondition {\n const parsed = parseEntityFilter(mgmt.meta, value);\n if (!parsed) return skipCondition;\n if (parsed.kind === \"join\") fail(`Expected an entity or ID filter for ${mgmt.meta.type}`);\n return new TableColumn(mgmt.meta, mgmt.meta.fields.id.serde!.columns[0].column, mgmt).addCondition(parsed);\n}\n\n/** Rejects nested relations, scopes, and aliases before parsing owning-reference values. */\nfunction isTableReferenceFilter(value: unknown): boolean {\n if (value == null || typeof value === \"boolean\" || isTableReferenceValue(value)) return true;\n if (Array.isArray(value)) return value.every(isTableReferenceValue);\n if (typeof value === \"object\" && Object.keys(value).length === 1 && Object.hasOwn(value, \"ne\")) {\n const excluded = (value as { ne: unknown }).ne;\n return excluded == null || isTableReferenceValue(excluded);\n }\n return false;\n}\n\n/** Recognizes an entity or public ID without accepting another filter object. */\nfunction isTableReferenceValue(value: unknown): boolean {\n return typeof value === \"string\" || typeof value === \"number\" || isEntity(value);\n}\n"],"mappings":"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"}
@@ -0,0 +1,322 @@
1
+ import { ColumnsOf, FieldsOf, FilterOf, TypeMap, TypeNameOf } from "../../typeMap.cjs";
2
+ import { SqlCondition } from "../conditions.cjs";
3
+ import { EntityMetadata } from "../../EntityMetadata.cjs";
4
+ import { CustomColumnInputs, CustomTable, CustomTableDefinition, CustomTableFor, CustomTableMgmt } from "./custom.cjs";
5
+ import { QueryArg, QueryJoinInput, QuerySource } from "./query.cjs";
6
+ import { BaseExpr, Expr, ExprLike, InnerJoin, LeftJoin, selectKeyBrand } from "./Expr.cjs";
7
+ import { IdOf, MaybeAbstractEntityConstructor, TaggedId } from "../../EntityManager.cjs";
8
+ import { Entity } from "../../Entity.cjs";
9
+ //#region src/queries/sql/Tables.d.ts
10
+ /** Creates physical column expressions and relationship joins for `T`. */
11
+ declare function table<T extends Entity>(cstr: MaybeAbstractEntityConstructor<T>): Table<T>;
12
+ /** Creates a typed physical handle for a table declared with `declareTable`. */
13
+ declare function table<TableName extends string, C extends CustomColumnInputs>(definition: CustomTableDefinition<TableName, C>): CustomTable<C, TableName>;
14
+ /**
15
+ * Creates a table with an explicit type-level name, i.e. `table(Author, "m")` for a self-join.
16
+ *
17
+ * The name is the table's source key in `em.query`: two bare `table(Author)`s share the key `"Author"`,
18
+ * so a left-joined mentor would also mark the mentee's columns nullable; a named alias has its own key.
19
+ */
20
+ declare function table<T extends Entity, Name extends string>(cstr: MaybeAbstractEntityConstructor<T>, name: Name): Table<T, Name>;
21
+ /** Creates a named custom-table handle for joins and self-joins. */
22
+ declare function table<C extends CustomColumnInputs, TableName extends string, Name extends string>(definition: CustomTableDefinition<TableName, C>, name: Name): CustomTable<C, Name>;
23
+ /** Creates multiple physical table handles. */
24
+ declare function tables<T extends readonly MaybeAbstractEntityConstructor<any>[]>(...type: T): { [P in keyof T]: T[P] extends MaybeAbstractEntityConstructor<infer E extends Entity> ? Table<E> : never; };
25
+ /**
26
+ * The runtime management interface plus phantom type information for `em.query`.
27
+ *
28
+ * `__entity` lets `QueryRow` recover `T` for entity mode (you cannot `infer T` back out of a mapped
29
+ * type), and `__name` is the table's source key (see `Expr`).
30
+ */
31
+ interface TableSourceBrand<Name extends string> extends TableSourceMgmt {
32
+ readonly __name: Name;
33
+ }
34
+ /** A modeled table source that can hydrate its generated entity type. */
35
+ interface TableBrand<T, Name extends string> extends TableSourceBrand<Name>, TableMgmt {
36
+ readonly __entity: T;
37
+ }
38
+ /**
39
+ * A physical table for `T`: one expression per SQL column, with relationship names as join factories.
40
+ * Selecting the table itself retains entity hydration; selecting columns returns decoded SQL values.
41
+ *
42
+ * Unlike an Alias, a Table is an explicit SQL source, not a place to bind in an em.find relationship
43
+ * tree. I.e. with `a = table(Author)`, `{ from: a }` registers that handle in the query's scope.
44
+ * Its columns already know their physical column and codec, but their SQL name still depends on the
45
+ * query: the same Author handle might be `a` in one query and `a1` in a nested query.
46
+ *
47
+ * Each predicate occurrence renders through ExprContext.aliasFor using the current scope (or an
48
+ * enclosing scope for a correlation). Rendering returns SQL, ordered bindings, and source references
49
+ * together. A comparison records both sides' references; templates and subqueries carry their
50
+ * references too. Join pruning follows these references and join dependencies, rather than guessing
51
+ * which tables a SQL string mentions. It also accounts for select/order/group expressions and keep.
52
+ *
53
+ * I.e. if a joined Author is used only by `a.firstName.eq(name)`, supplying undefined removes that
54
+ * predicate and lets the unused join prune. Both APIs share this undefined-condition pruning rule;
55
+ * they differ in how they get the references: Alias resolves domain conditions against a relationship
56
+ * tree, while Table renders SQL expressions against explicit sources. Neither caches SQL names on
57
+ * the reusable handle or predicate, so one parse cannot overwrite another parse's bindings.
58
+ *
59
+ * `Name` is the table's type-level source key, defaulting to the entity's own type name, so a
60
+ * LEFT-joined SmallPublisher does not make Publisher columns nullable. `table(Author, "m")`
61
+ * gives a self-join table its own key.
62
+ */
63
+ type Table<T extends Entity, Name extends string = TableNameOf<T>> = TableShape<T, Name> & ("where" extends keyof TableShape<T, Name> ? {} : {
64
+ /** Builds an AND condition from local domain fields, without implicit joins. */
65
+ where(filter: TableFilter<T>): SqlCondition;
66
+ }) & ("column" extends keyof TableShape<T, Name> ? {} : {
67
+ /**
68
+ * References a column Joist does not model, i.e. `a.column<string>("ts_search")`.
69
+ *
70
+ * The expression keeps this table's source key, so it is scope-checked and nullified by a
71
+ * LEFT join like any modeled column. `R` is unchecked: it asserts what the database returns,
72
+ * and the value is not decoded through a codec.
73
+ *
74
+ * A schema that has its own `column` column or relation keeps that meaning, and then has no
75
+ * escape hatch for unmodeled columns.
76
+ */
77
+ column<R = unknown>(column: string): Expr<R, Name>;
78
+ });
79
+ /** Domain filters for fields stored on this physical table, without relationship traversal. */
80
+ type TableFilter<T extends Entity> = { [K in LocalFieldNames<T> & keyof FieldsOf<T>]?: FieldsOf<T>[K] extends {
81
+ kind: "m2o";
82
+ type: infer U extends Entity;
83
+ nullable: infer N;
84
+ } ? TableReferenceFilter<U, N extends undefined ? null : never> : FilterOf<T>[K]; };
85
+ /** Generated column ownership excludes CTI base fields and polymorphic components. */
86
+ type LocalFieldNames<T> = ColumnsOf<T>[keyof ColumnsOf<T>] extends {
87
+ fieldName: infer F;
88
+ } ? Extract<F, keyof FilterOf<T>> : never;
89
+ /** The owning-reference subset of find filters that only compares a foreign key. */
90
+ type TableReferenceFilter<T extends Entity, N> = T | IdOf<T> | readonly (T | IdOf<T>)[] | boolean | N | undefined | {
91
+ ne: T | IdOf<T> | N | undefined;
92
+ };
93
+ /** Maps an entity's columns and relationships to expressions and joins for one typed table handle. */
94
+ type TableShape<T extends Entity, Name extends string> = {
95
+ readonly [tableMgmt]: TableBrand<T, Name>;
96
+ } & { [P in keyof ColumnsOf<T> & string]: P extends "id" ? EntityColumn<T, never, Name, P> : ColumnsOf<T>[P] extends {
97
+ entity: infer U extends Entity;
98
+ nullable: infer N;
99
+ } ? ReferenceColumn<U, N extends true ? null : never, Name, P> : ColumnsOf<T>[P] extends {
100
+ type: infer V;
101
+ nullable: infer N;
102
+ } ? PrimitiveColumn<V, N extends true ? null : never, Name, P> : never; } & { [P in keyof FieldsOf<T> as P extends keyof ColumnsOf<T> ? never : FieldsOf<T>[P] extends {
103
+ kind: "m2o" | "poly" | "o2m" | "lo2m" | "m2m" | "o2o";
104
+ } ? P : never]: FieldsOf<T>[P] extends {
105
+ kind: "m2o";
106
+ type: infer U extends Entity;
107
+ nullable: infer N;
108
+ } ? ReferenceJoin<U, N extends undefined ? null : never, Name> : FieldsOf<T>[P] extends {
109
+ kind: "poly";
110
+ type: infer U extends Entity;
111
+ nullable: infer N;
112
+ } ? PolyReference<U, N extends undefined ? null : never, Name> : FieldsOf<T>[P] extends {
113
+ kind: "o2m" | "lo2m" | "m2m" | "o2o";
114
+ type: infer U extends Entity;
115
+ } ? CollectionJoin<U> : never; } & { [K in keyof TypeMap as TypeMap[K] extends {
116
+ entityType: infer U extends Entity & {
117
+ __type: {
118
+ 0: TypeNameOf<T>;
119
+ 1: string;
120
+ };
121
+ };
122
+ } ? Uncapitalize<TypeNameOf<U> & string> : never]: TypeMap[K] extends {
123
+ entityType: infer U extends Entity;
124
+ } ? SubtypeJoin<U> : never; };
125
+ /** Keeps explicit base and subtype sources independent, with generic entities untracked. */
126
+ type TableNameOf<T> = T extends {
127
+ __type: {
128
+ 0: string;
129
+ };
130
+ } ? TypeNameOf<T> & string : string;
131
+ /** Provides fluent methods for creating joins through an owning reference relationship. */
132
+ interface ReferenceJoin<U extends Entity, N extends null | never, Src extends string = string> {
133
+ /**
134
+ * Required reference joins like `b.author.as(a)` are INNER unless `b` is already a LEFT-joined alias.
135
+ * Nullable references are always LEFT joined.
136
+ */
137
+ as<A extends TableFor<U>>(other: A): [N] extends [never] ? DefaultReferenceJoin<A, Src> : LeftJoin<A>;
138
+ inner<A extends TableFor<U>>(other: A): InnerJoin<A>;
139
+ left<A extends TableFor<U>>(other: A): LeftJoin<A>;
140
+ }
141
+ /** The source of a default reference join, used to inherit optional paths within each query. */
142
+ declare const referenceJoinSource: unique symbol;
143
+ /** A required reference defaults to INNER unless its source was LEFT joined. */
144
+ type DefaultReferenceJoin<A, Src extends string> = InnerJoin<A> & {
145
+ readonly [referenceJoinSource]: Src;
146
+ };
147
+ /** Any table whose entity is (a subtype of) `U`, i.e. what a relation join factory accepts. */
148
+ type TableFor<U> = {
149
+ readonly [tableMgmt]: TableBrand<U, string>;
150
+ };
151
+ /**
152
+ * A collection relation (o2m/o2o/m2m) as a join factory: `a.books.as(b)` returns the same
153
+ * `{ left: b, on: ... }` entry the expanded form writes, with the FK condition built from metadata, so
154
+ * join-list inference, nullability, scope checking, and pruning are unchanged and both forms mix freely.
155
+ *
156
+ * `as` binds the joined alias, the same way em.find's `{ books: { as: b } }` does. The default is LEFT
157
+ * (a collection may be empty, and a LEFT join never filters rows, so pruning it is always safe);
158
+ * `.inner(b)` opts into filtering. An m2m entry carries a hidden second join through the join table,
159
+ * which the parser expands; the pair prunes together.
160
+ */
161
+ interface CollectionJoin<U extends Entity> {
162
+ as<A extends TableFor<U>>(other: A): LeftJoin<A>;
163
+ inner<A extends TableFor<U>>(other: A): InnerJoin<A>;
164
+ left<A extends TableFor<U>>(other: A): LeftJoin<A>;
165
+ }
166
+ /** A named subtype join, defaulting to LEFT because a root row may belong to another subtype. */
167
+ interface SubtypeJoin<U extends Entity> extends CollectionJoin<U> {
168
+ <A extends TableFor<U>>(other: A): LeftJoin<A>;
169
+ }
170
+ /**
171
+ * A physical FK column expression (`b.authorId` selects/compares the `author_id` FK) plus a join factory
172
+ * (`b.authorId.as(a)` joins). The default join kind follows physical column nullability:
173
+ * a NOT NULL FK is INNER unless its source was LEFT joined, a nullable one is LEFT, and the row type reflects it.
174
+ */
175
+ interface ReferenceColumn<U extends Entity, N extends null | never, Src extends string, Key extends string = string> extends EntityColumn<U, N, Src, Key>, ReferenceJoin<U, N, Src> {}
176
+ /**
177
+ * A polymorphic reference: condition methods (each resolving the component column from the value), plus
178
+ * a join factory that picks the component from the argument's entity, i.e. `c.parent.as(a)` joins
179
+ * through `parent_author_id`, like an explicit join with `on: c.parent.eq(a.id)`.
180
+ */
181
+ interface PolyReference<U extends Entity, N extends null | never, Src extends string = string> extends ReferenceJoin<U, N, Src> {
182
+ eq(value: U | TaggedId | ExprLike<IdOf<U> | null> | null | undefined): SqlCondition;
183
+ ne(value: U | TaggedId | ExprLike<IdOf<U> | null> | null | undefined): SqlCondition;
184
+ in(values: readonly (U | TaggedId)[] | ExprLike<IdOf<U> | null> | undefined): SqlCondition;
185
+ /** Applies an IN condition unless the list is empty or undefined. */
186
+ inNonEmpty(values: readonly (U | TaggedId)[] | undefined): SqlCondition;
187
+ }
188
+ interface PrimitiveColumn<V, N extends null | never, Src extends string = string, Key extends string = string> extends Expr<V | N, Src> {
189
+ readonly [selectKeyBrand]: Key;
190
+ eq(value: V | ExprLike<V | N> | N | undefined): SqlCondition;
191
+ ne(value: V | ExprLike<V | N> | N | undefined): SqlCondition;
192
+ in(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition;
193
+ /** Applies an IN condition unless the list is empty or undefined. */
194
+ inNonEmpty(values: readonly (V | null)[] | undefined): SqlCondition;
195
+ nin(values: readonly (V | null)[] | ExprLike<V | null> | undefined): SqlCondition;
196
+ gt(value: V | ExprLike<V | N> | undefined): SqlCondition;
197
+ gte(value: V | ExprLike<V | N> | undefined): SqlCondition;
198
+ lt(value: V | ExprLike<V | N> | undefined): SqlCondition;
199
+ lte(value: V | ExprLike<V | N> | undefined): SqlCondition;
200
+ like(value: V | undefined): SqlCondition;
201
+ ilike(value: V | undefined): SqlCondition;
202
+ search(value: V | undefined): SqlCondition;
203
+ between(v1: V | undefined, v2: V | undefined): SqlCondition;
204
+ contains(value: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;
205
+ ncontains(value: string | V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;
206
+ overlaps(value: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;
207
+ noverlaps(value: V | PrimitiveColumn<V, any> | N | undefined): SqlCondition;
208
+ /**
209
+ * Adds a JSON path existence condition, using the `@?` operator.
210
+ *
211
+ * Any values should be embedded directly within the `jsonPath`, because postgres does not
212
+ * support parameterized JSON path expressions. The entire `jsonPath` is treated as a parameter,
213
+ * so this is safe from SQL injection.
214
+ */
215
+ pathExists(jsonPath: string | undefined): SqlCondition;
216
+ /**
217
+ * Adds a JSON path predicate condition, using the `@@` operator.
218
+ *
219
+ * Any values should be embedded directly within the `jsonPath`, because postgres does not
220
+ * support parameterized JSON path expressions. The entire `jsonPath` is treated as a parameter,
221
+ * so this is safe from SQL injection.
222
+ */
223
+ pathIsTrue(jsonPath: string | undefined): SqlCondition;
224
+ /**
225
+ * Add `exp` to the query, which should include the operator & expression and any
226
+ * bound parameters (but not include the column name).
227
+ *
228
+ * We use knex-style placeholders, i.e. `?` and `\\?` to escape question marks, i.e.
229
+ *
230
+ * ```ts
231
+ * a.address.raw("@\\? ?", ['$.street ? (@ == "rr2")'])`
232
+ * ```
233
+ */
234
+ raw(exp: string, bindings: readonly any[] | undefined): SqlCondition;
235
+ }
236
+ interface EntityColumn<T, N extends null | never = never, Src extends string = string, Key extends string = string> extends Expr<IdOf<T> | N, Src> {
237
+ readonly [selectKeyBrand]: Key;
238
+ /** Produces the tagged ID as SQL text, preserving NULL and the column's source. */
239
+ taggedId(): Expr<string | N, Src>;
240
+ eq(value: T | IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
241
+ ne(value: T | IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
242
+ in<F extends QuerySource, const S extends ExprLike<IdOf<T> | null>, J extends QueryJoinInput = [], Name extends string = "?">(value: QueryArg<F, S, J, Name>): SqlCondition;
243
+ in(value: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
244
+ /** Applies an IN condition unless the list is empty, null, or undefined. */
245
+ inNonEmpty(value: readonly (T | IdOf<T> | null)[] | null | undefined): SqlCondition;
246
+ nin(value: readonly (T | IdOf<T> | null)[] | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
247
+ gt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
248
+ gte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
249
+ lt(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
250
+ lte(value: IdOf<T> | ExprLike<IdOf<T> | null> | null | undefined): SqlCondition;
251
+ raw(exp: string, bindings: readonly any[] | undefined): SqlCondition;
252
+ }
253
+ declare const tableMgmt: unique symbol;
254
+ declare const inQueryCondition: unique symbol;
255
+ /** Defers a direct IN query literal to query.ts, which owns query pruning and SQL generation. */
256
+ interface InQueryCondition {
257
+ readonly [inQueryCondition]: {
258
+ column: BaseExpr;
259
+ query: object;
260
+ };
261
+ }
262
+ declare function getTableMgmt<T extends Entity>(table: TableFor<T>): TableMgmt;
263
+ declare function getTableMgmt(table: CustomTableFor): CustomTableMgmt;
264
+ declare function getTableMgmt(table: TableFor<Entity> | CustomTableFor): TableSourceMgmt;
265
+ /** The identity SQL queries bind a table by, plus its original entity metadata. */
266
+ interface TableSourceMgmt {
267
+ tableName: string;
268
+ schema?: string;
269
+ }
270
+ /** Qualifies custom tables without changing SQL for tables on the default search path. */
271
+ declare function tableSqlName(table: TableSourceMgmt): string;
272
+ /** The identity and generated metadata of a modeled entity table. */
273
+ interface TableMgmt extends TableSourceMgmt {
274
+ /**
275
+ * The metadata this table was created with, i.e. `table(TaskNew)` keeps `taskNewMeta`.
276
+ *
277
+ * It cannot be re-derived from `tableName`: STI subtypes share their base's table (`Task`, `TaskNew`,
278
+ * and `TaskOld` are all `tasks`), so a `getMetadataForTable("tasks")` lookup can only return the base
279
+ * `Task`, and the alias would lose its subtype identity for explicit subtype joins and entity hydration.
280
+ */
281
+ meta: EntityMetadata;
282
+ }
283
+ /** Returns the metadata for the entity that `table` is bound to. */
284
+ declare function getTableMetadata<T extends Entity>(table: TableFor<T>): EntityMetadata<T>;
285
+ declare function newTableProxy<T extends Entity>(cstr: MaybeAbstractEntityConstructor<T>): Table<T>;
286
+ declare function isTable(obj: unknown): obj is Table<any, any> | CustomTableFor;
287
+ /** Whether a physical table has generated entity metadata. */
288
+ declare function isEntityTable(obj: unknown): obj is Table<any, any>;
289
+ /** Whether a physical table has columns declared through `declareTable`. */
290
+ declare function isCustomTable(obj: unknown): obj is CustomTableFor;
291
+ /**
292
+ * Marks a sugar join entry whose target is a *collection* (o2m/m2m), which filter soft-deletes like
293
+ * em.find's "collections filter out soft-deletes, but m2o/o2o references still return them"; see
294
+ * `QueryParser.addSoftDeleteCondition`'s call site. Reference joins and explicit joins are unmarked.
295
+ */
296
+ declare const collectionJoin: unique symbol;
297
+ /** Marks a sugar m2m join entry (`a.tags.as(t)`) with its hidden join-table join; `parseQuery` expands it. */
298
+ declare const m2mJoinTable: unique symbol;
299
+ interface M2mJoinTable {
300
+ handle: JoinTableHandle;
301
+ on: SqlCondition;
302
+ }
303
+ /** The runtime identity of an m2m join table in a query, i.e. `authors_to_tags`; it has no entity. */
304
+ declare class JoinTableHandle {
305
+ readonly joinTableName: string;
306
+ constructor(joinTableName: string);
307
+ }
308
+ /**
309
+ * Maps local domain fields to table-bound conditions, encoding each leaf once.
310
+ * I.e. Author.firstName uses the first_name column but resolves its alias in each query scope.
311
+ * Collections, polymorphic references, and inherited nonlocal fields require explicit expressions.
312
+ */
313
+ declare function tableWhere(mgmt: TableMgmt, filter: object): SqlCondition;
314
+ /**
315
+ * Converts relationship filters into conditions on the joined table's id column.
316
+ * I.e. Author's `join: { books: "b:1" }` filters Book.id to 1; `{ books: book }` uses book.id.
317
+ * Lists match any supplied ID, `true` requires a Book, and `null` or `false` requires no Book.
318
+ */
319
+ declare function tableEntityWhere(mgmt: TableMgmt, value: unknown): SqlCondition;
320
+ //#endregion
321
+ export { CollectionJoin, DefaultReferenceJoin, EntityColumn, InQueryCondition, JoinTableHandle, M2mJoinTable, PolyReference, PrimitiveColumn, ReferenceColumn, ReferenceJoin, Table, TableBrand, TableFilter, TableFor, TableMgmt, TableSourceBrand, TableSourceMgmt, collectionJoin, getTableMetadata, getTableMgmt, inQueryCondition, isCustomTable, isEntityTable, isTable, m2mJoinTable, newTableProxy, referenceJoinSource, table, tableEntityWhere, tableMgmt, tableSqlName, tableWhere, tables };
322
+ //# sourceMappingURL=Tables.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tables.d.cts","names":[],"sources":["../../../src/queries/sql/Tables.ts"],"mappings":"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"}