joist-core 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +176 -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 +167 -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 +276 -0
  683. package/build/queries/sql/execute.cjs.map +1 -0
  684. package/build/queries/sql/execute.d.cts +294 -0
  685. package/build/queries/sql/execute.d.cts.map +1 -0
  686. package/build/queries/sql/execute.d.mts +294 -0
  687. package/build/queries/sql/execute.d.mts.map +1 -0
  688. package/build/queries/sql/execute.js +273 -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 +1610 -0
  777. package/build/queries/sql/query.cjs.map +1 -0
  778. package/build/queries/sql/query.d.cts +844 -0
  779. package/build/queries/sql/query.d.cts.map +1 -0
  780. package/build/queries/sql/query.d.mts +844 -0
  781. package/build/queries/sql/query.d.mts.map +1 -0
  782. package/build/queries/sql/query.js +1592 -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":"JoinTree.cjs","names":["isEntityTable","getTableMgmt","fail","tableWhere","newTableProxy","tableEntityWhere","isEntity"],"sources":["../../../src/queries/sql/JoinTree.ts"],"sourcesContent":["import { type Entity, isEntity } from \"src/Entity.ts\";\nimport type { IdOf } from \"src/EntityManager.ts\";\nimport type { InnerJoin, LeftJoin } from \"src/queries/sql/Expr.ts\";\nimport type { QueryCondition, QueryJoin, QueryJoinInput } from \"src/queries/sql/query.ts\";\nimport {\n type CollectionJoin,\n type TableFilter,\n type TableFor,\n getTableMgmt,\n isEntityTable,\n newTableProxy,\n tableEntityWhere,\n tableWhere,\n} from \"src/queries/sql/Tables.ts\";\nimport type { FieldsOf } from \"src/typeMap.ts\";\nimport { fail } from \"src/utils.ts\";\n\n/** Domain filters and optional table bindings for one node in a relationship tree. */\nexport type JoinTree<T extends Entity> = Omit<TableFilter<T>, RelationNames<T>> & {\n readonly as?: TableFor<T>;\n} & {\n readonly [K in RelationNames<T>]?: FieldsOf<T>[K] extends {\n kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\";\n type: infer U extends Entity;\n }\n ? JoinTree<U> | (K extends keyof TableFilter<T> ? TableFilter<T>[K] : JoinedEntityFilter<U>)\n : never;\n};\n\n/**\n * Filters entities, e.g. `{ books: \"b:1\" }` filters Book.id to 1.\n *\n * Adapted from `em.find`s EntityFilter, rather than a direct copy:\n *\n * - Keeps entity/ID, list, boolean, and `ne` filters, but omits scopes, find aliases, nested objects, and logical groups.\n * - JoinTree supplies nested objects and table bindings separately.\n * - Lists can mix entities and IDs, unlike EntityFilter's separate entity[] and ID[] alternatives.\n * - Null is always allowed because these relationships use LEFT joins.\n * - undefined comes from JoinTree's optional relationship keys.\n */\ntype JoinedEntityFilter<T extends Entity> =\n | IdOf<T>\n | T\n | readonly (IdOf<T> | T)[]\n | boolean\n | null\n | { ne: IdOf<T> | T | null | undefined };\n\ntype RelationNames<T extends Entity> = {\n [K in keyof FieldsOf<T>]: FieldsOf<T>[K] extends { kind: \"m2o\" | \"poly\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\" }\n ? K\n : never;\n}[keyof FieldsOf<T>];\n\n/**\n * Validates a join tree against the entity in `from`, preserving its exact table bindings.\n *\n * I.e. given:\n *\n * ```ts\n * const [a, b] = tables(Author, Book);\n * em.query({\n * from: a,\n * join: { books: { as: b, title: \"One\" } },\n * select: { title: b.title },\n * });\n * // F = typeof a\n * // J = { books: { as: typeof b; title: string } }\n * ```\n *\n * We:\n *\n * - Infer `T = Author` from `F`,\n * - Validate `books` against `Author`,\n * - Validate `title` against `Book`, and\n * - Retain `typeof b` for result typing.\n */\nexport type CheckJoinInput<F, J> =\n // If J accepts the entire list-or-tree union, its annotation erased the join shape.\n // Queries with no join infer [] and use the list branch below.\n QueryJoinInput extends J\n ? { join?: \"join was typed too generically; use `satisfies Query` instead of `: Query`\" }\n : // If J is an array, then it's a QueryJoinList and we can return unknown\n [J] extends [readonly unknown[]]\n ? unknown\n : F extends TableFor<infer T extends Entity>\n ? // Validate domain filters and bindings, including extra keys on variables and nested trees.\n { join?: JoinTree<T> & CheckTree<T, J> }\n : // This incompatible type reports why a tree can't start at a non-entity source.\n { join?: \"join trees require an entity table in from\" };\n\n/**\n * Determines which tables a join tree binds and whether each uses an INNER or LEFT join.\n *\n * Query result types use these entries to identify available tables and columns that can be null.\n *\n * I.e. Author.books.author uses LEFT joins for both Book and its Author because an Author may have no Books.\n */\nexport type TreeEntries<T extends Entity, J, Nullable extends boolean = false> =\n // If every string is valid keyof J, then we've lost our literal type (i.e. as const) and were\n // passed an opaque type like Record<string, unknown> that doesn't expose its specific relationship\n // keys or table bindings to collect, so just return never.\n string extends keyof J\n ? never\n : // If J has an `as` key, it might be the general JoinTree<T> type, which we check for in the next ternary.\n // If J doesn't have `as`, it can't be the general `JoinTree<T>` so we can jump straight to TreeEntriesImpl.\n \"as\" extends keyof J\n ? // If `JoinTree<T> extends J`, then we again have a board type. CheckTree will reject this input, but\n // here we stop instead of following every relationship in the domain graph.\n JoinTree<T> extends J\n ? never\n : TreeEntriesImpl<T, J, Nullable>\n : TreeEntriesImpl<T, J, Nullable>;\n\n/** Collects join entries from the relationship keys supplied in this tree node. */\ntype TreeEntriesImpl<T extends Entity, J, Nullable extends boolean> = {\n [K in keyof J & keyof FieldsOf<T>]: FieldsOf<T>[K] extends {\n kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\";\n type: infer U extends Entity;\n }\n ? TreeNodeJoins<\n U,\n Exclude<J[K], undefined>,\n Nullable extends true ? true : FieldsOf<T>[K] extends { kind: \"m2o\"; nullable: never } ? false : true\n >\n : never;\n}[keyof J & keyof FieldsOf<T>];\n\n/**\n * Collects the join entries for this node's table binding and its nested relationships.\n *\n * An `as` binding contributes a LeftJoin or InnerJoin according to Nullable.\n * Without a binding, only nested relationship entries are included; entity, ID, and list filters add none.\n */\ntype TreeNodeJoins<T extends Entity, J, Nullable extends boolean> =\n // If `J extends Entity | unknown[]`, then it's a leaf entity/id filter, so stop recursing\n J extends Entity | readonly unknown[]\n ? never\n : // If `J extends object`, look for an `as` binding and nested relationships.\n // If `J extends object` is false, this is a scalar filter like \"b:1\" in `{ books: \"b:1\" }` and we stop here.\n J extends object\n ?\n | (J extends { readonly as: infer A extends TableFor<T> }\n ? Nullable extends true\n ? LeftJoin<A>\n : InnerJoin<A>\n : never)\n | TreeEntries<T, J, Nullable>\n : never;\n\n/** Rejects broad tree annotations before checking their supplied keys and values. */\ntype CheckTree<T extends Entity, J> =\n // An entity or a list of entities/IDs is a filter value, so don't check its properties as tree keys.\n J extends Entity | readonly unknown[]\n ? unknown\n : \"as\" extends keyof J\n ? JoinTree<T> extends J\n ? \"join tree bindings were typed too generically; use `satisfies JoinTree<T>` instead of `: JoinTree<T>`\"\n : CheckTreeKeys<T, J>\n : CheckTreeKeys<T, J>;\n\n/** Rejects unknown tree keys, including extra properties on objects stored in variables. */\ntype CheckTreeKeys<T extends Entity, J> = [Exclude<keyof J, keyof JoinTree<T>>] extends [never]\n ? {\n [K in keyof J]: K extends \"as\"\n ? J[K] extends TableFor<T> | undefined\n ? unknown\n : never\n : K extends keyof JoinTree<T>\n ? K extends keyof FieldsOf<T>\n ? FieldsOf<T>[K] extends { kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\"; type: infer U extends Entity }\n ? (J[K] extends JoinTree<T>[K] ? unknown : never) & CheckRelationTree<U, J[K]>\n : J[K] extends JoinTree<T>[K]\n ? unknown\n : never\n : unknown\n : never;\n // Report the error on the tree object; intersecting a message with a boolean field would collapse to never.\n }\n : `unknown join tree field '${Exclude<keyof J, keyof JoinTree<T>> & string}'`;\n\n/** Checks each optional relationship alternative without treating entities or exclusion filters as trees. */\ntype CheckRelationTree<T extends Entity, J> = J extends object\n ? \"ne\" extends keyof J\n ? unknown\n : CheckTree<T, J>\n : unknown;\n\n/**\n * Walks domain relationship filters into ordinary SQL joins and WHERE predicates.\n * Handles remain query-local; no SQL aliases or caller objects are changed.\n * I.e. Author.books.author emits Book before its Author, even if only the final Author has an as binding.\n */\nexport function compileJoinTree(from: unknown, tree: unknown): { joins: QueryJoin[]; condition: QueryCondition } {\n if (!isEntityTable(from)) fail(\"Join trees require an entity table in from\");\n const joins: QueryJoin[] = [];\n const conditions: QueryCondition[] = [];\n const bound = new Set<object>([getTableMgmt(from)]);\n visitTree(from, tree, joins, conditions, bound);\n return { joins, condition: { and: conditions } };\n}\n\n/**\n * Compiles one node, leaving relationship conditions in WHERE rather than ON.\n * Each relationship gets one target handle; reusing a bound handle would merge distinct paths.\n * Owning-reference ID filters stay on the FK, while collection ID filters use the joined primary key.\n */\nfunction visitTree(\n source: TableFor<Entity>,\n tree: unknown,\n joins: QueryJoin[],\n conditions: QueryCondition[],\n bound: Set<object>,\n): void {\n if (!isTreeObject(tree)) fail(\"Expected a join tree object\");\n const mgmt = getTableMgmt(source);\n if (tree.as !== undefined && tree.as !== source) fail(\"Join tree root as must be the same table handle as from\");\n for (const [key, value] of Object.entries(tree)) {\n if (key === \"as\") continue;\n const field = mgmt.meta.allFields[key] ?? fail(`Unknown join tree field ${mgmt.meta.type}.${key}`);\n if (!(key in mgmt.meta.fields)) fail(`Join trees do not support inherited field ${mgmt.meta.type}.${key}`);\n if (field.kind === \"poly\") fail(`Join trees do not support polymorphic field ${mgmt.meta.type}.${key}`);\n if ([\"m2o\", \"o2m\", \"lo2m\", \"m2m\", \"o2o\"].includes(field.kind)) {\n if (value === undefined) continue;\n if (field.kind === \"m2o\" && !isTreeObject(value)) {\n // Avoid joining the related table; add the condition directly to the FK column.\n conditions.push(tableWhere(mgmt, { [key]: value }));\n continue;\n }\n if (field.kind === \"m2o\" && isTreeObject(value) && Object.hasOwn(value, \"ne\")) {\n // Exclusion filters also apply directly to the FK column without joining the related table.\n conditions.push(tableWhere(mgmt, { [key]: value }));\n continue;\n }\n // The field-kind check above establishes the relationship metadata and factory shape.\n if (!(\"otherMetadata\" in field)) fail(`Unsupported join tree field ${mgmt.meta.type}.${key}`);\n const meta = field.otherMetadata();\n const target = isTreeObject(value) && value.as !== undefined ? value.as : newTableProxy(meta.cstr);\n if (!isEntityTable(target) || getTableMgmt(target).meta !== meta) {\n fail(`Join tree binding for ${mgmt.meta.type}.${key} must be a ${meta.type} table`);\n }\n const identity = getTableMgmt(target);\n if (bound.has(identity))\n fail(`Join tree table ${meta.type} is bound more than once; create a separate table handle`);\n bound.add(identity);\n const relation = (source as unknown as Record<string, CollectionJoin<Entity>>)[key];\n joins.push(relation.as(target));\n // Recurse into nested relationship filters, e.g. `{ books: { title: \"One\" } }`.\n // A `{ ne: ... }` object instead filters the joined entity's ID, so handle it like an ID or entity value.\n // We don't have to handle other keys like `gt`, etc. b/c we know this is an entity filter, not a value filter.\n if (isTreeObject(value) && !Object.hasOwn(value, \"ne\")) {\n visitTree(target, value, joins, conditions, bound);\n } else {\n conditions.push(tableEntityWhere(identity, value));\n }\n } else {\n conditions.push(tableWhere(mgmt, { [key]: value }));\n }\n }\n}\n\n/** Separates nested relationship objects from entity, ID, and list filters. */\nfunction isTreeObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) && !isEntity(value);\n}\n"],"mappings":";;;;;;;;;;AAiMA,SAAgB,gBAAgB,MAAe,MAAkE;CAC/G,IAAI,CAACA,2BAAAA,cAAc,IAAI,GAAG,cAAA,KAAK,4CAA4C;CAC3E,MAAM,QAAqB,CAAC;CAC5B,MAAM,aAA+B,CAAC;CAEtC,UAAU,MAAM,MAAM,OAAO,4BAAY,IADvB,IAAY,CAACC,2BAAAA,aAAa,IAAI,CAAC,CACJ,CAAC;CAC9C,OAAO;EAAE;EAAO,WAAW,EAAE,KAAK,WAAW;CAAE;AACjD;;;;;;AAOA,SAAS,UACP,QACA,MACA,OACA,YACA,OACM;CACN,IAAI,CAAC,aAAa,IAAI,GAAG,cAAA,KAAK,6BAA6B;CAC3D,MAAM,OAAOA,2BAAAA,aAAa,MAAM;CAChC,IAAI,KAAK,OAAO,KAAA,KAAa,KAAK,OAAO,QAAQ,cAAA,KAAK,yDAAyD;CAC/G,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;EAC/C,IAAI,QAAQ,MAAM;EAClB,MAAM,QAAQ,KAAK,KAAK,UAAU,QAAQC,cAAAA,KAAK,2BAA2B,KAAK,KAAK,KAAK,GAAG,KAAK;EACjG,IAAI,EAAE,OAAO,KAAK,KAAK,SAAS,cAAA,KAAK,6CAA6C,KAAK,KAAK,KAAK,GAAG,KAAK;EACzG,IAAI,MAAM,SAAS,QAAQ,cAAA,KAAK,+CAA+C,KAAK,KAAK,KAAK,GAAG,KAAK;EACtG,IAAI;GAAC;GAAO;GAAO;GAAQ;GAAO;EAAK,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG;GAC7D,IAAI,UAAU,KAAA,GAAW;GACzB,IAAI,MAAM,SAAS,SAAS,CAAC,aAAa,KAAK,GAAG;IAEhD,WAAW,KAAKC,2BAAAA,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;IAClD;GACF;GACA,IAAI,MAAM,SAAS,SAAS,aAAa,KAAK,KAAK,OAAO,OAAO,OAAO,IAAI,GAAG;IAE7E,WAAW,KAAKA,2BAAAA,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;IAClD;GACF;GAEA,IAAI,EAAE,mBAAmB,QAAQ,cAAA,KAAK,+BAA+B,KAAK,KAAK,KAAK,GAAG,KAAK;GAC5F,MAAM,OAAO,MAAM,cAAc;GACjC,MAAM,SAAS,aAAa,KAAK,KAAK,MAAM,OAAO,KAAA,IAAY,MAAM,KAAKC,2BAAAA,cAAc,KAAK,IAAI;GACjG,IAAI,CAACJ,2BAAAA,cAAc,MAAM,KAAKC,2BAAAA,aAAa,MAAM,CAAC,CAAC,SAAS,MAC1D,cAAA,KAAK,yBAAyB,KAAK,KAAK,KAAK,GAAG,IAAI,aAAa,KAAK,KAAK,OAAO;GAEpF,MAAM,WAAWA,2BAAAA,aAAa,MAAM;GACpC,IAAI,MAAM,IAAI,QAAQ,GACpB,cAAA,KAAK,mBAAmB,KAAK,KAAK,yDAAyD;GAC7F,MAAM,IAAI,QAAQ;GAClB,MAAM,WAAY,OAA6D;GAC/E,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC;GAI9B,IAAI,aAAa,KAAK,KAAK,CAAC,OAAO,OAAO,OAAO,IAAI,GACnD,UAAU,QAAQ,OAAO,OAAO,YAAY,KAAK;QAEjD,WAAW,KAAKI,2BAAAA,iBAAiB,UAAU,KAAK,CAAC;EAErD,OACE,WAAW,KAAKF,2BAAAA,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;CAEtD;AACF;;AAGA,SAAS,aAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,CAACG,eAAAA,SAAS,KAAK;AAChG"}
