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":"recursiveParentsBatchLoader.d.cts","names":[],"sources":["../../src/batchloaders/recursiveParentsBatchLoader.ts"],"mappings":";;;;;cAea;iBAEG,4BAA4B,UAAU,QAAQ,UAAU,QACtE,IAAI,eACJ,YAAY,+BAA+B,GAAG,KAC7C,YAAY"}
@@ -0,0 +1,10 @@
1
+ import { BatchLoader } from "./BatchLoader.mjs";
2
+ import { RecursiveParentsCollectionImpl } from "../relations/RecursiveCollection.mjs";
3
+ import { EntityManager } from "../EntityManager.mjs";
4
+ import { Entity } from "../Entity.mjs";
5
+ //#region src/batchloaders/recursiveParentsBatchLoader.d.ts
6
+ declare const recursiveParentsOperation = "m2o-recursive";
7
+ declare function recursiveParentsBatchLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: RecursiveParentsCollectionImpl<T, U>): BatchLoader<Entity>;
8
+ //#endregion
9
+ export { recursiveParentsBatchLoader, recursiveParentsOperation };
10
+ //# sourceMappingURL=recursiveParentsBatchLoader.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursiveParentsBatchLoader.d.mts","names":[],"sources":["../../src/batchloaders/recursiveParentsBatchLoader.ts"],"mappings":";;;;;cAea;iBAEG,4BAA4B,UAAU,QAAQ,UAAU,QACtE,IAAI,eACJ,YAAY,+BAA+B,GAAG,KAC7C,YAAY"}
@@ -1,60 +1,63 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recursiveParentsOperation = void 0;
4
- exports.recursiveParentsBatchLoader = recursiveParentsBatchLoader;
5
- const configure_1 = require("../configure");
6
- const index_1 = require("../index");
7
- const utils_1 = require("../utils");
8
- exports.recursiveParentsOperation = "m2o-recursive";
1
+ import "./BatchLoader.js";
2
+ import "../relations/RecursiveCollection.js";
3
+ import { getField } from "../fields.js";
4
+ import { deTagIds } from "../keys.js";
5
+ import { kq } from "../queries/sql/keywords.js";
6
+ import { addTablePerClassJoinsAndClassTag } from "../queries/find/QueryParser.js";
7
+ import { abbreviation } from "../utils.js";
8
+ import { getMetadataForType } from "../configure.js";
9
+ import "../index.js";
10
+ import "../EntityManager.js";
11
+ import "../Entity.js";
12
+ //#region src/batchloaders/recursiveParentsBatchLoader.ts
13
+ const recursiveParentsOperation = "m2o-recursive";
9
14
  function recursiveParentsBatchLoader(em, collection) {
10
- let { meta, fieldName } = collection;
11
- // This could be called from subtypes to get relations defined on the parent. So we need to make sure we are using the
12
- // correct meta by walking the inheritance tree until we find the meta that actually has the root m2o field
13
- // We intentionally don't use getMetadataForField here because CTI-specialized fields stay on the subtype metadata,
14
- // while these raw recursive CTEs need the metadata/table that physically owns the FK column.
15
- while (!(collection.m2oFieldName in meta.fields) && meta.baseType)
16
- meta = (0, configure_1.getMetadataForType)(meta.baseType);
17
- const batchKey = `${meta.tableName}-${fieldName}`;
18
- return em.getBatchLoader(exports.recursiveParentsOperation, batchKey, async (children) => {
19
- const m2o = meta.allFields[collection.m2oFieldName];
20
- // ...can `getField` return a new entity? In theory, we shouldn't see new entities because
21
- // RecursiveParentsCollectionImpl.load/isLoaded will see the `ManyToOneReferenceImpl` as loaded.
22
- const immediateParentIds = children.map((c) => (0, index_1.getField)(c, m2o.fieldName)).filter((id) => id !== undefined);
23
- const { columnName } = m2o.serde.columns[0];
24
- const alias = (0, utils_1.abbreviation)(meta.tableName);
25
- const query = {
26
- selects: [`"${alias}".*`],
27
- tables: [
28
- // We still select directly from our table, and join into the CTE so that we
29
- // can use `addTablePerClassJoinsAndClassTag` to get inheritance added for free.
30
- { alias, join: "primary", table: meta.tableName },
31
- { alias: `${alias}_cte`, join: "inner", table: `${alias}_cte`, col1: `${alias}.id`, col2: `${alias}_cte.id` },
32
- ],
33
- orderBys: [{ alias, column: "id", order: "ASC" }],
34
- ctes: [
35
- {
36
- alias: `${alias}_cte`,
37
- query: {
38
- kind: "raw",
39
- // b is our base case, which is the immediate parents of the children we're loading,
40
- // and r is the recursive case of finding their parents.
41
- sql: `
42
- SELECT b.id, b.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} b WHERE b.id = ANY(?)
15
+ let { meta, fieldName } = collection;
16
+ while (!(collection.m2oFieldName in meta.fields) && meta.baseType) meta = getMetadataForType(meta.baseType);
17
+ const batchKey = `${meta.tableName}-${fieldName}`;
18
+ return em.getBatchLoader(recursiveParentsOperation, batchKey, async (children) => {
19
+ const m2o = meta.allFields[collection.m2oFieldName];
20
+ const immediateParentIds = children.map((c) => getField(c, m2o.fieldName)).filter((id) => id !== void 0);
21
+ const { columnName } = m2o.serde.columns[0];
22
+ const alias = abbreviation(meta.tableName);
23
+ const query = {
24
+ selects: [`"${alias}".*`],
25
+ tables: [{
26
+ alias,
27
+ join: "primary",
28
+ table: meta.tableName
29
+ }, {
30
+ alias: `${alias}_cte`,
31
+ join: "inner",
32
+ table: `${alias}_cte`,
33
+ col1: `${alias}.id`,
34
+ col2: `${alias}_cte.id`
35
+ }],
36
+ orderBys: [{
37
+ alias,
38
+ column: "id",
39
+ order: "ASC"
40
+ }],
41
+ ctes: [{
42
+ alias: `${alias}_cte`,
43
+ query: {
44
+ kind: "raw",
45
+ sql: `
46
+ SELECT b.id, b.${columnName} FROM ${kq(meta.tableName)} b WHERE b.id = ANY(?)
43
47
  UNION
44
- SELECT r.id, r.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} r JOIN ${alias}_cte ON r.id = ${alias}_cte.${columnName}
48
+ SELECT r.id, r.${columnName} FROM ${kq(meta.tableName)} r JOIN ${alias}_cte ON r.id = ${alias}_cte.${columnName}
45
49
  `,
46
- bindings: [(0, index_1.unsafeDeTagIds)(immediateParentIds)],
47
- },
48
- recursive: true,
49
- },
50
- ],
51
- };
52
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
53
- const rows = await em["executeFind"](meta, exports.recursiveParentsOperation, query, {});
54
- // Since we're preloading m2os up the tree, merely having the entities in the EM is enough
55
- // for the ManyToOneReferenceImpl to find them, so we don't need to map them back to the
56
- // keys, or push them into the preloader cache.
57
- em.hydrate(meta.cstr, rows);
58
- });
50
+ bindings: [deTagIds(meta, immediateParentIds)]
51
+ },
52
+ recursive: true
53
+ }]
54
+ };
55
+ addTablePerClassJoinsAndClassTag(query, meta, alias, true);
56
+ const rowData = await em["executeFindRowData"](meta, recursiveParentsOperation, query, {});
57
+ em["hydrateAndFinalize"](meta.cstr, rowData);
58
+ });
59
59
  }
60
+ //#endregion
61
+ export { recursiveParentsBatchLoader, recursiveParentsOperation };
62
+
60
63
  //# sourceMappingURL=recursiveParentsBatchLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recursiveParentsBatchLoader.js","sourceRoot":"","sources":["../../src/batchloaders/recursiveParentsBatchLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recursiveParentsBatchLoader.js","names":[],"sources":["../../src/batchloaders/recursiveParentsBatchLoader.ts"],"sourcesContent":["import { type BatchLoader } from \"src/batchloaders/BatchLoader.ts\";\nimport { getMetadataForType } from \"src/configure.ts\";\nimport { type Entity } from \"src/Entity.ts\";\nimport { type EntityManager } from \"src/EntityManager.ts\";\nimport {\n type ManyToOneField,\n type ParsedFindQuery,\n addTablePerClassJoinsAndClassTag,\n deTagIds,\n getField,\n kq,\n} from \"src/index.ts\";\nimport { type RecursiveParentsCollectionImpl } from \"src/relations/RecursiveCollection.ts\";\nimport { abbreviation } from \"src/utils.ts\";\n\nexport const recursiveParentsOperation = \"m2o-recursive\";\n\nexport function recursiveParentsBatchLoader<T extends Entity, U extends Entity>(\n em: EntityManager,\n collection: RecursiveParentsCollectionImpl<T, U>,\n): BatchLoader<Entity> {\n let { meta, fieldName } = collection;\n // This could be called from subtypes to get relations defined on the parent. So we need to make sure we are using the\n // correct meta by walking the inheritance tree until we find the meta that actually has the root m2o field\n // We intentionally don't use getMetadataForField here because CTI-specialized fields stay on the subtype metadata,\n // while these raw recursive CTEs need the metadata/table that physically owns the FK column.\n while (!(collection.m2oFieldName in meta.fields) && meta.baseType) meta = getMetadataForType(meta.baseType);\n const batchKey = `${meta.tableName}-${fieldName}`;\n return em.getBatchLoader(recursiveParentsOperation, batchKey, async (children) => {\n const m2o = meta.allFields[collection.m2oFieldName] as ManyToOneField;\n // ...can `getField` return a new entity? In theory, we shouldn't see new entities because\n // RecursiveParentsCollectionImpl.load/isLoaded will see the `ManyToOneReferenceImpl` as loaded.\n const immediateParentIds = children.map((c) => getField(c, m2o.fieldName)).filter((id: any) => id !== undefined);\n const { columnName } = m2o.serde.columns[0];\n\n const alias = abbreviation(meta.tableName);\n const query: ParsedFindQuery = {\n selects: [`\"${alias}\".*`],\n tables: [\n // We still select directly from our table, and join into the CTE so that we\n // can use `addTablePerClassJoinsAndClassTag` to get inheritance added for free.\n { alias, join: \"primary\", table: meta.tableName },\n { alias: `${alias}_cte`, join: \"inner\", table: `${alias}_cte`, col1: `${alias}.id`, col2: `${alias}_cte.id` },\n ],\n orderBys: [{ alias, column: \"id\", order: \"ASC\" }],\n ctes: [\n {\n alias: `${alias}_cte`,\n query: {\n kind: \"raw\",\n // b is our base case, which is the immediate parents of the children we're loading,\n // and r is the recursive case of finding their parents.\n sql: `\n SELECT b.id, b.${columnName} FROM ${kq(meta.tableName)} b WHERE b.id = ANY(?)\n UNION\n SELECT r.id, r.${columnName} FROM ${kq(meta.tableName)} r JOIN ${alias}_cte ON r.id = ${alias}_cte.${columnName}\n `,\n bindings: [deTagIds(meta, immediateParentIds)],\n },\n recursive: true,\n },\n ],\n };\n\n addTablePerClassJoinsAndClassTag(query, meta, alias, true);\n\n const rowData = await em[\"executeFindRowData\"](meta, recursiveParentsOperation, query, {});\n\n // Since we're preloading m2os up the tree, merely having the entities in the EM is enough\n // for the ManyToOneReferenceImpl to find them, so we don't need to map them back to the\n // keys, or push them into the preloader cache.\n em[\"hydrateAndFinalize\"](meta.cstr, rowData);\n });\n}\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,4BAA4B;AAEzC,SAAgB,4BACd,IACA,YACqB;CACrB,IAAI,EAAE,MAAM,cAAc;CAK1B,OAAO,EAAE,WAAW,gBAAgB,KAAK,WAAW,KAAK,UAAU,OAAO,mBAAmB,KAAK,QAAQ;CAC1G,MAAM,WAAW,GAAG,KAAK,UAAU,GAAG;CACtC,OAAO,GAAG,eAAe,2BAA2B,UAAU,OAAO,aAAa;EAChF,MAAM,MAAM,KAAK,UAAU,WAAW;EAGtC,MAAM,qBAAqB,SAAS,KAAK,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,QAAQ,OAAY,OAAO,KAAA,CAAS;EAC/G,MAAM,EAAE,eAAe,IAAI,MAAM,QAAQ;EAEzC,MAAM,QAAQ,aAAa,KAAK,SAAS;EACzC,MAAM,QAAyB;GAC7B,SAAS,CAAC,IAAI,MAAM,IAAI;GACxB,QAAQ,CAGN;IAAE;IAAO,MAAM;IAAW,OAAO,KAAK;GAAU,GAChD;IAAE,OAAO,GAAG,MAAM;IAAO,MAAM;IAAS,OAAO,GAAG,MAAM;IAAO,MAAM,GAAG,MAAM;IAAM,MAAM,GAAG,MAAM;GAAS,CAC9G;GACA,UAAU,CAAC;IAAE;IAAO,QAAQ;IAAM,OAAO;GAAM,CAAC;GAChD,MAAM,CACJ;IACE,OAAO,GAAG,MAAM;IAChB,OAAO;KACL,MAAM;KAGN,KAAK;+BACc,WAAW,QAAQ,GAAG,KAAK,SAAS,EAAE;;+BAEtC,WAAW,QAAQ,GAAG,KAAK,SAAS,EAAE,UAAU,MAAM,iBAAiB,MAAM,OAAO,WAAW;;KAElH,UAAU,CAAC,SAAS,MAAM,kBAAkB,CAAC;IAC/C;IACA,WAAW;GACb,CACF;EACF;EAEA,iCAAiC,OAAO,MAAM,OAAO,IAAI;EAEzD,MAAM,UAAU,MAAM,GAAG,qBAAqB,CAAC,MAAM,2BAA2B,OAAO,CAAC,CAAC;EAKzF,GAAG,qBAAqB,CAAC,KAAK,MAAM,OAAO;CAC7C,CAAC;AACH"}
@@ -0,0 +1,221 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ require("./relations/EnumCollection.cjs");
3
+ const require_fields = require("./fields.cjs");
4
+ const require_relations_LazyField = require("./relations/LazyField.cjs");
5
+ const require_utils = require("./utils.cjs");
6
+ require("./typeMap.cjs");
7
+ const require_EntityMetadata = require("./EntityMetadata.cjs");
8
+ require("./index.cjs");
9
+ const require_EntityManager = require("./EntityManager.cjs");
10
+ const require_Entity = require("./Entity.cjs");
11
+ const require_BaseEntity = require("./BaseEntity.cjs");
12
+ //#region src/changes.ts
13
+ /**
14
+ * Provides a base class for field/primitive & m2o status impls.
15
+ *
16
+ * We use a separate base class so that the primitive & m2o subtypes can have their own
17
+ * `kind: ...` consts, that if the m2o just subtyped the primitive directly, wouldn't be
18
+ * allowed.
19
+ */
20
+ var BaseFieldStatusImpl = class {
21
+ entity;
22
+ fieldName;
23
+ constructor(entity, fieldName) {
24
+ this.entity = entity;
25
+ this.fieldName = fieldName;
26
+ }
27
+ get originalValue() {
28
+ const { originalData, data } = require_BaseEntity.getInstanceData(this.entity);
29
+ const value = this.fieldName in originalData ? originalData[this.fieldName] : require_fields.getField(this.entity, this.fieldName);
30
+ return value === require_relations_LazyField.notLoadedValue ? void 0 : value;
31
+ }
32
+ get hasChanged() {
33
+ const { originalData, data } = require_BaseEntity.getInstanceData(this.entity);
34
+ return this.entity.isNewEntity ? data[this.fieldName] !== void 0 : this.fieldName in originalData;
35
+ }
36
+ get hasUpdated() {
37
+ const { originalData } = require_BaseEntity.getInstanceData(this.entity);
38
+ return !this.entity.isNewEntity && this.fieldName in originalData;
39
+ }
40
+ };
41
+ /** Implements the primitive field status, by extend base & just adding our `kind` const. */
42
+ var PrimitiveFieldStatusImpl = class extends BaseFieldStatusImpl {
43
+ kind = "field";
44
+ };
45
+ /** Implements the m2o field status, by extend base, & adding `originalEntity`. */
46
+ var ManyToOneFieldStatusImpl = class extends BaseFieldStatusImpl {
47
+ kind = "m2o";
48
+ /**
49
+ * Returns our original entity's `id`.
50
+ *
51
+ * We can know `originalValue` has an `id` available (i.e. is not new), b/c original values defacto
52
+ * came from the database.
53
+ *
54
+ * We also return the id so that `entity.changes.m2oField.originalValue` has a consistent API,
55
+ * regardless of whether the `entity.m2oField` itself is loaded or unloaded.
56
+ */
57
+ get originalValue() {
58
+ const originalValue = super.originalValue;
59
+ return require_Entity.isEntity(originalValue) ? originalValue.id : originalValue;
60
+ }
61
+ /** Returns the original entity instance, which may not be loaded into memory yet, or undefined. */
62
+ get originalEntity() {
63
+ const originalValue = this.originalValue;
64
+ if (require_EntityManager.isId(originalValue)) return this.entity.em.load(originalValue);
65
+ else return Promise.resolve(void 0);
66
+ }
67
+ };
68
+ var ManyToManyFieldStatusImpl = class {
69
+ kind = "m2m";
70
+ #entity;
71
+ #m2m;
72
+ #joinRows;
73
+ constructor(entity, fieldName) {
74
+ this.#entity = entity;
75
+ this.#m2m = entity[fieldName];
76
+ this.#joinRows = require_EntityManager.getEmInternalApi(entity.em).joinRows(this.#m2m);
77
+ }
78
+ get added() {
79
+ return this.#added.sort(entityCompare);
80
+ }
81
+ get removed() {
82
+ return this.#removed.sort(entityCompare);
83
+ }
84
+ get changed() {
85
+ return [...this.#added, ...this.#removed].sort(entityCompare);
86
+ }
87
+ get hasChanged() {
88
+ return this.#added.length > 0 || this.#removed.length > 0;
89
+ }
90
+ get hasUpdated() {
91
+ return !this.#entity.isNewEntity && this.hasChanged;
92
+ }
93
+ get originalEntities() {
94
+ return this.#m2m.load().then((list) => {
95
+ const set = new Set(this.added);
96
+ const copy = list.filter((e) => !set.has(e));
97
+ copy.push(...this.removed);
98
+ return copy.sort(entityCompare);
99
+ });
100
+ }
101
+ get #added() {
102
+ return this.#joinRows.addedFor(this.#m2m, this.#entity);
103
+ }
104
+ get #removed() {
105
+ return this.#joinRows.removedFor(this.#m2m, this.#entity);
106
+ }
107
+ };
108
+ var EnumCollectionFieldStatusImpl = class {
109
+ kind = "m2mEnum";
110
+ #entity;
111
+ #collection;
112
+ #joinRows;
113
+ constructor(entity, fieldName) {
114
+ this.#entity = entity;
115
+ this.#collection = entity[fieldName];
116
+ this.#joinRows = require_EntityManager.getEmInternalApi(entity.em).joinRows(this.#collection);
117
+ }
118
+ get added() {
119
+ return this.#toCodes(this.#joinRows.addedFor(this.#collection, this.#entity));
120
+ }
121
+ get removed() {
122
+ return this.#toCodes(this.#joinRows.removedFor(this.#collection, this.#entity));
123
+ }
124
+ get changed() {
125
+ return [...this.added, ...this.removed];
126
+ }
127
+ get hasChanged() {
128
+ return this.added.length > 0 || this.removed.length > 0;
129
+ }
130
+ get hasUpdated() {
131
+ return !this.#entity.isNewEntity && this.hasChanged;
132
+ }
133
+ get originalValues() {
134
+ return this.#collection.load().then((codes) => {
135
+ const added = new Set(this.added);
136
+ const enumDetail = this.#collection.otherEnum;
137
+ return [...codes.filter((c) => !added.has(c)), ...this.removed].sort((a, b) => enumDetail.getByCode(a).id - enumDetail.getByCode(b).id);
138
+ });
139
+ }
140
+ /** Maps the join rows' enum ids to codes, sorted by enum id for a stable order. */
141
+ #toCodes(ids) {
142
+ const enumDetail = this.#collection.otherEnum;
143
+ return ids.sort((a, b) => a - b).map((id) => enumDetail.findById(id).code);
144
+ }
145
+ };
146
+ /** Provides access to an o2m relation's added/removed/changed entities. */
147
+ var OneToManyFieldStatusImpl = class {
148
+ kind = "o2m";
149
+ #entity;
150
+ #o2m;
151
+ constructor(entity, fieldName) {
152
+ this.#entity = entity;
153
+ this.#o2m = entity[fieldName];
154
+ }
155
+ get added() {
156
+ return this.#added.sort(entityCompare);
157
+ }
158
+ get removed() {
159
+ return this.#removed.sort(entityCompare);
160
+ }
161
+ get changed() {
162
+ return [...this.added, ...this.removed].sort(entityCompare);
163
+ }
164
+ get hasChanged() {
165
+ return this.#added.length > 0 || this.#removed.length > 0;
166
+ }
167
+ get hasUpdated() {
168
+ return !this.#entity.isNewEntity && this.hasChanged;
169
+ }
170
+ get originalEntities() {
171
+ return this.#o2m.load().then((list) => {
172
+ const set = new Set(this.added);
173
+ const copy = list.filter((e) => !set.has(e));
174
+ copy.push(...this.removed);
175
+ return copy.sort(entityCompare);
176
+ });
177
+ }
178
+ get #added() {
179
+ return [...this.#o2m.added(), ...this.#entity.isNewEntity ? [] : require_EntityManager.getEmInternalApi(this.#entity.em).pendingPercolate.get(this.#entity.idTagged)?.get(this.#o2m.fieldName)?.adds ?? []];
180
+ }
181
+ get #removed() {
182
+ return [...this.#o2m.removed(), ...this.#entity.isNewEntity ? [] : require_EntityManager.getEmInternalApi(this.#entity.em).pendingPercolate.get(this.#entity.idTagged)?.get(this.#o2m.fieldName)?.removes ?? []];
183
+ }
184
+ };
185
+ function newChangesProxy(entity) {
186
+ return new Proxy(entity, { get(target, p) {
187
+ if (p === "fields") return getChangedFieldNames(entity, true);
188
+ else if (p === "fieldsWithoutRelations") return getChangedFieldNames(entity, false);
189
+ else if (typeof p === "symbol") throw new Error(`Unsupported call to ${String(p)}`);
190
+ const kind = require_EntityMetadata.getMetadata(entity).allFields[p]?.kind;
191
+ if (kind === "m2m") return new ManyToManyFieldStatusImpl(entity, p);
192
+ else if (kind === "m2mEnum") return new EnumCollectionFieldStatusImpl(entity, p);
193
+ else if (kind === "o2m") return new OneToManyFieldStatusImpl(entity, p);
194
+ else if (!require_fields.isChangeableField(entity, p)) throw new Error(`Invalid changes field ${p}`);
195
+ else if (kind === "m2o" || kind === "poly") return new ManyToOneFieldStatusImpl(entity, p);
196
+ else if (kind === "enum" || kind === "primitive" || kind === "primaryKey") return new PrimitiveFieldStatusImpl(entity, p);
197
+ else if (kind === "lo2m" || kind === "o2o") throw new Error(`changes are not supported for ${kind} ${p}`);
198
+ else return require_utils.assertNever(kind);
199
+ } });
200
+ }
201
+ /** Scans `entity` for changes primitive + m2m/o2m fields. */
202
+ function getChangedFieldNames(entity, includeRelations) {
203
+ const fieldsChanged = entity.isNewEntity ? Object.entries(require_BaseEntity.getInstanceData(entity).data).filter(([, value]) => value !== void 0).map(([key]) => key) : Object.keys(require_BaseEntity.getInstanceData(entity).originalData);
204
+ if (includeRelations) {
205
+ for (const field of Object.values(require_EntityMetadata.getMetadata(entity).allFields)) if (field.kind === "m2m") {
206
+ if (new ManyToManyFieldStatusImpl(entity, field.fieldName).hasChanged) fieldsChanged.push(field.fieldName);
207
+ } else if (field.kind === "o2m") {
208
+ if (new OneToManyFieldStatusImpl(entity, field.fieldName).hasChanged) fieldsChanged.push(field.fieldName);
209
+ } else if (field.kind === "m2mEnum") {
210
+ if (new EnumCollectionFieldStatusImpl(entity, field.fieldName).hasChanged) fieldsChanged.push(field.fieldName);
211
+ }
212
+ }
213
+ return fieldsChanged;
214
+ }
215
+ const entityCompare = (a, b) => {
216
+ return a.toString().localeCompare(b.toString());
217
+ };
218
+ //#endregion
219
+ exports.newChangesProxy = newChangesProxy;
220
+
221
+ //# sourceMappingURL=changes.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.cjs","names":["getInstanceData","getField","notLoadedValue","isEntity","isId","#entity","#m2m","#joinRows","getEmInternalApi","#added","#removed","#collection","#toCodes","#o2m","getMetadata","isChangeableField","assertNever"],"sources":["../src/changes.ts"],"sourcesContent":["import { getInstanceData } from \"src/BaseEntity.ts\";\nimport { type Entity } from \"src/Entity.ts\";\nimport { type IdOf } from \"src/EntityManager.ts\";\nimport { getField, isChangeableField } from \"src/fields.ts\";\nimport type { JoinColumnValue, JoinRows } from \"src/flush/JoinRows.ts\";\nimport {\n type Field,\n type ManyToManyCollection,\n type OneToManyCollection,\n type RelationsOf,\n assertNever,\n getEmInternalApi,\n getMetadata,\n isEntity,\n isId,\n} from \"src/index.ts\";\nimport { type EnumCollectionImpl } from \"src/relations/EnumCollection.ts\";\nimport { notLoadedValue } from \"src/relations/LazyField.ts\";\nimport { type FieldsOf, type OptsOf } from \"src/typeMap.ts\";\n\n/** Exposes a field's changed/original value in each entity's `this.changes` property. */\nexport interface FieldStatus<T> {\n /** True if the field has been changed on either create or update. */\n hasChanged: boolean;\n /** True only if the field has been updated i.e. not on the initial create. */\n hasUpdated: boolean;\n /** The original value, will be `undefined` if the entity new. */\n originalValue?: T;\n}\n\n/**\n * Provides a base class for field/primitive & m2o status impls.\n *\n * We use a separate base class so that the primitive & m2o subtypes can have their own\n * `kind: ...` consts, that if the m2o just subtyped the primitive directly, wouldn't be\n * allowed.\n */\nabstract class BaseFieldStatusImpl<T> {\n entity: Entity;\n fieldName: string;\n\n constructor(entity: Entity, fieldName: string) {\n this.entity = entity;\n this.fieldName = fieldName;\n }\n\n get originalValue(): T | undefined {\n const { originalData, data } = getInstanceData(this.entity);\n // If `p` is in originalData, always respect that, even if it's undefined\n const value =\n this.fieldName in originalData ? originalData[this.fieldName] : getField(this.entity, this.fieldName as any);\n // An unloaded lazy column's original value is unknown\n return value === notLoadedValue ? undefined : value;\n }\n\n get hasChanged(): boolean {\n const { originalData, data } = getInstanceData(this.entity);\n // Use `__orm.data[p] !== undefined` instead of `p in entity.__orm.data` because if a new (or cloned) entity\n // sets-then-unsets a value, it will return to `undefined` but still be present in `__orm.data`.\n return this.entity.isNewEntity ? data[this.fieldName] !== undefined : this.fieldName in originalData;\n }\n\n get hasUpdated(): boolean {\n const { originalData } = getInstanceData(this.entity);\n return !this.entity.isNewEntity && this.fieldName in originalData;\n }\n}\n\n/** Field status for primitive, enum, & primary key columns. */\nexport interface PrimitiveFieldStatus<T> extends FieldStatus<T> {\n kind: \"field\";\n}\n\n/** Implements the primitive field status, by extend base & just adding our `kind` const. */\nclass PrimitiveFieldStatusImpl<T> extends BaseFieldStatusImpl<T> implements PrimitiveFieldStatus<T> {\n kind = \"field\" as const;\n}\n\n/** Implements the m2o field status, by extend base, & adding `originalEntity`. */\nclass ManyToOneFieldStatusImpl<T extends Entity>\n extends BaseFieldStatusImpl<IdOf<T>>\n implements ManyToOneFieldStatus<T>\n{\n kind = \"m2o\" as const;\n\n /**\n * Returns our original entity's `id`.\n *\n * We can know `originalValue` has an `id` available (i.e. is not new), b/c original values defacto\n * came from the database.\n *\n * We also return the id so that `entity.changes.m2oField.originalValue` has a consistent API,\n * regardless of whether the `entity.m2oField` itself is loaded or unloaded.\n */\n get originalValue() {\n const originalValue = super.originalValue;\n return isEntity(originalValue) ? (originalValue.id as IdOf<T>) : originalValue;\n }\n\n /** Returns the original entity instance, which may not be loaded into memory yet, or undefined. */\n get originalEntity(): Promise<T | undefined> {\n const originalValue = this.originalValue;\n if (isId(originalValue)) {\n return this.entity.em.load(originalValue) as Promise<T>;\n } else {\n return Promise.resolve(undefined);\n }\n }\n}\n\n/** Provides a m2o/reference field's changed/original value in the entity's `this.changes` property. */\nexport interface ManyToOneFieldStatus<T extends Entity> extends FieldStatus<IdOf<T>> {\n kind: \"m2o\";\n /** The original entity, will be `undefined` if the entity new or the m2o was `null`. */\n originalEntity: Promise<T | undefined>;\n}\n\n/** Provides a m2m relation's added/removed/changed/original values. */\nexport interface ManyToManyFieldStatus<U extends Entity> {\n kind: \"m2m\";\n added: U[];\n removed: U[];\n changed: U[];\n hasChanged: boolean;\n hasUpdated: boolean;\n originalEntities: Promise<readonly U[]>;\n}\n\nclass ManyToManyFieldStatusImpl<T extends Entity, U extends Entity> implements ManyToManyFieldStatus<U> {\n readonly kind = \"m2m\";\n readonly #entity: T;\n readonly #m2m: ManyToManyCollection<T, any>;\n readonly #joinRows: JoinRows;\n\n constructor(entity: T, fieldName: keyof T) {\n this.#entity = entity;\n this.#m2m = entity[fieldName] as ManyToManyCollection<T, any>;\n this.#joinRows = getEmInternalApi(entity.em).joinRows(this.#m2m);\n }\n\n // Similar to the o2m.added/removed methods, these don't have to be async because currently\n // any m2m mutation requires having both entities in-memory anyway, i.e. we can't do id-only/unloaded\n // mutation of m2m relations.\n get added(): U[] {\n return this.#added.sort(entityCompare);\n }\n\n get removed(): U[] {\n return this.#removed.sort(entityCompare);\n }\n\n get changed(): U[] {\n return [...this.#added, ...this.#removed].sort(entityCompare);\n }\n\n get hasChanged(): boolean {\n // Calculating `changed: U[]` can be expensive if we sort, so just look at added/removed\n return this.#added.length > 0 || this.#removed.length > 0;\n }\n\n get hasUpdated(): boolean {\n return !this.#entity.isNewEntity && this.hasChanged;\n }\n\n get originalEntities(): Promise<readonly U[]> {\n return this.#m2m.load().then((list) => {\n const set = new Set(this.added);\n const copy = list.filter((e) => !set.has(e));\n copy.push(...this.removed);\n return copy.sort(entityCompare);\n });\n }\n\n get #added(): U[] {\n return this.#joinRows.addedFor(this.#m2m, this.#entity) as U[];\n }\n\n get #removed(): U[] {\n return this.#joinRows.removedFor(this.#m2m, this.#entity) as U[];\n }\n}\n\n/** Provides an enum m2m's added/removed/changed/original codes (e.g. `Publisher.logoColors`). */\nexport interface EnumCollectionFieldStatus<E> {\n kind: \"m2mEnum\";\n added: E[];\n removed: E[];\n changed: E[];\n hasChanged: boolean;\n hasUpdated: boolean;\n originalValues: Promise<readonly E[]>;\n}\n\nclass EnumCollectionFieldStatusImpl<T extends Entity, E> implements EnumCollectionFieldStatus<E> {\n readonly kind = \"m2mEnum\";\n readonly #entity: T;\n readonly #collection: EnumCollectionImpl<T, E>;\n readonly #joinRows: JoinRows;\n\n constructor(entity: T, fieldName: keyof T) {\n this.#entity = entity;\n this.#collection = entity[fieldName] as EnumCollectionImpl<T, E>;\n this.#joinRows = getEmInternalApi(entity.em).joinRows(this.#collection);\n }\n\n get added(): E[] {\n return this.#toCodes(this.#joinRows.addedFor(this.#collection, this.#entity));\n }\n\n get removed(): E[] {\n return this.#toCodes(this.#joinRows.removedFor(this.#collection, this.#entity));\n }\n\n get changed(): E[] {\n return [...this.added, ...this.removed];\n }\n\n get hasChanged(): boolean {\n return this.added.length > 0 || this.removed.length > 0;\n }\n\n get hasUpdated(): boolean {\n return !this.#entity.isNewEntity && this.hasChanged;\n }\n\n get originalValues(): Promise<readonly E[]> {\n // `load()` ensures the persisted (db) rows are in memory, then diff out our pending changes.\n return this.#collection.load().then((codes) => {\n const added = new Set(this.added);\n const enumDetail = this.#collection.otherEnum;\n return [...codes.filter((c) => !added.has(c)), ...this.removed].sort(\n (a, b) => enumDetail.getByCode(a).id - enumDetail.getByCode(b).id,\n );\n });\n }\n\n /** Maps the join rows' enum ids to codes, sorted by enum id for a stable order. */\n #toCodes(ids: JoinColumnValue[]): E[] {\n const enumDetail = this.#collection.otherEnum;\n return (ids as number[]).sort((a, b) => a - b).map((id) => enumDetail.findById(id)!.code as E);\n }\n}\n\nexport interface OneToManyFieldStatus<U extends Entity> {\n kind: \"o2m\";\n added: U[];\n removed: U[];\n changed: U[];\n hasChanged: boolean;\n hasUpdated: boolean;\n originalEntities: Promise<readonly U[]>;\n}\n\n/** Provides access to an o2m relation's added/removed/changed entities. */\nclass OneToManyFieldStatusImpl<T extends Entity, U extends Entity> implements OneToManyFieldStatus<U> {\n readonly kind = \"o2m\";\n readonly #entity: T;\n readonly #o2m: OneToManyCollection<T, U>;\n\n constructor(entity: T, fieldName: keyof T) {\n this.#entity = entity;\n this.#o2m = entity[fieldName] as OneToManyCollection<T, U>;\n }\n\n // This doesn't have to be a promise, b/c even if o2m is unloaded, to mutate\n // the o2m (calling `add(other)` or `remove(other)` or `other.otherField = me`), all\n // require having the \"other entity\" in memory.\n get added(): U[] {\n return this.#added.sort(entityCompare);\n }\n\n get removed(): U[] {\n return this.#removed.sort(entityCompare);\n }\n\n get changed(): U[] {\n return [...this.added, ...this.removed].sort(entityCompare);\n }\n\n get hasChanged(): boolean {\n // Calculating `changed: U[]` can be expensive if we sort, so just look at added/removed\n return this.#added.length > 0 || this.#removed.length > 0;\n }\n\n get hasUpdated(): boolean {\n return !this.#entity.isNewEntity && this.hasChanged;\n }\n\n get originalEntities(): Promise<readonly U[]> {\n return this.#o2m.load().then((list) => {\n const set = new Set(this.added);\n const copy = list.filter((e) => !set.has(e));\n copy.push(...this.removed);\n return copy.sort(entityCompare);\n });\n }\n\n // This doesn't have to be a promise, b/c even if o2m is unloaded, to mutate\n // the o2m (calling `add(other)` or `remove(other)` or `other.otherField = me`), all\n // require having the \"other entity\" in memory.\n get #added(): U[] {\n return [\n ...this.#o2m.added(),\n ...(this.#entity.isNewEntity\n ? []\n : ((getEmInternalApi(this.#entity.em).pendingPercolate.get(this.#entity.idTagged)?.get(this.#o2m.fieldName)\n ?.adds as U[]) ?? [])),\n ];\n }\n\n get #removed(): U[] {\n return [\n ...this.#o2m.removed(),\n ...(this.#entity.isNewEntity\n ? []\n : ((getEmInternalApi(this.#entity.em).pendingPercolate.get(this.#entity.idTagged)?.get(this.#o2m.fieldName)\n ?.removes as U[]) ?? [])),\n ];\n }\n}\n\n/**\n * Creates the `this.changes.firstName` changes API for a given entity `T`.\n *\n * We use `FieldsOf` because that already excludes collection, and then also\n * convert reference fields to `ManyToOneFieldStatus` to be the id type\n * because the reference may not be loaded.\n *\n * @typeParam K The fields of the entity, or potentially the union of the entity and its subtypes,\n * i.e. `Publisher.changes` is typed as `Changes<Publisher, keyof Publisher | keyof SmallPub | keyof LargePub>`\n * @typeParam R An optional list of restrictions, i.e for `Reacted` for to provide `changes` to its subset of fields.\n */\nexport type Changes<T extends Entity, K = keyof (FieldsOf<T> & RelationsOf<T>), R = K> = {\n /** Array of changed field names. */\n fields: NonNullable<K>[];\n /** Array of changed field names w/o o2m & m2m relations (which can be expensive). */\n fieldsWithoutRelations: NonNullable<K>[];\n} & {\n // The o2o branch is `never`: the FK lives on the other entity, so changes never track o2o fields.\n // (The exclusion must stay in the value position: a conditional in the `[P in ...]` clause defers on\n // a generic `T` and collapses `keyof Changes<T>` at inference time, i.e. in `cannotBeUpdated` calls.)\n [P in keyof FieldsOf<T> & R]: FieldsOf<T>[P] extends { kind: \"m2m\"; type: infer U extends Entity }\n ? ManyToManyFieldStatus<U>\n : FieldsOf<T>[P] extends { kind: \"m2mEnum\"; type: infer E }\n ? EnumCollectionFieldStatus<E>\n : FieldsOf<T>[P] extends { kind: \"o2m\"; type: infer U extends Entity }\n ? OneToManyFieldStatus<U>\n : FieldsOf<T>[P] extends { kind: \"o2o\" }\n ? never\n : FieldsOf<T>[P] extends { type: (infer U) | undefined }\n ? U extends Entity\n ? ManyToOneFieldStatus<U>\n : PrimitiveFieldStatus<U>\n : never;\n};\n\n// type A1 = never extends string ? 1 : 2;\n// type A2 = Book extends Entity | undefined ? 1 : 2;\n// type A2a = string extends Entity | string | undefined ? 1 : 2;\n// type A3 = Book | undefined extends Entity ? 1 : 2;\n// type A4 = Book | undefined | null extends (infer E extends Entity) | undefined | null ? E : 2;\n\n/**\n * A strongly-typed Entity with its changes field.\n *\n * Ideally this would live on `Entity` directly, but results in circular type issues.\n */\nexport interface EntityChanges<T extends Entity> {\n changes: Changes<T>;\n}\n\nexport function newChangesProxy<T extends Entity>(entity: T): Changes<T> {\n return new Proxy(entity, {\n get(\n target,\n p: PropertyKey & string,\n ):\n | FieldStatus<any>\n | ManyToOneFieldStatus<any>\n | ManyToManyFieldStatus<any>\n | OneToManyFieldStatus<any>\n | (keyof OptsOf<T>)[] {\n if (p === \"fields\") {\n return getChangedFieldNames(entity, true);\n } else if (p === \"fieldsWithoutRelations\") {\n return getChangedFieldNames(entity, false);\n } else if (typeof p === \"symbol\") {\n throw new Error(`Unsupported call to ${String(p)}`);\n }\n const kind = getMetadata(entity).allFields[p]?.kind;\n if (kind === \"m2m\") {\n return new ManyToManyFieldStatusImpl(entity, p as keyof T);\n } else if (kind === \"m2mEnum\") {\n return new EnumCollectionFieldStatusImpl(entity, p as keyof T);\n } else if (kind === \"o2m\") {\n return new OneToManyFieldStatusImpl(entity, p as keyof T);\n } else if (!isChangeableField(entity, p as any)) {\n throw new Error(`Invalid changes field ${p}`);\n } else if (kind === \"m2o\" || kind === \"poly\") {\n return new ManyToOneFieldStatusImpl(entity, p);\n } else if (kind === \"enum\" || kind === \"primitive\" || kind === \"primaryKey\") {\n return new PrimitiveFieldStatusImpl(entity, p);\n } else if (kind === \"lo2m\" || kind === \"o2o\") {\n throw new Error(`changes are not supported for ${kind} ${p}`);\n } else {\n return assertNever(kind);\n }\n },\n }) as any;\n}\n\nconst addOriginalEntity: Record<Field[\"kind\"], boolean> = {\n m2o: true,\n poly: true,\n m2mEnum: false,\n enum: false,\n lo2m: false,\n m2m: false,\n o2m: false,\n o2o: false,\n primaryKey: false,\n primitive: false,\n};\n\n/** Scans `entity` for changes primitive + m2m/o2m fields. */\nfunction getChangedFieldNames<T extends Entity>(entity: T, includeRelations: boolean): (keyof OptsOf<T>)[] {\n const fieldsChanged = entity.isNewEntity\n ? // Cloning sometimes leaves unset keys in data as undefined, so drop them\n Object.entries(getInstanceData(entity).data)\n .filter(([, value]) => value !== undefined)\n .map(([key]) => key)\n : Object.keys(getInstanceData(entity).originalData);\n\n // Calling `hasChanged` on these can be expensive, and we call this in a loop during em.flush\n if (includeRelations) {\n for (const field of Object.values(getMetadata(entity).allFields)) {\n if (field.kind === \"m2m\") {\n const status = new ManyToManyFieldStatusImpl(entity, field.fieldName as keyof T);\n if (status.hasChanged) {\n fieldsChanged.push(field.fieldName);\n }\n } else if (field.kind === \"o2m\") {\n const status = new OneToManyFieldStatusImpl(entity, field.fieldName as keyof T);\n if (status.hasChanged) {\n fieldsChanged.push(field.fieldName);\n }\n } else if (field.kind === \"m2mEnum\") {\n const status = new EnumCollectionFieldStatusImpl(entity, field.fieldName as keyof T);\n if (status.hasChanged) {\n fieldsChanged.push(field.fieldName);\n }\n }\n }\n }\n\n return fieldsChanged as any;\n}\n\nconst entityCompare: (a: Entity, b: Entity) => number = (a, b) => {\n return a.toString().localeCompare(b.toString());\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqCA,IAAe,sBAAf,MAAsC;CACpC;CACA;CAEA,YAAY,QAAgB,WAAmB;EAC7C,KAAK,SAAS;EACd,KAAK,YAAY;CACnB;CAEA,IAAI,gBAA+B;EACjC,MAAM,EAAE,cAAc,SAASA,mBAAAA,gBAAgB,KAAK,MAAM;EAE1D,MAAM,QACJ,KAAK,aAAa,eAAe,aAAa,KAAK,aAAaC,eAAAA,SAAS,KAAK,QAAQ,KAAK,SAAgB;EAE7G,OAAO,UAAUC,4BAAAA,iBAAiB,KAAA,IAAY;CAChD;CAEA,IAAI,aAAsB;EACxB,MAAM,EAAE,cAAc,SAASF,mBAAAA,gBAAgB,KAAK,MAAM;EAG1D,OAAO,KAAK,OAAO,cAAc,KAAK,KAAK,eAAe,KAAA,IAAY,KAAK,aAAa;CAC1F;CAEA,IAAI,aAAsB;EACxB,MAAM,EAAE,iBAAiBA,mBAAAA,gBAAgB,KAAK,MAAM;EACpD,OAAO,CAAC,KAAK,OAAO,eAAe,KAAK,aAAa;CACvD;AACF;;AAQA,IAAM,2BAAN,cAA0C,oBAA0D;CAClG,OAAO;AACT;;AAGA,IAAM,2BAAN,cACU,oBAEV;CACE,OAAO;;;;;;;;;;CAWP,IAAI,gBAAgB;EAClB,MAAM,gBAAgB,MAAM;EAC5B,OAAOG,eAAAA,SAAS,aAAa,IAAK,cAAc,KAAiB;CACnE;;CAGA,IAAI,iBAAyC;EAC3C,MAAM,gBAAgB,KAAK;EAC3B,IAAIC,sBAAAA,KAAK,aAAa,GACpB,OAAO,KAAK,OAAO,GAAG,KAAK,aAAa;OAExC,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAEpC;AACF;AAoBA,IAAM,4BAAN,MAAwG;CACtG,OAAgB;CAChB;CACA;CACA;CAEA,YAAY,QAAW,WAAoB;EACzC,KAAKC,UAAU;EACf,KAAKC,OAAO,OAAO;EACnB,KAAKC,YAAYC,sBAAAA,iBAAiB,OAAO,EAAE,CAAC,CAAC,SAAS,KAAKF,IAAI;CACjE;CAKA,IAAI,QAAa;EACf,OAAO,KAAKG,OAAO,KAAK,aAAa;CACvC;CAEA,IAAI,UAAe;EACjB,OAAO,KAAKC,SAAS,KAAK,aAAa;CACzC;CAEA,IAAI,UAAe;EACjB,OAAO,CAAC,GAAG,KAAKD,QAAQ,GAAG,KAAKC,QAAQ,CAAC,CAAC,KAAK,aAAa;CAC9D;CAEA,IAAI,aAAsB;EAExB,OAAO,KAAKD,OAAO,SAAS,KAAK,KAAKC,SAAS,SAAS;CAC1D;CAEA,IAAI,aAAsB;EACxB,OAAO,CAAC,KAAKL,QAAQ,eAAe,KAAK;CAC3C;CAEA,IAAI,mBAA0C;EAC5C,OAAO,KAAKC,KAAK,KAAK,CAAC,CAAC,MAAM,SAAS;GACrC,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK;GAC9B,MAAM,OAAO,KAAK,QAAQ,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;GAC3C,KAAK,KAAK,GAAG,KAAK,OAAO;GACzB,OAAO,KAAK,KAAK,aAAa;EAChC,CAAC;CACH;CAEA,IAAIG,SAAc;EAChB,OAAO,KAAKF,UAAU,SAAS,KAAKD,MAAM,KAAKD,OAAO;CACxD;CAEA,IAAIK,WAAgB;EAClB,OAAO,KAAKH,UAAU,WAAW,KAAKD,MAAM,KAAKD,OAAO;CAC1D;AACF;AAaA,IAAM,gCAAN,MAAiG;CAC/F,OAAgB;CAChB;CACA;CACA;CAEA,YAAY,QAAW,WAAoB;EACzC,KAAKA,UAAU;EACf,KAAKM,cAAc,OAAO;EAC1B,KAAKJ,YAAYC,sBAAAA,iBAAiB,OAAO,EAAE,CAAC,CAAC,SAAS,KAAKG,WAAW;CACxE;CAEA,IAAI,QAAa;EACf,OAAO,KAAKC,SAAS,KAAKL,UAAU,SAAS,KAAKI,aAAa,KAAKN,OAAO,CAAC;CAC9E;CAEA,IAAI,UAAe;EACjB,OAAO,KAAKO,SAAS,KAAKL,UAAU,WAAW,KAAKI,aAAa,KAAKN,OAAO,CAAC;CAChF;CAEA,IAAI,UAAe;EACjB,OAAO,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO;CACxC;CAEA,IAAI,aAAsB;EACxB,OAAO,KAAK,MAAM,SAAS,KAAK,KAAK,QAAQ,SAAS;CACxD;CAEA,IAAI,aAAsB;EACxB,OAAO,CAAC,KAAKA,QAAQ,eAAe,KAAK;CAC3C;CAEA,IAAI,iBAAwC;EAE1C,OAAO,KAAKM,YAAY,KAAK,CAAC,CAAC,MAAM,UAAU;GAC7C,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK;GAChC,MAAM,aAAa,KAAKA,YAAY;GACpC,OAAO,CAAC,GAAG,MAAM,QAAQ,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,MAC7D,GAAG,MAAM,WAAW,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,UAAU,CAAC,CAAC,CAAC,EACjE;EACF,CAAC;CACH;;CAGA,SAAS,KAA6B;EACpC,MAAM,aAAa,KAAKA,YAAY;EACpC,OAAQ,IAAiB,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,WAAW,SAAS,EAAE,CAAC,CAAE,IAAS;CAC/F;AACF;;AAaA,IAAM,2BAAN,MAAsG;CACpG,OAAgB;CAChB;CACA;CAEA,YAAY,QAAW,WAAoB;EACzC,KAAKN,UAAU;EACf,KAAKQ,OAAO,OAAO;CACrB;CAKA,IAAI,QAAa;EACf,OAAO,KAAKJ,OAAO,KAAK,aAAa;CACvC;CAEA,IAAI,UAAe;EACjB,OAAO,KAAKC,SAAS,KAAK,aAAa;CACzC;CAEA,IAAI,UAAe;EACjB,OAAO,CAAC,GAAG,KAAK,OAAO,GAAG,KAAK,OAAO,CAAC,CAAC,KAAK,aAAa;CAC5D;CAEA,IAAI,aAAsB;EAExB,OAAO,KAAKD,OAAO,SAAS,KAAK,KAAKC,SAAS,SAAS;CAC1D;CAEA,IAAI,aAAsB;EACxB,OAAO,CAAC,KAAKL,QAAQ,eAAe,KAAK;CAC3C;CAEA,IAAI,mBAA0C;EAC5C,OAAO,KAAKQ,KAAK,KAAK,CAAC,CAAC,MAAM,SAAS;GACrC,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK;GAC9B,MAAM,OAAO,KAAK,QAAQ,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;GAC3C,KAAK,KAAK,GAAG,KAAK,OAAO;GACzB,OAAO,KAAK,KAAK,aAAa;EAChC,CAAC;CACH;CAKA,IAAIJ,SAAc;EAChB,OAAO,CACL,GAAG,KAAKI,KAAK,MAAM,GACnB,GAAI,KAAKR,QAAQ,cACb,CAAC,IACCG,sBAAAA,iBAAiB,KAAKH,QAAQ,EAAE,CAAC,CAAC,iBAAiB,IAAI,KAAKA,QAAQ,QAAQ,CAAC,EAAE,IAAI,KAAKQ,KAAK,SAAS,CAAC,EACrG,QAAgB,CAAC,CAC3B;CACF;CAEA,IAAIH,WAAgB;EAClB,OAAO,CACL,GAAG,KAAKG,KAAK,QAAQ,GACrB,GAAI,KAAKR,QAAQ,cACb,CAAC,IACCG,sBAAAA,iBAAiB,KAAKH,QAAQ,EAAE,CAAC,CAAC,iBAAiB,IAAI,KAAKA,QAAQ,QAAQ,CAAC,EAAE,IAAI,KAAKQ,KAAK,SAAS,CAAC,EACrG,WAAmB,CAAC,CAC9B;CACF;AACF;AAoDA,SAAgB,gBAAkC,QAAuB;CACvE,OAAO,IAAI,MAAM,QAAQ,EACvB,IACE,QACA,GAMsB;EACtB,IAAI,MAAM,UACR,OAAO,qBAAqB,QAAQ,IAAI;OACnC,IAAI,MAAM,0BACf,OAAO,qBAAqB,QAAQ,KAAK;OACpC,IAAI,OAAO,MAAM,UACtB,MAAM,IAAI,MAAM,uBAAuB,OAAO,CAAC,GAAG;EAEpD,MAAM,OAAOC,uBAAAA,YAAY,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;EAC/C,IAAI,SAAS,OACX,OAAO,IAAI,0BAA0B,QAAQ,CAAY;OACpD,IAAI,SAAS,WAClB,OAAO,IAAI,8BAA8B,QAAQ,CAAY;OACxD,IAAI,SAAS,OAClB,OAAO,IAAI,yBAAyB,QAAQ,CAAY;OACnD,IAAI,CAACC,eAAAA,kBAAkB,QAAQ,CAAQ,GAC5C,MAAM,IAAI,MAAM,yBAAyB,GAAG;OACvC,IAAI,SAAS,SAAS,SAAS,QACpC,OAAO,IAAI,yBAAyB,QAAQ,CAAC;OACxC,IAAI,SAAS,UAAU,SAAS,eAAe,SAAS,cAC7D,OAAO,IAAI,yBAAyB,QAAQ,CAAC;OACxC,IAAI,SAAS,UAAU,SAAS,OACrC,MAAM,IAAI,MAAM,iCAAiC,KAAK,GAAG,GAAG;OAE5D,OAAOC,cAAAA,YAAY,IAAI;CAE3B,EACF,CAAC;AACH;;AAgBA,SAAS,qBAAuC,QAAW,kBAAgD;CACzG,MAAM,gBAAgB,OAAO,cAEzB,OAAO,QAAQhB,mBAAAA,gBAAgB,MAAM,CAAC,CAAC,IAAI,CAAC,CACzC,QAAQ,GAAG,WAAW,UAAU,KAAA,CAAS,CAAC,CAC1C,KAAK,CAAC,SAAS,GAAG,IACrB,OAAO,KAAKA,mBAAAA,gBAAgB,MAAM,CAAC,CAAC,YAAY;CAGpD,IAAI,kBACG;OAAA,MAAM,SAAS,OAAO,OAAOc,uBAAAA,YAAY,MAAM,CAAC,CAAC,SAAS,GAC7D,IAAI,MAAM,SAAS,OAEb;OAAA,IADe,0BAA0B,QAAQ,MAAM,SAClD,CAAC,CAAC,YACT,cAAc,KAAK,MAAM,SAAS;EAAA,OAE/B,IAAI,MAAM,SAAS,OAEpB;OAAA,IADe,yBAAyB,QAAQ,MAAM,SACjD,CAAC,CAAC,YACT,cAAc,KAAK,MAAM,SAAS;EAAA,OAE/B,IAAI,MAAM,SAAS,WAEpB;OAAA,IADe,8BAA8B,QAAQ,MAAM,SACtD,CAAC,CAAC,YACT,cAAc,KAAK,MAAM,SAAS;EAAA;CACpC;CAKN,OAAO;AACT;AAEA,MAAM,iBAAmD,GAAG,MAAM;CAChE,OAAO,EAAE,SAAS,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC;AAChD"}
@@ -0,0 +1,95 @@
1
+ import { FieldsOf, RelationsOf } from "./typeMap.cjs";
2
+ import "./index.cjs";
3
+ import { IdOf } from "./EntityManager.cjs";
4
+ import { Entity } from "./Entity.cjs";
5
+ //#region src/changes.d.ts
6
+ /** Exposes a field's changed/original value in each entity's `this.changes` property. */
7
+ interface FieldStatus<T> {
8
+ /** True if the field has been changed on either create or update. */
9
+ hasChanged: boolean;
10
+ /** True only if the field has been updated i.e. not on the initial create. */
11
+ hasUpdated: boolean;
12
+ /** The original value, will be `undefined` if the entity new. */
13
+ originalValue?: T;
14
+ }
15
+ /** Field status for primitive, enum, & primary key columns. */
16
+ interface PrimitiveFieldStatus<T> extends FieldStatus<T> {
17
+ kind: "field";
18
+ }
19
+ /** Provides a m2o/reference field's changed/original value in the entity's `this.changes` property. */
20
+ interface ManyToOneFieldStatus<T extends Entity> extends FieldStatus<IdOf<T>> {
21
+ kind: "m2o";
22
+ /** The original entity, will be `undefined` if the entity new or the m2o was `null`. */
23
+ originalEntity: Promise<T | undefined>;
24
+ }
25
+ /** Provides a m2m relation's added/removed/changed/original values. */
26
+ interface ManyToManyFieldStatus<U extends Entity> {
27
+ kind: "m2m";
28
+ added: U[];
29
+ removed: U[];
30
+ changed: U[];
31
+ hasChanged: boolean;
32
+ hasUpdated: boolean;
33
+ originalEntities: Promise<readonly U[]>;
34
+ }
35
+ /** Provides an enum m2m's added/removed/changed/original codes (e.g. `Publisher.logoColors`). */
36
+ interface EnumCollectionFieldStatus<E> {
37
+ kind: "m2mEnum";
38
+ added: E[];
39
+ removed: E[];
40
+ changed: E[];
41
+ hasChanged: boolean;
42
+ hasUpdated: boolean;
43
+ originalValues: Promise<readonly E[]>;
44
+ }
45
+ interface OneToManyFieldStatus<U extends Entity> {
46
+ kind: "o2m";
47
+ added: U[];
48
+ removed: U[];
49
+ changed: U[];
50
+ hasChanged: boolean;
51
+ hasUpdated: boolean;
52
+ originalEntities: Promise<readonly U[]>;
53
+ }
54
+ /**
55
+ * Creates the `this.changes.firstName` changes API for a given entity `T`.
56
+ *
57
+ * We use `FieldsOf` because that already excludes collection, and then also
58
+ * convert reference fields to `ManyToOneFieldStatus` to be the id type
59
+ * because the reference may not be loaded.
60
+ *
61
+ * @typeParam K The fields of the entity, or potentially the union of the entity and its subtypes,
62
+ * i.e. `Publisher.changes` is typed as `Changes<Publisher, keyof Publisher | keyof SmallPub | keyof LargePub>`
63
+ * @typeParam R An optional list of restrictions, i.e for `Reacted` for to provide `changes` to its subset of fields.
64
+ */
65
+ type Changes<T extends Entity, K = keyof (FieldsOf<T> & RelationsOf<T>), R = K> = {
66
+ /** Array of changed field names. */
67
+ fields: NonNullable<K>[];
68
+ /** Array of changed field names w/o o2m & m2m relations (which can be expensive). */
69
+ fieldsWithoutRelations: NonNullable<K>[];
70
+ } & { [P in keyof FieldsOf<T> & R]: FieldsOf<T>[P] extends {
71
+ kind: "m2m";
72
+ type: infer U extends Entity;
73
+ } ? ManyToManyFieldStatus<U> : FieldsOf<T>[P] extends {
74
+ kind: "m2mEnum";
75
+ type: infer E;
76
+ } ? EnumCollectionFieldStatus<E> : FieldsOf<T>[P] extends {
77
+ kind: "o2m";
78
+ type: infer U extends Entity;
79
+ } ? OneToManyFieldStatus<U> : FieldsOf<T>[P] extends {
80
+ kind: "o2o";
81
+ } ? never : FieldsOf<T>[P] extends {
82
+ type: (infer U) | undefined;
83
+ } ? U extends Entity ? ManyToOneFieldStatus<U> : PrimitiveFieldStatus<U> : never; };
84
+ /**
85
+ * A strongly-typed Entity with its changes field.
86
+ *
87
+ * Ideally this would live on `Entity` directly, but results in circular type issues.
88
+ */
89
+ interface EntityChanges<T extends Entity> {
90
+ changes: Changes<T>;
91
+ }
92
+ declare function newChangesProxy<T extends Entity>(entity: T): Changes<T>;
93
+ //#endregion
94
+ export { Changes, EntityChanges, EnumCollectionFieldStatus, FieldStatus, ManyToManyFieldStatus, ManyToOneFieldStatus, OneToManyFieldStatus, PrimitiveFieldStatus, newChangesProxy };
95
+ //# sourceMappingURL=changes.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.d.cts","names":[],"sources":["../src/changes.ts"],"mappings":";;;;;;UAqBiB,YAAY;;EAE3B;;EAEA;;EAEA,gBAAgB;;;UA0CD,qBAAqB,WAAW,YAAY;EAC3D;;;UAyCe,qBAAqB,UAAU,gBAAgB,YAAY,KAAK;EAC/E;;EAEA,gBAAgB,QAAQ;;;UAIT,sBAAsB,UAAU;EAC/C;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,kBAAkB,iBAAiB;;;UA0DpB,0BAA0B;EACzC;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,gBAAgB,iBAAiB;;UAqDlB,qBAAqB,UAAU;EAC9C;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,kBAAkB,iBAAiB;;;;;;;;;;;;;KAkFzB,QAAQ,UAAU,QAAQ,WAAW,SAAS,KAAK,YAAY,KAAK,IAAI;;EAElF,QAAQ,YAAY;;EAEpB,wBAAwB,YAAY;OAKnC,WAAW,SAAS,KAAK,IAAI,SAAS,GAAG;EAAa;EAAa,YAAY,UAAU;IACtF,sBAAsB,KACtB,SAAS,GAAG;EAAa;EAAiB,YAAY;IACpD,0BAA0B,KAC1B,SAAS,GAAG;EAAa;EAAa,YAAY,UAAU;IAC1D,qBAAqB,KACrB,SAAS,GAAG;EAAa;YAEvB,SAAS,GAAG;EAAa,aAAa;IACpC,UAAU,SACR,qBAAqB,KACrB,qBAAqB;;;;;;UAepB,cAAc,UAAU;EACvC,SAAS,QAAQ;;iBAGH,gBAAgB,UAAU,QAAQ,QAAQ,IAAI,QAAQ"}
@@ -0,0 +1,95 @@
1
+ import { FieldsOf, RelationsOf } from "./typeMap.mjs";
2
+ import "./index.mjs";
3
+ import { IdOf } from "./EntityManager.mjs";
4
+ import { Entity } from "./Entity.mjs";
5
+ //#region src/changes.d.ts
6
+ /** Exposes a field's changed/original value in each entity's `this.changes` property. */
7
+ interface FieldStatus<T> {
8
+ /** True if the field has been changed on either create or update. */
9
+ hasChanged: boolean;
10
+ /** True only if the field has been updated i.e. not on the initial create. */
11
+ hasUpdated: boolean;
12
+ /** The original value, will be `undefined` if the entity new. */
13
+ originalValue?: T;
14
+ }
15
+ /** Field status for primitive, enum, & primary key columns. */
16
+ interface PrimitiveFieldStatus<T> extends FieldStatus<T> {
17
+ kind: "field";
18
+ }
19
+ /** Provides a m2o/reference field's changed/original value in the entity's `this.changes` property. */
20
+ interface ManyToOneFieldStatus<T extends Entity> extends FieldStatus<IdOf<T>> {
21
+ kind: "m2o";
22
+ /** The original entity, will be `undefined` if the entity new or the m2o was `null`. */
23
+ originalEntity: Promise<T | undefined>;
24
+ }
25
+ /** Provides a m2m relation's added/removed/changed/original values. */
26
+ interface ManyToManyFieldStatus<U extends Entity> {
27
+ kind: "m2m";
28
+ added: U[];
29
+ removed: U[];
30
+ changed: U[];
31
+ hasChanged: boolean;
32
+ hasUpdated: boolean;
33
+ originalEntities: Promise<readonly U[]>;
34
+ }
35
+ /** Provides an enum m2m's added/removed/changed/original codes (e.g. `Publisher.logoColors`). */
36
+ interface EnumCollectionFieldStatus<E> {
37
+ kind: "m2mEnum";
38
+ added: E[];
39
+ removed: E[];
40
+ changed: E[];
41
+ hasChanged: boolean;
42
+ hasUpdated: boolean;
43
+ originalValues: Promise<readonly E[]>;
44
+ }
45
+ interface OneToManyFieldStatus<U extends Entity> {
46
+ kind: "o2m";
47
+ added: U[];
48
+ removed: U[];
49
+ changed: U[];
50
+ hasChanged: boolean;
51
+ hasUpdated: boolean;
52
+ originalEntities: Promise<readonly U[]>;
53
+ }
54
+ /**
55
+ * Creates the `this.changes.firstName` changes API for a given entity `T`.
56
+ *
57
+ * We use `FieldsOf` because that already excludes collection, and then also
58
+ * convert reference fields to `ManyToOneFieldStatus` to be the id type
59
+ * because the reference may not be loaded.
60
+ *
61
+ * @typeParam K The fields of the entity, or potentially the union of the entity and its subtypes,
62
+ * i.e. `Publisher.changes` is typed as `Changes<Publisher, keyof Publisher | keyof SmallPub | keyof LargePub>`
63
+ * @typeParam R An optional list of restrictions, i.e for `Reacted` for to provide `changes` to its subset of fields.
64
+ */
65
+ type Changes<T extends Entity, K = keyof (FieldsOf<T> & RelationsOf<T>), R = K> = {
66
+ /** Array of changed field names. */
67
+ fields: NonNullable<K>[];
68
+ /** Array of changed field names w/o o2m & m2m relations (which can be expensive). */
69
+ fieldsWithoutRelations: NonNullable<K>[];
70
+ } & { [P in keyof FieldsOf<T> & R]: FieldsOf<T>[P] extends {
71
+ kind: "m2m";
72
+ type: infer U extends Entity;
73
+ } ? ManyToManyFieldStatus<U> : FieldsOf<T>[P] extends {
74
+ kind: "m2mEnum";
75
+ type: infer E;
76
+ } ? EnumCollectionFieldStatus<E> : FieldsOf<T>[P] extends {
77
+ kind: "o2m";
78
+ type: infer U extends Entity;
79
+ } ? OneToManyFieldStatus<U> : FieldsOf<T>[P] extends {
80
+ kind: "o2o";
81
+ } ? never : FieldsOf<T>[P] extends {
82
+ type: (infer U) | undefined;
83
+ } ? U extends Entity ? ManyToOneFieldStatus<U> : PrimitiveFieldStatus<U> : never; };
84
+ /**
85
+ * A strongly-typed Entity with its changes field.
86
+ *
87
+ * Ideally this would live on `Entity` directly, but results in circular type issues.
88
+ */
89
+ interface EntityChanges<T extends Entity> {
90
+ changes: Changes<T>;
91
+ }
92
+ declare function newChangesProxy<T extends Entity>(entity: T): Changes<T>;
93
+ //#endregion
94
+ export { Changes, EntityChanges, EnumCollectionFieldStatus, FieldStatus, ManyToManyFieldStatus, ManyToOneFieldStatus, OneToManyFieldStatus, PrimitiveFieldStatus, newChangesProxy };
95
+ //# sourceMappingURL=changes.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changes.d.mts","names":[],"sources":["../src/changes.ts"],"mappings":";;;;;;UAqBiB,YAAY;;EAE3B;;EAEA;;EAEA,gBAAgB;;;UA0CD,qBAAqB,WAAW,YAAY;EAC3D;;;UAyCe,qBAAqB,UAAU,gBAAgB,YAAY,KAAK;EAC/E;;EAEA,gBAAgB,QAAQ;;;UAIT,sBAAsB,UAAU;EAC/C;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,kBAAkB,iBAAiB;;;UA0DpB,0BAA0B;EACzC;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,gBAAgB,iBAAiB;;UAqDlB,qBAAqB,UAAU;EAC9C;EACA,OAAO;EACP,SAAS;EACT,SAAS;EACT;EACA;EACA,kBAAkB,iBAAiB;;;;;;;;;;;;;KAkFzB,QAAQ,UAAU,QAAQ,WAAW,SAAS,KAAK,YAAY,KAAK,IAAI;;EAElF,QAAQ,YAAY;;EAEpB,wBAAwB,YAAY;OAKnC,WAAW,SAAS,KAAK,IAAI,SAAS,GAAG;EAAa;EAAa,YAAY,UAAU;IACtF,sBAAsB,KACtB,SAAS,GAAG;EAAa;EAAiB,YAAY;IACpD,0BAA0B,KAC1B,SAAS,GAAG;EAAa;EAAa,YAAY,UAAU;IAC1D,qBAAqB,KACrB,SAAS,GAAG;EAAa;YAEvB,SAAS,GAAG;EAAa,aAAa;IACpC,UAAU,SACR,qBAAqB,KACrB,qBAAqB;;;;;;UAepB,cAAc,UAAU;EACvC,SAAS,QAAQ;;iBAGH,gBAAgB,UAAU,QAAQ,QAAQ,IAAI,QAAQ"}