@@ -0,0 +1,107 @@
1
+ import { FieldsOf } from "../../typeMap.cjs";
2
+ import { TableFilter, TableFor } from "./Tables.cjs";
3
+ import { QueryCondition, QueryJoin, QueryJoinInput } from "./query.cjs";
4
+ import { InnerJoin, LeftJoin } from "./Expr.cjs";
5
+ import { IdOf } from "../../EntityManager.cjs";
6
+ import { Entity } from "../../Entity.cjs";
7
+ //#region src/queries/sql/JoinTree.d.ts
8
+ /** Domain filters and optional table bindings for one node in a relationship tree. */
9
+ type JoinTree<T extends Entity> = Omit<TableFilter<T>, RelationNames<T>> & {
10
+ readonly as?: TableFor<T>;
11
+ } & { readonly [K in RelationNames<T>]?: FieldsOf<T>[K] extends {
12
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
13
+ type: infer U extends Entity;
14
+ } ? JoinTree<U> | (K extends keyof TableFilter<T> ? TableFilter<T>[K] : JoinedEntityFilter<U>) : never; };
15
+ /**
16
+ * Filters entities, e.g. `{ books: "b:1" }` filters Book.id to 1.
17
+ *
18
+ * Adapted from `em.find`s EntityFilter, rather than a direct copy:
19
+ *
20
+ * - Keeps entity/ID, list, boolean, and `ne` filters, but omits scopes, find aliases, nested objects, and logical groups.
21
+ * - JoinTree supplies nested objects and table bindings separately.
22
+ * - Lists can mix entities and IDs, unlike EntityFilter's separate entity[] and ID[] alternatives.
23
+ * - Null is always allowed because these relationships use LEFT joins.
24
+ * - undefined comes from JoinTree's optional relationship keys.
25
+ */
26
+ type JoinedEntityFilter<T extends Entity> = IdOf<T> | T | readonly (IdOf<T> | T)[] | boolean | null | {
27
+ ne: IdOf<T> | T | null | undefined;
28
+ };
29
+ type RelationNames<T extends Entity> = { [K in keyof FieldsOf<T>]: FieldsOf<T>[K] extends {
30
+ kind: "m2o" | "poly" | "o2m" | "lo2m" | "m2m" | "o2o";
31
+ } ? K : never; }[keyof FieldsOf<T>];
32
+ /**
33
+ * Validates a join tree against the entity in `from`, preserving its exact table bindings.
34
+ *
35
+ * I.e. given:
36
+ *
37
+ * ```ts
38
+ * const [a, b] = tables(Author, Book);
39
+ * em.query({
40
+ * from: a,
41
+ * join: { books: { as: b, title: "One" } },
42
+ * select: { title: b.title },
43
+ * });
44
+ * // F = typeof a
45
+ * // J = { books: { as: typeof b; title: string } }
46
+ * ```
47
+ *
48
+ * We:
49
+ *
50
+ * - Infer `T = Author` from `F`,
51
+ * - Validate `books` against `Author`,
52
+ * - Validate `title` against `Book`, and
53
+ * - Retain `typeof b` for result typing.
54
+ */
55
+ type CheckJoinInput<F, J> = QueryJoinInput extends J ? {
56
+ join?: "join was typed too generically; use `satisfies Query` instead of `: Query`";
57
+ } : [J] extends [readonly unknown[]] ? unknown : F extends TableFor<infer T extends Entity> ? {
58
+ join?: JoinTree<T> & CheckTree<T, J>;
59
+ } : {
60
+ join?: "join trees require an entity table in from";
61
+ };
62
+ /**
63
+ * Determines which tables a join tree binds and whether each uses an INNER or LEFT join.
64
+ *
65
+ * Query result types use these entries to identify available tables and columns that can be null.
66
+ *
67
+ * I.e. Author.books.author uses LEFT joins for both Book and its Author because an Author may have no Books.
68
+ */
69
+ type TreeEntries<T extends Entity, J, Nullable extends boolean = false> = string extends keyof J ? never : "as" extends keyof J ? JoinTree<T> extends J ? never : TreeEntriesImpl<T, J, Nullable> : TreeEntriesImpl<T, J, Nullable>;
70
+ /** Collects join entries from the relationship keys supplied in this tree node. */
71
+ type TreeEntriesImpl<T extends Entity, J, Nullable extends boolean> = { [K in keyof J & keyof FieldsOf<T>]: FieldsOf<T>[K] extends {
72
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
73
+ type: infer U extends Entity;
74
+ } ? TreeNodeJoins<U, Exclude<J[K], undefined>, Nullable extends true ? true : FieldsOf<T>[K] extends {
75
+ kind: "m2o";
76
+ nullable: never;
77
+ } ? false : true> : never; }[keyof J & keyof FieldsOf<T>];
78
+ /**
79
+ * Collects the join entries for this node's table binding and its nested relationships.
80
+ *
81
+ * An `as` binding contributes a LeftJoin or InnerJoin according to Nullable.
82
+ * Without a binding, only nested relationship entries are included; entity, ID, and list filters add none.
83
+ */
84
+ type TreeNodeJoins<T extends Entity, J, Nullable extends boolean> = J extends Entity | readonly unknown[] ? never : J extends object ? (J extends {
85
+ readonly as: infer A extends TableFor<T>;
86
+ } ? Nullable extends true ? LeftJoin<A> : InnerJoin<A> : never) | TreeEntries<T, J, Nullable> : never;
87
+ /** Rejects broad tree annotations before checking their supplied keys and values. */
88
+ type CheckTree<T extends Entity, J> = J extends Entity | readonly unknown[] ? unknown : "as" extends keyof J ? JoinTree<T> extends J ? "join tree bindings were typed too generically; use `satisfies JoinTree<T>` instead of `: JoinTree<T>`" : CheckTreeKeys<T, J> : CheckTreeKeys<T, J>;
89
+ /** Rejects unknown tree keys, including extra properties on objects stored in variables. */
90
+ type CheckTreeKeys<T extends Entity, J> = [Exclude<keyof J, keyof JoinTree<T>>] extends [never] ? { [K in keyof J]: K extends "as" ? J[K] extends TableFor<T> | undefined ? unknown : never : K extends keyof JoinTree<T> ? K extends keyof FieldsOf<T> ? FieldsOf<T>[K] extends {
91
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
92
+ type: infer U extends Entity;
93
+ } ? (J[K] extends JoinTree<T>[K] ? unknown : never) & CheckRelationTree<U, J[K]> : J[K] extends JoinTree<T>[K] ? unknown : never : unknown : never; } : `unknown join tree field '${Exclude<keyof J, keyof JoinTree<T>> & string}'`;
94
+ /** Checks each optional relationship alternative without treating entities or exclusion filters as trees. */
95
+ type CheckRelationTree<T extends Entity, J> = J extends object ? "ne" extends keyof J ? unknown : CheckTree<T, J> : unknown;
96
+ /**
97
+ * Walks domain relationship filters into ordinary SQL joins and WHERE predicates.
98
+ * Handles remain query-local; no SQL aliases or caller objects are changed.
99
+ * I.e. Author.books.author emits Book before its Author, even if only the final Author has an as binding.
100
+ */
101
+ declare function compileJoinTree(from: unknown, tree: unknown): {
102
+ joins: QueryJoin[];
103
+ condition: QueryCondition;
104
+ };
105
+ //#endregion
106
+ export { CheckJoinInput, JoinTree, TreeEntries, compileJoinTree };
107
+ //# sourceMappingURL=JoinTree.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoinTree.d.cts","names":[],"sources":["../../../src/queries/sql/JoinTree.ts"],"mappings":";;;;;;;;KAkBY,SAAS,UAAU,UAAU,KAAK,YAAY,IAAI,cAAc;WACjE,KAAK,SAAS;gBAEb,KAAK,cAAc,MAAM,SAAS,GAAG;EAC7C;EACA,YAAY,UAAU;IAEpB,SAAS,MAAM,gBAAgB,YAAY,KAAK,YAAY,GAAG,KAAK,mBAAmB;;;;;;;;;;;;KAexF,mBAAmB,UAAU,UAC9B,KAAK,KACL,cACU,KAAK,KAAK;EAGlB,IAAI,KAAK,KAAK;;KAEf,cAAc,UAAU,aAC1B,WAAW,SAAS,KAAK,SAAS,GAAG;EAAa;IAC/C,mBAEE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;KAyBL,eAAe,GAAG,KAG5B,uBAAuB;EACjB;KAED,4CAEC,UAAU,eAAe,UAAU;EAE/B,OAAO,SAAS,KAAK,UAAU,GAAG;;EAElC;;;;;;;;;KASA,YAAY,UAAU,QAAQ,GAAG,yDAItB,+BAIE,IAGjB,SAAS,WAAW,YAElB,gBAAgB,GAAG,GAAG,YACxB,gBAAgB,GAAG,GAAG;;KAGzB,gBAAgB,UAAU,QAAQ,GAAG,+BACvC,WAAW,UAAU,SAAS,KAAK,SAAS,GAAG;EAC9C;EACA,YAAY,UAAU;IAEpB,cACE,GACA,QAAQ,EAAE,gBACV,+BAA+B,SAAS,GAAG;EAAa;EAAa;mCAGrE,UAAU,SAAS;;;;;;;KAQtB,cAAc,UAAU,QAAQ,GAAG,4BAEtC,UAAU,sCAIN,oBAEO;WAAqB,UAAU,UAAU,SAAS;IAC/C,wBACE,SAAS,KACT,UAAU,cAEhB,YAAY,GAAG,GAAG;;KAIzB,UAAU,UAAU,QAAQ,KAE/B,UAAU,2DAEa,IACjB,SAAS,WAAW,8GAElB,cAAc,GAAG,KACnB,cAAc,GAAG;;KAGpB,cAAc,UAAU,QAAQ,MAAM,cAAc,SAAS,SAAS,0BAEpE,WAAW,IAAI,iBACZ,EAAE,WAAW,SAAS,mCAGtB,gBAAgB,SAAS,KACvB,gBAAgB,SAAS,KACvB,SAAS,GAAG;EAAa;EAA8C,YAAY,UAAU;KAC1F,EAAE,WAAW,SAAS,GAAG,wBAAwB,kBAAkB,GAAG,EAAE,MACzE,EAAE,WAAW,SAAS,GAAG,wEAOT,cAAc,SAAS,SAAS;;KAG3D,kBAAkB,UAAU,QAAQ,KAAK,sCACvB,cAEjB,UAAU,GAAG;;;;;;iBAQH,gBAAgB,eAAe;EAAkB,OAAO;EAAa,WAAW"}
@@ -0,0 +1,107 @@
1
+ import { FieldsOf } from "../../typeMap.mjs";
2
+ import { TableFilter, TableFor } from "./Tables.mjs";
3
+ import { QueryCondition, QueryJoin, QueryJoinInput } from "./query.mjs";
4
+ import { InnerJoin, LeftJoin } from "./Expr.mjs";
5
+ import { IdOf } from "../../EntityManager.mjs";
6
+ import { Entity } from "../../Entity.mjs";
7
+ //#region src/queries/sql/JoinTree.d.ts
8
+ /** Domain filters and optional table bindings for one node in a relationship tree. */
9
+ type JoinTree<T extends Entity> = Omit<TableFilter<T>, RelationNames<T>> & {
10
+ readonly as?: TableFor<T>;
11
+ } & { readonly [K in RelationNames<T>]?: FieldsOf<T>[K] extends {
12
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
13
+ type: infer U extends Entity;
14
+ } ? JoinTree<U> | (K extends keyof TableFilter<T> ? TableFilter<T>[K] : JoinedEntityFilter<U>) : never; };
15
+ /**
16
+ * Filters entities, e.g. `{ books: "b:1" }` filters Book.id to 1.
17
+ *
18
+ * Adapted from `em.find`s EntityFilter, rather than a direct copy:
19
+ *
20
+ * - Keeps entity/ID, list, boolean, and `ne` filters, but omits scopes, find aliases, nested objects, and logical groups.
21
+ * - JoinTree supplies nested objects and table bindings separately.
22
+ * - Lists can mix entities and IDs, unlike EntityFilter's separate entity[] and ID[] alternatives.
23
+ * - Null is always allowed because these relationships use LEFT joins.
24
+ * - undefined comes from JoinTree's optional relationship keys.
25
+ */
26
+ type JoinedEntityFilter<T extends Entity> = IdOf<T> | T | readonly (IdOf<T> | T)[] | boolean | null | {
27
+ ne: IdOf<T> | T | null | undefined;
28
+ };
29
+ type RelationNames<T extends Entity> = { [K in keyof FieldsOf<T>]: FieldsOf<T>[K] extends {
30
+ kind: "m2o" | "poly" | "o2m" | "lo2m" | "m2m" | "o2o";
31
+ } ? K : never; }[keyof FieldsOf<T>];
32
+ /**
33
+ * Validates a join tree against the entity in `from`, preserving its exact table bindings.
34
+ *
35
+ * I.e. given:
36
+ *
37
+ * ```ts
38
+ * const [a, b] = tables(Author, Book);
39
+ * em.query({
40
+ * from: a,
41
+ * join: { books: { as: b, title: "One" } },
42
+ * select: { title: b.title },
43
+ * });
44
+ * // F = typeof a
45
+ * // J = { books: { as: typeof b; title: string } }
46
+ * ```
47
+ *
48
+ * We:
49
+ *
50
+ * - Infer `T = Author` from `F`,
51
+ * - Validate `books` against `Author`,
52
+ * - Validate `title` against `Book`, and
53
+ * - Retain `typeof b` for result typing.
54
+ */
55
+ type CheckJoinInput<F, J> = QueryJoinInput extends J ? {
56
+ join?: "join was typed too generically; use `satisfies Query` instead of `: Query`";
57
+ } : [J] extends [readonly unknown[]] ? unknown : F extends TableFor<infer T extends Entity> ? {
58
+ join?: JoinTree<T> & CheckTree<T, J>;
59
+ } : {
60
+ join?: "join trees require an entity table in from";
61
+ };
62
+ /**
63
+ * Determines which tables a join tree binds and whether each uses an INNER or LEFT join.
64
+ *
65
+ * Query result types use these entries to identify available tables and columns that can be null.
66
+ *
67
+ * I.e. Author.books.author uses LEFT joins for both Book and its Author because an Author may have no Books.
68
+ */
69
+ type TreeEntries<T extends Entity, J, Nullable extends boolean = false> = string extends keyof J ? never : "as" extends keyof J ? JoinTree<T> extends J ? never : TreeEntriesImpl<T, J, Nullable> : TreeEntriesImpl<T, J, Nullable>;
70
+ /** Collects join entries from the relationship keys supplied in this tree node. */
71
+ type TreeEntriesImpl<T extends Entity, J, Nullable extends boolean> = { [K in keyof J & keyof FieldsOf<T>]: FieldsOf<T>[K] extends {
72
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
73
+ type: infer U extends Entity;
74
+ } ? TreeNodeJoins<U, Exclude<J[K], undefined>, Nullable extends true ? true : FieldsOf<T>[K] extends {
75
+ kind: "m2o";
76
+ nullable: never;
77
+ } ? false : true> : never; }[keyof J & keyof FieldsOf<T>];
78
+ /**
79
+ * Collects the join entries for this node's table binding and its nested relationships.
80
+ *
81
+ * An `as` binding contributes a LeftJoin or InnerJoin according to Nullable.
82
+ * Without a binding, only nested relationship entries are included; entity, ID, and list filters add none.
83
+ */
84
+ type TreeNodeJoins<T extends Entity, J, Nullable extends boolean> = J extends Entity | readonly unknown[] ? never : J extends object ? (J extends {
85
+ readonly as: infer A extends TableFor<T>;
86
+ } ? Nullable extends true ? LeftJoin<A> : InnerJoin<A> : never) | TreeEntries<T, J, Nullable> : never;
87
+ /** Rejects broad tree annotations before checking their supplied keys and values. */
88
+ type CheckTree<T extends Entity, J> = J extends Entity | readonly unknown[] ? unknown : "as" extends keyof J ? JoinTree<T> extends J ? "join tree bindings were typed too generically; use `satisfies JoinTree<T>` instead of `: JoinTree<T>`" : CheckTreeKeys<T, J> : CheckTreeKeys<T, J>;
89
+ /** Rejects unknown tree keys, including extra properties on objects stored in variables. */
90
+ type CheckTreeKeys<T extends Entity, J> = [Exclude<keyof J, keyof JoinTree<T>>] extends [never] ? { [K in keyof J]: K extends "as" ? J[K] extends TableFor<T> | undefined ? unknown : never : K extends keyof JoinTree<T> ? K extends keyof FieldsOf<T> ? FieldsOf<T>[K] extends {
91
+ kind: "m2o" | "o2m" | "lo2m" | "m2m" | "o2o";
92
+ type: infer U extends Entity;
93
+ } ? (J[K] extends JoinTree<T>[K] ? unknown : never) & CheckRelationTree<U, J[K]> : J[K] extends JoinTree<T>[K] ? unknown : never : unknown : never; } : `unknown join tree field '${Exclude<keyof J, keyof JoinTree<T>> & string}'`;
94
+ /** Checks each optional relationship alternative without treating entities or exclusion filters as trees. */
95
+ type CheckRelationTree<T extends Entity, J> = J extends object ? "ne" extends keyof J ? unknown : CheckTree<T, J> : unknown;
96
+ /**
97
+ * Walks domain relationship filters into ordinary SQL joins and WHERE predicates.
98
+ * Handles remain query-local; no SQL aliases or caller objects are changed.
99
+ * I.e. Author.books.author emits Book before its Author, even if only the final Author has an as binding.
100
+ */
101
+ declare function compileJoinTree(from: unknown, tree: unknown): {
102
+ joins: QueryJoin[];
103
+ condition: QueryCondition;
104
+ };
105
+ //#endregion
106
+ export { CheckJoinInput, JoinTree, TreeEntries, compileJoinTree };
107
+ //# sourceMappingURL=JoinTree.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoinTree.d.mts","names":[],"sources":["../../../src/queries/sql/JoinTree.ts"],"mappings":";;;;;;;;KAkBY,SAAS,UAAU,UAAU,KAAK,YAAY,IAAI,cAAc;WACjE,KAAK,SAAS;gBAEb,KAAK,cAAc,MAAM,SAAS,GAAG;EAC7C;EACA,YAAY,UAAU;IAEpB,SAAS,MAAM,gBAAgB,YAAY,KAAK,YAAY,GAAG,KAAK,mBAAmB;;;;;;;;;;;;KAexF,mBAAmB,UAAU,UAC9B,KAAK,KACL,cACU,KAAK,KAAK;EAGlB,IAAI,KAAK,KAAK;;KAEf,cAAc,UAAU,aAC1B,WAAW,SAAS,KAAK,SAAS,GAAG;EAAa;IAC/C,mBAEE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;KAyBL,eAAe,GAAG,KAG5B,uBAAuB;EACjB;KAED,4CAEC,UAAU,eAAe,UAAU;EAE/B,OAAO,SAAS,KAAK,UAAU,GAAG;;EAElC;;;;;;;;;KASA,YAAY,UAAU,QAAQ,GAAG,yDAItB,+BAIE,IAGjB,SAAS,WAAW,YAElB,gBAAgB,GAAG,GAAG,YACxB,gBAAgB,GAAG,GAAG;;KAGzB,gBAAgB,UAAU,QAAQ,GAAG,+BACvC,WAAW,UAAU,SAAS,KAAK,SAAS,GAAG;EAC9C;EACA,YAAY,UAAU;IAEpB,cACE,GACA,QAAQ,EAAE,gBACV,+BAA+B,SAAS,GAAG;EAAa;EAAa;mCAGrE,UAAU,SAAS;;;;;;;KAQtB,cAAc,UAAU,QAAQ,GAAG,4BAEtC,UAAU,sCAIN,oBAEO;WAAqB,UAAU,UAAU,SAAS;IAC/C,wBACE,SAAS,KACT,UAAU,cAEhB,YAAY,GAAG,GAAG;;KAIzB,UAAU,UAAU,QAAQ,KAE/B,UAAU,2DAEa,IACjB,SAAS,WAAW,8GAElB,cAAc,GAAG,KACnB,cAAc,GAAG;;KAGpB,cAAc,UAAU,QAAQ,MAAM,cAAc,SAAS,SAAS,0BAEpE,WAAW,IAAI,iBACZ,EAAE,WAAW,SAAS,mCAGtB,gBAAgB,SAAS,KACvB,gBAAgB,SAAS,KACvB,SAAS,GAAG;EAAa;EAA8C,YAAY,UAAU;KAC1F,EAAE,WAAW,SAAS,GAAG,wBAAwB,kBAAkB,GAAG,EAAE,MACzE,EAAE,WAAW,SAAS,GAAG,wEAOT,cAAc,SAAS,SAAS;;KAG3D,kBAAkB,UAAU,QAAQ,KAAK,sCACvB,cAEjB,UAAU,GAAG;;;;;;iBAQH,gBAAgB,eAAe;EAAkB,OAAO;EAAa,WAAW"}
@@ -0,0 +1,71 @@
1
+ import { fail } from "../../utils.js";
2
+ import { getTableMgmt, isEntityTable, newTableProxy, tableEntityWhere, tableWhere } from "./Tables.js";
3
+ import { isEntity } from "../../Entity.js";
4
+ //#region src/queries/sql/JoinTree.ts
5
+ /**
6
+ * Walks domain relationship filters into ordinary SQL joins and WHERE predicates.
7
+ * Handles remain query-local; no SQL aliases or caller objects are changed.
8
+ * I.e. Author.books.author emits Book before its Author, even if only the final Author has an as binding.
9
+ */
10
+ function compileJoinTree(from, tree) {
11
+ if (!isEntityTable(from)) fail("Join trees require an entity table in from");
12
+ const joins = [];
13
+ const conditions = [];
14
+ visitTree(from, tree, joins, conditions, /* @__PURE__ */ new Set([getTableMgmt(from)]));
15
+ return {
16
+ joins,
17
+ condition: { and: conditions }
18
+ };
19
+ }
20
+ /**
21
+ * Compiles one node, leaving relationship conditions in WHERE rather than ON.
22
+ * Each relationship gets one target handle; reusing a bound handle would merge distinct paths.
23
+ * Owning-reference ID filters stay on the FK, while collection ID filters use the joined primary key.
24
+ */
25
+ function visitTree(source, tree, joins, conditions, bound) {
26
+ if (!isTreeObject(tree)) fail("Expected a join tree object");
27
+ const mgmt = getTableMgmt(source);
28
+ if (tree.as !== void 0 && tree.as !== source) fail("Join tree root as must be the same table handle as from");
29
+ for (const [key, value] of Object.entries(tree)) {
30
+ if (key === "as") continue;
31
+ const field = mgmt.meta.allFields[key] ?? fail(`Unknown join tree field ${mgmt.meta.type}.${key}`);
32
+ if (!(key in mgmt.meta.fields)) fail(`Join trees do not support inherited field ${mgmt.meta.type}.${key}`);
33
+ if (field.kind === "poly") fail(`Join trees do not support polymorphic field ${mgmt.meta.type}.${key}`);
34
+ if ([
35
+ "m2o",
36
+ "o2m",
37
+ "lo2m",
38
+ "m2m",
39
+ "o2o"
40
+ ].includes(field.kind)) {
41
+ if (value === void 0) continue;
42
+ if (field.kind === "m2o" && !isTreeObject(value)) {
43
+ conditions.push(tableWhere(mgmt, { [key]: value }));
44
+ continue;
45
+ }
46
+ if (field.kind === "m2o" && isTreeObject(value) && Object.hasOwn(value, "ne")) {
47
+ conditions.push(tableWhere(mgmt, { [key]: value }));
48
+ continue;
49
+ }
50
+ if (!("otherMetadata" in field)) fail(`Unsupported join tree field ${mgmt.meta.type}.${key}`);
51
+ const meta = field.otherMetadata();
52
+ const target = isTreeObject(value) && value.as !== void 0 ? value.as : newTableProxy(meta.cstr);
53
+ if (!isEntityTable(target) || getTableMgmt(target).meta !== meta) fail(`Join tree binding for ${mgmt.meta.type}.${key} must be a ${meta.type} table`);
54
+ const identity = getTableMgmt(target);
55
+ if (bound.has(identity)) fail(`Join tree table ${meta.type} is bound more than once; create a separate table handle`);
56
+ bound.add(identity);
57
+ const relation = source[key];
58
+ joins.push(relation.as(target));
59
+ if (isTreeObject(value) && !Object.hasOwn(value, "ne")) visitTree(target, value, joins, conditions, bound);
60
+ else conditions.push(tableEntityWhere(identity, value));
61
+ } else conditions.push(tableWhere(mgmt, { [key]: value }));
62
+ }
63
+ }
64
+ /** Separates nested relationship objects from entity, ID, and list filters. */
65
+ function isTreeObject(value) {
66
+ return typeof value === "object" && value !== null && !Array.isArray(value) && !isEntity(value);
67
+ }
68
+ //#endregion
69
+ export { compileJoinTree };
70
+
71
+ //# sourceMappingURL=JoinTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JoinTree.js","names":[],"sources":["../../../src/queries/sql/JoinTree.ts"],"sourcesContent":["import { type Entity, isEntity } from \"src/Entity.ts\";\nimport type { IdOf } from \"src/EntityManager.ts\";\nimport type { InnerJoin, LeftJoin } from \"src/queries/sql/Expr.ts\";\nimport type { QueryCondition, QueryJoin, QueryJoinInput } from \"src/queries/sql/query.ts\";\nimport {\n type CollectionJoin,\n type TableFilter,\n type TableFor,\n getTableMgmt,\n isEntityTable,\n newTableProxy,\n tableEntityWhere,\n tableWhere,\n} from \"src/queries/sql/Tables.ts\";\nimport type { FieldsOf } from \"src/typeMap.ts\";\nimport { fail } from \"src/utils.ts\";\n\n/** Domain filters and optional table bindings for one node in a relationship tree. */\nexport type JoinTree<T extends Entity> = Omit<TableFilter<T>, RelationNames<T>> & {\n readonly as?: TableFor<T>;\n} & {\n readonly [K in RelationNames<T>]?: FieldsOf<T>[K] extends {\n kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\";\n type: infer U extends Entity;\n }\n ? JoinTree<U> | (K extends keyof TableFilter<T> ? TableFilter<T>[K] : JoinedEntityFilter<U>)\n : never;\n};\n\n/**\n * Filters entities, e.g. `{ books: \"b:1\" }` filters Book.id to 1.\n *\n * Adapted from `em.find`s EntityFilter, rather than a direct copy:\n *\n * - Keeps entity/ID, list, boolean, and `ne` filters, but omits scopes, find aliases, nested objects, and logical groups.\n * - JoinTree supplies nested objects and table bindings separately.\n * - Lists can mix entities and IDs, unlike EntityFilter's separate entity[] and ID[] alternatives.\n * - Null is always allowed because these relationships use LEFT joins.\n * - undefined comes from JoinTree's optional relationship keys.\n */\ntype JoinedEntityFilter<T extends Entity> =\n | IdOf<T>\n | T\n | readonly (IdOf<T> | T)[]\n | boolean\n | null\n | { ne: IdOf<T> | T | null | undefined };\n\ntype RelationNames<T extends Entity> = {\n [K in keyof FieldsOf<T>]: FieldsOf<T>[K] extends { kind: \"m2o\" | \"poly\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\" }\n ? K\n : never;\n}[keyof FieldsOf<T>];\n\n/**\n * Validates a join tree against the entity in `from`, preserving its exact table bindings.\n *\n * I.e. given:\n *\n * ```ts\n * const [a, b] = tables(Author, Book);\n * em.query({\n * from: a,\n * join: { books: { as: b, title: \"One\" } },\n * select: { title: b.title },\n * });\n * // F = typeof a\n * // J = { books: { as: typeof b; title: string } }\n * ```\n *\n * We:\n *\n * - Infer `T = Author` from `F`,\n * - Validate `books` against `Author`,\n * - Validate `title` against `Book`, and\n * - Retain `typeof b` for result typing.\n */\nexport type CheckJoinInput<F, J> =\n // If J accepts the entire list-or-tree union, its annotation erased the join shape.\n // Queries with no join infer [] and use the list branch below.\n QueryJoinInput extends J\n ? { join?: \"join was typed too generically; use `satisfies Query` instead of `: Query`\" }\n : // If J is an array, then it's a QueryJoinList and we can return unknown\n [J] extends [readonly unknown[]]\n ? unknown\n : F extends TableFor<infer T extends Entity>\n ? // Validate domain filters and bindings, including extra keys on variables and nested trees.\n { join?: JoinTree<T> & CheckTree<T, J> }\n : // This incompatible type reports why a tree can't start at a non-entity source.\n { join?: \"join trees require an entity table in from\" };\n\n/**\n * Determines which tables a join tree binds and whether each uses an INNER or LEFT join.\n *\n * Query result types use these entries to identify available tables and columns that can be null.\n *\n * I.e. Author.books.author uses LEFT joins for both Book and its Author because an Author may have no Books.\n */\nexport type TreeEntries<T extends Entity, J, Nullable extends boolean = false> =\n // If every string is valid keyof J, then we've lost our literal type (i.e. as const) and were\n // passed an opaque type like Record<string, unknown> that doesn't expose its specific relationship\n // keys or table bindings to collect, so just return never.\n string extends keyof J\n ? never\n : // If J has an `as` key, it might be the general JoinTree<T> type, which we check for in the next ternary.\n // If J doesn't have `as`, it can't be the general `JoinTree<T>` so we can jump straight to TreeEntriesImpl.\n \"as\" extends keyof J\n ? // If `JoinTree<T> extends J`, then we again have a board type. CheckTree will reject this input, but\n // here we stop instead of following every relationship in the domain graph.\n JoinTree<T> extends J\n ? never\n : TreeEntriesImpl<T, J, Nullable>\n : TreeEntriesImpl<T, J, Nullable>;\n\n/** Collects join entries from the relationship keys supplied in this tree node. */\ntype TreeEntriesImpl<T extends Entity, J, Nullable extends boolean> = {\n [K in keyof J & keyof FieldsOf<T>]: FieldsOf<T>[K] extends {\n kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\";\n type: infer U extends Entity;\n }\n ? TreeNodeJoins<\n U,\n Exclude<J[K], undefined>,\n Nullable extends true ? true : FieldsOf<T>[K] extends { kind: \"m2o\"; nullable: never } ? false : true\n >\n : never;\n}[keyof J & keyof FieldsOf<T>];\n\n/**\n * Collects the join entries for this node's table binding and its nested relationships.\n *\n * An `as` binding contributes a LeftJoin or InnerJoin according to Nullable.\n * Without a binding, only nested relationship entries are included; entity, ID, and list filters add none.\n */\ntype TreeNodeJoins<T extends Entity, J, Nullable extends boolean> =\n // If `J extends Entity | unknown[]`, then it's a leaf entity/id filter, so stop recursing\n J extends Entity | readonly unknown[]\n ? never\n : // If `J extends object`, look for an `as` binding and nested relationships.\n // If `J extends object` is false, this is a scalar filter like \"b:1\" in `{ books: \"b:1\" }` and we stop here.\n J extends object\n ?\n | (J extends { readonly as: infer A extends TableFor<T> }\n ? Nullable extends true\n ? LeftJoin<A>\n : InnerJoin<A>\n : never)\n | TreeEntries<T, J, Nullable>\n : never;\n\n/** Rejects broad tree annotations before checking their supplied keys and values. */\ntype CheckTree<T extends Entity, J> =\n // An entity or a list of entities/IDs is a filter value, so don't check its properties as tree keys.\n J extends Entity | readonly unknown[]\n ? unknown\n : \"as\" extends keyof J\n ? JoinTree<T> extends J\n ? \"join tree bindings were typed too generically; use `satisfies JoinTree<T>` instead of `: JoinTree<T>`\"\n : CheckTreeKeys<T, J>\n : CheckTreeKeys<T, J>;\n\n/** Rejects unknown tree keys, including extra properties on objects stored in variables. */\ntype CheckTreeKeys<T extends Entity, J> = [Exclude<keyof J, keyof JoinTree<T>>] extends [never]\n ? {\n [K in keyof J]: K extends \"as\"\n ? J[K] extends TableFor<T> | undefined\n ? unknown\n : never\n : K extends keyof JoinTree<T>\n ? K extends keyof FieldsOf<T>\n ? FieldsOf<T>[K] extends { kind: \"m2o\" | \"o2m\" | \"lo2m\" | \"m2m\" | \"o2o\"; type: infer U extends Entity }\n ? (J[K] extends JoinTree<T>[K] ? unknown : never) & CheckRelationTree<U, J[K]>\n : J[K] extends JoinTree<T>[K]\n ? unknown\n : never\n : unknown\n : never;\n // Report the error on the tree object; intersecting a message with a boolean field would collapse to never.\n }\n : `unknown join tree field '${Exclude<keyof J, keyof JoinTree<T>> & string}'`;\n\n/** Checks each optional relationship alternative without treating entities or exclusion filters as trees. */\ntype CheckRelationTree<T extends Entity, J> = J extends object\n ? \"ne\" extends keyof J\n ? unknown\n : CheckTree<T, J>\n : unknown;\n\n/**\n * Walks domain relationship filters into ordinary SQL joins and WHERE predicates.\n * Handles remain query-local; no SQL aliases or caller objects are changed.\n * I.e. Author.books.author emits Book before its Author, even if only the final Author has an as binding.\n */\nexport function compileJoinTree(from: unknown, tree: unknown): { joins: QueryJoin[]; condition: QueryCondition } {\n if (!isEntityTable(from)) fail(\"Join trees require an entity table in from\");\n const joins: QueryJoin[] = [];\n const conditions: QueryCondition[] = [];\n const bound = new Set<object>([getTableMgmt(from)]);\n visitTree(from, tree, joins, conditions, bound);\n return { joins, condition: { and: conditions } };\n}\n\n/**\n * Compiles one node, leaving relationship conditions in WHERE rather than ON.\n * Each relationship gets one target handle; reusing a bound handle would merge distinct paths.\n * Owning-reference ID filters stay on the FK, while collection ID filters use the joined primary key.\n */\nfunction visitTree(\n source: TableFor<Entity>,\n tree: unknown,\n joins: QueryJoin[],\n conditions: QueryCondition[],\n bound: Set<object>,\n): void {\n if (!isTreeObject(tree)) fail(\"Expected a join tree object\");\n const mgmt = getTableMgmt(source);\n if (tree.as !== undefined && tree.as !== source) fail(\"Join tree root as must be the same table handle as from\");\n for (const [key, value] of Object.entries(tree)) {\n if (key === \"as\") continue;\n const field = mgmt.meta.allFields[key] ?? fail(`Unknown join tree field ${mgmt.meta.type}.${key}`);\n if (!(key in mgmt.meta.fields)) fail(`Join trees do not support inherited field ${mgmt.meta.type}.${key}`);\n if (field.kind === \"poly\") fail(`Join trees do not support polymorphic field ${mgmt.meta.type}.${key}`);\n if ([\"m2o\", \"o2m\", \"lo2m\", \"m2m\", \"o2o\"].includes(field.kind)) {\n if (value === undefined) continue;\n if (field.kind === \"m2o\" && !isTreeObject(value)) {\n // Avoid joining the related table; add the condition directly to the FK column.\n conditions.push(tableWhere(mgmt, { [key]: value }));\n continue;\n }\n if (field.kind === \"m2o\" && isTreeObject(value) && Object.hasOwn(value, \"ne\")) {\n // Exclusion filters also apply directly to the FK column without joining the related table.\n conditions.push(tableWhere(mgmt, { [key]: value }));\n continue;\n }\n // The field-kind check above establishes the relationship metadata and factory shape.\n if (!(\"otherMetadata\" in field)) fail(`Unsupported join tree field ${mgmt.meta.type}.${key}`);\n const meta = field.otherMetadata();\n const target = isTreeObject(value) && value.as !== undefined ? value.as : newTableProxy(meta.cstr);\n if (!isEntityTable(target) || getTableMgmt(target).meta !== meta) {\n fail(`Join tree binding for ${mgmt.meta.type}.${key} must be a ${meta.type} table`);\n }\n const identity = getTableMgmt(target);\n if (bound.has(identity))\n fail(`Join tree table ${meta.type} is bound more than once; create a separate table handle`);\n bound.add(identity);\n const relation = (source as unknown as Record<string, CollectionJoin<Entity>>)[key];\n joins.push(relation.as(target));\n // Recurse into nested relationship filters, e.g. `{ books: { title: \"One\" } }`.\n // A `{ ne: ... }` object instead filters the joined entity's ID, so handle it like an ID or entity value.\n // We don't have to handle other keys like `gt`, etc. b/c we know this is an entity filter, not a value filter.\n if (isTreeObject(value) && !Object.hasOwn(value, \"ne\")) {\n visitTree(target, value, joins, conditions, bound);\n } else {\n conditions.push(tableEntityWhere(identity, value));\n }\n } else {\n conditions.push(tableWhere(mgmt, { [key]: value }));\n }\n }\n}\n\n/** Separates nested relationship objects from entity, ID, and list filters. */\nfunction isTreeObject(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) && !isEntity(value);\n}\n"],"mappings":";;;;;;;;;AAiMA,SAAgB,gBAAgB,MAAe,MAAkE;CAC/G,IAAI,CAAC,cAAc,IAAI,GAAG,KAAK,4CAA4C;CAC3E,MAAM,QAAqB,CAAC;CAC5B,MAAM,aAA+B,CAAC;CAEtC,UAAU,MAAM,MAAM,OAAO,4BAAY,IADvB,IAAY,CAAC,aAAa,IAAI,CAAC,CACJ,CAAC;CAC9C,OAAO;EAAE;EAAO,WAAW,EAAE,KAAK,WAAW;CAAE;AACjD;;;;;;AAOA,SAAS,UACP,QACA,MACA,OACA,YACA,OACM;CACN,IAAI,CAAC,aAAa,IAAI,GAAG,KAAK,6BAA6B;CAC3D,MAAM,OAAO,aAAa,MAAM;CAChC,IAAI,KAAK,OAAO,KAAA,KAAa,KAAK,OAAO,QAAQ,KAAK,yDAAyD;CAC/G,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,GAAG;EAC/C,IAAI,QAAQ,MAAM;EAClB,MAAM,QAAQ,KAAK,KAAK,UAAU,QAAQ,KAAK,2BAA2B,KAAK,KAAK,KAAK,GAAG,KAAK;EACjG,IAAI,EAAE,OAAO,KAAK,KAAK,SAAS,KAAK,6CAA6C,KAAK,KAAK,KAAK,GAAG,KAAK;EACzG,IAAI,MAAM,SAAS,QAAQ,KAAK,+CAA+C,KAAK,KAAK,KAAK,GAAG,KAAK;EACtG,IAAI;GAAC;GAAO;GAAO;GAAQ;GAAO;EAAK,CAAC,CAAC,SAAS,MAAM,IAAI,GAAG;GAC7D,IAAI,UAAU,KAAA,GAAW;GACzB,IAAI,MAAM,SAAS,SAAS,CAAC,aAAa,KAAK,GAAG;IAEhD,WAAW,KAAK,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;IAClD;GACF;GACA,IAAI,MAAM,SAAS,SAAS,aAAa,KAAK,KAAK,OAAO,OAAO,OAAO,IAAI,GAAG;IAE7E,WAAW,KAAK,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;IAClD;GACF;GAEA,IAAI,EAAE,mBAAmB,QAAQ,KAAK,+BAA+B,KAAK,KAAK,KAAK,GAAG,KAAK;GAC5F,MAAM,OAAO,MAAM,cAAc;GACjC,MAAM,SAAS,aAAa,KAAK,KAAK,MAAM,OAAO,KAAA,IAAY,MAAM,KAAK,cAAc,KAAK,IAAI;GACjG,IAAI,CAAC,cAAc,MAAM,KAAK,aAAa,MAAM,CAAC,CAAC,SAAS,MAC1D,KAAK,yBAAyB,KAAK,KAAK,KAAK,GAAG,IAAI,aAAa,KAAK,KAAK,OAAO;GAEpF,MAAM,WAAW,aAAa,MAAM;GACpC,IAAI,MAAM,IAAI,QAAQ,GACpB,KAAK,mBAAmB,KAAK,KAAK,yDAAyD;GAC7F,MAAM,IAAI,QAAQ;GAClB,MAAM,WAAY,OAA6D;GAC/E,MAAM,KAAK,SAAS,GAAG,MAAM,CAAC;GAI9B,IAAI,aAAa,KAAK,KAAK,CAAC,OAAO,OAAO,OAAO,IAAI,GACnD,UAAU,QAAQ,OAAO,OAAO,YAAY,KAAK;QAEjD,WAAW,KAAK,iBAAiB,UAAU,KAAK,CAAC;EAErD,OACE,WAAW,KAAK,WAAW,MAAM,GAAG,MAAM,MAAM,CAAC,CAAC;CAEtD;AACF;;AAGA,SAAS,aAAa,OAAkD;CACtE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,KAAK,CAAC,SAAS,KAAK;AAChG"}